{"version":3,"file":"static/js/main.e7b8cc0d.js","mappings":";sHAsIA,MAAAA,EAAAC,EAAA,MAYA,SAAgBC,EAAgBC,GAC9B,KAAMA,aAAaC,YACjB,MAAM,IAAIC,UAAU,yBAExB,CAKA,SAAgBC,EAAmBH,GAEjC,OADAD,EAAgBC,GACTH,EAAAO,OAAOC,KAAKL,EAAEM,OAAQN,EAAEO,WAAYP,EAAEQ,OAC/C,CAkBA,MAAsBC,EAKpBC,WAAAA,CAAYC,EAAcC,GACxB,IAAKC,OAAOC,UAAUH,GACpB,MAAM,IAAIT,UAAU,2BAYtB,KAAKS,KAAOA,EAUZ,KAAKC,SAAWA,CAClB,CAiBAG,qBAAAA,GACE,MAAO,EACT,CAwDAC,OAAAA,CAAQhB,EAAgBiB,GACtB,GAAI,EAAI,KAAKN,KACX,MAAM,IAAIO,WAAW,sBAEvB,OAAO,KAAKP,IACd,CAkBAQ,SAAAA,CAAUP,GACR,MAAMQ,EAAKC,OAAOC,OAAO,KAAKZ,YAAYa,WAG1C,OAFAF,OAAOG,OAAOJ,EAAI,MAClBA,EAAGR,SAAWA,EACPQ,CACT,CAsBAK,SAAAA,CAAUC,GAEV,EAQF,SAAgBC,EAAiBC,EAAcC,GAC7C,OAAIA,EAAGjB,SACEgB,EAAO,IAAMC,EAAGjB,SAAW,IAE7BgB,CACT,CAkFA,MAAsBE,UAAuBrB,EAY3CsB,OAAAA,GACE,MAAM,IAAIC,MAAM,6BAClB,EAkBF,MAAaC,UAAoBH,EAG/BpB,WAAAA,GAA8C,IAAlCwB,EAAWC,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAAGvB,EAAiBuB,UAAA3B,OAAA,EAAA2B,UAAA,QAAAC,EAC5C,IAAMvB,OAAOC,UAAUoB,IAAkB,GAAKA,EAC5C,MAAM,IAAIhC,UAAU,4CAEtB,OAAO,EAAGU,GAKV,KAAKsB,YAAcA,CACrB,CAGAH,OAAAA,GACE,OAAO,CACT,CAGAM,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7BpC,EAAgBC,GAChB,MAAMsC,EAAMtC,EAAEQ,OAASS,EACvB,OAAOsB,KAAKC,MAAMF,EAAM,KAAKJ,YAC/B,CAGAO,MAAAA,CAAOC,EAAa1C,EAAeiB,GACjC,OAAO,CACT,EAuBF,MAAa0B,UAAqBb,EAGhCpB,WAAAA,CAAYkC,GAAqD,IAA7B3B,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAAGvB,EAAiBuB,UAAA3B,OAAA,EAAA2B,UAAA,QAAAC,EAC/D,KAAMQ,aAAkBnC,GACtB,MAAM,IAAIP,UAAU,2BAGtB,IAAKW,OAAOC,UAAUG,GACpB,MAAM,IAAIf,UAAU,uCAGtB,MAAM0C,EAAOjC,KAAMC,GAAYgC,EAAOhC,UAGtC,KAAKgC,OAASA,EAQd,KAAK3B,OAASA,CAChB,CAGAc,OAAAA,GACE,OAAS,KAAKa,kBAAkBC,GACpB,KAAKD,kBAAkBE,CACrC,CAGAT,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAO,KAAKS,OAAOP,OAAOrC,EAAGiB,EAAS,KAAKA,OAC7C,CAGAwB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC1C,OAAO,KAAKS,OAAOH,OAAOC,EAAK1C,EAAGiB,EAAS,KAAKA,OAClD,EAmBF,MAAa4B,UAAapC,EACxBC,WAAAA,CAAYC,EAAcC,GAExB,GADA,MAAMD,EAAMC,GACR,EAAI,KAAKD,KACX,MAAM,IAAIO,WAAW,+BAEzB,CAGAmB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAG+C,WAAW9B,EAAQ,KAAKN,KACvD,CAGA8B,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAGgD,YAAYN,EAAKzB,EAAQ,KAAKN,MAC7C,KAAKA,IACd,EAmBF,MAAamC,UAAerC,EAC1BC,WAAAA,CAAYC,EAAcC,GAExB,GADA,MAAMD,EAAMC,GACR,EAAI,KAAKD,KACX,MAAM,IAAIO,WAAW,+BAEzB,CAGAmB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAGiD,WAAWhC,EAAQ,KAAKN,KACvD,CAGA8B,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAGkD,YAAYR,EAAKzB,EAAQ,KAAKN,MAC7C,KAAKA,IACd,EAmBF,MAAawC,UAAY1C,EACvBC,WAAAA,CAAYC,EAAcC,GAExB,GADA,MAAMD,EAAMC,GACR,EAAI,KAAKD,KACX,MAAM,IAAIO,WAAW,+BAEzB,CAGAmB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAGoD,UAAUnC,EAAQ,KAAKN,KACtD,CAGA8B,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAGqD,WAAWX,EAAKzB,EAAQ,KAAKN,MAC5C,KAAKA,IACd,EAmBF,MAAa2C,UAAc7C,EACzBC,WAAAA,CAAYC,EAAcC,GAExB,GADA,MAAMD,EAAMC,GACR,EAAI,KAAKD,KACX,MAAM,IAAIO,WAAW,+BAEzB,CAGAmB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAGuD,UAAUtC,EAAQ,KAAKN,KACtD,CAGA8B,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAGwD,WAAWd,EAAKzB,EAAQ,KAAKN,MAC5C,KAAKA,IACd,EAGF,MAAM8C,EAAQlB,KAAKmB,IAAI,EAAG,IAI1B,SAASC,EAAYjB,GACnB,MAAMkB,EAAOrB,KAAKC,MAAME,EAAMe,GAE9B,MAAO,CAACG,OAAMC,KADDnB,EAAOkB,EAAOH,EAE7B,CAEA,SAASK,EAAaF,EAAcC,GAClC,OAAOD,EAAOH,EAAQI,CACxB,CAaA,MAAaE,UAAmBtD,EAC9BC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAM7B,EAASH,EAAmBH,GAC5B6D,EAAOvD,EAAO0D,aAAa/C,GAEjC,OAAO6C,EADMxD,EAAO0D,aAAa/C,EAAS,GAChB4C,EAC5B,CAGApB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC1C,MAAM8B,EAAQN,EAAYjB,GACpBpC,EAASH,EAAmBH,GAGlC,OAFAM,EAAO4D,cAAcD,EAAMJ,KAAM5C,GACjCX,EAAO4D,cAAcD,EAAML,KAAM3C,EAAS,GACnC,CACT,EAcF,MAAakD,UAAqB1D,EAChCC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAM7B,EAASH,EAAmBH,GAGlC,OAAO8D,EAFMxD,EAAO8D,aAAanD,GACpBX,EAAO8D,aAAanD,EAAS,GAE5C,CAGAwB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC1C,MAAM8B,EAAQN,EAAYjB,GACpBpC,EAASH,EAAmBH,GAGlC,OAFAM,EAAO+D,cAAcJ,EAAML,KAAM3C,GACjCX,EAAO+D,cAAcJ,EAAMJ,KAAM5C,EAAS,GACnC,CACT,EAcF,MAAaqD,UAAkB7D,EAC7BC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAM7B,EAASH,EAAmBH,GAC5B6D,EAAOvD,EAAO0D,aAAa/C,GAEjC,OAAO6C,EADMxD,EAAOiE,YAAYtD,EAAS,GACf4C,EAC5B,CAGApB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC1C,MAAM8B,EAAQN,EAAYjB,GACpBpC,EAASH,EAAmBH,GAGlC,OAFAM,EAAO4D,cAAcD,EAAMJ,KAAM5C,GACjCX,EAAOkE,aAAaP,EAAML,KAAM3C,EAAS,GAClC,CACT,EAcF,MAAawD,UAAoBhE,EAC/BC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAM7B,EAASH,EAAmBH,GAGlC,OAAO8D,EAFMxD,EAAOoE,YAAYzD,GACnBX,EAAO8D,aAAanD,EAAS,GAE5C,CAGAwB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC1C,MAAM8B,EAAQN,EAAYjB,GACpBpC,EAASH,EAAmBH,GAGlC,OAFAM,EAAOqE,aAAaV,EAAML,KAAM3C,GAChCX,EAAO+D,cAAcJ,EAAMJ,KAAM5C,EAAS,GACnC,CACT,EAaF,MAAa2D,UAAcnE,EACzBC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAG6E,YAAY5D,EAC3C,CAGAwB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAG8E,aAAapC,EAAKzB,GACjC,CACT,EAaF,MAAa8D,UAAgBtE,EAC3BC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAGgF,YAAY/D,EAC3C,CAGAwB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAGiF,aAAavC,EAAKzB,GACjC,CACT,EAaF,MAAaiE,UAAezE,EAC1BC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAGmF,aAAalE,EAC5C,CAGAwB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAGoF,cAAc1C,EAAKzB,GAClC,CACT,EAaF,MAAaoE,UAAiB5E,EAC5BC,WAAAA,CAAYE,GACV,MAAM,EAAGA,EACX,CAGAyB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,OAAOhC,EAAmBH,GAAGsF,aAAarE,EAC5C,CAGAwB,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE1C,OADAhC,EAAmBH,GAAGuF,cAAc7C,EAAKzB,GAClC,CACT,EAoBF,MAAauE,UAAoB/E,EAI/BC,WAAAA,CAAY+E,EAA0BC,EAAgC9E,GACpE,KAAM6E,aAAyBhF,GAC7B,MAAM,IAAIP,UAAU,kCAEtB,KAAQwF,aAAiB5D,GAAmB4D,EAAM3D,WACxClB,OAAOC,UAAU4E,IAAW,GAAKA,GACzC,MAAM,IAAIxF,UAAU,4EAGtB,IAAIS,GAAQ,IACL+E,aAAiB5D,IAChB,EAAI2D,EAAc9E,OACxBA,EAAO+E,EAAQD,EAAc9E,MAG/B,MAAMA,EAAMC,GAGZ,KAAK6E,cAAgBA,EAOrB,KAAKC,MAAQA,CACf,CAGA1E,OAAAA,CAAQhB,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC9B,GAAI,GAAK,KAAKxB,KACZ,OAAO,KAAKA,KAEd,IAAIA,EAAO,EACP+E,EAAQ,KAAKA,MAIjB,GAHIA,aAAiB5D,IACnB4D,EAAQA,EAAMrD,OAAOrC,EAAGiB,IAEtB,EAAI,KAAKwE,cAAc9E,KACzBA,EAAO+E,EAAQ,KAAKD,cAAc9E,SAC7B,CACL,IAAIgF,EAAM,EACV,KAAOA,EAAMD,GACX/E,GAAQ,KAAK8E,cAAczE,QAAQhB,EAAGiB,EAASN,KAC7CgF,EAGN,OAAOhF,CACT,CAGA0B,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAMf,EAAU,GAChB,IAAIwE,EAAI,EACJF,EAAQ,KAAKA,MAIjB,IAHIA,aAAiB5D,IACnB4D,EAAQA,EAAMrD,OAAOrC,EAAGiB,IAEnB2E,EAAIF,GACTtE,EAAGyE,KAAK,KAAKJ,cAAcpD,OAAOrC,EAAGiB,IACrCA,GAAU,KAAKwE,cAAczE,QAAQhB,EAAGiB,GACxC2E,GAAK,EAEP,OAAOxE,CACT,CAYAqB,MAAAA,CAAOC,EAAU1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACvC,MAAM2D,EAAM,KAAKL,cACX9E,EAAe+B,EAAIqD,QAAO,CAACpF,EAAMqF,IAC9BrF,EAAOmF,EAAIrD,OAAOuD,EAAGhG,EAAGiB,EAASN,IACvC,GAIH,OAHI,KAAK+E,iBAAiB5D,GACxB,KAAK4D,MAAMjD,OAAOC,EAAIlC,OAAQR,EAAGiB,GAE5BN,CACT,EAmCF,MAAasF,UAAqBxF,EAIhCC,WAAAA,CAAYwF,EAA8BtF,EAAmBuF,GAC3D,IAAMC,MAAMC,QAAQH,KACXA,EAAOH,QAAO,CAACO,EAAKN,IAAMM,GAAQN,aAAavF,IAAS,GAC/D,MAAM,IAAIP,UAAU,4CAEjB,mBAAqBU,QAClBwB,IAAc+D,IACpBA,EAAiBvF,EACjBA,OAAWwB,GAIb,IAAK,MAAMmE,KAAML,EACf,GAAK,EAAIK,EAAG5F,WACJyB,IAAcmE,EAAG3F,SACvB,MAAM,IAAIoB,MAAM,wDAIpB,IAAIrB,GAAQ,EACZ,IACEA,EAAOuF,EAAOH,QAAO,CAACpF,EAAM4F,IAAO5F,EAAO4F,EAAGvF,WAAW,GACxD,MAAOwF,GACP,CAEF,MAAM7F,EAAMC,GAYZ,KAAKsF,OAASA,EAWd,KAAKC,iBAAmBA,CAC1B,CAGAnF,OAAAA,CAAQhB,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC9B,GAAI,GAAK,KAAKxB,KACZ,OAAO,KAAKA,KAEd,IAAIA,EAAO,EACX,IACEA,EAAO,KAAKuF,OAAOH,QAAO,CAACpF,EAAM4F,KAC/B,MAAME,EAAMF,EAAGvF,QAAQhB,EAAGiB,GAE1B,OADAA,GAAUwF,EACH9F,EAAO8F,CAAG,GAChB,GACH,MAAOD,GACP,MAAM,IAAItF,WAAW,sBAEvB,OAAOP,CACT,CAGA0B,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7BpC,EAAgBC,GAChB,MAAM0G,EAAO,KAAK3F,wBAClB,IAAK,MAAMwF,KAAM,KAAKL,OAKpB,QAJI9D,IAAcmE,EAAG3F,WACnB8F,EAAKH,EAAG3F,UAAuB2F,EAAGlE,OAAOrC,EAAGiB,IAE9CA,GAAUsF,EAAGvF,QAAQhB,EAAGiB,GACpB,KAAKkF,gBACDnG,EAAEQ,SAAWS,EACnB,MAGJ,OAAOyF,CACT,CAOAjE,MAAAA,CAAOC,EAAQ1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACrC,MAAMwE,EAAc1F,EACpB,IAAI2F,EAAa,EACbC,EAAY,EAChB,IAAK,MAAMN,KAAM,KAAKL,OAAQ,CAC5B,IAAIvF,EAAO4F,EAAG5F,KAEd,GADAkG,EAAa,EAAIlG,EAAQA,EAAO,OAC5ByB,IAAcmE,EAAG3F,SAAU,CAC7B,MAAMkG,EAAKpE,EAAI6D,EAAG3F,eACdwB,IAAc0E,IAChBD,EAAYN,EAAG9D,OAAOqE,EAAI9G,EAAGiB,GACzB,EAAIN,IAGNA,EAAO4F,EAAGvF,QAAQhB,EAAGiB,KAI3B2F,EAAa3F,EACbA,GAAUN,EAMZ,OAAQiG,EAAaC,EAAaF,CACpC,CAGAlF,SAAAA,CAAUC,GACR,MAAMgF,EAAO,KAAK3F,wBAClB,IAAK,MAAMwF,KAAM,KAAKL,YACf9D,IAAcmE,EAAG3F,UACd,EAAIc,EAAOlB,SACjBkG,EAAKH,EAAG3F,UAAYc,EAAOqF,SAG/B,OAAOL,CACT,CAUAM,SAAAA,CAAUpG,GACR,GAAI,kBAAoBA,EACtB,MAAM,IAAIV,UAAU,2BAEtB,IAAK,MAAMqG,KAAM,KAAKL,OACpB,GAAIK,EAAG3F,WAAaA,EAClB,OAAO2F,CAIb,CAaAU,QAAAA,CAASrG,GACP,GAAI,kBAAoBA,EACtB,MAAM,IAAIV,UAAU,2BAEtB,IAAIe,EAAS,EACb,IAAK,MAAMsF,KAAM,KAAKL,OAAQ,CAC5B,GAAIK,EAAG3F,WAAaA,EAClB,OAAOK,EAEL,EAAIsF,EAAG5F,KACTM,GAAU,EACD,GAAKA,IACdA,GAAUsF,EAAG5F,MAInB,EAiBF,MAAauG,EAEXxG,WAAAA,CAAYE,GAKV,KAAKA,SAAWA,CAClB,CAMAyB,MAAAA,CAAOrC,EAAgBiB,GACrB,MAAM,IAAIe,MAAM,iCAClB,CAMAS,MAAAA,CAAOC,EAAQ1C,EAAeiB,GAC5B,MAAM,IAAIe,MAAM,iCAClB,EAoBF,MAAamF,UAAiCD,EAE5CxG,WAAAA,CAAYkC,EAAwBhC,GAClC,KAAOgC,aAAkBd,GAChBc,EAAOb,WACd,MAAM,IAAI7B,UAAU,qDAGtB,MAAMU,GAAYgC,EAAOhC,UAAY,WAIrC,KAAKgC,OAASA,CAChB,CAGAP,MAAAA,CAAOrC,EAAeiB,GACpB,OAAO,KAAK2B,OAAOP,OAAOrC,EAAGiB,EAC/B,CAGAwB,MAAAA,CAAOC,EAAa1C,EAAeiB,GACjC,OAAO,KAAK2B,OAAOH,OAAOC,EAAK1C,EAAGiB,EACpC,EA8DF,MAAamG,UAAc3G,EAYzBC,WAAAA,CACI2G,EACAC,EACA1G,GAEF,IAAI2G,EACJ,GAAKF,aAAiBxE,GACdwE,aAAiBvE,EACvByE,EAAgB,IAAIJ,EAAyB,IAAIxE,EAAa0E,SACzD,GAAKA,aAAiBvF,GACfuF,EAAMtF,UAClBwF,EAAgB,IAAIJ,EAAyBE,OACxC,MAAMA,aAAiBH,GAC5B,MAAM,IAAIhH,UAAU,oEAGpBqH,EAAgBF,EAKlB,QAHIjF,IAAckF,IAChBA,EAAgB,QAEX,OAASA,GACNA,aAAyB7G,GACjC,MAAM,IAAIP,UAAU,0CAEtB,GAAI,OAASoH,EAAe,CAC1B,GAAI,EAAIA,EAAc3G,KACpB,MAAM,IAAIqB,MAAM,8CAEdI,IAAckF,EAAc1G,WAC9B0G,EAAgBA,EAAcnG,UAAU,YAQ5C,IAAIR,GAAQ,EACR2G,IACF3G,EAAO2G,EAAc3G,KAChB,GAAKA,IAAW0G,aAAiBxE,GAC9BwE,aAAiBvE,KACvBnC,GAAS4G,EAA2C3E,OAAOjC,OAG/D,MAAMA,EAAMC,GAUZ,KAAK2G,cAAgBA,EAOrB,KAAKC,wBAA2BH,aAAiBxE,GACzCwE,aAAiBvE,EASzB,KAAKwE,cAAgBA,EAYrB,KAAKG,SAAW,GAGhB,IAAIC,EAAwB,KAAKC,wBAAwBC,KAAK,MAe9D,KAAKC,iBAAmB,SAASnF,GAC/B,OAAOgF,EAAsBhF,EAC/B,EAeA,KAAKoF,uBAAyB,SAASC,GACrCL,EAAwBK,EAAIH,KAAK,KACnC,CACF,CAGA5G,OAAAA,CAAQhB,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC9B,GAAI,GAAK,KAAKxB,KACZ,OAAO,KAAKA,KAKd,MAAMqH,EAAM,KAAKC,WAAWjI,EAAGiB,GAC/B,IAAK+G,EACH,MAAM,IAAIhG,MAAM,qDAElB,OAAOgG,EAAIhH,QAAQhB,EAAGiB,EACxB,CA+BA0G,uBAAAA,CAAwBjF,GACtB,GAAIrB,OAAOE,UAAU2G,eAAeC,KAAKzF,EAAK,KAAK6E,cAAc3G,UAAW,CAC1E,GAAI,KAAK0G,eAAiB,KAAKA,cAAc1G,UACtCS,OAAOE,UAAU2G,eAAeC,KAAKzF,EAAK,KAAK4E,cAAc1G,UAClE,OAEF,MAAMoH,EAAM,KAAKP,SAAS/E,EAAI,KAAK6E,cAAc3G,WACjD,GAAIoH,KACMA,EAAIpF,QACFoF,EAAIpH,UAAYS,OAAOE,UAAU2G,eAAeC,KAAKzF,EAAKsF,EAAIpH,WACxE,OAAOoH,OAGT,IAAK,MAAMI,KAAO,KAAKX,SAAU,CAC/B,MAAMO,EAAM,KAAKP,SAASW,GAC1B,GAAIJ,EAAIpH,UAAYS,OAAOE,UAAU2G,eAAeC,KAAKzF,EAAKsF,EAAIpH,UAChE,OAAOoH,EAIb,MAAM,IAAIhG,MAAM,8BAClB,CAQAK,MAAAA,CAAOrC,GAAyB,IAC1B0G,EADgBzF,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE7B,MAAMkG,EAAM,KAAKd,cACXF,EAAQgB,EAAIhG,OAAOrC,EAAGiB,GACtBqH,EAAM,KAAKb,SAASJ,GAC1B,QAAIjF,IAAckG,EAAK,CACrB,MAAMhB,EAAgB,KAAKA,cAC3B,IAAIiB,EAAgB,EAChB,KAAKf,0BACPe,EAAiBF,EAAiCzF,OAAOjC,MAE3D+F,EAAO,KAAK3F,wBACZ2F,EAAK2B,EAAIzH,UAAYyG,EAGrBX,EAAKY,EAAe1G,UAAa0G,EAAejF,OAAOrC,EAAGiB,EAASsH,QAEnE7B,EAAO4B,EAAIjG,OAAOrC,EAAGiB,GAEvB,OAAOyF,CACT,CAQAjE,MAAAA,CAAOC,EAAmB1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAChD,MAAM6F,EAAM,KAAKH,iBAAiBnF,GAClC,QAAIN,IAAc4F,EAAK,CACrB,MAAMK,EAAM,KAAKd,cAGXe,EAAM,KAAKhB,cACjB,IAAIiB,EAAgB,EAOpB,OANI,KAAKf,0BACPe,EAAiBF,EAAiCzF,OAAOjC,MAE3D0H,EAAI5F,OAAOC,EAAI2F,EAAIzH,UAAWZ,EAAGiB,GAG1BsH,EAAgBD,EAAI7F,OAAOC,EAAI4F,EAAI1H,UAAYZ,EAAGiB,EAASsH,GAEpE,OAAOP,EAAIvF,OAAOC,EAAK1C,EAAGiB,EAC5B,CAeAuH,UAAAA,CAAWC,EAAiB7F,EAA8BhC,GACxD,MAAMQ,EAAK,IAAIsH,EAAc,KAAMD,EAAS7F,EAAQhC,GAEpD,OADA,KAAK6G,SAASgB,GAAWrH,EAClBA,CACT,CAgBA6G,UAAAA,CAAWU,GAAmC,IACxCF,EAD8BxH,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAO3C,OAJEsG,EADEE,aAAc1I,WACN,KAAKsH,cAAclF,OAAOsG,EAAI1H,GAE9B0H,EAEL,KAAKlB,SAASgB,EACvB,EAgCF,MAAaC,UAAsBjI,EAOjCC,WAAAA,CAAYkI,EAAcH,EAAiB7F,EAAqChC,GAC9E,KAAMgI,aAAiBxB,GACrB,MAAM,IAAIlH,UAAU,yBAEtB,IAAMW,OAAOC,UAAU2H,IAAc,EAAIA,EACvC,MAAM,IAAIvI,UAAU,4CAOtB,GALK,kBAAoB0C,QACjBR,IAAcxB,IACpBA,EAAWgC,EACXA,EAAS,MAEPA,EAAQ,CACV,KAAMA,aAAkBnC,GACtB,MAAM,IAAIP,UAAU,2BAEtB,GAAK,OAAS0I,EAAMtB,eACZ,GAAK1E,EAAOjC,MACZiC,EAAOjC,KAAOiI,EAAMtB,cAAc3G,KACxC,MAAM,IAAIqB,MAAM,iDAElB,GAAI,kBAAoBpB,EACtB,MAAM,IAAIV,UAAU,uCAGxB,IAAIS,EAAOiI,EAAMjI,KACb,EAAIiI,EAAMjI,OACZA,EAAOiC,EAASA,EAAOjC,KAAO,EACzB,GAAKA,GAASiI,EAAMpB,0BACvB7G,GAASiI,EAAMrB,cAA2C3E,OAAOjC,OAGrE,MAAMA,EAAMC,GAGZ,KAAKgI,MAAQA,EAKb,KAAKH,QAAUA,EAMf,KAAK7F,OAASA,GAAU,IAC1B,CAGA5B,OAAAA,CAAQhB,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC9B,GAAI,GAAK,KAAKxB,KAGZ,OAAO,KAAKA,KAEd,IAAI4H,EAAgB,EAChB,KAAKK,MAAMpB,0BACbe,EAAiB,KAAKK,MAAMrB,cAA2C3E,OAAOjC,MAGhF,IAAIA,EAAO,EAIX,OAHI,KAAKiC,SACPjC,EAAO,KAAKiC,OAAO5B,QAAQhB,EAAGiB,EAASsH,IAElCA,EAAgB5H,CACzB,CAGA0B,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAMuE,EAAO,KAAK3F,wBAClB,GAAI,OAAS,KAAK6H,MAAMX,WAAWjI,EAAGiB,GACpC,MAAM,IAAIe,MAAM,oBAElB,IAAIuG,EAAgB,EAWpB,OAVI,KAAKK,MAAMpB,0BACbe,EAAiB,KAAKK,MAAMrB,cAA2C3E,OAAOjC,MAE5E,KAAKiC,OACP8D,EAAK,KAAK9F,UAAY,KAAKgC,OAAOP,OAAOrC,EAAGiB,EAASsH,GAC5C,KAAK3H,SACd8F,EAAK,KAAK9F,WAAY,EACb,KAAKgI,MAAMpB,0BACpBd,EAAK,KAAKkC,MAAMrB,cAAc3G,UAAY,KAAK6H,SAE1C/B,CACT,CAGAjE,MAAAA,CAAOC,EAAmB1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC5CoG,EAAgB,EAIpB,GAHI,KAAKK,MAAMpB,0BACbe,EAAiB,KAAKK,MAAMrB,cAA2C3E,OAAOjC,MAE5E,KAAKiC,SACAvB,OAAOE,UAAU2G,eAAeC,KAAKzF,EAAK,KAAK9B,UACtD,MAAM,IAAIV,UAAU,0BAA4B,KAAKU,UAEvD,KAAKgI,MAAMrB,cAAc9E,OAAO,KAAKgG,QAASzI,EAAGiB,GACjD,IAAIN,EAAO4H,EACX,GAAI,KAAK3F,SACP,KAAKA,OAAOH,OAAOC,EAAI,KAAK9B,UAAWZ,EAAGiB,EAASsH,GACnD5H,GAAQ,KAAKiC,OAAO5B,QAAQhB,EAAGiB,EAASsH,GACnC,GAAK,KAAKK,MAAMjI,MACbA,EAAO,KAAKiI,MAAMjI,MACxB,MAAM,IAAIqB,MAAM,6CAGpB,OAAOrB,CACT,CAIAc,SAAAA,CAAUC,GACR,GAAI,KAAKkB,OACP,OAAO,KAAKA,OAAOnB,UAAUC,EAGjC,EASF,SAASmH,EAAiB7C,GAIxB,OAHI,EAAIA,IACNA,GAAK,YAEAA,CACT,CAiCA,MAAa8C,UAAqBrI,EAQhCC,WAAAA,CAAYqI,EAAqBC,EAAuBpI,GACtD,KAAOmI,aAAgBlG,GACbkG,aAAgBjG,GACxB,MAAM,IAAI5C,UAAU,wCAOtB,GALK,kBAAoB8I,QACjB5G,IAAcxB,IACpBA,EAAWoI,EACXA,GAAM,GAEJ,EAAID,EAAKpI,KACX,MAAM,IAAIO,WAAW,8BAEvB,MAAM6H,EAAKpI,KAAMC,GAKjB,KAAKmI,KAAOA,EASZ,KAAKC,MAAQA,EAQb,KAAK9C,OAAS,GAKd,IAAI+C,EAAQ,EACZ,KAAKC,gBAAkB,SAASlD,GAE9B,OADAiD,EAAQJ,EAAiB7C,GAClB,IACT,EACA,KAAKmD,gBAAkB,WACrB,OAAOF,CACT,CACF,CAGA5G,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAMuE,EAAO,KAAK3F,wBACZkI,EAAQ,KAAKF,KAAK1G,OAAOrC,EAAGiB,GAClC,KAAKiI,gBAAgBD,GACrB,IAAK,MAAM1C,KAAM,KAAKL,YAChB9D,IAAcmE,EAAG3F,WACnB8F,EAAKH,EAAG3F,UAAY2F,EAAGlE,OAAOrC,IAGlC,OAAO0G,CACT,CAOAjE,MAAAA,CAAOC,EAAmB1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAChD,MAAM8G,EAAQ,KAAKF,KAAK1G,OAAOrC,EAAGiB,GAClC,KAAKiI,gBAAgBD,GACrB,IAAK,MAAM1C,KAAM,KAAKL,OACpB,QAAI9D,IAAcmE,EAAG3F,SAAU,CAC7B,MAAMkG,EAAKpE,EAAI6D,EAAG3F,eACdwB,IAAc0E,GAChBP,EAAG9D,OAAOqE,GAIhB,OAAO,KAAKiC,KAAKtG,OAAO,KAAK0G,kBAAmBnJ,EAAGiB,EACrD,CAWAmI,QAAAA,CAASC,EAAczI,GACrB,MAAM0I,EAAK,IAAIC,EAAS,KAAMF,EAAMzI,GAEpC,OADA,KAAKsF,OAAOL,KAAKyD,GACVA,CACT,CAWAE,UAAAA,CAAW5I,GAET,MAAM0I,EAAK,IAAIG,EAAQ,KAAM7I,GAE7B,OADA,KAAKsF,OAAOL,KAAKyD,GACVA,CACT,CAUAI,QAAAA,CAAS9I,GACP,GAAI,kBAAoBA,EACtB,MAAM,IAAIV,UAAU,2BAEtB,IAAK,MAAMqG,KAAM,KAAKL,OACpB,GAAIK,EAAG3F,WAAaA,EAClB,OAAO2F,CAIb,EAuBF,MAAagD,EAOX7I,WAAAA,CAAYiJ,EAAyBN,EAAczI,GACjD,KAAM+I,aAAqBb,GACzB,MAAM,IAAI5I,UAAU,oCAEtB,IAAMW,OAAOC,UAAUuI,IAAW,GAAKA,EACrC,MAAM,IAAInJ,UAAU,iCAEtB,MAAM0J,EAAY,EAAID,EAAUhJ,KAC1BkJ,EAAWF,EAAUzD,OAAOH,QAAO,CAAC+D,EAAKvD,IAAOuD,EAAMvD,EAAG8C,MAAM,GACrE,GAAKA,EAAOQ,EAAYD,EACtB,MAAM,IAAI5H,MAAM,sCACG4H,EAAYC,GAAY,OACzBD,EAAY,YAKhC,KAAKD,UAAYA,EAGjB,KAAKN,KAAOA,EAOZ,KAAKU,WAAa,GAAKV,GAAQ,EAC3B,KAAOA,IACT,KAAKU,UAAY,YAMnB,KAAKC,MAAQH,EACT,KAAKF,UAAUX,MACjB,KAAKgB,MAAQJ,EAAYC,EAAWR,GAKtC,KAAKY,SAAWpB,EAAiB,KAAKkB,WAAa,KAAKC,OAYxD,KAAKpJ,SAAWA,CAClB,CAIAyB,MAAAA,CAAOrC,EAAgBiB,GAIrB,OAFkB4H,EADL,KAAKc,UAAUR,kBACc,KAAKc,YACnB,KAAKD,KAEnC,CAOAvH,MAAAA,CAAOwG,GACL,GAAI,kBAAoBA,IAChBpI,OAAOC,UAAUmI,IACjBA,IAAUJ,EAAiBI,EAAQ,KAAKc,WAC9C,MAAM,IAAI7J,UAAUyB,EAAiB,kBAAmB,MAClC,wCAA0C,KAAKoI,WAEvE,MAAMhB,EAAO,KAAKY,UAAUR,kBACtBe,EAAYrB,EAAiBI,GAAS,KAAKe,OACjD,KAAKL,UAAUT,gBAAgBL,EAAiBE,GAAQ,KAAKkB,UAC5BC,EACnC,EAoBF,MAAaT,UAAgBF,EAC3B7I,WAAAA,CAAYiJ,EAAyB/I,GACnC,MAAM+I,EAAW,EAAG/I,EACtB,CAKAyB,MAAAA,CAAOrC,EAAgBiB,GACrB,QAAS,MAAMoB,OAAOrC,EAAGiB,EAC3B,CAGAwB,MAAAA,CAAOwG,GACD,mBAAqBA,IAEvBA,GAASA,GAEX,MAAMxG,OAAOwG,EACf,EAkBF,MAAakB,UAAa1J,EAExBC,WAAAA,CAAYF,EAAiCI,GAC3C,KAAQJ,aAAkBsB,GAAmBtB,EAAOuB,WAC1ClB,OAAOC,UAAUN,IAAY,GAAKA,GAC1C,MAAM,IAAIN,UAAU,yEAItB,IAAIS,GAAQ,EACNH,aAAkBsB,IACtBnB,EAAOH,GAET,MAAMG,EAAMC,GAOZ,KAAKJ,OAASA,CAChB,CAGAQ,OAAAA,CAAQhB,EAAeiB,GACrB,IAAIN,EAAO,KAAKA,KAIhB,OAHI,EAAIA,IACNA,EAAQ,KAAKH,OAA0B6B,OAAOrC,EAAGiB,IAE5CN,CACT,CAGA0B,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACzBxB,EAAO,KAAKA,KAIhB,OAHI,EAAIA,IACNA,EAAQ,KAAKH,OAA0B6B,OAAOrC,EAAGiB,IAE5Cd,EAAmBH,GAAGoK,MAAMnJ,EAAQA,EAASN,EACtD,CAOA8B,MAAAA,CAAOC,EAAiB1C,EAAeiB,GACrC,IAAIN,EAAO,KAAKH,OAIhB,GAHI,KAAKA,kBAAkBsB,IACzBnB,EAAO+B,EAAIlC,UAEPkC,aAAezC,YAAcU,IAAS+B,EAAIlC,QAC9C,MAAM,IAAIN,UAAUyB,EAAiB,cAAe,MAC9B,qBAAuBhB,EAAO,uBAEtD,GAAKM,EAASN,EAAQX,EAAEQ,OACtB,MAAM,IAAIU,WAAW,gCAEvB,MAAMmJ,EAAYlK,EAAmBuC,GAKrC,OAJAvC,EAAmBH,GAAGsK,MAAMD,EAAUE,SAAS,OAAQtJ,EAAQN,EAAM,OACjE,KAAKH,kBAAkBsB,GACzB,KAAKtB,OAAOiC,OAAO9B,EAAMX,EAAGiB,GAEvBN,CACT,EAgBF,MAAa6J,UAAgB/J,EAC3BC,WAAAA,CAAYE,GACV,OAAO,EAAGA,EACZ,CAGAI,OAAAA,CAAQhB,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC9BpC,EAAgBC,GAChB,IAAI2F,EAAM1E,EACV,KAAQ0E,EAAM3F,EAAEQ,QAAY,IAAMR,EAAE2F,IAClCA,GAAO,EAET,OAAO,EAAIA,EAAM1E,CACnB,CAGAoB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAMxB,EAAO,KAAKK,QAAQhB,EAAGiB,GAC7B,OAAOd,EAAmBH,GAAGoK,MAAMnJ,EAAQA,EAASN,EAAO,GAAG4J,SAAS,QACzE,CAGA9H,MAAAA,CAAOC,EAAa1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAItC,kBAAoBO,IACtBA,EAAM+H,OAAO/H,IAEf,MAAMgI,EAAO7K,EAAAO,OAAOC,KAAKqC,EAAK,QACxB/B,EAAO+J,EAAKlK,OAClB,GAAKS,EAASN,EAAQX,EAAEQ,OACtB,MAAM,IAAIU,WAAW,4BAEvB,MAAMZ,EAASH,EAAmBH,GAGlC,OAFA0K,EAAKC,KAAKrK,EAAQW,GAClBX,EAAOW,EAASN,GAAQ,EACjBA,EAAO,CAChB,EAsBF,MAAaiK,UAAanK,EAExBC,WAAAA,CAAYmK,EAA2BjK,GAKrC,GAJK,kBAAoBiK,QAAazI,IAAcxB,IAClDA,EAAWiK,EACXA,OAAUzI,QAERA,IAAcyI,EAChBA,GAAW,OACN,IAAKhK,OAAOC,UAAU+J,GAC3B,MAAM,IAAI3K,UAAU,8BAGtB,OAAO,EAAGU,GAUV,KAAKiK,QAAUA,CACjB,CAGA7J,OAAAA,CAAQhB,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAE9B,OADApC,EAAgBC,GACTA,EAAEQ,OAASS,CACpB,CAGAoB,MAAAA,CAAOrC,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7B,MAAMxB,EAAO,KAAKK,QAAQhB,EAAGiB,GAC7B,GAAK,GAAK,KAAK4J,SACP,KAAKA,QAAUlK,EACrB,MAAM,IAAIO,WAAW,+BAEvB,OAAOf,EAAmBH,GAAGoK,MAAMnJ,EAAQA,EAASN,GAAM4J,SAAS,QACrE,CAGA9H,MAAAA,CAAOC,EAA4B1C,GAAyB,IAAViB,EAAMkB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAIrD,kBAAoBO,IACtBA,EAAM+H,OAAO/H,IAEf,MAAMgI,EAAO7K,EAAAO,OAAOC,KAAKqC,EAAK,QACxB/B,EAAO+J,EAAKlK,OAClB,GAAK,GAAK,KAAKqK,SACP,KAAKA,QAAUlK,EACrB,MAAM,IAAIO,WAAW,+BAEvB,GAAKD,EAASN,EAAQX,EAAEQ,OACtB,MAAM,IAAIU,WAAW,4BAGvB,OADAwJ,EAAKC,KAAKxK,EAAmBH,GAAIiB,GAC1BN,CACT,EAsBF,MAAamK,UAAoBrK,EAE/BC,WAAAA,CAAYuI,EAAUrI,GACpB,MAAM,EAAGA,GAWT,KAAKqI,MAAQA,CACf,CAGA5G,MAAAA,CAAOrC,EAAgBiB,GACrB,OAAO,KAAKgI,KACd,CAGAxG,MAAAA,CAAOC,EAAQ1C,EAAgBiB,GAE7B,OAAO,CACT,EAOW8J,EAAAA,GAAU,CAACnI,EAAwB3B,EAAiBL,IAC7D,IAAI+B,EAAaC,EAAQ3B,EAAQL,GAIxBmK,EAAAA,GAAOnK,GAA4B,IAAIiC,EAAK,EAAGjC,GAI/CmK,EAAAA,GAAQnK,GAA4B,IAAIiC,EAAK,EAAGjC,GAQhDmK,EAAAA,GAAQnK,GAA4B,IAAIiC,EAAK,EAAGjC,GAYhDmK,EAAAA,GAASnK,GAAkC,IAAImD,EAAWnD,GAoD1DmK,EAAAA,GAASnK,GAAiC,IAAI0D,EAAU1D,GAuCxDmK,EAAAA,GAAU,CAAI7E,EAA8BtF,EAAmBuF,IACxE,IAAIF,EAAaC,EAAQtF,EAAUuF,GAO1B4E,EAAAA,GAAO,CAAItF,EAA0BC,EAAgC9E,IAC9E,IAAI4E,EAAYC,EAAeC,EAAO9E,GAY7BmK,EAAAA,GAAQ,CAACvK,EAAiCI,IAA4B,IAAIuJ,EAAK3J,EAAQI,gCCnkFpG,IAAIoK,EAAUlL,EAAAA,MAAAA,OA+GdmL,EAAOF,QA9GP,SAAeG,GACb,GAAIA,EAAS1K,QAAU,IAAO,MAAM,IAAIN,UAAU,qBAElD,IADA,IAAIiL,EAAW,IAAIlL,WAAW,KACrBmL,EAAI,EAAGA,EAAID,EAAS3K,OAAQ4K,IACnCD,EAASC,GAAK,IAEhB,IAAK,IAAIxF,EAAI,EAAGA,EAAIsF,EAAS1K,OAAQoF,IAAK,CACxC,IAAIyF,EAAIH,EAASI,OAAO1F,GACpB2F,EAAKF,EAAEG,WAAW,GACtB,GAAqB,MAAjBL,EAASI,GAAe,MAAM,IAAIrL,UAAUmL,EAAI,iBACpDF,EAASI,GAAM3F,CACjB,CACA,IAAI6F,EAAOP,EAAS1K,OAChBkL,EAASR,EAASI,OAAO,GACzBK,EAASpJ,KAAKqJ,IAAIH,GAAQlJ,KAAKqJ,IAAI,KACnCC,EAAUtJ,KAAKqJ,IAAI,KAAOrJ,KAAKqJ,IAAIH,GAyCvC,SAASK,EAAcC,GACrB,GAAsB,kBAAXA,EAAuB,MAAM,IAAI7L,UAAU,mBACtD,GAAsB,IAAlB6L,EAAOvL,OAAgB,OAAOwK,EAAQgB,MAAM,GAKhD,IAJA,IAAIC,EAAM,EAENC,EAAS,EACT1L,EAAS,EACNuL,EAAOE,KAASP,GACrBQ,IACAD,IAMF,IAHA,IAAIE,GAAUJ,EAAOvL,OAASyL,GAAON,EAAU,IAAO,EAClDS,EAAO,IAAInM,WAAWkM,GAEnBF,EAAMF,EAAOvL,QAAQ,CAE1B,IAAI6L,EAAQlB,EAASY,EAAOP,WAAWS,IAEvC,GAAc,MAAVI,EAAiB,OAErB,IADA,IAAIzG,EAAI,EACC0G,EAAMH,EAAO,GAAc,IAAVE,GAAezG,EAAIpF,KAAqB,IAAT8L,EAAaA,IAAO1G,IAC3EyG,GAAUZ,EAAOW,EAAKE,KAAU,EAChCF,EAAKE,GAAQD,EAAQ,MAAS,EAC9BA,EAASA,EAAQ,MAAS,EAE5B,GAAc,IAAVA,EAAe,MAAM,IAAIrK,MAAM,kBACnCxB,EAASoF,EACTqG,GACF,CAGA,IADA,IAAIM,EAAMJ,EAAO3L,EACV+L,IAAQJ,GAAsB,IAAdC,EAAKG,IAC1BA,IAEF,IAAIC,EAAMxB,EAAQyB,YAAYP,GAAUC,EAAOI,IAC/CC,EAAIE,KAAK,EAAM,EAAGR,GAElB,IADA,IAAId,EAAIc,EACDK,IAAQJ,GACbK,EAAIpB,KAAOgB,EAAKG,KAElB,OAAOC,CACT,CAMA,MAAO,CACL/J,OAzFF,SAAiBsJ,GAEf,IADI3F,MAAMC,QAAQ0F,IAAWA,aAAkB9L,cAAc8L,EAASf,EAAQ3K,KAAK0L,KAC9Ef,EAAQ2B,SAASZ,GAAW,MAAM,IAAI7L,UAAU,mBACrD,GAAsB,IAAlB6L,EAAOvL,OAAgB,MAAO,GAMlC,IAJA,IAAI0L,EAAS,EACT1L,EAAS,EACToM,EAAS,EACTC,EAAOd,EAAOvL,OACXoM,IAAWC,GAA2B,IAAnBd,EAAOa,IAC/BA,IACAV,IAMF,IAHA,IAAIC,GAASU,EAAOD,GAAUf,EAAU,IAAO,EAC3CiB,EAAM,IAAI7M,WAAWkM,GAElBS,IAAWC,GAAM,CAItB,IAHA,IAAIR,EAAQN,EAAOa,GAEfhH,EAAI,EACCmH,EAAMZ,EAAO,GAAc,IAAVE,GAAezG,EAAIpF,KAAqB,IAATuM,EAAaA,IAAOnH,IAC3EyG,GAAU,IAAMS,EAAIC,KAAU,EAC9BD,EAAIC,GAAQV,EAAQZ,IAAU,EAC9BY,EAASA,EAAQZ,IAAU,EAE7B,GAAc,IAAVY,EAAe,MAAM,IAAIrK,MAAM,kBACnCxB,EAASoF,EACTgH,GACF,CAGA,IADA,IAAII,EAAMb,EAAO3L,EACVwM,IAAQb,GAAqB,IAAbW,EAAIE,IACzBA,IAIF,IADA,IAAIC,EAAMvB,EAAOwB,OAAOhB,GACjBc,EAAMb,IAAQa,EAAOC,GAAO/B,EAASI,OAAOwB,EAAIE,IACvD,OAAOC,CACT,EAmDEnB,aAAcA,EACdzJ,OARF,SAAiB8K,GACf,IAAI7M,EAASwL,EAAaqB,GAC1B,GAAI7M,EAAU,OAAOA,EACrB,MAAM,IAAI0B,MAAM,WAAayJ,EAAO,aACtC,EAMF,kBCrHA,IAAI2B,EAAQtN,EAAQ,MAGpBmL,EAAOF,QAAUqC,EAFF,yFCCfrC,EAAQsC,WAuCR,SAAqBC,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,CAClD,EA3CA3C,EAAQ4C,YAiDR,SAAsBL,GACpB,IAAIM,EAcAhI,EAbA2H,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBM,EAAM,IAAIC,EAVhB,SAAsBR,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,CAClD,CAQoBK,CAAYT,EAAKG,EAAUC,IAEzCM,EAAU,EAGVC,EAAMP,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAK7H,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBgI,EACGM,EAAUZ,EAAI9B,WAAW5F,KAAO,GAChCsI,EAAUZ,EAAI9B,WAAW5F,EAAI,KAAO,GACpCsI,EAAUZ,EAAI9B,WAAW5F,EAAI,KAAO,EACrCsI,EAAUZ,EAAI9B,WAAW5F,EAAI,IAC/BiI,EAAIG,KAAcJ,GAAO,GAAM,IAC/BC,EAAIG,KAAcJ,GAAO,EAAK,IAC9BC,EAAIG,KAAmB,IAANJ,EAGK,IAApBF,IACFE,EACGM,EAAUZ,EAAI9B,WAAW5F,KAAO,EAChCsI,EAAUZ,EAAI9B,WAAW5F,EAAI,KAAO,EACvCiI,EAAIG,KAAmB,IAANJ,GAGK,IAApBF,IACFE,EACGM,EAAUZ,EAAI9B,WAAW5F,KAAO,GAChCsI,EAAUZ,EAAI9B,WAAW5F,EAAI,KAAO,EACpCsI,EAAUZ,EAAI9B,WAAW5F,EAAI,KAAO,EACvCiI,EAAIG,KAAcJ,GAAO,EAAK,IAC9BC,EAAIG,KAAmB,IAANJ,GAGnB,OAAOC,CACT,EA5FA9C,EAAQoD,cAkHR,SAAwBC,GAQtB,IAPA,IAAIR,EACAK,EAAMG,EAAM5N,OACZ6N,EAAaJ,EAAM,EACnBK,EAAQ,GACRC,EAAiB,MAGZ3I,EAAI,EAAG4I,EAAOP,EAAMI,EAAYzI,EAAI4I,EAAM5I,GAAK2I,EACtDD,EAAMzI,KAAK4I,EAAYL,EAAOxI,EAAIA,EAAI2I,EAAkBC,EAAOA,EAAQ5I,EAAI2I,IAI1D,IAAfF,GACFT,EAAMQ,EAAMH,EAAM,GAClBK,EAAMzI,KACJ6I,EAAOd,GAAO,GACdc,EAAQd,GAAO,EAAK,IACpB,OAEsB,IAAfS,IACTT,GAAOQ,EAAMH,EAAM,IAAM,GAAKG,EAAMH,EAAM,GAC1CK,EAAMzI,KACJ6I,EAAOd,GAAO,IACdc,EAAQd,GAAO,EAAK,IACpBc,EAAQd,GAAO,EAAK,IACpB,MAIJ,OAAOU,EAAMK,KAAK,GACpB,EA1IA,IALA,IAAID,EAAS,GACTR,EAAY,GACZJ,EAA4B,qBAAf7N,WAA6BA,WAAamG,MAEvDwI,EAAO,mEACFhJ,EAAI,EAAsBA,EAAbgJ,KAAwBhJ,EAC5C8I,EAAO9I,GAAKgJ,EAAKhJ,GACjBsI,EAAUU,EAAKpD,WAAW5F,IAAMA,EAQlC,SAAS4H,EAASF,GAChB,IAAIW,EAAMX,EAAI9M,OAEd,GAAIyN,EAAM,EAAI,EACZ,MAAM,IAAIjM,MAAM,kDAKlB,IAAIyL,EAAWH,EAAIuB,QAAQ,KAO3B,OANkB,IAAdpB,IAAiBA,EAAWQ,GAMzB,CAACR,EAJcA,IAAaQ,EAC/B,EACA,EAAKR,EAAW,EAGtB,CAmEA,SAASgB,EAAaL,EAAOpE,EAAO8E,GAGlC,IAFA,IAAIlB,EARoBmB,EASpBC,EAAS,GACJpJ,EAAIoE,EAAOpE,EAAIkJ,EAAKlJ,GAAK,EAChCgI,GACIQ,EAAMxI,IAAM,GAAM,WAClBwI,EAAMxI,EAAI,IAAM,EAAK,QACP,IAAfwI,EAAMxI,EAAI,IACboJ,EAAOnJ,KAdF6I,GADiBK,EAeMnB,IAdT,GAAK,IACxBc,EAAOK,GAAO,GAAK,IACnBL,EAAOK,GAAO,EAAI,IAClBL,EAAa,GAANK,IAaT,OAAOC,EAAOL,KAAK,GACrB,CAlGAT,EAAU,IAAI1C,WAAW,IAAM,GAC/B0C,EAAU,IAAI1C,WAAW,IAAM,8BCE/BT,EAAQ,GAZR,SAAoBkE,GAChB,CACI,MAAMC,EAAW9O,OAAOC,KAAK4O,GAC7BC,EAASC,UACT,MAAMC,EAAMF,EAAS3E,SAAS,OAC9B,OAAmB,IAAf6E,EAAI5O,OACG6O,OAAO,GAEXA,OAAO,KAAKD,IACvB,CAEJ,EAkCArE,EAAQ,GAVR,SAAoBgE,EAAKO,GACrB,CACI,MAAMF,EAAML,EAAIxE,SAAS,IACnBjK,EAASF,OAAOC,KAAK+O,EAAIG,SAAiB,EAARD,EAAW,KAAKlF,MAAM,EAAW,EAARkF,GAAY,OAE7E,OADAhP,EAAO6O,UACA7O,CACX,CAGJ,yBCrDA,SAAW2K,EAAQF,GACjB,aAGA,SAASyE,EAAQC,EAAKC,GACpB,IAAKD,EAAK,MAAM,IAAIzN,MAAM0N,GAAO,mBACnC,CAIA,SAASC,EAAUC,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAASxO,UAAYsO,EAAUtO,UAC/BqO,EAAKrO,UAAY,IAAIwO,EACrBH,EAAKrO,UAAUb,YAAckP,CAC/B,CAIA,SAASI,EAAIC,EAAQC,EAAMC,GACzB,GAAIH,EAAGI,KAAKH,GACV,OAAOA,EAGTI,KAAKC,SAAW,EAChBD,KAAKE,MAAQ,KACbF,KAAK7P,OAAS,EAGd6P,KAAKG,IAAM,KAEI,OAAXP,IACW,OAATC,GAA0B,OAATA,IACnBC,EAASD,EACTA,EAAO,IAGTG,KAAKI,MAAMR,GAAU,EAAGC,GAAQ,GAAIC,GAAU,MAElD,CAUA,IAAI/P,EATkB,kBAAX6K,EACTA,EAAOF,QAAUiF,EAEjBjF,EAAQiF,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGU,SAAW,GAGd,IAEItQ,EADoB,qBAAXuQ,QAAmD,qBAAlBA,OAAOvQ,OACxCuQ,OAAOvQ,OAEPN,EAAAA,MAAAA,MAEb,CAAE,MAAO0G,GACT,CA+HA,SAASoK,EAAezD,EAAQ0D,GAC9B,IAAIC,EAAI3D,EAAO3B,WAAWqF,GAE1B,OAAIC,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,GAClBA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,QAEXtB,GAAO,EAAO,wBAA0BrC,EAE5C,CAEA,SAAS4D,EAAc5D,EAAQ6D,EAAYH,GACzC,IAAII,EAAIL,EAAczD,EAAQ0D,GAI9B,OAHIA,EAAQ,GAAKG,IACfC,GAAKL,EAAczD,EAAQ0D,EAAQ,IAAM,GAEpCI,CACT,CA6CA,SAASC,EAAWjE,EAAKjD,EAAO8E,EAAKqC,GAInC,IAHA,IAAIF,EAAI,EACJjR,EAAI,EACJiO,EAAM1L,KAAK6O,IAAInE,EAAIzM,OAAQsO,GACtBlJ,EAAIoE,EAAOpE,EAAIqI,EAAKrI,IAAK,CAChC,IAAIkL,EAAI7D,EAAIzB,WAAW5F,GAAK,GAE5BqL,GAAKE,EAIHnR,EADE8Q,GAAK,GACHA,EAAI,GAAK,GAGJA,GAAK,GACVA,EAAI,GAAK,GAITA,EAENtB,EAAOsB,GAAK,GAAK9Q,EAAImR,EAAK,qBAC1BF,GAAKjR,CACP,CACA,OAAOiR,CACT,CA2DA,SAASI,EAAM3K,EAAMhE,GACnBgE,EAAK6J,MAAQ7N,EAAI6N,MACjB7J,EAAKlG,OAASkC,EAAIlC,OAClBkG,EAAK4J,SAAW5N,EAAI4N,SACpB5J,EAAK8J,IAAM9N,EAAI8N,GACjB,CAqCA,GA9TAR,EAAGI,KAAO,SAAerB,GACvB,OAAIA,aAAeiB,GAIJ,OAARjB,GAA+B,kBAARA,GAC5BA,EAAIrO,YAAYgQ,WAAaV,EAAGU,UAAYtK,MAAMC,QAAQ0I,EAAIwB,MAClE,EAEAP,EAAGsB,IAAM,SAAcC,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,CACT,EAEAxB,EAAGoB,IAAM,SAAcG,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,CACT,EAEAxB,EAAGzO,UAAUkP,MAAQ,SAAeR,EAAQC,EAAMC,GAChD,GAAsB,kBAAXF,EACT,OAAOI,KAAKqB,YAAYzB,EAAQC,EAAMC,GAGxC,GAAsB,kBAAXF,EACT,OAAOI,KAAKsB,WAAW1B,EAAQC,EAAMC,GAG1B,QAATD,IACFA,EAAO,IAETV,EAAOU,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIlG,EAAQ,EACM,OAFlBiG,EAASA,EAAO1F,WAAWqH,QAAQ,OAAQ,KAEhC,KACT5H,IACAqG,KAAKC,SAAW,GAGdtG,EAAQiG,EAAOzP,SACJ,KAAT0P,EACFG,KAAKwB,UAAU5B,EAAQjG,EAAOmG,IAE9BE,KAAKyB,WAAW7B,EAAQC,EAAMlG,GACf,OAAXmG,GACFE,KAAKsB,WAAWtB,KAAK0B,UAAW7B,EAAMC,IAI9C,EAEAH,EAAGzO,UAAUmQ,YAAc,SAAsBzB,EAAQC,EAAMC,GACzDF,EAAS,IACXI,KAAKC,SAAW,EAChBL,GAAUA,GAERA,EAAS,UACXI,KAAKE,MAAQ,CAAU,SAATN,GACdI,KAAK7P,OAAS,GACLyP,EAAS,kBAClBI,KAAKE,MAAQ,CACF,SAATN,EACCA,EAAS,SAAa,UAEzBI,KAAK7P,OAAS,IAEdgP,EAAOS,EAAS,kBAChBI,KAAKE,MAAQ,CACF,SAATN,EACCA,EAAS,SAAa,SACvB,GAEFI,KAAK7P,OAAS,GAGD,OAAX2P,GAGJE,KAAKsB,WAAWtB,KAAK0B,UAAW7B,EAAMC,EACxC,EAEAH,EAAGzO,UAAUoQ,WAAa,SAAqB1B,EAAQC,EAAMC,GAG3D,GADAX,EAAgC,kBAAlBS,EAAOzP,QACjByP,EAAOzP,QAAU,EAGnB,OAFA6P,KAAKE,MAAQ,CAAC,GACdF,KAAK7P,OAAS,EACP6P,KAGTA,KAAK7P,OAAS+B,KAAKyP,KAAK/B,EAAOzP,OAAS,GACxC6P,KAAKE,MAAQ,IAAInK,MAAMiK,KAAK7P,QAC5B,IAAK,IAAIoF,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAC/ByK,KAAKE,MAAM3K,GAAK,EAGlB,IAAIwF,EAAG6G,EACHC,EAAM,EACV,GAAe,OAAX/B,EACF,IAAKvK,EAAIqK,EAAOzP,OAAS,EAAG4K,EAAI,EAAGxF,GAAK,EAAGA,GAAK,EAC9CqM,EAAIhC,EAAOrK,GAAMqK,EAAOrK,EAAI,IAAM,EAAMqK,EAAOrK,EAAI,IAAM,GACzDyK,KAAKE,MAAMnF,IAAO6G,GAAKC,EAAO,SAC9B7B,KAAKE,MAAMnF,EAAI,GAAM6G,IAAO,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP9G,UAGC,GAAe,OAAX+E,EACT,IAAKvK,EAAI,EAAGwF,EAAI,EAAGxF,EAAIqK,EAAOzP,OAAQoF,GAAK,EACzCqM,EAAIhC,EAAOrK,GAAMqK,EAAOrK,EAAI,IAAM,EAAMqK,EAAOrK,EAAI,IAAM,GACzDyK,KAAKE,MAAMnF,IAAO6G,GAAKC,EAAO,SAC9B7B,KAAKE,MAAMnF,EAAI,GAAM6G,IAAO,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACP9G,KAIN,OAAOiF,KAAK8B,QACd,EA0BAnC,EAAGzO,UAAUsQ,UAAY,SAAoB5B,EAAQjG,EAAOmG,GAE1DE,KAAK7P,OAAS+B,KAAKyP,MAAM/B,EAAOzP,OAASwJ,GAAS,GAClDqG,KAAKE,MAAQ,IAAInK,MAAMiK,KAAK7P,QAC5B,IAAK,IAAIoF,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAC/ByK,KAAKE,MAAM3K,GAAK,EAIlB,IAGIqM,EAHAC,EAAM,EACN9G,EAAI,EAGR,GAAe,OAAX+E,EACF,IAAKvK,EAAIqK,EAAOzP,OAAS,EAAGoF,GAAKoE,EAAOpE,GAAK,EAC3CqM,EAAIlB,EAAad,EAAQjG,EAAOpE,IAAMsM,EACtC7B,KAAKE,MAAMnF,IAAU,SAAJ6G,EACbC,GAAO,IACTA,GAAO,GACP9G,GAAK,EACLiF,KAAKE,MAAMnF,IAAM6G,IAAM,IAEvBC,GAAO,OAKX,IAAKtM,GADaqK,EAAOzP,OAASwJ,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAOpE,EAAIqK,EAAOzP,OAAQoF,GAAK,EAC1EqM,EAAIlB,EAAad,EAAQjG,EAAOpE,IAAMsM,EACtC7B,KAAKE,MAAMnF,IAAU,SAAJ6G,EACbC,GAAO,IACTA,GAAO,GACP9G,GAAK,EACLiF,KAAKE,MAAMnF,IAAM6G,IAAM,IAEvBC,GAAO,EAKb7B,KAAK8B,QACP,EA6BAnC,EAAGzO,UAAUuQ,WAAa,SAAqB7B,EAAQC,EAAMlG,GAE3DqG,KAAKE,MAAQ,CAAC,GACdF,KAAK7P,OAAS,EAGd,IAAK,IAAI4R,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWnC,EAClEkC,IAEFA,IACAC,EAAWA,EAAUnC,EAAQ,EAO7B,IALA,IAAIoC,EAAQrC,EAAOzP,OAASwJ,EACxBuI,EAAMD,EAAQF,EACdtD,EAAMvM,KAAK6O,IAAIkB,EAAOA,EAAQC,GAAOvI,EAErCjB,EAAO,EACFnD,EAAIoE,EAAOpE,EAAIkJ,EAAKlJ,GAAKwM,EAChCrJ,EAAOmI,EAAUjB,EAAQrK,EAAGA,EAAIwM,EAASlC,GAEzCG,KAAKmC,MAAMH,GACPhC,KAAKE,MAAM,GAAKxH,EAAO,SACzBsH,KAAKE,MAAM,IAAMxH,EAEjBsH,KAAKoC,OAAO1J,GAIhB,GAAY,IAARwJ,EAAW,CACb,IAAI7O,EAAM,EAGV,IAFAqF,EAAOmI,EAAUjB,EAAQrK,EAAGqK,EAAOzP,OAAQ0P,GAEtCtK,EAAI,EAAGA,EAAI2M,EAAK3M,IACnBlC,GAAOwM,EAGTG,KAAKmC,MAAM9O,GACP2M,KAAKE,MAAM,GAAKxH,EAAO,SACzBsH,KAAKE,MAAM,IAAMxH,EAEjBsH,KAAKoC,OAAO1J,EAEhB,CAEAsH,KAAK8B,QACP,EAEAnC,EAAGzO,UAAUoJ,KAAO,SAAejE,GACjCA,EAAK6J,MAAQ,IAAInK,MAAMiK,KAAK7P,QAC5B,IAAK,IAAIoF,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAC/Bc,EAAK6J,MAAM3K,GAAKyK,KAAKE,MAAM3K,GAE7Bc,EAAKlG,OAAS6P,KAAK7P,OACnBkG,EAAK4J,SAAWD,KAAKC,SACrB5J,EAAK8J,IAAMH,KAAKG,GAClB,EASAR,EAAGzO,UAAUmR,MAAQ,SAAgBhM,GACnC2K,EAAK3K,EAAM2J,KACb,EAEAL,EAAGzO,UAAUoR,MAAQ,WACnB,IAAI1B,EAAI,IAAIjB,EAAG,MAEf,OADAK,KAAK1F,KAAKsG,GACHA,CACT,EAEAjB,EAAGzO,UAAUqR,QAAU,SAAkBzG,GACvC,KAAOkE,KAAK7P,OAAS2L,GACnBkE,KAAKE,MAAMF,KAAK7P,UAAY,EAE9B,OAAO6P,IACT,EAGAL,EAAGzO,UAAU4Q,OAAS,WACpB,KAAO9B,KAAK7P,OAAS,GAAqC,IAAhC6P,KAAKE,MAAMF,KAAK7P,OAAS,IACjD6P,KAAK7P,SAEP,OAAO6P,KAAKwC,WACd,EAEA7C,EAAGzO,UAAUsR,UAAY,WAKvB,OAHoB,IAAhBxC,KAAK7P,QAAkC,IAAlB6P,KAAKE,MAAM,KAClCF,KAAKC,SAAW,GAEXD,IACT,EAIsB,qBAAXyC,QAAgD,oBAAfA,OAAOC,IACjD,IACE/C,EAAGzO,UAAUuR,OAAOC,IAAI,+BAAiCC,CAC3D,CAAE,MAAOxM,GACPwJ,EAAGzO,UAAUyR,QAAUA,CACzB,MAEAhD,EAAGzO,UAAUyR,QAAUA,EAGzB,SAASA,IACP,OAAQ3C,KAAKG,IAAM,UAAY,SAAWH,KAAK9F,SAAS,IAAM,GAChE,CAgCA,IAAI0I,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAG9DnD,EAAGzO,UAAUgJ,SAAW,SAAmB2F,EAAMkD,GAI/C,IAAIC,EACJ,GAHAD,EAAoB,EAAVA,GAAe,EAGZ,MAJblD,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCmD,EAAM,GAGN,IAFA,IAAInB,EAAM,EACN7F,EAAQ,EACHzG,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAAK,CACpC,IAAIqM,EAAI5B,KAAKE,MAAM3K,GACfmD,GAA+B,UAArBkJ,GAAKC,EAAO7F,IAAmB9B,SAAS,IACtD8B,EAAS4F,IAAO,GAAKC,EAAQ,UAC7BA,GAAO,IACI,KACTA,GAAO,GACPtM,KAGAyN,EADY,IAAVhH,GAAezG,IAAMyK,KAAK7P,OAAS,EAC/ByS,EAAM,EAAIlK,EAAKvI,QAAUuI,EAAOsK,EAEhCtK,EAAOsK,CAEjB,CAIA,IAHc,IAAVhH,IACFgH,EAAMhH,EAAM9B,SAAS,IAAM8I,GAEtBA,EAAI7S,OAAS4S,IAAY,GAC9BC,EAAM,IAAMA,EAKd,OAHsB,IAAlBhD,KAAKC,WACP+C,EAAM,IAAMA,GAEPA,CACT,CAEA,GAAInD,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIoD,EAAYJ,EAAWhD,GAEvBqD,EAAYJ,EAAWjD,GAC3BmD,EAAM,GACN,IAAIvC,EAAIT,KAAKsC,QAEb,IADA7B,EAAER,SAAW,GACLQ,EAAE0C,UAAU,CAClB,IAAIvC,EAAIH,EAAE2C,MAAMF,GAAWhJ,SAAS2F,GAMlCmD,GALFvC,EAAIA,EAAE4C,MAAMH,IAELC,SAGCvC,EAAIoC,EAFJJ,EAAMK,EAAYrC,EAAEzQ,QAAUyQ,EAAIoC,CAI5C,CAIA,IAHIhD,KAAKmD,WACPH,EAAM,IAAMA,GAEPA,EAAI7S,OAAS4S,IAAY,GAC9BC,EAAM,IAAMA,EAKd,OAHsB,IAAlBhD,KAAKC,WACP+C,EAAM,IAAMA,GAEPA,CACT,CAEA7D,GAAO,EAAO,kCAChB,EAEAQ,EAAGzO,UAAUoS,SAAW,WACtB,IAAIC,EAAMvD,KAAKE,MAAM,GASrB,OARoB,IAAhBF,KAAK7P,OACPoT,GAAuB,SAAhBvD,KAAKE,MAAM,GACO,IAAhBF,KAAK7P,QAAkC,IAAlB6P,KAAKE,MAAM,GAEzCqD,GAAO,iBAAoC,SAAhBvD,KAAKE,MAAM,GAC7BF,KAAK7P,OAAS,GACvBgP,GAAO,EAAO,8CAEU,IAAlBa,KAAKC,UAAmBsD,EAAMA,CACxC,EAEA5D,EAAGzO,UAAUsS,OAAS,WACpB,OAAOxD,KAAK9F,SAAS,GAAI,EAC3B,EAEInK,IACF4P,EAAGzO,UAAUuS,SAAW,SAAmB3D,EAAQ3P,GACjD,OAAO6P,KAAK0D,YAAY3T,EAAQ+P,EAAQ3P,EAC1C,GAGFwP,EAAGzO,UAAUwQ,QAAU,SAAkB5B,EAAQ3P,GAC/C,OAAO6P,KAAK0D,YAAY3N,MAAO+J,EAAQ3P,EACzC,EA2gBA,SAASwT,EAAYC,EAAMlF,EAAKsE,GAC9BA,EAAI/C,SAAWvB,EAAIuB,SAAW2D,EAAK3D,SACnC,IAAIrC,EAAOgG,EAAKzT,OAASuO,EAAIvO,OAAU,EACvC6S,EAAI7S,OAASyN,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIiG,EAAoB,EAAhBD,EAAK1D,MAAM,GACfvQ,EAAmB,EAAf+O,EAAIwB,MAAM,GACdU,EAAIiD,EAAIlU,EAER6B,EAAS,SAAJoP,EACL5E,EAAS4E,EAAI,SAAa,EAC9BoC,EAAI9C,MAAM,GAAK1O,EAEf,IAAK,IAAIsS,EAAI,EAAGA,EAAIlG,EAAKkG,IAAK,CAM5B,IAHA,IAAIC,EAAS/H,IAAU,GACnBgI,EAAgB,SAARhI,EACRiI,EAAO/R,KAAK6O,IAAI+C,EAAGpF,EAAIvO,OAAS,GAC3B4K,EAAI7I,KAAK+O,IAAI,EAAG6C,EAAIF,EAAKzT,OAAS,GAAI4K,GAAKkJ,EAAMlJ,IAAK,CAC7D,IAAIxF,EAAKuO,EAAI/I,EAAK,EAIlBgJ,IADAnD,GAFAiD,EAAoB,EAAhBD,EAAK1D,MAAM3K,KACf5F,EAAmB,EAAf+O,EAAIwB,MAAMnF,IACFiJ,GACG,SAAa,EAC5BA,EAAY,SAAJpD,CACV,CACAoC,EAAI9C,MAAM4D,GAAa,EAARE,EACfhI,EAAiB,EAAT+H,CACV,CAOA,OANc,IAAV/H,EACFgH,EAAI9C,MAAM4D,GAAa,EAAR9H,EAEfgH,EAAI7S,SAGC6S,EAAIlB,QACb,CAziBAnC,EAAGzO,UAAUwS,YAAc,SAAsBQ,EAAWpE,EAAQ3P,GAClE6P,KAAK8B,SAEL,IAAI9E,EAAagD,KAAKhD,aAClBmH,EAAYhU,GAAU+B,KAAK+O,IAAI,EAAGjE,GACtCmC,EAAOnC,GAAcmH,EAAW,yCAChChF,EAAOgF,EAAY,EAAG,+BAEtB,IAAIC,EAfS,SAAmBF,EAAWpI,GAC3C,OAAIoI,EAAU9H,YACL8H,EAAU9H,YAAYN,GAExB,IAAIoI,EAAUpI,EACvB,CAUYuI,CAASH,EAAWC,GAG9B,OADAnE,KAAK,gBADoB,OAAXF,EAAkB,KAAO,OACRsE,EAAKpH,GAC7BoH,CACT,EAEAzE,EAAGzO,UAAUoT,eAAiB,SAAyBF,EAAKpH,GAI1D,IAHA,IAAIuH,EAAW,EACXvI,EAAQ,EAEHzG,EAAI,EAAGmB,EAAQ,EAAGnB,EAAIyK,KAAK7P,OAAQoF,IAAK,CAC/C,IAAImD,EAAQsH,KAAKE,MAAM3K,IAAMmB,EAASsF,EAEtCoI,EAAIG,KAAqB,IAAP7L,EACd6L,EAAWH,EAAIjU,SACjBiU,EAAIG,KAAe7L,GAAQ,EAAK,KAE9B6L,EAAWH,EAAIjU,SACjBiU,EAAIG,KAAe7L,GAAQ,GAAM,KAGrB,IAAVhC,GACE6N,EAAWH,EAAIjU,SACjBiU,EAAIG,KAAe7L,GAAQ,GAAM,KAEnCsD,EAAQ,EACRtF,EAAQ,IAERsF,EAAQtD,IAAS,GACjBhC,GAAS,EAEb,CAEA,GAAI6N,EAAWH,EAAIjU,OAGjB,IAFAiU,EAAIG,KAAcvI,EAEXuI,EAAWH,EAAIjU,QACpBiU,EAAIG,KAAc,CAGxB,EAEA5E,EAAGzO,UAAUsT,eAAiB,SAAyBJ,EAAKpH,GAI1D,IAHA,IAAIuH,EAAWH,EAAIjU,OAAS,EACxB6L,EAAQ,EAEHzG,EAAI,EAAGmB,EAAQ,EAAGnB,EAAIyK,KAAK7P,OAAQoF,IAAK,CAC/C,IAAImD,EAAQsH,KAAKE,MAAM3K,IAAMmB,EAASsF,EAEtCoI,EAAIG,KAAqB,IAAP7L,EACd6L,GAAY,IACdH,EAAIG,KAAe7L,GAAQ,EAAK,KAE9B6L,GAAY,IACdH,EAAIG,KAAe7L,GAAQ,GAAM,KAGrB,IAAVhC,GACE6N,GAAY,IACdH,EAAIG,KAAe7L,GAAQ,GAAM,KAEnCsD,EAAQ,EACRtF,EAAQ,IAERsF,EAAQtD,IAAS,GACjBhC,GAAS,EAEb,CAEA,GAAI6N,GAAY,EAGd,IAFAH,EAAIG,KAAcvI,EAEXuI,GAAY,GACjBH,EAAIG,KAAc,CAGxB,EAEIrS,KAAKuS,MACP9E,EAAGzO,UAAUwT,WAAa,SAAqB9C,GAC7C,OAAO,GAAK1P,KAAKuS,MAAM7C,EACzB,EAEAjC,EAAGzO,UAAUwT,WAAa,SAAqB9C,GAC7C,IAAI+C,EAAI/C,EACJhB,EAAI,EAiBR,OAhBI+D,GAAK,OACP/D,GAAK,GACL+D,KAAO,IAELA,GAAK,KACP/D,GAAK,EACL+D,KAAO,GAELA,GAAK,IACP/D,GAAK,EACL+D,KAAO,GAELA,GAAK,IACP/D,GAAK,EACL+D,KAAO,GAEF/D,EAAI+D,CACb,EAGFhF,EAAGzO,UAAU0T,UAAY,SAAoBhD,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAI+C,EAAI/C,EACJhB,EAAI,EAoBR,OAnBqB,KAAZ,KAAJ+D,KACH/D,GAAK,GACL+D,KAAO,IAEU,KAAV,IAAJA,KACH/D,GAAK,EACL+D,KAAO,GAES,KAAT,GAAJA,KACH/D,GAAK,EACL+D,KAAO,GAES,KAAT,EAAJA,KACH/D,GAAK,EACL+D,KAAO,GAES,KAAT,EAAJA,IACH/D,IAEKA,CACT,EAGAjB,EAAGzO,UAAU2T,UAAY,WACvB,IAAIjD,EAAI5B,KAAKE,MAAMF,KAAK7P,OAAS,GAC7B2U,EAAK9E,KAAK0E,WAAW9C,GACzB,OAA2B,IAAnB5B,KAAK7P,OAAS,GAAU2U,CAClC,EAgBAnF,EAAGzO,UAAU6T,SAAW,WACtB,GAAI/E,KAAKmD,SAAU,OAAO,EAG1B,IADA,IAAIvC,EAAI,EACCrL,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAAK,CACpC,IAAI5F,EAAIqQ,KAAK4E,UAAU5E,KAAKE,MAAM3K,IAElC,GADAqL,GAAKjR,EACK,KAANA,EAAU,KAChB,CACA,OAAOiR,CACT,EAEAjB,EAAGzO,UAAU8L,WAAa,WACxB,OAAO9K,KAAKyP,KAAK3B,KAAK6E,YAAc,EACtC,EAEAlF,EAAGzO,UAAU8T,OAAS,SAAiB/F,GACrC,OAAsB,IAAlBe,KAAKC,SACAD,KAAKiF,MAAMC,MAAMjG,GAAOkG,MAAM,GAEhCnF,KAAKsC,OACd,EAEA3C,EAAGzO,UAAUkU,SAAW,SAAmBnG,GACzC,OAAIe,KAAKqF,MAAMpG,EAAQ,GACde,KAAKsF,KAAKrG,GAAOkG,MAAM,GAAGI,OAE5BvF,KAAKsC,OACd,EAEA3C,EAAGzO,UAAUsU,MAAQ,WACnB,OAAyB,IAAlBxF,KAAKC,QACd,EAGAN,EAAGzO,UAAUuU,IAAM,WACjB,OAAOzF,KAAKsC,QAAQiD,MACtB,EAEA5F,EAAGzO,UAAUqU,KAAO,WAKlB,OAJKvF,KAAKmD,WACRnD,KAAKC,UAAY,GAGZD,IACT,EAGAL,EAAGzO,UAAUwU,KAAO,SAAehH,GACjC,KAAOsB,KAAK7P,OAASuO,EAAIvO,QACvB6P,KAAKE,MAAMF,KAAK7P,UAAY,EAG9B,IAAK,IAAIoF,EAAI,EAAGA,EAAImJ,EAAIvO,OAAQoF,IAC9ByK,KAAKE,MAAM3K,GAAKyK,KAAKE,MAAM3K,GAAKmJ,EAAIwB,MAAM3K,GAG5C,OAAOyK,KAAK8B,QACd,EAEAnC,EAAGzO,UAAUyU,IAAM,SAAcjH,GAE/B,OADAS,EAA0C,KAAlCa,KAAKC,SAAWvB,EAAIuB,WACrBD,KAAK0F,KAAKhH,EACnB,EAGAiB,EAAGzO,UAAU0U,GAAK,SAAalH,GAC7B,OAAIsB,KAAK7P,OAASuO,EAAIvO,OAAe6P,KAAKsC,QAAQqD,IAAIjH,GAC/CA,EAAI4D,QAAQqD,IAAI3F,KACzB,EAEAL,EAAGzO,UAAU2U,IAAM,SAAcnH,GAC/B,OAAIsB,KAAK7P,OAASuO,EAAIvO,OAAe6P,KAAKsC,QAAQoD,KAAKhH,GAChDA,EAAI4D,QAAQoD,KAAK1F,KAC1B,EAGAL,EAAGzO,UAAU4U,MAAQ,SAAgBpH,GAEnC,IAAI/O,EAEFA,EADEqQ,KAAK7P,OAASuO,EAAIvO,OAChBuO,EAEAsB,KAGN,IAAK,IAAIzK,EAAI,EAAGA,EAAI5F,EAAEQ,OAAQoF,IAC5ByK,KAAKE,MAAM3K,GAAKyK,KAAKE,MAAM3K,GAAKmJ,EAAIwB,MAAM3K,GAK5C,OAFAyK,KAAK7P,OAASR,EAAEQ,OAET6P,KAAK8B,QACd,EAEAnC,EAAGzO,UAAU6U,KAAO,SAAerH,GAEjC,OADAS,EAA0C,KAAlCa,KAAKC,SAAWvB,EAAIuB,WACrBD,KAAK8F,MAAMpH,EACpB,EAGAiB,EAAGzO,UAAU8U,IAAM,SAActH,GAC/B,OAAIsB,KAAK7P,OAASuO,EAAIvO,OAAe6P,KAAKsC,QAAQyD,KAAKrH,GAChDA,EAAI4D,QAAQyD,KAAK/F,KAC1B,EAEAL,EAAGzO,UAAU+U,KAAO,SAAevH,GACjC,OAAIsB,KAAK7P,OAASuO,EAAIvO,OAAe6P,KAAKsC,QAAQwD,MAAMpH,GACjDA,EAAI4D,QAAQwD,MAAM9F,KAC3B,EAGAL,EAAGzO,UAAUgV,MAAQ,SAAgBxH,GAEnC,IAAImF,EACAlU,EACAqQ,KAAK7P,OAASuO,EAAIvO,QACpB0T,EAAI7D,KACJrQ,EAAI+O,IAEJmF,EAAInF,EACJ/O,EAAIqQ,MAGN,IAAK,IAAIzK,EAAI,EAAGA,EAAI5F,EAAEQ,OAAQoF,IAC5ByK,KAAKE,MAAM3K,GAAKsO,EAAE3D,MAAM3K,GAAK5F,EAAEuQ,MAAM3K,GAGvC,GAAIyK,OAAS6D,EACX,KAAOtO,EAAIsO,EAAE1T,OAAQoF,IACnByK,KAAKE,MAAM3K,GAAKsO,EAAE3D,MAAM3K,GAM5B,OAFAyK,KAAK7P,OAAS0T,EAAE1T,OAET6P,KAAK8B,QACd,EAEAnC,EAAGzO,UAAUiV,KAAO,SAAezH,GAEjC,OADAS,EAA0C,KAAlCa,KAAKC,SAAWvB,EAAIuB,WACrBD,KAAKkG,MAAMxH,EACpB,EAGAiB,EAAGzO,UAAUkV,IAAM,SAAc1H,GAC/B,OAAIsB,KAAK7P,OAASuO,EAAIvO,OAAe6P,KAAKsC,QAAQ6D,KAAKzH,GAChDA,EAAI4D,QAAQ6D,KAAKnG,KAC1B,EAEAL,EAAGzO,UAAUmV,KAAO,SAAe3H,GACjC,OAAIsB,KAAK7P,OAASuO,EAAIvO,OAAe6P,KAAKsC,QAAQ4D,MAAMxH,GACjDA,EAAI4D,QAAQ4D,MAAMlG,KAC3B,EAGAL,EAAGzO,UAAUgU,MAAQ,SAAgBjG,GACnCE,EAAwB,kBAAVF,GAAsBA,GAAS,GAE7C,IAAIqH,EAAsC,EAAxBpU,KAAKyP,KAAK1C,EAAQ,IAChCsH,EAAWtH,EAAQ,GAGvBe,KAAKuC,QAAQ+D,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI/Q,EAAI,EAAGA,EAAI+Q,EAAa/Q,IAC/ByK,KAAKE,MAAM3K,GAAsB,UAAhByK,KAAKE,MAAM3K,GAS9B,OALIgR,EAAW,IACbvG,KAAKE,MAAM3K,IAAMyK,KAAKE,MAAM3K,GAAM,UAAc,GAAKgR,GAIhDvG,KAAK8B,QACd,EAEAnC,EAAGzO,UAAUoU,KAAO,SAAerG,GACjC,OAAOe,KAAKsC,QAAQ4C,MAAMjG,EAC5B,EAGAU,EAAGzO,UAAUsV,KAAO,SAAeC,EAAKrH,GACtCD,EAAsB,kBAARsH,GAAoBA,GAAO,GAEzC,IAAI5E,EAAO4E,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAzG,KAAKuC,QAAQV,EAAM,GAGjB7B,KAAKE,MAAM2B,GADTzC,EACgBY,KAAKE,MAAM2B,GAAQ,GAAK6E,EAExB1G,KAAKE,MAAM2B,KAAS,GAAK6E,GAGtC1G,KAAK8B,QACd,EAGAnC,EAAGzO,UAAUyV,KAAO,SAAejI,GACjC,IAAIkC,EAkBAiD,EAAGlU,EAfP,GAAsB,IAAlBqQ,KAAKC,UAAmC,IAAjBvB,EAAIuB,SAI7B,OAHAD,KAAKC,SAAW,EAChBW,EAAIZ,KAAK4G,KAAKlI,GACdsB,KAAKC,UAAY,EACVD,KAAKwC,YAGP,GAAsB,IAAlBxC,KAAKC,UAAmC,IAAjBvB,EAAIuB,SAIpC,OAHAvB,EAAIuB,SAAW,EACfW,EAAIZ,KAAK4G,KAAKlI,GACdA,EAAIuB,SAAW,EACRW,EAAE4B,YAKPxC,KAAK7P,OAASuO,EAAIvO,QACpB0T,EAAI7D,KACJrQ,EAAI+O,IAEJmF,EAAInF,EACJ/O,EAAIqQ,MAIN,IADA,IAAIhE,EAAQ,EACHzG,EAAI,EAAGA,EAAI5F,EAAEQ,OAAQoF,IAC5BqL,GAAkB,EAAbiD,EAAE3D,MAAM3K,KAAwB,EAAb5F,EAAEuQ,MAAM3K,IAAUyG,EAC1CgE,KAAKE,MAAM3K,GAAS,SAAJqL,EAChB5E,EAAQ4E,IAAM,GAEhB,KAAiB,IAAV5E,GAAezG,EAAIsO,EAAE1T,OAAQoF,IAClCqL,GAAkB,EAAbiD,EAAE3D,MAAM3K,IAAUyG,EACvBgE,KAAKE,MAAM3K,GAAS,SAAJqL,EAChB5E,EAAQ4E,IAAM,GAIhB,GADAZ,KAAK7P,OAAS0T,EAAE1T,OACF,IAAV6L,EACFgE,KAAKE,MAAMF,KAAK7P,QAAU6L,EAC1BgE,KAAK7P,cAEA,GAAI0T,IAAM7D,KACf,KAAOzK,EAAIsO,EAAE1T,OAAQoF,IACnByK,KAAKE,MAAM3K,GAAKsO,EAAE3D,MAAM3K,GAI5B,OAAOyK,IACT,EAGAL,EAAGzO,UAAU2V,IAAM,SAAcnI,GAC/B,IAAI0F,EACJ,OAAqB,IAAjB1F,EAAIuB,UAAoC,IAAlBD,KAAKC,UAC7BvB,EAAIuB,SAAW,EACfmE,EAAMpE,KAAK8G,IAAIpI,GACfA,EAAIuB,UAAY,EACTmE,GACmB,IAAjB1F,EAAIuB,UAAoC,IAAlBD,KAAKC,UACpCD,KAAKC,SAAW,EAChBmE,EAAM1F,EAAIoI,IAAI9G,MACdA,KAAKC,SAAW,EACTmE,GAGLpE,KAAK7P,OAASuO,EAAIvO,OAAe6P,KAAKsC,QAAQqE,KAAKjI,GAEhDA,EAAI4D,QAAQqE,KAAK3G,KAC1B,EAGAL,EAAGzO,UAAU0V,KAAO,SAAelI,GAEjC,GAAqB,IAAjBA,EAAIuB,SAAgB,CACtBvB,EAAIuB,SAAW,EACf,IAAIW,EAAIZ,KAAK2G,KAAKjI,GAElB,OADAA,EAAIuB,SAAW,EACRW,EAAE4B,WAGX,CAAO,GAAsB,IAAlBxC,KAAKC,SAId,OAHAD,KAAKC,SAAW,EAChBD,KAAK2G,KAAKjI,GACVsB,KAAKC,SAAW,EACTD,KAAKwC,YAId,IAWIqB,EAAGlU,EAXHyR,EAAMpB,KAAKoB,IAAI1C,GAGnB,GAAY,IAAR0C,EAIF,OAHApB,KAAKC,SAAW,EAChBD,KAAK7P,OAAS,EACd6P,KAAKE,MAAM,GAAK,EACTF,KAKLoB,EAAM,GACRyC,EAAI7D,KACJrQ,EAAI+O,IAEJmF,EAAInF,EACJ/O,EAAIqQ,MAIN,IADA,IAAIhE,EAAQ,EACHzG,EAAI,EAAGA,EAAI5F,EAAEQ,OAAQoF,IAE5ByG,GADA4E,GAAkB,EAAbiD,EAAE3D,MAAM3K,KAAwB,EAAb5F,EAAEuQ,MAAM3K,IAAUyG,IAC7B,GACbgE,KAAKE,MAAM3K,GAAS,SAAJqL,EAElB,KAAiB,IAAV5E,GAAezG,EAAIsO,EAAE1T,OAAQoF,IAElCyG,GADA4E,GAAkB,EAAbiD,EAAE3D,MAAM3K,IAAUyG,IACV,GACbgE,KAAKE,MAAM3K,GAAS,SAAJqL,EAIlB,GAAc,IAAV5E,GAAezG,EAAIsO,EAAE1T,QAAU0T,IAAM7D,KACvC,KAAOzK,EAAIsO,EAAE1T,OAAQoF,IACnByK,KAAKE,MAAM3K,GAAKsO,EAAE3D,MAAM3K,GAU5B,OANAyK,KAAK7P,OAAS+B,KAAK+O,IAAIjB,KAAK7P,OAAQoF,GAEhCsO,IAAM7D,OACRA,KAAKC,SAAW,GAGXD,KAAK8B,QACd,EAGAnC,EAAGzO,UAAU4V,IAAM,SAAcpI,GAC/B,OAAOsB,KAAKsC,QAAQsE,KAAKlI,EAC3B,EA8CA,IAAIqI,EAAc,SAAsBnD,EAAMlF,EAAKsE,GACjD,IAIIxR,EACAwV,EACAlC,EANAjB,EAAID,EAAK1D,MACTvQ,EAAI+O,EAAIwB,MACR+G,EAAIjE,EAAI9C,MACRO,EAAI,EAIJyG,EAAY,EAAPrD,EAAE,GACPsD,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPxD,EAAE,GACPyD,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3D,EAAE,GACP4D,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9D,EAAE,GACP+D,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjE,EAAE,GACPkE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpE,EAAE,GACPqE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvE,EAAE,GACPwE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1E,EAAE,GACP2E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7E,EAAE,GACP8E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhF,EAAE,GACPiF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPrZ,EAAE,GACPsZ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPxZ,EAAE,GACPyZ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3Z,EAAE,GACP4Z,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9Z,EAAE,GACP+Z,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPja,EAAE,GACPka,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPpa,EAAE,GACPqa,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPva,EAAE,GACPwa,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP1a,EAAE,GACP2a,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP7a,EAAE,GACP8a,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPhb,EAAE,GACPib,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjB3H,EAAI/C,SAAW2D,EAAK3D,SAAWvB,EAAIuB,SACnC+C,EAAI7S,OAAS,GAMb,IAAI2a,IAAQrK,GAJZjP,EAAKU,KAAK6Y,KAAK5D,EAAK8B,IAIE,KAAa,MAFnCjC,GADAA,EAAM9U,KAAK6Y,KAAK5D,EAAK+B,IACRhX,KAAK6Y,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrDxI,IAFAqE,EAAK5S,KAAK6Y,KAAK3D,EAAK8B,KAEPlC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENtZ,EAAKU,KAAK6Y,KAAKzD,EAAK2B,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAKzD,EAAK4B,IACRhX,KAAK6Y,KAAKxD,EAAK0B,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQvK,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAKkC,GAAQ,GACvBnX,KAAK6Y,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrD3I,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAKiC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENxZ,EAAKU,KAAK6Y,KAAKtD,EAAKwB,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAKtD,EAAKyB,IACRhX,KAAK6Y,KAAKrD,EAAKuB,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAKrD,EAAKwB,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAK+B,GAAQ,GACvBnX,KAAK6Y,KAAKxD,EAAK6B,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQxK,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAKqC,GAAQ,GACvBtX,KAAK6Y,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrD9I,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAKoC,GAAQ,IAErBxC,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENzZ,EAAKU,KAAK6Y,KAAKnD,EAAKqB,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAKnD,EAAKsB,IACRhX,KAAK6Y,KAAKlD,EAAKoB,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAKlD,EAAKqB,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAK4B,GAAQ,GACvBnX,KAAK6Y,KAAKrD,EAAK0B,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAK2B,GAAQ,EAClC7X,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAKkC,GAAQ,GACvBtX,KAAK6Y,KAAKxD,EAAKgC,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQzK,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAKwC,GAAQ,GACvBzX,KAAK6Y,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrDjJ,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAKuC,GAAQ,IAErB3C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAEN1Z,EAAKU,KAAK6Y,KAAKhD,EAAKkB,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAKhD,EAAKmB,IACRhX,KAAK6Y,KAAK/C,EAAKiB,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAK/C,EAAKkB,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAKyB,GAAQ,GACvBnX,KAAK6Y,KAAKlD,EAAKuB,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAKwB,GAAQ,EAClC7X,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAK+B,GAAQ,GACvBtX,KAAK6Y,KAAKrD,EAAK6B,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAK8B,GAAQ,EAClChY,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAKqC,GAAQ,GACvBzX,KAAK6Y,KAAKxD,EAAKmC,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQ1K,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAK2C,IAAQ,GACvB5X,KAAK6Y,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDpJ,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAK0C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAEN3Z,EAAKU,KAAK6Y,KAAK7C,EAAKe,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAK7C,EAAKgB,IACRhX,KAAK6Y,KAAK5C,EAAKc,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAK5C,EAAKe,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAKsB,GAAQ,GACvBnX,KAAK6Y,KAAK/C,EAAKoB,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAKqB,GAAQ,EAClC7X,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAK4B,GAAQ,GACvBtX,KAAK6Y,KAAKlD,EAAK0B,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAK2B,GAAQ,EAClChY,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAKkC,GAAQ,GACvBzX,KAAK6Y,KAAKrD,EAAKgC,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAKiC,GAAQ,EAClCnY,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAKuC,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAKwC,IAAQ,GACvB5X,KAAK6Y,KAAKxD,EAAKsC,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQ3K,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAK8C,IAAQ,GACvB/X,KAAK6Y,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrDvJ,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAK6C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAEN5Z,EAAKU,KAAK6Y,KAAK1C,EAAKY,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAK1C,EAAKa,IACRhX,KAAK6Y,KAAKzC,EAAKW,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAKzC,EAAKY,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAKmB,GAAQ,GACvBnX,KAAK6Y,KAAK5C,EAAKiB,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAKkB,GAAQ,EAClC7X,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAKyB,GAAQ,GACvBtX,KAAK6Y,KAAK/C,EAAKuB,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAKwB,GAAQ,EAClChY,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAK+B,GAAQ,GACvBzX,KAAK6Y,KAAKlD,EAAK6B,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAK8B,GAAQ,EAClCnY,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAKoC,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAKqC,IAAQ,GACvB5X,KAAK6Y,KAAKrD,EAAKmC,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAKoC,IAAQ,EAClCtY,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAK2C,IAAQ,GACvB/X,KAAK6Y,KAAKxD,EAAKyC,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ5K,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAKiD,IAAQ,GACvBlY,KAAK6Y,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrD1J,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAKgD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAEN7Z,EAAKU,KAAK6Y,KAAKvC,EAAKS,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAKvC,EAAKU,IACRhX,KAAK6Y,KAAKtC,EAAKQ,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAKtC,EAAKS,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAKgB,GAAQ,GACvBnX,KAAK6Y,KAAKzC,EAAKc,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAKe,GAAQ,EAClC7X,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAKsB,GAAQ,GACvBtX,KAAK6Y,KAAK5C,EAAKoB,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAKqB,GAAQ,EAClChY,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAK4B,GAAQ,GACvBzX,KAAK6Y,KAAK/C,EAAK0B,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAK2B,GAAQ,EAClCnY,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAKiC,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAKkC,IAAQ,GACvB5X,KAAK6Y,KAAKlD,EAAKgC,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAKiC,IAAQ,EAClCtY,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAKwC,IAAQ,GACvB/X,KAAK6Y,KAAKrD,EAAKsC,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAKuC,IAAQ,EAClCzY,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAK8C,IAAQ,GACvBlY,KAAK6Y,KAAKxD,EAAK4C,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQ7K,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAKoD,IAAQ,GACvBrY,KAAK6Y,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrD7J,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAKmD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAEN9Z,EAAKU,KAAK6Y,KAAKpC,EAAKM,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAKpC,EAAKO,IACRhX,KAAK6Y,KAAKnC,EAAKK,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAKnC,EAAKM,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAKa,GAAQ,GACvBnX,KAAK6Y,KAAKtC,EAAKW,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAKY,GAAQ,EAClC7X,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAKmB,GAAQ,GACvBtX,KAAK6Y,KAAKzC,EAAKiB,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAKkB,GAAQ,EAClChY,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAKyB,GAAQ,GACvBzX,KAAK6Y,KAAK5C,EAAKuB,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAKwB,GAAQ,EAClCnY,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAK8B,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAK+B,IAAQ,GACvB5X,KAAK6Y,KAAK/C,EAAK6B,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAK8B,IAAQ,EAClCtY,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAKqC,IAAQ,GACvB/X,KAAK6Y,KAAKlD,EAAKmC,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAKoC,IAAQ,EAClCzY,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAK2C,IAAQ,GACvBlY,KAAK6Y,KAAKrD,EAAKyC,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAK0C,IAAQ,EAClC5Y,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAKiD,IAAQ,GACvBrY,KAAK6Y,KAAKxD,EAAK+C,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQ9K,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAKuD,IAAQ,GACvBxY,KAAK6Y,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrDhK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAKsD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN/Z,EAAKU,KAAK6Y,KAAKjC,EAAKG,GAEpBjC,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKI,IACRhX,KAAK6Y,KAAKhC,EAAKE,GAAQ,EACpCnE,EAAK5S,KAAK6Y,KAAKhC,EAAKG,GACpB1X,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAKS,GAAQ,EAElCpC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAKU,GAAQ,GACvBnX,KAAK6Y,KAAKnC,EAAKQ,GAAQ,EACpCtE,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAKS,GAAQ,EAClC7X,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAKgB,GAAQ,GACvBtX,KAAK6Y,KAAKtC,EAAKc,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAKe,GAAQ,EAClChY,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAKsB,GAAQ,GACvBzX,KAAK6Y,KAAKzC,EAAKoB,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAKqB,GAAQ,EAClCnY,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAK2B,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAK4B,IAAQ,GACvB5X,KAAK6Y,KAAK5C,EAAK0B,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAK2B,IAAQ,EAClCtY,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAKkC,IAAQ,GACvB/X,KAAK6Y,KAAK/C,EAAKgC,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAKiC,IAAQ,EAClCzY,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAKwC,IAAQ,GACvBlY,KAAK6Y,KAAKlD,EAAKsC,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAKuC,IAAQ,EAClC5Y,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAK8C,IAAQ,GACvBrY,KAAK6Y,KAAKrD,EAAK4C,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAK6C,IAAQ,EAClC/Y,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAKmD,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAKoD,IAAQ,GACvBxY,KAAK6Y,KAAKxD,EAAKkD,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQ/K,GAJZjP,EAAMA,EAAKU,KAAK6Y,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK5D,EAAK0D,IAAQ,GACvB3Y,KAAK6Y,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK3D,EAAKyD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMwE,KAAO,IAAO,EAChDA,IAAM,SAENha,EAAKU,KAAK6Y,KAAKjC,EAAKM,GAEpBpC,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKO,IACRnX,KAAK6Y,KAAKhC,EAAKK,GAAQ,EACpCtE,EAAK5S,KAAK6Y,KAAKhC,EAAKM,GACpB7X,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAKY,GAAQ,EAElCvC,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAKa,GAAQ,GACvBtX,KAAK6Y,KAAKnC,EAAKW,GAAQ,EACpCzE,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAKY,GAAQ,EAClChY,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAKmB,GAAQ,GACvBzX,KAAK6Y,KAAKtC,EAAKiB,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAKkB,GAAQ,EAClCnY,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAKwB,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAKyB,IAAQ,GACvB5X,KAAK6Y,KAAKzC,EAAKuB,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAKwB,IAAQ,EAClCtY,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAK+B,IAAQ,GACvB/X,KAAK6Y,KAAK5C,EAAK6B,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAK8B,IAAQ,EAClCzY,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAKqC,IAAQ,GACvBlY,KAAK6Y,KAAK/C,EAAKmC,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAKoC,IAAQ,EAClC5Y,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAK2C,IAAQ,GACvBrY,KAAK6Y,KAAKlD,EAAKyC,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAK0C,IAAQ,EAClC/Y,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAKgD,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAKiD,IAAQ,GACvBxY,KAAK6Y,KAAKrD,EAAK+C,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAAShL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKzD,EAAKuD,IAAQ,GACvB3Y,KAAK6Y,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAKxD,EAAKsD,IAAQ,IAErB7D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEPja,EAAKU,KAAK6Y,KAAKjC,EAAKS,GAEpBvC,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKU,IACRtX,KAAK6Y,KAAKhC,EAAKQ,GAAQ,EACpCzE,EAAK5S,KAAK6Y,KAAKhC,EAAKS,GACpBhY,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAKe,GAAQ,EAElC1C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAKgB,GAAQ,GACvBzX,KAAK6Y,KAAKnC,EAAKc,GAAQ,EACpC5E,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAKe,GAAQ,EAClCnY,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAKqB,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAKsB,IAAQ,GACvB5X,KAAK6Y,KAAKtC,EAAKoB,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAKqB,IAAQ,EAClCtY,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAK4B,IAAQ,GACvB/X,KAAK6Y,KAAKzC,EAAK0B,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAK2B,IAAQ,EAClCzY,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAKkC,IAAQ,GACvBlY,KAAK6Y,KAAK5C,EAAKgC,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAKiC,IAAQ,EAClC5Y,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAKwC,IAAQ,GACvBrY,KAAK6Y,KAAK/C,EAAKsC,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAKuC,IAAQ,EAClC/Y,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAK6C,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAK8C,IAAQ,GACvBxY,KAAK6Y,KAAKlD,EAAK4C,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAASjL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKtD,EAAKoD,IAAQ,GACvB3Y,KAAK6Y,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAKrD,EAAKmD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEPla,EAAKU,KAAK6Y,KAAKjC,EAAKY,GAEpB1C,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKa,IACRzX,KAAK6Y,KAAKhC,EAAKW,GAAQ,EACpC5E,EAAK5S,KAAK6Y,KAAKhC,EAAKY,GACpBnY,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAKkB,GAAQ,EAElC7C,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAKmB,IAAQ,GACvB5X,KAAK6Y,KAAKnC,EAAKiB,GAAQ,EACpC/E,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAKkB,IAAQ,EAClCtY,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAKyB,IAAQ,GACvB/X,KAAK6Y,KAAKtC,EAAKuB,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAKwB,IAAQ,EAClCzY,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAK+B,IAAQ,GACvBlY,KAAK6Y,KAAKzC,EAAK6B,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAK8B,IAAQ,EAClC5Y,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAKqC,IAAQ,GACvBrY,KAAK6Y,KAAK5C,EAAKmC,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAKoC,IAAQ,EAClC/Y,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAK0C,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAK2C,IAAQ,GACvBxY,KAAK6Y,KAAK/C,EAAKyC,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAASlL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKnD,EAAKiD,IAAQ,GACvB3Y,KAAK6Y,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAKlD,EAAKgD,IAAQ,IAErB7D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEPna,EAAKU,KAAK6Y,KAAKjC,EAAKe,GAEpB7C,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKgB,KACR5X,KAAK6Y,KAAKhC,EAAKc,GAAQ,EACpC/E,EAAK5S,KAAK6Y,KAAKhC,EAAKe,IACpBtY,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAKqB,IAAQ,EAElChD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAKsB,IAAQ,GACvB/X,KAAK6Y,KAAKnC,EAAKoB,IAAQ,EACpClF,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAKqB,IAAQ,EAClCzY,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAK4B,IAAQ,GACvBlY,KAAK6Y,KAAKtC,EAAK0B,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAK2B,IAAQ,EAClC5Y,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAKkC,IAAQ,GACvBrY,KAAK6Y,KAAKzC,EAAKgC,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAKiC,IAAQ,EAClC/Y,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAKuC,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAKwC,IAAQ,GACvBxY,KAAK6Y,KAAK5C,EAAKsC,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAASnL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKhD,EAAK8C,IAAQ,GACvB3Y,KAAK6Y,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK/C,EAAK6C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEPpa,EAAKU,KAAK6Y,KAAKjC,EAAKkB,IAEpBhD,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKmB,KACR/X,KAAK6Y,KAAKhC,EAAKiB,IAAQ,EACpClF,EAAK5S,KAAK6Y,KAAKhC,EAAKkB,IACpBzY,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAKwB,IAAQ,EAElCnD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAKyB,IAAQ,GACvBlY,KAAK6Y,KAAKnC,EAAKuB,IAAQ,EACpCrF,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAKwB,IAAQ,EAClC5Y,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAK+B,IAAQ,GACvBrY,KAAK6Y,KAAKtC,EAAK6B,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAK8B,IAAQ,EAClC/Y,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAKoC,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAKqC,IAAQ,GACvBxY,KAAK6Y,KAAKzC,EAAKmC,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASpL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK7C,EAAK2C,IAAQ,GACvB3Y,KAAK6Y,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAK5C,EAAK0C,IAAQ,IAErB7D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPra,EAAKU,KAAK6Y,KAAKjC,EAAKqB,IAEpBnD,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKsB,KACRlY,KAAK6Y,KAAKhC,EAAKoB,IAAQ,EACpCrF,EAAK5S,KAAK6Y,KAAKhC,EAAKqB,IACpB5Y,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAK2B,IAAQ,EAElCtD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAK4B,IAAQ,GACvBrY,KAAK6Y,KAAKnC,EAAK0B,IAAQ,EACpCxF,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAK2B,IAAQ,EAClC/Y,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAKiC,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAKkC,IAAQ,GACvBxY,KAAK6Y,KAAKtC,EAAKgC,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASrL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAK1C,EAAKwC,IAAQ,GACvB3Y,KAAK6Y,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAKzC,EAAKuC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPta,EAAKU,KAAK6Y,KAAKjC,EAAKwB,IAEpBtD,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAKyB,KACRrY,KAAK6Y,KAAKhC,EAAKuB,IAAQ,EACpCxF,EAAK5S,KAAK6Y,KAAKhC,EAAKwB,IACpB/Y,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAK8B,IAAQ,EAElCzD,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAK+B,IAAQ,GACvBxY,KAAK6Y,KAAKnC,EAAK6B,IAAQ,EACpC3F,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAAStL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKvC,EAAKqC,IAAQ,GACvB3Y,KAAK6Y,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAKtC,EAAKoC,IAAQ,IAErB7D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAEPva,EAAKU,KAAK6Y,KAAKjC,EAAK2B,IAEpBzD,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAK4B,KACRxY,KAAK6Y,KAAKhC,EAAK0B,IAAQ,EACpC3F,EAAK5S,KAAK6Y,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAASvL,GAJbjP,EAAMA,EAAKU,KAAK6Y,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC5D,GADAA,EAAOA,EAAM9U,KAAK6Y,KAAKpC,EAAKkC,IAAQ,GACvB3Y,KAAK6Y,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDnK,IAFAqE,EAAMA,EAAK5S,KAAK6Y,KAAKnC,EAAKiC,IAAQ,IAErB7D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAASxL,GAJbjP,EAAKU,KAAK6Y,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC5D,GADAA,EAAM9U,KAAK6Y,KAAKjC,EAAK+B,KACR3Y,KAAK6Y,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAnK,IAFAqE,EAAK5S,KAAK6Y,KAAKhC,EAAK8B,MAEP7D,IAAQ,IAAO,IAAMiF,KAAQ,IAAO,EACjDA,IAAO,SACPhF,EAAE,GAAK6D,GACP7D,EAAE,GAAK+D,GACP/D,EAAE,GAAKgE,GACPhE,EAAE,GAAKiE,GACPjE,EAAE,GAAKkE,GACPlE,EAAE,GAAKmE,GACPnE,EAAE,GAAKoE,GACPpE,EAAE,GAAKqE,GACPrE,EAAE,GAAKsE,GACPtE,EAAE,GAAKuE,GACPvE,EAAE,IAAMwE,GACRxE,EAAE,IAAMyE,GACRzE,EAAE,IAAM0E,GACR1E,EAAE,IAAM2E,GACR3E,EAAE,IAAM4E,GACR5E,EAAE,IAAM6E,GACR7E,EAAE,IAAM8E,GACR9E,EAAE,IAAM+E,GACR/E,EAAE,IAAMgF,GACE,IAANxL,IACFwG,EAAE,IAAMxG,EACRuC,EAAI7S,UAEC6S,CACT,EAOA,SAASkJ,EAAUtI,EAAMlF,EAAKsE,GAC5BA,EAAI/C,SAAWvB,EAAIuB,SAAW2D,EAAK3D,SACnC+C,EAAI7S,OAASyT,EAAKzT,OAASuO,EAAIvO,OAI/B,IAFA,IAAI6L,EAAQ,EACRmQ,EAAU,EACLrI,EAAI,EAAGA,EAAId,EAAI7S,OAAS,EAAG2T,IAAK,CAGvC,IAAIC,EAASoI,EACbA,EAAU,EAGV,IAFA,IAAInI,EAAgB,SAARhI,EACRiI,EAAO/R,KAAK6O,IAAI+C,EAAGpF,EAAIvO,OAAS,GAC3B4K,EAAI7I,KAAK+O,IAAI,EAAG6C,EAAIF,EAAKzT,OAAS,GAAI4K,GAAKkJ,EAAMlJ,IAAK,CAC7D,IAAIxF,EAAIuO,EAAI/I,EAGR6F,GAFoB,EAAhBgD,EAAK1D,MAAM3K,KACI,EAAfmJ,EAAIwB,MAAMnF,IAGdvJ,EAAS,SAAJoP,EAGToD,EAAa,UADbxS,EAAMA,EAAKwS,EAAS,GAIpBmI,IAFApI,GAHAA,EAAUA,GAAWnD,EAAI,SAAa,GAAM,IAGxBpP,IAAO,IAAO,KAEZ,GACtBuS,GAAU,QACZ,CACAf,EAAI9C,MAAM4D,GAAKE,EACfhI,EAAQ+H,EACRA,EAASoI,CACX,CAOA,OANc,IAAVnQ,EACFgH,EAAI9C,MAAM4D,GAAK9H,EAEfgH,EAAI7S,SAGC6S,EAAIlB,QACb,CAEA,SAASsK,EAAYxI,EAAMlF,EAAKsE,GAI9B,OAAOkJ,EAAStI,EAAMlF,EAAKsE,EAC7B,CAqBA,SAASqJ,EAAMrR,EAAGsR,GAChBtM,KAAKhF,EAAIA,EACTgF,KAAKsM,EAAIA,CACX,CA1EKpa,KAAK6Y,OACRhE,EAAcpD,GAmDhBhE,EAAGzO,UAAUqb,MAAQ,SAAgB7N,EAAKsE,GACxC,IACIpF,EAAMoC,KAAK7P,OAASuO,EAAIvO,OAW5B,OAVoB,KAAhB6P,KAAK7P,QAAgC,KAAfuO,EAAIvO,OACtB4W,EAAY/G,KAAMtB,EAAKsE,GACpBpF,EAAM,GACT+F,EAAW3D,KAAMtB,EAAKsE,GACnBpF,EAAM,KACTsO,EAASlM,KAAMtB,EAAKsE,GAEpBoJ,EAAWpM,KAAMtB,EAAKsE,EAIhC,EAUAqJ,EAAKnb,UAAUsb,QAAU,SAAkBC,GAGzC,IAFA,IAAI9H,EAAI,IAAI5O,MAAM0W,GACdC,EAAI/M,EAAGzO,UAAUwT,WAAW+H,GAAK,EAC5BlX,EAAI,EAAGA,EAAIkX,EAAGlX,IACrBoP,EAAEpP,GAAKyK,KAAK2M,OAAOpX,EAAGmX,EAAGD,GAG3B,OAAO9H,CACT,EAGA0H,EAAKnb,UAAUyb,OAAS,SAAiB3R,EAAG0R,EAAGD,GAC7C,GAAU,IAANzR,GAAWA,IAAMyR,EAAI,EAAG,OAAOzR,EAGnC,IADA,IAAI4R,EAAK,EACArX,EAAI,EAAGA,EAAImX,EAAGnX,IACrBqX,IAAW,EAAJ5R,IAAW0R,EAAInX,EAAI,EAC1ByF,IAAM,EAGR,OAAO4R,CACT,EAIAP,EAAKnb,UAAU2b,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMT,GACpE,IAAK,IAAIlX,EAAI,EAAGA,EAAIkX,EAAGlX,IACrB0X,EAAK1X,GAAKwX,EAAID,EAAIvX,IAClB2X,EAAK3X,GAAKyX,EAAIF,EAAIvX,GAEtB,EAEA8W,EAAKnb,UAAUic,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMT,EAAGK,GACtE9M,KAAK6M,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMT,GAExC,IAAK,IAAIW,EAAI,EAAGA,EAAIX,EAAGW,IAAM,EAM3B,IALA,IAAIV,EAAIU,GAAK,EAETC,EAAQnb,KAAKob,IAAI,EAAIpb,KAAKqb,GAAKb,GAC/Bc,EAAQtb,KAAKub,IAAI,EAAIvb,KAAKqb,GAAKb,GAE1BgB,EAAI,EAAGA,EAAIjB,EAAGiB,GAAKhB,EAI1B,IAHA,IAAIiB,EAASN,EACTO,EAASJ,EAEJzS,EAAI,EAAGA,EAAIqS,EAAGrS,IAAK,CAC1B,IAAI8S,EAAKZ,EAAKS,EAAI3S,GACd+S,EAAKZ,EAAKQ,EAAI3S,GAEdgT,EAAKd,EAAKS,EAAI3S,EAAIqS,GAClBY,EAAKd,EAAKQ,EAAI3S,EAAIqS,GAElBa,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELhB,EAAKS,EAAI3S,GAAK8S,EAAKE,EACnBb,EAAKQ,EAAI3S,GAAK+S,EAAKE,EAEnBf,EAAKS,EAAI3S,EAAIqS,GAAKS,EAAKE,EACvBb,EAAKQ,EAAI3S,EAAIqS,GAAKU,EAAKE,EAGnBjT,IAAM2R,IACRuB,EAAKZ,EAAQM,EAASH,EAAQI,EAE9BA,EAASP,EAAQO,EAASJ,EAAQG,EAClCA,EAASM,EAEb,CAGN,EAEA5B,EAAKnb,UAAUgd,YAAc,SAAsBC,EAAGC,GACpD,IAAI3B,EAAqB,EAAjBva,KAAK+O,IAAImN,EAAGD,GAChBE,EAAU,EAAJ5B,EACNlX,EAAI,EACR,IAAKkX,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/BlX,IAGF,OAAO,GAAKA,EAAI,EAAI8Y,CACtB,EAEAhC,EAAKnb,UAAUod,UAAY,SAAoBvB,EAAKC,EAAKP,GACvD,KAAIA,GAAK,GAET,IAAK,IAAIlX,EAAI,EAAGA,EAAIkX,EAAI,EAAGlX,IAAK,CAC9B,IAAIoP,EAAIoI,EAAIxX,GAEZwX,EAAIxX,GAAKwX,EAAIN,EAAIlX,EAAI,GACrBwX,EAAIN,EAAIlX,EAAI,GAAKoP,EAEjBA,EAAIqI,EAAIzX,GAERyX,EAAIzX,IAAMyX,EAAIP,EAAIlX,EAAI,GACtByX,EAAIP,EAAIlX,EAAI,IAAMoP,CACpB,CACF,EAEA0H,EAAKnb,UAAUqd,aAAe,SAAuBC,EAAI/B,GAEvD,IADA,IAAIzQ,EAAQ,EACHzG,EAAI,EAAGA,EAAIkX,EAAI,EAAGlX,IAAK,CAC9B,IAAIqM,EAAoC,KAAhC1P,KAAKuc,MAAMD,EAAG,EAAIjZ,EAAI,GAAKkX,GACjCva,KAAKuc,MAAMD,EAAG,EAAIjZ,GAAKkX,GACvBzQ,EAEFwS,EAAGjZ,GAAS,SAAJqM,EAGN5F,EADE4F,EAAI,SACE,EAEAA,EAAI,SAAY,CAE5B,CAEA,OAAO4M,CACT,EAEAnC,EAAKnb,UAAUwd,WAAa,SAAqBF,EAAI5Q,EAAKmP,EAAKN,GAE7D,IADA,IAAIzQ,EAAQ,EACHzG,EAAI,EAAGA,EAAIqI,EAAKrI,IACvByG,GAAyB,EAARwS,EAAGjZ,GAEpBwX,EAAI,EAAIxX,GAAa,KAARyG,EAAgBA,KAAkB,GAC/C+Q,EAAI,EAAIxX,EAAI,GAAa,KAARyG,EAAgBA,KAAkB,GAIrD,IAAKzG,EAAI,EAAIqI,EAAKrI,EAAIkX,IAAKlX,EACzBwX,EAAIxX,GAAK,EAGX4J,EAAiB,IAAVnD,GACPmD,EAA6B,MAAb,KAARnD,GACV,EAEAqQ,EAAKnb,UAAUyd,KAAO,SAAelC,GAEnC,IADA,IAAImC,EAAK,IAAI7Y,MAAM0W,GACVlX,EAAI,EAAGA,EAAIkX,EAAGlX,IACrBqZ,EAAGrZ,GAAK,EAGV,OAAOqZ,CACT,EAEAvC,EAAKnb,UAAU2d,KAAO,SAAe7T,EAAGsR,EAAGtJ,GACzC,IAAIyJ,EAAI,EAAIzM,KAAKkO,YAAYlT,EAAE7K,OAAQmc,EAAEnc,QAErC2c,EAAM9M,KAAKwM,QAAQC,GAEnBqC,EAAI9O,KAAK2O,KAAKlC,GAEdM,EAAM,IAAIhX,MAAM0W,GAChBsC,EAAO,IAAIhZ,MAAM0W,GACjBuC,EAAO,IAAIjZ,MAAM0W,GAEjBwC,EAAO,IAAIlZ,MAAM0W,GACjByC,EAAQ,IAAInZ,MAAM0W,GAClB0C,EAAQ,IAAIpZ,MAAM0W,GAElB2C,EAAOpM,EAAI9C,MACfkP,EAAKjf,OAASsc,EAEdzM,KAAK0O,WAAW1T,EAAEkF,MAAOlF,EAAE7K,OAAQ4c,EAAKN,GACxCzM,KAAK0O,WAAWpC,EAAEpM,MAAOoM,EAAEnc,OAAQ8e,EAAMxC,GAEzCzM,KAAKmN,UAAUJ,EAAK+B,EAAGC,EAAMC,EAAMvC,EAAGK,GACtC9M,KAAKmN,UAAU8B,EAAMH,EAAGI,EAAOC,EAAO1C,EAAGK,GAEzC,IAAK,IAAIvX,EAAI,EAAGA,EAAIkX,EAAGlX,IAAK,CAC1B,IAAI0Y,EAAKc,EAAKxZ,GAAK2Z,EAAM3Z,GAAKyZ,EAAKzZ,GAAK4Z,EAAM5Z,GAC9CyZ,EAAKzZ,GAAKwZ,EAAKxZ,GAAK4Z,EAAM5Z,GAAKyZ,EAAKzZ,GAAK2Z,EAAM3Z,GAC/CwZ,EAAKxZ,GAAK0Y,CACZ,CASA,OAPAjO,KAAKsO,UAAUS,EAAMC,EAAMvC,GAC3BzM,KAAKmN,UAAU4B,EAAMC,EAAMI,EAAMN,EAAGrC,EAAGK,GACvC9M,KAAKsO,UAAUc,EAAMN,EAAGrC,GACxBzM,KAAKuO,aAAaa,EAAM3C,GAExBzJ,EAAI/C,SAAWjF,EAAEiF,SAAWqM,EAAErM,SAC9B+C,EAAI7S,OAAS6K,EAAE7K,OAASmc,EAAEnc,OACnB6S,EAAIlB,QACb,EAGAnC,EAAGzO,UAAU4P,IAAM,SAAcpC,GAC/B,IAAIsE,EAAM,IAAIrD,EAAG,MAEjB,OADAqD,EAAI9C,MAAQ,IAAInK,MAAMiK,KAAK7P,OAASuO,EAAIvO,QACjC6P,KAAKuM,MAAM7N,EAAKsE,EACzB,EAGArD,EAAGzO,UAAUme,KAAO,SAAe3Q,GACjC,IAAIsE,EAAM,IAAIrD,EAAG,MAEjB,OADAqD,EAAI9C,MAAQ,IAAInK,MAAMiK,KAAK7P,OAASuO,EAAIvO,QACjCic,EAAWpM,KAAMtB,EAAKsE,EAC/B,EAGArD,EAAGzO,UAAU6Z,KAAO,SAAerM,GACjC,OAAOsB,KAAKsC,QAAQiK,MAAM7N,EAAKsB,KACjC,EAEAL,EAAGzO,UAAUiR,MAAQ,SAAgBzD,GACnC,IAAI4Q,EAAW5Q,EAAM,EACjB4Q,IAAU5Q,GAAOA,GAErBS,EAAsB,kBAART,GACdS,EAAOT,EAAM,UAIb,IADA,IAAI1C,EAAQ,EACHzG,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAAK,CACpC,IAAIqM,GAAqB,EAAhB5B,KAAKE,MAAM3K,IAAUmJ,EAC1BlN,GAAU,SAAJoQ,IAA0B,SAAR5F,GAC5BA,IAAU,GACVA,GAAU4F,EAAI,SAAa,EAE3B5F,GAASxK,IAAO,GAChBwO,KAAKE,MAAM3K,GAAU,SAAL/D,CAClB,CAOA,OALc,IAAVwK,IACFgE,KAAKE,MAAM3K,GAAKyG,EAChBgE,KAAK7P,UAGAmf,EAAWtP,KAAKuF,OAASvF,IAClC,EAEAL,EAAGzO,UAAUqe,KAAO,SAAe7Q,GACjC,OAAOsB,KAAKsC,QAAQH,MAAMzD,EAC5B,EAGAiB,EAAGzO,UAAUse,IAAM,WACjB,OAAOxP,KAAKc,IAAId,KAClB,EAGAL,EAAGzO,UAAUue,KAAO,WAClB,OAAOzP,KAAK+K,KAAK/K,KAAKsC,QACxB,EAGA3C,EAAGzO,UAAUmC,IAAM,SAAcqL,GAC/B,IAAIkD,EA7xCN,SAAqBlD,GAGnB,IAFA,IAAIkD,EAAI,IAAI7L,MAAM2I,EAAImG,aAEb4B,EAAM,EAAGA,EAAM7E,EAAEzR,OAAQsW,IAAO,CACvC,IAAI5E,EAAO4E,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjB7E,EAAE6E,GAAQ/H,EAAIwB,MAAM2B,KAAS6E,EAAQ,CACvC,CAEA,OAAO9E,CACT,CAkxCU8N,CAAWhR,GACnB,GAAiB,IAAbkD,EAAEzR,OAAc,OAAO,IAAIwP,EAAG,GAIlC,IADA,IAAIyE,EAAMpE,KACDzK,EAAI,EAAGA,EAAIqM,EAAEzR,QACP,IAATyR,EAAErM,GADsBA,IAAK6O,EAAMA,EAAIoL,OAI7C,KAAMja,EAAIqM,EAAEzR,OACV,IAAK,IAAIwf,EAAIvL,EAAIoL,MAAOja,EAAIqM,EAAEzR,OAAQoF,IAAKoa,EAAIA,EAAEH,MAClC,IAAT5N,EAAErM,KAEN6O,EAAMA,EAAItD,IAAI6O,IAIlB,OAAOvL,CACT,EAGAzE,EAAGzO,UAAU0e,OAAS,SAAiB5W,GACrCmG,EAAuB,kBAATnG,GAAqBA,GAAQ,GAC3C,IAGIzD,EAHAqL,EAAI5H,EAAO,GACXoU,GAAKpU,EAAO4H,GAAK,GACjBiP,EAAa,WAAe,GAAKjP,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAI5E,EAAQ,EAEZ,IAAKzG,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAAK,CAChC,IAAIua,EAAW9P,KAAKE,MAAM3K,GAAKsa,EAC3BpP,GAAsB,EAAhBT,KAAKE,MAAM3K,IAAUua,GAAalP,EAC5CZ,KAAKE,MAAM3K,GAAKkL,EAAIzE,EACpBA,EAAQ8T,IAAc,GAAKlP,CAC7B,CAEI5E,IACFgE,KAAKE,MAAM3K,GAAKyG,EAChBgE,KAAK7P,SAET,CAEA,GAAU,IAANid,EAAS,CACX,IAAK7X,EAAIyK,KAAK7P,OAAS,EAAGoF,GAAK,EAAGA,IAChCyK,KAAKE,MAAM3K,EAAI6X,GAAKpN,KAAKE,MAAM3K,GAGjC,IAAKA,EAAI,EAAGA,EAAI6X,EAAG7X,IACjByK,KAAKE,MAAM3K,GAAK,EAGlByK,KAAK7P,QAAUid,CACjB,CAEA,OAAOpN,KAAK8B,QACd,EAEAnC,EAAGzO,UAAU6e,MAAQ,SAAgB/W,GAGnC,OADAmG,EAAyB,IAAlBa,KAAKC,UACLD,KAAK4P,OAAO5W,EACrB,EAKA2G,EAAGzO,UAAU8e,OAAS,SAAiBhX,EAAMiX,EAAMC,GAEjD,IAAIC,EADJhR,EAAuB,kBAATnG,GAAqBA,GAAQ,GAGzCmX,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAIrP,EAAI5H,EAAO,GACXoU,EAAIlb,KAAK6O,KAAK/H,EAAO4H,GAAK,GAAIZ,KAAK7P,QACnCigB,EAAO,SAAc,WAAcxP,GAAMA,EACzCyP,EAAcH,EAMlB,GAJAC,GAAK/C,EACL+C,EAAIje,KAAK+O,IAAI,EAAGkP,GAGZE,EAAa,CACf,IAAK,IAAI9a,EAAI,EAAGA,EAAI6X,EAAG7X,IACrB8a,EAAYnQ,MAAM3K,GAAKyK,KAAKE,MAAM3K,GAEpC8a,EAAYlgB,OAASid,CACvB,CAEA,GAAU,IAANA,QAEG,GAAIpN,KAAK7P,OAASid,EAEvB,IADApN,KAAK7P,QAAUid,EACV7X,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAC3ByK,KAAKE,MAAM3K,GAAKyK,KAAKE,MAAM3K,EAAI6X,QAGjCpN,KAAKE,MAAM,GAAK,EAChBF,KAAK7P,OAAS,EAGhB,IAAI6L,EAAQ,EACZ,IAAKzG,EAAIyK,KAAK7P,OAAS,EAAGoF,GAAK,IAAgB,IAAVyG,GAAezG,GAAK4a,GAAI5a,IAAK,CAChE,IAAImD,EAAuB,EAAhBsH,KAAKE,MAAM3K,GACtByK,KAAKE,MAAM3K,GAAMyG,GAAU,GAAK4E,EAAOlI,IAASkI,EAChD5E,EAAQtD,EAAO0X,CACjB,CAYA,OATIC,GAAyB,IAAVrU,IACjBqU,EAAYnQ,MAAMmQ,EAAYlgB,UAAY6L,GAGxB,IAAhBgE,KAAK7P,SACP6P,KAAKE,MAAM,GAAK,EAChBF,KAAK7P,OAAS,GAGT6P,KAAK8B,QACd,EAEAnC,EAAGzO,UAAUof,MAAQ,SAAgBtX,EAAMiX,EAAMC,GAG/C,OADA/Q,EAAyB,IAAlBa,KAAKC,UACLD,KAAKgQ,OAAOhX,EAAMiX,EAAMC,EACjC,EAGAvQ,EAAGzO,UAAUqf,KAAO,SAAevX,GACjC,OAAOgH,KAAKsC,QAAQyN,MAAM/W,EAC5B,EAEA2G,EAAGzO,UAAUsf,MAAQ,SAAgBxX,GACnC,OAAOgH,KAAKsC,QAAQsN,OAAO5W,EAC7B,EAGA2G,EAAGzO,UAAUuf,KAAO,SAAezX,GACjC,OAAOgH,KAAKsC,QAAQgO,MAAMtX,EAC5B,EAEA2G,EAAGzO,UAAUwf,MAAQ,SAAgB1X,GACnC,OAAOgH,KAAKsC,QAAQ0N,OAAOhX,EAC7B,EAGA2G,EAAGzO,UAAUmU,MAAQ,SAAgBoB,GACnCtH,EAAsB,kBAARsH,GAAoBA,GAAO,GACzC,IAAI7F,EAAI6F,EAAM,GACV2G,GAAK3G,EAAM7F,GAAK,GAChB+O,EAAI,GAAK/O,EAGb,QAAIZ,KAAK7P,QAAUid,OAGXpN,KAAKE,MAAMkN,GAELuC,EAChB,EAGAhQ,EAAGzO,UAAUyf,OAAS,SAAiB3X,GACrCmG,EAAuB,kBAATnG,GAAqBA,GAAQ,GAC3C,IAAI4H,EAAI5H,EAAO,GACXoU,GAAKpU,EAAO4H,GAAK,GAIrB,GAFAzB,EAAyB,IAAlBa,KAAKC,SAAgB,2CAExBD,KAAK7P,QAAUid,EACjB,OAAOpN,KAQT,GALU,IAANY,GACFwM,IAEFpN,KAAK7P,OAAS+B,KAAK6O,IAAIqM,EAAGpN,KAAK7P,QAErB,IAANyQ,EAAS,CACX,IAAIwP,EAAO,SAAc,WAAcxP,GAAMA,EAC7CZ,KAAKE,MAAMF,KAAK7P,OAAS,IAAMigB,CACjC,CAEA,OAAOpQ,KAAK8B,QACd,EAGAnC,EAAGzO,UAAU0f,MAAQ,SAAgB5X,GACnC,OAAOgH,KAAKsC,QAAQqO,OAAO3X,EAC7B,EAGA2G,EAAGzO,UAAUiU,MAAQ,SAAgBzG,GAGnC,OAFAS,EAAsB,kBAART,GACdS,EAAOT,EAAM,UACTA,EAAM,EAAUsB,KAAK6Q,OAAOnS,GAGV,IAAlBsB,KAAKC,SACa,IAAhBD,KAAK7P,SAAiC,EAAhB6P,KAAKE,MAAM,KAAWxB,GAC9CsB,KAAKE,MAAM,GAAKxB,GAAuB,EAAhBsB,KAAKE,MAAM,IAClCF,KAAKC,SAAW,EACTD,OAGTA,KAAKC,SAAW,EAChBD,KAAK6Q,MAAMnS,GACXsB,KAAKC,SAAW,EACTD,MAIFA,KAAKoC,OAAO1D,EACrB,EAEAiB,EAAGzO,UAAUkR,OAAS,SAAiB1D,GACrCsB,KAAKE,MAAM,IAAMxB,EAGjB,IAAK,IAAInJ,EAAI,EAAGA,EAAIyK,KAAK7P,QAAU6P,KAAKE,MAAM3K,IAAM,SAAWA,IAC7DyK,KAAKE,MAAM3K,IAAM,SACbA,IAAMyK,KAAK7P,OAAS,EACtB6P,KAAKE,MAAM3K,EAAI,GAAK,EAEpByK,KAAKE,MAAM3K,EAAI,KAKnB,OAFAyK,KAAK7P,OAAS+B,KAAK+O,IAAIjB,KAAK7P,OAAQoF,EAAI,GAEjCyK,IACT,EAGAL,EAAGzO,UAAU2f,MAAQ,SAAgBnS,GAGnC,GAFAS,EAAsB,kBAART,GACdS,EAAOT,EAAM,UACTA,EAAM,EAAG,OAAOsB,KAAKmF,OAAOzG,GAEhC,GAAsB,IAAlBsB,KAAKC,SAIP,OAHAD,KAAKC,SAAW,EAChBD,KAAKmF,MAAMzG,GACXsB,KAAKC,SAAW,EACTD,KAKT,GAFAA,KAAKE,MAAM,IAAMxB,EAEG,IAAhBsB,KAAK7P,QAAgB6P,KAAKE,MAAM,GAAK,EACvCF,KAAKE,MAAM,IAAMF,KAAKE,MAAM,GAC5BF,KAAKC,SAAW,OAGhB,IAAK,IAAI1K,EAAI,EAAGA,EAAIyK,KAAK7P,QAAU6P,KAAKE,MAAM3K,GAAK,EAAGA,IACpDyK,KAAKE,MAAM3K,IAAM,SACjByK,KAAKE,MAAM3K,EAAI,IAAM,EAIzB,OAAOyK,KAAK8B,QACd,EAEAnC,EAAGzO,UAAU4f,KAAO,SAAepS,GACjC,OAAOsB,KAAKsC,QAAQ6C,MAAMzG,EAC5B,EAEAiB,EAAGzO,UAAU6f,KAAO,SAAerS,GACjC,OAAOsB,KAAKsC,QAAQuO,MAAMnS,EAC5B,EAEAiB,EAAGzO,UAAU8f,KAAO,WAGlB,OAFAhR,KAAKC,SAAW,EAETD,IACT,EAEAL,EAAGzO,UAAU+T,IAAM,WACjB,OAAOjF,KAAKsC,QAAQ0O,MACtB,EAEArR,EAAGzO,UAAU+f,aAAe,SAAuBvS,EAAKoC,EAAKpK,GAC3D,IACInB,EAIAqM,EALAhE,EAAMc,EAAIvO,OAASuG,EAGvBsJ,KAAKuC,QAAQ3E,GAGb,IAAI5B,EAAQ,EACZ,IAAKzG,EAAI,EAAGA,EAAImJ,EAAIvO,OAAQoF,IAAK,CAC/BqM,GAA6B,EAAxB5B,KAAKE,MAAM3K,EAAImB,IAAcsF,EAClC,IAAImF,GAAwB,EAAfzC,EAAIwB,MAAM3K,IAAUuL,EAEjC9E,IADA4F,GAAa,SAART,IACS,KAAQA,EAAQ,SAAa,GAC3CnB,KAAKE,MAAM3K,EAAImB,GAAa,SAAJkL,CAC1B,CACA,KAAOrM,EAAIyK,KAAK7P,OAASuG,EAAOnB,IAE9ByG,GADA4F,GAA6B,EAAxB5B,KAAKE,MAAM3K,EAAImB,IAAcsF,IACrB,GACbgE,KAAKE,MAAM3K,EAAImB,GAAa,SAAJkL,EAG1B,GAAc,IAAV5F,EAAa,OAAOgE,KAAK8B,SAK7B,IAFA3C,GAAkB,IAAXnD,GACPA,EAAQ,EACHzG,EAAI,EAAGA,EAAIyK,KAAK7P,OAAQoF,IAE3ByG,GADA4F,IAAsB,EAAhB5B,KAAKE,MAAM3K,IAAUyG,IACd,GACbgE,KAAKE,MAAM3K,GAAS,SAAJqM,EAIlB,OAFA5B,KAAKC,SAAW,EAETD,KAAK8B,QACd,EAEAnC,EAAGzO,UAAUggB,SAAW,SAAmBxS,EAAKyS,GAC9C,IAAIza,GAAQsJ,KAAK7P,OAASuO,EAAIvO,QAE1B0T,EAAI7D,KAAKsC,QACT3S,EAAI+O,EAGJ0S,EAA8B,EAAxBzhB,EAAEuQ,MAAMvQ,EAAEQ,OAAS,GAGf,KADduG,EAAQ,GADMsJ,KAAK0E,WAAW0M,MAG5BzhB,EAAIA,EAAE6gB,MAAM9Z,GACZmN,EAAE+L,OAAOlZ,GACT0a,EAA8B,EAAxBzhB,EAAEuQ,MAAMvQ,EAAEQ,OAAS,IAI3B,IACIwf,EADAvB,EAAIvK,EAAE1T,OAASR,EAAEQ,OAGrB,GAAa,QAATghB,EAAgB,EAClBxB,EAAI,IAAIhQ,EAAG,OACTxP,OAASie,EAAI,EACfuB,EAAEzP,MAAQ,IAAInK,MAAM4Z,EAAExf,QACtB,IAAK,IAAIoF,EAAI,EAAGA,EAAIoa,EAAExf,OAAQoF,IAC5Boa,EAAEzP,MAAM3K,GAAK,CAEjB,CAEA,IAAI8b,EAAOxN,EAAEvB,QAAQ2O,aAAathB,EAAG,EAAGye,GAClB,IAAlBiD,EAAKpR,WACP4D,EAAIwN,EACA1B,IACFA,EAAEzP,MAAMkO,GAAK,IAIjB,IAAK,IAAIrT,EAAIqT,EAAI,EAAGrT,GAAK,EAAGA,IAAK,CAC/B,IAAIuW,EAAmC,UAAL,EAAxBzN,EAAE3D,MAAMvQ,EAAEQ,OAAS4K,KACE,EAA5B8I,EAAE3D,MAAMvQ,EAAEQ,OAAS4K,EAAI,IAO1B,IAHAuW,EAAKpf,KAAK6O,IAAKuQ,EAAKF,EAAO,EAAG,UAE9BvN,EAAEoN,aAAathB,EAAG2hB,EAAIvW,GACA,IAAf8I,EAAE5D,UACPqR,IACAzN,EAAE5D,SAAW,EACb4D,EAAEoN,aAAathB,EAAG,EAAGoL,GAChB8I,EAAEV,WACLU,EAAE5D,UAAY,GAGd0P,IACFA,EAAEzP,MAAMnF,GAAKuW,EAEjB,CAWA,OAVI3B,GACFA,EAAE7N,SAEJ+B,EAAE/B,SAGW,QAATqP,GAA4B,IAAVza,GACpBmN,EAAEmM,OAAOtZ,GAGJ,CACL6a,IAAK5B,GAAK,KACVzN,IAAK2B,EAET,EAMAlE,EAAGzO,UAAUsgB,OAAS,SAAiB9S,EAAKyS,EAAMM,GAGhD,OAFAtS,GAAQT,EAAIyE,UAERnD,KAAKmD,SACA,CACLoO,IAAK,IAAI5R,EAAG,GACZuC,IAAK,IAAIvC,EAAG,IAKM,IAAlBK,KAAKC,UAAmC,IAAjBvB,EAAIuB,UAC7BmE,EAAMpE,KAAKyF,MAAM+L,OAAO9S,EAAKyS,GAEhB,QAATA,IACFI,EAAMnN,EAAImN,IAAI9L,OAGH,QAAT0L,IACFjP,EAAMkC,EAAIlC,IAAIuD,MACVgM,GAA6B,IAAjBvP,EAAIjC,UAClBiC,EAAIyE,KAAKjI,IAIN,CACL6S,IAAKA,EACLrP,IAAKA,IAIa,IAAlBlC,KAAKC,UAAmC,IAAjBvB,EAAIuB,UAC7BmE,EAAMpE,KAAKwR,OAAO9S,EAAI+G,MAAO0L,GAEhB,QAATA,IACFI,EAAMnN,EAAImN,IAAI9L,OAGT,CACL8L,IAAKA,EACLrP,IAAKkC,EAAIlC,MAI0B,KAAlClC,KAAKC,SAAWvB,EAAIuB,WACvBmE,EAAMpE,KAAKyF,MAAM+L,OAAO9S,EAAI+G,MAAO0L,GAEtB,QAATA,IACFjP,EAAMkC,EAAIlC,IAAIuD,MACVgM,GAA6B,IAAjBvP,EAAIjC,UAClBiC,EAAI0E,KAAKlI,IAIN,CACL6S,IAAKnN,EAAImN,IACTrP,IAAKA,IAOLxD,EAAIvO,OAAS6P,KAAK7P,QAAU6P,KAAKoB,IAAI1C,GAAO,EACvC,CACL6S,IAAK,IAAI5R,EAAG,GACZuC,IAAKlC,MAKU,IAAftB,EAAIvO,OACO,QAATghB,EACK,CACLI,IAAKvR,KAAK0R,KAAKhT,EAAIwB,MAAM,IACzBgC,IAAK,MAII,QAATiP,EACK,CACLI,IAAK,KACLrP,IAAK,IAAIvC,EAAGK,KAAKoD,MAAM1E,EAAIwB,MAAM,MAI9B,CACLqR,IAAKvR,KAAK0R,KAAKhT,EAAIwB,MAAM,IACzBgC,IAAK,IAAIvC,EAAGK,KAAKoD,MAAM1E,EAAIwB,MAAM,MAI9BF,KAAKkR,SAASxS,EAAKyS,GAlF1B,IAAII,EAAKrP,EAAKkC,CAmFhB,EAGAzE,EAAGzO,UAAUqgB,IAAM,SAAc7S,GAC/B,OAAOsB,KAAKwR,OAAO9S,EAAK,OAAO,GAAO6S,GACxC,EAGA5R,EAAGzO,UAAUgR,IAAM,SAAcxD,GAC/B,OAAOsB,KAAKwR,OAAO9S,EAAK,OAAO,GAAOwD,GACxC,EAEAvC,EAAGzO,UAAUygB,KAAO,SAAejT,GACjC,OAAOsB,KAAKwR,OAAO9S,EAAK,OAAO,GAAMwD,GACvC,EAGAvC,EAAGzO,UAAU0gB,SAAW,SAAmBlT,GACzC,IAAImT,EAAK7R,KAAKwR,OAAO9S,GAGrB,GAAImT,EAAG3P,IAAIiB,SAAU,OAAO0O,EAAGN,IAE/B,IAAIrP,EAA0B,IAApB2P,EAAGN,IAAItR,SAAiB4R,EAAG3P,IAAI0E,KAAKlI,GAAOmT,EAAG3P,IAEpD4P,EAAOpT,EAAIgS,MAAM,GACjBqB,EAAKrT,EAAIsT,MAAM,GACf5Q,EAAMc,EAAId,IAAI0Q,GAGlB,OAAI1Q,EAAM,GAAa,IAAP2Q,GAAoB,IAAR3Q,EAAmByQ,EAAGN,IAGvB,IAApBM,EAAGN,IAAItR,SAAiB4R,EAAGN,IAAIV,MAAM,GAAKgB,EAAGN,IAAIpM,MAAM,EAChE,EAEAxF,EAAGzO,UAAUkS,MAAQ,SAAgB1E,GACnC,IAAI4Q,EAAW5Q,EAAM,EACjB4Q,IAAU5Q,GAAOA,GAErBS,EAAOT,GAAO,UAId,IAHA,IAAIgP,GAAK,GAAK,IAAMhP,EAEhBzI,EAAM,EACDV,EAAIyK,KAAK7P,OAAS,EAAGoF,GAAK,EAAGA,IACpCU,GAAOyX,EAAIzX,GAAuB,EAAhB+J,KAAKE,MAAM3K,KAAWmJ,EAG1C,OAAO4Q,GAAYrZ,EAAMA,CAC3B,EAGA0J,EAAGzO,UAAU+gB,KAAO,SAAevT,GACjC,OAAOsB,KAAKoD,MAAM1E,EACpB,EAGAiB,EAAGzO,UAAUmS,MAAQ,SAAgB3E,GACnC,IAAI4Q,EAAW5Q,EAAM,EACjB4Q,IAAU5Q,GAAOA,GAErBS,EAAOT,GAAO,UAGd,IADA,IAAI1C,EAAQ,EACHzG,EAAIyK,KAAK7P,OAAS,EAAGoF,GAAK,EAAGA,IAAK,CACzC,IAAIqM,GAAqB,EAAhB5B,KAAKE,MAAM3K,IAAkB,SAARyG,EAC9BgE,KAAKE,MAAM3K,GAAMqM,EAAIlD,EAAO,EAC5B1C,EAAQ4F,EAAIlD,CACd,CAGA,OADAsB,KAAK8B,SACEwN,EAAWtP,KAAKuF,OAASvF,IAClC,EAEAL,EAAGzO,UAAUwgB,KAAO,SAAehT,GACjC,OAAOsB,KAAKsC,QAAQe,MAAM3E,EAC5B,EAEAiB,EAAGzO,UAAUghB,KAAO,SAAexE,GACjCvO,EAAsB,IAAfuO,EAAEzN,UACTd,GAAQuO,EAAEvK,UAEV,IAAInI,EAAIgF,KACJsM,EAAIoB,EAAEpL,QAGRtH,EADiB,IAAfA,EAAEiF,SACAjF,EAAE2W,KAAKjE,GAEP1S,EAAEsH,QAaR,IATA,IAAI6P,EAAI,IAAIxS,EAAG,GACXyS,EAAI,IAAIzS,EAAG,GAGX0S,EAAI,IAAI1S,EAAG,GACX2S,EAAI,IAAI3S,EAAG,GAEX4S,EAAI,EAEDvX,EAAEwX,UAAYlG,EAAEkG,UACrBxX,EAAEgV,OAAO,GACT1D,EAAE0D,OAAO,KACPuC,EAMJ,IAHA,IAAIE,EAAKnG,EAAEhK,QACPoQ,EAAK1X,EAAEsH,SAEHtH,EAAEmI,UAAU,CAClB,IAAK,IAAI5N,EAAI,EAAGod,EAAK,EAAyB,KAArB3X,EAAEkF,MAAM,GAAKyS,IAAapd,EAAI,KAAMA,EAAGod,IAAO,GACvE,GAAIpd,EAAI,EAEN,IADAyF,EAAEgV,OAAOza,GACFA,KAAM,IACP4c,EAAES,SAAWR,EAAEQ,WACjBT,EAAExL,KAAK8L,GACPL,EAAExL,KAAK8L,IAGTP,EAAEnC,OAAO,GACToC,EAAEpC,OAAO,GAIb,IAAK,IAAIjV,EAAI,EAAG8X,EAAK,EAAyB,KAArBvG,EAAEpM,MAAM,GAAK2S,IAAa9X,EAAI,KAAMA,EAAG8X,IAAO,GACvE,GAAI9X,EAAI,EAEN,IADAuR,EAAE0D,OAAOjV,GACFA,KAAM,IACPsX,EAAEO,SAAWN,EAAEM,WACjBP,EAAE1L,KAAK8L,GACPH,EAAE1L,KAAK8L,IAGTL,EAAErC,OAAO,GACTsC,EAAEtC,OAAO,GAIThV,EAAEoG,IAAIkL,IAAM,GACdtR,EAAE4L,KAAK0F,GACP6F,EAAEvL,KAAKyL,GACPD,EAAExL,KAAK0L,KAEPhG,EAAE1F,KAAK5L,GACPqX,EAAEzL,KAAKuL,GACPG,EAAE1L,KAAKwL,GAEX,CAEA,MAAO,CACLvO,EAAGwO,EACH1iB,EAAG2iB,EACHQ,IAAKxG,EAAEsD,OAAO2C,GAElB,EAKA5S,EAAGzO,UAAU6hB,OAAS,SAAiBrF,GACrCvO,EAAsB,IAAfuO,EAAEzN,UACTd,GAAQuO,EAAEvK,UAEV,IAAIU,EAAI7D,KACJrQ,EAAI+d,EAAEpL,QAGRuB,EADiB,IAAfA,EAAE5D,SACA4D,EAAE8N,KAAKjE,GAEP7J,EAAEvB,QAQR,IALA,IAuCI8B,EAvCA4O,EAAK,IAAIrT,EAAG,GACZsT,EAAK,IAAItT,EAAG,GAEZuT,EAAQvjB,EAAE2S,QAEPuB,EAAEsP,KAAK,GAAK,GAAKxjB,EAAEwjB,KAAK,GAAK,GAAG,CACrC,IAAK,IAAI5d,EAAI,EAAGod,EAAK,EAAyB,KAArB9O,EAAE3D,MAAM,GAAKyS,IAAapd,EAAI,KAAMA,EAAGod,IAAO,GACvE,GAAIpd,EAAI,EAEN,IADAsO,EAAEmM,OAAOza,GACFA,KAAM,GACPyd,EAAGJ,SACLI,EAAGrM,KAAKuM,GAGVF,EAAGhD,OAAO,GAId,IAAK,IAAIjV,EAAI,EAAG8X,EAAK,EAAyB,KAArBljB,EAAEuQ,MAAM,GAAK2S,IAAa9X,EAAI,KAAMA,EAAG8X,IAAO,GACvE,GAAI9X,EAAI,EAEN,IADApL,EAAEqgB,OAAOjV,GACFA,KAAM,GACPkY,EAAGL,SACLK,EAAGtM,KAAKuM,GAGVD,EAAGjD,OAAO,GAIVnM,EAAEzC,IAAIzR,IAAM,GACdkU,EAAE+C,KAAKjX,GACPqjB,EAAGpM,KAAKqM,KAERtjB,EAAEiX,KAAK/C,GACPoP,EAAGrM,KAAKoM,GAEZ,CAaA,OATE5O,EADgB,IAAdP,EAAEsP,KAAK,GACHH,EAEAC,GAGAE,KAAK,GAAK,GAChB/O,EAAIuC,KAAK+G,GAGJtJ,CACT,EAEAzE,EAAGzO,UAAU4hB,IAAM,SAAcpU,GAC/B,GAAIsB,KAAKmD,SAAU,OAAOzE,EAAIuG,MAC9B,GAAIvG,EAAIyE,SAAU,OAAOnD,KAAKiF,MAE9B,IAAIpB,EAAI7D,KAAKsC,QACT3S,EAAI+O,EAAI4D,QACZuB,EAAE5D,SAAW,EACbtQ,EAAEsQ,SAAW,EAGb,IAAK,IAAIvJ,EAAQ,EAAGmN,EAAE2O,UAAY7iB,EAAE6iB,SAAU9b,IAC5CmN,EAAEmM,OAAO,GACTrgB,EAAEqgB,OAAO,GAGX,OAAG,CACD,KAAOnM,EAAE2O,UACP3O,EAAEmM,OAAO,GAEX,KAAOrgB,EAAE6iB,UACP7iB,EAAEqgB,OAAO,GAGX,IAAIpP,EAAIiD,EAAEzC,IAAIzR,GACd,GAAIiR,EAAI,EAAG,CAET,IAAI+D,EAAId,EACRA,EAAIlU,EACJA,EAAIgV,CACN,MAAO,GAAU,IAAN/D,GAAyB,IAAdjR,EAAEwjB,KAAK,GAC3B,MAGFtP,EAAE+C,KAAKjX,EACT,CAEA,OAAOA,EAAEigB,OAAOlZ,EAClB,EAGAiJ,EAAGzO,UAAUkiB,KAAO,SAAe1U,GACjC,OAAOsB,KAAKkS,KAAKxT,GAAKmF,EAAE8N,KAAKjT,EAC/B,EAEAiB,EAAGzO,UAAUshB,OAAS,WACpB,OAA+B,KAAP,EAAhBxS,KAAKE,MAAM,GACrB,EAEAP,EAAGzO,UAAU0hB,MAAQ,WACnB,OAA+B,KAAP,EAAhB5S,KAAKE,MAAM,GACrB,EAGAP,EAAGzO,UAAU8gB,MAAQ,SAAgBtT,GACnC,OAAOsB,KAAKE,MAAM,GAAKxB,CACzB,EAGAiB,EAAGzO,UAAUmiB,MAAQ,SAAgB5M,GACnCtH,EAAsB,kBAARsH,GACd,IAAI7F,EAAI6F,EAAM,GACV2G,GAAK3G,EAAM7F,GAAK,GAChB+O,EAAI,GAAK/O,EAGb,GAAIZ,KAAK7P,QAAUid,EAGjB,OAFApN,KAAKuC,QAAQ6K,EAAI,GACjBpN,KAAKE,MAAMkN,IAAMuC,EACV3P,KAKT,IADA,IAAIhE,EAAQ2T,EACHpa,EAAI6X,EAAa,IAAVpR,GAAezG,EAAIyK,KAAK7P,OAAQoF,IAAK,CACnD,IAAIqM,EAAoB,EAAhB5B,KAAKE,MAAM3K,GAEnByG,GADA4F,GAAK5F,KACS,GACd4F,GAAK,SACL5B,KAAKE,MAAM3K,GAAKqM,CAClB,CAKA,OAJc,IAAV5F,IACFgE,KAAKE,MAAM3K,GAAKyG,EAChBgE,KAAK7P,UAEA6P,IACT,EAEAL,EAAGzO,UAAUiS,OAAS,WACpB,OAAuB,IAAhBnD,KAAK7P,QAAkC,IAAlB6P,KAAKE,MAAM,EACzC,EAEAP,EAAGzO,UAAUiiB,KAAO,SAAezU,GACjC,IAOI0F,EAPAnE,EAAWvB,EAAM,EAErB,GAAsB,IAAlBsB,KAAKC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBD,KAAKC,UAAkBA,EAAU,OAAO,EAK5C,GAHAD,KAAK8B,SAGD9B,KAAK7P,OAAS,EAChBiU,EAAM,MACD,CACDnE,IACFvB,GAAOA,GAGTS,EAAOT,GAAO,SAAW,qBAEzB,IAAIkD,EAAoB,EAAhB5B,KAAKE,MAAM,GACnBkE,EAAMxC,IAAMlD,EAAM,EAAIkD,EAAIlD,GAAO,EAAI,CACvC,CACA,OAAsB,IAAlBsB,KAAKC,SAA8B,GAANmE,EAC1BA,CACT,EAMAzE,EAAGzO,UAAUkQ,IAAM,SAAc1C,GAC/B,GAAsB,IAAlBsB,KAAKC,UAAmC,IAAjBvB,EAAIuB,SAAgB,OAAQ,EACvD,GAAsB,IAAlBD,KAAKC,UAAmC,IAAjBvB,EAAIuB,SAAgB,OAAO,EAEtD,IAAImE,EAAMpE,KAAKsT,KAAK5U,GACpB,OAAsB,IAAlBsB,KAAKC,SAA8B,GAANmE,EAC1BA,CACT,EAGAzE,EAAGzO,UAAUoiB,KAAO,SAAe5U,GAEjC,GAAIsB,KAAK7P,OAASuO,EAAIvO,OAAQ,OAAO,EACrC,GAAI6P,KAAK7P,OAASuO,EAAIvO,OAAQ,OAAQ,EAGtC,IADA,IAAIiU,EAAM,EACD7O,EAAIyK,KAAK7P,OAAS,EAAGoF,GAAK,EAAGA,IAAK,CACzC,IAAIsO,EAAoB,EAAhB7D,KAAKE,MAAM3K,GACf5F,EAAmB,EAAf+O,EAAIwB,MAAM3K,GAElB,GAAIsO,IAAMlU,EAAV,CACIkU,EAAIlU,EACNyU,GAAO,EACEP,EAAIlU,IACbyU,EAAM,GAER,KANqB,CAOvB,CACA,OAAOA,CACT,EAEAzE,EAAGzO,UAAUqiB,IAAM,SAAc7U,GAC/B,OAA0B,IAAnBsB,KAAKmT,KAAKzU,EACnB,EAEAiB,EAAGzO,UAAUsiB,GAAK,SAAa9U,GAC7B,OAAyB,IAAlBsB,KAAKoB,IAAI1C,EAClB,EAEAiB,EAAGzO,UAAUuiB,KAAO,SAAe/U,GACjC,OAAOsB,KAAKmT,KAAKzU,IAAQ,CAC3B,EAEAiB,EAAGzO,UAAUwiB,IAAM,SAAchV,GAC/B,OAAOsB,KAAKoB,IAAI1C,IAAQ,CAC1B,EAEAiB,EAAGzO,UAAUyiB,IAAM,SAAcjV,GAC/B,OAA2B,IAApBsB,KAAKmT,KAAKzU,EACnB,EAEAiB,EAAGzO,UAAU0iB,GAAK,SAAalV,GAC7B,OAA0B,IAAnBsB,KAAKoB,IAAI1C,EAClB,EAEAiB,EAAGzO,UAAU2iB,KAAO,SAAenV,GACjC,OAAOsB,KAAKmT,KAAKzU,IAAQ,CAC3B,EAEAiB,EAAGzO,UAAU4iB,IAAM,SAAcpV,GAC/B,OAAOsB,KAAKoB,IAAI1C,IAAQ,CAC1B,EAEAiB,EAAGzO,UAAU6iB,IAAM,SAAcrV,GAC/B,OAA0B,IAAnBsB,KAAKmT,KAAKzU,EACnB,EAEAiB,EAAGzO,UAAU8iB,GAAK,SAAatV,GAC7B,OAAyB,IAAlBsB,KAAKoB,IAAI1C,EAClB,EAMAiB,EAAGQ,IAAM,SAAczB,GACrB,OAAO,IAAIuV,EAAIvV,EACjB,EAEAiB,EAAGzO,UAAUgjB,MAAQ,SAAgBC,GAGnC,OAFAhV,GAAQa,KAAKG,IAAK,yCAClBhB,EAAyB,IAAlBa,KAAKC,SAAgB,iCACrBkU,EAAIC,UAAUpU,MAAMqU,UAAUF,EACvC,EAEAxU,EAAGzO,UAAUojB,QAAU,WAErB,OADAnV,EAAOa,KAAKG,IAAK,wDACVH,KAAKG,IAAIoU,YAAYvU,KAC9B,EAEAL,EAAGzO,UAAUmjB,UAAY,SAAoBF,GAE3C,OADAnU,KAAKG,IAAMgU,EACJnU,IACT,EAEAL,EAAGzO,UAAUsjB,SAAW,SAAmBL,GAEzC,OADAhV,GAAQa,KAAKG,IAAK,yCACXH,KAAKqU,UAAUF,EACxB,EAEAxU,EAAGzO,UAAUujB,OAAS,SAAiB/V,GAErC,OADAS,EAAOa,KAAKG,IAAK,sCACVH,KAAKG,IAAI0G,IAAI7G,KAAMtB,EAC5B,EAEAiB,EAAGzO,UAAUwjB,QAAU,SAAkBhW,GAEvC,OADAS,EAAOa,KAAKG,IAAK,uCACVH,KAAKG,IAAIwG,KAAK3G,KAAMtB,EAC7B,EAEAiB,EAAGzO,UAAUyjB,OAAS,SAAiBjW,GAErC,OADAS,EAAOa,KAAKG,IAAK,sCACVH,KAAKG,IAAI2G,IAAI9G,KAAMtB,EAC5B,EAEAiB,EAAGzO,UAAU0jB,QAAU,SAAkBlW,GAEvC,OADAS,EAAOa,KAAKG,IAAK,uCACVH,KAAKG,IAAIyG,KAAK5G,KAAMtB,EAC7B,EAEAiB,EAAGzO,UAAU2jB,OAAS,SAAiBnW,GAErC,OADAS,EAAOa,KAAKG,IAAK,sCACVH,KAAKG,IAAI2U,IAAI9U,KAAMtB,EAC5B,EAEAiB,EAAGzO,UAAU6jB,OAAS,SAAiBrW,GAGrC,OAFAS,EAAOa,KAAKG,IAAK,sCACjBH,KAAKG,IAAI6U,SAAShV,KAAMtB,GACjBsB,KAAKG,IAAIW,IAAId,KAAMtB,EAC5B,EAEAiB,EAAGzO,UAAU+jB,QAAU,SAAkBvW,GAGvC,OAFAS,EAAOa,KAAKG,IAAK,sCACjBH,KAAKG,IAAI6U,SAAShV,KAAMtB,GACjBsB,KAAKG,IAAI4K,KAAK/K,KAAMtB,EAC7B,EAEAiB,EAAGzO,UAAUgkB,OAAS,WAGpB,OAFA/V,EAAOa,KAAKG,IAAK,sCACjBH,KAAKG,IAAIgV,SAASnV,MACXA,KAAKG,IAAIqP,IAAIxP,KACtB,EAEAL,EAAGzO,UAAUkkB,QAAU,WAGrB,OAFAjW,EAAOa,KAAKG,IAAK,uCACjBH,KAAKG,IAAIgV,SAASnV,MACXA,KAAKG,IAAIsP,KAAKzP,KACvB,EAGAL,EAAGzO,UAAUmkB,QAAU,WAGrB,OAFAlW,EAAOa,KAAKG,IAAK,uCACjBH,KAAKG,IAAIgV,SAASnV,MACXA,KAAKG,IAAImV,KAAKtV,KACvB,EAEAL,EAAGzO,UAAUqkB,QAAU,WAGrB,OAFApW,EAAOa,KAAKG,IAAK,uCACjBH,KAAKG,IAAIgV,SAASnV,MACXA,KAAKG,IAAIiT,KAAKpT,KACvB,EAGAL,EAAGzO,UAAUskB,OAAS,WAGpB,OAFArW,EAAOa,KAAKG,IAAK,sCACjBH,KAAKG,IAAIgV,SAASnV,MACXA,KAAKG,IAAIsF,IAAIzF,KACtB,EAEAL,EAAGzO,UAAUukB,OAAS,SAAiB/W,GAGrC,OAFAS,EAAOa,KAAKG,MAAQzB,EAAIyB,IAAK,qBAC7BH,KAAKG,IAAIgV,SAASnV,MACXA,KAAKG,IAAI9M,IAAI2M,KAAMtB,EAC5B,EAGA,IAAIgX,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQxkB,EAAMmc,GAErB1N,KAAKzO,KAAOA,EACZyO,KAAK0N,EAAI,IAAI/N,EAAG+N,EAAG,IACnB1N,KAAKmO,EAAInO,KAAK0N,EAAE7I,YAChB7E,KAAK8D,EAAI,IAAInE,EAAG,GAAGiQ,OAAO5P,KAAKmO,GAAGvH,KAAK5G,KAAK0N,GAE5C1N,KAAKzC,IAAMyC,KAAKgW,MAClB,CAgDA,SAASC,IACPF,EAAOje,KACLkI,KACA,OACA,0EACJ,CA8DA,SAASkW,IACPH,EAAOje,KACLkI,KACA,OACA,iEACJ,CAGA,SAASmW,IACPJ,EAAOje,KACLkI,KACA,OACA,wDACJ,CAGA,SAASoW,IAEPL,EAAOje,KACLkI,KACA,QACA,sEACJ,CA6CA,SAASiU,EAAK7F,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIiI,EAAQ1W,EAAG2W,OAAOlI,GACtBpO,KAAKoO,EAAIiI,EAAM3I,EACf1N,KAAKqW,MAAQA,CACf,MACElX,EAAOiP,EAAEmF,IAAI,GAAI,kCACjBvT,KAAKoO,EAAIA,EACTpO,KAAKqW,MAAQ,IAEjB,CAkOA,SAASE,EAAMnI,GACb6F,EAAInc,KAAKkI,KAAMoO,GAEfpO,KAAKtJ,MAAQsJ,KAAKoO,EAAEvJ,YAChB7E,KAAKtJ,MAAQ,KAAO,IACtBsJ,KAAKtJ,OAAS,GAAMsJ,KAAKtJ,MAAQ,IAGnCsJ,KAAKY,EAAI,IAAIjB,EAAG,GAAGiQ,OAAO5P,KAAKtJ,OAC/BsJ,KAAK+R,GAAK/R,KAAKwW,KAAKxW,KAAKY,EAAE4O,OAC3BxP,KAAKyW,KAAOzW,KAAKY,EAAEmS,OAAO/S,KAAKoO,GAE/BpO,KAAK0W,KAAO1W,KAAKyW,KAAK3V,IAAId,KAAKY,GAAGiQ,MAAM,GAAGU,IAAIvR,KAAKoO,GACpDpO,KAAK0W,KAAO1W,KAAK0W,KAAK/E,KAAK3R,KAAKY,GAChCZ,KAAK0W,KAAO1W,KAAKY,EAAEkG,IAAI9G,KAAK0W,KAC9B,CA/aAX,EAAO7kB,UAAU8kB,KAAO,WACtB,IAAIzY,EAAM,IAAIoC,EAAG,MAEjB,OADApC,EAAI2C,MAAQ,IAAInK,MAAM7D,KAAKyP,KAAK3B,KAAKmO,EAAI,KAClC5Q,CACT,EAEAwY,EAAO7kB,UAAUylB,QAAU,SAAkBjY,GAG3C,IACIkY,EADAhW,EAAIlC,EAGR,GACEsB,KAAKpM,MAAMgN,EAAGZ,KAAKzC,KAGnBqZ,GADAhW,GADAA,EAAIZ,KAAK6W,MAAMjW,IACT+F,KAAK3G,KAAKzC,MACPsH,kBACF+R,EAAO5W,KAAKmO,GAErB,IAAI/M,EAAMwV,EAAO5W,KAAKmO,GAAK,EAAIvN,EAAE0S,KAAKtT,KAAK0N,GAgB3C,OAfY,IAARtM,GACFR,EAAEV,MAAM,GAAK,EACbU,EAAEzQ,OAAS,GACFiR,EAAM,EACfR,EAAEgG,KAAK5G,KAAK0N,QAEI3b,IAAZ6O,EAAEkW,MAEJlW,EAAEkW,QAGFlW,EAAEkB,SAIClB,CACT,EAEAmV,EAAO7kB,UAAU0C,MAAQ,SAAgBmjB,EAAO/T,GAC9C+T,EAAM/G,OAAOhQ,KAAKmO,EAAG,EAAGnL,EAC1B,EAEA+S,EAAO7kB,UAAU2lB,MAAQ,SAAgBnY,GACvC,OAAOA,EAAIqM,KAAK/K,KAAK8D,EACvB,EAQAxE,EAAS2W,EAAMF,GAEfE,EAAK/kB,UAAU0C,MAAQ,SAAgBmjB,EAAOpY,GAK5C,IAHA,IAAIyR,EAAO,QAEP4G,EAAS9kB,KAAK6O,IAAIgW,EAAM5mB,OAAQ,GAC3BoF,EAAI,EAAGA,EAAIyhB,EAAQzhB,IAC1BoJ,EAAOuB,MAAM3K,GAAKwhB,EAAM7W,MAAM3K,GAIhC,GAFAoJ,EAAOxO,OAAS6mB,EAEZD,EAAM5mB,QAAU,EAGlB,OAFA4mB,EAAM7W,MAAM,GAAK,OACjB6W,EAAM5mB,OAAS,GAKjB,IAAI8mB,EAAOF,EAAM7W,MAAM,GAGvB,IAFAvB,EAAOuB,MAAMvB,EAAOxO,UAAY8mB,EAAO7G,EAElC7a,EAAI,GAAIA,EAAIwhB,EAAM5mB,OAAQoF,IAAK,CAClC,IAAI2hB,EAAwB,EAAjBH,EAAM7W,MAAM3K,GACvBwhB,EAAM7W,MAAM3K,EAAI,KAAQ2hB,EAAO9G,IAAS,EAAM6G,IAAS,GACvDA,EAAOC,CACT,CACAD,KAAU,GACVF,EAAM7W,MAAM3K,EAAI,IAAM0hB,EACT,IAATA,GAAcF,EAAM5mB,OAAS,GAC/B4mB,EAAM5mB,QAAU,GAEhB4mB,EAAM5mB,QAAU,CAEpB,EAEA8lB,EAAK/kB,UAAU2lB,MAAQ,SAAgBnY,GAErCA,EAAIwB,MAAMxB,EAAIvO,QAAU,EACxBuO,EAAIwB,MAAMxB,EAAIvO,OAAS,GAAK,EAC5BuO,EAAIvO,QAAU,EAId,IADA,IAAIqB,EAAK,EACA+D,EAAI,EAAGA,EAAImJ,EAAIvO,OAAQoF,IAAK,CACnC,IAAIqM,EAAmB,EAAflD,EAAIwB,MAAM3K,GAClB/D,GAAU,IAAJoQ,EACNlD,EAAIwB,MAAM3K,GAAU,SAAL/D,EACfA,EAAS,GAAJoQ,GAAapQ,EAAK,SAAa,EACtC,CASA,OANkC,IAA9BkN,EAAIwB,MAAMxB,EAAIvO,OAAS,KACzBuO,EAAIvO,SAC8B,IAA9BuO,EAAIwB,MAAMxB,EAAIvO,OAAS,IACzBuO,EAAIvO,UAGDuO,CACT,EAQAY,EAAS4W,EAAMH,GAQfzW,EAAS6W,EAAMJ,GASfzW,EAAS8W,EAAQL,GAEjBK,EAAOllB,UAAU2lB,MAAQ,SAAgBnY,GAGvC,IADA,IAAI1C,EAAQ,EACHzG,EAAI,EAAGA,EAAImJ,EAAIvO,OAAQoF,IAAK,CACnC,IAAIuP,EAA0B,IAAL,EAAfpG,EAAIwB,MAAM3K,IAAiByG,EACjCxK,EAAU,SAALsT,EACTA,KAAQ,GAERpG,EAAIwB,MAAM3K,GAAK/D,EACfwK,EAAQ8I,CACV,CAIA,OAHc,IAAV9I,IACF0C,EAAIwB,MAAMxB,EAAIvO,UAAY6L,GAErB0C,CACT,EAGAiB,EAAG2W,OAAS,SAAgB/kB,GAE1B,GAAImkB,EAAOnkB,GAAO,OAAOmkB,EAAOnkB,GAEhC,IAAI8kB,EACJ,GAAa,SAAT9kB,EACF8kB,EAAQ,IAAIJ,OACP,GAAa,SAAT1kB,EACT8kB,EAAQ,IAAIH,OACP,GAAa,SAAT3kB,EACT8kB,EAAQ,IAAIF,MACP,IAAa,WAAT5kB,EAGT,MAAM,IAAII,MAAM,iBAAmBJ,GAFnC8kB,EAAQ,IAAID,CAGd,CAGA,OAFAV,EAAOnkB,GAAQ8kB,EAERA,CACT,EAiBApC,EAAI/iB,UAAUikB,SAAW,SAAmBtR,GAC1C1E,EAAsB,IAAf0E,EAAE5D,SAAgB,iCACzBd,EAAO0E,EAAE1D,IAAK,kCAChB,EAEA8T,EAAI/iB,UAAU8jB,SAAW,SAAmBnR,EAAGlU,GAC7CwP,EAAqC,KAA7B0E,EAAE5D,SAAWtQ,EAAEsQ,UAAiB,iCACxCd,EAAO0E,EAAE1D,KAAO0D,EAAE1D,MAAQxQ,EAAEwQ,IAC1B,kCACJ,EAEA8T,EAAI/iB,UAAUslB,KAAO,SAAe3S,GAClC,OAAI7D,KAAKqW,MAAcrW,KAAKqW,MAAMM,QAAQ9S,GAAGwQ,UAAUrU,OAEvDgB,EAAK6C,EAAGA,EAAE8N,KAAK3R,KAAKoO,GAAGiG,UAAUrU,OAC1B6D,EACT,EAEAoQ,EAAI/iB,UAAUuU,IAAM,SAAc5B,GAChC,OAAIA,EAAEV,SACGU,EAAEvB,QAGJtC,KAAKoO,EAAEtH,IAAIjD,GAAGwQ,UAAUrU,KACjC,EAEAiU,EAAI/iB,UAAU2V,IAAM,SAAchD,EAAGlU,GACnCqQ,KAAKgV,SAASnR,EAAGlU,GAEjB,IAAIyU,EAAMP,EAAEgD,IAAIlX,GAIhB,OAHIyU,EAAIhD,IAAIpB,KAAKoO,IAAM,GACrBhK,EAAIwC,KAAK5G,KAAKoO,GAEThK,EAAIiQ,UAAUrU,KACvB,EAEAiU,EAAI/iB,UAAUyV,KAAO,SAAe9C,EAAGlU,GACrCqQ,KAAKgV,SAASnR,EAAGlU,GAEjB,IAAIyU,EAAMP,EAAE8C,KAAKhX,GAIjB,OAHIyU,EAAIhD,IAAIpB,KAAKoO,IAAM,GACrBhK,EAAIwC,KAAK5G,KAAKoO,GAEThK,CACT,EAEA6P,EAAI/iB,UAAU4V,IAAM,SAAcjD,EAAGlU,GACnCqQ,KAAKgV,SAASnR,EAAGlU,GAEjB,IAAIyU,EAAMP,EAAEiD,IAAInX,GAIhB,OAHIyU,EAAI+O,KAAK,GAAK,GAChB/O,EAAIuC,KAAK3G,KAAKoO,GAEThK,EAAIiQ,UAAUrU,KACvB,EAEAiU,EAAI/iB,UAAU0V,KAAO,SAAe/C,EAAGlU,GACrCqQ,KAAKgV,SAASnR,EAAGlU,GAEjB,IAAIyU,EAAMP,EAAE+C,KAAKjX,GAIjB,OAHIyU,EAAI+O,KAAK,GAAK,GAChB/O,EAAIuC,KAAK3G,KAAKoO,GAEThK,CACT,EAEA6P,EAAI/iB,UAAU4jB,IAAM,SAAcjR,EAAGnF,GAEnC,OADAsB,KAAKmV,SAAStR,GACP7D,KAAKwW,KAAK3S,EAAE2M,MAAM9R,GAC3B,EAEAuV,EAAI/iB,UAAU6Z,KAAO,SAAelH,EAAGlU,GAErC,OADAqQ,KAAKgV,SAASnR,EAAGlU,GACVqQ,KAAKwW,KAAK3S,EAAEkH,KAAKpb,GAC1B,EAEAskB,EAAI/iB,UAAU4P,IAAM,SAAc+C,EAAGlU,GAEnC,OADAqQ,KAAKgV,SAASnR,EAAGlU,GACVqQ,KAAKwW,KAAK3S,EAAE/C,IAAInR,GACzB,EAEAskB,EAAI/iB,UAAUue,KAAO,SAAe5L,GAClC,OAAO7D,KAAK+K,KAAKlH,EAAGA,EAAEvB,QACxB,EAEA2R,EAAI/iB,UAAUse,IAAM,SAAc3L,GAChC,OAAO7D,KAAKc,IAAI+C,EAAGA,EACrB,EAEAoQ,EAAI/iB,UAAUokB,KAAO,SAAezR,GAClC,GAAIA,EAAEV,SAAU,OAAOU,EAAEvB,QAEzB,IAAI6U,EAAOnX,KAAKoO,EAAE4D,MAAM,GAIxB,GAHA7S,EAAOgY,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAI9jB,EAAM2M,KAAKoO,EAAEvH,IAAI,IAAIlH,EAAG,IAAIqQ,OAAO,GACvC,OAAOhQ,KAAK3M,IAAIwQ,EAAGxQ,EACrB,CAOA,IAFA,IAAIsc,EAAI3P,KAAKoO,EAAE2C,KAAK,GAChB3D,EAAI,GACAuC,EAAExM,UAA2B,IAAfwM,EAAEqC,MAAM,IAC5B5E,IACAuC,EAAEK,OAAO,GAEX7Q,GAAQwQ,EAAExM,UAEV,IAAIiU,EAAM,IAAIzX,EAAG,GAAGuU,MAAMlU,MACtBqX,EAAOD,EAAI5B,SAIX8B,EAAOtX,KAAKoO,EAAE2C,KAAK,GAAGf,OAAO,GAC7BuH,EAAIvX,KAAKoO,EAAEvJ,YAGf,IAFA0S,EAAI,IAAI5X,EAAG,EAAI4X,EAAIA,GAAGrD,MAAMlU,MAEW,IAAhCA,KAAK3M,IAAIkkB,EAAGD,GAAMlW,IAAIiW,IAC3BE,EAAE7C,QAAQ2C,GAOZ,IAJA,IAAI5W,EAAIT,KAAK3M,IAAIkkB,EAAG5H,GAChB/O,EAAIZ,KAAK3M,IAAIwQ,EAAG8L,EAAEmB,KAAK,GAAGd,OAAO,IACjCrL,EAAI3E,KAAK3M,IAAIwQ,EAAG8L,GAChBvB,EAAIhB,EACc,IAAfzI,EAAEvD,IAAIgW,IAAY,CAEvB,IADA,IAAI7Z,EAAMoH,EACDpP,EAAI,EAAoB,IAAjBgI,EAAI6D,IAAIgW,GAAY7hB,IAClCgI,EAAMA,EAAI2X,SAEZ/V,EAAO5J,EAAI6Y,GACX,IAAIze,EAAIqQ,KAAK3M,IAAIoN,EAAG,IAAId,EAAG,GAAGiQ,OAAOxB,EAAI7Y,EAAI,IAE7CqL,EAAIA,EAAEmU,OAAOplB,GACb8Q,EAAI9Q,EAAEulB,SACNvQ,EAAIA,EAAEoQ,OAAOtU,GACb2N,EAAI7Y,CACN,CAEA,OAAOqL,CACT,EAEAqT,EAAI/iB,UAAUkiB,KAAO,SAAevP,GAClC,IAAI2T,EAAM3T,EAAEkP,OAAO/S,KAAKoO,GACxB,OAAqB,IAAjBoJ,EAAIvX,UACNuX,EAAIvX,SAAW,EACRD,KAAKwW,KAAKgB,GAAKhC,UAEfxV,KAAKwW,KAAKgB,EAErB,EAEAvD,EAAI/iB,UAAUmC,IAAM,SAAcwQ,EAAGnF,GACnC,GAAIA,EAAIyE,SAAU,OAAO,IAAIxD,EAAG,GAAGuU,MAAMlU,MACzC,GAAoB,IAAhBtB,EAAIyU,KAAK,GAAU,OAAOtP,EAAEvB,QAEhC,IACImV,EAAM,IAAI1hB,MAAM,IACpB0hB,EAAI,GAAK,IAAI9X,EAAG,GAAGuU,MAAMlU,MACzByX,EAAI,GAAK5T,EACT,IAAK,IAAItO,EAAI,EAAGA,EAAIkiB,EAAItnB,OAAQoF,IAC9BkiB,EAAIliB,GAAKyK,KAAKc,IAAI2W,EAAIliB,EAAI,GAAIsO,GAGhC,IAAIO,EAAMqT,EAAI,GACVC,EAAU,EACVC,EAAa,EACbhe,EAAQ+E,EAAImG,YAAc,GAK9B,IAJc,IAAVlL,IACFA,EAAQ,IAGLpE,EAAImJ,EAAIvO,OAAS,EAAGoF,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAImD,EAAOgG,EAAIwB,MAAM3K,GACZwF,EAAIpB,EAAQ,EAAGoB,GAAK,EAAGA,IAAK,CACnC,IAAI0L,EAAO/N,GAAQqC,EAAK,EACpBqJ,IAAQqT,EAAI,KACdrT,EAAMpE,KAAKwP,IAAIpL,IAGL,IAARqC,GAAyB,IAAZiR,GAKjBA,IAAY,EACZA,GAAWjR,GA9BE,MA+BbkR,GACwC,IAANpiB,GAAiB,IAANwF,KAE7CqJ,EAAMpE,KAAKc,IAAIsD,EAAKqT,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,CAYjB,CACAhe,EAAQ,EACV,CAEA,OAAOyK,CACT,EAEA6P,EAAI/iB,UAAUkjB,UAAY,SAAoB1V,GAC5C,IAAIkC,EAAIlC,EAAIiT,KAAK3R,KAAKoO,GAEtB,OAAOxN,IAAMlC,EAAMkC,EAAE0B,QAAU1B,CACjC,EAEAqT,EAAI/iB,UAAUqjB,YAAc,SAAsB7V,GAChD,IAAI0F,EAAM1F,EAAI4D,QAEd,OADA8B,EAAIjE,IAAM,KACHiE,CACT,EAMAzE,EAAGiY,KAAO,SAAelZ,GACvB,OAAO,IAAI6X,EAAK7X,EAClB,EAkBAY,EAASiX,EAAMtC,GAEfsC,EAAKrlB,UAAUkjB,UAAY,SAAoB1V,GAC7C,OAAOsB,KAAKwW,KAAK9X,EAAI8R,MAAMxQ,KAAKtJ,OAClC,EAEA6f,EAAKrlB,UAAUqjB,YAAc,SAAsB7V,GACjD,IAAIkC,EAAIZ,KAAKwW,KAAK9X,EAAIoC,IAAId,KAAKyW,OAE/B,OADA7V,EAAET,IAAM,KACDS,CACT,EAEA2V,EAAKrlB,UAAU6Z,KAAO,SAAelH,EAAGlU,GACtC,GAAIkU,EAAEV,UAAYxT,EAAEwT,SAGlB,OAFAU,EAAE3D,MAAM,GAAK,EACb2D,EAAE1T,OAAS,EACJ0T,EAGT,IAAIc,EAAId,EAAEkH,KAAKpb,GACX8Q,EAAIkE,EAAEiM,MAAM5Q,KAAKtJ,OAAOoK,IAAId,KAAK0W,MAAM/F,OAAO3Q,KAAKtJ,OAAOoK,IAAId,KAAKoO,GACnEyJ,EAAIlT,EAAEiC,KAAKnG,GAAGuP,OAAOhQ,KAAKtJ,OAC1B0N,EAAMyT,EAQV,OANIA,EAAEzW,IAAIpB,KAAKoO,IAAM,EACnBhK,EAAMyT,EAAEjR,KAAK5G,KAAKoO,GACTyJ,EAAE1E,KAAK,GAAK,IACrB/O,EAAMyT,EAAElR,KAAK3G,KAAKoO,IAGbhK,EAAIiQ,UAAUrU,KACvB,EAEAuW,EAAKrlB,UAAU4P,IAAM,SAAc+C,EAAGlU,GACpC,GAAIkU,EAAEV,UAAYxT,EAAEwT,SAAU,OAAO,IAAIxD,EAAG,GAAG0U,UAAUrU,MAEzD,IAAI2E,EAAId,EAAE/C,IAAInR,GACV8Q,EAAIkE,EAAEiM,MAAM5Q,KAAKtJ,OAAOoK,IAAId,KAAK0W,MAAM/F,OAAO3Q,KAAKtJ,OAAOoK,IAAId,KAAKoO,GACnEyJ,EAAIlT,EAAEiC,KAAKnG,GAAGuP,OAAOhQ,KAAKtJ,OAC1B0N,EAAMyT,EAOV,OANIA,EAAEzW,IAAIpB,KAAKoO,IAAM,EACnBhK,EAAMyT,EAAEjR,KAAK5G,KAAKoO,GACTyJ,EAAE1E,KAAK,GAAK,IACrB/O,EAAMyT,EAAElR,KAAK3G,KAAKoO,IAGbhK,EAAIiQ,UAAUrU,KACvB,EAEAuW,EAAKrlB,UAAUkiB,KAAO,SAAevP,GAGnC,OADU7D,KAAKwW,KAAK3S,EAAEkP,OAAO/S,KAAKoO,GAAGtN,IAAId,KAAK+R,KACnCsC,UAAUrU,KACvB,CACD,CA19GD,YA09G4CA,yCCz9G5C,IAAI8X,EAAmB9X,MAAQA,KAAK8X,kBAAqB9mB,OAAOC,OAAU,SAASgW,EAAGmH,EAAGtK,EAAGiU,QAC7EhmB,IAAPgmB,IAAkBA,EAAKjU,GAC3B9S,OAAOgnB,eAAe/Q,EAAG8Q,EAAI,CAAEE,YAAY,EAAMC,IAAK,WAAa,OAAO9J,EAAEtK,EAAI,GACpF,EAAM,SAASmD,EAAGmH,EAAGtK,EAAGiU,QACThmB,IAAPgmB,IAAkBA,EAAKjU,GAC3BmD,EAAE8Q,GAAM3J,EAAEtK,EACd,GACIqU,EAAsBnY,MAAQA,KAAKmY,qBAAwBnnB,OAAOC,OAAU,SAASgW,EAAGtR,GACxF3E,OAAOgnB,eAAe/Q,EAAG,UAAW,CAAEgR,YAAY,EAAMrf,MAAOjD,GACnE,EAAK,SAASsR,EAAGtR,GACbsR,EAAW,QAAItR,CACnB,GACIyiB,EAAcpY,MAAQA,KAAKoY,YAAe,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHhY,EAAI3O,UAAU3B,OAAQyQ,EAAIH,EAAI,EAAI6X,EAAkB,OAATE,EAAgBA,EAAOxnB,OAAO0nB,yBAAyBJ,EAAQC,GAAOC,EACrH,GAAuB,kBAAZG,SAAoD,oBAArBA,QAAQC,SAAyBhY,EAAI+X,QAAQC,SAASP,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIjjB,EAAI8iB,EAAWloB,OAAS,EAAGoF,GAAK,EAAGA,KAASkjB,EAAIJ,EAAW9iB,MAAIqL,GAAKH,EAAI,EAAIgY,EAAE7X,GAAKH,EAAI,EAAIgY,EAAEH,EAAQC,EAAK3X,GAAK6X,EAAEH,EAAQC,KAAS3X,GAChJ,OAAOH,EAAI,GAAKG,GAAK5P,OAAOgnB,eAAeM,EAAQC,EAAK3X,GAAIA,CAChE,EACIiY,EAAgB7Y,MAAQA,KAAK6Y,cAAiB,SAAU3W,GACxD,GAAIA,GAAOA,EAAI4W,WAAY,OAAO5W,EAClC,IAAI6W,EAAS,CAAC,EACd,GAAW,MAAP7W,EAAa,IAAK,IAAI4B,KAAK5B,EAAe,YAAN4B,GAAmB9S,OAAO6G,eAAeC,KAAKoK,EAAK4B,IAAIgU,EAAgBiB,EAAQ7W,EAAK4B,GAE5H,OADAqU,EAAmBY,EAAQ7W,GACpB6W,CACX,EACIC,EAAmBhZ,MAAQA,KAAKgZ,iBAAoB,SAAU9W,GAC9D,OAAQA,GAAOA,EAAI4W,WAAc5W,EAAM,CAAE,QAAWA,EACxD,EACAlR,OAAOgnB,eAAetd,EAAS,aAAc,CAAE9B,OAAO,IACtD8B,EAAQue,qBAAuBve,EAAQwe,YAAcxe,EAAQye,UAAYze,EAAQ0e,aAAe1e,EAAQ2e,aAAe3e,EAAQ4e,WAAa5e,EAAQ6e,WAAa7e,EAAQ8e,gBAAa,EACtL,MAAMC,EAAUT,EAAgBvpB,EAAQ,OAClCiqB,EAASV,EAAgBvpB,EAAQ,OAEjCkqB,EAAWd,EAAappB,EAAQ,OAEhCmqB,EAAc,IAD+B,oBAAhBC,YAA6BF,EAASE,YAAcA,aAC3C,QAAS,CAAEC,OAAO,IAO9Dpf,EAAQ8e,WANR,SAAoB5gB,GAIhB,MAHqB,kBAAVA,IACPA,EAAQ7I,OAAOC,KAAK4I,EAAO,SAExB8gB,EAAOK,QAAQ3nB,OAAOrC,OAAOC,KAAK4I,GAC7C,EAKA8B,EAAQ6e,WAHR,SAAoB3gB,GAChB,OAAO7I,OAAOC,KAAK0pB,EAAOK,QAAQ/nB,OAAO4G,GAC7C,EAEA,MAAMohB,EAAiB,KACvB,MAAMV,UAAmB3nB,MACrBtB,WAAAA,CAAY4pB,GACRC,MAAMD,GACNja,KAAKma,UAAY,GACjBna,KAAKoa,gBAAkBH,CAC3B,CACAI,cAAAA,CAAeC,GACXta,KAAKma,UAAUI,OAAO,EAAG,EAAGD,GAE5Bta,KAAKia,QAAUja,KAAKoa,gBAAkB,KAAOpa,KAAKma,UAAU7b,KAAK,IACrE,EAEJ5D,EAAQ4e,WAAaA,EAErB,MAAMD,EACFhpB,WAAAA,GACI2P,KAAKpB,IAAM7O,OAAO4L,MAAMqe,GACxBha,KAAK7P,OAAS,CAClB,CACAqqB,WAAAA,GACQxa,KAAKpB,IAAIzO,OAAS,GAAK6P,KAAK7P,SAC5B6P,KAAKpB,IAAM7O,OAAO0qB,OAAO,CAACza,KAAKpB,IAAK7O,OAAO4L,MAAMqe,KAEzD,CACAU,OAAAA,CAAQ9hB,GACJoH,KAAKwa,cACLxa,KAAKpB,IAAI+b,WAAW/hB,EAAOoH,KAAK7P,QAChC6P,KAAK7P,QAAU,CACnB,CACAyqB,QAAAA,CAAShiB,GACLoH,KAAKwa,cACLxa,KAAKpB,IAAIic,cAAcjiB,EAAOoH,KAAK7P,QACnC6P,KAAK7P,QAAU,CACnB,CACA2qB,QAAAA,CAASliB,GACLoH,KAAKwa,cACLxa,KAAKpB,IAAI/K,cAAc+E,EAAOoH,KAAK7P,QACnC6P,KAAK7P,QAAU,CACnB,CACA4qB,QAAAA,CAASniB,GACLoH,KAAKwa,cACLxa,KAAKgb,YAAYjrB,OAAOC,KAAK,IAAIypB,EAAQM,QAAQnhB,GAAO8I,QAAQ,KAAM,IAC1E,CACAuZ,SAAAA,CAAUriB,GACNoH,KAAKwa,cACLxa,KAAKgb,YAAYjrB,OAAOC,KAAK,IAAIypB,EAAQM,QAAQnhB,GAAO8I,QAAQ,KAAM,KAC1E,CACAwZ,SAAAA,CAAUtiB,GACNoH,KAAKwa,cACLxa,KAAKgb,YAAYjrB,OAAOC,KAAK,IAAIypB,EAAQM,QAAQnhB,GAAO8I,QAAQ,KAAM,KAC1E,CACAyZ,SAAAA,CAAUviB,GACNoH,KAAKwa,cACLxa,KAAKgb,YAAYjrB,OAAOC,KAAK,IAAIypB,EAAQM,QAAQnhB,GAAO8I,QAAQ,KAAM,KAC1E,CACAsZ,WAAAA,CAAY/qB,GAER+P,KAAKpB,IAAM7O,OAAO0qB,OAAO,CACrB1qB,OAAOC,KAAKgQ,KAAKpB,IAAIwc,SAAS,EAAGpb,KAAK7P,SACtCF,EACAF,OAAO4L,MAAMqe,KAEjBha,KAAK7P,QAAUF,EAAOE,MAC1B,CACAkrB,WAAAA,CAAYze,GACRoD,KAAKwa,cACL,MAAM7qB,EAAII,OAAOC,KAAK4M,EAAK,QAC3BoD,KAAK8a,SAASnrB,EAAEQ,QAChB6P,KAAKgb,YAAYrrB,EACrB,CACA2rB,eAAAA,CAAgBC,GACZvb,KAAKgb,YAAYjrB,OAAOC,KAAKurB,GACjC,CACAC,UAAAA,CAAWD,EAAOE,GACdzb,KAAKwa,cACLxa,KAAK8a,SAASS,EAAMprB,QACpB,IAAK,MAAMurB,KAAQH,EACfvb,KAAKwa,cACLiB,EAAGC,EAEX,CACAha,OAAAA,GACI,OAAO1B,KAAKpB,IAAIwc,SAAS,EAAGpb,KAAK7P,OACrC,EAGJ,SAASwrB,EAAmBrD,EAAQsD,EAAaC,GAC7C,MAAMC,EAAiBD,EAAmBjjB,MAC1CijB,EAAmBjjB,MAAQ,WACvB,IAAI,QAAAmjB,EAAAjqB,UAAA3B,OADgC6rB,EAAI,IAAAjmB,MAAAgmB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAnqB,UAAAmqB,GAEpC,OAAOH,EAAeI,MAAMlc,KAAMgc,EACtC,CACA,MAAO7lB,GACH,GAAIA,aAAatF,WAAY,CACzB,MAAM0N,EAAOpI,EAAEoI,KACf,GAAI,CAAC,2BAA4B,oBAAoBC,QAAQD,IAAS,EAClE,MAAM,IAAI+a,EAAW,+CAE7B,CACA,MAAMnjB,CACV,CACJ,CACJ,CAjBAuE,EAAQ2e,aAAeA,EAkBvB,MAAMD,EACF/oB,WAAAA,CAAYuO,GACRoB,KAAKpB,IAAMA,EACXoB,KAAKpP,OAAS,CAClB,CACAurB,MAAAA,GACI,MAAMvjB,EAAQoH,KAAKpB,IAAIwd,UAAUpc,KAAKpP,QAEtC,OADAoP,KAAKpP,QAAU,EACRgI,CACX,CACAyjB,OAAAA,GACI,MAAMzjB,EAAQoH,KAAKpB,IAAI0d,aAAatc,KAAKpP,QAEzC,OADAoP,KAAKpP,QAAU,EACRgI,CACX,CACA2jB,OAAAA,GACI,MAAM3jB,EAAQoH,KAAKpB,IAAIjL,aAAaqM,KAAKpP,QAEzC,OADAoP,KAAKpP,QAAU,EACRgI,CACX,CACA4jB,OAAAA,GACI,MAAM5d,EAAMoB,KAAKyc,WAAW,GAC5B,OAAO,IAAIhD,EAAQM,QAAQnb,EAAK,KACpC,CACA8d,QAAAA,GACI,MAAM9d,EAAMoB,KAAKyc,WAAW,IAC5B,OAAO,IAAIhD,EAAQM,QAAQnb,EAAK,KACpC,CACA+d,QAAAA,GACI,MAAM/d,EAAMoB,KAAKyc,WAAW,IAC5B,OAAO,IAAIhD,EAAQM,QAAQnb,EAAK,KACpC,CACAge,QAAAA,GACI,MAAMhe,EAAMoB,KAAKyc,WAAW,IAC5B,OAAO,IAAIhD,EAAQM,QAAQnb,EAAK,KACpC,CACA6d,UAAAA,CAAW7e,GACP,GAAIoC,KAAKpP,OAASgN,EAAMoC,KAAKpB,IAAIzO,OAC7B,MAAM,IAAImpB,EAAW,0BAA0B1b,yBAEnD,MAAMmb,EAAS/Y,KAAKpB,IAAI7E,MAAMiG,KAAKpP,OAAQoP,KAAKpP,OAASgN,GAEzD,OADAoC,KAAKpP,QAAUgN,EACRmb,CACX,CACA8D,UAAAA,GACI,MAAMjf,EAAMoC,KAAKuc,UACX3d,EAAMoB,KAAKyc,WAAW7e,GAC5B,IAEI,OAAOgc,EAAY5nB,OAAO4M,EAC9B,CACA,MAAOzI,GACH,MAAM,IAAImjB,EAAW,gCAAgCnjB,IACzD,CACJ,CACA2mB,cAAAA,CAAelf,GACX,OAAO,IAAIhO,WAAWoQ,KAAKyc,WAAW7e,GAC1C,CACAmf,SAAAA,CAAUtB,GACN,MAAM7d,EAAMoC,KAAKuc,UACXxD,EAAShjB,QACf,IAAK,IAAIR,EAAI,EAAGA,EAAIqI,IAAOrI,EACvBwjB,EAAOvjB,KAAKimB,KAEhB,OAAO1C,CACX,EAiCJ,SAASiE,EAAsBlgB,GAC3B,OAAOA,EAAO7B,OAAO,GAAGgiB,cAAgBngB,EAAO/C,MAAM,EACzD,CACA,SAASmjB,EAAeC,EAAQ7C,EAAW1hB,EAAOwkB,EAAWC,GACzD,IAEI,GAAyB,kBAAdD,EACPC,EAAO,QAAQL,EAAsBI,MAAcxkB,QAElD,GAAIwkB,aAAqBrnB,MAC1B,GAA4B,kBAAjBqnB,EAAU,GAAiB,CAClC,GAAIxkB,EAAMzI,SAAWitB,EAAU,GAC3B,MAAM,IAAI9D,EAAW,kCAAkC8D,EAAU,eAAexkB,EAAMzI,gBAE1FktB,EAAO/B,gBAAgB1iB,EAC3B,MACK,GAAyB,IAArBwkB,EAAUjtB,QAAwC,kBAAjBitB,EAAU,GAAiB,CACjE,GAAIxkB,EAAMzI,SAAWitB,EAAU,GAC3B,MAAM,IAAI9D,EAAW,kCAAkC8D,EAAU,eAAexkB,EAAMzI,gBAE1F,IAAK,IAAIoF,EAAI,EAAGA,EAAI6nB,EAAU,GAAI7nB,IAC9B2nB,EAAeC,EAAQ,KAAMvkB,EAAMrD,GAAI6nB,EAAU,GAAIC,EAE7D,MAEIA,EAAO7B,WAAW5iB,GAAQ0kB,IACtBJ,EAAeC,EAAQ7C,EAAWgD,EAAMF,EAAU,GAAIC,EAAO,SAIpE,QAAuBtrB,IAAnBqrB,EAAUG,KACf,OAAQH,EAAUG,MACd,IAAK,SACa,OAAV3kB,QAA4B7G,IAAV6G,EAClBykB,EAAO3C,QAAQ,IAGf2C,EAAO3C,QAAQ,GACfwC,EAAeC,EAAQ7C,EAAW1hB,EAAOwkB,EAAUI,KAAMH,IAE7D,MAEJ,IAAK,MACDA,EAAOvC,SAASliB,EAAMkD,MACtBlD,EAAM6kB,SAAQ,CAACre,EAAKmZ,KAChB2E,EAAeC,EAAQ7C,EAAW/B,EAAK6E,EAAU7E,IAAK8E,GACtDH,EAAeC,EAAQ7C,EAAWlb,EAAKge,EAAUxkB,MAAOykB,EAAO,IAEnE,MAEJ,QACI,MAAM,IAAI/D,EAAW,aAAa8D,uBAI1CM,EAAgBP,EAAQvkB,EAAOykB,EAEvC,CACA,MAAOM,GAIH,MAHIA,aAAiBrE,GACjBqE,EAAMtD,eAAeC,GAEnBqD,CACV,CACJ,CACA,SAASD,EAAgBP,EAAQS,EAAKP,GAClC,GAAkC,oBAAvBO,EAAIC,eAEX,YADAD,EAAIC,eAAeR,GAGvB,MAAMS,EAAeX,EAAOjF,IAAI0F,EAAIvtB,aACpC,IAAKytB,EACD,MAAM,IAAIxE,EAAW,SAASsE,EAAIvtB,YAAYkB,6BAElD,GAA0B,WAAtBusB,EAAaP,KACbO,EAAajoB,OAAOkoB,KAAIC,IAA4B,IAA1B1D,EAAW8C,GAAUY,EAC3Cd,EAAeC,EAAQ7C,EAAWsD,EAAItD,GAAY8C,EAAWC,EAAO,QAGvE,IAA0B,SAAtBS,EAAaP,KAYlB,MAAM,IAAIjE,EAAW,2BAA2BwE,EAAaP,YAAYK,EAAIvtB,YAAYkB,QAZtD,CACnC,MAAMA,EAAOqsB,EAAIE,EAAaG,OAC9B,IAAK,IAAI3oB,EAAM,EAAGA,EAAMwoB,EAAazsB,OAAOlB,SAAUmF,EAAK,CACvD,MAAOglB,EAAW8C,GAAaU,EAAazsB,OAAOiE,GACnD,GAAIglB,IAAc/oB,EAAM,CACpB8rB,EAAO3C,QAAQplB,GACf4nB,EAAeC,EAAQ7C,EAAWsD,EAAItD,GAAY8C,EAAWC,GAC7D,KACJ,CACJ,CACJ,CAGA,CACJ,CASA,SAASa,EAAiBf,EAAQ7C,EAAW8C,EAAWe,GACpD,IACI,GAAyB,kBAAdf,EACP,OAAOe,EAAO,OAAOnB,EAAsBI,QAE/C,GAAIA,aAAqBrnB,MAAO,CAC5B,GAA4B,kBAAjBqnB,EAAU,GACjB,OAAOe,EAAOrB,eAAeM,EAAU,IAEtC,GAA4B,kBAAjBA,EAAU,GAAiB,CACvC,MAAM5f,EAAM,GACZ,IAAK,IAAIjI,EAAI,EAAGA,EAAI6nB,EAAU,GAAI7nB,IAC9BiI,EAAIhI,KAAK0oB,EAAiBf,EAAQ,KAAMC,EAAU,GAAIe,IAE1D,OAAO3gB,CACX,CAEI,OAAO2gB,EAAOpB,WAAU,IAAMmB,EAAiBf,EAAQ7C,EAAW8C,EAAU,GAAIe,IAExF,CACA,GAAuB,WAAnBf,EAAUG,KAAmB,CAE7B,OADeY,EAAOhC,SAEX+B,EAAiBf,EAAQ7C,EAAW8C,EAAUI,KAAMW,QAE/D,CACJ,CACA,GAAuB,QAAnBf,EAAUG,KAAgB,CAC1B,IAAIQ,EAAM,IAAIK,IACd,MAAMjuB,EAASguB,EAAO5B,UACtB,IAAK,IAAIhnB,EAAI,EAAGA,EAAIpF,EAAQoF,IAAK,CAC7B,MAAMgjB,EAAM2F,EAAiBf,EAAQ7C,EAAW8C,EAAU7E,IAAK4F,GACzD/e,EAAM8e,EAAiBf,EAAQ7C,EAAW8C,EAAUxkB,MAAOulB,GACjEJ,EAAIM,IAAI9F,EAAKnZ,EACjB,CACA,OAAO2e,CACX,CACA,OAAOO,EAAkBnB,EAAQC,EAAWe,EAChD,CACA,MAAOR,GAIH,MAHIA,aAAiBrE,GACjBqE,EAAMtD,eAAeC,GAEnBqD,CACV,CACJ,CACA,SAASW,EAAkBnB,EAAQoB,EAAWJ,GAC1C,GAA0C,oBAA/BI,EAAUC,iBACjB,OAAOD,EAAUC,iBAAiBL,GAEtC,MAAML,EAAeX,EAAOjF,IAAIqG,GAChC,IAAKT,EACD,MAAM,IAAIxE,EAAW,SAASiF,EAAUhtB,6BAE5C,GAA0B,WAAtBusB,EAAaP,KAAmB,CAChC,MAAMxE,EAAS,CAAC,EAChB,IAAK,MAAOuB,EAAW8C,KAAcD,EAAOjF,IAAIqG,GAAW1oB,OACvDkjB,EAAOuB,GAAa4D,EAAiBf,EAAQ7C,EAAW8C,EAAWe,GAEvE,OAAO,IAAII,EAAUxF,EACzB,CACA,GAA0B,SAAtB+E,EAAaP,KAAiB,CAC9B,MAAMjoB,EAAM6oB,EAAOhC,SACnB,GAAI7mB,GAAOwoB,EAAazsB,OAAOlB,OAC3B,MAAM,IAAImpB,EAAW,eAAehkB,qBAExC,MAAOglB,EAAW8C,GAAaU,EAAazsB,OAAOiE,GAC7CmpB,EAAaP,EAAiBf,EAAQ7C,EAAW8C,EAAWe,GAClE,OAAO,IAAII,EAAU,CAAE,CAACjE,GAAYmE,GACxC,CACA,MAAM,IAAInF,EAAW,2BAA2BwE,EAAaP,YAAYgB,EAAUluB,YAAYkB,OACnG,CA5MA6mB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,SAAU,MACrCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,UAAW,MACtCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,UAAW,MACtCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,UAAW,MACtCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,WAAY,MACvCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,WAAY,MACvCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,WAAY,MACvCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,aAAc,MACzCknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,iBAAkB,MAC7CknB,EAAW,CACPuD,GACDvC,EAAaloB,UAAW,YAAa,MACxCwJ,EAAQ0e,aAAeA,EAsGvB1e,EAAQye,UALR,SAAmBgE,EAAQS,GACvB,MAAMP,EAAS,IADmBvrB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGunB,GAGrC,OADAqE,EAAgBP,EAAQS,EAAKP,GACtBA,EAAO3b,SAClB,EAmFAhH,EAAQwe,YARR,SAAqBiE,EAAQoB,EAAWtuB,GACpC,MAAMkuB,EAAS,IADmCrsB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsnB,GAC3BnpB,GACpB8oB,EAASuF,EAAkBnB,EAAQoB,EAAWJ,GACpD,GAAIA,EAAOvtB,OAASX,EAAOE,OACvB,MAAM,IAAImpB,EAAW,cAAcrpB,EAAOE,OAASguB,EAAOvtB,wCAE9D,OAAOmoB,CACX,EAOAre,EAAQue,qBAJR,SAA8BkE,EAAQoB,EAAWtuB,GAE7C,OAAOquB,EAAkBnB,EAAQoB,EADlB,IAD4CzsB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsnB,GACpCnpB,GAE9B,+BC/aA,IAAI0K,EAAUlL,EAAAA,MAAAA,OA+GdmL,EAAOF,QA9GP,SAAeG,GACb,GAAIA,EAAS1K,QAAU,IAAO,MAAM,IAAIN,UAAU,qBAElD,IADA,IAAIiL,EAAW,IAAIlL,WAAW,KACrBmL,EAAI,EAAGA,EAAID,EAAS3K,OAAQ4K,IACnCD,EAASC,GAAK,IAEhB,IAAK,IAAIxF,EAAI,EAAGA,EAAIsF,EAAS1K,OAAQoF,IAAK,CACxC,IAAIyF,EAAIH,EAASI,OAAO1F,GACpB2F,EAAKF,EAAEG,WAAW,GACtB,GAAqB,MAAjBL,EAASI,GAAe,MAAM,IAAIrL,UAAUmL,EAAI,iBACpDF,EAASI,GAAM3F,CACjB,CACA,IAAI6F,EAAOP,EAAS1K,OAChBkL,EAASR,EAASI,OAAO,GACzBK,EAASpJ,KAAKqJ,IAAIH,GAAQlJ,KAAKqJ,IAAI,KACnCC,EAAUtJ,KAAKqJ,IAAI,KAAOrJ,KAAKqJ,IAAIH,GAyCvC,SAASK,EAAcC,GACrB,GAAsB,kBAAXA,EAAuB,MAAM,IAAI7L,UAAU,mBACtD,GAAsB,IAAlB6L,EAAOvL,OAAgB,OAAOwK,EAAQgB,MAAM,GAKhD,IAJA,IAAIC,EAAM,EAENC,EAAS,EACT1L,EAAS,EACNuL,EAAOE,KAASP,GACrBQ,IACAD,IAMF,IAHA,IAAIE,GAAUJ,EAAOvL,OAASyL,GAAON,EAAU,IAAO,EAClDS,EAAO,IAAInM,WAAWkM,GAEnBF,EAAMF,EAAOvL,QAAQ,CAE1B,IAAI6L,EAAQlB,EAASY,EAAOP,WAAWS,IAEvC,GAAc,MAAVI,EAAiB,OAErB,IADA,IAAIzG,EAAI,EACC0G,EAAMH,EAAO,GAAc,IAAVE,GAAezG,EAAIpF,KAAqB,IAAT8L,EAAaA,IAAO1G,IAC3EyG,GAAUZ,EAAOW,EAAKE,KAAU,EAChCF,EAAKE,GAAQD,EAAQ,MAAS,EAC9BA,EAASA,EAAQ,MAAS,EAE5B,GAAc,IAAVA,EAAe,MAAM,IAAIrK,MAAM,kBACnCxB,EAASoF,EACTqG,GACF,CAGA,IADA,IAAIM,EAAMJ,EAAO3L,EACV+L,IAAQJ,GAAsB,IAAdC,EAAKG,IAC1BA,IAEF,IAAIC,EAAMxB,EAAQyB,YAAYP,GAAUC,EAAOI,IAC/CC,EAAIE,KAAK,EAAM,EAAGR,GAElB,IADA,IAAId,EAAIc,EACDK,IAAQJ,GACbK,EAAIpB,KAAOgB,EAAKG,KAElB,OAAOC,CACT,CAMA,MAAO,CACL/J,OAzFF,SAAiBsJ,GAEf,IADI3F,MAAMC,QAAQ0F,IAAWA,aAAkB9L,cAAc8L,EAASf,EAAQ3K,KAAK0L,KAC9Ef,EAAQ2B,SAASZ,GAAW,MAAM,IAAI7L,UAAU,mBACrD,GAAsB,IAAlB6L,EAAOvL,OAAgB,MAAO,GAMlC,IAJA,IAAI0L,EAAS,EACT1L,EAAS,EACToM,EAAS,EACTC,EAAOd,EAAOvL,OACXoM,IAAWC,GAA2B,IAAnBd,EAAOa,IAC/BA,IACAV,IAMF,IAHA,IAAIC,GAASU,EAAOD,GAAUf,EAAU,IAAO,EAC3CiB,EAAM,IAAI7M,WAAWkM,GAElBS,IAAWC,GAAM,CAItB,IAHA,IAAIR,EAAQN,EAAOa,GAEfhH,EAAI,EACCmH,EAAMZ,EAAO,GAAc,IAAVE,GAAezG,EAAIpF,KAAqB,IAATuM,EAAaA,IAAOnH,IAC3EyG,GAAU,IAAMS,EAAIC,KAAU,EAC9BD,EAAIC,GAAQV,EAAQZ,IAAU,EAC9BY,EAASA,EAAQZ,IAAU,EAE7B,GAAc,IAAVY,EAAe,MAAM,IAAIrK,MAAM,kBACnCxB,EAASoF,EACTgH,GACF,CAGA,IADA,IAAII,EAAMb,EAAO3L,EACVwM,IAAQb,GAAqB,IAAbW,EAAIE,IACzBA,IAIF,IADA,IAAIC,EAAMvB,EAAOwB,OAAOhB,GACjBc,EAAMb,IAAQa,EAAOC,GAAO/B,EAASI,OAAOwB,EAAIE,IACvD,OAAOC,CACT,EAmDEnB,aAAcA,EACdzJ,OARF,SAAiB8K,GACf,IAAI7M,EAASwL,EAAaqB,GAC1B,GAAI7M,EAAU,OAAOA,EACrB,MAAM,IAAI0B,MAAM,WAAayJ,EAAO,aACtC,EAMF,kBCrHA,IAAI2B,EAAQtN,EAAQ,MAGpBmL,EAAOF,QAAUqC,EAFF,2FCSf,MAAM2hB,EAASjvB,EAAQ,MACjBkvB,EAAUlvB,EAAQ,MAClBmvB,EACe,oBAAXnc,QAAkD,oBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd,KAEN/H,EAAQ3K,OAASA,EACjB2K,EAAQmkB,WAyTR,SAAqB1uB,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAOJ,EAAO4L,OAAOxL,EACvB,EA7TAuK,EAAQokB,kBAAoB,GAE5B,MAAMC,EAAe,WAwDrB,SAASC,EAAc7uB,GACrB,GAAIA,EAAS4uB,EACX,MAAM,IAAIluB,WAAW,cAAgBV,EAAS,kCAGhD,MAAMyO,EAAM,IAAIhP,WAAWO,GAE3B,OADAa,OAAOiuB,eAAergB,EAAK7O,EAAOmB,WAC3B0N,CACT,CAYA,SAAS7O,EAAQmvB,EAAKC,EAAkBhvB,GAEtC,GAAmB,kBAAR+uB,EAAkB,CAC3B,GAAgC,kBAArBC,EACT,MAAM,IAAItvB,UACR,sEAGJ,OAAOuM,EAAY8iB,EACrB,CACA,OAAOlvB,EAAKkvB,EAAKC,EAAkBhvB,EACrC,CAIA,SAASH,EAAM4I,EAAOumB,EAAkBhvB,GACtC,GAAqB,kBAAVyI,EACT,OAqHJ,SAAqBkE,EAAQ6c,GACH,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAK5pB,EAAOqvB,WAAWzF,GACrB,MAAM,IAAI9pB,UAAU,qBAAuB8pB,GAG7C,MAAMxpB,EAAwC,EAA/B6M,EAAWF,EAAQ6c,GAClC,IAAI/a,EAAMogB,EAAa7uB,GAEvB,MAAMkvB,EAASzgB,EAAI3E,MAAM6C,EAAQ6c,GAE7B0F,IAAWlvB,IAIbyO,EAAMA,EAAI7E,MAAM,EAAGslB,IAGrB,OAAOzgB,CACT,CA3IW0gB,CAAW1mB,EAAOumB,GAG3B,GAAII,YAAYC,OAAO5mB,GACrB,OAkJJ,SAAwB6mB,GACtB,GAAIC,EAAWD,EAAW7vB,YAAa,CACrC,MAAM0K,EAAO,IAAI1K,WAAW6vB,GAC5B,OAAOE,EAAgBrlB,EAAKrK,OAAQqK,EAAKpK,WAAYoK,EAAK0C,WAC5D,CACA,OAAO4iB,EAAcH,EACvB,CAxJWI,CAAcjnB,GAGvB,GAAa,MAATA,EACF,MAAM,IAAI/I,UACR,yHACiD+I,GAIrD,GAAI8mB,EAAW9mB,EAAO2mB,cACjB3mB,GAAS8mB,EAAW9mB,EAAM3I,OAAQsvB,aACrC,OAAOI,EAAgB/mB,EAAOumB,EAAkBhvB,GAGlD,GAAiC,qBAAtB2vB,oBACNJ,EAAW9mB,EAAOknB,oBAClBlnB,GAAS8mB,EAAW9mB,EAAM3I,OAAQ6vB,oBACrC,OAAOH,EAAgB/mB,EAAOumB,EAAkBhvB,GAGlD,GAAqB,kBAAVyI,EACT,MAAM,IAAI/I,UACR,yEAIJ,MAAMkwB,EAAUnnB,EAAMmnB,SAAWnnB,EAAMmnB,UACvC,GAAe,MAAXA,GAAmBA,IAAYnnB,EACjC,OAAO7I,EAAOC,KAAK+vB,EAASZ,EAAkBhvB,GAGhD,MAAMR,EAkJR,SAAqBiuB,GACnB,GAAI7tB,EAAOuM,SAASshB,GAAM,CACxB,MAAMhgB,EAA4B,EAAtBoiB,EAAQpC,EAAIztB,QAClByO,EAAMogB,EAAaphB,GAEzB,OAAmB,IAAfgB,EAAIzO,QAIRytB,EAAItjB,KAAKsE,EAAK,EAAG,EAAGhB,GAHXgB,CAKX,CAEA,QAAmB7M,IAAf6rB,EAAIztB,OACN,MAA0B,kBAAfytB,EAAIztB,QAAuB8vB,EAAYrC,EAAIztB,QAC7C6uB,EAAa,GAEfY,EAAchC,GAGvB,GAAiB,WAAbA,EAAIJ,MAAqBznB,MAAMC,QAAQ4nB,EAAIsC,MAC7C,OAAON,EAAchC,EAAIsC,KAE7B,CAzKYC,CAAWvnB,GACrB,GAAIjJ,EAAG,OAAOA,EAEd,GAAsB,qBAAX8S,QAAgD,MAAtBA,OAAO2d,aACH,oBAA9BxnB,EAAM6J,OAAO2d,aACtB,OAAOrwB,EAAOC,KAAK4I,EAAM6J,OAAO2d,aAAa,UAAWjB,EAAkBhvB,GAG5E,MAAM,IAAIN,UACR,yHACiD+I,EAErD,CAmBA,SAASynB,EAAYvkB,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAIjM,UAAU,0CACf,GAAIiM,EAAO,EAChB,MAAM,IAAIjL,WAAW,cAAgBiL,EAAO,iCAEhD,CA0BA,SAASM,EAAaN,GAEpB,OADAukB,EAAWvkB,GACJkjB,EAAaljB,EAAO,EAAI,EAAoB,EAAhBkkB,EAAQlkB,GAC7C,CAuCA,SAAS8jB,EAAerE,GACtB,MAAMprB,EAASorB,EAAMprB,OAAS,EAAI,EAA4B,EAAxB6vB,EAAQzE,EAAMprB,QAC9CyO,EAAMogB,EAAa7uB,GACzB,IAAK,IAAIoF,EAAI,EAAGA,EAAIpF,EAAQoF,GAAK,EAC/BqJ,EAAIrJ,GAAgB,IAAXgmB,EAAMhmB,GAEjB,OAAOqJ,CACT,CAUA,SAAS+gB,EAAiBpE,EAAOrrB,EAAYC,GAC3C,GAAID,EAAa,GAAKqrB,EAAMve,WAAa9M,EACvC,MAAM,IAAIW,WAAW,wCAGvB,GAAI0qB,EAAMve,WAAa9M,GAAcC,GAAU,GAC7C,MAAM,IAAIU,WAAW,wCAGvB,IAAI+N,EAYJ,OAVEA,OADiB7M,IAAf7B,QAAuC6B,IAAX5B,EACxB,IAAIP,WAAW2rB,QACDxpB,IAAX5B,EACH,IAAIP,WAAW2rB,EAAOrrB,GAEtB,IAAIN,WAAW2rB,EAAOrrB,EAAYC,GAI1Ca,OAAOiuB,eAAergB,EAAK7O,EAAOmB,WAE3B0N,CACT,CA2BA,SAASohB,EAAS7vB,GAGhB,GAAIA,GAAU4uB,EACZ,MAAM,IAAIluB,WAAW,0DACakuB,EAAa7kB,SAAS,IAAM,UAEhE,OAAgB,EAAT/J,CACT,CAsGA,SAAS6M,EAAYF,EAAQ6c,GAC3B,GAAI5pB,EAAOuM,SAASQ,GAClB,OAAOA,EAAO3M,OAEhB,GAAIovB,YAAYC,OAAO1iB,IAAW4iB,EAAW5iB,EAAQyiB,aACnD,OAAOziB,EAAOE,WAEhB,GAAsB,kBAAXF,EACT,MAAM,IAAIjN,UACR,kGAC0BiN,GAI9B,MAAMc,EAAMd,EAAO3M,OACbmwB,EAAaxuB,UAAU3B,OAAS,IAAsB,IAAjB2B,UAAU,GACrD,IAAKwuB,GAAqB,IAAR1iB,EAAW,OAAO,EAGpC,IAAI2iB,GAAc,EAClB,OACE,OAAQ5G,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO/b,EACT,IAAK,OACL,IAAK,QACH,OAAO4iB,EAAY1jB,GAAQ3M,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANyN,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAO6iB,EAAc3jB,GAAQ3M,OAC/B,QACE,GAAIowB,EACF,OAAOD,GAAa,EAAIE,EAAY1jB,GAAQ3M,OAE9CwpB,GAAY,GAAKA,GAAU+G,cAC3BH,GAAc,EAGtB,CAGA,SAASI,EAAchH,EAAUhgB,EAAO8E,GACtC,IAAI8hB,GAAc,EAclB,SALcxuB,IAAV4H,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQqG,KAAK7P,OACf,MAAO,GAOT,SAJY4B,IAAR0M,GAAqBA,EAAMuB,KAAK7P,UAClCsO,EAAMuB,KAAK7P,QAGTsO,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACT9E,KAAW,GAGT,MAAO,GAKT,IAFKggB,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAOiH,EAAS5gB,KAAMrG,EAAO8E,GAE/B,IAAK,OACL,IAAK,QACH,OAAOoiB,EAAU7gB,KAAMrG,EAAO8E,GAEhC,IAAK,QACH,OAAOqiB,EAAW9gB,KAAMrG,EAAO8E,GAEjC,IAAK,SACL,IAAK,SACH,OAAOsiB,EAAY/gB,KAAMrG,EAAO8E,GAElC,IAAK,SACH,OAAOuiB,EAAYhhB,KAAMrG,EAAO8E,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOwiB,EAAajhB,KAAMrG,EAAO8E,GAEnC,QACE,GAAI8hB,EAAa,MAAM,IAAI1wB,UAAU,qBAAuB8pB,GAC5DA,GAAYA,EAAW,IAAI+G,cAC3BH,GAAc,EAGtB,CAUA,SAASW,EAAMvxB,EAAGwe,EAAGC,GACnB,MAAM7Y,EAAI5F,EAAEwe,GACZxe,EAAEwe,GAAKxe,EAAEye,GACTze,EAAEye,GAAK7Y,CACT,CA2IA,SAAS4rB,EAAsBlxB,EAAQmP,EAAKlP,EAAYypB,EAAUyH,GAEhE,GAAsB,IAAlBnxB,EAAOE,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAfD,GACTypB,EAAWzpB,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAGZ+vB,EADJ/vB,GAAcA,KAGZA,EAAakxB,EAAM,EAAKnxB,EAAOE,OAAS,GAItCD,EAAa,IAAGA,EAAaD,EAAOE,OAASD,GAC7CA,GAAcD,EAAOE,OAAQ,CAC/B,GAAIixB,EAAK,OAAQ,EACZlxB,EAAaD,EAAOE,OAAS,CACpC,MAAO,GAAID,EAAa,EAAG,CACzB,IAAIkxB,EACC,OAAQ,EADJlxB,EAAa,CAExB,CAQA,GALmB,kBAARkP,IACTA,EAAMrP,EAAOC,KAAKoP,EAAKua,IAIrB5pB,EAAOuM,SAAS8C,GAElB,OAAmB,IAAfA,EAAIjP,QACE,EAEHkxB,EAAapxB,EAAQmP,EAAKlP,EAAYypB,EAAUyH,GAClD,GAAmB,kBAARhiB,EAEhB,OADAA,GAAY,IACgC,oBAAjCxP,WAAWsB,UAAUsN,QAC1B4iB,EACKxxB,WAAWsB,UAAUsN,QAAQ1G,KAAK7H,EAAQmP,EAAKlP,GAE/CN,WAAWsB,UAAUowB,YAAYxpB,KAAK7H,EAAQmP,EAAKlP,GAGvDmxB,EAAapxB,EAAQ,CAACmP,GAAMlP,EAAYypB,EAAUyH,GAG3D,MAAM,IAAIvxB,UAAU,uCACtB,CAEA,SAASwxB,EAAc7jB,EAAK4B,EAAKlP,EAAYypB,EAAUyH,GACrD,IA0BI7rB,EA1BAgsB,EAAY,EACZC,EAAYhkB,EAAIrN,OAChBsxB,EAAYriB,EAAIjP,OAEpB,QAAiB4B,IAAb4nB,IAEe,UADjBA,EAAWvf,OAAOuf,GAAU+G,gBACY,UAAb/G,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAInc,EAAIrN,OAAS,GAAKiP,EAAIjP,OAAS,EACjC,OAAQ,EAEVoxB,EAAY,EACZC,GAAa,EACbC,GAAa,EACbvxB,GAAc,CAChB,CAGF,SAASwxB,EAAM9iB,EAAKrJ,GAClB,OAAkB,IAAdgsB,EACK3iB,EAAIrJ,GAEJqJ,EAAI+iB,aAAapsB,EAAIgsB,EAEhC,CAGA,GAAIH,EAAK,CACP,IAAIQ,GAAc,EAClB,IAAKrsB,EAAIrF,EAAYqF,EAAIisB,EAAWjsB,IAClC,GAAImsB,EAAKlkB,EAAKjI,KAAOmsB,EAAKtiB,GAAqB,IAAhBwiB,EAAoB,EAAIrsB,EAAIqsB,IAEzD,IADoB,IAAhBA,IAAmBA,EAAarsB,GAChCA,EAAIqsB,EAAa,IAAMH,EAAW,OAAOG,EAAaL,OAEtC,IAAhBK,IAAmBrsB,GAAKA,EAAIqsB,GAChCA,GAAc,CAGpB,MAEE,IADI1xB,EAAauxB,EAAYD,IAAWtxB,EAAasxB,EAAYC,GAC5DlsB,EAAIrF,EAAYqF,GAAK,EAAGA,IAAK,CAChC,IAAIssB,GAAQ,EACZ,IAAK,IAAI9mB,EAAI,EAAGA,EAAI0mB,EAAW1mB,IAC7B,GAAI2mB,EAAKlkB,EAAKjI,EAAIwF,KAAO2mB,EAAKtiB,EAAKrE,GAAI,CACrC8mB,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAOtsB,CACpB,CAGF,OAAQ,CACV,CAcA,SAASusB,EAAUljB,EAAK9B,EAAQlM,EAAQT,GACtCS,EAASJ,OAAOI,IAAW,EAC3B,MAAMmxB,EAAYnjB,EAAIzO,OAASS,EAC1BT,GAGHA,EAASK,OAAOL,IACH4xB,IACX5xB,EAAS4xB,GAJX5xB,EAAS4xB,EAQX,MAAMC,EAASllB,EAAO3M,OAKtB,IAAIoF,EACJ,IAJIpF,EAAS6xB,EAAS,IACpB7xB,EAAS6xB,EAAS,GAGfzsB,EAAI,EAAGA,EAAIpF,IAAUoF,EAAG,CAC3B,MAAM0sB,EAASC,SAASplB,EAAOqlB,OAAW,EAAJ5sB,EAAO,GAAI,IACjD,GAAI0qB,EAAYgC,GAAS,OAAO1sB,EAChCqJ,EAAIhO,EAAS2E,GAAK0sB,CACpB,CACA,OAAO1sB,CACT,CAEA,SAAS6sB,EAAWxjB,EAAK9B,EAAQlM,EAAQT,GACvC,OAAOkyB,EAAW7B,EAAY1jB,EAAQ8B,EAAIzO,OAASS,GAASgO,EAAKhO,EAAQT,EAC3E,CAEA,SAASmyB,EAAY1jB,EAAK9B,EAAQlM,EAAQT,GACxC,OAAOkyB,EAypCT,SAAuBzlB,GACrB,MAAM2lB,EAAY,GAClB,IAAK,IAAIhtB,EAAI,EAAGA,EAAIqH,EAAIzM,SAAUoF,EAEhCgtB,EAAU/sB,KAAyB,IAApBoH,EAAIzB,WAAW5F,IAEhC,OAAOgtB,CACT,CAhqCoBC,CAAa1lB,GAAS8B,EAAKhO,EAAQT,EACvD,CAEA,SAASsyB,EAAa7jB,EAAK9B,EAAQlM,EAAQT,GACzC,OAAOkyB,EAAW5B,EAAc3jB,GAAS8B,EAAKhO,EAAQT,EACxD,CAEA,SAASuyB,EAAW9jB,EAAK9B,EAAQlM,EAAQT,GACvC,OAAOkyB,EA0pCT,SAAyBzlB,EAAK+lB,GAC5B,IAAIliB,EAAGqE,EAAItT,EACX,MAAM+wB,EAAY,GAClB,IAAK,IAAIhtB,EAAI,EAAGA,EAAIqH,EAAIzM,WACjBwyB,GAAS,GAAK,KADaptB,EAGhCkL,EAAI7D,EAAIzB,WAAW5F,GACnBuP,EAAKrE,GAAK,EACVjP,EAAKiP,EAAI,IACT8hB,EAAU/sB,KAAKhE,GACf+wB,EAAU/sB,KAAKsP,GAGjB,OAAOyd,CACT,CAxqCoBK,CAAe9lB,EAAQ8B,EAAIzO,OAASS,GAASgO,EAAKhO,EAAQT,EAC9E,CA8EA,SAAS6wB,EAAapiB,EAAKjF,EAAO8E,GAChC,OAAc,IAAV9E,GAAe8E,IAAQG,EAAIzO,OACtBuuB,EAAO5gB,cAAcc,GAErB8f,EAAO5gB,cAAcc,EAAI7E,MAAMJ,EAAO8E,GAEjD,CAEA,SAASoiB,EAAWjiB,EAAKjF,EAAO8E,GAC9BA,EAAMvM,KAAK6O,IAAInC,EAAIzO,OAAQsO,GAC3B,MAAM2F,EAAM,GAEZ,IAAI7O,EAAIoE,EACR,KAAOpE,EAAIkJ,GAAK,CACd,MAAMokB,EAAYjkB,EAAIrJ,GACtB,IAAIutB,EAAY,KACZC,EAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,EAEZ,GAAIttB,EAAIwtB,GAAoBtkB,EAAK,CAC/B,IAAIukB,EAAYC,EAAWC,EAAYC,EAEvC,OAAQJ,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHG,EAAapkB,EAAIrJ,EAAI,GACO,OAAV,IAAbytB,KACHG,GAA6B,GAAZN,IAAqB,EAAoB,GAAbG,EACzCG,EAAgB,MAClBL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAapkB,EAAIrJ,EAAI,GACrB0tB,EAAYrkB,EAAIrJ,EAAI,GACQ,OAAV,IAAbytB,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZN,IAAoB,IAAoB,GAAbG,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAapkB,EAAIrJ,EAAI,GACrB0tB,EAAYrkB,EAAIrJ,EAAI,GACpB2tB,EAAatkB,EAAIrJ,EAAI,GACO,OAAV,IAAbytB,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZN,IAAoB,IAAqB,GAAbG,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CL,EAAYK,IAItB,CAEkB,OAAdL,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACb1e,EAAI5O,KAAKstB,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvB1e,EAAI5O,KAAKstB,GACTvtB,GAAKwtB,CACP,CAEA,OAQF,SAAgCK,GAC9B,MAAMxlB,EAAMwlB,EAAWjzB,OACvB,GAAIyN,GAAOylB,EACT,OAAOjpB,OAAOkpB,aAAapH,MAAM9hB,OAAQgpB,GAI3C,IAAIhf,EAAM,GACN7O,EAAI,EACR,KAAOA,EAAIqI,GACTwG,GAAOhK,OAAOkpB,aAAapH,MACzB9hB,OACAgpB,EAAWrpB,MAAMxE,EAAGA,GAAK8tB,IAG7B,OAAOjf,CACT,CAxBSmf,CAAsBnf,EAC/B,CA3+BA1J,EAAQ8oB,WAAazE,EAgBrBhvB,EAAO0zB,oBAUP,WAEE,IACE,MAAMjmB,EAAM,IAAI5N,WAAW,GACrB8zB,EAAQ,CAAEC,IAAK,WAAc,OAAO,EAAG,GAG7C,OAFA3yB,OAAOiuB,eAAeyE,EAAO9zB,WAAWsB,WACxCF,OAAOiuB,eAAezhB,EAAKkmB,GACN,KAAdlmB,EAAImmB,KACb,CAAE,MAAOxtB,GACP,OAAO,CACT,CACF,CArB6BytB,GAExB7zB,EAAO0zB,qBAA0C,qBAAZI,SACb,oBAAlBA,QAAQlG,OACjBkG,QAAQlG,MACN,iJAkBJ3sB,OAAOgnB,eAAejoB,EAAOmB,UAAW,SAAU,CAChD+mB,YAAY,EACZC,IAAK,WACH,GAAKnoB,EAAOuM,SAAS0D,MACrB,OAAOA,KAAK/P,MACd,IAGFe,OAAOgnB,eAAejoB,EAAOmB,UAAW,SAAU,CAChD+mB,YAAY,EACZC,IAAK,WACH,GAAKnoB,EAAOuM,SAAS0D,MACrB,OAAOA,KAAK9P,UACd,IAoCFH,EAAO+zB,SAAW,KA8DlB/zB,EAAOC,KAAO,SAAU4I,EAAOumB,EAAkBhvB,GAC/C,OAAOH,EAAK4I,EAAOumB,EAAkBhvB,EACvC,EAIAa,OAAOiuB,eAAelvB,EAAOmB,UAAWtB,WAAWsB,WACnDF,OAAOiuB,eAAelvB,EAAQH,YA8B9BG,EAAO4L,MAAQ,SAAUG,EAAMO,EAAMsd,GACnC,OArBF,SAAgB7d,EAAMO,EAAMsd,GAE1B,OADA0G,EAAWvkB,GACPA,GAAQ,EACHkjB,EAAaljB,QAET/J,IAATsK,EAIyB,kBAAbsd,EACVqF,EAAaljB,GAAMO,KAAKA,EAAMsd,GAC9BqF,EAAaljB,GAAMO,KAAKA,GAEvB2iB,EAAaljB,EACtB,CAOSH,CAAMG,EAAMO,EAAMsd,EAC3B,EAUA5pB,EAAOqM,YAAc,SAAUN,GAC7B,OAAOM,EAAYN,EACrB,EAIA/L,EAAOg0B,gBAAkB,SAAUjoB,GACjC,OAAOM,EAAYN,EACrB,EA6GA/L,EAAOuM,SAAW,SAAmB3M,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAEq0B,WACpBr0B,IAAMI,EAAOmB,SACjB,EAEAnB,EAAOk0B,QAAU,SAAkBpgB,EAAGlU,GAGpC,GAFI+vB,EAAW7b,EAAGjU,cAAaiU,EAAI9T,EAAOC,KAAK6T,EAAGA,EAAEjT,OAAQiT,EAAE7G,aAC1D0iB,EAAW/vB,EAAGC,cAAaD,EAAII,EAAOC,KAAKL,EAAGA,EAAEiB,OAAQjB,EAAEqN,cACzDjN,EAAOuM,SAASuH,KAAO9T,EAAOuM,SAAS3M,GAC1C,MAAM,IAAIE,UACR,yEAIJ,GAAIgU,IAAMlU,EAAG,OAAO,EAEpB,IAAIqL,EAAI6I,EAAE1T,OACNmc,EAAI3c,EAAEQ,OAEV,IAAK,IAAIoF,EAAI,EAAGqI,EAAM1L,KAAK6O,IAAI/F,EAAGsR,GAAI/W,EAAIqI,IAAOrI,EAC/C,GAAIsO,EAAEtO,KAAO5F,EAAE4F,GAAI,CACjByF,EAAI6I,EAAEtO,GACN+W,EAAI3c,EAAE4F,GACN,KACF,CAGF,OAAIyF,EAAIsR,GAAW,EACfA,EAAItR,EAAU,EACX,CACT,EAEAjL,EAAOqvB,WAAa,SAAqBzF,GACvC,OAAQvf,OAAOuf,GAAU+G,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEA3wB,EAAO0qB,OAAS,SAAiByJ,EAAM/zB,GACrC,IAAK4F,MAAMC,QAAQkuB,GACjB,MAAM,IAAIr0B,UAAU,+CAGtB,GAAoB,IAAhBq0B,EAAK/zB,OACP,OAAOJ,EAAO4L,MAAM,GAGtB,IAAIpG,EACJ,QAAexD,IAAX5B,EAEF,IADAA,EAAS,EACJoF,EAAI,EAAGA,EAAI2uB,EAAK/zB,SAAUoF,EAC7BpF,GAAU+zB,EAAK3uB,GAAGpF,OAItB,MAAMF,EAASF,EAAOqM,YAAYjM,GAClC,IAAIg0B,EAAM,EACV,IAAK5uB,EAAI,EAAGA,EAAI2uB,EAAK/zB,SAAUoF,EAAG,CAChC,IAAIqJ,EAAMslB,EAAK3uB,GACf,GAAImqB,EAAW9gB,EAAKhP,YACdu0B,EAAMvlB,EAAIzO,OAASF,EAAOE,QACvBJ,EAAOuM,SAASsC,KAAMA,EAAM7O,EAAOC,KAAK4O,IAC7CA,EAAItE,KAAKrK,EAAQk0B,IAEjBv0B,WAAWsB,UAAUmtB,IAAIvmB,KACvB7H,EACA2O,EACAulB,OAGC,KAAKp0B,EAAOuM,SAASsC,GAC1B,MAAM,IAAI/O,UAAU,+CAEpB+O,EAAItE,KAAKrK,EAAQk0B,EACnB,CACAA,GAAOvlB,EAAIzO,MACb,CACA,OAAOF,CACT,EAiDAF,EAAOiN,WAAaA,EA8EpBjN,EAAOmB,UAAU8yB,WAAY,EAQ7Bj0B,EAAOmB,UAAUkzB,OAAS,WACxB,MAAMxmB,EAAMoC,KAAK7P,OACjB,GAAIyN,EAAM,IAAM,EACd,MAAM,IAAI/M,WAAW,6CAEvB,IAAK,IAAI0E,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAC5B2rB,EAAKlhB,KAAMzK,EAAGA,EAAI,GAEpB,OAAOyK,IACT,EAEAjQ,EAAOmB,UAAUmzB,OAAS,WACxB,MAAMzmB,EAAMoC,KAAK7P,OACjB,GAAIyN,EAAM,IAAM,EACd,MAAM,IAAI/M,WAAW,6CAEvB,IAAK,IAAI0E,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAC5B2rB,EAAKlhB,KAAMzK,EAAGA,EAAI,GAClB2rB,EAAKlhB,KAAMzK,EAAI,EAAGA,EAAI,GAExB,OAAOyK,IACT,EAEAjQ,EAAOmB,UAAUozB,OAAS,WACxB,MAAM1mB,EAAMoC,KAAK7P,OACjB,GAAIyN,EAAM,IAAM,EACd,MAAM,IAAI/M,WAAW,6CAEvB,IAAK,IAAI0E,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAC5B2rB,EAAKlhB,KAAMzK,EAAGA,EAAI,GAClB2rB,EAAKlhB,KAAMzK,EAAI,EAAGA,EAAI,GACtB2rB,EAAKlhB,KAAMzK,EAAI,EAAGA,EAAI,GACtB2rB,EAAKlhB,KAAMzK,EAAI,EAAGA,EAAI,GAExB,OAAOyK,IACT,EAEAjQ,EAAOmB,UAAUgJ,SAAW,WAC1B,MAAM/J,EAAS6P,KAAK7P,OACpB,OAAe,IAAXA,EAAqB,GACA,IAArB2B,UAAU3B,OAAqB0wB,EAAU7gB,KAAM,EAAG7P,GAC/CwwB,EAAazE,MAAMlc,KAAMlO,UAClC,EAEA/B,EAAOmB,UAAUqzB,eAAiBx0B,EAAOmB,UAAUgJ,SAEnDnK,EAAOmB,UAAUszB,OAAS,SAAiB70B,GACzC,IAAKI,EAAOuM,SAAS3M,GAAI,MAAM,IAAIE,UAAU,6BAC7C,OAAImQ,OAASrQ,GACsB,IAA5BI,EAAOk0B,QAAQjkB,KAAMrQ,EAC9B,EAEAI,EAAOmB,UAAUyR,QAAU,WACzB,IAAI/F,EAAM,GACV,MAAMqE,EAAMvG,EAAQokB,kBAGpB,OAFAliB,EAAMoD,KAAK9F,SAAS,MAAO,EAAG+G,GAAKM,QAAQ,UAAW,OAAOkjB,OACzDzkB,KAAK7P,OAAS8Q,IAAKrE,GAAO,SACvB,WAAaA,EAAM,GAC5B,EACIgiB,IACF7uB,EAAOmB,UAAU0tB,GAAuB7uB,EAAOmB,UAAUyR,SAG3D5S,EAAOmB,UAAU+yB,QAAU,SAAkB3L,EAAQ3e,EAAO8E,EAAKimB,EAAWC,GAI1E,GAHIjF,EAAWpH,EAAQ1oB,cACrB0oB,EAASvoB,EAAOC,KAAKsoB,EAAQA,EAAO1nB,OAAQ0nB,EAAOtb,cAEhDjN,EAAOuM,SAASgc,GACnB,MAAM,IAAIzoB,UACR,wFAC2ByoB,GAiB/B,QAbcvmB,IAAV4H,IACFA,EAAQ,QAEE5H,IAAR0M,IACFA,EAAM6Z,EAASA,EAAOnoB,OAAS,QAEf4B,IAAd2yB,IACFA,EAAY,QAEE3yB,IAAZ4yB,IACFA,EAAU3kB,KAAK7P,QAGbwJ,EAAQ,GAAK8E,EAAM6Z,EAAOnoB,QAAUu0B,EAAY,GAAKC,EAAU3kB,KAAK7P,OACtE,MAAM,IAAIU,WAAW,sBAGvB,GAAI6zB,GAAaC,GAAWhrB,GAAS8E,EACnC,OAAO,EAET,GAAIimB,GAAaC,EACf,OAAQ,EAEV,GAAIhrB,GAAS8E,EACX,OAAO,EAQT,GAAIuB,OAASsY,EAAQ,OAAO,EAE5B,IAAItd,GAJJ2pB,KAAa,IADbD,KAAe,GAMXpY,GAPJ7N,KAAS,IADT9E,KAAW,GASX,MAAMiE,EAAM1L,KAAK6O,IAAI/F,EAAGsR,GAElBsY,EAAW5kB,KAAKjG,MAAM2qB,EAAWC,GACjCE,EAAavM,EAAOve,MAAMJ,EAAO8E,GAEvC,IAAK,IAAIlJ,EAAI,EAAGA,EAAIqI,IAAOrI,EACzB,GAAIqvB,EAASrvB,KAAOsvB,EAAWtvB,GAAI,CACjCyF,EAAI4pB,EAASrvB,GACb+W,EAAIuY,EAAWtvB,GACf,KACF,CAGF,OAAIyF,EAAIsR,GAAW,EACfA,EAAItR,EAAU,EACX,CACT,EA2HAjL,EAAOmB,UAAU4zB,SAAW,SAAmB1lB,EAAKlP,EAAYypB,GAC9D,OAAoD,IAA7C3Z,KAAKxB,QAAQY,EAAKlP,EAAYypB,EACvC,EAEA5pB,EAAOmB,UAAUsN,QAAU,SAAkBY,EAAKlP,EAAYypB,GAC5D,OAAOwH,EAAqBnhB,KAAMZ,EAAKlP,EAAYypB,GAAU,EAC/D,EAEA5pB,EAAOmB,UAAUowB,YAAc,SAAsBliB,EAAKlP,EAAYypB,GACpE,OAAOwH,EAAqBnhB,KAAMZ,EAAKlP,EAAYypB,GAAU,EAC/D,EA4CA5pB,EAAOmB,UAAU+I,MAAQ,SAAgB6C,EAAQlM,EAAQT,EAAQwpB,GAE/D,QAAe5nB,IAAXnB,EACF+oB,EAAW,OACXxpB,EAAS6P,KAAK7P,OACdS,EAAS,OAEJ,QAAemB,IAAX5B,GAA0C,kBAAXS,EACxC+oB,EAAW/oB,EACXT,EAAS6P,KAAK7P,OACdS,EAAS,MAEJ,KAAIm0B,SAASn0B,GAUlB,MAAM,IAAIe,MACR,2EAVFf,KAAoB,EAChBm0B,SAAS50B,IACXA,KAAoB,OACH4B,IAAb4nB,IAAwBA,EAAW,UAEvCA,EAAWxpB,EACXA,OAAS4B,EAMb,CAEA,MAAMgwB,EAAY/hB,KAAK7P,OAASS,EAGhC,SAFemB,IAAX5B,GAAwBA,EAAS4xB,KAAW5xB,EAAS4xB,GAEpDjlB,EAAO3M,OAAS,IAAMA,EAAS,GAAKS,EAAS,IAAOA,EAASoP,KAAK7P,OACrE,MAAM,IAAIU,WAAW,0CAGlB8oB,IAAUA,EAAW,QAE1B,IAAI4G,GAAc,EAClB,OACE,OAAQ5G,GACN,IAAK,MACH,OAAOmI,EAAS9hB,KAAMlD,EAAQlM,EAAQT,GAExC,IAAK,OACL,IAAK,QACH,OAAOiyB,EAAUpiB,KAAMlD,EAAQlM,EAAQT,GAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOmyB,EAAWtiB,KAAMlD,EAAQlM,EAAQT,GAE1C,IAAK,SAEH,OAAOsyB,EAAYziB,KAAMlD,EAAQlM,EAAQT,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOuyB,EAAU1iB,KAAMlD,EAAQlM,EAAQT,GAEzC,QACE,GAAIowB,EAAa,MAAM,IAAI1wB,UAAU,qBAAuB8pB,GAC5DA,GAAY,GAAKA,GAAU+G,cAC3BH,GAAc,EAGtB,EAEAxwB,EAAOmB,UAAUsS,OAAS,WACxB,MAAO,CACLga,KAAM,SACN0C,KAAMnqB,MAAM7E,UAAU6I,MAAMjC,KAAKkI,KAAKglB,MAAQhlB,KAAM,GAExD,EAyFA,MAAMqjB,EAAuB,KAoB7B,SAASvC,EAAYliB,EAAKjF,EAAO8E,GAC/B,IAAI8E,EAAM,GACV9E,EAAMvM,KAAK6O,IAAInC,EAAIzO,OAAQsO,GAE3B,IAAK,IAAIlJ,EAAIoE,EAAOpE,EAAIkJ,IAAOlJ,EAC7BgO,GAAOnJ,OAAOkpB,aAAsB,IAAT1kB,EAAIrJ,IAEjC,OAAOgO,CACT,CAEA,SAASwd,EAAaniB,EAAKjF,EAAO8E,GAChC,IAAI8E,EAAM,GACV9E,EAAMvM,KAAK6O,IAAInC,EAAIzO,OAAQsO,GAE3B,IAAK,IAAIlJ,EAAIoE,EAAOpE,EAAIkJ,IAAOlJ,EAC7BgO,GAAOnJ,OAAOkpB,aAAa1kB,EAAIrJ,IAEjC,OAAOgO,CACT,CAEA,SAASqd,EAAUhiB,EAAKjF,EAAO8E,GAC7B,MAAMb,EAAMgB,EAAIzO,SAEXwJ,GAASA,EAAQ,KAAGA,EAAQ,KAC5B8E,GAAOA,EAAM,GAAKA,EAAMb,KAAKa,EAAMb,GAExC,IAAIoF,EAAM,GACV,IAAK,IAAIzN,EAAIoE,EAAOpE,EAAIkJ,IAAOlJ,EAC7ByN,GAAOiiB,EAAoBrmB,EAAIrJ,IAEjC,OAAOyN,CACT,CAEA,SAASie,EAAcriB,EAAKjF,EAAO8E,GACjC,MAAMymB,EAAQtmB,EAAI7E,MAAMJ,EAAO8E,GAC/B,IAAI2F,EAAM,GAEV,IAAK,IAAI7O,EAAI,EAAGA,EAAI2vB,EAAM/0B,OAAS,EAAGoF,GAAK,EACzC6O,GAAOhK,OAAOkpB,aAAa4B,EAAM3vB,GAAqB,IAAf2vB,EAAM3vB,EAAI,IAEnD,OAAO6O,CACT,CAiCA,SAAS+gB,EAAav0B,EAAQw0B,EAAKj1B,GACjC,GAAKS,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAIC,WAAW,sBAC3D,GAAID,EAASw0B,EAAMj1B,EAAQ,MAAM,IAAIU,WAAW,wCAClD,CAyQA,SAASw0B,EAAUzmB,EAAKhG,EAAOhI,EAAQw0B,EAAKnkB,EAAKF,GAC/C,IAAKhR,EAAOuM,SAASsC,GAAM,MAAM,IAAI/O,UAAU,+CAC/C,GAAI+I,EAAQqI,GAAOrI,EAAQmI,EAAK,MAAM,IAAIlQ,WAAW,qCACrD,GAAID,EAASw0B,EAAMxmB,EAAIzO,OAAQ,MAAM,IAAIU,WAAW,qBACtD,CA+FA,SAASy0B,EAAgB1mB,EAAKhG,EAAOhI,EAAQmQ,EAAKE,GAChDskB,EAAW3sB,EAAOmI,EAAKE,EAAKrC,EAAKhO,EAAQ,GAEzC,IAAIY,EAAKhB,OAAOoI,EAAQoG,OAAO,aAC/BJ,EAAIhO,KAAYY,EAChBA,IAAW,EACXoN,EAAIhO,KAAYY,EAChBA,IAAW,EACXoN,EAAIhO,KAAYY,EAChBA,IAAW,EACXoN,EAAIhO,KAAYY,EAChB,IAAIsT,EAAKtU,OAAOoI,GAASoG,OAAO,IAAMA,OAAO,aAQ7C,OAPAJ,EAAIhO,KAAYkU,EAChBA,IAAW,EACXlG,EAAIhO,KAAYkU,EAChBA,IAAW,EACXlG,EAAIhO,KAAYkU,EAChBA,IAAW,EACXlG,EAAIhO,KAAYkU,EACTlU,CACT,CAEA,SAAS40B,EAAgB5mB,EAAKhG,EAAOhI,EAAQmQ,EAAKE,GAChDskB,EAAW3sB,EAAOmI,EAAKE,EAAKrC,EAAKhO,EAAQ,GAEzC,IAAIY,EAAKhB,OAAOoI,EAAQoG,OAAO,aAC/BJ,EAAIhO,EAAS,GAAKY,EAClBA,IAAW,EACXoN,EAAIhO,EAAS,GAAKY,EAClBA,IAAW,EACXoN,EAAIhO,EAAS,GAAKY,EAClBA,IAAW,EACXoN,EAAIhO,EAAS,GAAKY,EAClB,IAAIsT,EAAKtU,OAAOoI,GAASoG,OAAO,IAAMA,OAAO,aAQ7C,OAPAJ,EAAIhO,EAAS,GAAKkU,EAClBA,IAAW,EACXlG,EAAIhO,EAAS,GAAKkU,EAClBA,IAAW,EACXlG,EAAIhO,EAAS,GAAKkU,EAClBA,IAAW,EACXlG,EAAIhO,GAAUkU,EACPlU,EAAS,CAClB,CAkHA,SAAS60B,EAAc7mB,EAAKhG,EAAOhI,EAAQw0B,EAAKnkB,EAAKF,GACnD,GAAInQ,EAASw0B,EAAMxmB,EAAIzO,OAAQ,MAAM,IAAIU,WAAW,sBACpD,GAAID,EAAS,EAAG,MAAM,IAAIC,WAAW,qBACvC,CAEA,SAAS60B,EAAY9mB,EAAKhG,EAAOhI,EAAQ+0B,EAAcC,GAOrD,OANAhtB,GAASA,EACThI,KAAoB,EACfg1B,GACHH,EAAa7mB,EAAKhG,EAAOhI,EAAQ,GAEnC+tB,EAAQ1kB,MAAM2E,EAAKhG,EAAOhI,EAAQ+0B,EAAc,GAAI,GAC7C/0B,EAAS,CAClB,CAUA,SAASi1B,EAAajnB,EAAKhG,EAAOhI,EAAQ+0B,EAAcC,GAOtD,OANAhtB,GAASA,EACThI,KAAoB,EACfg1B,GACHH,EAAa7mB,EAAKhG,EAAOhI,EAAQ,GAEnC+tB,EAAQ1kB,MAAM2E,EAAKhG,EAAOhI,EAAQ+0B,EAAc,GAAI,GAC7C/0B,EAAS,CAClB,CAzkBAb,EAAOmB,UAAU6I,MAAQ,SAAgBJ,EAAO8E,GAC9C,MAAMb,EAAMoC,KAAK7P,QACjBwJ,IAAUA,GAGE,GACVA,GAASiE,GACG,IAAGjE,EAAQ,GACdA,EAAQiE,IACjBjE,EAAQiE,IANVa,OAAc1M,IAAR0M,EAAoBb,IAAQa,GASxB,GACRA,GAAOb,GACG,IAAGa,EAAM,GACVA,EAAMb,IACfa,EAAMb,GAGJa,EAAM9E,IAAO8E,EAAM9E,GAEvB,MAAMmsB,EAAS9lB,KAAKob,SAASzhB,EAAO8E,GAIpC,OAFAzN,OAAOiuB,eAAe6G,EAAQ/1B,EAAOmB,WAE9B40B,CACT,EAUA/1B,EAAOmB,UAAU60B,WACjBh2B,EAAOmB,UAAUwB,WAAa,SAAqB9B,EAAQoM,EAAY4oB,GACrEh1B,KAAoB,EACpBoM,KAA4B,EACvB4oB,GAAUT,EAAYv0B,EAAQoM,EAAYgD,KAAK7P,QAEpD,IAAIiP,EAAMY,KAAKpP,GACXkQ,EAAM,EACNvL,EAAI,EACR,OAASA,EAAIyH,IAAe8D,GAAO,MACjC1B,GAAOY,KAAKpP,EAAS2E,GAAKuL,EAG5B,OAAO1B,CACT,EAEArP,EAAOmB,UAAU80B,WACjBj2B,EAAOmB,UAAU0B,WAAa,SAAqBhC,EAAQoM,EAAY4oB,GACrEh1B,KAAoB,EACpBoM,KAA4B,EACvB4oB,GACHT,EAAYv0B,EAAQoM,EAAYgD,KAAK7P,QAGvC,IAAIiP,EAAMY,KAAKpP,IAAWoM,GACtB8D,EAAM,EACV,KAAO9D,EAAa,IAAM8D,GAAO,MAC/B1B,GAAOY,KAAKpP,IAAWoM,GAAc8D,EAGvC,OAAO1B,CACT,EAEArP,EAAOmB,UAAU+0B,UACjBl2B,EAAOmB,UAAUkrB,UAAY,SAAoBxrB,EAAQg1B,GAGvD,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACpC6P,KAAKpP,EACd,EAEAb,EAAOmB,UAAUg1B,aACjBn2B,EAAOmB,UAAUorB,aAAe,SAAuB1rB,EAAQg1B,GAG7D,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACpC6P,KAAKpP,GAAWoP,KAAKpP,EAAS,IAAM,CAC7C,EAEAb,EAAOmB,UAAUi1B,aACjBp2B,EAAOmB,UAAUywB,aAAe,SAAuB/wB,EAAQg1B,GAG7D,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACnC6P,KAAKpP,IAAW,EAAKoP,KAAKpP,EAAS,EAC7C,EAEAb,EAAOmB,UAAUk1B,aACjBr2B,EAAOmB,UAAUyC,aAAe,SAAuB/C,EAAQg1B,GAI7D,OAHAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,SAElC6P,KAAKpP,GACToP,KAAKpP,EAAS,IAAM,EACpBoP,KAAKpP,EAAS,IAAM,IACD,SAAnBoP,KAAKpP,EAAS,EACrB,EAEAb,EAAOmB,UAAUm1B,aACjBt2B,EAAOmB,UAAU6C,aAAe,SAAuBnD,EAAQg1B,GAI7D,OAHAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QAEpB,SAAf6P,KAAKpP,IACToP,KAAKpP,EAAS,IAAM,GACrBoP,KAAKpP,EAAS,IAAM,EACrBoP,KAAKpP,EAAS,GAClB,EAEAb,EAAOmB,UAAUo1B,gBAAkBC,GAAmB,SAA0B31B,GAE9E41B,EADA51B,KAAoB,EACG,UACvB,MAAM61B,EAAQzmB,KAAKpP,GACb81B,EAAO1mB,KAAKpP,EAAS,QACbmB,IAAV00B,QAAgC10B,IAAT20B,GACzBC,EAAY/1B,EAAQoP,KAAK7P,OAAS,GAGpC,MAAMqB,EAAKi1B,EACQ,IAAjBzmB,OAAOpP,GACU,MAAjBoP,OAAOpP,GACPoP,OAAOpP,GAAU,GAAK,GAElBkU,EAAK9E,OAAOpP,GACC,IAAjBoP,OAAOpP,GACU,MAAjBoP,OAAOpP,GACP81B,EAAO,GAAK,GAEd,OAAO1nB,OAAOxN,IAAOwN,OAAO8F,IAAO9F,OAAO,IAC5C,IAEAjP,EAAOmB,UAAU01B,gBAAkBL,GAAmB,SAA0B31B,GAE9E41B,EADA51B,KAAoB,EACG,UACvB,MAAM61B,EAAQzmB,KAAKpP,GACb81B,EAAO1mB,KAAKpP,EAAS,QACbmB,IAAV00B,QAAgC10B,IAAT20B,GACzBC,EAAY/1B,EAAQoP,KAAK7P,OAAS,GAGpC,MAAM2U,EAAK2hB,EAAQ,GAAK,GACL,MAAjBzmB,OAAOpP,GACU,IAAjBoP,OAAOpP,GACPoP,OAAOpP,GAEHY,EAAKwO,OAAOpP,GAAU,GAAK,GACd,MAAjBoP,OAAOpP,GACU,IAAjBoP,OAAOpP,GACP81B,EAEF,OAAQ1nB,OAAO8F,IAAO9F,OAAO,KAAOA,OAAOxN,EAC7C,IAEAzB,EAAOmB,UAAU6B,UAAY,SAAoBnC,EAAQoM,EAAY4oB,GACnEh1B,KAAoB,EACpBoM,KAA4B,EACvB4oB,GAAUT,EAAYv0B,EAAQoM,EAAYgD,KAAK7P,QAEpD,IAAIiP,EAAMY,KAAKpP,GACXkQ,EAAM,EACNvL,EAAI,EACR,OAASA,EAAIyH,IAAe8D,GAAO,MACjC1B,GAAOY,KAAKpP,EAAS2E,GAAKuL,EAM5B,OAJAA,GAAO,IAEH1B,GAAO0B,IAAK1B,GAAOlN,KAAKmB,IAAI,EAAG,EAAI2J,IAEhCoC,CACT,EAEArP,EAAOmB,UAAUgC,UAAY,SAAoBtC,EAAQoM,EAAY4oB,GACnEh1B,KAAoB,EACpBoM,KAA4B,EACvB4oB,GAAUT,EAAYv0B,EAAQoM,EAAYgD,KAAK7P,QAEpD,IAAIoF,EAAIyH,EACJ8D,EAAM,EACN1B,EAAMY,KAAKpP,IAAW2E,GAC1B,KAAOA,EAAI,IAAMuL,GAAO,MACtB1B,GAAOY,KAAKpP,IAAW2E,GAAKuL,EAM9B,OAJAA,GAAO,IAEH1B,GAAO0B,IAAK1B,GAAOlN,KAAKmB,IAAI,EAAG,EAAI2J,IAEhCoC,CACT,EAEArP,EAAOmB,UAAU21B,SAAW,SAAmBj2B,EAAQg1B,GAGrD,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACtB,IAAf6P,KAAKpP,IAC0B,GAA5B,IAAOoP,KAAKpP,GAAU,GADKoP,KAAKpP,EAE3C,EAEAb,EAAOmB,UAAU41B,YAAc,SAAsBl2B,EAAQg1B,GAC3Dh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QAC3C,MAAMiP,EAAMY,KAAKpP,GAAWoP,KAAKpP,EAAS,IAAM,EAChD,OAAc,MAANwO,EAAsB,WAANA,EAAmBA,CAC7C,EAEArP,EAAOmB,UAAU61B,YAAc,SAAsBn2B,EAAQg1B,GAC3Dh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QAC3C,MAAMiP,EAAMY,KAAKpP,EAAS,GAAMoP,KAAKpP,IAAW,EAChD,OAAc,MAANwO,EAAsB,WAANA,EAAmBA,CAC7C,EAEArP,EAAOmB,UAAUgD,YAAc,SAAsBtD,EAAQg1B,GAI3D,OAHAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QAEnC6P,KAAKpP,GACVoP,KAAKpP,EAAS,IAAM,EACpBoP,KAAKpP,EAAS,IAAM,GACpBoP,KAAKpP,EAAS,IAAM,EACzB,EAEAb,EAAOmB,UAAUmD,YAAc,SAAsBzD,EAAQg1B,GAI3D,OAHAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QAEnC6P,KAAKpP,IAAW,GACrBoP,KAAKpP,EAAS,IAAM,GACpBoP,KAAKpP,EAAS,IAAM,EACpBoP,KAAKpP,EAAS,EACnB,EAEAb,EAAOmB,UAAU81B,eAAiBT,GAAmB,SAAyB31B,GAE5E41B,EADA51B,KAAoB,EACG,UACvB,MAAM61B,EAAQzmB,KAAKpP,GACb81B,EAAO1mB,KAAKpP,EAAS,QACbmB,IAAV00B,QAAgC10B,IAAT20B,GACzBC,EAAY/1B,EAAQoP,KAAK7P,OAAS,GAGpC,MAAMiP,EAAMY,KAAKpP,EAAS,GACL,IAAnBoP,KAAKpP,EAAS,GACK,MAAnBoP,KAAKpP,EAAS,IACb81B,GAAQ,IAEX,OAAQ1nB,OAAOI,IAAQJ,OAAO,KAC5BA,OAAOynB,EACU,IAAjBzmB,OAAOpP,GACU,MAAjBoP,OAAOpP,GACPoP,OAAOpP,GAAU,GAAK,GAC1B,IAEAb,EAAOmB,UAAU+1B,eAAiBV,GAAmB,SAAyB31B,GAE5E41B,EADA51B,KAAoB,EACG,UACvB,MAAM61B,EAAQzmB,KAAKpP,GACb81B,EAAO1mB,KAAKpP,EAAS,QACbmB,IAAV00B,QAAgC10B,IAAT20B,GACzBC,EAAY/1B,EAAQoP,KAAK7P,OAAS,GAGpC,MAAMiP,GAAOqnB,GAAS,IACH,MAAjBzmB,OAAOpP,GACU,IAAjBoP,OAAOpP,GACPoP,OAAOpP,GAET,OAAQoO,OAAOI,IAAQJ,OAAO,KAC5BA,OAAOgB,OAAOpP,GAAU,GAAK,GACZ,MAAjBoP,OAAOpP,GACU,IAAjBoP,OAAOpP,GACP81B,EACJ,IAEA32B,EAAOmB,UAAUsD,YAAc,SAAsB5D,EAAQg1B,GAG3D,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACpCwuB,EAAQ+C,KAAK1hB,KAAMpP,GAAQ,EAAM,GAAI,EAC9C,EAEAb,EAAOmB,UAAUyD,YAAc,SAAsB/D,EAAQg1B,GAG3D,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACpCwuB,EAAQ+C,KAAK1hB,KAAMpP,GAAQ,EAAO,GAAI,EAC/C,EAEAb,EAAOmB,UAAU4D,aAAe,SAAuBlE,EAAQg1B,GAG7D,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACpCwuB,EAAQ+C,KAAK1hB,KAAMpP,GAAQ,EAAM,GAAI,EAC9C,EAEAb,EAAOmB,UAAU+D,aAAe,SAAuBrE,EAAQg1B,GAG7D,OAFAh1B,KAAoB,EACfg1B,GAAUT,EAAYv0B,EAAQ,EAAGoP,KAAK7P,QACpCwuB,EAAQ+C,KAAK1hB,KAAMpP,GAAQ,EAAO,GAAI,EAC/C,EAQAb,EAAOmB,UAAUg2B,YACjBn3B,EAAOmB,UAAUyB,YAAc,SAAsBiG,EAAOhI,EAAQoM,EAAY4oB,GAI9E,GAHAhtB,GAASA,EACThI,KAAoB,EACpBoM,KAA4B,GACvB4oB,EAAU,CAEbP,EAASrlB,KAAMpH,EAAOhI,EAAQoM,EADb9K,KAAKmB,IAAI,EAAG,EAAI2J,GAAc,EACK,EACtD,CAEA,IAAI8D,EAAM,EACNvL,EAAI,EAER,IADAyK,KAAKpP,GAAkB,IAARgI,IACNrD,EAAIyH,IAAe8D,GAAO,MACjCd,KAAKpP,EAAS2E,GAAMqD,EAAQkI,EAAO,IAGrC,OAAOlQ,EAASoM,CAClB,EAEAjN,EAAOmB,UAAUi2B,YACjBp3B,EAAOmB,UAAU2B,YAAc,SAAsB+F,EAAOhI,EAAQoM,EAAY4oB,GAI9E,GAHAhtB,GAASA,EACThI,KAAoB,EACpBoM,KAA4B,GACvB4oB,EAAU,CAEbP,EAASrlB,KAAMpH,EAAOhI,EAAQoM,EADb9K,KAAKmB,IAAI,EAAG,EAAI2J,GAAc,EACK,EACtD,CAEA,IAAIzH,EAAIyH,EAAa,EACjB8D,EAAM,EAEV,IADAd,KAAKpP,EAAS2E,GAAa,IAARqD,IACVrD,GAAK,IAAMuL,GAAO,MACzBd,KAAKpP,EAAS2E,GAAMqD,EAAQkI,EAAO,IAGrC,OAAOlQ,EAASoM,CAClB,EAEAjN,EAAOmB,UAAUk2B,WACjBr3B,EAAOmB,UAAUypB,WAAa,SAAqB/hB,EAAOhI,EAAQg1B,GAKhE,OAJAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,IAAM,GACtDoP,KAAKpP,GAAmB,IAARgI,EACThI,EAAS,CAClB,EAEAb,EAAOmB,UAAUm2B,cACjBt3B,EAAOmB,UAAU2pB,cAAgB,SAAwBjiB,EAAOhI,EAAQg1B,GAMtE,OALAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,MAAQ,GACxDoP,KAAKpP,GAAmB,IAARgI,EAChBoH,KAAKpP,EAAS,GAAMgI,IAAU,EACvBhI,EAAS,CAClB,EAEAb,EAAOmB,UAAUo2B,cACjBv3B,EAAOmB,UAAUq2B,cAAgB,SAAwB3uB,EAAOhI,EAAQg1B,GAMtE,OALAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,MAAQ,GACxDoP,KAAKpP,GAAWgI,IAAU,EAC1BoH,KAAKpP,EAAS,GAAc,IAARgI,EACbhI,EAAS,CAClB,EAEAb,EAAOmB,UAAUs2B,cACjBz3B,EAAOmB,UAAU2C,cAAgB,SAAwB+E,EAAOhI,EAAQg1B,GAQtE,OAPAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,WAAY,GAC5DoP,KAAKpP,EAAS,GAAMgI,IAAU,GAC9BoH,KAAKpP,EAAS,GAAMgI,IAAU,GAC9BoH,KAAKpP,EAAS,GAAMgI,IAAU,EAC9BoH,KAAKpP,GAAmB,IAARgI,EACThI,EAAS,CAClB,EAEAb,EAAOmB,UAAUu2B,cACjB13B,EAAOmB,UAAU8C,cAAgB,SAAwB4E,EAAOhI,EAAQg1B,GAQtE,OAPAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,WAAY,GAC5DoP,KAAKpP,GAAWgI,IAAU,GAC1BoH,KAAKpP,EAAS,GAAMgI,IAAU,GAC9BoH,KAAKpP,EAAS,GAAMgI,IAAU,EAC9BoH,KAAKpP,EAAS,GAAc,IAARgI,EACbhI,EAAS,CAClB,EA8CAb,EAAOmB,UAAUw2B,iBAAmBnB,GAAmB,SAA2B3tB,GAChF,OAAO0sB,EAAetlB,KAAMpH,EADiE9G,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACrDkN,OAAO,GAAIA,OAAO,sBAC/D,IAEAjP,EAAOmB,UAAUy2B,iBAAmBpB,GAAmB,SAA2B3tB,GAChF,OAAO4sB,EAAexlB,KAAMpH,EADiE9G,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACrDkN,OAAO,GAAIA,OAAO,sBAC/D,IAEAjP,EAAOmB,UAAU8B,WAAa,SAAqB4F,EAAOhI,EAAQoM,EAAY4oB,GAG5E,GAFAhtB,GAASA,EACThI,KAAoB,GACfg1B,EAAU,CACb,MAAMgC,EAAQ11B,KAAKmB,IAAI,EAAI,EAAI2J,EAAc,GAE7CqoB,EAASrlB,KAAMpH,EAAOhI,EAAQoM,EAAY4qB,EAAQ,GAAIA,EACxD,CAEA,IAAIryB,EAAI,EACJuL,EAAM,EACNgG,EAAM,EAEV,IADA9G,KAAKpP,GAAkB,IAARgI,IACNrD,EAAIyH,IAAe8D,GAAO,MAC7BlI,EAAQ,GAAa,IAARkO,GAAsC,IAAzB9G,KAAKpP,EAAS2E,EAAI,KAC9CuR,EAAM,GAER9G,KAAKpP,EAAS2E,IAAOqD,EAAQkI,EAAQ,GAAKgG,EAAM,IAGlD,OAAOlW,EAASoM,CAClB,EAEAjN,EAAOmB,UAAUiC,WAAa,SAAqByF,EAAOhI,EAAQoM,EAAY4oB,GAG5E,GAFAhtB,GAASA,EACThI,KAAoB,GACfg1B,EAAU,CACb,MAAMgC,EAAQ11B,KAAKmB,IAAI,EAAI,EAAI2J,EAAc,GAE7CqoB,EAASrlB,KAAMpH,EAAOhI,EAAQoM,EAAY4qB,EAAQ,GAAIA,EACxD,CAEA,IAAIryB,EAAIyH,EAAa,EACjB8D,EAAM,EACNgG,EAAM,EAEV,IADA9G,KAAKpP,EAAS2E,GAAa,IAARqD,IACVrD,GAAK,IAAMuL,GAAO,MACrBlI,EAAQ,GAAa,IAARkO,GAAsC,IAAzB9G,KAAKpP,EAAS2E,EAAI,KAC9CuR,EAAM,GAER9G,KAAKpP,EAAS2E,IAAOqD,EAAQkI,EAAQ,GAAKgG,EAAM,IAGlD,OAAOlW,EAASoM,CAClB,EAEAjN,EAAOmB,UAAU22B,UAAY,SAAoBjvB,EAAOhI,EAAQg1B,GAM9D,OALAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,KAAO,KACnDgI,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCoH,KAAKpP,GAAmB,IAARgI,EACThI,EAAS,CAClB,EAEAb,EAAOmB,UAAU42B,aAAe,SAAuBlvB,EAAOhI,EAAQg1B,GAMpE,OALAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,OAAS,OACzDoP,KAAKpP,GAAmB,IAARgI,EAChBoH,KAAKpP,EAAS,GAAMgI,IAAU,EACvBhI,EAAS,CAClB,EAEAb,EAAOmB,UAAU62B,aAAe,SAAuBnvB,EAAOhI,EAAQg1B,GAMpE,OALAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,OAAS,OACzDoP,KAAKpP,GAAWgI,IAAU,EAC1BoH,KAAKpP,EAAS,GAAc,IAARgI,EACbhI,EAAS,CAClB,EAEAb,EAAOmB,UAAUiD,aAAe,SAAuByE,EAAOhI,EAAQg1B,GAQpE,OAPAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,YAAa,YAC7DoP,KAAKpP,GAAmB,IAARgI,EAChBoH,KAAKpP,EAAS,GAAMgI,IAAU,EAC9BoH,KAAKpP,EAAS,GAAMgI,IAAU,GAC9BoH,KAAKpP,EAAS,GAAMgI,IAAU,GACvBhI,EAAS,CAClB,EAEAb,EAAOmB,UAAUoD,aAAe,SAAuBsE,EAAOhI,EAAQg1B,GASpE,OARAhtB,GAASA,EACThI,KAAoB,EACfg1B,GAAUP,EAASrlB,KAAMpH,EAAOhI,EAAQ,EAAG,YAAa,YACzDgI,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5CoH,KAAKpP,GAAWgI,IAAU,GAC1BoH,KAAKpP,EAAS,GAAMgI,IAAU,GAC9BoH,KAAKpP,EAAS,GAAMgI,IAAU,EAC9BoH,KAAKpP,EAAS,GAAc,IAARgI,EACbhI,EAAS,CAClB,EAEAb,EAAOmB,UAAU82B,gBAAkBzB,GAAmB,SAA0B3tB,GAC9E,OAAO0sB,EAAetlB,KAAMpH,EAD+D9G,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAClDkN,OAAO,sBAAuBA,OAAO,sBACnF,IAEAjP,EAAOmB,UAAU+2B,gBAAkB1B,GAAmB,SAA0B3tB,GAC9E,OAAO4sB,EAAexlB,KAAMpH,EAD+D9G,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAClDkN,OAAO,sBAAuBA,OAAO,sBACnF,IAiBAjP,EAAOmB,UAAUuD,aAAe,SAAuBmE,EAAOhI,EAAQg1B,GACpE,OAAOF,EAAW1lB,KAAMpH,EAAOhI,GAAQ,EAAMg1B,EAC/C,EAEA71B,EAAOmB,UAAU0D,aAAe,SAAuBgE,EAAOhI,EAAQg1B,GACpE,OAAOF,EAAW1lB,KAAMpH,EAAOhI,GAAQ,EAAOg1B,EAChD,EAYA71B,EAAOmB,UAAU6D,cAAgB,SAAwB6D,EAAOhI,EAAQg1B,GACtE,OAAOC,EAAY7lB,KAAMpH,EAAOhI,GAAQ,EAAMg1B,EAChD,EAEA71B,EAAOmB,UAAUgE,cAAgB,SAAwB0D,EAAOhI,EAAQg1B,GACtE,OAAOC,EAAY7lB,KAAMpH,EAAOhI,GAAQ,EAAOg1B,EACjD,EAGA71B,EAAOmB,UAAUoJ,KAAO,SAAege,EAAQ4P,EAAavuB,EAAO8E,GACjE,IAAK1O,EAAOuM,SAASgc,GAAS,MAAM,IAAIzoB,UAAU,+BAQlD,GAPK8J,IAAOA,EAAQ,GACf8E,GAAe,IAARA,IAAWA,EAAMuB,KAAK7P,QAC9B+3B,GAAe5P,EAAOnoB,SAAQ+3B,EAAc5P,EAAOnoB,QAClD+3B,IAAaA,EAAc,GAC5BzpB,EAAM,GAAKA,EAAM9E,IAAO8E,EAAM9E,GAG9B8E,IAAQ9E,EAAO,OAAO,EAC1B,GAAsB,IAAlB2e,EAAOnoB,QAAgC,IAAhB6P,KAAK7P,OAAc,OAAO,EAGrD,GAAI+3B,EAAc,EAChB,MAAM,IAAIr3B,WAAW,6BAEvB,GAAI8I,EAAQ,GAAKA,GAASqG,KAAK7P,OAAQ,MAAM,IAAIU,WAAW,sBAC5D,GAAI4N,EAAM,EAAG,MAAM,IAAI5N,WAAW,2BAG9B4N,EAAMuB,KAAK7P,SAAQsO,EAAMuB,KAAK7P,QAC9BmoB,EAAOnoB,OAAS+3B,EAAczpB,EAAM9E,IACtC8E,EAAM6Z,EAAOnoB,OAAS+3B,EAAcvuB,GAGtC,MAAMiE,EAAMa,EAAM9E,EAalB,OAXIqG,OAASsY,GAAqD,oBAApC1oB,WAAWsB,UAAUi3B,WAEjDnoB,KAAKmoB,WAAWD,EAAavuB,EAAO8E,GAEpC7O,WAAWsB,UAAUmtB,IAAIvmB,KACvBwgB,EACAtY,KAAKob,SAASzhB,EAAO8E,GACrBypB,GAIGtqB,CACT,EAMA7N,EAAOmB,UAAUmL,KAAO,SAAe+C,EAAKzF,EAAO8E,EAAKkb,GAEtD,GAAmB,kBAARva,EAAkB,CAS3B,GARqB,kBAAVzF,GACTggB,EAAWhgB,EACXA,EAAQ,EACR8E,EAAMuB,KAAK7P,QACa,kBAARsO,IAChBkb,EAAWlb,EACXA,EAAMuB,KAAK7P,aAEI4B,IAAb4nB,GAA8C,kBAAbA,EACnC,MAAM,IAAI9pB,UAAU,6BAEtB,GAAwB,kBAAb8pB,IAA0B5pB,EAAOqvB,WAAWzF,GACrD,MAAM,IAAI9pB,UAAU,qBAAuB8pB,GAE7C,GAAmB,IAAfva,EAAIjP,OAAc,CACpB,MAAMoO,EAAOa,EAAIjE,WAAW,IACV,SAAbwe,GAAuBpb,EAAO,KAClB,WAAbob,KAEFva,EAAMb,EAEV,CACF,KAA0B,kBAARa,EAChBA,GAAY,IACY,mBAARA,IAChBA,EAAM5O,OAAO4O,IAIf,GAAIzF,EAAQ,GAAKqG,KAAK7P,OAASwJ,GAASqG,KAAK7P,OAASsO,EACpD,MAAM,IAAI5N,WAAW,sBAGvB,GAAI4N,GAAO9E,EACT,OAAOqG,KAQT,IAAIzK,EACJ,GANAoE,KAAkB,EAClB8E,OAAc1M,IAAR0M,EAAoBuB,KAAK7P,OAASsO,IAAQ,EAE3CW,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAK7J,EAAIoE,EAAOpE,EAAIkJ,IAAOlJ,EACzByK,KAAKzK,GAAK6J,MAEP,CACL,MAAM8lB,EAAQn1B,EAAOuM,SAAS8C,GAC1BA,EACArP,EAAOC,KAAKoP,EAAKua,GACf/b,EAAMsnB,EAAM/0B,OAClB,GAAY,IAARyN,EACF,MAAM,IAAI/N,UAAU,cAAgBuP,EAClC,qCAEJ,IAAK7J,EAAI,EAAGA,EAAIkJ,EAAM9E,IAASpE,EAC7ByK,KAAKzK,EAAIoE,GAASurB,EAAM3vB,EAAIqI,EAEhC,CAEA,OAAOoC,IACT,EAMA,MAAMooB,EAAS,CAAC,EAChB,SAASC,EAAGC,EAAKC,EAAYC,GAC3BJ,EAAOE,GAAO,cAAwBE,EACpCn4B,WAAAA,GACE6pB,QAEAlpB,OAAOgnB,eAAehY,KAAM,UAAW,CACrCpH,MAAO2vB,EAAWrM,MAAMlc,KAAMlO,WAC9B22B,UAAU,EACVC,cAAc,IAIhB1oB,KAAKzO,KAAO,GAAGyO,KAAKzO,SAAS+2B,KAG7BtoB,KAAK2oB,aAEE3oB,KAAKzO,IACd,CAEA,QAAIgN,GACF,OAAO+pB,CACT,CAEA,QAAI/pB,CAAM3F,GACR5H,OAAOgnB,eAAehY,KAAM,OAAQ,CAClC0oB,cAAc,EACdzQ,YAAY,EACZrf,QACA6vB,UAAU,GAEd,CAEAvuB,QAAAA,GACE,MAAO,GAAG8F,KAAKzO,SAAS+2B,OAAStoB,KAAKia,SACxC,EAEJ,CA+BA,SAAS2O,EAAuBxpB,GAC9B,IAAIgF,EAAM,GACN7O,EAAI6J,EAAIjP,OACZ,MAAMwJ,EAAmB,MAAXyF,EAAI,GAAa,EAAI,EACnC,KAAO7J,GAAKoE,EAAQ,EAAGpE,GAAK,EAC1B6O,EAAM,IAAIhF,EAAIrF,MAAMxE,EAAI,EAAGA,KAAK6O,IAElC,MAAO,GAAGhF,EAAIrF,MAAM,EAAGxE,KAAK6O,GAC9B,CAYA,SAASmhB,EAAY3sB,EAAOmI,EAAKE,EAAKrC,EAAKhO,EAAQoM,GACjD,GAAIpE,EAAQqI,GAAOrI,EAAQmI,EAAK,CAC9B,MAAMoN,EAAmB,kBAARpN,EAAmB,IAAM,GAC1C,IAAI8nB,EAWJ,MARIA,EAFA7rB,EAAa,EACH,IAAR+D,GAAaA,IAAQ/B,OAAO,GACtB,OAAOmP,YAAYA,QAA2B,GAAlBnR,EAAa,KAASmR,IAElD,SAASA,QAA2B,GAAlBnR,EAAa,GAAS,IAAImR,iBACtB,GAAlBnR,EAAa,GAAS,IAAImR,IAGhC,MAAMpN,IAAMoN,YAAYlN,IAAMkN,IAElC,IAAIia,EAAOU,iBAAiB,QAASD,EAAOjwB,EACpD,EAtBF,SAAsBgG,EAAKhO,EAAQoM,GACjCwpB,EAAe51B,EAAQ,eACHmB,IAAhB6M,EAAIhO,SAAsDmB,IAA7B6M,EAAIhO,EAASoM,IAC5C2pB,EAAY/1B,EAAQgO,EAAIzO,QAAU6M,EAAa,GAEnD,CAkBE+rB,CAAYnqB,EAAKhO,EAAQoM,EAC3B,CAEA,SAASwpB,EAAgB5tB,EAAOrH,GAC9B,GAAqB,kBAAVqH,EACT,MAAM,IAAIwvB,EAAOY,qBAAqBz3B,EAAM,SAAUqH,EAE1D,CAEA,SAAS+tB,EAAa/tB,EAAOzI,EAAQqtB,GACnC,GAAItrB,KAAKC,MAAMyG,KAAWA,EAExB,MADA4tB,EAAe5tB,EAAO4kB,GAChB,IAAI4K,EAAOU,iBAAiBtL,GAAQ,SAAU,aAAc5kB,GAGpE,GAAIzI,EAAS,EACX,MAAM,IAAIi4B,EAAOa,yBAGnB,MAAM,IAAIb,EAAOU,iBAAiBtL,GAAQ,SACR,MAAMA,EAAO,EAAI,YAAYrtB,IAC7ByI,EACpC,CAvFAyvB,EAAE,4BACA,SAAU92B,GACR,OAAIA,EACK,GAAGA,gCAGL,gDACT,GAAGV,YACLw3B,EAAE,wBACA,SAAU92B,EAAM8tB,GACd,MAAO,QAAQ9tB,4DAA+D8tB,GAChF,GAAGxvB,WACLw4B,EAAE,oBACA,SAAUzrB,EAAKisB,EAAO9R,GACpB,IAAI1X,EAAM,iBAAiBzC,sBACvBssB,EAAWnS,EAWf,OAVIvmB,OAAOC,UAAUsmB,IAAU7kB,KAAK+S,IAAI8R,GAAS,GAAK,GACpDmS,EAAWN,EAAsBxuB,OAAO2c,IACd,kBAAVA,IAChBmS,EAAW9uB,OAAO2c,IACdA,EAAQ/X,OAAO,IAAMA,OAAO,KAAO+X,IAAU/X,OAAO,IAAMA,OAAO,QACnEkqB,EAAWN,EAAsBM,IAEnCA,GAAY,KAEd7pB,GAAO,eAAewpB,eAAmBK,IAClC7pB,CACT,GAAGxO,YAiEL,MAAMs4B,EAAoB,oBAgB1B,SAAS3I,EAAa1jB,EAAQ6lB,GAE5B,IAAIG,EADJH,EAAQA,GAASyG,IAEjB,MAAMj5B,EAAS2M,EAAO3M,OACtB,IAAIk5B,EAAgB,KACpB,MAAMnE,EAAQ,GAEd,IAAK,IAAI3vB,EAAI,EAAGA,EAAIpF,IAAUoF,EAAG,CAI/B,GAHAutB,EAAYhmB,EAAO3B,WAAW5F,GAG1ButB,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAKuG,EAAe,CAElB,GAAIvG,EAAY,MAAQ,EAEjBH,GAAS,IAAM,GAAGuC,EAAM1vB,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAID,EAAI,IAAMpF,EAAQ,EAEtBwyB,GAAS,IAAM,GAAGuC,EAAM1vB,KAAK,IAAM,IAAM,KAC9C,QACF,CAGA6zB,EAAgBvG,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBH,GAAS,IAAM,GAAGuC,EAAM1vB,KAAK,IAAM,IAAM,KAC9C6zB,EAAgBvG,EAChB,QACF,CAGAA,EAAkE,OAArDuG,EAAgB,OAAU,GAAKvG,EAAY,MAC1D,MAAWuG,IAEJ1G,GAAS,IAAM,GAAGuC,EAAM1vB,KAAK,IAAM,IAAM,KAMhD,GAHA6zB,EAAgB,KAGZvG,EAAY,IAAM,CACpB,IAAKH,GAAS,GAAK,EAAG,MACtBuC,EAAM1vB,KAAKstB,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKH,GAAS,GAAK,EAAG,MACtBuC,EAAM1vB,KACJstB,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKH,GAAS,GAAK,EAAG,MACtBuC,EAAM1vB,KACJstB,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAInxB,MAAM,sBARhB,IAAKgxB,GAAS,GAAK,EAAG,MACtBuC,EAAM1vB,KACJstB,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOoC,CACT,CA2BA,SAASzE,EAAe7jB,GACtB,OAAO8hB,EAAOphB,YAxHhB,SAAsBV,GAMpB,IAFAA,GAFAA,EAAMA,EAAIhJ,MAAM,KAAK,IAEX6wB,OAAOljB,QAAQ4nB,EAAmB,KAEpCh5B,OAAS,EAAG,MAAO,GAE3B,KAAOyM,EAAIzM,OAAS,IAAM,GACxByM,GAAY,IAEd,OAAOA,CACT,CA4G4B0sB,CAAY1sB,GACxC,CAEA,SAASylB,EAAYhwB,EAAKk3B,EAAK34B,EAAQT,GACrC,IAAIoF,EACJ,IAAKA,EAAI,EAAGA,EAAIpF,KACToF,EAAI3E,GAAU24B,EAAIp5B,QAAYoF,GAAKlD,EAAIlC,UADpBoF,EAExBg0B,EAAIh0B,EAAI3E,GAAUyB,EAAIkD,GAExB,OAAOA,CACT,CAKA,SAASmqB,EAAY9B,EAAKJ,GACxB,OAAOI,aAAeJ,GACZ,MAAPI,GAAkC,MAAnBA,EAAIvtB,aAA+C,MAAxButB,EAAIvtB,YAAYkB,MACzDqsB,EAAIvtB,YAAYkB,OAASisB,EAAKjsB,IACpC,CACA,SAAS0uB,EAAarC,GAEpB,OAAOA,IAAQA,CACjB,CAIA,MAAMqH,EAAuB,WAC3B,MAAMuE,EAAW,mBACXC,EAAQ,IAAI1zB,MAAM,KACxB,IAAK,IAAIR,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,MAAMm0B,EAAU,GAAJn0B,EACZ,IAAK,IAAIwF,EAAI,EAAGA,EAAI,KAAMA,EACxB0uB,EAAMC,EAAM3uB,GAAKyuB,EAASj0B,GAAKi0B,EAASzuB,EAE5C,CACA,OAAO0uB,CACT,CAV6B,GAa7B,SAASlD,EAAoB9K,GAC3B,MAAyB,qBAAXzc,OAAyB2qB,EAAyBlO,CAClE,CAEA,SAASkO,IACP,MAAM,IAAIh4B,MAAM,uBAClB,gBCxjEA+I,EAAQgnB,KAAO,SAAUzxB,EAAQW,EAAQg5B,EAAMC,EAAMC,GACnD,IAAI3zB,EAAGiY,EACH2b,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT30B,EAAIq0B,EAAQE,EAAS,EAAK,EAC1BrR,EAAImR,GAAQ,EAAI,EAChBxc,EAAInd,EAAOW,EAAS2E,GAOxB,IALAA,GAAKkjB,EAELtiB,EAAIiX,GAAM,IAAO8c,GAAU,EAC3B9c,KAAQ8c,EACRA,GAASH,EACFG,EAAQ,EAAG/zB,EAAS,IAAJA,EAAWlG,EAAOW,EAAS2E,GAAIA,GAAKkjB,EAAGyR,GAAS,GAKvE,IAHA9b,EAAIjY,GAAM,IAAO+zB,GAAU,EAC3B/zB,KAAQ+zB,EACRA,GAASL,EACFK,EAAQ,EAAG9b,EAAS,IAAJA,EAAWne,EAAOW,EAAS2E,GAAIA,GAAKkjB,EAAGyR,GAAS,GAEvE,GAAU,IAAN/zB,EACFA,EAAI,EAAI8zB,MACH,IAAI9zB,IAAM6zB,EACf,OAAO5b,EAAI+b,IAAsBf,KAAdhc,GAAK,EAAI,GAE5BgB,GAAQlc,KAAKmB,IAAI,EAAGw2B,GACpB1zB,GAAQ8zB,CACV,CACA,OAAQ7c,GAAK,EAAI,GAAKgB,EAAIlc,KAAKmB,IAAI,EAAG8C,EAAI0zB,EAC5C,EAEAnvB,EAAQT,MAAQ,SAAUhK,EAAQ2I,EAAOhI,EAAQg5B,EAAMC,EAAMC,GAC3D,IAAI3zB,EAAGiY,EAAG3N,EACNspB,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAc33B,KAAKmB,IAAI,GAAI,IAAMnB,KAAKmB,IAAI,GAAI,IAAM,EAC1DkC,EAAIq0B,EAAO,EAAKE,EAAS,EACzBrR,EAAImR,EAAO,GAAK,EAChBxc,EAAIxU,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ1G,KAAK+S,IAAIrM,GAEbyxB,MAAMzxB,IAAUA,IAAUwwB,KAC5Bhb,EAAIic,MAAMzxB,GAAS,EAAI,EACvBzC,EAAI6zB,IAEJ7zB,EAAIjE,KAAKC,MAAMD,KAAKqJ,IAAI3C,GAAS1G,KAAKo4B,KAClC1xB,GAAS6H,EAAIvO,KAAKmB,IAAI,GAAI8C,IAAM,IAClCA,IACAsK,GAAK,IAGL7H,GADEzC,EAAI8zB,GAAS,EACNG,EAAK3pB,EAEL2pB,EAAKl4B,KAAKmB,IAAI,EAAG,EAAI42B,IAEpBxpB,GAAK,IACftK,IACAsK,GAAK,GAGHtK,EAAI8zB,GAASD,GACf5b,EAAI,EACJjY,EAAI6zB,GACK7zB,EAAI8zB,GAAS,GACtB7b,GAAMxV,EAAQ6H,EAAK,GAAKvO,KAAKmB,IAAI,EAAGw2B,GACpC1zB,GAAQ8zB,IAER7b,EAAIxV,EAAQ1G,KAAKmB,IAAI,EAAG42B,EAAQ,GAAK/3B,KAAKmB,IAAI,EAAGw2B,GACjD1zB,EAAI,IAID0zB,GAAQ,EAAG55B,EAAOW,EAAS2E,GAAS,IAAJ6Y,EAAU7Y,GAAKkjB,EAAGrK,GAAK,IAAKyb,GAAQ,GAI3E,IAFA1zB,EAAKA,GAAK0zB,EAAQzb,EAClB2b,GAAQF,EACDE,EAAO,EAAG95B,EAAOW,EAAS2E,GAAS,IAAJY,EAAUZ,GAAKkjB,EAAGtiB,GAAK,IAAK4zB,GAAQ,GAE1E95B,EAAOW,EAAS2E,EAAIkjB,IAAU,IAAJrL,CAC5B,yBCpCAxS,EAAOF,QA5BS,SAAS6vB,EAAWC,EAAQ3mB,EAAGlU,EAAG8Q,EAAGgY,EAAGtiB,EAAGs0B,GAOzD,IAAKF,EAAW,CACd,IAAI5M,EACJ,QAAe5rB,IAAXy4B,EACF7M,EAAQ,IAAIhsB,MACV,qIAGG,CACL,IAAIqqB,EAAO,CAACnY,EAAGlU,EAAG8Q,EAAGgY,EAAGtiB,EAAGs0B,GACvBC,EAAW,GACf/M,EAAQ,IAAIhsB,MACV64B,EAAOjpB,QAAQ,OAAO,WAAa,OAAOya,EAAK0O,IAAa,MAExDn5B,KAAO,qBACf,CAGA,MADAosB,EAAMgN,YAAc,EACdhN,CACR,CACF,+BC5CA,MAAMiN,EAAOn7B,EAAAA,MAAAA,GACPo7B,EAAkBp7B,EAAQ,MAc1Bq7B,EAAgB,SAASC,EAAYC,GACzC,KAAKhrB,gBAAgB8qB,GACnB,OAAO,IAAIA,EAAcC,EAAYC,GAGlCA,IACHA,EAAU,CAAC,GAGbhrB,KAAKgrB,QAAU,CACbC,QAAoC,qBAApBD,EAAQC,QAA0BD,EAAQC,QAAU,KACpEC,SAAsC,qBAArBF,EAAQE,SAA2BF,EAAQE,SAAW,KACvEC,UAAwC,qBAAtBH,EAAQG,UAA4BH,EAAQG,UAAY,WAAa,OAAOP,GAAQ,EACtGQ,QAAoC,qBAApBJ,EAAQI,QAA0BJ,EAAQI,QAAU,EACpEC,mBAA0D,mBAA/BL,EAAQK,oBAAmCL,EAAQK,oBAGhFrrB,KAAK+qB,WAAaA,CACpB,EAEAnwB,EAAOF,QAAUowB,EAWjBA,EAAc55B,UAAUo6B,QAAU,SAASC,EAAQC,EAAQC,EAAIC,GAC7D,MAAM9nB,EAAO5D,KACb,IAAIsrB,EAAU,KAGd,MAAMK,EAAU51B,MAAMC,QAAQu1B,IAA6B,oBAAXC,EAEhD,GAA6B,IAAzBxrB,KAAKgrB,QAAQI,SAAiBO,EAChC,MAAM,IAAI97B,UAAU,0CAMtB,GAAG87B,IAFYA,GAAWJ,GAA4B,kBAAXA,GAAyC,oBAAXC,EAGvEE,EAAWF,EACXF,EAAUC,MACL,CACY,oBAAPE,IACRC,EAAWD,EAEXA,OAAK15B,GAGP,MAAM65B,EAAkC,oBAAbF,EAE3B,IACEJ,EAAUT,EAAgBU,EAAQC,EAAQC,EAAI,CAC5CN,UAAWnrB,KAAKgrB,QAAQG,UACxBC,QAASprB,KAAKgrB,QAAQI,QACtBC,mBAAoBrrB,KAAKgrB,QAAQK,oBAErC,CAAE,MAAMQ,GACN,GAAGD,EACD,OAAOF,EAASG,GAElB,MAAMA,CACR,CAGA,IAAID,EACF,OAAON,CAGX,CAEA,IAAIrR,EACJ,IACEA,EAAU6R,KAAKC,UAAUT,EAAStrB,KAAKgrB,QAAQE,SACjD,CAAE,MAAMW,GACN,OAAOH,EAASG,EAClB,CAOA,OALA7rB,KAAK+qB,WAAW9Q,GAAS,SAAS4R,EAAKG,GACrCpoB,EAAKqoB,eAAeJ,EAAKG,EAAUN,EACrC,IAGOJ,CACT,EASAR,EAAc55B,UAAU+6B,eAAiB,SAASJ,EAAKK,EAAcR,GACnE,GAAGG,EAED,YADAH,EAASG,GAIX,IAAIK,EAGF,OAAOR,IAGT,IAAIM,EACJ,IACEA,EAAWF,KAAKK,MAAMD,EAAclsB,KAAKgrB,QAAQC,QACnD,CAAE,MAAMY,GACN,OAAOH,EAASG,EAClB,CAEA,GAAuB,IAApBH,EAASv7B,OAAc,CAIxB,GAAG4F,MAAMC,QAAQg2B,GAAW,CAG1B,MAAMI,EAAU,SAAShoB,GACvB,MAA4B,qBAAdA,EAAIuZ,KACpB,EAEM0O,EAAa,SAAUjoB,GAC3B,OAAQgoB,EAAQhoB,EAClB,EAEA,OAAOsnB,EAAS,KAAMM,EAASM,OAAOF,GAAUJ,EAASM,OAAOD,GAElE,CAGE,OAAOX,EAAS,KAAMM,EAASrO,MAAOqO,EAASjT,OAInD,CAEA2S,EAAS,KAAMM,EACjB,+BChKA,MAAMpB,EAAOn7B,EAAAA,MAAAA,GA4DbmL,EAAOF,QA7CiB,SAAS6wB,EAAQC,EAAQC,EAAIT,GACnD,GAAqB,kBAAXO,EACR,MAAM,IAAI17B,UAAU07B,EAAS,qBAM/B,MAAMH,EAAqC,kBAH3CJ,EAAUA,GAAW,CAAC,GAGSI,QAAuBJ,EAAQI,QAAU,EACxE,GAAgB,IAAZA,GAA6B,IAAZA,EACnB,MAAM,IAAIv7B,UAAUu7B,EAAU,mBAGhC,MAAME,EAAU,CACdC,OAAQA,GAOV,GAJe,IAAZH,IACDE,EAAQiB,QAAU,OAGjBf,EAAQ,CAET,GAAqB,kBAAXA,IAAwBz1B,MAAMC,QAAQw1B,GAC9C,MAAM,IAAI37B,UAAU27B,EAAS,wCAE/BF,EAAQE,OAASA,CACnB,CAGA,GAAkB,qBAARC,EAAqB,CAC7B,MAAMN,EAAyC,oBAAtBH,EAAQG,UAA2BH,EAAQG,UAAY,WAAa,OAAOP,GAAQ,EAC5GU,EAAQG,GAAKN,EAAUG,EAASN,EAClC,MAAuB,IAAZI,GAAwB,OAAPK,EAEtBT,EAAQK,qBACVC,EAAQG,GAAK,MAGfH,EAAQG,GAAKA,EAGf,OAAOH,CACT,s0FC1DMkB,EAAY,SAACC,EAAOC,GACtB,IAAQC,EAKIF,EALJE,cAAeC,EAKXH,EALWG,KAAMC,EAKjBJ,EALiBI,SAAUC,EAK3BL,EAL2BK,eAAgBC,EAK3CN,EAL2CM,WAAYC,EAKvDP,EALuDO,eAAgBC,EAKvER,EALuEQ,aAAcC,EAKrFT,EALqFS,eAAgBC,EAKrGV,EALqGU,cAAeC,EAKpHX,EALoHW,YAAaC,EAKjIZ,EALiIY,aAAcC,EAK/Ib,EAL+Ia,eAAgBC,EAK/Jd,EAL+Jc,YAAaC,EAK5Kf,EAL4Ke,UAK5Kf,EAHZgB,UAGYhB,EAHDiB,SAGCjB,EAHSl7B,KAGTk7B,EAHekB,WAGflB,EAH2BmB,iBAGpC,IAAAC,EAAIC,EAAKrB,EAAKsB,GAC4CC,EAAAC,EAAfC,EAAAC,UAAS,GAAM,GAAtDC,EAAeJ,EAAA,GAAEK,EAAkBL,EAAA,GACpCM,EAAuBJ,EAAAK,SACvBC,EAAqBN,EAAAK,OAAO,MAS5BE,EAAO,WACT,IAAIC,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGD,QAK1EE,EAAO,WACT,IAAID,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGC,QAK1EC,EAAQ,WACV,IAAIF,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGE,SAM1EC,EAAW,SAACC,GACd,IAAIJ,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGG,SAASC,IAOnFC,EAAc,SAACn2B,EAAOo2B,GACxB,IAAIN,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGK,YAAYn2B,EAAOo2B,IAO7FC,EAAc,SAACr2B,EAAOo2B,GACxB,IAAIN,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGO,YAAYr2B,EAAOo2B,IAM7FE,EAAe,SAACC,GAClB,IAAIT,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGQ,aAAaC,IAOvFC,EAAe,SAACC,EAAUC,GAC5B,IAAIZ,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGU,aAAaC,EAAUC,IAMjGC,EAAc,SAACC,GACjB,IAAId,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGa,YAAYC,IAMtFC,EAAc,SAACC,GAAe,IAAIhB,EAAI,OAA+C,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,OAAgB,EAASA,EAAGe,YAAYC,IAIrIC,EAAU,WACZ,IAAIjB,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGiB,UAG5ErB,EAAqB5W,aAAU3lB,GAW7B69B,EAAgB,WAAwB,IACtClB,EADemB,EAAgB/9B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,MAGnC,GAAK08B,EAAmB9W,QAAxB,CAIwC,QAAvCgX,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGiB,UAE5E,IAAMG,EAAMC,EAAAA,EAAAA,EAAA,GACLtD,GACAoD,GAAa,IAChBv2B,UAAWk1B,EAAmB9W,UAMlC,OAHA4W,EAAqB5W,QAAUsY,EAAA,QAAOJ,cAAcE,GACpDzB,IAAqBC,EAAqB5W,SAEnC,WACH,IAAIgX,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGiB,UAC5ErB,EAAqB5W,aAAU3lB,EAhBnC,GAsHJ,OAhGAm8B,EAAA+B,WAAU,WACN,IAAMC,EAAYN,IAElB,OAAO,kBAAoB,OAAdM,QAAoC,IAAdA,OAAuB,EAASA,GAAW,CAElF,GAAG,CAACvD,EAAeC,IAEnBsB,EAAA+B,WAAU,WACD3B,EAAqB5W,UAG1B4W,EAAqB5W,QAAQmV,WAAaA,EAC9C,GAAG,CAACA,IAEJqB,EAAA+B,WAAU,WACD3B,EAAqB5W,UAIrBoV,EAKA/2B,MAAMC,QAAQ82B,IAAoBA,EAAe38B,UAKlDm+B,EAAqB5W,QAAQyY,gBAAkBrD,EAAe,IAC9DwB,EAAqB5W,QAAQyY,gBAAkBrD,EAAe,MAC9DwB,EAAqB5W,QAAQyY,gBAAkBrD,EAAe,IAGlEwB,EAAqB5W,QAAQ0Y,WAAWtD,EAAe,GAAIA,EAAe,KAdtEwB,EAAqB5W,QAAQ2Y,eAAc,GAenD,GAAG,CAACvD,IASJoB,EAAA+B,WAAU,WACN,IAYMK,EAZmB,CACrB,CAAE/+B,KAAM,WAAYg/B,QAASxD,GAC7B,CAAEx7B,KAAM,eAAgBg/B,QAASvD,GACjC,CAAEz7B,KAAM,aAAcg/B,QAAStD,GAC/B,CAAE17B,KAAM,eAAgBg/B,QAASrD,GACjC,CAAE37B,KAAM,eAAgBg/B,QAASpD,GACjC,CAAE57B,KAAM,aAAcg/B,QAASnD,GAC/B,CAAE77B,KAAM,cAAeg/B,QAASlD,GAChC,CAAE97B,KAAM,gBAAiBg/B,QAASjD,GAClC,CAAE/7B,KAAM,YAAag/B,QAAShD,GAC9B,CAAEh8B,KAAM,UAAWg/B,QAAS/C,IAEGlB,QAAO,SAACkE,GAAQ,OAAyB,MAApBA,EAASD,WACjE,GAAKD,EAAUngC,OAAf,CAGA,IAAMsgC,EAAiBH,EAAUvS,KAMjC,SAACyS,GACG,IAAI9B,EAGJ,OAFwC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGgC,iBAAiBF,EAASj/B,KAAMi/B,EAASD,SAE9G,WACH,IAAI7B,EACoC,QAAvCA,EAAKJ,EAAqB5W,eAA4B,IAAPgX,GAAyBA,EAAGiC,oBAAoBH,EAASj/B,KAAMi/B,EAASD,SAEhI,IAEA,OAAO,WACHE,EAAehT,SAAQ,SAACmT,GAAU,OAAKA,OAlB3C,IAoBD,CACC7D,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IAMG,CACHqD,KAFSC,EAAA,QAAMC,cAAc,MAAKhB,EAAA,CAAIrD,MAAOA,EAAOsE,IAAKxC,GAAuBX,IAGhFY,KAAAA,EACAE,KAAAA,EACAC,MAAAA,EACAC,SAAAA,EACAI,YAAAA,EACAF,YAAAA,EACAG,aAAAA,EACAE,aAAAA,EACAG,YAAAA,EACAE,YAAAA,EACAE,QAAAA,EACAsB,sBAAuBzC,EACvBJ,gBAAAA,EACA8C,cAAe5C,EAAqB5W,QAE5C,EC3PO,SAASyZ,EAAuB73B,GACnC,IAAwB83B,EAAA93B,EAAU+3B,wBAA1BC,EAAGF,EAAHE,IAAKC,EAAMH,EAANG,OAGb,OAFgBjxB,OAAOkxB,YAAcF,IACzBhxB,OAAOkxB,YAAcD,EAErC,CACO,SAASE,EAA2Bn4B,EAAWo4B,EAASC,GAC3D,IAAqCC,EAAAt4B,EAAU+3B,wBAAvCC,EAAGM,EAAHN,IAGR,MAAO,CAAEt2B,GAFE02B,EADME,EAAJ1wB,MAAW0wB,EAAL3yB,MAGPqN,GADDqlB,EAAUL,GAFWM,EAANL,OAI9B,CACO,IAAMM,EAAuB,SAAmD7T,GAAA,IAAhD8T,EAAU9T,EAAV8T,WAAYZ,EAAalT,EAAbkT,cAAe/f,EAAI6M,EAAJ7M,KAAM4gB,EAAO/T,EAAP+T,QACpE7D,EAAA+B,WAAU,WACN,IAAM+B,EAAUF,EAAWpa,QAC3B,GAAKsa,GAAYd,GAAkBa,EAAQ5hC,OAA3C,CAGA+gC,EAAcvC,OACd,IAAMsD,EAAoB,WACtB,IAAIC,EAAkB,KAChBC,EAAgB,WAClB,IAAMC,EAAiBjB,EAAuBa,GAExCK,EAASN,EAAQO,MAAK,SAAAC,GAAA,IAAGC,EAAUD,EAAVC,WAAU,OAAOA,GAC5CJ,GAAkBI,EAAW,IAC7BJ,GAAkBI,EAAW,MAEjC,GAAKH,EAAL,CAGA,GAAoB,SAAhBA,EAAO7U,MACP6U,EAAOG,YACkB,IAAzBH,EAAOI,OAAOtiC,OAAc,CAE5B,IAAMuiC,EAAYL,EAAOI,OAAO,GAC5BvgC,KAAKyP,MAAOywB,EAAiBC,EAAOG,WAAW,KAC1CH,EAAOG,WAAW,GAAKH,EAAOG,WAAW,IAC1CH,EAAOI,OAAO,IAEtBvB,EAAcjC,YAAYyD,EAAYxB,EAAcyB,WAAa,GAAG,EACxE,CACoB,SAAhBN,EAAO7U,OAEiB,OAApB0U,GAQIA,IAAoBG,EAAOI,QAKtBvB,EAAc0B,YAXvB1B,EAAc9B,aAAaiD,EAAOI,QAAQ,GAC1CP,EAAkBG,EAAOI,QAiBb,SAAhBJ,EAAO7U,MAAmB0T,EAAc0B,WAExC1B,EAAcb,eAAc,GAC5Ba,EAAczC,QAEE,SAAhB4D,EAAO7U,MAEP0T,EAAcjC,YAAYoD,EAAOI,OAAO,GAAKvB,EAAcyB,WAAa,GAAG,EAzC/E,GA6CJ,OADAE,SAASnC,iBAAiB,SAAUyB,GAC7B,WACHU,SAASlC,oBAAoB,SAAUwB,KAGzCW,EAAoB,WACtB,IAAMC,EAAe,SAACC,EAAIC,GACtB,IAAIj4B,EAAIg4B,EACJ1mB,EAAI2mB,EAER,IAAW,IAAPj4B,IAAmB,IAAPsR,EAAU,CAEtB,IAAM6X,EAAMsN,EAA2BO,EAASh3B,EAAGsR,GAEnDtR,EAAImpB,EAAInpB,EACRsR,EAAI6X,EAAI7X,CACZ,CAEA,IAAM+lB,EAASN,EAAQO,MAAK,SAAkBY,GAAA,IAAf3uB,EAAQ2uB,EAAR3uB,SAC3B,OAAIA,GACAxO,MAAMC,QAAQuO,EAASvJ,IACvBjF,MAAMC,QAAQuO,EAAS+H,GACftR,GAAKuJ,EAASvJ,EAAE,IACpBA,GAAKuJ,EAASvJ,EAAE,IAChBsR,GAAK/H,EAAS+H,EAAE,IAChBA,GAAK/H,EAAS+H,EAAE,MAEpB/H,GACC/T,OAAO65B,MAAM9lB,EAASvJ,IACtBxK,OAAO65B,MAAM9lB,EAAS+H,KAChBtR,IAAMuJ,EAASvJ,GAAKsR,IAAM/H,EAAS+H,CAGlD,IAEA,GAAK+lB,EAAL,CAIA,GAAoB,SAAhBA,EAAO7U,MACP6U,EAAO9tB,UACPxO,MAAMC,QAAQq8B,EAAO9tB,SAASvJ,IAC9BjF,MAAMC,QAAQq8B,EAAO9tB,SAAS+H,IACL,IAAzB+lB,EAAOI,OAAOtiC,OAAc,CAE5B,IAAMgjC,GAAYn4B,EAAIq3B,EAAO9tB,SAASvJ,EAAE,KACnCq3B,EAAO9tB,SAASvJ,EAAE,GAAKq3B,EAAO9tB,SAASvJ,EAAE,IACxCo4B,GAAY9mB,EAAI+lB,EAAO9tB,SAAS+H,EAAE,KACnC+lB,EAAO9tB,SAAS+H,EAAE,GAAK+lB,EAAO9tB,SAAS+H,EAAE,IAC9C4kB,EAAc9B,aAAaiD,EAAOI,QAAQ,GAC1CvB,EAAcjC,YAAY/8B,KAAKyP,MAAOwxB,EAAWC,GAAY,GACxDf,EAAOI,OAAO,GAAKJ,EAAOI,OAAO,MAAM,EAChD,CACoB,SAAhBJ,EAAO7U,MACP0T,EAAc9B,aAAaiD,EAAOI,QAAQ,GAE1B,SAAhBJ,EAAO7U,OAEH0T,EAAc0B,UACd1B,EAAcb,eAAc,GAEhCa,EAAc9B,aAAaiD,EAAOI,SAElB,SAAhBJ,EAAO7U,MACP0T,EAAcjC,YAAYoD,EAAOI,OAAO,IAAI,EA3BhD,GA8BEY,EAAmB,SAACC,GACtBP,EAAaO,EAAGC,QAASD,EAAGE,UAE1BC,EAAkB,WACpBV,GAAc,GAAI,IAItB,OAFAf,EAAQtB,iBAAiB,YAAa2C,GACtCrB,EAAQtB,iBAAiB,WAAY+C,GAC9B,WACHzB,EAAQrB,oBAAoB,YAAa0C,GACzCrB,EAAQrB,oBAAoB,WAAY8C,KAGhD,OAAQtiB,GACJ,IAAK,SACD,OAAO8gB,IACX,IAAK,SACD,OAAOa,IA7If,CAgJJ,GAAG,CAAC3hB,EAAM+f,GACd,EACMwC,EAAyB,SAAmCC,GAAA,IAAhC5B,EAAO4B,EAAP5B,QAAS5gB,EAAIwiB,EAAJxiB,KAAMyiB,EAASD,EAATC,UACrC1C,EAA+C0C,EAA/C1C,cAAeL,EAAgC+C,EAAhC/C,KAAMI,EAA0B2C,EAA1B3C,sBAO7B,OANAY,EAAqB,CACjBE,QAAAA,EACAb,cAAAA,EACA/f,KAAAA,EACA2gB,WAAYb,IAETJ,CACX,8BC3KMgD,EAAS,SAACpH,GACZ,IAAIiC,EAAIoF,EAAIC,EACJrH,EAAyCD,EAAzCC,MAAOsH,EAAkCvH,EAAlCuH,cAAkBC,EAAWnG,EAAKrB,EAAKyH,GAItDC,EAA+L3H,EAAUyH,EAAavH,GAA9MmE,EAAIsD,EAAJtD,KAAMpC,EAAI0F,EAAJ1F,KAAME,EAAIwF,EAAJxF,KAAMC,EAAKuF,EAALvF,MAAOC,EAAQsF,EAARtF,SAAUI,EAAWkF,EAAXlF,YAAaF,EAAWoF,EAAXpF,YAAaG,EAAYiF,EAAZjF,aAAcE,EAAY+E,EAAZ/E,aAAcG,EAAW4E,EAAX5E,YAAaE,EAAW0E,EAAX1E,YAAaE,EAAOwE,EAAPxE,QAASsB,EAAqBkD,EAArBlD,sBAAuB7C,EAAe+F,EAAf/F,gBAAiB8C,EAAaiD,EAAbjD,cAyB5K,OArBAhD,EAAA+B,WAAU,WACFxD,EAAMgB,YACNhB,EAAMgB,UAAU/V,QAAU,CACtB+W,KAAAA,EACAE,KAAAA,EACAC,MAAAA,EACAC,SAAAA,EACAE,YAAAA,EACAE,YAAAA,EACAC,aAAAA,EACAE,aAAAA,EACAG,YAAAA,EACAE,YAAAA,EACAE,QAAAA,EACAsB,sBAAAA,EACA7C,gBAAAA,EACA8C,cAAAA,MAIT,CAA4B,QAA1BxC,EAAKjC,EAAMgB,iBAA8B,IAAPiB,OAAgB,EAASA,EAAGhX,UAC5Dgc,EAAuB,CAC1BE,UAAW,CACP/C,KAAAA,EACApC,KAAAA,EACAE,KAAAA,EACAC,MAAAA,EACAC,SAAAA,EACAI,YAAAA,EACAF,YAAAA,EACAG,aAAAA,EACAE,aAAAA,EACAG,YAAAA,EACAE,YAAAA,EACAE,QAAAA,EACAsB,sBAAAA,EACA7C,gBAAAA,EACA8C,cAAAA,GAEJa,QAAwG,QAA9F+B,EAAuB,OAAlBE,QAA4C,IAAlBA,OAA2B,EAASA,EAAcjC,eAA4B,IAAP+B,EAAgBA,EAAK,GACrI3iB,KAAkG,QAA3F4iB,EAAuB,OAAlBC,QAA4C,IAAlBA,OAA2B,EAASA,EAAc7iB,YAAyB,IAAP4iB,EAAgBA,EAAK,UAEvI,wQCvDuC,IAAkBK,QAAnC,qBAAdC,YAAiDD,QAI/C,WAAc,aAEtB,IAAIE,MAAQ,6BACRC,aAAe,GACfC,eAAgB,EAChBC,qBAAuB,OAEvBC,aAAe,SAAsBC,GACvCH,gBAAkBG,CACpB,EAEIC,aAAe,WACjB,OAAOJ,aACT,EAEIK,gBAAkB,SAAyBj8B,GAC7C27B,aAAe37B,CACjB,EAEIk8B,gBAAkB,WACpB,OAAOP,YACT,EAEA,SAASQ,UAAUvX,GAEjB,OAAOqV,SAAS9B,cAAcvT,EAChC,CAEA,SAASwX,gBAAgBC,EAASC,GAChC,IAAI3/B,EAEA4/B,EADAv3B,EAAMq3B,EAAQ9kC,OAGlB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGxB,IAAK,IAAI6/B,KAFTD,EAAkBF,EAAQ1/B,GAAGrE,UAGvBF,OAAOE,UAAU2G,eAAeC,KAAKq9B,EAAiBC,KAAOF,EAAYhkC,UAAUkkC,GAAQD,EAAgBC,GAGrH,CAEA,SAASC,cAAcC,EAAQC,GAC7B,OAAOvkC,OAAO0nB,yBAAyB4c,EAAQC,EACjD,CAEA,SAASC,oBAAoBtkC,GAC3B,SAASukC,IAAiB,CAG1B,OADAA,EAAcvkC,UAAYA,EACnBukC,CACT,CAGA,IAAIC,uBAAyB,WAC3B,SAASC,EAAgBC,GACvB51B,KAAK61B,OAAS,GACd71B,KAAK41B,aAAeA,EACpB51B,KAAK81B,QAAU,EACf91B,KAAK+1B,UAAW,CAClB,CAoFA,OAlFAJ,EAAgBzkC,UAAY,CAC1B8kC,SAAU,SAAkBC,GAC1Bj2B,KAAK61B,OAAOrgC,KAAKygC,EACnB,EACArH,MAAO,WACL,IAAIr5B,EACAqI,EAAMoC,KAAK61B,OAAO1lC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK61B,OAAOtgC,GAAGq5B,OAEnB,EACAsH,OAAQ,WACN,IAAI3gC,EACAqI,EAAMoC,KAAK61B,OAAO1lC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK61B,OAAOtgC,GAAG2gC,QAEnB,EACAC,QAAS,SAAiBC,GACxB,IAAI7gC,EACAqI,EAAMoC,KAAK61B,OAAO1lC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK61B,OAAOtgC,GAAG4gC,QAAQC,EAE3B,EACAC,YAAa,SAAqBC,GAChC,OAAIt2B,KAAK41B,aACA51B,KAAK41B,aAAaU,GAGvBh2B,OAAOi2B,KACF,IAAIj2B,OAAOi2B,KAAK,CACrBlkC,IAAK,CAACikC,KAIH,CACLE,WAAW,EACX/H,KAAM,WACJzuB,KAAKw2B,WAAY,CACnB,EACAC,KAAM,WACJz2B,KAAKw2B,WAAY,CACnB,EACAE,QAAS,WAAoB,EAC7BC,KAAM,WAAiB,EACvBC,UAAW,WAAsB,EAErC,EACAC,gBAAiB,SAAyBjB,GACxC51B,KAAK41B,aAAeA,CACtB,EACAgB,UAAW,SAAmBh+B,GAC5BoH,KAAK81B,QAAUl9B,EAEfoH,KAAK82B,eACP,EACAC,KAAM,WACJ/2B,KAAK+1B,UAAW,EAEhB/1B,KAAK82B,eACP,EACAE,OAAQ,WACNh3B,KAAK+1B,UAAW,EAEhB/1B,KAAK82B,eACP,EACAG,UAAW,WACT,OAAOj3B,KAAK81B,OACd,EACAgB,cAAe,WACb,IAAIvhC,EACAqI,EAAMoC,KAAK61B,OAAO1lC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK61B,OAAOtgC,GAAG2hC,OAAOl3B,KAAK81B,SAAW91B,KAAK+1B,SAAW,EAAI,GAE9D,GAEK,WACL,OAAO,IAAIJ,CACb,CACF,CA7F6B,GA+FzBwB,iBAAmB,WACrB,SAASC,EAAmB5Z,EAAM5f,GAChC,IAEIhF,EAFArD,EAAI,EACJiI,EAAM,GAGV,OAAQggB,GACN,IAAK,QACL,IAAK,SACH5kB,EAAQ,EACR,MAEF,QACEA,EAAQ,IAIZ,IAAKrD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBiI,EAAIhI,KAAKoD,GAGX,OAAO4E,CACT,CAkBA,MAAiC,oBAAtB65B,mBAA4D,oBAAjBC,aAhBtD,SAAiC9Z,EAAM5f,GACrC,MAAa,YAAT4f,EACK,IAAI8Z,aAAa15B,GAGb,UAAT4f,EACK,IAAI+Z,WAAW35B,GAGX,WAAT4f,EACK,IAAI6Z,kBAAkBz5B,GAGxBw5B,EAAmB5Z,EAAM5f,EAClC,EAMOw5B,CACT,CA7CuB,GA+CvB,SAASI,iBAAiB55B,GACxB,OAAO7H,MAAMmmB,MAAM,KAAM,CACvB/rB,OAAQyN,GAEZ,CAEA,SAAS65B,UAAU7Z,GAAuV,OAA1O6Z,UAArD,oBAAXh1B,QAAoD,kBAApBA,OAAOi1B,SAAqC,SAAiB9Z,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXnb,QAAyBmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAY6Z,UAAU7Z,EAAM,CACjY,IAAI+Z,iBAAkB,EAClBC,kBAAoB,KACpBC,sBAAwB,KACxBC,WAAa,GACbC,SAAW,iCAAiCC,KAAK3D,UAAU4D,WAC3DC,oBAAqB,EACrBC,MAAQjmC,KAAKmB,IACb+kC,OAASlmC,KAAKojB,KACd+iB,QAAUnmC,KAAKC,MACfmmC,MAAQpmC,KAAK+O,IACbs3B,MAAQrmC,KAAK6O,IACby3B,OAAS,CAAC,EAYd,SAASC,qBACP,MAAO,CAAC,CACV,EAZA,WACE,IACIljC,EADAmjC,EAAgB,CAAC,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,QAAS,MAAO,OAAQ,MAAO,QAAS,SAAU,QAAS,OAAQ,MAAO,QAAS,OAAQ,QAAS,MAAO,MAAO,MAAO,SAAU,QAAS,OAAQ,MAAO,OAAQ,OAAQ,MAAO,OAAQ,QAAS,IAAK,OAAQ,MAAO,SAAU,QAAS,KAAM,UAAW,SAExW96B,EAAM86B,EAAcvoC,OAExB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBijC,OAAOE,EAAcnjC,IAAMrD,KAAKwmC,EAAcnjC,GAEjD,CARD,GAcAijC,OAAOG,OAASzmC,KAAKymC,OAErBH,OAAOvzB,IAAM,SAAU7F,GAGrB,GAAe,WAFFq4B,UAAUr4B,IAEIA,EAAIjP,OAAQ,CACrC,IACIoF,EADAqjC,EAASpB,iBAAiBp4B,EAAIjP,QAE9ByN,EAAMwB,EAAIjP,OAEd,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBqjC,EAAOrjC,GAAKrD,KAAK+S,IAAI7F,EAAI7J,IAG3B,OAAOqjC,CACT,CAEA,OAAO1mC,KAAK+S,IAAI7F,EAClB,EAEA,IAAIy5B,qBAAuB,IACvBC,UAAY5mC,KAAKqb,GAAK,IACtBwrB,YAAc,MAElB,SAASC,YAAYrE,GACnBuD,qBAAuBvD,CACzB,CAEA,SAASsE,MAAMrgC,GACb,OAAIs/B,mBACKhmC,KAAKuc,MAAM7V,GAGbA,CACT,CAEA,SAASsgC,SAASC,GAChBA,EAAQzM,MAAMnoB,SAAW,WACzB40B,EAAQzM,MAAM4E,IAAM,EACpB6H,EAAQzM,MAAMxrB,KAAO,EACrBi4B,EAAQzM,MAAM0M,QAAU,QACxBD,EAAQzM,MAAM2M,gBAAkB,MAChCF,EAAQzM,MAAM4M,sBAAwB,MACtCH,EAAQzM,MAAM6M,mBAAqB,UACnCJ,EAAQzM,MAAM8M,yBAA2B,UACzCL,EAAQzM,MAAM+M,eAAiB,cAC/BN,EAAQzM,MAAMgN,qBAAuB,cACrCP,EAAQzM,MAAMiN,kBAAoB,aACpC,CAEA,SAASC,kBAAkBpc,EAAMqc,EAAaC,EAAWC,GACvD/5B,KAAKwd,KAAOA,EACZxd,KAAK65B,YAAcA,EACnB75B,KAAK85B,UAAYA,EACjB95B,KAAKmvB,UAAY4K,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASC,gBAAgBxc,EAAMuc,GAC7B/5B,KAAKwd,KAAOA,EACZxd,KAAKmvB,UAAY4K,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASE,oBAAoBzc,EAAM0c,EAAYC,EAAaJ,GAC1D/5B,KAAKwd,KAAOA,EACZxd,KAAKm6B,YAAcA,EACnBn6B,KAAKk6B,WAAaA,EAClBl6B,KAAKmvB,UAAY4K,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASK,oBAAoB5c,EAAMmV,EAAY0H,GAC7Cr6B,KAAKwd,KAAOA,EACZxd,KAAK2yB,WAAaA,EAClB3yB,KAAKq6B,YAAcA,CACrB,CAEA,SAASC,eAAe9c,EAAMlF,GAC5BtY,KAAKwd,KAAOA,EACZxd,KAAKsY,OAASA,CAChB,CAEA,SAASiiB,wBAAwBC,EAAaX,GAC5C75B,KAAKwd,KAAO,mBACZxd,KAAKw6B,YAAcA,EACnBx6B,KAAK65B,YAAcA,CACrB,CAEA,SAASY,mBAAmBD,GAC1Bx6B,KAAKwd,KAAO,cACZxd,KAAKw6B,YAAcA,CACrB,CAEA,SAASE,4BAA4Bld,EAAMgd,GACzCx6B,KAAKwd,KAAOA,EACZxd,KAAKw6B,YAAcA,CACrB,CAEA,IAAIG,gBAAkB,WACpB,IAAIC,EAAS,EACb,OAAO,WAEL,OAAO9C,WAAa,qBADpB8C,GAAU,EAEZ,CACF,CANsB,GAQtB,SAASC,SAAS1qB,EAAG/C,EAAGzX,GACtB,IAAIiL,EACA2R,EACA5iB,EACA4F,EACAk1B,EACA/c,EACAiC,EACAhL,EAOJ,OAJA+I,EAAI/X,GAAK,EAAIyX,GACbuC,EAAIha,GAAK,GAFT80B,EAAQ,EAAJta,GADJ5a,EAAIrD,KAAKC,MAAU,EAAJge,KAGE/C,GACjBzI,EAAIhP,GAAK,GAAK,EAAI80B,GAAKrd,GAEf7X,EAAI,GACV,KAAK,EACHqL,EAAIjL,EACJ4c,EAAI5N,EACJhV,EAAI+d,EACJ,MAEF,KAAK,EACH9M,EAAI+O,EACJ4C,EAAI5c,EACJhG,EAAI+d,EACJ,MAEF,KAAK,EACH9M,EAAI8M,EACJ6E,EAAI5c,EACJhG,EAAIgV,EACJ,MAEF,KAAK,EACH/D,EAAI8M,EACJ6E,EAAI5C,EACJhgB,EAAIgG,EACJ,MAEF,KAAK,EACHiL,EAAI+D,EACJ4N,EAAI7E,EACJ/d,EAAIgG,EACJ,MAEF,KAAK,EACHiL,EAAIjL,EACJ4c,EAAI7E,EACJ/d,EAAIggB,EAOR,MAAO,CAAC/O,EAAG2R,EAAG5iB,EAChB,CAEA,SAASmrC,SAASl6B,EAAG2R,EAAG5iB,GACtB,IAGIwgB,EAHAlP,EAAM/O,KAAK+O,IAAIL,EAAG2R,EAAG5iB,GACrBoR,EAAM7O,KAAK6O,IAAIH,EAAG2R,EAAG5iB,GACrB8oB,EAAIxX,EAAMF,EAEVqM,EAAY,IAARnM,EAAY,EAAIwX,EAAIxX,EACxBtL,EAAIsL,EAAM,IAEd,OAAQA,GACN,KAAKF,EACHoP,EAAI,EACJ,MAEF,KAAKvP,EACHuP,EAAIoC,EAAI5iB,EAAI8oB,GAAKlG,EAAI5iB,EAAI,EAAI,GAC7BwgB,GAAK,EAAIsI,EACT,MAEF,KAAKlG,EACHpC,EAAIxgB,EAAIiR,EAAQ,EAAJ6X,EACZtI,GAAK,EAAIsI,EACT,MAEF,KAAK9oB,EACHwgB,EAAIvP,EAAI2R,EAAQ,EAAJkG,EACZtI,GAAK,EAAIsI,EAOb,MAAO,CAACtI,EAAG/C,EAAGzX,EAChB,CAEA,SAASolC,mBAAmBC,EAAOpqC,GACjC,IAAIqqC,EAAMH,SAAoB,IAAXE,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAC,EAAI,IAAMrqC,EAENqqC,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,IAAM,IACnBA,EAAI,GAAK,GAGJJ,SAASI,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,SAASC,mBAAmBF,EAAOpqC,GACjC,IAAIqqC,EAAMH,SAAoB,IAAXE,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAC,EAAI,IAAMrqC,EAENqqC,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,GAAK,IAClBA,EAAI,GAAK,GAGJJ,SAASI,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,SAASE,YAAYH,EAAOpqC,GAC1B,IAAIqqC,EAAMH,SAAoB,IAAXE,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAC,EAAI,IAAMrqC,EAAS,IAEfqqC,EAAI,GAAK,EACXA,EAAI,IAAM,EACDA,EAAI,GAAK,IAClBA,EAAI,IAAM,GAGLJ,SAASI,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,IAAIG,SAAW,WACb,IACI7lC,EACAwJ,EAFAs8B,EAAW,GAIf,IAAK9lC,EAAI,EAAGA,EAAI,IAAKA,GAAK,EACxBwJ,EAAMxJ,EAAE2E,SAAS,IACjBmhC,EAAS9lC,GAAoB,IAAfwJ,EAAI5O,OAAe,IAAM4O,EAAMA,EAG/C,OAAO,SAAU6B,EAAG2R,EAAG5iB,GAarB,OAZIiR,EAAI,IACNA,EAAI,GAGF2R,EAAI,IACNA,EAAI,GAGF5iB,EAAI,IACNA,EAAI,GAGC,IAAM0rC,EAASz6B,GAAKy6B,EAAS9oB,GAAK8oB,EAAS1rC,EACpD,CACF,CAzBe,GA2BX2rC,mBAAqB,SAA4B3G,GACnDgD,kBAAoBhD,CACtB,EAEI4G,mBAAqB,WACvB,OAAO5D,eACT,EAEI6D,qBAAuB,SAA8B5iC,GACvDg/B,kBAAoBh/B,CACtB,EAEI6iC,qBAAuB,WACzB,OAAO7D,iBACT,EAEI8D,wBAA0B,SAAiC9iC,GAC7Di/B,sBAAwBj/B,CAC1B,EAEI+iC,wBAA0B,WAC5B,OAAO9D,qBACT,EAEI+D,wBAA0B,SAAiChjC,GAC7DigC,qBAAuBjgC,CACzB,EAEIijC,wBAA0B,WAC5B,OAAOhD,oBACT,EAEIiD,YAAc,SAAqBljC,GACrCk/B,WAAal/B,CACf,EAEImjC,YAAc,WAChB,OAAOjE,UACT,EAEA,SAASkE,SAASxe,GAEhB,OAAOqV,SAASoJ,gBAAgB3H,MAAO9W,EACzC,CAEA,SAAS0e,UAAUte,GAAuV,OAA1Ose,UAArD,oBAAXz5B,QAAoD,kBAApBA,OAAOi1B,SAAqC,SAAiB9Z,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXnb,QAAyBmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAYse,UAAUte,EAAM,CAEjY,IAAIue,YAAc,WAChB,IAEIC,EACAC,EAHAC,EAAa,EACbC,EAAY,GAGZC,EAAc,CAChBC,UAAW,WAAsB,EACjCC,YAAa,SAAqBC,GAChCP,EAAS,CACPlc,KAAMyc,GAEV,GAEEC,EAAc,CAChBF,YAAa,SAAqBxc,GAChCsc,EAAYC,UAAU,CACpBvc,KAAMA,GAEV,GAiBF,SAAS2c,IACFR,IACHA,EAhBJ,SAAsB5gB,GACpB,GAAInb,OAAOw8B,QAAUx8B,OAAOxG,MAAQ86B,eAAgB,CAClD,IAAImI,EAAO,IAAIjjC,KAAK,CAAC,4CAA6C2hB,EAAGvhB,YAAa,CAChFsjB,KAAM,oBAGJwf,EAAMC,IAAIC,gBAAgBH,GAC9B,OAAO,IAAID,OAAOE,EACpB,CAGA,OADAZ,EAAW3gB,EACJ+gB,CACT,CAIqBW,EAAa,SAAqBhnC,GAknBjD,GA3EKymC,EAAYT,cACfS,EAAYT,YAviBd,WACE,SAASiB,EAAeC,EAAQC,GAC9B,IAAIC,EACAhoC,EAEAwF,EACAyiC,EACA15B,EACA25B,EAJA7/B,EAAMy/B,EAAOltC,OAMjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGxB,GAAI,OAFJgoC,EAAYF,EAAO9nC,MAEOgoC,EAAUG,UAAW,CAG7C,GAFAH,EAAUG,WAAY,EAElBH,EAAUI,QAAS,CACrB,IAAIC,EAAYL,EAAUM,gBAG1B,IAFAL,EAAOI,EAAUztC,OAEZ4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB,GAAI6iC,EAAU7iC,GAAG+iC,GAAGh6B,EAAEvO,EACpBwoC,EAA6BH,EAAU7iC,GAAG+iC,GAAGh6B,QAI7C,IAFA25B,EAAOG,EAAU7iC,GAAG+iC,GAAGh6B,EAAE3T,OAEpB2T,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACrB85B,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAGsJ,GACvB2wB,EAA6BH,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAGsJ,EAAE,IAGlDwwB,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAG3N,GACvB4nC,EAA6BH,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAG3N,EAAE,GAK9D,CAEqB,IAAjBonC,EAAUS,IACZT,EAAUF,OAASY,EAAeV,EAAUW,MAAOZ,GACnDF,EAAeG,EAAUF,OAAQC,IACP,IAAjBC,EAAUS,GACnBG,EAAeZ,EAAUa,QACC,IAAjBb,EAAUS,IACnBK,EAAad,EAEjB,CAEJ,CA4CA,SAASU,EAAexS,EAAI6R,GAC1B,IAAIgB,EAhBN,SAAkB7S,EAAI6R,GAIpB,IAHA,IAAI/nC,EAAI,EACJqI,EAAM0/B,EAAMntC,OAEToF,EAAIqI,GAAK,CACd,GAAI0/B,EAAM/nC,GAAGk2B,KAAOA,EAClB,OAAO6R,EAAM/nC,GAGfA,GAAK,CACP,CAEA,OAAO,IACT,CAGagpC,CAAS9S,EAAI6R,GAExB,OAAIgB,EACGA,EAAKjB,OAAOmB,OAKV1S,KAAKK,MAAML,KAAKC,UAAUuS,EAAKjB,UAJpCiB,EAAKjB,OAAOmB,QAAS,EACdF,EAAKjB,QAMT,IACT,CAEA,SAASc,EAAe3gC,GACtB,IAAIjI,EAEAwF,EACAyiC,EAEJ,IAAKjoC,EAJKiI,EAAIrN,OAIC,EAAGoF,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdiI,EAAIjI,GAAGyoC,GACT,GAAIxgC,EAAIjI,GAAGkpC,GAAG36B,EAAEvO,EACdwoC,EAA6BvgC,EAAIjI,GAAGkpC,GAAG36B,QAIvC,IAFA05B,EAAOhgC,EAAIjI,GAAGkpC,GAAG36B,EAAE3T,OAEd4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACrByC,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAGqS,GACjB2wB,EAA6BvgC,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAGqS,EAAE,IAG5C5P,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAG5E,GACjB4nC,EAA6BvgC,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAG5E,EAAE,QAI7B,OAAdqH,EAAIjI,GAAGyoC,IAChBG,EAAe3gC,EAAIjI,GAAGmpC,GAG5B,CAEA,SAASX,EAA6BpB,GACpC,IAAIpnC,EACAqI,EAAM++B,EAAKpnC,EAAEpF,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBonC,EAAKpnC,EAAEA,GAAG,IAAMonC,EAAKhnC,EAAEJ,GAAG,GAC1BonC,EAAKpnC,EAAEA,GAAG,IAAMonC,EAAKhnC,EAAEJ,GAAG,GAC1BonC,EAAK11B,EAAE1R,GAAG,IAAMonC,EAAKhnC,EAAEJ,GAAG,GAC1BonC,EAAK11B,EAAE1R,GAAG,IAAMonC,EAAKhnC,EAAEJ,GAAG,EAE9B,CAEA,SAASopC,EAAaC,EAASC,GAC7B,IAAIC,EAAcD,EAAoBA,EAAkBjrC,MAAM,KAAO,CAAC,IAAK,IAAK,KAEhF,OAAIgrC,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,MAIzBA,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,MAIzBA,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,KAItB,MACT,CAEA,IAAIG,EAAY,WACd,IAAIC,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASC,EAAgBC,GACvB,IAAIC,EAAeD,EAAUv6B,EAAE8T,EAC/BymB,EAAUv6B,EAAE8T,EAAI,CACd3U,EAAG,CAAC,CACFsJ,EAAG+xB,EACHx6B,EAAG,IAGT,CAEA,SAASy6B,EAAc/B,GACrB,IAAI9nC,EACAqI,EAAMy/B,EAAOltC,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACH,IAAjB8nC,EAAO9nC,GAAGyoC,IACZiB,EAAgB5B,EAAO9nC,GAG7B,CAEA,OAAO,SAAUo3B,GACf,GAAIgS,EAAaK,EAAgBrS,EAAch3B,KAC7CypC,EAAczS,EAAc0Q,QAExB1Q,EAAc0S,QAAQ,CACxB,IAAI9pC,EACAqI,EAAM+uB,EAAc0S,OAAOlvC,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpBo3B,EAAc0S,OAAO9pC,GAAG8nC,QAC1B+B,EAAczS,EAAc0S,OAAO9pC,GAAG8nC,OAG5C,CAEJ,CACF,CAxCgB,GA0CZiC,EAAa,WACf,IAAIN,EAAiB,CAAC,EAAG,EAAG,IAC5B,OAAO,SAAUrS,GACf,GAAIA,EAAc4S,QAAUZ,EAAaK,EAAgBrS,EAAch3B,GAAI,CACzE,IAAIJ,EACAqI,EAAM+uB,EAAc4S,MAAMpvC,OAE9B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAC3B,IAAIiqC,EAAW7S,EAAc4S,MAAMhqC,GAE/BiqC,EAAStf,MAAQsf,EAAStf,KAAKke,SACjCD,EAAeqB,EAAStf,KAAKke,QAC7BoB,EAAStf,KAAKuf,GAAK,EACnBD,EAAStf,KAAKwf,GAAK,MACnBF,EAAStf,KAAKyf,GAAK,EACnBH,EAAStf,KAAK0f,GAAK,EACnBJ,EAAStf,KAAKue,GAAK,CACjB/wB,EAAG,CACD5J,EAAG,CAAC,EAAG,GACPD,EAAG,GAELuJ,EAAG,CACDtJ,EAAG,CAAC,IAAK,KACTD,EAAG,GAELA,EAAG,CACDC,EAAG,CAAC,EAAG,GACPD,EAAG,GAELjD,EAAG,CACDkD,EAAG,EACHD,EAAG,GAELoD,EAAG,CACDnD,EAAG,IACHD,EAAG,IAIF8oB,EAAc4S,MAAMhqC,GAAGoP,IAC1B66B,EAAStf,KAAKke,OAAO5oC,KAAK,CACxBwoC,GAAI,OAENwB,EAAStf,KAAKke,OAAO,GAAGM,GAAGlpC,KAAK,CAC9BkY,EAAG,CACD5J,EAAG,CAAC,EAAG,GACPD,EAAG,GAELuJ,EAAG,CACDtJ,EAAG,CAAC,IAAK,KACTD,EAAG,GAELA,EAAG,CACDC,EAAG,CAAC,EAAG,GACPD,EAAG,GAELjD,EAAG,CACDkD,EAAG,EACHD,EAAG,GAELoD,EAAG,CACDnD,EAAG,IACHD,EAAG,GAELg8B,GAAI,CACF/7B,EAAG,EACHD,EAAG,GAELi8B,GAAI,CACFh8B,EAAG,EACHD,EAAG,GAELm6B,GAAI,QAIZ,CACF,CACF,CACF,CA/EiB,GAiFb+B,EAAsB,WACxB,IAAIf,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASC,EAAgBC,GACvB,IAAIc,EAAWd,EAAUv6B,EAAE+I,EAED,kBAAfsyB,EAASn8B,IAClBm8B,EAASn8B,EAAI,CACXA,EAAG,EACHC,EAAGk8B,EAASn8B,IAIU,kBAAfm8B,EAAStyB,IAClBsyB,EAAStyB,EAAI,CACX7J,EAAG,EACHC,EAAGk8B,EAAStyB,IAIU,kBAAfsyB,EAASp/B,IAClBo/B,EAASp/B,EAAI,CACXiD,EAAG,EACHC,EAAGk8B,EAASp/B,GAGlB,CAEA,SAASw+B,EAAc/B,GACrB,IAAI9nC,EACAqI,EAAMy/B,EAAOltC,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACH,IAAjB8nC,EAAO9nC,GAAGyoC,IACZiB,EAAgB5B,EAAO9nC,GAG7B,CAEA,OAAO,SAAUo3B,GACf,GAAIgS,EAAaK,EAAgBrS,EAAch3B,KAC7CypC,EAAczS,EAAc0Q,QAExB1Q,EAAc0S,QAAQ,CACxB,IAAI9pC,EACAqI,EAAM+uB,EAAc0S,OAAOlvC,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpBo3B,EAAc0S,OAAO9pC,GAAG8nC,QAC1B+B,EAAczS,EAAc0S,OAAO9pC,GAAG8nC,OAG5C,CAEJ,CACF,CAvD0B,GAyDtB4C,EAAc,WAChB,IAAIjB,EAAiB,CAAC,EAAG,EAAG,GAE5B,SAASkB,EAAc9B,GACrB,IAAI7oC,EAEAwF,EACAyiC,EAFA5/B,EAAMwgC,EAAOjuC,OAIjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAqB,OAAjB6oC,EAAO7oC,GAAGyoC,GACZkC,EAAc9B,EAAO7oC,GAAGmpC,SACnB,GAAqB,OAAjBN,EAAO7oC,GAAGyoC,IAAgC,OAAjBI,EAAO7oC,GAAGyoC,GAC5C,GAAII,EAAO7oC,GAAGkL,EAAEqD,GAAKs6B,EAAO7oC,GAAGkL,EAAEqD,EAAE,GAAGvO,EAGpC,IAFAioC,EAAOY,EAAO7oC,GAAGkL,EAAEqD,EAAE3T,OAEhB4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACrBqjC,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAGqS,IACnBgxB,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAGqS,EAAE,IAAM,IACzBgxB,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAGqS,EAAE,IAAM,IACzBgxB,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAGqS,EAAE,IAAM,IACzBgxB,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAGqS,EAAE,IAAM,KAGvBgxB,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAG5E,IACnBioC,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAG5E,EAAE,IAAM,IACzBioC,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAG5E,EAAE,IAAM,IACzBioC,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAG5E,EAAE,IAAM,IACzBioC,EAAO7oC,GAAGkL,EAAEqD,EAAE/I,GAAG5E,EAAE,IAAM,UAI7BioC,EAAO7oC,GAAGkL,EAAEqD,EAAE,IAAM,IACpBs6B,EAAO7oC,GAAGkL,EAAEqD,EAAE,IAAM,IACpBs6B,EAAO7oC,GAAGkL,EAAEqD,EAAE,IAAM,IACpBs6B,EAAO7oC,GAAGkL,EAAEqD,EAAE,IAAM,GAI5B,CAEA,SAASs7B,EAAc/B,GACrB,IAAI9nC,EACAqI,EAAMy/B,EAAOltC,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACH,IAAjB8nC,EAAO9nC,GAAGyoC,IACZkC,EAAc7C,EAAO9nC,GAAG6oC,OAG9B,CAEA,OAAO,SAAUzR,GACf,GAAIgS,EAAaK,EAAgBrS,EAAch3B,KAC7CypC,EAAczS,EAAc0Q,QAExB1Q,EAAc0S,QAAQ,CACxB,IAAI9pC,EACAqI,EAAM+uB,EAAc0S,OAAOlvC,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpBo3B,EAAc0S,OAAO9pC,GAAG8nC,QAC1B+B,EAAczS,EAAc0S,OAAO9pC,GAAG8nC,OAG5C,CAEJ,CACF,CApEkB,GAsEd8C,EAAc,WAChB,IAAInB,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASoB,EAAsB5iC,GAC7B,IAAIjI,EAEAwF,EACAyiC,EAEJ,IAAKjoC,EAJKiI,EAAIrN,OAIC,EAAGoF,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdiI,EAAIjI,GAAGyoC,GACT,GAAIxgC,EAAIjI,GAAGkpC,GAAG36B,EAAEvO,EACdiI,EAAIjI,GAAGkpC,GAAG36B,EAAErD,EAAIjD,EAAIjI,GAAG8qC,YAIvB,IAFA7C,EAAOhgC,EAAIjI,GAAGkpC,GAAG36B,EAAE3T,OAEd4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACrByC,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAGqS,IACjB5P,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAGqS,EAAE,GAAG3M,EAAIjD,EAAIjI,GAAG8qC,QAG7B7iC,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAG5E,IACjBqH,EAAIjI,GAAGkpC,GAAG36B,EAAE/I,GAAG5E,EAAE,GAAGsK,EAAIjD,EAAIjI,GAAG8qC,YAId,OAAd7iC,EAAIjI,GAAGyoC,IAChBoC,EAAsB5iC,EAAIjI,GAAGmpC,GAGnC,CAEA,SAASU,EAAc/B,GACrB,IAAIE,EACAhoC,EAEAwF,EACAyiC,EACA15B,EACA25B,EAJA7/B,EAAMy/B,EAAOltC,OAMjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAG3B,IAFAgoC,EAAYF,EAAO9nC,IAELooC,QAAS,CACrB,IAAIC,EAAYL,EAAUM,gBAG1B,IAFAL,EAAOI,EAAUztC,OAEZ4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB,GAAI6iC,EAAU7iC,GAAG+iC,GAAGh6B,EAAEvO,EACpBqoC,EAAU7iC,GAAG+iC,GAAGh6B,EAAErD,EAAIm9B,EAAU7iC,GAAGulC,QAInC,IAFA7C,EAAOG,EAAU7iC,GAAG+iC,GAAGh6B,EAAE3T,OAEpB2T,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACrB85B,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAGsJ,IACvBwwB,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAGsJ,EAAE,GAAG3M,EAAIm9B,EAAU7iC,GAAGulC,IAGzC1C,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAG3N,IACvBynC,EAAU7iC,GAAG+iC,GAAGh6B,EAAEA,GAAG3N,EAAE,GAAGsK,EAAIm9B,EAAU7iC,GAAGulC,GAKrD,CAEqB,IAAjB/C,EAAUS,IACZoC,EAAsB7C,EAAUa,OAEpC,CACF,CAEA,OAAO,SAAUzR,GACf,GAAIgS,EAAaK,EAAgBrS,EAAch3B,KAC7CypC,EAAczS,EAAc0Q,QAExB1Q,EAAc0S,QAAQ,CACxB,IAAI9pC,EACAqI,EAAM+uB,EAAc0S,OAAOlvC,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpBo3B,EAAc0S,OAAO9pC,GAAG8nC,QAC1B+B,EAAczS,EAAc0S,OAAO9pC,GAAG8nC,OAG5C,CAEJ,CACF,CAzFkB,GA0GlB,SAASgB,EAAane,GACI,IAApBA,EAAKvb,EAAEd,EAAE1T,QAAyB+vB,EAAKvb,EAAE+I,CAE/C,CAEA,IAAI6yB,EAAW,CACfA,aArBA,SAAsB5T,GAChBA,EAAc6T,aAIlBP,EAAYtT,GACZoS,EAAUpS,GACV2S,EAAW3S,GACXoT,EAAoBpT,GACpBwT,EAAYxT,GACZyQ,EAAezQ,EAAc0Q,OAAQ1Q,EAAc0S,QA/drD,SAAuBE,EAAOF,GAC5B,GAAIE,EAAO,CACT,IAAIhqC,EAAI,EACJqI,EAAM2hC,EAAMpvC,OAEhB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACL,IAAfgqC,EAAMhqC,GAAGoP,IAEX46B,EAAMhqC,GAAG2qB,KAAKmd,OAASY,EAAesB,EAAMhqC,GAAG2qB,KAAKge,MAAOmB,GAa3DjC,EAAemC,EAAMhqC,GAAG2qB,KAAKmd,OAAQgC,GAG3C,CACF,CAucEoB,CAAc9T,EAAc4S,MAAO5S,EAAc0S,QACjD1S,EAAc6T,YAAa,EAC7B,GAcA,OALAD,EAASN,YAAcA,EACvBM,EAASjB,WAAaA,EACtBiB,EAASR,oBAAsBA,EAC/BQ,EAASJ,YAAcA,EACvBI,EAASnD,eAAiBA,EACnBmD,CACT,CAG4BG,IAGvB9D,EAAY+D,cACf/D,EAAY+D,YAAc,WACxB,SAASC,EAAeC,GAGtB,IAAIC,EAAoBD,EAAIE,kBAAkB,gBAE9C,OAAID,GAA0C,SAArBD,EAAIG,eAAkE,IAAvCF,EAAkBtiC,QAAQ,SAI9EqiC,EAAI7U,UAAwC,WAA5BkQ,UAAU2E,EAAI7U,UAHzB6U,EAAI7U,SAOT6U,EAAI7U,UAAoC,kBAAjB6U,EAAI7U,SACtBF,KAAKK,MAAM0U,EAAI7U,UAGpB6U,EAAI3U,aACCJ,KAAKK,MAAM0U,EAAI3U,cAGjB,IACT,CAyCA,MAAO,CACL+U,KAxCF,SAAmBtE,EAAMuE,EAAUxV,EAAUyV,GAC3C,IAAInV,EACA6U,EAAM,IAAIO,eAEd,IAEEP,EAAIG,aAAe,MACrB,CAAE,MAAOnV,GAAM,CAGfgV,EAAIQ,mBAAqB,WACvB,GAAuB,IAAnBR,EAAIS,WACN,GAAmB,MAAfT,EAAIU,OACNvV,EAAW4U,EAAeC,GAC1BnV,EAASM,QAET,IACEA,EAAW4U,EAAeC,GAC1BnV,EAASM,EACX,CAAE,MAAOH,GACHsV,GACFA,EAActV,EAElB,CAGN,EAEA,IAEEgV,EAAIW,KAAK,CAAC,IAAK,IAAK,KAAKljC,KAAK,IAAKq+B,GAAM,EAC3C,CAAE,MAAOhf,GAEPkjB,EAAIW,KAAK,CAAC,IAAK,IAAK,KAAKljC,KAAK,IAAK4iC,EAAW,IAAMvE,GAAM,EAC5D,CAEAkE,EAAIY,MACN,EAKF,CAnE0B,IAsER,kBAAhBtrC,EAAE+pB,KAAK1C,KACTof,EAAY+D,YAAYM,KAAK9qC,EAAE+pB,KAAKyc,KAAMxmC,EAAE+pB,KAAKghB,UAAU,SAAUhhB,GACnE0c,EAAYT,YAAYuF,aAAaxhB,GAErC0c,EAAYF,YAAY,CACtBjR,GAAIt1B,EAAE+pB,KAAKuL,GACXkW,QAASzhB,EACTqhB,OAAQ,WAEZ,IAAG,WACD3E,EAAYF,YAAY,CACtBjR,GAAIt1B,EAAE+pB,KAAKuL,GACX8V,OAAQ,SAEZ,SACK,GAAoB,aAAhBprC,EAAE+pB,KAAK1C,KAAqB,CACrC,IAAIokB,EAAYzrC,EAAE+pB,KAAK0hB,UAEvBhF,EAAYT,YAAYuF,aAAaE,GAErChF,EAAYF,YAAY,CACtBjR,GAAIt1B,EAAE+pB,KAAKuL,GACXkW,QAASC,EACTL,OAAQ,WAEZ,KAA2B,aAAhBprC,EAAE+pB,KAAK1C,MAChBof,EAAY+D,YAAYM,KAAK9qC,EAAE+pB,KAAKyc,KAAMxmC,EAAE+pB,KAAKghB,UAAU,SAAUhhB,GACnE0c,EAAYF,YAAY,CACtBjR,GAAIt1B,EAAE+pB,KAAKuL,GACXkW,QAASzhB,EACTqhB,OAAQ,WAEZ,IAAG,WACD3E,EAAYF,YAAY,CACtBjR,GAAIt1B,EAAE+pB,KAAKuL,GACX8V,OAAQ,SAEZ,GAEJ,IAEAlF,EAAeI,UAAY,SAAUoF,GACnC,IAAI3hB,EAAO2hB,EAAM3hB,KACbuL,EAAKvL,EAAKuL,GACVqW,EAAUvF,EAAU9Q,GACxB8Q,EAAU9Q,GAAM,KAEI,YAAhBvL,EAAKqhB,OACPO,EAAQ/U,WAAW7M,EAAKyhB,SACfG,EAAQC,SACjBD,EAAQC,SAEZ,EAEJ,CAEA,SAASC,EAAcjV,EAAYgV,GAEjC,IAAItW,EAAK,cADT6Q,GAAc,GAMd,OAJAC,EAAU9Q,GAAM,CACdsB,WAAYA,EACZgV,QAASA,GAEJtW,CACT,CAkCA,MAAO,CACLmE,cAjCF,SAAuB+M,EAAM5P,EAAYgV,GACvClF,IACA,IAAIoF,EAAYD,EAAcjV,EAAYgV,GAC1C1F,EAAeK,YAAY,CACzBlf,KAAM,gBACNmf,KAAMA,EACNuE,SAAU5gC,OAAO4hC,SAASC,OAAS7hC,OAAO4hC,SAASE,SACnD3W,GAAIwW,GAER,EAyBEI,SAvBF,SAAkB1F,EAAM5P,EAAYgV,GAClClF,IACA,IAAIoF,EAAYD,EAAcjV,EAAYgV,GAC1C1F,EAAeK,YAAY,CACzBlf,KAAM,WACNmf,KAAMA,EACNuE,SAAU5gC,OAAO4hC,SAASC,OAAS7hC,OAAO4hC,SAASE,SACnD3W,GAAIwW,GAER,EAeEK,kBAbF,SAA2BC,EAAMxV,EAAYgV,GAC3ClF,IACA,IAAIoF,EAAYD,EAAcjV,EAAYgV,GAC1C1F,EAAeK,YAAY,CACzBlf,KAAM,WACNokB,UAAWW,EACX9W,GAAIwW,GAER,EAOF,CA9vBkB,GAgwBdO,eAAiB,WACnB,IAAIC,EAAa,WACf,IAAIC,EAAS3N,UAAU,UACvB2N,EAAOzjC,MAAQ,EACfyjC,EAAOnR,OAAS,EAChB,IAAIpd,EAAMuuB,EAAOC,WAAW,MAG5B,OAFAxuB,EAAIyuB,UAAY,gBAChBzuB,EAAI0uB,SAAS,EAAG,EAAG,EAAG,GACfH,CACT,CARiB,GAUjB,SAASI,IACP9iC,KAAK+iC,cAAgB,EAEjB/iC,KAAK+iC,eAAiB/iC,KAAKgjC,aAAehjC,KAAKijC,sBAAwBjjC,KAAKkjC,eAC1EljC,KAAKmjC,gBACPnjC,KAAKmjC,eAAe,KAG1B,CAEA,SAASC,IACPpjC,KAAKijC,qBAAuB,EAExBjjC,KAAK+iC,eAAiB/iC,KAAKgjC,aAAehjC,KAAKijC,sBAAwBjjC,KAAKkjC,eAC1EljC,KAAKmjC,gBACPnjC,KAAKmjC,eAAe,KAG1B,CAEA,SAASE,EAAcC,EAAW3V,EAAY4V,GAC5C,IAAI5G,EAAO,GAEX,GAAI2G,EAAUntC,EACZwmC,EAAO2G,EAAU51B,OACZ,GAAIigB,EAAY,CACrB,IAAI6V,EAAYF,EAAU51B,GAEY,IAAlC81B,EAAUhlC,QAAQ,aACpBglC,EAAYA,EAAU5vC,MAAM,KAAK,IAGnC+oC,EAAOhP,EAAa6V,CACtB,MACE7G,EAAO4G,EACP5G,GAAQ2G,EAAUzrB,EAAIyrB,EAAUzrB,EAAI,GACpC8kB,GAAQ2G,EAAU51B,EAGpB,OAAOivB,CACT,CAEA,SAAS8G,EAAgBC,GACvB,IAAI9I,EAAS,EACT+I,EAAaC,YAAY,YACjBF,EAAIG,UAEN5kC,OAAS27B,EAAS,OACxB56B,KAAK8jC,eAELC,cAAcJ,IAGhB/I,GAAU,CACZ,EAAErjC,KAAKyI,MAAO,GAChB,CAkDA,SAASgkC,EAAkB9jB,GACzB,IAAI+jB,EAAK,CACPX,UAAWpjB,GAETyc,EAAO0G,EAAcnjB,EAAMlgB,KAAK2tB,WAAY3tB,KAAK28B,MAUrD,OATAR,YAAYkG,SAAS1F,EAAM,SAAUuH,GACnCD,EAAGP,IAAMQ,EAETlkC,KAAKmkC,gBACP,EAAE5sC,KAAKyI,MAAO,WACZikC,EAAGP,IAAM,CAAC,EAEV1jC,KAAKmkC,gBACP,EAAE5sC,KAAKyI,OACAikC,CACT,CAiEA,SAASG,IACPpkC,KAAK8jC,aAAehB,EAAYvrC,KAAKyI,MACrCA,KAAKmkC,eAAiBf,EAAc7rC,KAAKyI,MACzCA,KAAKyjC,gBAAkBA,EAAgBlsC,KAAKyI,MAC5CA,KAAKgkC,kBAAoBA,EAAkBzsC,KAAKyI,MAChDA,KAAK2tB,WAAa,GAClB3tB,KAAK28B,KAAO,GACZ38B,KAAKgjC,YAAc,EACnBhjC,KAAKkjC,cAAgB,EACrBljC,KAAK+iC,aAAe,EACpB/iC,KAAKijC,oBAAsB,EAC3BjjC,KAAKmjC,eAAiB,KACtBnjC,KAAKqkC,OAAS,EAChB,CAgBA,OAdAD,EAAsBlzC,UAAY,CAChCozC,WA/EF,SAAoBjF,EAAQkF,GAE1B,IAAIhvC,EADJyK,KAAKmjC,eAAiBoB,EAEtB,IAAI3mC,EAAMyhC,EAAOlvC,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACnB8pC,EAAO9pC,GAAG8nC,SACRgC,EAAO9pC,GAAGoP,GAAqB,QAAhB06B,EAAO9pC,GAAGoP,EAGH,IAAhB06B,EAAO9pC,GAAGoP,IACnB3E,KAAKkjC,eAAiB,EACtBljC,KAAKqkC,OAAO7uC,KAAKwK,KAAKgkC,kBAAkB3E,EAAO9pC,OAJ/CyK,KAAKgjC,aAAe,EACpBhjC,KAAKqkC,OAAO7uC,KAAKwK,KAAKwkC,iBAAiBnF,EAAO9pC,MAOtD,EAgEEkvC,cA1DF,SAAuB9H,GACrB38B,KAAK2tB,WAAagP,GAAQ,EAC5B,EAyDE+H,QA/DF,SAAiB/H,GACf38B,KAAK28B,KAAOA,GAAQ,EACtB,EA8DEgI,aApCF,WACE,OAAO3kC,KAAKgjC,cAAgBhjC,KAAK+iC,YACnC,EAmCE6B,eAjCF,WACE,OAAO5kC,KAAKkjC,gBAAkBljC,KAAKijC,mBACrC,EAgCEtT,QA3CF,WACE3vB,KAAKmjC,eAAiB,KACtBnjC,KAAKqkC,OAAOl0C,OAAS,CACvB,EAyCE00C,SA3DF,SAAkBvB,GAIhB,IAHA,IAAI/tC,EAAI,EACJqI,EAAMoC,KAAKqkC,OAAOl0C,OAEfoF,EAAIqI,GAAK,CACd,GAAIoC,KAAKqkC,OAAO9uC,GAAG+tC,YAAcA,EAC/B,OAAOtjC,KAAKqkC,OAAO9uC,GAAGmuC,IAGxBnuC,GAAK,CACP,CAEA,OAAO,IACT,EA+CEuvC,cAzHF,SAAuBxB,GACrB,IAAI3G,EAAO0G,EAAcC,EAAWtjC,KAAK2tB,WAAY3tB,KAAK28B,MACtD+G,EAAM3O,UAAU,OACpB2O,EAAIqB,YAAc,YAClBrB,EAAIhT,iBAAiB,OAAQ1wB,KAAK8jC,cAAc,GAChDJ,EAAIhT,iBAAiB,QAAS,WAC5BuT,EAAGP,IAAMjB,EAETziC,KAAK8jC,cACP,EAAEvsC,KAAKyI,OAAO,GACd0jC,EAAIrxC,IAAMsqC,EACV,IAAIsH,EAAK,CACPP,IAAKA,EACLJ,UAAWA,GAEb,OAAOW,CACT,EA0GEe,gBAxJF,SAAyB1B,GACvB,IAAI3G,EAAO0G,EAAcC,EAAWtjC,KAAK2tB,WAAY3tB,KAAK28B,MACtD+G,EAAM1H,SAAS,SAEfjE,SACF/3B,KAAKyjC,gBAAgBC,GAErBA,EAAIhT,iBAAiB,OAAQ1wB,KAAK8jC,cAAc,GAGlDJ,EAAIhT,iBAAiB,QAAS,WAC5BuT,EAAGP,IAAMjB,EAETziC,KAAK8jC,cACP,EAAEvsC,KAAKyI,OAAO,GACd0jC,EAAIuB,eAAe,+BAAgC,OAAQtI,GAEvD38B,KAAKklC,eAAeC,OACtBnlC,KAAKklC,eAAeC,OAAOzB,GAE3B1jC,KAAKklC,eAAeE,YAAY1B,GAGlC,IAAIO,EAAK,CACPP,IAAKA,EACLJ,UAAWA,GAEb,OAAOW,CACT,EA6HEnB,YAAaA,EACbM,cAAeA,EACfiC,aApCF,SAAsB7nB,EAAM8nB,GACb,QAAT9nB,GACFxd,KAAKklC,eAAiBI,EACtBtlC,KAAKwkC,iBAAmBxkC,KAAKglC,gBAAgBztC,KAAKyI,OAElDA,KAAKwkC,iBAAmBxkC,KAAK8kC,cAAcvtC,KAAKyI,KAEpD,GA+BOokC,CACT,CAlOqB,GAoOrB,SAASmB,YAAa,CAEtBA,UAAUr0C,UAAY,CACpBs0C,aAAc,SAAsBC,EAAWzpB,GAC7C,GAAIhc,KAAK0lC,KAAKD,GAGZ,IAFA,IAAIE,EAAY3lC,KAAK0lC,KAAKD,GAEjBlwC,EAAI,EAAGA,EAAIowC,EAAUx1C,OAAQoF,GAAK,EACzCowC,EAAUpwC,GAAGymB,EAGnB,EACA0U,iBAAkB,SAA0B+U,EAAW/Z,GAOrD,OANK1rB,KAAK0lC,KAAKD,KACbzlC,KAAK0lC,KAAKD,GAAa,IAGzBzlC,KAAK0lC,KAAKD,GAAWjwC,KAAKk2B,GAEnB,WACL1rB,KAAK2wB,oBAAoB8U,EAAW/Z,EACtC,EAAEn0B,KAAKyI,KACT,EACA2wB,oBAAqB,SAA6B8U,EAAW/Z,GAC3D,GAAKA,GAEE,GAAI1rB,KAAK0lC,KAAKD,GAAY,CAI/B,IAHA,IAAIlwC,EAAI,EACJqI,EAAMoC,KAAK0lC,KAAKD,GAAWt1C,OAExBoF,EAAIqI,GACLoC,KAAK0lC,KAAKD,GAAWlwC,KAAOm2B,IAC9B1rB,KAAK0lC,KAAKD,GAAWlrB,OAAOhlB,EAAG,GAE/BA,GAAK,EACLqI,GAAO,GAGTrI,GAAK,EAGFyK,KAAK0lC,KAAKD,GAAWt1C,SACxB6P,KAAK0lC,KAAKD,GAAa,KAE3B,OAnBEzlC,KAAK0lC,KAAKD,GAAa,IAoB3B,GAGF,IAAIG,aAAe,WACjB,SAASC,EAAkBlE,GAMzB,IALA,IAEImE,EAFAC,EAAQpE,EAAQ/tC,MAAM,QACtBoyC,EAAO,CAAC,EAERC,EAAY,EAEP1wC,EAAI,EAAGA,EAAIwwC,EAAM51C,OAAQoF,GAAK,EAGjB,KAFpBuwC,EAAOC,EAAMxwC,GAAG3B,MAAM,MAEbzD,SACP61C,EAAKF,EAAK,IAAMA,EAAK,GAAGrhB,OACxBwhB,GAAa,GAIjB,GAAkB,IAAdA,EACF,MAAM,IAAIt0C,MAGZ,OAAOq0C,CACT,CAEA,OAAO,SAAUE,GAGf,IAFA,IAAIC,EAAU,GAEL5wC,EAAI,EAAGA,EAAI2wC,EAAS/1C,OAAQoF,GAAK,EAAG,CAC3C,IAAI6wC,EAAUF,EAAS3wC,GACnB8wC,EAAa,CACfC,KAAMF,EAAQG,GACdC,SAAUJ,EAAQK,IAGpB,IACEJ,EAAW1E,QAAU7V,KAAKK,MAAM+Z,EAAS3wC,GAAGmxC,GAC9C,CAAE,MAAO53B,GACP,IACEu3B,EAAW1E,QAAUkE,EAAkBK,EAAS3wC,GAAGmxC,GACrD,CAAE,MAAOC,GACPN,EAAW1E,QAAU,CACnBpwC,KAAM20C,EAAS3wC,GAAGmxC,GAEtB,CACF,CAEAP,EAAQ3wC,KAAK6wC,EACf,CAEA,OAAOF,CACT,CACF,CAlDmB,GAoDfS,iBAAmB,WACrB,SAASC,EAAoBvI,GAC3Bt+B,KAAK8mC,aAAatxC,KAAK8oC,EACzB,CAEA,OAAO,WACL,SAASyI,EAAqBx1C,GAI5B,IAHA,IAAIgE,EAAI,EACJqI,EAAMoC,KAAK8mC,aAAa32C,OAErBoF,EAAIqI,GAAK,CACd,GAAIoC,KAAK8mC,aAAavxC,GAAG2qB,MAAQlgB,KAAK8mC,aAAavxC,GAAG2qB,KAAK8mB,KAAOz1C,EAKhE,OAJIyO,KAAK8mC,aAAavxC,GAAG0xC,cAAgBjnC,KAAK8mC,aAAavxC,GAAG2qB,KAAKgnB,IACjElnC,KAAK8mC,aAAavxC,GAAG0xC,aAAajnC,KAAKmnC,cAGlCnnC,KAAK8mC,aAAavxC,GAAG6xC,cAG9B7xC,GAAK,CACP,CAEA,OAAO,IACT,CAKA,OAHAwxC,EAAqBD,aAAe,GACpCC,EAAqBI,aAAe,EACpCJ,EAAqBF,oBAAsBA,EACpCE,CACT,CACF,CA9BuB,GAgCnBM,UAAY,CAAC,EAEbC,iBAAmB,SAA0B/uB,EAAK3f,GACpDyuC,UAAU9uB,GAAO3f,CACnB,EAEA,SAAS2uC,YAAYhvB,GACnB,OAAO8uB,UAAU9uB,EACnB,CAEA,SAASivB,wBAEP,GAAIH,UAAU3E,OACZ,MAAO,SAIT,IAAK,IAAInqB,KAAO8uB,UACd,GAAIA,UAAU9uB,GACZ,OAAOA,EAIX,MAAO,EACT,CAEA,SAASkvB,UAAU7pB,GAAuV,OAA1O6pB,UAArD,oBAAXhlC,QAAoD,kBAApBA,OAAOi1B,SAAqC,SAAiB9Z,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXnb,QAAyBmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAY6pB,UAAU7pB,EAAM,CAEjY,IAAI8pB,cAAgB,WAClB1nC,KAAK0lC,KAAO,GACZ1lC,KAAKzO,KAAO,GACZyO,KAAK28B,KAAO,GACZ38B,KAAK2nC,UAAW,EAChB3nC,KAAKmnC,aAAe,EACpBnnC,KAAKmwB,gBAAkB,EACvBnwB,KAAK2yB,WAAa,EAClB3yB,KAAKq6B,YAAc,EACnBr6B,KAAK4nC,UAAY,EACjB5nC,KAAK6nC,UAAY,EACjB7nC,KAAK8nC,UAAY,EACjB9nC,KAAK+nC,cAAgB,EACrB/nC,KAAKgoC,UAAY,EACjBhoC,KAAK2sB,cAAgB,CAAC,EACtB3sB,KAAKq/B,OAAS,GACdr/B,KAAK4yB,UAAW,EAChB5yB,KAAK6sB,UAAW,EAChB7sB,KAAK4sB,MAAO,EACZ5sB,KAAK0tB,SAAW,KAChB1tB,KAAKioC,YAActN,kBACnB36B,KAAK2tB,WAAa,GAClB3tB,KAAKkoC,cAAgB,EACrBloC,KAAKmoC,WAAa,EAClBnoC,KAAKooC,kBAAoB7M,qBACzBv7B,KAAKqvB,SAAW,GAChBrvB,KAAKqoC,OAAQ,EACbroC,KAAKsoC,gBAAiB,EACtBtoC,KAAKuoC,iBAAmB3B,mBACxB5mC,KAAKwoC,eAAiB,IAAIhG,eAC1BxiC,KAAKyoC,gBAAkB/S,yBACvB11B,KAAKmmC,QAAU,GACfnmC,KAAK0oC,gBAAkB1oC,KAAK0oC,gBAAgBnxC,KAAKyI,MACjDA,KAAK2oC,aAAe3oC,KAAK2oC,aAAapxC,KAAKyI,MAC3CA,KAAK4oC,kBAAoB5oC,KAAK4oC,kBAAkBrxC,KAAKyI,MACrDA,KAAK6oC,gBAAkB,IAAIjP,kBAAkB,aAAc,EAAG,EAAG,GACjE55B,KAAK43B,kBAAoB6D,sBAC3B,EAEAzG,gBAAgB,CAACuQ,WAAYmC,eAE7BA,cAAcx2C,UAAU43C,UAAY,SAAUtd,IACxCA,EAAOwG,SAAWxG,EAAOlyB,aAC3B0G,KAAKgyB,QAAUxG,EAAOwG,SAAWxG,EAAOlyB,WAG1C,IAAIyvC,EAAW,MAEXvd,EAAOud,SACTA,EAAWvd,EAAOud,SACTvd,EAAOkC,WAChBqb,EAAWvd,EAAOkC,UAGpB,IAAIsb,EAAgBzB,YAAYwB,GAChC/oC,KAAK0tB,SAAW,IAAIsb,EAAchpC,KAAMwrB,EAAOoC,kBAC/C5tB,KAAKwoC,eAAenD,aAAa0D,EAAU/oC,KAAK0tB,SAASub,WAAWC,MACpElpC,KAAK0tB,SAASyb,oBAAoBnpC,KAAKuoC,kBACvCvoC,KAAK+oC,SAAWA,EAEI,KAAhBvd,EAAOoB,MAA+B,OAAhBpB,EAAOoB,WAAiC76B,IAAhBy5B,EAAOoB,OAAsC,IAAhBpB,EAAOoB,KACpF5sB,KAAK4sB,MAAO,GACa,IAAhBpB,EAAOoB,KAChB5sB,KAAK4sB,MAAO,EAEZ5sB,KAAK4sB,KAAO1K,SAASsJ,EAAOoB,KAAM,IAGpC5sB,KAAK6sB,WAAW,aAAcrB,IAASA,EAAOqB,SAC9C7sB,KAAKzO,KAAOi6B,EAAOj6B,KAAOi6B,EAAOj6B,KAAO,GACxCyO,KAAKopC,kBAAmBp4C,OAAOE,UAAU2G,eAAeC,KAAK0zB,EAAQ,qBAAsBA,EAAO4d,iBAClGppC,KAAK2tB,WAAanC,EAAOmC,WACzB3tB,KAAK8sB,eAAiBtB,EAAOsB,eAEzBtB,EAAOoK,cACT51B,KAAKyoC,gBAAgB5R,gBAAgBrL,EAAOoK,cAG1CpK,EAAOmB,cACT3sB,KAAKqpC,eAAe7d,EAAOmB,eAClBnB,EAAOmR,QACuB,IAAnCnR,EAAOmR,KAAKrb,YAAY,MAC1BthB,KAAK28B,KAAOnR,EAAOmR,KAAKxa,OAAO,EAAGqJ,EAAOmR,KAAKrb,YAAY,MAAQ,GAElEthB,KAAK28B,KAAOnR,EAAOmR,KAAKxa,OAAO,EAAGqJ,EAAOmR,KAAKrb,YAAY,KAAO,GAGnEthB,KAAKspC,SAAW9d,EAAOmR,KAAKxa,OAAOqJ,EAAOmR,KAAKrb,YAAY,KAAO,GAClEthB,KAAKspC,SAAWtpC,KAAKspC,SAASnnB,OAAO,EAAGniB,KAAKspC,SAAShoB,YAAY,UAClE6a,YAAYvM,cAAcpE,EAAOmR,KAAM38B,KAAK0oC,gBAAiB1oC,KAAK2oC,cAEtE,EAEAjB,cAAcx2C,UAAUy3C,aAAe,WACrC3oC,KAAKupC,QAAQ,cACf,EAEA7B,cAAcx2C,UAAUm4C,eAAiB,SAAUnpB,GACjDic,YAAYmG,kBAAkBpiB,EAAMlgB,KAAK0oC,gBAC3C,EAEAhB,cAAcx2C,UAAUs4C,QAAU,SAAUxX,EAASrF,GAC/CA,GAC+B,WAA7B8a,UAAU9a,KACZA,EAAgBb,KAAKK,MAAMQ,IAI/B,IAAInB,EAAS,CACXwG,QAASA,EACTrF,cAAeA,GAEb8c,EAAoBzX,EAAQ0X,WAChCle,EAAOmR,KAAO8M,EAAkBE,aAAa,uBAC3CF,EAAkBE,aAAa,uBAAuB/wC,MAAQ6wC,EAAkBE,aAAa,gBAC7FF,EAAkBE,aAAa,gBAAgB/wC,MAAQ6wC,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAW/wC,MAAQ,GACvJ4yB,EAAOud,SAAWU,EAAkBE,aAAa,kBAC/CF,EAAkBE,aAAa,kBAAkB/wC,MAAQ6wC,EAAkBE,aAAa,gBACxFF,EAAkBE,aAAa,gBAAgB/wC,MAAQ6wC,EAAkBE,aAAa,WACtFF,EAAkBE,aAAa,WAAW/wC,MAAQ6wC,EAAkBE,aAAa,oBACjFF,EAAkBE,aAAa,oBAAoB/wC,MAAQ6wC,EAAkBE,aAAa,eAAiBF,EAAkBE,aAAa,eAAe/wC,MAAQ4uC,yBAA2B,SAC9L,IAAI5a,EAAO6c,EAAkBE,aAAa,kBACxCF,EAAkBE,aAAa,kBAAkB/wC,MAAQ6wC,EAAkBE,aAAa,gBACxFF,EAAkBE,aAAa,gBAAgB/wC,MAAQ6wC,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAW/wC,MAAQ,GAE1I,UAATg0B,EACFpB,EAAOoB,MAAO,EACI,SAATA,EACTpB,EAAOoB,MAAO,EACI,KAATA,IACTpB,EAAOoB,KAAO1K,SAAS0K,EAAM,KAG/B,IAAIC,EAAW4c,EAAkBE,aAAa,sBAC5CF,EAAkBE,aAAa,sBAAsB/wC,MAAQ6wC,EAAkBE,aAAa,oBAC5FF,EAAkBE,aAAa,oBAAoB/wC,OAAQ6wC,EAAkBE,aAAa,gBAAiBF,EAAkBE,aAAa,eAAe/wC,MAC3J4yB,EAAOqB,SAAwB,UAAbA,EAClBrB,EAAOj6B,KAAOk4C,EAAkBE,aAAa,aAC3CF,EAAkBE,aAAa,aAAa/wC,MAAQ6wC,EAAkBE,aAAa,gBACnFF,EAAkBE,aAAa,gBAAgB/wC,MAAQ6wC,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAW/wC,MAAQ,GAKrI,WAJF6wC,EAAkBE,aAAa,uBAC7CF,EAAkBE,aAAa,uBAAuB/wC,MAAQ6wC,EAAkBE,aAAa,qBAC7FF,EAAkBE,aAAa,qBAAqB/wC,MAAQ6wC,EAAkBE,aAAa,gBAAkBF,EAAkBE,aAAa,gBAAgB/wC,MAAQ,MAGpK4yB,EAAOoe,WAAY,GAGhBpe,EAAOmR,KAGV38B,KAAK8oC,UAAUtd,GAFfxrB,KAAKupC,QAAQ,UAIjB,EAEA7B,cAAcx2C,UAAU24C,cAAgB,SAAU3pB,GAC5CA,EAAKwf,GAAK1/B,KAAK2sB,cAAc+S,KAC/B1/B,KAAK2sB,cAAc+S,GAAKxf,EAAKwf,GAC7B1/B,KAAKq6B,YAAcnoC,KAAKC,MAAM+tB,EAAKwf,GAAK1/B,KAAK2sB,cAAc8S,KAG7D,IACIlqC,EAGAwF,EAJAsiC,EAASr9B,KAAK2sB,cAAc0Q,OAE5Bz/B,EAAMy/B,EAAOltC,OACb25C,EAAY5pB,EAAKmd,OAEjBG,EAAOsM,EAAU35C,OAErB,IAAK4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAGzB,IAFAxF,EAAI,EAEGA,EAAIqI,GAAK,CACd,GAAIy/B,EAAO9nC,GAAGk2B,KAAOqe,EAAU/uC,GAAG0wB,GAAI,CACpC4R,EAAO9nC,GAAKu0C,EAAU/uC,GACtB,KACF,CAEAxF,GAAK,CACP,CAQF,IALI2qB,EAAKqf,OAASrf,EAAK6pB,SACrB/pC,KAAK0tB,SAASub,WAAWe,YAAYC,SAAS/pB,EAAKqf,OACnDv/B,KAAK0tB,SAASub,WAAWe,YAAYE,SAAShqB,EAAK6pB,MAAO/pC,KAAK0tB,SAASub,WAAWC,OAGjFhpB,EAAKmf,OAGP,IAFAzhC,EAAMsiB,EAAKmf,OAAOlvC,OAEboF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK2sB,cAAc0S,OAAO7pC,KAAK0qB,EAAKmf,OAAO9pC,IAI/CyK,KAAK2sB,cAAc6T,YAAa,EAChCrE,YAAYmG,kBAAkBtiC,KAAK2sB,cAAe3sB,KAAK4oC,kBACzD,EAEAlB,cAAcx2C,UAAU03C,kBAAoB,SAAU1oB,GACpDlgB,KAAK2sB,cAAgBzM,EACrB,IAAI0X,EAAoB6D,uBAEpB7D,GACFA,EAAkBuS,gBAAgBnqC,MAGpCA,KAAKoqC,iBACP,EAEA1C,cAAcx2C,UAAUk5C,gBAAkB,WACxC,IAAI/a,EAAWrvB,KAAK2sB,cAAc0C,SAElC,IAAKA,GAAgC,IAApBA,EAASl/B,SAAiB6P,KAAKopC,iBAG9C,OAFAppC,KAAKupC,QAAQ,mBACbvpC,KAAKkoC,cAAgBloC,KAAKq6B,aAI5B,IAAIgQ,EAAUhb,EAAS34B,QACvBsJ,KAAKkoC,cAAgBmC,EAAQ/D,KAAOtmC,KAAK4nC,UACzC,IAAI0C,EAActqC,KAAK28B,KAAO38B,KAAKspC,SAAW,IAAMtpC,KAAKmoC,WAAa,QACtEnoC,KAAKmoC,YAAc,EACnBhM,YAAYkG,SAASiI,EAAatqC,KAAK6pC,cAActyC,KAAKyI,MAAO,WAC/DA,KAAKupC,QAAQ,cACf,EAAEhyC,KAAKyI,MACT,EAEA0nC,cAAcx2C,UAAUq5C,aAAe,WACtBvqC,KAAK2sB,cAAc0C,WAGhCrvB,KAAKkoC,cAAgBloC,KAAKq6B,aAG5Br6B,KAAKoqC,iBACP,EAEA1C,cAAcx2C,UAAUs5C,aAAe,WACrCxqC,KAAKupC,QAAQ,iBACbvpC,KAAKyqC,aACP,EAEA/C,cAAcx2C,UAAUw5C,cAAgB,WACtC1qC,KAAKwoC,eAAe/D,cAAczkC,KAAK2tB,YACvC3tB,KAAKwoC,eAAe9D,QAAQ1kC,KAAK28B,MACjC38B,KAAKwoC,eAAelE,WAAWtkC,KAAK2sB,cAAc0S,OAAQr/B,KAAKwqC,aAAajzC,KAAKyI,MACnF,EAEA0nC,cAAcx2C,UAAUw3C,gBAAkB,SAAUiC,GAClD,GAAK3qC,KAAK0tB,SAIV,IACE1tB,KAAK2sB,cAAgBge,EAEjB3qC,KAAK8sB,gBACP9sB,KAAKq6B,YAAcnoC,KAAKC,MAAM6N,KAAK8sB,eAAe,GAAK9sB,KAAK8sB,eAAe,IAC3E9sB,KAAK2yB,WAAazgC,KAAKuc,MAAMzO,KAAK8sB,eAAe,MAEjD9sB,KAAKq6B,YAAcnoC,KAAKC,MAAM6N,KAAK2sB,cAAc+S,GAAK1/B,KAAK2sB,cAAc8S,IACzEz/B,KAAK2yB,WAAazgC,KAAKuc,MAAMzO,KAAK2sB,cAAc8S,KAGlDz/B,KAAK0tB,SAASgb,gBAAgBiC,GAEzBA,EAAStL,SACZsL,EAAStL,OAAS,IAGpBr/B,KAAKq/B,OAASr/B,KAAK2sB,cAAc0S,OACjCr/B,KAAK4nC,UAAY5nC,KAAK2sB,cAAcie,GACpC5qC,KAAK6nC,UAAY7nC,KAAK2sB,cAAcie,GAAK,IACzC5qC,KAAK0tB,SAASmd,wBAAwBF,EAAStL,QAC/Cr/B,KAAKmmC,QAAUP,aAAa+E,EAASxE,SAAW,IAChDnmC,KAAKupC,QAAQ,gBACbvpC,KAAK0qC,gBACL1qC,KAAKuqC,eACLvqC,KAAK8qC,oBACL9qC,KAAK+qC,qBAED/qC,KAAK4yB,UACP5yB,KAAKyoC,gBAAgB7Z,OAEzB,CAAE,MAAOjR,GACP3d,KAAKgrC,mBAAmBrtB,EAC1B,CACF,EAEA+pB,cAAcx2C,UAAU65C,mBAAqB,WACtC/qC,KAAK0tB,WAIN1tB,KAAK0tB,SAASub,WAAWe,YAAYrC,SACvC3nC,KAAKyqC,cAELQ,WAAWjrC,KAAK+qC,mBAAmBxzC,KAAKyI,MAAO,IAEnD,EAEA0nC,cAAcx2C,UAAUu5C,YAAc,WACpC,IAAKzqC,KAAK2nC,UAAY3nC,KAAK0tB,SAASub,WAAWe,YAAYrC,WAAa3nC,KAAKwoC,eAAe7D,gBAAiD,WAA/B3kC,KAAK0tB,SAASwd,eAA8BlrC,KAAKwoC,eAAe5D,iBAAkB,CAC9L5kC,KAAK2nC,UAAW,EAChB,IAAI/P,EAAoB6D,uBAEpB7D,GACFA,EAAkBuS,gBAAgBnqC,MAGpCA,KAAK0tB,SAASyd,YACdF,WAAW,WACTjrC,KAAKupC,QAAQ,YACf,EAAEhyC,KAAKyI,MAAO,GACdA,KAAKorC,YAEDprC,KAAK6sB,UACP7sB,KAAKyuB,MAET,CACF,EAEAiZ,cAAcx2C,UAAUm6C,OAAS,SAAUpsC,EAAOsyB,GAEhD,IAAI+Z,EAA0B,kBAAVrsC,EAAqBA,OAAQlN,EAE7Cw5C,EAA4B,kBAAXha,EAAsBA,OAASx/B,EAEpDiO,KAAK0tB,SAAS8d,oBAAoBF,EAAQC,EAC5C,EAEA7D,cAAcx2C,UAAUq+B,YAAc,SAAUoF,GAC9C30B,KAAKooC,oBAAsBzT,CAC7B,EAEA+S,cAAcx2C,UAAUk6C,UAAY,WAClCprC,KAAKmnC,aAAennC,KAAKooC,kBAAoBpoC,KAAKmwB,kBAAoBnwB,KAAKmwB,gBAEvEnwB,KAAKkoC,gBAAkBloC,KAAKq6B,aAAer6B,KAAKmnC,aAAennC,KAAKkoC,gBACtEloC,KAAKmnC,aAAennC,KAAKkoC,eAG3BloC,KAAKupC,QAAQ,cACbvpC,KAAKyrC,cACLzrC,KAAKupC,QAAQ,aACf,EAEA7B,cAAcx2C,UAAUu6C,YAAc,WACpC,IAAsB,IAAlBzrC,KAAK2nC,UAAuB3nC,KAAK0tB,SAIrC,IACM1tB,KAAK43B,mBACP53B,KAAK43B,kBAAkB8T,aAGzB1rC,KAAK0tB,SAAS+d,YAAYzrC,KAAKmnC,aAAennC,KAAK2yB,WACrD,CAAE,MAAOhV,GACP3d,KAAK2rC,wBAAwBhuB,EAC/B,CACF,EAEA+pB,cAAcx2C,UAAUu9B,KAAO,SAAUl9B,GACnCA,GAAQyO,KAAKzO,OAASA,IAIJ,IAAlByO,KAAK4yB,WACP5yB,KAAK4yB,UAAW,EAChB5yB,KAAKupC,QAAQ,SACbvpC,KAAKyoC,gBAAgBvS,SAEjBl2B,KAAKqoC,QACProC,KAAKqoC,OAAQ,EACbroC,KAAKupC,QAAQ,YAGnB,EAEA7B,cAAcx2C,UAAU09B,MAAQ,SAAUr9B,GACpCA,GAAQyO,KAAKzO,OAASA,IAIJ,IAAlByO,KAAK4yB,WACP5yB,KAAK4yB,UAAW,EAChB5yB,KAAKupC,QAAQ,UACbvpC,KAAKqoC,OAAQ,EACbroC,KAAKupC,QAAQ,SACbvpC,KAAKyoC,gBAAgB7Z,QAEzB,EAEA8Y,cAAcx2C,UAAU06C,YAAc,SAAUr6C,GAC1CA,GAAQyO,KAAKzO,OAASA,KAIJ,IAAlByO,KAAK4yB,SACP5yB,KAAKyuB,OAELzuB,KAAK4uB,QAET,EAEA8Y,cAAcx2C,UAAUy9B,KAAO,SAAUp9B,GACnCA,GAAQyO,KAAKzO,OAASA,IAI1ByO,KAAK4uB,QACL5uB,KAAKgoC,UAAY,EACjBhoC,KAAKsoC,gBAAiB,EACtBtoC,KAAK6rC,wBAAwB,GAC/B,EAEAnE,cAAcx2C,UAAU46C,cAAgB,SAAUC,GAGhD,IAFA,IAAIC,EAEKz2C,EAAI,EAAGA,EAAIyK,KAAKmmC,QAAQh2C,OAAQoF,GAAK,EAG5C,IAFAy2C,EAAShsC,KAAKmmC,QAAQ5wC,IAEXosC,SAAWqK,EAAOrK,QAAQpwC,OAASw6C,EAC5C,OAAOC,EAIX,OAAO,IACT,EAEAtE,cAAcx2C,UAAU+9B,YAAc,SAAUr2B,EAAOo2B,EAASz9B,GAC9D,IAAIA,GAAQyO,KAAKzO,OAASA,EAA1B,CAIA,IAAI06C,EAAWz7C,OAAOoI,GAEtB,GAAIyxB,MAAM4hB,GAAW,CACnB,IAAID,EAAShsC,KAAK8rC,cAAclzC,GAE5BozC,GACFhsC,KAAKivB,YAAY+c,EAAO1F,MAAM,EAElC,MAAWtX,EACThvB,KAAK6rC,wBAAwBjzC,GAE7BoH,KAAK6rC,wBAAwBjzC,EAAQoH,KAAKksC,eAG5ClsC,KAAK4uB,OAhBL,CAiBF,EAEA8Y,cAAcx2C,UAAU69B,YAAc,SAAUn2B,EAAOo2B,EAASz9B,GAC9D,IAAIA,GAAQyO,KAAKzO,OAASA,EAA1B,CAIA,IAAI06C,EAAWz7C,OAAOoI,GAEtB,GAAIyxB,MAAM4hB,GAAW,CACnB,IAAID,EAAShsC,KAAK8rC,cAAclzC,GAE5BozC,IACGA,EAAOxF,SAGVxmC,KAAKovB,aAAa,CAAC4c,EAAO1F,KAAM0F,EAAO1F,KAAO0F,EAAOxF,WAAW,GAFhExmC,KAAKivB,YAAY+c,EAAO1F,MAAM,GAKpC,MACEtmC,KAAKivB,YAAYgd,EAAUjd,EAASz9B,GAGtCyO,KAAKyuB,MAlBL,CAmBF,EAEAiZ,cAAcx2C,UAAUi7C,YAAc,SAAUvzC,GAC9C,IAAsB,IAAlBoH,KAAK4yB,WAAuC,IAAlB5yB,KAAK2nC,SAAnC,CAIA,IAAIyE,EAAYpsC,KAAKmwB,gBAAkBv3B,EAAQoH,KAAKksC,cAChDG,GAAc,EAGdD,GAAapsC,KAAKq6B,YAAc,GAAKr6B,KAAKksC,cAAgB,EACvDlsC,KAAK4sB,MAAQ5sB,KAAKgoC,YAAchoC,KAAK4sB,KAK/Bwf,GAAapsC,KAAKq6B,aAC3Br6B,KAAKgoC,WAAa,EAEbhoC,KAAKssC,cAAcF,EAAYpsC,KAAKq6B,eACvCr6B,KAAK6rC,wBAAwBO,EAAYpsC,KAAKq6B,aAC9Cr6B,KAAKsoC,gBAAiB,EACtBtoC,KAAKupC,QAAQ,kBAGfvpC,KAAK6rC,wBAAwBO,GAbxBpsC,KAAKssC,cAAcF,EAAYpsC,KAAKq6B,YAAc+R,EAAYpsC,KAAKq6B,YAAc,KACpFgS,GAAc,EACdD,EAAYpsC,KAAKq6B,YAAc,GAa1B+R,EAAY,EAChBpsC,KAAKssC,cAAcF,EAAYpsC,KAAKq6B,gBACnCr6B,KAAK4sB,MAAU5sB,KAAKgoC,aAAe,IAAmB,IAAdhoC,KAAK4sB,MAU/Cyf,GAAc,EACdD,EAAY,IATZpsC,KAAK6rC,wBAAwB7rC,KAAKq6B,YAAc+R,EAAYpsC,KAAKq6B,aAE5Dr6B,KAAKsoC,eAGRtoC,KAAKupC,QAAQ,gBAFbvpC,KAAKsoC,gBAAiB,IAU5BtoC,KAAK6rC,wBAAwBO,GAG3BC,IACFrsC,KAAK6rC,wBAAwBO,GAC7BpsC,KAAK4uB,QACL5uB,KAAKupC,QAAQ,YA9Cf,CAgDF,EAEA7B,cAAcx2C,UAAUq7C,cAAgB,SAAU/uC,EAAK5M,GACrDoP,KAAKgoC,UAAY,EAEbxqC,EAAI,GAAKA,EAAI,IACXwC,KAAKksC,cAAgB,IACnBlsC,KAAK8nC,UAAY,EACnB9nC,KAAK6uB,UAAU7uB,KAAK8nC,WAEpB9nC,KAAKkvB,cAAc,IAIvBlvB,KAAKq6B,YAAc78B,EAAI,GAAKA,EAAI,GAChCwC,KAAKkoC,cAAgBloC,KAAKq6B,YAC1Br6B,KAAK2yB,WAAan1B,EAAI,GACtBwC,KAAK6rC,wBAAwB7rC,KAAKq6B,YAAc,KAAQzpC,IAC/C4M,EAAI,GAAKA,EAAI,KAClBwC,KAAKksC,cAAgB,IACnBlsC,KAAK8nC,UAAY,EACnB9nC,KAAK6uB,UAAU7uB,KAAK8nC,WAEpB9nC,KAAKkvB,aAAa,IAItBlvB,KAAKq6B,YAAc78B,EAAI,GAAKA,EAAI,GAChCwC,KAAKkoC,cAAgBloC,KAAKq6B,YAC1Br6B,KAAK2yB,WAAan1B,EAAI,GACtBwC,KAAK6rC,wBAAwB,KAAQj7C,IAGvCoP,KAAKupC,QAAQ,eACf,EAEA7B,cAAcx2C,UAAUk/B,WAAa,SAAUoc,EAAM/tC,GACnD,IAAIguC,GAAgB,EAEhBzsC,KAAK4yB,WACH5yB,KAAKmwB,gBAAkBnwB,KAAK2yB,WAAa6Z,EAC3CC,EAAeD,EACNxsC,KAAKmwB,gBAAkBnwB,KAAK2yB,WAAal0B,IAClDguC,EAAehuC,EAAM+tC,IAIzBxsC,KAAK2yB,WAAa6Z,EAClBxsC,KAAKq6B,YAAc57B,EAAM+tC,EACzBxsC,KAAKkoC,cAAgBloC,KAAKq6B,aAEJ,IAAlBoS,GACFzsC,KAAKivB,YAAYwd,GAAc,EAEnC,EAEA/E,cAAcx2C,UAAUk+B,aAAe,SAAU5xB,EAAK8xB,GAKpD,GAJIA,IACFtvB,KAAKqvB,SAASl/B,OAAS,GAGC,WAAtBs3C,UAAUjqC,EAAI,IAAkB,CAClC,IAAIjI,EACAqI,EAAMJ,EAAIrN,OAEd,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKqvB,SAAS75B,KAAKgI,EAAIjI,GAE3B,MACEyK,KAAKqvB,SAAS75B,KAAKgI,GAGjBwC,KAAKqvB,SAASl/B,QAAUm/B,GAC1BtvB,KAAKusC,cAAcvsC,KAAKqvB,SAAS34B,QAAS,GAGxCsJ,KAAK4yB,UACP5yB,KAAKyuB,MAET,EAEAiZ,cAAcx2C,UAAUm/B,cAAgB,SAAUf,GAChDtvB,KAAKqvB,SAASl/B,OAAS,EACvB6P,KAAKqvB,SAAS75B,KAAK,CAACwK,KAAK2sB,cAAc8S,GAAIz/B,KAAK2sB,cAAc+S,KAE1DpQ,GACFtvB,KAAKssC,cAAc,EAEvB,EAEA5E,cAAcx2C,UAAUo7C,cAAgB,SAAU17C,GAChD,QAAIoP,KAAKqvB,SAASl/B,SAChB6P,KAAKusC,cAAcvsC,KAAKqvB,SAAS34B,QAAS9F,IACnC,EAIX,EAEA82C,cAAcx2C,UAAUy+B,QAAU,SAAUp+B,GACtCA,GAAQyO,KAAKzO,OAASA,IAASyO,KAAK0tB,WAIxC1tB,KAAK0tB,SAASiC,UACd3vB,KAAKwoC,eAAe7Y,UACpB3vB,KAAKupC,QAAQ,WACbvpC,KAAK0lC,KAAO,KACZ1lC,KAAKitB,aAAe,KACpBjtB,KAAKgtB,eAAiB,KACtBhtB,KAAK+sB,WAAa,KAClB/sB,KAAKktB,eAAiB,KACtBltB,KAAKwtB,UAAY,KACjBxtB,KAAK0tB,SAAW,KAChB1tB,KAAK43B,kBAAoB,KACzB53B,KAAKwoC,eAAiB,KACtBxoC,KAAKuoC,iBAAmB,KAC1B,EAEAb,cAAcx2C,UAAU26C,wBAA0B,SAAUjzC,GAC1DoH,KAAKmwB,gBAAkBv3B,EACvBoH,KAAKorC,WACP,EAEA1D,cAAcx2C,UAAU29B,SAAW,SAAUzvB,GAC3CY,KAAK8nC,UAAY1oC,EACjBY,KAAK8qC,mBACP,EAEApD,cAAcx2C,UAAUg+B,aAAe,SAAU9vB,GAC/CY,KAAK+nC,cAAgB3oC,EAAM,GAAK,EAAI,EACpCY,KAAK8qC,mBACP,EAEApD,cAAcx2C,UAAUw7C,QAAU,SAAUC,GAC1C3sC,KAAK4sB,KAAO+f,CACd,EAEAjF,cAAcx2C,UAAU0lC,UAAY,SAAUx3B,EAAK7N,GAC7CA,GAAQyO,KAAKzO,OAASA,GAI1ByO,KAAKyoC,gBAAgB7R,UAAUx3B,EACjC,EAEAsoC,cAAcx2C,UAAU+lC,UAAY,WAClC,OAAOj3B,KAAKyoC,gBAAgBxR,WAC9B,EAEAyQ,cAAcx2C,UAAU6lC,KAAO,SAAUxlC,GACnCA,GAAQyO,KAAKzO,OAASA,GAI1ByO,KAAKyoC,gBAAgB1R,MACvB,EAEA2Q,cAAcx2C,UAAU8lC,OAAS,SAAUzlC,GACrCA,GAAQyO,KAAKzO,OAASA,GAI1ByO,KAAKyoC,gBAAgBzR,QACvB,EAEA0Q,cAAcx2C,UAAU45C,kBAAoB,WAC1C9qC,KAAKksC,cAAgBlsC,KAAK6nC,UAAY7nC,KAAK8nC,UAAY9nC,KAAK+nC,cAC5D/nC,KAAKyoC,gBAAgBtS,QAAQn2B,KAAK8nC,UAAY9nC,KAAK+nC,cACrD,EAEAL,cAAcx2C,UAAU07C,QAAU,WAChC,OAAO5sC,KAAK28B,IACd,EAEA+K,cAAcx2C,UAAUmyC,cAAgB,SAAUC,GAChD,IAAI3G,EAAO,GAEX,GAAI2G,EAAUntC,EACZwmC,EAAO2G,EAAU51B,OACZ,GAAI1N,KAAK2tB,WAAY,CAC1B,IAAI6V,EAAYF,EAAU51B,GAEY,IAAlC81B,EAAUhlC,QAAQ,aACpBglC,EAAYA,EAAU5vC,MAAM,KAAK,IAGnC+oC,EAAO38B,KAAK2tB,WAAa6V,CAC3B,MACE7G,EAAO38B,KAAK28B,KACZA,GAAQ2G,EAAUzrB,EAAIyrB,EAAUzrB,EAAI,GACpC8kB,GAAQ2G,EAAU51B,EAGpB,OAAOivB,CACT,EAEA+K,cAAcx2C,UAAU27C,aAAe,SAAUphB,GAI/C,IAHA,IAAIl2B,EAAI,EACJqI,EAAMoC,KAAKq/B,OAAOlvC,OAEfoF,EAAIqI,GAAK,CACd,GAAI6tB,IAAOzrB,KAAKq/B,OAAO9pC,GAAGk2B,GACxB,OAAOzrB,KAAKq/B,OAAO9pC,GAGrBA,GAAK,CACP,CAEA,OAAO,IACT,EAEAmyC,cAAcx2C,UAAU47C,KAAO,WAC7B9sC,KAAK0tB,SAASof,MAChB,EAEApF,cAAcx2C,UAAU67C,KAAO,WAC7B/sC,KAAK0tB,SAASqf,MAChB,EAEArF,cAAcx2C,UAAUu+B,YAAc,SAAUT,GAC9C,OAAOA,EAAUhvB,KAAKq6B,YAAcr6B,KAAKq6B,YAAcr6B,KAAK4nC,SAC9D,EAEAF,cAAcx2C,UAAU87C,mBAAqB,SAAUrQ,EAAMwC,EAAc3+B,GACzE,IACgBR,KAAK0tB,SAASuf,iBAAiBtQ,GACrCqQ,mBAAmB7N,EAAc3+B,EAC3C,CAAE,MAAOmd,GAAQ,CAEnB,EAEA+pB,cAAcx2C,UAAUq4C,QAAU,SAAUh4C,GAC1C,GAAIyO,KAAK0lC,MAAQ1lC,KAAK0lC,KAAKn0C,GACzB,OAAQA,GACN,IAAK,aACHyO,KAAKwlC,aAAaj0C,EAAM,IAAIqoC,kBAAkBroC,EAAMyO,KAAKmnC,aAAcnnC,KAAKq6B,YAAar6B,KAAKksC,gBAC9F,MAEF,IAAK,aACHlsC,KAAK6oC,gBAAgBhP,YAAc75B,KAAKmnC,aACxCnnC,KAAK6oC,gBAAgB/O,UAAY95B,KAAKq6B,YACtCr6B,KAAK6oC,gBAAgB1Z,UAAYnvB,KAAKksC,cACtClsC,KAAKwlC,aAAaj0C,EAAMyO,KAAK6oC,iBAC7B,MAEF,IAAK,eACH7oC,KAAKwlC,aAAaj0C,EAAM,IAAI0oC,oBAAoB1oC,EAAMyO,KAAK4sB,KAAM5sB,KAAKgoC,UAAWhoC,KAAK6nC,YACtF,MAEF,IAAK,WACH7nC,KAAKwlC,aAAaj0C,EAAM,IAAIyoC,gBAAgBzoC,EAAMyO,KAAK6nC,YACvD,MAEF,IAAK,eACH7nC,KAAKwlC,aAAaj0C,EAAM,IAAI6oC,oBAAoB7oC,EAAMyO,KAAK2yB,WAAY3yB,KAAKq6B,cAC5E,MAEF,IAAK,UACHr6B,KAAKwlC,aAAaj0C,EAAM,IAAI+oC,eAAe/oC,EAAMyO,OACjD,MAEF,QACEA,KAAKwlC,aAAaj0C,GAIX,eAATA,GAAyByO,KAAKitB,cAChCjtB,KAAKitB,aAAan1B,KAAKkI,KAAM,IAAI45B,kBAAkBroC,EAAMyO,KAAKmnC,aAAcnnC,KAAKq6B,YAAar6B,KAAK6nC,YAGxF,iBAATt2C,GAA2ByO,KAAKgtB,gBAClChtB,KAAKgtB,eAAel1B,KAAKkI,KAAM,IAAIi6B,oBAAoB1oC,EAAMyO,KAAK4sB,KAAM5sB,KAAKgoC,UAAWhoC,KAAK6nC,YAGlF,aAATt2C,GAAuByO,KAAK+sB,YAC9B/sB,KAAK+sB,WAAWj1B,KAAKkI,KAAM,IAAIg6B,gBAAgBzoC,EAAMyO,KAAK6nC,YAG/C,iBAATt2C,GAA2ByO,KAAKktB,gBAClCltB,KAAKktB,eAAep1B,KAAKkI,KAAM,IAAIo6B,oBAAoB7oC,EAAMyO,KAAK2yB,WAAY3yB,KAAKq6B,cAGxE,YAAT9oC,GAAsByO,KAAKwtB,WAC7BxtB,KAAKwtB,UAAU11B,KAAKkI,KAAM,IAAIs6B,eAAe/oC,EAAMyO,MAEvD,EAEA0nC,cAAcx2C,UAAUy6C,wBAA0B,SAAUnR,GAC1D,IAAI7c,EAAQ,IAAI4c,wBAAwBC,EAAax6B,KAAKmnC,cAC1DnnC,KAAKwlC,aAAa,QAAS7nB,GAEvB3d,KAAK+hC,SACP/hC,KAAK+hC,QAAQjqC,KAAKkI,KAAM2d,EAE5B,EAEA+pB,cAAcx2C,UAAU85C,mBAAqB,SAAUxQ,GACrD,IAAI7c,EAAQ,IAAI8c,mBAAmBD,EAAax6B,KAAKmnC,cACrDnnC,KAAKwlC,aAAa,QAAS7nB,GAEvB3d,KAAK+hC,SACP/hC,KAAK+hC,QAAQjqC,KAAKkI,KAAM2d,EAE5B,EAEA,IAAIuvB,iBAAmB,WACrB,IAAI3M,EAAW,CAAC,EACZ4M,EAAuB,GACvBC,EAAW,EACXxvC,EAAM,EACNyvC,EAAuB,EACvBC,GAAW,EACXC,GAAY,EAEhB,SAASC,EAAcla,GAIrB,IAHA,IAAI/9B,EAAI,EACJk4C,EAAWna,EAAGhb,OAEX/iB,EAAIqI,GACLuvC,EAAqB53C,GAAGqsC,YAAc6L,IACxCN,EAAqB5yB,OAAOhlB,EAAG,GAC/BA,GAAK,EACLqI,GAAO,EAEF6vC,EAAS7a,UACZ8a,KAIJn4C,GAAK,CAET,CAEA,SAASo4C,EAAkBxU,EAASxM,GAClC,IAAKwM,EACH,OAAO,KAKT,IAFA,IAAI5jC,EAAI,EAEDA,EAAIqI,GAAK,CACd,GAAIuvC,EAAqB53C,GAAGmmB,OAASyd,GAA4C,OAAjCgU,EAAqB53C,GAAGmmB,KACtE,OAAOyxB,EAAqB53C,GAAGqsC,UAGjCrsC,GAAK,CACP,CAEA,IAAIk4C,EAAW,IAAI/F,cAGnB,OAFA2B,EAAeoE,EAAUtU,GACzBsU,EAASjE,QAAQrQ,EAASxM,GACnB8gB,CACT,CAcA,SAASG,IACPP,GAAwB,EACxBQ,GACF,CAEA,SAASH,IACPL,GAAwB,CAC1B,CAEA,SAAShE,EAAeoE,EAAUtU,GAChCsU,EAAS/c,iBAAiB,UAAW8c,GACrCC,EAAS/c,iBAAiB,UAAWkd,GACrCH,EAAS/c,iBAAiB,QAASgd,GACnCP,EAAqB33C,KAAK,CACxBkmB,KAAMyd,EACNyI,UAAW6L,IAEb7vC,GAAO,CACT,CAiCA,SAASs4B,EAAO4X,GACd,IACIv4C,EADAw4C,EAAcD,EAAUV,EAG5B,IAAK73C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAUuK,YAAY4B,GAGhDX,EAAWU,EAEPT,IAAyBE,EAC3BjtC,OAAO0tC,sBAAsB9X,GAE7BoX,GAAW,CAEf,CAEA,SAAS7mB,EAAMqnB,GACbV,EAAWU,EACXxtC,OAAO0tC,sBAAsB9X,EAC/B,CA+EA,SAAS2X,KACFN,GAAaF,GACZC,IACFhtC,OAAO0tC,sBAAsBvnB,GAC7B6mB,GAAW,EAGjB,CAsDA,OAnBA/M,EAASoN,kBAAoBA,EAC7BpN,EAAS3Q,cA7KT,SAAuBpE,GACrB,IAAIiiB,EAAW,IAAI/F,cAGnB,OAFA2B,EAAeoE,EAAU,MACzBA,EAAS3E,UAAUtd,GACZiiB,CACT,EAyKAlN,EAAS1R,SAvKT,SAAkBzvB,EAAKwiC,GACrB,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAU/S,SAASzvB,EAAKwiC,EAEpD,EAkKArB,EAASrR,aAhKT,SAAsB9vB,EAAKwiC,GACzB,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAU1S,aAAa9vB,EAAKwiC,EAExD,EA2JArB,EAAS9R,KAzJT,SAAcmT,GACZ,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAUnT,KAAKmT,EAE3C,EAoJArB,EAAS3R,MA5HT,SAAegT,GACb,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAUhT,MAAMgT,EAE5C,EAuHArB,EAAS5R,KA7GT,SAAciT,GACZ,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAUjT,KAAKiT,EAE3C,EAwGArB,EAASqL,YAtGT,SAAqBhK,GACnB,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAUgK,YAAYhK,EAElD,EAiGArB,EAAS0N,iBAvFT,SAA0BthB,EAAeuhB,EAAYxgB,GACnD,IACIn4B,EADA44C,EAAe,GAAG1zB,OAAO,GAAG1gB,MAAMjC,KAAK+6B,SAASub,uBAAuB,WAAY,GAAGr0C,MAAMjC,KAAK+6B,SAASub,uBAAuB,eAEjIC,EAAWF,EAAah+C,OAE5B,IAAKoF,EAAI,EAAGA,EAAI84C,EAAU94C,GAAK,EACzBm4B,GACFygB,EAAa54C,GAAG+4C,aAAa,eAAgB5gB,GAG/CigB,EAAkBQ,EAAa54C,GAAIo3B,GAGrC,GAAIuhB,GAA2B,IAAbG,EAAgB,CAC3B3gB,IACHA,EAAW,OAGb,IAAI6gB,EAAO1b,SAAS2b,qBAAqB,QAAQ,GACjDD,EAAKE,UAAY,GACjB,IAAIl9B,EAAMwjB,UAAU,OACpBxjB,EAAImb,MAAMztB,MAAQ,OAClBsS,EAAImb,MAAM6E,OAAS,OACnBhgB,EAAI+8B,aAAa,eAAgB5gB,GACjC6gB,EAAKnJ,YAAY7zB,GACjBo8B,EAAkBp8B,EAAKob,EACzB,CACF,EA6DA4T,EAAS8K,OA3DT,WACE,IAAI91C,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAUyJ,QAEtC,EAuDA9K,EAAStR,YA1HT,SAAqBr2B,EAAOo2B,EAAS4S,GACnC,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAU3S,YAAYr2B,EAAOo2B,EAAS4S,EAElE,EAqHArB,EAAS5Q,QAnGT,SAAiBiS,GACf,IAAIrsC,EAEJ,IAAKA,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,EAC7B43C,EAAqB53C,GAAGqsC,UAAUjS,QAAQiS,EAE9C,EA8FArB,EAASmO,OA9CT,WACEnB,GAAY,CACd,EA6CAhN,EAASoO,SA3CT,WACEpB,GAAY,EACZM,GACF,EAyCAtN,EAAS3J,UAvCT,SAAmBx3B,EAAKwiC,GACtB,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAUhL,UAAUx3B,EAAKwiC,EAErD,EAkCArB,EAASxJ,KAhCT,SAAc6K,GACZ,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAU7K,KAAK6K,EAE3C,EA2BArB,EAASvJ,OAzBT,SAAgB4K,GACd,IAAIrsC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB43C,EAAqB53C,GAAGqsC,UAAU5K,OAAO4K,EAE7C,EAoBArB,EAASqO,wBA9NT,WACE,IAAIr5C,EACA84C,EAAWlB,EAAqBh9C,OAChC0+C,EAAa,GAEjB,IAAKt5C,EAAI,EAAGA,EAAI84C,EAAU94C,GAAK,EAC7Bs5C,EAAWr5C,KAAK23C,EAAqB53C,GAAGqsC,WAG1C,OAAOiN,CACT,EAqNOtO,CACT,CAjRuB,GAoRnBuO,cAAgB,WAWlB,IAAI7K,EAAK,CACTA,gBAGA,SAAyBpgC,EAAGlU,EAAG8Q,EAAGgY,EAAGuuB,GACnC,IAAIpqC,EAAMoqC,IAAO,OAASnjC,EAAI,IAAMlU,EAAI,IAAM8Q,EAAI,IAAMgY,GAAGlX,QAAQ,MAAO,KAE1E,GAAIwtC,EAAQnyC,GACV,OAAOmyC,EAAQnyC,GAGjB,IAAIoyC,EAAY,IAAIC,EAAa,CAACprC,EAAGlU,EAAG8Q,EAAGgY,IAE3C,OADAs2B,EAAQnyC,GAAOoyC,EACRA,CACT,GAZID,EAAU,CAAC,EAmBXG,EAAmB,GACnBC,EAAkB,GAAOD,EAAmB,GAC5CE,EAAgD,oBAAjB9X,aAEnC,SAASnlB,EAAEk9B,EAAKC,GACd,OAAO,EAAM,EAAMA,EAAM,EAAMD,CACjC,CAEA,SAASj9B,EAAEi9B,EAAKC,GACd,OAAO,EAAMA,EAAM,EAAMD,CAC3B,CAEA,SAASh9B,EAAEg9B,GACT,OAAO,EAAMA,CACf,CAGA,SAASE,EAAWC,EAAIH,EAAKC,GAC3B,QAASn9B,EAAEk9B,EAAKC,GAAOE,EAAKp9B,EAAEi9B,EAAKC,IAAQE,EAAKn9B,EAAEg9B,IAAQG,CAC5D,CAGA,SAASC,EAASD,EAAIH,EAAKC,GACzB,OAAO,EAAMn9B,EAAEk9B,EAAKC,GAAOE,EAAKA,EAAK,EAAMp9B,EAAEi9B,EAAKC,GAAOE,EAAKn9B,EAAEg9B,EAClE,CAoCA,SAASJ,EAAaS,GACpB1vC,KAAK2vC,GAAKD,EACV1vC,KAAK4vC,eAAiBR,EAAwB,IAAI9X,aAAa4X,GAAoB,IAAIn5C,MAAMm5C,GAC7FlvC,KAAK6vC,cAAe,EACpB7vC,KAAKkY,IAAMlY,KAAKkY,IAAI3gB,KAAKyI,KAC3B,CAqEA,OAnEAivC,EAAa/9C,UAAY,CACvBgnB,IAAK,SAAald,GAChB,IAAI80C,EAAM9vC,KAAK2vC,GAAG,GACdI,EAAM/vC,KAAK2vC,GAAG,GACdK,EAAMhwC,KAAK2vC,GAAG,GACdM,EAAMjwC,KAAK2vC,GAAG,GAElB,OADK3vC,KAAK6vC,cAAc7vC,KAAKkwC,cACzBJ,IAAQC,GAAOC,IAAQC,EAAYj1C,EAG7B,IAANA,EAAgB,EACV,IAANA,EAAgB,EACbu0C,EAAWvvC,KAAKmwC,UAAUn1C,GAAI+0C,EAAKE,EAC5C,EAEAC,YAAa,WACX,IAAIJ,EAAM9vC,KAAK2vC,GAAG,GACdI,EAAM/vC,KAAK2vC,GAAG,GACdK,EAAMhwC,KAAK2vC,GAAG,GACdM,EAAMjwC,KAAK2vC,GAAG,GAClB3vC,KAAK6vC,cAAe,EAEhBC,IAAQC,GAAOC,IAAQC,GACzBjwC,KAAKowC,mBAET,EACAA,kBAAmB,WAIjB,IAHA,IAAIN,EAAM9vC,KAAK2vC,GAAG,GACdK,EAAMhwC,KAAK2vC,GAAG,GAETp6C,EAAI,EAAGA,EAAI25C,IAAoB35C,EACtCyK,KAAK4vC,eAAer6C,GAAKg6C,EAAWh6C,EAAI45C,EAAiBW,EAAKE,EAElE,EAKAG,UAAW,SAAmBE,GAQ5B,IAPA,IAAIP,EAAM9vC,KAAK2vC,GAAG,GACdK,EAAMhwC,KAAK2vC,GAAG,GACdW,EAAgBtwC,KAAK4vC,eACrBW,EAAgB,EAChBC,EAAgB,EAChBC,EAAavB,EAAmB,EAE7BsB,IAAkBC,GAAcH,EAAcE,IAAkBH,IAAMG,EAC3ED,GAAiBpB,EAKnB,IACIuB,EAAYH,GADJF,EAAKC,IAFfE,KAEgDF,EAAcE,EAAgB,GAAKF,EAAcE,IAC5DrB,EACnCwB,EAAelB,EAASiB,EAAWZ,EAAKE,GAE5C,OAAIW,GA9He,KAgDvB,SAA8BN,EAAIO,EAASd,EAAKE,GAC9C,IAAK,IAAIz6C,EAAI,EAAGA,EAlDM,IAkDmBA,EAAG,CAC1C,IAAIs7C,EAAepB,EAASmB,EAASd,EAAKE,GAC1C,GAAqB,IAAjBa,EAAsB,OAAOD,EAEjCA,IADerB,EAAWqB,EAASd,EAAKE,GAAOK,GACzBQ,CACxB,CAEA,OAAOD,CACT,CAsEaE,CAAqBT,EAAIK,EAAWZ,EAAKE,GAG7B,IAAjBW,EACKD,EAtGb,SAAyBL,EAAIU,EAAIC,EAAIlB,EAAKE,GACxC,IAAIiB,EACAC,EACA37C,EAAI,EAER,IAEE07C,EAAW1B,EADX2B,EAAWH,GAAMC,EAAKD,GAAM,EACIjB,EAAKE,GAAOK,GAE7B,EACbW,EAAKE,EAELH,EAAKG,QAEAh/C,KAAK+S,IAAIgsC,GA1CQ,QA0C+B17C,EAzC1B,IA2C/B,OAAO27C,CACT,CAwFWC,CAAgBd,EAAIE,EAAeA,EAAgBpB,EAAiBW,EAAKE,EAClF,GAEK/L,CACT,CAvKoB,GAyKhBmN,QAKK,CACL,OALF,SAAiB5zC,GACf,OAAOA,EAAIid,OAAO+c,iBAAiBh6B,EAAIrN,QACzC,GAOEkhD,YACK,SAAUC,EAAeC,EAASC,GACvC,IAAIC,EAAU,EACVC,EAAaJ,EACbK,EAAOna,iBAAiBka,GAiC5B,MAhCS,CACPE,WAIF,WAUE,OAPIH,EAEQE,EADVF,GAAW,GAGDF,GAId,EAdEM,QAgBF,SAAiB1Y,GACXsY,IAAYC,IACdC,EAAOP,QAAgB,OAAEO,GACzBD,GAAc,GAGZF,GACFA,EAASrY,GAGXwY,EAAKF,GAAWtY,EAChBsY,GAAW,CACb,EAGF,EAGEK,iBASKT,YAAY,GARnB,WACE,MAAO,CACLU,YAAa,EACbC,SAAU7a,iBAAiB,UAAW0E,2BACtCoW,QAAS9a,iBAAiB,UAAW0E,2BAEzC,IAKEqW,mBAmBKb,YAAY,GAlBnB,WACE,MAAO,CACLY,QAAS,GACTE,YAAa,EAEjB,IAEA,SAAiBhZ,GACf,IAAI5jC,EACAqI,EAAMu7B,EAAQ8Y,QAAQ9hD,OAE1B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBu8C,iBAAiBD,QAAQ1Y,EAAQ8Y,QAAQ18C,IAG3C4jC,EAAQ8Y,QAAQ9hD,OAAS,CAC3B,IAKF,SAASiiD,cACP,IAAIC,EAAOngD,KAEX,SAASogD,EAAct/B,EAAIu/B,EAAIt/B,EAAIu/B,EAAIC,EAAIC,GACzC,IAAIC,EAAO3/B,EAAKw/B,EAAKD,EAAKE,EAAKx/B,EAAKy/B,EAAKD,EAAKD,EAAKE,EAAK1/B,EAAKC,EAAKs/B,EAClE,OAAOI,GAAQ,MAASA,EAAO,IACjC,CA2BA,IAAIC,EACK,SAAUC,EAAKC,EAAKC,EAAKC,GAC9B,IACIlvC,EACAvO,EACAqI,EACAq1C,EACAC,EAEAC,EAPAC,EAAgBvX,0BAMhBkW,EAAc,EAEdsB,EAAQ,GACRC,EAAY,GACZC,EAAazB,iBAAiBF,aAGlC,IAFAh0C,EAAMm1C,EAAI5iD,OAEL2T,EAAI,EAAGA,EAAIsvC,EAAetvC,GAAK,EAAG,CAIrC,IAHAovC,EAAOpvC,GAAKsvC,EAAgB,GAC5BD,EAAa,EAER59C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB09C,EAAU9a,MAAM,EAAI+a,EAAM,GAAKL,EAAIt9C,GAAK,EAAI4iC,MAAM,EAAI+a,EAAM,GAAKA,EAAOH,EAAIx9C,GAAK,GAAK,EAAI29C,GAAQ/a,MAAM+a,EAAM,GAAKF,EAAIz9C,GAAK4iC,MAAM+a,EAAM,GAAKJ,EAAIv9C,GACjJ89C,EAAM99C,GAAK09C,EAEU,OAAjBK,EAAU/9C,KACZ49C,GAAchb,MAAMkb,EAAM99C,GAAK+9C,EAAU/9C,GAAI,IAG/C+9C,EAAU/9C,GAAK89C,EAAM99C,GAGnB49C,IAEFpB,GADAoB,EAAa/a,OAAO+a,IAItBI,EAAWvB,SAASluC,GAAKovC,EACzBK,EAAWtB,QAAQnuC,GAAKiuC,CAC1B,CAGA,OADAwB,EAAWxB,YAAcA,EAClBwB,CACT,EA4BF,SAASC,EAAWrjD,GAClB6P,KAAKyzC,cAAgB,EACrBzzC,KAAK0vC,OAAS,IAAI35C,MAAM5F,EAC1B,CAEA,SAASujD,EAAUC,EAASN,GAC1BrzC,KAAK4zC,cAAgBD,EACrB3zC,KAAKqzC,MAAQA,CACf,CAEA,IAAIQ,EAAkB,WACpB,IAAIC,EAAa,CAAC,EAClB,OAAO,SAAUjB,EAAKC,EAAKC,EAAKC,GAC9B,IAAIe,GAAclB,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,IAAIzxC,QAAQ,MAAO,KAElJ,IAAKuyC,EAAWC,GAAa,CAC3B,IACIjwC,EACAvO,EACAqI,EACAq1C,EACAC,EAEAC,EACAE,EARAD,EAAgBvX,0BAMhBkW,EAAc,EAGduB,EAAY,KAEG,IAAfT,EAAI1iD,SAAiB0iD,EAAI,KAAOC,EAAI,IAAMD,EAAI,KAAOC,EAAI,KAAOR,EAAcO,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,GAAID,EAAI,GAAKE,EAAI,GAAIF,EAAI,GAAKE,EAAI,KAAOT,EAAcO,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAKE,EAAI,GAAIF,EAAI,GAAKE,EAAI,MACjOI,EAAgB,GAGlB,IAAIY,EAAa,IAAIR,EAAWJ,GAGhC,IAFAx1C,EAAMm1C,EAAI5iD,OAEL2T,EAAI,EAAGA,EAAIsvC,EAAetvC,GAAK,EAAG,CAKrC,IAJAuvC,EAAQ7b,iBAAiB55B,GACzBs1C,EAAOpvC,GAAKsvC,EAAgB,GAC5BD,EAAa,EAER59C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB09C,EAAU9a,MAAM,EAAI+a,EAAM,GAAKL,EAAIt9C,GAAK,EAAI4iC,MAAM,EAAI+a,EAAM,GAAKA,GAAQL,EAAIt9C,GAAKw9C,EAAIx9C,IAAM,GAAK,EAAI29C,GAAQ/a,MAAM+a,EAAM,IAAMJ,EAAIv9C,GAAKy9C,EAAIz9C,IAAM4iC,MAAM+a,EAAM,GAAKJ,EAAIv9C,GACvK89C,EAAM99C,GAAK09C,EAEO,OAAdK,IACFH,GAAchb,MAAMkb,EAAM99C,GAAK+9C,EAAU/9C,GAAI,IAKjDw8C,GADAoB,EAAa/a,OAAO+a,GAEpBa,EAAWtE,OAAO5rC,GAAK,IAAI4vC,EAAUP,EAAYE,GACjDC,EAAYD,CACd,CAEAW,EAAWP,cAAgB1B,EAC3B+B,EAAWC,GAAcC,CAC3B,CAEA,OAAOF,EAAWC,EACpB,CACF,CAlDsB,GAoDtB,SAASE,EAAgBf,EAAMc,GAC7B,IAAIhC,EAAWgC,EAAWhC,SACtBC,EAAU+B,EAAW/B,QACrBr0C,EAAMo0C,EAAS7hD,OACf+jD,EAAU7b,SAASz6B,EAAM,GAAKs1C,GAC9BiB,EAAYjB,EAAOc,EAAWjC,YAC9BqC,EAAQ,EAEZ,GAAIF,IAAYt2C,EAAM,GAAiB,IAAZs2C,GAAiBC,IAAclC,EAAQiC,GAChE,OAAOlC,EAASkC,GAMlB,IAHA,IAAI9yB,EAAM6wB,EAAQiC,GAAWC,GAAa,EAAI,EAC1Cxf,GAAO,EAEJA,GAQL,GAPIsd,EAAQiC,IAAYC,GAAalC,EAAQiC,EAAU,GAAKC,GAC1DC,GAASD,EAAYlC,EAAQiC,KAAajC,EAAQiC,EAAU,GAAKjC,EAAQiC,IACzEvf,GAAO,GAEPuf,GAAW9yB,EAGT8yB,EAAU,GAAKA,GAAWt2C,EAAM,EAAG,CAErC,GAAIs2C,IAAYt2C,EAAM,EACpB,OAAOo0C,EAASkC,GAGlBvf,GAAO,CACT,CAGF,OAAOqd,EAASkC,IAAYlC,EAASkC,EAAU,GAAKlC,EAASkC,IAAYE,CAC3E,CAUA,IAAIC,EAAsBld,iBAAiB,UAAW,GAyDtD,MAAO,CACLmd,kBA7LF,SAA2BC,GACzB,IAKIh/C,EALAi/C,EAAiBtC,mBAAmBN,aACpCvR,EAASkU,EAAU9zC,EACnBg0C,EAAQF,EAAU5+C,EAClB++C,EAAQH,EAAUttC,EAClB0tC,EAAQJ,EAAUh/C,EAElBqI,EAAM22C,EAAU9C,QAChBQ,EAAUuC,EAAevC,QACzBE,EAAc,EAElB,IAAK58C,EAAI,EAAGA,EAAIqI,EAAM,EAAGrI,GAAK,EAC5B08C,EAAQ18C,GAAKq9C,EAAgB6B,EAAMl/C,GAAIk/C,EAAMl/C,EAAI,GAAIm/C,EAAMn/C,GAAIo/C,EAAMp/C,EAAI,IACzE48C,GAAeF,EAAQ18C,GAAGw8C,YAS5B,OANI1R,GAAUziC,IACZq0C,EAAQ18C,GAAKq9C,EAAgB6B,EAAMl/C,GAAIk/C,EAAM,GAAIC,EAAMn/C,GAAIo/C,EAAM,IACjExC,GAAeF,EAAQ18C,GAAGw8C,aAG5ByC,EAAerC,YAAcA,EACtBqC,CACT,EAuKEI,cAzDF,SAAuB/B,EAAKC,EAAKC,EAAKC,EAAK6B,EAAWC,EAASd,GACzDa,EAAY,EACdA,EAAY,EACHA,EAAY,IACrBA,EAAY,GAGd,IAGIt/C,EAHAw/C,EAAKd,EAAgBY,EAAWb,GAEhCgB,EAAKf,EADTa,EAAUA,EAAU,EAAI,EAAIA,EACMd,GAE9Bp2C,EAAMi1C,EAAI1iD,OACV8kD,EAAK,EAAIF,EACTG,EAAK,EAAIF,EACTG,EAASF,EAAKA,EAAKA,EACnBG,EAAWL,EAAKE,EAAKA,EAAK,EAE1BI,EAAWN,EAAKA,EAAKE,EAAK,EAE1BK,EAASP,EAAKA,EAAKA,EAEnBQ,EAASN,EAAKA,EAAKC,EACnBM,EAAWT,EAAKE,EAAKC,EAAKD,EAAKF,EAAKG,EAAKD,EAAKA,EAAKD,EAEnDS,EAAWV,EAAKA,EAAKG,EAAKD,EAAKF,EAAKC,EAAKD,EAAKE,EAAKD,EAEnDU,EAASX,EAAKA,EAAKC,EAEnBW,EAASV,EAAKC,EAAKA,EACnBU,EAAWb,EAAKG,EAAKA,EAAKD,EAAKD,EAAKE,EAAKD,EAAKC,EAAKF,EAEnDa,EAAWd,EAAKC,EAAKE,EAAKD,EAAKD,EAAKA,EAAKD,EAAKG,EAAKF,EAEnDc,EAASf,EAAKC,EAAKA,EAEnBe,EAASb,EAAKA,EAAKA,EACnBc,EAAWhB,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,EAEnDiB,EAAWjB,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,EAEnDkB,EAASlB,EAAKA,EAAKA,EAEvB,IAAKz/C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB8+C,EAAwB,EAAJ9+C,GAAS88C,EAAK5jC,MAAoF,KAA7E0mC,EAAStC,EAAIt9C,GAAK6/C,EAAWrC,EAAIx9C,GAAK8/C,EAAWrC,EAAIz9C,GAAK+/C,EAASxC,EAAIv9C,KAAc,IAE9H8+C,EAAwB,EAAJ9+C,EAAQ,GAAK88C,EAAK5jC,MAAoF,KAA7E8mC,EAAS1C,EAAIt9C,GAAKigD,EAAWzC,EAAIx9C,GAAKkgD,EAAWzC,EAAIz9C,GAAKmgD,EAAS5C,EAAIv9C,KAAc,IAElI8+C,EAAwB,EAAJ9+C,EAAQ,GAAK88C,EAAK5jC,MAAoF,KAA7EknC,EAAS9C,EAAIt9C,GAAKqgD,EAAW7C,EAAIx9C,GAAKsgD,EAAW7C,EAAIz9C,GAAKugD,EAAShD,EAAIv9C,KAAc,IAElI8+C,EAAwB,EAAJ9+C,EAAQ,GAAK88C,EAAK5jC,MAAoF,KAA7EsnC,EAASlD,EAAIt9C,GAAKygD,EAAWjD,EAAIx9C,GAAK0gD,EAAWjD,EAAIz9C,GAAK2gD,EAASpD,EAAIv9C,KAAc,IAGpI,OAAO8+C,CACT,EAKE8B,kBApEF,SAA2BtD,EAAKC,EAAKC,EAAKC,EAAKoD,EAASpC,GACtD,IAAIgB,EAAKf,EAAgBmC,EAASpC,GAC9BkB,EAAK,EAAIF,EAGb,MAAO,CAFG3C,EAAK5jC,MAAwK,KAAjKymC,EAAKA,EAAKA,EAAKrC,EAAI,IAAMmC,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,GAAMjC,EAAI,IAAMiC,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,GAAMhC,EAAI,GAAKgC,EAAKA,EAAKA,EAAKlC,EAAI,KAAc,IACrLT,EAAK5jC,MAAwK,KAAjKymC,EAAKA,EAAKA,EAAKrC,EAAI,IAAMmC,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,GAAMjC,EAAI,IAAMiC,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,GAAMhC,EAAI,GAAKgC,EAAKA,EAAKA,EAAKlC,EAAI,KAAc,IAEjM,EA+DEe,gBAAiBA,EACjBvB,cAAeA,EACf+D,cAvQF,SAAuBrjC,EAAIu/B,EAAI+D,EAAIrjC,EAAIu/B,EAAI+D,EAAI9D,EAAIC,EAAI8D,GACrD,GAAW,IAAPF,GAAmB,IAAPC,GAAmB,IAAPC,EAC1B,OAAOlE,EAAct/B,EAAIu/B,EAAIt/B,EAAIu/B,EAAIC,EAAIC,GAG3C,IAGI+D,EAHAC,EAAQrE,EAAK/8B,KAAK+8B,EAAKh/C,IAAI4f,EAAKD,EAAI,GAAKq/B,EAAKh/C,IAAIm/C,EAAKD,EAAI,GAAKF,EAAKh/C,IAAIkjD,EAAKD,EAAI,IAClFK,EAAQtE,EAAK/8B,KAAK+8B,EAAKh/C,IAAIo/C,EAAKz/B,EAAI,GAAKq/B,EAAKh/C,IAAIq/C,EAAKH,EAAI,GAAKF,EAAKh/C,IAAImjD,EAAKF,EAAI,IAClFM,EAAQvE,EAAK/8B,KAAK+8B,EAAKh/C,IAAIo/C,EAAKx/B,EAAI,GAAKo/B,EAAKh/C,IAAIq/C,EAAKF,EAAI,GAAKH,EAAKh/C,IAAImjD,EAAKD,EAAI,IAetF,OAVIE,EAFAC,EAAQC,EACND,EAAQE,EACCF,EAAQC,EAAQC,EAEhBA,EAAQD,EAAQD,EAEpBE,EAAQD,EACNC,EAAQD,EAAQD,EAEhBC,EAAQD,EAAQE,IAGV,MAAUH,EAAW,IAC1C,EAkPF,CAEA,IAAII,IAAMzE,cAEN0E,UAAYriB,oBACZsiB,QAAU7kD,KAAK+S,IAEnB,SAAS+xC,iBAAiBC,EAAUC,GAClC,IACIC,EADAC,EAAap3C,KAAKo3C,WAGA,qBAAlBp3C,KAAKq3C,WACPF,EAAWhgB,iBAAiB,UAAWn3B,KAAKs3C,GAAGnnD,SAWjD,IARA,IAIIonD,EACAC,EACAC,EA6BA3zC,EACA25B,EACAyV,EACA1V,EACAziC,EACA28C,EAxCAC,EAAiBT,EAAQU,UACzBriD,EAAIoiD,EACJ/5C,EAAMoC,KAAK63C,UAAU1nD,OAAS,EAC9BwkC,GAAO,EAKJA,GAAM,CAIX,GAHA4iB,EAAUv3C,KAAK63C,UAAUtiD,GACzBiiD,EAAcx3C,KAAK63C,UAAUtiD,EAAI,GAE7BA,IAAMqI,EAAM,GAAKq5C,GAAYO,EAAY7yC,EAAIyyC,EAAY,CACvDG,EAAQpnC,IACVonC,EAAUC,GAGZG,EAAiB,EACjB,KACF,CAEA,GAAIH,EAAY7yC,EAAIyyC,EAAaH,EAAU,CACzCU,EAAiBpiD,EACjB,KACF,CAEIA,EAAIqI,EAAM,EACZrI,GAAK,GAELoiD,EAAiB,EACjBhjB,GAAO,EAEX,CAEA8iB,EAAmBz3C,KAAK83C,kBAAkBviD,IAAM,CAAC,EAOjD,IAEIwiD,EAFAC,EAAcR,EAAY7yC,EAAIyyC,EAC9Ba,EAAUV,EAAQ5yC,EAAIyyC,EAG1B,GAAIG,EAAQW,GAAI,CACTT,EAAiBzD,aACpByD,EAAiBzD,WAAa6C,IAAIhD,gBAAgB0D,EAAQnqC,EAAGoqC,EAAYpqC,GAAKmqC,EAAQphD,EAAGohD,EAAQW,GAAIX,EAAQY,KAG/G,IAAInE,EAAayD,EAAiBzD,WAElC,GAAIiD,GAAYe,GAAef,EAAWgB,EAAS,CACjD,IAAIG,EAAMnB,GAAYe,EAAchE,EAAWtE,OAAOv/C,OAAS,EAAI,EAGnE,IAFAstC,EAAOuW,EAAWtE,OAAO0I,GAAK/E,MAAMljD,OAE/B2T,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACzBqzC,EAASrzC,GAAKkwC,EAAWtE,OAAO0I,GAAK/E,MAAMvvC,EAG/C,KAAO,CACD2zC,EAAiBY,OACnBX,EAAMD,EAAiBY,QAEvBX,EAAM5I,cAAcwJ,gBAAgBf,EAAQtwC,EAAEjM,EAAGu8C,EAAQtwC,EAAEqF,EAAGirC,EAAQhiD,EAAEyF,EAAGu8C,EAAQhiD,EAAE+W,EAAGirC,EAAQppC,GAAG+J,IACnGu/B,EAAiBY,OAASX,GAG5BxE,EAAOwE,GAAKT,EAAWgB,IAAYD,EAAcC,IACjD,IACIM,EADAC,EAAiBxE,EAAWP,cAAgBP,EAE5CnB,EAAcmF,EAAQuB,UAAYxB,GAAYC,EAAQwB,qBAAuBnjD,EAAI2hD,EAAQyB,iBAAmB,EAKhH,IAJA59C,EAAIm8C,EAAQuB,UAAYxB,GAAYC,EAAQwB,qBAAuBnjD,EAAI2hD,EAAQ0B,WAAa,EAC5FjkB,GAAO,EACP6I,EAAOwW,EAAWtE,OAAOv/C,OAElBwkC,GAAM,CAGX,GAFAod,GAAeiC,EAAWtE,OAAO30C,GAAG64C,cAEb,IAAnB4E,GAAiC,IAATtF,GAAcn4C,IAAMi5C,EAAWtE,OAAOv/C,OAAS,EAAG,CAG5E,IAFAstC,EAAOuW,EAAWtE,OAAO30C,GAAGs4C,MAAMljD,OAE7B2T,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACzBqzC,EAASrzC,GAAKkwC,EAAWtE,OAAO30C,GAAGs4C,MAAMvvC,GAG3C,KACF,CAAO,GAAI00C,GAAkBzG,GAAeyG,EAAiBzG,EAAciC,EAAWtE,OAAO30C,EAAI,GAAG64C,cAAe,CAIjH,IAHA2E,GAAeC,EAAiBzG,GAAeiC,EAAWtE,OAAO30C,EAAI,GAAG64C,cACxEnW,EAAOuW,EAAWtE,OAAO30C,GAAGs4C,MAAMljD,OAE7B2T,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACzBqzC,EAASrzC,GAAKkwC,EAAWtE,OAAO30C,GAAGs4C,MAAMvvC,IAAMkwC,EAAWtE,OAAO30C,EAAI,GAAGs4C,MAAMvvC,GAAKkwC,EAAWtE,OAAO30C,GAAGs4C,MAAMvvC,IAAMy0C,EAGtH,KACF,CAEIx9C,EAAIyiC,EAAO,EACbziC,GAAK,EAEL45B,GAAO,CAEX,CAEAuiB,EAAQ0B,WAAa79C,EACrBm8C,EAAQyB,iBAAmB5G,EAAciC,EAAWtE,OAAO30C,GAAG64C,cAC9DsD,EAAQwB,mBAAqBnjD,CAC/B,CACF,KAAO,CACL,IAAIsjD,EACAC,EACAC,EACAC,EACAC,EAIJ,GAHAr7C,EAAM25C,EAAQnqC,EAAEjd,OAChB4nD,EAAWP,EAAYpqC,GAAKmqC,EAAQphD,EAEhC6J,KAAKk5C,IAAoB,IAAd3B,EAAQpnC,EACjB8mC,GAAYe,GACdb,EAAS,GAAKY,EAAS,GACvBZ,EAAS,GAAKY,EAAS,GACvBZ,EAAS,GAAKY,EAAS,IACdd,GAAYgB,GACrBd,EAAS,GAAKI,EAAQnqC,EAAE,GACxB+pC,EAAS,GAAKI,EAAQnqC,EAAE,GACxB+pC,EAAS,GAAKI,EAAQnqC,EAAE,IAKxB+rC,kBAAkBhC,EAAUiC,MAHZC,iBAAiB9B,EAAQnqC,GAC3BisC,iBAAiBtB,IACnBd,EAAWgB,IAAYD,EAAcC,UAInD,IAAK1iD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACN,IAAdgiD,EAAQpnC,IACN8mC,GAAYe,EACd9E,EAAO,EACE+D,EAAWgB,EACpB/E,EAAO,GAEHqE,EAAQtwC,EAAEjM,EAAE3K,cAAgB0F,OACzB0hD,EAAiBY,SACpBZ,EAAiBY,OAAS,IAGvBZ,EAAiBY,OAAO9iD,GAQ3BmiD,EAAMD,EAAiBY,OAAO9iD,IAP9BsjD,OAA0B9mD,IAAnBwlD,EAAQtwC,EAAEjM,EAAEzF,GAAmBgiD,EAAQtwC,EAAEjM,EAAE,GAAKu8C,EAAQtwC,EAAEjM,EAAEzF,GACnEujD,OAA0B/mD,IAAnBwlD,EAAQtwC,EAAEqF,EAAE/W,GAAmBgiD,EAAQtwC,EAAEqF,EAAE,GAAKirC,EAAQtwC,EAAEqF,EAAE/W,GACnEwjD,OAAyBhnD,IAAnBwlD,EAAQhiD,EAAEyF,EAAEzF,GAAmBgiD,EAAQhiD,EAAEyF,EAAE,GAAKu8C,EAAQhiD,EAAEyF,EAAEzF,GAClEyjD,OAAyBjnD,IAAnBwlD,EAAQhiD,EAAE+W,EAAE/W,GAAmBgiD,EAAQhiD,EAAE+W,EAAE,GAAKirC,EAAQhiD,EAAE+W,EAAE/W,GAClEmiD,EAAM5I,cAAcwJ,gBAAgBO,EAAMC,EAAMC,EAAKC,GAAK9gC,IAC1Du/B,EAAiBY,OAAO9iD,GAAKmiD,IAIrBD,EAAiBY,OAQ3BX,EAAMD,EAAiBY,QAPvBQ,EAAOtB,EAAQtwC,EAAEjM,EACjB89C,EAAOvB,EAAQtwC,EAAEqF,EACjBysC,EAAMxB,EAAQhiD,EAAEyF,EAChBg+C,EAAMzB,EAAQhiD,EAAE+W,EAChBorC,EAAM5I,cAAcwJ,gBAAgBO,EAAMC,EAAMC,EAAKC,GAAK9gC,IAC1Dq/B,EAAQE,iBAAmBC,GAK7BxE,EAAOwE,GAAKT,EAAWgB,IAAYD,EAAcC,MAIrDF,EAAWP,EAAYpqC,GAAKmqC,EAAQphD,EACpC8iD,EAAyB,IAAd1B,EAAQpnC,EAAUonC,EAAQnqC,EAAE7X,GAAKgiD,EAAQnqC,EAAE7X,IAAMwiD,EAASxiD,GAAKgiD,EAAQnqC,EAAE7X,IAAM29C,EAEpE,qBAAlBlzC,KAAKq3C,SACPF,EAAS5hD,GAAK0jD,EAEd9B,EAAW8B,CAInB,CAGA,OADA/B,EAAQU,UAAYD,EACbR,CACT,CAGA,SAASiC,MAAMv1C,EAAGlU,EAAGgV,GACnB,IASI20C,EACAC,EACAC,EACAC,EACAC,EAbA12C,EAAM,GACN22C,EAAK91C,EAAE,GACP+1C,EAAK/1C,EAAE,GACPg2C,EAAKh2C,EAAE,GACPi2C,EAAKj2C,EAAE,GACPk2C,EAAKpqD,EAAE,GACPqqD,EAAKrqD,EAAE,GACPsqD,EAAKtqD,EAAE,GACPuqD,EAAKvqD,EAAE,GA8BX,OAxBA4pD,EAAQI,EAAKI,EAAKH,EAAKI,EAAKH,EAAKI,EAAKH,EAAKI,GAE/B,IACVX,GAASA,EACTQ,GAAMA,EACNC,GAAMA,EACNC,GAAMA,EACNC,GAAMA,GAGJ,EAAMX,EAAQ,MAChBD,EAAQpnD,KAAKioD,KAAKZ,GAClBC,EAAQtnD,KAAKub,IAAI6rC,GACjBG,EAASvnD,KAAKub,KAAK,EAAM9I,GAAK20C,GAASE,EACvCE,EAASxnD,KAAKub,IAAI9I,EAAI20C,GAASE,IAE/BC,EAAS,EAAM90C,EACf+0C,EAAS/0C,GAGX3B,EAAI,GAAKy2C,EAASE,EAAKD,EAASK,EAChC/2C,EAAI,GAAKy2C,EAASG,EAAKF,EAASM,EAChCh3C,EAAI,GAAKy2C,EAASI,EAAKH,EAASO,EAChCj3C,EAAI,GAAKy2C,EAASK,EAAKJ,EAASQ,EACzBl3C,CACT,CAEA,SAASm2C,kBAAkBn2C,EAAKo3C,GAC9B,IAAIC,EAAKD,EAAK,GACVE,EAAKF,EAAK,GACVG,EAAKH,EAAK,GACVI,EAAKJ,EAAK,GACVK,EAAUvoD,KAAKwoD,MAAM,EAAIJ,EAAKE,EAAK,EAAIH,EAAKE,EAAI,EAAI,EAAID,EAAKA,EAAK,EAAIC,EAAKA,GAC3EI,EAAWzoD,KAAK0oD,KAAK,EAAIP,EAAKC,EAAK,EAAIC,EAAKC,GAC5CK,EAAO3oD,KAAKwoD,MAAM,EAAIL,EAAKG,EAAK,EAAIF,EAAKC,EAAI,EAAI,EAAIF,EAAKA,EAAK,EAAIE,EAAKA,GAC5Ev3C,EAAI,GAAKy3C,EAAU3hB,UACnB91B,EAAI,GAAK23C,EAAW7hB,UACpB91B,EAAI,GAAK63C,EAAO/hB,SAClB,CAEA,SAASugB,iBAAiBhoD,GACxB,IAAIopD,EAAUppD,EAAO,GAAKynC,UACtB6hB,EAAWtpD,EAAO,GAAKynC,UACvB+hB,EAAOxpD,EAAO,GAAKynC,UACnBgiB,EAAK5oD,KAAKob,IAAImtC,EAAU,GACxBM,EAAK7oD,KAAKob,IAAIqtC,EAAW,GACzBK,EAAK9oD,KAAKob,IAAIutC,EAAO,GACrBI,EAAK/oD,KAAKub,IAAIgtC,EAAU,GACxBS,EAAKhpD,KAAKub,IAAIktC,EAAW,GACzBQ,EAAKjpD,KAAKub,IAAIotC,EAAO,GAKzB,MAAO,CAHCI,EAAKC,EAAKF,EAAKF,EAAKC,EAAKI,EACzBF,EAAKF,EAAKC,EAAKF,EAAKI,EAAKC,EACzBL,EAAKI,EAAKF,EAAKC,EAAKF,EAAKI,EAHzBL,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAKnC,CAEA,SAASC,wBACP,IAAInE,EAAWj3C,KAAKs+B,KAAK+c,cAAgBr7C,KAAKo3C,WAC1ChK,EAAWptC,KAAK63C,UAAU,GAAGlzC,EAAI3E,KAAKo3C,WACtCkE,EAAUt7C,KAAK63C,UAAU73C,KAAK63C,UAAU1nD,OAAS,GAAGwU,EAAI3E,KAAKo3C,WAEjE,KAAMH,IAAaj3C,KAAKu7C,SAAS9C,WAAaz4C,KAAKu7C,SAAS9C,YAAc3B,YAAc92C,KAAKu7C,SAAS9C,WAAa6C,GAAWrE,GAAYqE,GAAWt7C,KAAKu7C,SAAS9C,UAAYrL,GAAY6J,EAAW7J,IAAY,CAC5MptC,KAAKu7C,SAAS9C,WAAaxB,IAC7Bj3C,KAAKu7C,SAAS7C,oBAAsB,EACpC14C,KAAKu7C,SAAS3D,UAAY,GAG5B,IAAI4D,EAAex7C,KAAKg3C,iBAAiBC,EAAUj3C,KAAKu7C,UACxDv7C,KAAKs3C,GAAKkE,CACZ,CAGA,OADAx7C,KAAKu7C,SAAS9C,UAAYxB,EACnBj3C,KAAKs3C,EACd,CAEA,SAASmE,UAAUr8C,GACjB,IAAIs8C,EAEJ,GAAsB,mBAAlB17C,KAAKq3C,SACPqE,EAAkBt8C,EAAMY,KAAK27C,KAEzB5E,QAAQ/2C,KAAKrK,EAAI+lD,GAAmB,OACtC17C,KAAKrK,EAAI+lD,EACT17C,KAAK47C,MAAO,QAMd,IAHA,IAAIrmD,EAAI,EACJqI,EAAMoC,KAAKrK,EAAExF,OAEVoF,EAAIqI,GACT89C,EAAkBt8C,EAAI7J,GAAKyK,KAAK27C,KAE5B5E,QAAQ/2C,KAAKrK,EAAEJ,GAAKmmD,GAAmB,OACzC17C,KAAKrK,EAAEJ,GAAKmmD,EACZ17C,KAAK47C,MAAO,GAGdrmD,GAAK,CAGX,CAEA,SAASsmD,yBACP,GAAI77C,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,SAAY97C,KAAK+7C,gBAAgB5rD,OAI3E,GAAI6P,KAAKg8C,KACPh8C,KAAKy7C,UAAUz7C,KAAKs3C,QADtB,CAOA,IAAI/hD,EAFJyK,KAAKg8C,MAAO,EACZh8C,KAAK47C,KAAO57C,KAAKi8C,cAEjB,IAAIr+C,EAAMoC,KAAK+7C,gBAAgB5rD,OAC3B+rD,EAAal8C,KAAKm8C,GAAKn8C,KAAKs3C,GAAKt3C,KAAKkgB,KAAKpc,EAE/C,IAAKvO,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB2mD,EAAal8C,KAAK+7C,gBAAgBxmD,GAAG2mD,GAGvCl8C,KAAKy7C,UAAUS,GACfl8C,KAAKi8C,eAAgB,EACrBj8C,KAAKg8C,MAAO,EACZh8C,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,OAfpC,CAgBF,CAEA,SAASM,UAAUC,GACjBr8C,KAAK+7C,gBAAgBvmD,KAAK6mD,GAC1Br8C,KAAK1G,UAAUgjD,mBAAmBt8C,KACpC,CAEA,SAASu8C,cAAc7gC,EAAMwE,EAAMy7B,EAAMriD,GACvC0G,KAAKq3C,SAAW,iBAChBr3C,KAAK27C,KAAOA,GAAQ,EACpB37C,KAAKkgB,KAAOA,EACZlgB,KAAKrK,EAAIgmD,EAAOz7B,EAAKpc,EAAI63C,EAAOz7B,EAAKpc,EACrC9D,KAAKs3C,GAAKp3B,EAAKpc,EACf9D,KAAK47C,MAAO,EACZ57C,KAAK0b,KAAOA,EACZ1b,KAAK1G,UAAYA,EACjB0G,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAK8D,GAAI,EACT9D,KAAKm8C,IAAK,EACVn8C,KAAKw8C,IAAM,EACXx8C,KAAK+7C,gBAAkB,GACvB/7C,KAAKi8C,eAAgB,EACrBj8C,KAAKy8C,SAAWZ,uBAChB77C,KAAKy7C,UAAYA,UACjBz7C,KAAKo8C,UAAYA,SACnB,CAEA,SAASM,yBAAyBhhC,EAAMwE,EAAMy7B,EAAMriD,GAWlD,IAAI/D,EAVJyK,KAAKq3C,SAAW,mBAChBr3C,KAAK27C,KAAOA,GAAQ,EACpB37C,KAAKkgB,KAAOA,EACZlgB,KAAK47C,MAAO,EACZ57C,KAAK0b,KAAOA,EACZ1b,KAAK1G,UAAYA,EACjB0G,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAK8D,GAAI,EACT9D,KAAKm8C,IAAK,EACVn8C,KAAK87C,SAAW,EAEhB,IAAIl+C,EAAMsiB,EAAKpc,EAAE3T,OAKjB,IAJA6P,KAAKrK,EAAIwhC,iBAAiB,UAAWv5B,GACrCoC,KAAKs3C,GAAKngB,iBAAiB,UAAWv5B,GACtCoC,KAAKw8C,IAAMrlB,iBAAiB,UAAWv5B,GAElCrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKrK,EAAEJ,GAAK2qB,EAAKpc,EAAEvO,GAAKyK,KAAK27C,KAC7B37C,KAAKs3C,GAAG/hD,GAAK2qB,EAAKpc,EAAEvO,GAGtByK,KAAKi8C,eAAgB,EACrBj8C,KAAK+7C,gBAAkB,GACvB/7C,KAAKy8C,SAAWZ,uBAChB77C,KAAKy7C,UAAYA,UACjBz7C,KAAKo8C,UAAYA,SACnB,CAEA,SAASO,uBAAuBjhC,EAAMwE,EAAMy7B,EAAMriD,GAChD0G,KAAKq3C,SAAW,iBAChBr3C,KAAK63C,UAAY33B,EAAKpc,EACtB9D,KAAK83C,kBAAoB,GACzB93C,KAAKo3C,WAAa17B,EAAKwE,KAAKyf,GAC5B3/B,KAAK87C,SAAW,EAChB97C,KAAKu7C,SAAW,CACd9C,UAAW3B,UACXc,UAAW,EACXh/C,MAAO,EACP8/C,oBAAqB,GAEvB14C,KAAK8D,GAAI,EACT9D,KAAKm8C,IAAK,EACVn8C,KAAKkgB,KAAOA,EACZlgB,KAAK27C,KAAOA,GAAQ,EACpB37C,KAAK0b,KAAOA,EACZ1b,KAAK1G,UAAYA,EACjB0G,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAKrK,EAAImhD,UACT92C,KAAKs3C,GAAKR,UACV92C,KAAKi8C,eAAgB,EACrBj8C,KAAKy8C,SAAWZ,uBAChB77C,KAAKy7C,UAAYA,UACjBz7C,KAAKg3C,iBAAmBA,iBACxBh3C,KAAK+7C,gBAAkB,CAACX,sBAAsB7jD,KAAKyI,OACnDA,KAAKo8C,UAAYA,SACnB,CAEA,SAASQ,kCAAkClhC,EAAMwE,EAAMy7B,EAAMriD,GAE3D,IAAI/D,EADJyK,KAAKq3C,SAAW,mBAEhB,IACIjqC,EACAjX,EACA+hD,EACAC,EAJAv6C,EAAMsiB,EAAKpc,EAAE3T,OAMjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAM,EAAGrI,GAAK,EACxB2qB,EAAKpc,EAAEvO,GAAG2iD,IAAMh4B,EAAKpc,EAAEvO,GAAG6X,GAAK8S,EAAKpc,EAAEvO,EAAI,IAAM2qB,EAAKpc,EAAEvO,EAAI,GAAG6X,IAChEA,EAAI8S,EAAKpc,EAAEvO,GAAG6X,EACdjX,EAAI+pB,EAAKpc,EAAEvO,EAAI,GAAG6X,EAClB8qC,EAAKh4B,EAAKpc,EAAEvO,GAAG2iD,GACfC,EAAKj4B,EAAKpc,EAAEvO,GAAG4iD,IAEE,IAAb/qC,EAAEjd,SAAkBid,EAAE,KAAOjX,EAAE,IAAMiX,EAAE,KAAOjX,EAAE,KAAO0gD,IAAIvE,cAAcllC,EAAE,GAAIA,EAAE,GAAIjX,EAAE,GAAIA,EAAE,GAAIiX,EAAE,GAAK8qC,EAAG,GAAI9qC,EAAE,GAAK8qC,EAAG,KAAOrB,IAAIvE,cAAcllC,EAAE,GAAIA,EAAE,GAAIjX,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKgiD,EAAG,GAAIhiD,EAAE,GAAKgiD,EAAG,KAAoB,IAAb/qC,EAAEjd,SAAkBid,EAAE,KAAOjX,EAAE,IAAMiX,EAAE,KAAOjX,EAAE,IAAMiX,EAAE,KAAOjX,EAAE,KAAO0gD,IAAIR,cAAcjpC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIjX,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIiX,EAAE,GAAK8qC,EAAG,GAAI9qC,EAAE,GAAK8qC,EAAG,GAAI9qC,EAAE,GAAK8qC,EAAG,KAAOrB,IAAIR,cAAcjpC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIjX,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKgiD,EAAG,GAAIhiD,EAAE,GAAKgiD,EAAG,GAAIhiD,EAAE,GAAKgiD,EAAG,OACldj4B,EAAKpc,EAAEvO,GAAG2iD,GAAK,KACfh4B,EAAKpc,EAAEvO,GAAG4iD,GAAK,MAGb/qC,EAAE,KAAOjX,EAAE,IAAMiX,EAAE,KAAOjX,EAAE,IAAgB,IAAV+hD,EAAG,IAAsB,IAAVA,EAAG,IAAsB,IAAVC,EAAG,IAAsB,IAAVA,EAAG,KACnE,IAAb/qC,EAAEjd,QAAgBid,EAAE,KAAOjX,EAAE,IAAgB,IAAV+hD,EAAG,IAAsB,IAAVC,EAAG,MACvDj4B,EAAKpc,EAAEvO,GAAG2iD,GAAK,KACfh4B,EAAKpc,EAAEvO,GAAG4iD,GAAK,OAMvBn4C,KAAK+7C,gBAAkB,CAACX,sBAAsB7jD,KAAKyI,OACnDA,KAAKkgB,KAAOA,EACZlgB,KAAK63C,UAAY33B,EAAKpc,EACtB9D,KAAK83C,kBAAoB,GACzB93C,KAAKo3C,WAAa17B,EAAKwE,KAAKyf,GAC5B3/B,KAAK8D,GAAI,EACT9D,KAAKm8C,IAAK,EACVn8C,KAAKi8C,eAAgB,EACrBj8C,KAAK27C,KAAOA,GAAQ,EACpB37C,KAAK0b,KAAOA,EACZ1b,KAAK1G,UAAYA,EACjB0G,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAKy8C,SAAWZ,uBAChB77C,KAAKy7C,UAAYA,UACjBz7C,KAAKg3C,iBAAmBA,iBACxBh3C,KAAK87C,SAAW,EAChB,IAAIe,EAAS38B,EAAKpc,EAAE,GAAGsJ,EAAEjd,OAIzB,IAHA6P,KAAKrK,EAAIwhC,iBAAiB,UAAW0lB,GACrC78C,KAAKs3C,GAAKngB,iBAAiB,UAAW0lB,GAEjCtnD,EAAI,EAAGA,EAAIsnD,EAAQtnD,GAAK,EAC3ByK,KAAKrK,EAAEJ,GAAKuhD,UACZ92C,KAAKs3C,GAAG/hD,GAAKuhD,UAGf92C,KAAKu7C,SAAW,CACd9C,UAAW3B,UACXc,UAAW,EACXh/C,MAAOu+B,iBAAiB,UAAW0lB,IAErC78C,KAAKo8C,UAAYA,SACnB,CAEA,IAAIU,gBAkCO,CACPC,QAlCF,SAAiBrhC,EAAMwE,EAAM1C,EAAMm+B,EAAMriD,GAKvC,IAAIoU,EAEJ,GANIwS,EAAK88B,MACP98B,EAAOxE,EAAKutB,WAAWgU,YAAYF,QAAQ78B,IAKxCA,EAAKpc,EAAE3T,OAEL,GAAyB,kBAAd+vB,EAAKpc,EAAE,GACvB4J,EAAI,IAAIgvC,yBAAyBhhC,EAAMwE,EAAMy7B,EAAMriD,QAEnD,OAAQkkB,GACN,KAAK,EACH9P,EAAI,IAAIivC,uBAAuBjhC,EAAMwE,EAAMy7B,EAAMriD,GACjD,MAEF,KAAK,EACHoU,EAAI,IAAIkvC,kCAAkClhC,EAAMwE,EAAMy7B,EAAMriD,QAVhEoU,EAAI,IAAI6uC,cAAc7gC,EAAMwE,EAAMy7B,EAAMriD,GAsB1C,OAJIoU,EAAEquC,gBAAgB5rD,QACpBmJ,EAAUgjD,mBAAmB5uC,GAGxBA,CACT,GAQF,SAASwvC,2BAA4B,CAErCA,yBAAyBhsD,UAAY,CACnCorD,mBAAoB,SAA4B/mB,IACA,IAA1Cv1B,KAAKm9C,kBAAkB3+C,QAAQ+2B,KACjCv1B,KAAKm9C,kBAAkB3nD,KAAK+/B,GAC5Bv1B,KAAK1G,UAAUgjD,mBAAmBt8C,MAClCA,KAAKo9C,aAAc,EAEvB,EACAC,yBAA0B,WAExB,IAAI9nD,EADJyK,KAAK47C,MAAO,EAEZ,IAAIh+C,EAAMoC,KAAKm9C,kBAAkBhtD,OAEjC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKm9C,kBAAkB5nD,GAAGknD,WAEtBz8C,KAAKm9C,kBAAkB5nD,GAAGqmD,OAC5B57C,KAAK47C,MAAO,EAGlB,EACA0B,6BAA8B,SAAsChkD,GAClE0G,KAAK1G,UAAYA,EACjB0G,KAAKm9C,kBAAoB,GACzBn9C,KAAK47C,MAAO,EACZ57C,KAAKo9C,aAAc,CACrB,GAGF,IAAIG,UAKKlM,YAAY,GAJnB,WACE,OAAOla,iBAAiB,UAAW,EACrC,IAKF,SAASqmB,YACPx9C,KAAKS,GAAI,EACTT,KAAKyxC,QAAU,EACfzxC,KAAK0xC,WAAa,EAClB1xC,KAAKrK,EAAI6hC,iBAAiBx3B,KAAK0xC,YAC/B1xC,KAAKiH,EAAIuwB,iBAAiBx3B,KAAK0xC,YAC/B1xC,KAAKzK,EAAIiiC,iBAAiBx3B,KAAK0xC,WACjC,CAEA8L,UAAUtsD,UAAUusD,YAAc,SAAUpd,EAAQziC,GAClDoC,KAAKS,EAAI4/B,EACTrgC,KAAK09C,UAAU9/C,GAGf,IAFA,IAAIrI,EAAI,EAEDA,EAAIqI,GACToC,KAAKrK,EAAEJ,GAAKgoD,UAAU3L,aACtB5xC,KAAKiH,EAAE1R,GAAKgoD,UAAU3L,aACtB5xC,KAAKzK,EAAEA,GAAKgoD,UAAU3L,aACtBr8C,GAAK,CAET,EAEAioD,UAAUtsD,UAAUwsD,UAAY,SAAU9/C,GACxC,KAAOoC,KAAK0xC,WAAa9zC,GACvBoC,KAAK29C,oBAGP39C,KAAKyxC,QAAU7zC,CACjB,EAEA4/C,UAAUtsD,UAAUysD,kBAAoB,WACtC39C,KAAKrK,EAAIqK,KAAKrK,EAAE8kB,OAAO+c,iBAAiBx3B,KAAK0xC,aAC7C1xC,KAAKzK,EAAIyK,KAAKzK,EAAEklB,OAAO+c,iBAAiBx3B,KAAK0xC,aAC7C1xC,KAAKiH,EAAIjH,KAAKiH,EAAEwT,OAAO+c,iBAAiBx3B,KAAK0xC,aAC7C1xC,KAAK0xC,YAAc,CACrB,EAEA8L,UAAUtsD,UAAU0sD,QAAU,SAAU5iD,EAAGsR,EAAGkR,EAAM2G,EAAK5iB,GACvD,IAAI/D,EAOJ,OANAwC,KAAKyxC,QAAUv/C,KAAK+O,IAAIjB,KAAKyxC,QAASttB,EAAM,GAExCnkB,KAAKyxC,SAAWzxC,KAAK0xC,YACvB1xC,KAAK29C,oBAGCngC,GACN,IAAK,IACHhgB,EAAMwC,KAAKrK,EACX,MAEF,IAAK,IACH6H,EAAMwC,KAAKzK,EACX,MAEF,IAAK,IACHiI,EAAMwC,KAAKiH,EACX,MAEF,QACEzJ,EAAM,KAILA,EAAI2mB,IAAQ3mB,EAAI2mB,KAAS5iB,KAC5B/D,EAAI2mB,GAAOo5B,UAAU3L,cAGvBp0C,EAAI2mB,GAAK,GAAKnpB,EACdwC,EAAI2mB,GAAK,GAAK7X,CAChB,EAEAkxC,UAAUtsD,UAAU2sD,YAAc,SAAUC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIh6B,EAAK5iB,GACvEvB,KAAK49C,QAAQE,EAAIC,EAAI,IAAK55B,EAAK5iB,GAC/BvB,KAAK49C,QAAQI,EAAIC,EAAI,IAAK95B,EAAK5iB,GAC/BvB,KAAK49C,QAAQM,EAAIC,EAAI,IAAKh6B,EAAK5iB,EACjC,EAEAi8C,UAAUtsD,UAAU4N,QAAU,WAC5B,IAAIs/C,EAAU,IAAIZ,UAClBY,EAAQX,YAAYz9C,KAAKS,EAAGT,KAAKyxC,SACjC,IAAI4M,EAAWr+C,KAAKrK,EAChB2oD,EAAYt+C,KAAKiH,EACjBs3C,EAAWv+C,KAAKzK,EAChBi3C,EAAO,EAEPxsC,KAAKS,IACP29C,EAAQP,YAAYQ,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAIE,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAID,EAAU,GAAG,GAAIA,EAAU,GAAG,GAAI,GAAG,GACzH9R,EAAO,GAGT,IAEIj3C,EAFAipD,EAAMx+C,KAAKyxC,QAAU,EACrB7zC,EAAMoC,KAAKyxC,QAGf,IAAKl8C,EAAIi3C,EAAMj3C,EAAIqI,EAAKrI,GAAK,EAC3B6oD,EAAQP,YAAYQ,EAASG,GAAK,GAAIH,EAASG,GAAK,GAAID,EAASC,GAAK,GAAID,EAASC,GAAK,GAAIF,EAAUE,GAAK,GAAIF,EAAUE,GAAK,GAAIjpD,GAAG,GACrIipD,GAAO,EAGT,OAAOJ,CACT,EAEAZ,UAAUtsD,UAAUf,OAAS,WAC3B,OAAO6P,KAAKyxC,OACd,EAEA,IAAIgN,UAAY,WAoCd,IAAIrqB,EAAUid,YAAY,GAnC1B,WACE,OAAO,IAAImM,SACb,IAEA,SAAiBkB,GACf,IACInpD,EADAqI,EAAM8gD,EAAUjN,QAGpB,IAAKl8C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBgoD,UAAU1L,QAAQ6M,EAAU/oD,EAAEJ,IAC9BgoD,UAAU1L,QAAQ6M,EAAUnpD,EAAEA,IAC9BgoD,UAAU1L,QAAQ6M,EAAUz3C,EAAE1R,IAC9BmpD,EAAU/oD,EAAEJ,GAAK,KACjBmpD,EAAUnpD,EAAEA,GAAK,KACjBmpD,EAAUz3C,EAAE1R,GAAK,KAGnBmpD,EAAUjN,QAAU,EACpBiN,EAAUj+C,GAAI,CAChB,IAkBA,OADA2zB,EAAQ9xB,MAfR,SAAeq8C,GACb,IACIppD,EADAqpD,EAASxqB,EAAQwd,aAEjBh0C,OAAwB7L,IAAlB4sD,EAAMlN,QAAwBkN,EAAMhpD,EAAExF,OAASwuD,EAAMlN,QAI/D,IAHAmN,EAAOlB,UAAU9/C,GACjBghD,EAAOn+C,EAAIk+C,EAAMl+C,EAEZlL,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBqpD,EAAOf,YAAYc,EAAMhpD,EAAEJ,GAAG,GAAIopD,EAAMhpD,EAAEJ,GAAG,GAAIopD,EAAM13C,EAAE1R,GAAG,GAAIopD,EAAM13C,EAAE1R,GAAG,GAAIopD,EAAMppD,EAAEA,GAAG,GAAIopD,EAAMppD,EAAEA,GAAG,GAAIA,GAG/G,OAAOqpD,CACT,EAIOxqB,CACT,CAvCgB,GAyChB,SAASyqB,kBACP7+C,KAAKyxC,QAAU,EACfzxC,KAAK0xC,WAAa,EAClB1xC,KAAKo+B,OAAS5G,iBAAiBx3B,KAAK0xC,WACtC,CAEAmN,gBAAgB3tD,UAAU4tD,SAAW,SAAUvK,GACzCv0C,KAAKyxC,UAAYzxC,KAAK0xC,aACxB1xC,KAAKo+B,OAASp+B,KAAKo+B,OAAO3jB,OAAO+c,iBAAiBx3B,KAAK0xC,aACvD1xC,KAAK0xC,YAAc,GAGrB1xC,KAAKo+B,OAAOp+B,KAAKyxC,SAAW8C,EAC5Bv0C,KAAKyxC,SAAW,CAClB,EAEAoN,gBAAgB3tD,UAAU6tD,cAAgB,WACxC,IAAIxpD,EAEJ,IAAKA,EAAI,EAAGA,EAAIyK,KAAKyxC,QAASl8C,GAAK,EACjCkpD,UAAU5M,QAAQ7xC,KAAKo+B,OAAO7oC,IAGhCyK,KAAKyxC,QAAU,CACjB,EAEA,IAAIuN,oBAAsB,WACxB,IAAI/a,EAAK,CACPgb,mBAOF,WAUE,OAPIxN,EAEgBE,EADlBF,GAAW,GAGO,IAAIoN,eAI1B,EAjBEhN,QAmBF,SAAiBqN,GACf,IAAI3pD,EACAqI,EAAMshD,EAAgBzN,QAE1B,IAAKl8C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBkpD,UAAU5M,QAAQqN,EAAgB9gB,OAAO7oC,IAG3C2pD,EAAgBzN,QAAU,EAEtBA,IAAYC,IACdC,EAAOP,QAAgB,OAAEO,GACzBD,GAAc,GAGhBC,EAAKF,GAAWyN,EAChBzN,GAAW,CACb,GAlCIA,EAAU,EACVC,EAAa,EACbC,EAAOna,iBAAiBka,GAkC5B,OAAOzN,CACT,CA1C0B,GA4CtBkb,qBAAuB,WACzB,IAAIrI,GAAa,OAEjB,SAASsI,EAAiBnI,EAAUoI,EAAenI,GACjD,IACIoI,EACAC,EACAC,EACAzkD,EACA+I,EACA05B,EACAC,EACAyV,EACAuM,EATA9H,EAAiBT,EAAQU,UAUzBuE,EAAKn8C,KAAK63C,UAEd,GAAIZ,EAAWkF,EAAG,GAAGx3C,EAAI3E,KAAKo3C,WAC5BkI,EAAWnD,EAAG,GAAG/uC,EAAE,GACnBoyC,GAAS,EACT7H,EAAiB,OACZ,GAAIV,GAAYkF,EAAGA,EAAGhsD,OAAS,GAAGwU,EAAI3E,KAAKo3C,WAChDkI,EAAWnD,EAAGA,EAAGhsD,OAAS,GAAGid,EAAI+uC,EAAGA,EAAGhsD,OAAS,GAAGid,EAAE,GAAK+uC,EAAGA,EAAGhsD,OAAS,GAAGgG,EAAE,GAO9EqpD,GAAS,MACJ,CAQL,IAPA,IAGIjI,EACAC,EACAC,EALAliD,EAAIoiD,EACJ/5C,EAAMu+C,EAAGhsD,OAAS,EAClBwkC,GAAO,EAKJA,IACL4iB,EAAU4E,EAAG5mD,MACbiiD,EAAc2E,EAAG5mD,EAAI,IAELoP,EAAI3E,KAAKo3C,WAAaH,KAIlC1hD,EAAIqI,EAAM,EACZrI,GAAK,EAELo/B,GAAO,EAQX,GAJA8iB,EAAmBz3C,KAAK83C,kBAAkBviD,IAAM,CAAC,EAEjDoiD,EAAiBpiD,IADjBiqD,EAAuB,IAAdjI,EAAQpnC,GAGJ,CACX,GAAI8mC,GAAYO,EAAY7yC,EAAI3E,KAAKo3C,WACnClE,EAAO,OACF,GAAI+D,EAAWM,EAAQ5yC,EAAI3E,KAAKo3C,WACrClE,EAAO,MACF,CACL,IAAIwE,EAEAD,EAAiBY,OACnBX,EAAMD,EAAiBY,QAEvBX,EAAM5I,cAAcwJ,gBAAgBf,EAAQtwC,EAAEjM,EAAGu8C,EAAQtwC,EAAEqF,EAAGirC,EAAQhiD,EAAEyF,EAAGu8C,EAAQhiD,EAAE+W,GAAG4L,IACxFu/B,EAAiBY,OAASX,GAG5BxE,EAAOwE,GAAKT,GAAYM,EAAQ5yC,EAAI3E,KAAKo3C,cAAgBI,EAAY7yC,EAAI3E,KAAKo3C,YAAcG,EAAQ5yC,EAAI3E,KAAKo3C,aAC/G,CAEAmI,EAAW/H,EAAYpqC,EAAIoqC,EAAYpqC,EAAE,GAAKmqC,EAAQphD,EAAE,EAC1D,CAEAmpD,EAAW/H,EAAQnqC,EAAE,EACvB,CAMA,IAJAowB,EAAO6hB,EAAc5N,QACrBhU,EAAO6hB,EAAS/pD,EAAE,GAAGpF,OACrB+mD,EAAQU,UAAYD,EAEf58C,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB,IAAK+I,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACzB27C,EAAcD,EAASF,EAAS/pD,EAAEwF,GAAG+I,GAAKw7C,EAAS/pD,EAAEwF,GAAG+I,IAAMy7C,EAAShqD,EAAEwF,GAAG+I,GAAKw7C,EAAS/pD,EAAEwF,GAAG+I,IAAMovC,EACrGmM,EAAc9pD,EAAEwF,GAAG+I,GAAK27C,EACxBA,EAAcD,EAASF,EAASr4C,EAAElM,GAAG+I,GAAKw7C,EAASr4C,EAAElM,GAAG+I,IAAMy7C,EAASt4C,EAAElM,GAAG+I,GAAKw7C,EAASr4C,EAAElM,GAAG+I,IAAMovC,EACrGmM,EAAcp4C,EAAElM,GAAG+I,GAAK27C,EACxBA,EAAcD,EAASF,EAAS3pD,EAAEoF,GAAG+I,GAAKw7C,EAAS3pD,EAAEoF,GAAG+I,IAAMy7C,EAAS5pD,EAAEoF,GAAG+I,GAAKw7C,EAAS3pD,EAAEoF,GAAG+I,IAAMovC,EACrGmM,EAAc1pD,EAAEoF,GAAG+I,GAAK27C,CAG9B,CAEA,SAASC,IACP,IAAIzI,EAAWj3C,KAAKs+B,KAAK+c,cAAgBr7C,KAAKo3C,WAC1ChK,EAAWptC,KAAK63C,UAAU,GAAGlzC,EAAI3E,KAAKo3C,WACtCkE,EAAUt7C,KAAK63C,UAAU73C,KAAK63C,UAAU1nD,OAAS,GAAGwU,EAAI3E,KAAKo3C,WAC7DqB,EAAYz4C,KAAKu7C,SAAS9C,UAS9B,OAPMA,IAAc3B,IAAc2B,EAAYrL,GAAY6J,EAAW7J,GAAYqL,EAAY6C,GAAWrE,EAAWqE,KAEjHt7C,KAAKu7C,SAAS3D,UAAYa,EAAYxB,EAAWj3C,KAAKu7C,SAAS3D,UAAY,EAC3E53C,KAAKo/C,iBAAiBnI,EAAUj3C,KAAKs3C,GAAIt3C,KAAKu7C,WAGhDv7C,KAAKu7C,SAAS9C,UAAYxB,EACnBj3C,KAAKs3C,EACd,CAEA,SAASqI,IACP3/C,KAAK4/C,MAAQ5/C,KAAK6/C,oBACpB,CAmBA,SAASpE,EAAU2C,IAjBnB,SAAqB0B,EAAQC,GAC3B,GAAID,EAAOrO,UAAYsO,EAAOtO,SAAWqO,EAAOr/C,IAAMs/C,EAAOt/C,EAC3D,OAAO,EAGT,IAAIlL,EACAqI,EAAMkiD,EAAOrO,QAEjB,IAAKl8C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAIuqD,EAAOnqD,EAAEJ,GAAG,KAAOwqD,EAAOpqD,EAAEJ,GAAG,IAAMuqD,EAAOnqD,EAAEJ,GAAG,KAAOwqD,EAAOpqD,EAAEJ,GAAG,IAAMuqD,EAAO74C,EAAE1R,GAAG,KAAOwqD,EAAO94C,EAAE1R,GAAG,IAAMuqD,EAAO74C,EAAE1R,GAAG,KAAOwqD,EAAO94C,EAAE1R,GAAG,IAAMuqD,EAAOvqD,EAAEA,GAAG,KAAOwqD,EAAOxqD,EAAEA,GAAG,IAAMuqD,EAAOvqD,EAAEA,GAAG,KAAOwqD,EAAOxqD,EAAEA,GAAG,GAC1N,OAAO,EAIX,OAAO,CACT,EAGOyqD,CAAYhgD,KAAKrK,EAAGyoD,KACvBp+C,KAAKrK,EAAI8oD,UAAUn8C,MAAM87C,GACzBp+C,KAAK6/C,qBAAqBd,gBAC1B/+C,KAAK6/C,qBAAqBf,SAAS9+C,KAAKrK,GACxCqK,KAAK47C,MAAO,EACZ57C,KAAK4/C,MAAQ5/C,KAAK6/C,qBAEtB,CAEA,SAAShE,IACP,GAAI77C,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,QAI1C,GAAK97C,KAAK+7C,gBAAgB5rD,OAK1B,GAAI6P,KAAKg8C,KACPh8C,KAAKy7C,UAAUz7C,KAAKs3C,QADtB,CAOA,IAAI4E,EAUA3mD,EAZJyK,KAAKg8C,MAAO,EACZh8C,KAAK47C,MAAO,EAIVM,EADEl8C,KAAKm8C,GACMn8C,KAAKs3C,GACTt3C,KAAKkgB,KAAKue,GACNz+B,KAAKkgB,KAAKue,GAAG36B,EAEb9D,KAAKkgB,KAAK4d,GAAGh6B,EAI5B,IAAIlG,EAAMoC,KAAK+7C,gBAAgB5rD,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB2mD,EAAal8C,KAAK+7C,gBAAgBxmD,GAAG2mD,GAGvCl8C,KAAKy7C,UAAUS,GACfl8C,KAAKg8C,MAAO,EACZh8C,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,OAvBpC,MAPE97C,KAAK47C,MAAO,CA+BhB,CAEA,SAASqE,EAAcvkC,EAAMwE,EAAM1C,GACjCxd,KAAKq3C,SAAW,QAChBr3C,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAK1G,UAAYoiB,EACjB1b,KAAK0b,KAAOA,EACZ1b,KAAKkgB,KAAOA,EACZlgB,KAAK8D,GAAI,EACT9D,KAAKm8C,IAAK,EACVn8C,KAAK47C,MAAO,EACZ,IAAI5b,EAAoB,IAATxiB,EAAa0C,EAAK4d,GAAGh6B,EAAIoc,EAAKue,GAAG36B,EAChD9D,KAAKrK,EAAI8oD,UAAUn8C,MAAM09B,GACzBhgC,KAAKs3C,GAAKmH,UAAUn8C,MAAMtC,KAAKrK,GAC/BqK,KAAK6/C,qBAAuBb,oBAAoBC,qBAChDj/C,KAAK4/C,MAAQ5/C,KAAK6/C,qBAClB7/C,KAAK4/C,MAAMd,SAAS9+C,KAAKrK,GACzBqK,KAAKkgD,MAAQP,EACb3/C,KAAK+7C,gBAAkB,EACzB,CAEA,SAASK,EAAUC,GACjBr8C,KAAK+7C,gBAAgBvmD,KAAK6mD,GAC1Br8C,KAAK1G,UAAUgjD,mBAAmBt8C,KACpC,CAOA,SAASmgD,EAAuBzkC,EAAMwE,EAAM1C,GAC1Cxd,KAAKq3C,SAAW,QAChBr3C,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAK0b,KAAOA,EACZ1b,KAAK1G,UAAYoiB,EACjB1b,KAAKo3C,WAAa17B,EAAKwE,KAAKyf,GAC5B3/B,KAAK63C,UAAqB,IAATr6B,EAAa0C,EAAK4d,GAAGh6B,EAAIoc,EAAKue,GAAG36B,EAClD9D,KAAK83C,kBAAoB,GACzB93C,KAAK8D,GAAI,EACT9D,KAAKm8C,IAAK,EACV,IAAIv+C,EAAMoC,KAAK63C,UAAU,GAAGzqC,EAAE,GAAG7X,EAAEpF,OACnC6P,KAAKrK,EAAI8oD,UAAU7M,aACnB5xC,KAAKrK,EAAE8nD,YAAYz9C,KAAK63C,UAAU,GAAGzqC,EAAE,GAAG3M,EAAG7C,GAC7CoC,KAAKs3C,GAAKmH,UAAUn8C,MAAMtC,KAAKrK,GAC/BqK,KAAK6/C,qBAAuBb,oBAAoBC,qBAChDj/C,KAAK4/C,MAAQ5/C,KAAK6/C,qBAClB7/C,KAAK4/C,MAAMd,SAAS9+C,KAAKrK,GACzBqK,KAAKy4C,UAAY3B,EACjB92C,KAAKkgD,MAAQP,EACb3/C,KAAKu7C,SAAW,CACd9C,UAAW3B,EACXc,UAAW,GAEb53C,KAAK+7C,gBAAkB,CAAC2D,EAA4BnoD,KAAKyI,MAC3D,CA7BAigD,EAAc/uD,UAAUkuD,iBAAmBA,EAC3Ca,EAAc/uD,UAAUurD,SAAWZ,EACnCoE,EAAc/uD,UAAUuqD,UAAYA,EACpCwE,EAAc/uD,UAAUkrD,UAAYA,EA4BpC+D,EAAuBjvD,UAAUurD,SAAWZ,EAC5CsE,EAAuBjvD,UAAUkuD,iBAAmBA,EACpDe,EAAuBjvD,UAAUuqD,UAAYA,EAC7C0E,EAAuBjvD,UAAUkrD,UAAYA,EAE7C,IAAIgE,EAAmB,WACrB,IAAIC,EAAStnB,YAEb,SAASunB,EAAwB5kC,EAAMwE,GACrClgB,KAAKrK,EAAI8oD,UAAU7M,aACnB5xC,KAAKrK,EAAE8nD,aAAY,EAAM,GACzBz9C,KAAK6/C,qBAAuBb,oBAAoBC,qBAChDj/C,KAAK4/C,MAAQ5/C,KAAK6/C,qBAClB7/C,KAAK6/C,qBAAqBf,SAAS9+C,KAAKrK,GACxCqK,KAAKyY,EAAIyH,EAAKzH,EACdzY,KAAK0b,KAAOA,EACZ1b,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAK87C,SAAW,EAChB97C,KAAKs9C,6BAA6B5hC,GAClC1b,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKxS,EAAG,EAAG,EAAG1N,MACrDA,KAAKoN,EAAI0vC,gBAAgBC,QAAQrhC,EAAMwE,EAAK9S,EAAG,EAAG,EAAGpN,MAEjDA,KAAKm9C,kBAAkBhtD,OACzB6P,KAAK8D,GAAI,GAET9D,KAAK8D,GAAI,EACT9D,KAAKugD,mBAET,CAoDA,OAlDAD,EAAwBpvD,UAAY,CAClCgvD,MAAOP,EACPlD,SAAU,WACJz8C,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,UAI1C97C,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,QACpC97C,KAAKq9C,2BAEDr9C,KAAK47C,MACP57C,KAAKugD,mBAET,EACAA,iBAAkB,WAChB,IAAIC,EAAKxgD,KAAK0N,EAAE/X,EAAE,GACd8qD,EAAKzgD,KAAK0N,EAAE/X,EAAE,GACd+qD,EAAK1gD,KAAKoN,EAAEzX,EAAE,GAAK,EACnBslD,EAAKj7C,KAAKoN,EAAEzX,EAAE,GAAK,EAEnBgrD,EAAiB,IAAX3gD,KAAKyY,EAEXmoC,EAAK5gD,KAAKrK,EACdirD,EAAGjrD,EAAE,GAAG,GAAK6qD,EACbI,EAAGjrD,EAAE,GAAG,GAAK8qD,EAAKxF,EAClB2F,EAAGjrD,EAAE,GAAG,GAAKgrD,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGjrD,EAAE,GAAG,GAAK8qD,EACbG,EAAGjrD,EAAE,GAAG,GAAK6qD,EACbI,EAAGjrD,EAAE,GAAG,GAAK8qD,EAAKxF,EAClB2F,EAAGjrD,EAAE,GAAG,GAAKgrD,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGjrD,EAAE,GAAG,GAAK8qD,EACbG,EAAGrrD,EAAE,GAAG,GAAKorD,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGrrD,EAAE,GAAG,GAAKkrD,EAAKxF,EAClB2F,EAAGrrD,EAAE,GAAG,GAAKorD,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGrrD,EAAE,GAAG,GAAKkrD,EAAKxF,EAAKoF,EACvBO,EAAGrrD,EAAE,GAAG,GAAKorD,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGrrD,EAAE,GAAG,GAAKkrD,EAAKxF,EAClB2F,EAAGrrD,EAAE,GAAG,GAAKorD,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGrrD,EAAE,GAAG,GAAKkrD,EAAKxF,EAAKoF,EACvBO,EAAG35C,EAAE,GAAG,GAAK05C,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAG35C,EAAE,GAAG,GAAKw5C,EAAKxF,EAClB2F,EAAG35C,EAAE,GAAG,GAAK05C,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAG35C,EAAE,GAAG,GAAKw5C,EAAKxF,EAAKoF,EACvBO,EAAG35C,EAAE,GAAG,GAAK05C,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAG35C,EAAE,GAAG,GAAKw5C,EAAKxF,EAClB2F,EAAG35C,EAAE,GAAG,GAAK05C,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAG35C,EAAE,GAAG,GAAKw5C,EAAKxF,EAAKoF,CACzB,GAEFrrB,gBAAgB,CAACkoB,0BAA2BoD,GACrCA,CACT,CA5EuB,GA8EnBO,EAAoB,WACtB,SAASC,EAAyBplC,EAAMwE,GACtClgB,KAAKrK,EAAI8oD,UAAU7M,aACnB5xC,KAAKrK,EAAE8nD,aAAY,EAAM,GACzBz9C,KAAK0b,KAAOA,EACZ1b,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAKkgB,KAAOA,EACZlgB,KAAK87C,SAAW,EAChB97C,KAAKyY,EAAIyH,EAAKzH,EACdzY,KAAKs9C,6BAA6B5hC,GAElB,IAAZwE,EAAK6gC,IACP/gD,KAAKghD,GAAKlE,gBAAgBC,QAAQrhC,EAAMwE,EAAK8gC,GAAI,EAAG,EAAGhhD,MACvDA,KAAKihD,GAAKnE,gBAAgBC,QAAQrhC,EAAMwE,EAAK+gC,GAAI,EAAG,IAAMjhD,MAC1DA,KAAKkhD,cAAgBlhD,KAAKmhD,mBAE1BnhD,KAAKkhD,cAAgBlhD,KAAKohD,qBAG5BphD,KAAK89B,GAAKgf,gBAAgBC,QAAQrhC,EAAMwE,EAAK4d,GAAI,EAAG,EAAG99B,MACvDA,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKxS,EAAG,EAAG,EAAG1N,MACrDA,KAAKY,EAAIk8C,gBAAgBC,QAAQrhC,EAAMwE,EAAKtf,EAAG,EAAGk4B,UAAW94B,MAC7DA,KAAK4F,GAAKk3C,gBAAgBC,QAAQrhC,EAAMwE,EAAKta,GAAI,EAAG,EAAG5F,MACvDA,KAAKqhD,GAAKvE,gBAAgBC,QAAQrhC,EAAMwE,EAAKmhC,GAAI,EAAG,IAAMrhD,MAC1DA,KAAK6/C,qBAAuBb,oBAAoBC,qBAChDj/C,KAAK6/C,qBAAqBf,SAAS9+C,KAAKrK,GACxCqK,KAAK4/C,MAAQ5/C,KAAK6/C,qBAEd7/C,KAAKm9C,kBAAkBhtD,OACzB6P,KAAK8D,GAAI,GAET9D,KAAK8D,GAAI,EACT9D,KAAKkhD,gBAET,CAuFA,OArFAJ,EAAyB5vD,UAAY,CACnCgvD,MAAOP,EACPlD,SAAU,WACJz8C,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,UAI1C97C,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,QACpC97C,KAAKq9C,2BAEDr9C,KAAK47C,MACP57C,KAAKkhD,gBAET,EACAC,kBAAmB,WACjB,IAaI5rD,EACA+rD,EACAC,EACAC,EAhBAC,EAAiC,EAAxBvvD,KAAKC,MAAM6N,KAAK89B,GAAGnoC,GAC5B+rD,EAAkB,EAAVxvD,KAAKqb,GAASk0C,EAKtBE,GAAW,EACXC,EAAU5hD,KAAK4F,GAAGjQ,EAClBksD,EAAW7hD,KAAKghD,GAAGrrD,EACnBmsD,EAAY9hD,KAAKqhD,GAAG1rD,EACpBosD,EAAa/hD,KAAKihD,GAAGtrD,EACrBqsD,EAAmB,EAAI9vD,KAAKqb,GAAKq0C,GAAoB,EAATH,GAC5CQ,EAAoB,EAAI/vD,KAAKqb,GAAKs0C,GAAqB,EAATJ,GAK9CS,GAAchwD,KAAKqb,GAAK,EAC5B20C,GAAcliD,KAAKY,EAAEjL,EACrB,IAAIyrB,EAAsB,IAAhBphB,KAAKkgB,KAAKzH,GAAW,EAAI,EAGnC,IAFAzY,KAAKrK,EAAE87C,QAAU,EAEZl8C,EAAI,EAAGA,EAAIksD,EAAQlsD,GAAK,EAAG,CAE9BgsD,EAAYI,EAAWG,EAAYC,EACnCP,EAAeG,EAAWK,EAAmBC,EAC7C,IAAIjnD,GAHJsmD,EAAMK,EAAWC,EAAUC,GAGb3vD,KAAKob,IAAI40C,GACnB51C,EAAIg1C,EAAMpvD,KAAKub,IAAIy0C,GACnBC,EAAW,IAANnnD,GAAiB,IAANsR,EAAU,EAAIA,EAAIpa,KAAKojB,KAAKta,EAAIA,EAAIsR,EAAIA,GACxD81C,EAAW,IAANpnD,GAAiB,IAANsR,EAAU,GAAKtR,EAAI9I,KAAKojB,KAAKta,EAAIA,EAAIsR,EAAIA,GAC7DtR,IAAMgF,KAAK0N,EAAE/X,EAAE,GACf2W,IAAMtM,KAAK0N,EAAE/X,EAAE,GACfqK,KAAKrK,EAAEkoD,YAAY7iD,EAAGsR,EAAGtR,EAAImnD,EAAKX,EAAeD,EAAYngC,EAAK9U,EAAI81C,EAAKZ,EAAeD,EAAYngC,EAAKpmB,EAAImnD,EAAKX,EAAeD,EAAYngC,EAAK9U,EAAI81C,EAAKZ,EAAeD,EAAYngC,EAAK7rB,GAAG,GAMhMosD,GAAYA,EACZO,GAAcR,EAAQtgC,CACxB,CACF,EACAggC,qBAAsB,WACpB,IAKI7rD,EALAksD,EAASvvD,KAAKC,MAAM6N,KAAK89B,GAAGnoC,GAC5B+rD,EAAkB,EAAVxvD,KAAKqb,GAASk0C,EACtBH,EAAMthD,KAAK4F,GAAGjQ,EACd4rD,EAAYvhD,KAAKqhD,GAAG1rD,EACpB6rD,EAAe,EAAItvD,KAAKqb,GAAK+zC,GAAgB,EAATG,GAEpCS,EAAwB,IAAVhwD,KAAKqb,GACnB6T,EAAsB,IAAhBphB,KAAKkgB,KAAKzH,GAAW,EAAI,EAInC,IAHAypC,GAAcliD,KAAKY,EAAEjL,EACrBqK,KAAKrK,EAAE87C,QAAU,EAEZl8C,EAAI,EAAGA,EAAIksD,EAAQlsD,GAAK,EAAG,CAC9B,IAAIyF,EAAIsmD,EAAMpvD,KAAKob,IAAI40C,GACnB51C,EAAIg1C,EAAMpvD,KAAKub,IAAIy0C,GACnBC,EAAW,IAANnnD,GAAiB,IAANsR,EAAU,EAAIA,EAAIpa,KAAKojB,KAAKta,EAAIA,EAAIsR,EAAIA,GACxD81C,EAAW,IAANpnD,GAAiB,IAANsR,EAAU,GAAKtR,EAAI9I,KAAKojB,KAAKta,EAAIA,EAAIsR,EAAIA,GAC7DtR,IAAMgF,KAAK0N,EAAE/X,EAAE,GACf2W,IAAMtM,KAAK0N,EAAE/X,EAAE,GACfqK,KAAKrK,EAAEkoD,YAAY7iD,EAAGsR,EAAGtR,EAAImnD,EAAKX,EAAeD,EAAYngC,EAAK9U,EAAI81C,EAAKZ,EAAeD,EAAYngC,EAAKpmB,EAAImnD,EAAKX,EAAeD,EAAYngC,EAAK9U,EAAI81C,EAAKZ,EAAeD,EAAYngC,EAAK7rB,GAAG,GAChM2sD,GAAcR,EAAQtgC,CACxB,CAEAphB,KAAK4/C,MAAMzvD,OAAS,EACpB6P,KAAK4/C,MAAM,GAAK5/C,KAAKrK,CACvB,GAEFq/B,gBAAgB,CAACkoB,0BAA2B4D,GACrCA,CACT,CA1HwB,GA4HpBuB,EAAoB,WACtB,SAASC,EAAyB5mC,EAAMwE,GACtClgB,KAAKrK,EAAI8oD,UAAU7M,aACnB5xC,KAAKrK,EAAE8K,GAAI,EACXT,KAAK6/C,qBAAuBb,oBAAoBC,qBAChDj/C,KAAK6/C,qBAAqBf,SAAS9+C,KAAKrK,GACxCqK,KAAK4/C,MAAQ5/C,KAAK6/C,qBAClB7/C,KAAK0b,KAAOA,EACZ1b,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAK87C,SAAW,EAChB97C,KAAKyY,EAAIyH,EAAKzH,EACdzY,KAAKs9C,6BAA6B5hC,GAClC1b,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKxS,EAAG,EAAG,EAAG1N,MACrDA,KAAKoN,EAAI0vC,gBAAgBC,QAAQrhC,EAAMwE,EAAK9S,EAAG,EAAG,EAAGpN,MACrDA,KAAKY,EAAIk8C,gBAAgBC,QAAQrhC,EAAMwE,EAAKtf,EAAG,EAAG,EAAGZ,MAEjDA,KAAKm9C,kBAAkBhtD,OACzB6P,KAAK8D,GAAI,GAET9D,KAAK8D,GAAI,EACT9D,KAAKuiD,oBAET,CA4DA,OA1DAD,EAAyBpxD,UAAY,CACnCqxD,kBAAmB,WACjB,IAAI/B,EAAKxgD,KAAK0N,EAAE/X,EAAE,GACd8qD,EAAKzgD,KAAK0N,EAAE/X,EAAE,GACd6sD,EAAKxiD,KAAKoN,EAAEzX,EAAE,GAAK,EACnB8sD,EAAKziD,KAAKoN,EAAEzX,EAAE,GAAK,EACnB8Y,EAAQ8pB,MAAMiqB,EAAIC,EAAIziD,KAAKY,EAAEjL,GAC7B0qD,EAAS5xC,GAAS,EAAIsqB,aAC1B/4B,KAAKrK,EAAE87C,QAAU,EAEF,IAAXzxC,KAAKyY,GAAsB,IAAXzY,KAAKyY,GACvBzY,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrGrgD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO,GAAG,GAEvF,IAAVA,GACFzO,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAI,GAAG,GACrGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrGrgD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO,GAAG,GACrGzO,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAI,GAAG,KAErGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAClFziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAI,MAGpFziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO,GAAG,GAEvF,IAAVA,GACFzO,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAI,GAAG,GACrGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrGrgD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO,GAAG,GACrGzO,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAK/zC,EAAOgyC,EAAKgC,EAAI,GAAG,GACrGziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKh0C,EAAO+xC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,KAErGrgD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,GACrFziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,GACrFziD,KAAKrK,EAAEkoD,YAAY2C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,IAG3F,EACAhG,SAAU,WACJz8C,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,UAI1C97C,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,QACpC97C,KAAKq9C,2BAEDr9C,KAAK47C,MACP57C,KAAKuiD,oBAET,EACArC,MAAOP,GAET3qB,gBAAgB,CAACkoB,0BAA2BoF,GACrCA,CACT,CAnFwB,GAwHpBre,EAAK,CACTA,aApCA,SAAsBvoB,EAAMwE,EAAM1C,GAChC,IAAI+X,EAuBJ,OArBa,IAAT/X,GAAuB,IAATA,EAKd+X,GAJsB,IAAT/X,EAAa0C,EAAK4d,GAAK5d,EAAKue,IACvB36B,EAEX3T,OACA,IAAIgwD,EAAuBzkC,EAAMwE,EAAM1C,GAEvC,IAAIyiC,EAAcvkC,EAAMwE,EAAM1C,GAErB,IAATA,EACT+X,EAAO,IAAI8sB,EAAkB3mC,EAAMwE,GACjB,IAAT1C,EACT+X,EAAO,IAAI6qB,EAAiB1kC,EAAMwE,GAChB,IAAT1C,IACT+X,EAAO,IAAIsrB,EAAkBnlC,EAAMwE,IAGjCqV,EAAKzxB,GACP4X,EAAK4gC,mBAAmB/mB,GAGnBA,CACT,EAYA0O,uBAVA,WACE,OAAOgc,CACT,EASAhc,gCAPA,WACE,OAAOkc,CACT,GAMA,OAAOlc,CACT,CAzjB2B,GAwlBvBye,OAAS,WACX,IAAIC,EAAOzwD,KAAKob,IACZs1C,EAAO1wD,KAAKub,IACZo1C,EAAO3wD,KAAK4wD,IACZC,EAAO7wD,KAAKuc,MAEhB,SAASyxC,IAiBP,OAhBAlgD,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,GAAK,EAChBzsB,KAAKysB,MAAM,IAAM,EACjBzsB,KAAKysB,MAAM,IAAM,EACjBzsB,KAAKysB,MAAM,IAAM,EACjBzsB,KAAKysB,MAAM,IAAM,EACjBzsB,KAAKysB,MAAM,IAAM,EACjBzsB,KAAKysB,MAAM,IAAM,EACVzsB,IACT,CAEA,SAASgjD,EAAOtB,GACd,GAAc,IAAVA,EACF,OAAO1hD,KAGT,IAAIijD,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO1hD,KAAKmjD,GAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASG,EAAQ1B,GACf,GAAc,IAAVA,EACF,OAAO1hD,KAGT,IAAIijD,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO1hD,KAAKmjD,GAAG,EAAG,EAAG,EAAG,EAAG,EAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASI,EAAQ3B,GACf,GAAc,IAAVA,EACF,OAAO1hD,KAGT,IAAIijD,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO1hD,KAAKmjD,GAAGF,EAAM,EAAGC,EAAM,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAM,EAAGD,EAAM,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASK,EAAQ5B,GACf,GAAc,IAAVA,EACF,OAAO1hD,KAGT,IAAIijD,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO1hD,KAAKmjD,GAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASM,EAAMC,EAAIzC,GACjB,OAAO/gD,KAAKmjD,GAAG,EAAGpC,EAAIyC,EAAI,EAAG,EAAG,EAClC,CAEA,SAASC,EAAK9J,EAAIC,GAChB,OAAO55C,KAAKujD,MAAMV,EAAKlJ,GAAKkJ,EAAKjJ,GACnC,CAEA,SAAS8J,EAAa/J,EAAI+H,GACxB,IAAIuB,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAO1hD,KAAKmjD,GAAGF,EAAMC,EAAM,EAAG,GAAIA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGE,GAAG,EAAG,EAAG,EAAG,EAAGN,EAAKlJ,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGwJ,GAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrM,CAEA,SAASU,EAAMH,EAAIzC,EAAI6C,GAKrB,OAJKA,GAAa,IAAPA,IACTA,EAAK,GAGI,IAAPJ,GAAmB,IAAPzC,GAAmB,IAAP6C,EACnB5jD,KAGFA,KAAKmjD,GAAGK,EAAI,EAAG,EAAG,EAAG,EAAGzC,EAAI,EAAG,EAAG,EAAG,EAAG6C,EAAI,EAAG,EAAG,EAAG,EAAG,EACjE,CAEA,SAASC,EAAahgD,EAAGlU,EAAG8Q,EAAGgY,EAAGtiB,EAAGs0B,EAAGlY,EAAGpC,EAAG5a,EAAGwF,EAAG+I,EAAG4I,EAAG0B,EAAGD,EAAGlH,EAAGyG,GAiBjE,OAhBA1N,KAAKysB,MAAM,GAAK5oB,EAChB7D,KAAKysB,MAAM,GAAK98B,EAChBqQ,KAAKysB,MAAM,GAAKhsB,EAChBT,KAAKysB,MAAM,GAAKhU,EAChBzY,KAAKysB,MAAM,GAAKt2B,EAChB6J,KAAKysB,MAAM,GAAKhC,EAChBzqB,KAAKysB,MAAM,GAAKla,EAChBvS,KAAKysB,MAAM,GAAKtc,EAChBnQ,KAAKysB,MAAM,GAAKl3B,EAChByK,KAAKysB,MAAM,GAAK1xB,EAChBiF,KAAKysB,MAAM,IAAM3oB,EACjB9D,KAAKysB,MAAM,IAAM/f,EACjB1M,KAAKysB,MAAM,IAAMre,EACjBpO,KAAKysB,MAAM,IAAMte,EACjBnO,KAAKysB,MAAM,IAAMxlB,EACjBjH,KAAKysB,MAAM,IAAM/e,EACV1N,IACT,CAEA,SAAS8jD,EAAUC,EAAI/lB,EAAIgmB,GAGzB,OAFAA,EAAKA,GAAM,EAEA,IAAPD,GAAmB,IAAP/lB,GAAmB,IAAPgmB,EACnBhkD,KAAKmjD,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGY,EAAI/lB,EAAIgmB,EAAI,GAG1DhkD,IACT,CAEA,SAASmN,EAAU3F,EAAI8B,EAAIyxC,EAAIkJ,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIxsC,EAAIysC,EAAIC,EAAIC,EAAIC,EAAIC,GAC7E,IAAIjV,EAAK3vC,KAAKysB,MAEd,GAAW,IAAPjlB,GAAmB,IAAP8B,GAAmB,IAAPyxC,GAAmB,IAAPkJ,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPxsC,GAAmB,IAAPysC,EAStI,OANA7U,EAAG,IAAMA,EAAG,IAAMnoC,EAAKmoC,EAAG,IAAM8U,EAChC9U,EAAG,IAAMA,EAAG,IAAMwU,EAAKxU,EAAG,IAAM+U,EAChC/U,EAAG,IAAMA,EAAG,IAAM53B,EAAK43B,EAAG,IAAMgV,EAChChV,EAAG,KAAOiV,EAEV5kD,KAAK6kD,qBAAsB,EACpB7kD,KAGT,IAAIqH,EAAKsoC,EAAG,GACRxmC,EAAKwmC,EAAG,GACRmL,EAAKnL,EAAG,GACRmV,EAAKnV,EAAG,GACRoV,EAAKpV,EAAG,GACRqV,EAAKrV,EAAG,GACRsV,EAAKtV,EAAG,GACRuV,EAAKvV,EAAG,GACRwV,EAAKxV,EAAG,GACRyV,EAAKzV,EAAG,GACR0V,EAAK1V,EAAG,IACR2V,EAAK3V,EAAG,IACR4V,EAAK5V,EAAG,IACR6V,EAAK7V,EAAG,IACR8V,EAAK9V,EAAG,IACR8Q,EAAK9Q,EAAG,IAwBZ,OAjBAA,EAAG,GAAKtoC,EAAKG,EAAK2B,EAAK+6C,EAAKpJ,EAAKwJ,EAAKQ,EAAKL,EAC3C9U,EAAG,GAAKtoC,EAAKiC,EAAKH,EAAKg7C,EAAKrJ,EAAKyJ,EAAKO,EAAKJ,EAC3C/U,EAAG,GAAKtoC,EAAK0zC,EAAK5xC,EAAKi7C,EAAKtJ,EAAK/iC,EAAK+sC,EAAKH,EAC3ChV,EAAG,GAAKtoC,EAAK48C,EAAK96C,EAAKk7C,EAAKvJ,EAAK0J,EAAKM,EAAKF,EAC3CjV,EAAG,GAAKoV,EAAKv9C,EAAKw9C,EAAKd,EAAKe,EAAKX,EAAKY,EAAKT,EAC3C9U,EAAG,GAAKoV,EAAKz7C,EAAK07C,EAAKb,EAAKc,EAAKV,EAAKW,EAAKR,EAC3C/U,EAAG,GAAKoV,EAAKhK,EAAKiK,EAAKZ,EAAKa,EAAKltC,EAAKmtC,EAAKP,EAC3ChV,EAAG,GAAKoV,EAAKd,EAAKe,EAAKX,EAAKY,EAAKT,EAAKU,EAAKN,EAC3CjV,EAAG,GAAKwV,EAAK39C,EAAK49C,EAAKlB,EAAKmB,EAAKf,EAAKgB,EAAKb,EAC3C9U,EAAG,GAAKwV,EAAK77C,EAAK87C,EAAKjB,EAAKkB,EAAKd,EAAKe,EAAKZ,EAC3C/U,EAAG,IAAMwV,EAAKpK,EAAKqK,EAAKhB,EAAKiB,EAAKttC,EAAKutC,EAAKX,EAC5ChV,EAAG,IAAMwV,EAAKlB,EAAKmB,EAAKf,EAAKgB,EAAKb,EAAKc,EAAKV,EAC5CjV,EAAG,IAAM4V,EAAK/9C,EAAKg+C,EAAKtB,EAAKuB,EAAKnB,EAAK7D,EAAKgE,EAC5C9U,EAAG,IAAM4V,EAAKj8C,EAAKk8C,EAAKrB,EAAKsB,EAAKlB,EAAK9D,EAAKiE,EAC5C/U,EAAG,IAAM4V,EAAKxK,EAAKyK,EAAKpB,EAAKqB,EAAK1tC,EAAK0oC,EAAKkE,EAC5ChV,EAAG,IAAM4V,EAAKtB,EAAKuB,EAAKnB,EAAKoB,EAAKjB,EAAK/D,EAAKmE,EAC5C5kD,KAAK6kD,qBAAsB,EACpB7kD,IACT,CAEA,SAAS0lD,EAASC,GAChB,IAAIC,EAAcD,EAAOl5B,MACzB,OAAOzsB,KAAKmN,UAAUy4C,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IAAKA,EAAY,IACzR,CAEA,SAASC,IAMP,OALK7lD,KAAK6kD,sBACR7kD,KAAK8lD,YAAgC,IAAlB9lD,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA8B,IAAlBzsB,KAAKysB,MAAM,IAA+B,IAAnBzsB,KAAKysB,MAAM,KAAgC,IAAnBzsB,KAAKysB,MAAM,KAAgC,IAAnBzsB,KAAKysB,MAAM,KAAgC,IAAnBzsB,KAAKysB,MAAM,KAAgC,IAAnBzsB,KAAKysB,MAAM,KAAgC,IAAnBzsB,KAAKysB,MAAM,KAC5XzsB,KAAK6kD,qBAAsB,GAGtB7kD,KAAK8lD,SACd,CAEA,SAASthC,EAAOuhC,GAGd,IAFA,IAAIxwD,EAAI,EAEDA,EAAI,IAAI,CACb,GAAIwwD,EAAKt5B,MAAMl3B,KAAOyK,KAAKysB,MAAMl3B,GAC/B,OAAO,EAGTA,GAAK,CACP,CAEA,OAAO,CACT,CAEA,SAAS+M,EAAMyjD,GACb,IAAIxwD,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBwwD,EAAKt5B,MAAMl3B,GAAKyK,KAAKysB,MAAMl3B,GAG7B,OAAOwwD,CACT,CAEA,SAASC,EAAev5B,GACtB,IAAIl3B,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvByK,KAAKysB,MAAMl3B,GAAKk3B,EAAMl3B,EAE1B,CAEA,SAAS0wD,EAAajrD,EAAGsR,EAAGiL,GAC1B,MAAO,CACLvc,EAAGA,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,IAC1EngB,EAAGtR,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,IAC1ElV,EAAGvc,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,IAAMzsB,KAAKysB,MAAM,IAM/E,CAEA,SAASy5B,EAASlrD,EAAGsR,EAAGiL,GACtB,OAAOvc,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,GAChF,CAEA,SAAS05B,EAASnrD,EAAGsR,EAAGiL,GACtB,OAAOvc,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,GAChF,CAEA,SAAS25B,EAASprD,EAAGsR,EAAGiL,GACtB,OAAOvc,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,IAAMzsB,KAAKysB,MAAM,GACjF,CAEA,SAAS45B,IACP,IAAIC,EAActmD,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,GACzE5oB,EAAI7D,KAAKysB,MAAM,GAAK65B,EACpB32D,GAAKqQ,KAAKysB,MAAM,GAAK65B,EACrB7lD,GAAKT,KAAKysB,MAAM,GAAK65B,EACrB7tC,EAAIzY,KAAKysB,MAAM,GAAK65B,EACpBnwD,GAAK6J,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,IAAMzsB,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,KAAO65B,EACxE77B,IAAMzqB,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,IAAMzsB,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,KAAO65B,EACzEC,EAAgB,IAAI7D,OAOxB,OANA6D,EAAc95B,MAAM,GAAK5oB,EACzB0iD,EAAc95B,MAAM,GAAK98B,EACzB42D,EAAc95B,MAAM,GAAKhsB,EACzB8lD,EAAc95B,MAAM,GAAKhU,EACzB8tC,EAAc95B,MAAM,IAAMt2B,EAC1BowD,EAAc95B,MAAM,IAAMhC,EACnB87B,CACT,CAEA,SAASC,EAAa1oB,GAEpB,OADoB99B,KAAKqmD,mBACJI,kBAAkB3oB,EAAG,GAAIA,EAAG,GAAIA,EAAG,IAAM,EAChE,CAEA,SAAS4oB,EAAcC,GACrB,IAAIpxD,EACAqI,EAAM+oD,EAAIx2D,OACVy2D,EAAS,GAEb,IAAKrxD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBqxD,EAAOrxD,GAAKixD,EAAaG,EAAIpxD,IAG/B,OAAOqxD,CACT,CAEA,SAASC,EAAoBhU,EAAKC,EAAKC,GACrC,IAAIv1C,EAAM25B,iBAAiB,UAAW,GAEtC,GAAIn3B,KAAK6lD,aACProD,EAAI,GAAKq1C,EAAI,GACbr1C,EAAI,GAAKq1C,EAAI,GACbr1C,EAAI,GAAKs1C,EAAI,GACbt1C,EAAI,GAAKs1C,EAAI,GACbt1C,EAAI,GAAKu1C,EAAI,GACbv1C,EAAI,GAAKu1C,EAAI,OACR,CACL,IAAIyN,EAAKxgD,KAAKysB,MAAM,GAChBg0B,EAAKzgD,KAAKysB,MAAM,GAChBq6B,EAAK9mD,KAAKysB,MAAM,GAChBs6B,EAAK/mD,KAAKysB,MAAM,GAChBu6B,EAAMhnD,KAAKysB,MAAM,IACjBw6B,EAAMjnD,KAAKysB,MAAM,IACrBjvB,EAAI,GAAKq1C,EAAI,GAAK2N,EAAK3N,EAAI,GAAKiU,EAAKE,EACrCxpD,EAAI,GAAKq1C,EAAI,GAAK4N,EAAK5N,EAAI,GAAKkU,EAAKE,EACrCzpD,EAAI,GAAKs1C,EAAI,GAAK0N,EAAK1N,EAAI,GAAKgU,EAAKE,EACrCxpD,EAAI,GAAKs1C,EAAI,GAAK2N,EAAK3N,EAAI,GAAKiU,EAAKE,EACrCzpD,EAAI,GAAKu1C,EAAI,GAAKyN,EAAKzN,EAAI,GAAK+T,EAAKE,EACrCxpD,EAAI,GAAKu1C,EAAI,GAAK0N,EAAK1N,EAAI,GAAKgU,EAAKE,CACvC,CAEA,OAAOzpD,CACT,CAEA,SAASipD,EAAkBzrD,EAAGsR,EAAGiL,GAS/B,OANIvX,KAAK6lD,aACD,CAAC7qD,EAAGsR,EAAGiL,GAEP,CAACvc,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,IAAKzxB,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,GAAKzsB,KAAKysB,MAAM,IAAKzxB,EAAIgF,KAAKysB,MAAM,GAAKngB,EAAItM,KAAKysB,MAAM,GAAKlV,EAAIvX,KAAKysB,MAAM,IAAMzsB,KAAKysB,MAAM,IAI3O,CAEA,SAASy6B,EAAwBlsD,EAAGsR,GAClC,GAAItM,KAAK6lD,aACP,OAAO7qD,EAAI,IAAMsR,EAGnB,IAAIqjC,EAAK3vC,KAAKysB,MACd,OAAOv6B,KAAKuc,MAAyC,KAAlCzT,EAAI20C,EAAG,GAAKrjC,EAAIqjC,EAAG,GAAKA,EAAG,MAAc,IAAM,IAAMz9C,KAAKuc,MAAyC,KAAlCzT,EAAI20C,EAAG,GAAKrjC,EAAIqjC,EAAG,GAAKA,EAAG,MAAc,GAC/H,CAEA,SAASwX,IAWP,IALA,IAAI5xD,EAAI,EACJk3B,EAAQzsB,KAAKysB,MACb26B,EAAW,YAGR7xD,EAAI,IACT6xD,GAAYrE,EAHN,IAGWt2B,EAAMl3B,IAHjB,IAIN6xD,GAAkB,KAAN7xD,EAAW,IAAM,IAC7BA,GAAK,EAGP,OAAO6xD,CACT,CAEA,SAASC,EAAoBjoD,GAG3B,OAAIA,EAAM,MAAYA,EAAM,GAAKA,GAAO,MAAYA,EAAM,EACjD2jD,EAHD,IAGM3jD,GAHN,IAMDA,CACT,CAEA,SAASkoD,IAMP,IAAI76B,EAAQzsB,KAAKysB,MAcjB,MAAO,UAZE46B,EAAoB56B,EAAM,IAYX,IAVf46B,EAAoB56B,EAAM,IAUA,IAR1B46B,EAAoB56B,EAAM,IAQW,IANrC46B,EAAoB56B,EAAM,IAMsB,IAJhD46B,EAAoB56B,EAAM,KAIiC,IAF3D46B,EAAoB56B,EAAM,KAE4C,GACjF,CAEA,OAAO,WACLzsB,KAAKkgD,MAAQA,EACblgD,KAAKgjD,OAASA,EACdhjD,KAAKojD,QAAUA,EACfpjD,KAAKqjD,QAAUA,EACfrjD,KAAKsjD,QAAUA,EACftjD,KAAKyjD,KAAOA,EACZzjD,KAAK0jD,aAAeA,EACpB1jD,KAAKujD,MAAQA,EACbvjD,KAAK2jD,MAAQA,EACb3jD,KAAK6jD,aAAeA,EACpB7jD,KAAK8jD,UAAYA,EACjB9jD,KAAKmN,UAAYA,EACjBnN,KAAK0lD,SAAWA,EAChB1lD,KAAKimD,aAAeA,EACpBjmD,KAAKkmD,SAAWA,EAChBlmD,KAAKmmD,SAAWA,EAChBnmD,KAAKomD,SAAWA,EAChBpmD,KAAKymD,kBAAoBA,EACzBzmD,KAAK6mD,oBAAsBA,EAC3B7mD,KAAKknD,wBAA0BA,EAC/BlnD,KAAKmnD,MAAQA,EACbnnD,KAAKsnD,QAAUA,EACftnD,KAAKsC,MAAQA,EACbtC,KAAKgmD,eAAiBA,EACtBhmD,KAAKwkB,OAASA,EACdxkB,KAAK0mD,cAAgBA,EACrB1mD,KAAKwmD,aAAeA,EACpBxmD,KAAKqmD,iBAAmBA,EACxBrmD,KAAKmjD,GAAKnjD,KAAKmN,UACfnN,KAAK6lD,WAAaA,EAClB7lD,KAAK8lD,WAAY,EACjB9lD,KAAK6kD,qBAAsB,EAC3B7kD,KAAKysB,MAAQ0K,iBAAiB,UAAW,IACzCn3B,KAAKkgD,OACP,CACF,CAhba,GAkbb,SAASqH,UAAU3pC,GAAuV,OAA1O2pC,UAArD,oBAAX9kD,QAAoD,kBAApBA,OAAOi1B,SAAqC,SAAiB9Z,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXnb,QAAyBmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAY2pC,UAAU3pC,EAAM,CACjY,IAAI4pC,OAAS,CAAC,EACVtZ,WAAa,mBACbvhB,cAAgB,sBAChBe,SAAW,GAEf,SAAS+5B,YAAYC,GACnB7yB,gBAAgB6yB,EAClB,CAEA,SAASzZ,oBACY,IAAfC,WACFhB,iBAAiBe,iBAAiBthB,cAAeuhB,WAAYxgB,UAE7Dwf,iBAAiBe,kBAErB,CAEA,SAAS0Z,qBAAqBhzB,GAC5B2G,mBAAmB3G,EACrB,CAEA,SAASizB,UAAUC,GACjB/rB,YAAY+rB,EACd,CAEA,SAASj4B,cAAcpE,GAKrB,OAJmB,IAAf0iB,aACF1iB,EAAOmB,cAAgBb,KAAKK,MAAMQ,gBAG7BugB,iBAAiBtd,cAAcpE,EACxC,CAEA,SAASs8B,WAAWlvD,GAClB,GAAqB,kBAAVA,EACT,OAAQA,GACN,IAAK,OACHgjC,wBAAwB,KACxB,MAEF,QACA,IAAK,SACHA,wBAAwB,IACxB,MAEF,IAAK,MACHA,wBAAwB,SAGlBvR,MAAMzxB,IAAUA,EAAQ,GAClCgjC,wBAAwBhjC,GAGtBijC,2BAA6B,GAC/B7C,aAAY,GAEZA,aAAY,EAEhB,CAEA,SAAS+uB,YACP,MAA4B,qBAAd1zB,SAChB,CAEA,SAAS2zB,cAAcxqC,EAAMyqC,GACd,gBAATzqC,GACFge,qBAAqBysB,EAEzB,CAEA,SAASC,WAAW32D,GAClB,OAAQA,GACN,IAAK,kBACH,OAAOurD,gBAET,IAAK,uBACH,OAAOqC,qBAET,IAAK,SACH,OAAOuD,OAET,QACE,OAAO,KAEb,CA+BA,SAASyF,aACqB,aAAxBt1B,SAASyO,aACXyC,cAAcqkB,yBACdna,mBAEJ,CAEA,SAASoa,iBAAiBC,GAGxB,IAFA,IAAIC,EAAOC,YAAY50D,MAAM,KAEpB2B,EAAI,EAAGA,EAAIgzD,EAAKp4D,OAAQoF,GAAK,EAAG,CACvC,IAAIkzD,EAAOF,EAAKhzD,GAAG3B,MAAM,KAEzB,GAAI80D,mBAAmBD,EAAK,KAAOH,EAEjC,OAAOI,mBAAmBD,EAAK,GAEnC,CAEA,OAAO,IACT,CAjDAjB,OAAO/4B,KAAOye,iBAAiBze,KAC/B+4B,OAAO54B,MAAQse,iBAAiBte,MAChC44B,OAAO3yB,gBAAkB4yB,YACzBD,OAAO5b,YAAcsB,iBAAiBtB,YACtC4b,OAAO34B,SAAWqe,iBAAiBre,SACnC24B,OAAOt4B,aAAege,iBAAiBhe,aACvCs4B,OAAO74B,KAAOue,iBAAiBve,KAC/B64B,OAAOvZ,iBAAmBA,iBAC1BuZ,OAAO7Z,kBAAoBT,iBAAiBS,kBAC5C6Z,OAAO53B,cAAgBA,cACvB43B,OAAOG,qBAAuBA,qBAC9BH,OAAOnc,OAAS6B,iBAAiB7B,OAEjCmc,OAAOv4B,YAAcie,iBAAiBje,YACtCu4B,OAAO73B,QAAUud,iBAAiBvd,QAClC63B,OAAOM,WAAaA,WACpBN,OAAOO,UAAYA,UACnBP,OAAOQ,cAAgBA,cACvBR,OAAO9Y,OAASxB,iBAAiBwB,OACjC8Y,OAAO7Y,SAAWzB,iBAAiByB,SACnC6Y,OAAO5wB,UAAYsW,iBAAiBtW,UACpC4wB,OAAOzwB,KAAOmW,iBAAiBnW,KAC/BywB,OAAOxwB,OAASkW,iBAAiBlW,OACjCwwB,OAAO5Y,wBAA0B1B,iBAAiB0B,wBAClD4Y,OAAOmB,aAAej0B,aACtB8yB,OAAOoB,YAAchB,UACrBJ,OAAOqB,aAAeX,WACtBV,OAAOp8B,QAAU,SAwBjB,IAAIo9B,YAAc,GAElB,GAAIta,WAAY,CACd,IAAI4a,QAAUj2B,SAAS2b,qBAAqB,UACxChuC,MAAQsoD,QAAQ34D,OAAS,EACzB44D,SAAWD,QAAQtoD,QAAU,CAC/BnO,IAAK,IAEPm2D,YAAcO,SAAS12D,IAAM02D,SAAS12D,IAAIkP,QAAQ,aAAc,IAAM,GAEtEmsB,SAAW26B,iBAAiB,WAC9B,CAEA,IAAID,wBAA0BxkB,YAAYukB,WAAY,KAEtD,IACgF,WAAxBZ,UAAU7sD,UAA8FsuD,oBAAAA,IAIhK,CAAE,MAAOn9B,KAAM,CAGf,IAAIo9B,eAAiB,WACnB,IAAIhlB,EAAK,CAAC,EACNilB,EAAY,CAAC,EAcjB,OAbAjlB,EAAGklB,iBAGH,SAA0BniB,EAAI5S,GACvB80B,EAAUliB,KACbkiB,EAAUliB,GAAM5S,EAEpB,EANA6P,EAAGmlB,YAQH,SAAqBpiB,EAAItrB,EAAMwE,GAC7B,OAAO,IAAIgpC,EAAUliB,GAAItrB,EAAMwE,EACjC,EAEO+jB,CACT,CAjBqB,GAmBrB,SAASolB,gBAAiB,CAmD1B,SAASC,eAAgB,CAgZzB,SAASC,yBAA0B,CAjcnCF,cAAcn4D,UAAUs4D,uBAAyB,WAAa,EAE9DH,cAAcn4D,UAAUu4D,mBAAqB,WAAa,EAE1DJ,cAAcn4D,UAAU4tD,SAAW,SAAU5+B,GAC3C,IAAKlgB,KAAKqgC,OAAQ,CAEhBngB,EAAKg5B,GAAG5/C,UAAUgjD,mBAAmBp8B,EAAKg5B,IAC1C,IAAI3E,EAAY,CACdoK,MAAOz+B,EAAKg5B,GACZh5B,KAAMA,EACN2/B,qBAAsBb,oBAAoBC,sBAE5Cj/C,KAAKo+B,OAAO5oC,KAAK++C,GACjBv0C,KAAKypD,mBAAmBlV,GAEpBv0C,KAAKo9C,aACPl9B,EAAKwpC,eAET,CACF,EAEAL,cAAcn4D,UAAUs7C,KAAO,SAAU9wB,EAAMwE,GAC7ClgB,KAAKo+B,OAAS,GACdp+B,KAAK0b,KAAOA,EACZ1b,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKwpD,uBAAuB9tC,EAAMwE,GAClClgB,KAAK87C,QAAUrnB,oBACfz0B,KAAKqgC,QAAS,EACdrgC,KAAK8D,GAAI,EAEL9D,KAAKm9C,kBAAkBhtD,OACzB6P,KAAK8D,GAAI,EAET9D,KAAKy8C,UAAS,EAElB,EAEA4M,cAAcn4D,UAAUy4D,YAAc,WAChC3pD,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,UAI1C97C,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,QACpC97C,KAAKq9C,2BACP,EAEAroB,gBAAgB,CAACkoB,0BAA2BmM,eAI5Cr0B,gBAAgB,CAACq0B,eAAgBC,cAEjCA,aAAap4D,UAAUs4D,uBAAyB,SAAU9tC,EAAMwE,GAC9DlgB,KAAKoN,EAAI0vC,gBAAgBC,QAAQrhC,EAAMwE,EAAK9S,EAAG,EAAG,IAAMpN,MACxDA,KAAK7J,EAAI2mD,gBAAgBC,QAAQrhC,EAAMwE,EAAK/pB,EAAG,EAAG,IAAM6J,MACxDA,KAAKiH,EAAI61C,gBAAgBC,QAAQrhC,EAAMwE,EAAKjZ,EAAG,EAAG,EAAGjH,MACrDA,KAAK4pD,OAAS,EACd5pD,KAAK6pD,OAAS,EACd7pD,KAAKy8C,SAAWz8C,KAAK2pD,YACrB3pD,KAAKoO,EAAI8R,EAAK9R,EACdpO,KAAKo9C,cAAgBp9C,KAAKoN,EAAE2uC,gBAAgB5rD,UAAY6P,KAAK7J,EAAE4lD,gBAAgB5rD,UAAY6P,KAAKiH,EAAE80C,gBAAgB5rD,MACpH,EAEAm5D,aAAap4D,UAAUu4D,mBAAqB,SAAUlV,GACpDA,EAAUuV,UAAY,EACxB,EAEAR,aAAap4D,UAAU64D,oBAAsB,SAAU38C,EAAGjX,EAAG6zD,EAAajY,EAAakY,GACrF,IAAI56B,EAAW,GAEXl5B,GAAK,EACPk5B,EAAS75B,KAAK,CACZ4X,EAAGA,EACHjX,EAAGA,IAEIiX,GAAK,EACdiiB,EAAS75B,KAAK,CACZ4X,EAAGA,EAAI,EACPjX,EAAGA,EAAI,KAGTk5B,EAAS75B,KAAK,CACZ4X,EAAGA,EACHjX,EAAG,IAELk5B,EAAS75B,KAAK,CACZ4X,EAAG,EACHjX,EAAGA,EAAI,KAIX,IACIZ,EAEA20D,EAHAC,EAAgB,GAEhBvsD,EAAMyxB,EAASl/B,OAGnB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAIzB,IAAI60D,EACAC,GAJNH,EAAY76B,EAAS95B,IAELY,EAAI8zD,EAAsBlY,GAAemY,EAAU98C,EAAI68C,EAAsBlY,EAAciY,IAKvGI,EADEF,EAAU98C,EAAI68C,GAAuBlY,EAC9B,GAECmY,EAAU98C,EAAI68C,EAAsBlY,GAAeiY,EAI7DK,EADEH,EAAU/zD,EAAI8zD,GAAuBlY,EAAciY,EAC5C,GAECE,EAAU/zD,EAAI8zD,EAAsBlY,GAAeiY,EAG/DG,EAAc30D,KAAK,CAAC40D,EAAQC,IAEhC,CAMA,OAJKF,EAAch6D,QACjBg6D,EAAc30D,KAAK,CAAC,EAAG,IAGlB20D,CACT,EAEAb,aAAap4D,UAAUo5D,iBAAmB,SAAUR,GAClD,IAAIv0D,EACAqI,EAAMksD,EAAU35D,OAEpB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB28C,mBAAmBL,QAAQiY,EAAUv0D,IAIvC,OADAu0D,EAAU35D,OAAS,EACZ25D,CACT,EAEAR,aAAap4D,UAAUq5D,cAAgB,SAAUtO,GAC/C,IAAI7uC,EACAjX,EAwCAq0D,EACAj1D,EAvCJ,GAAIyK,KAAK47C,MAAQK,EAAe,CAC9B,IAAIh1C,EAAIjH,KAAKiH,EAAEtR,EAAI,IAAM,IAsBzB,GApBIsR,EAAI,IACNA,GAAK,IAILmG,EADEpN,KAAKoN,EAAEzX,EAAI,EACT,EAAIsR,EACCjH,KAAKoN,EAAEzX,EAAI,EAChB,EAAIsR,EAEJjH,KAAKoN,EAAEzX,EAAIsR,IAIf9Q,EADE6J,KAAK7J,EAAER,EAAI,EACT,EAAIsR,EACCjH,KAAK7J,EAAER,EAAI,EAChB,EAAIsR,EAEJjH,KAAK7J,EAAER,EAAIsR,GAGN,CACT,IAAIwjD,EAAKr9C,EACTA,EAAIjX,EACJA,EAAIs0D,CACN,CAEAr9C,EAA4B,KAAxBlb,KAAKuc,MAAU,IAAJrB,GACfjX,EAA4B,KAAxBjE,KAAKuc,MAAU,IAAJtY,GACf6J,KAAK4pD,OAASx8C,EACdpN,KAAK6pD,OAAS1zD,CAChB,MACEiX,EAAIpN,KAAK4pD,OACTzzD,EAAI6J,KAAK6pD,OAKX,IACI9uD,EACAyiC,EACAssB,EACA9pB,EACA0qB,EALA9sD,EAAMoC,KAAKo+B,OAAOjuC,OAMlB85D,EAAsB,EAE1B,GAAI9zD,IAAMiX,EACR,IAAK7X,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKo+B,OAAO7oC,GAAGsqD,qBAAqBd,gBACpC/+C,KAAKo+B,OAAO7oC,GAAGopD,MAAM/C,MAAO,EAC5B57C,KAAKo+B,OAAO7oC,GAAGopD,MAAMiB,MAAQ5/C,KAAKo+B,OAAO7oC,GAAGsqD,qBAExC7/C,KAAK47C,OACP57C,KAAKo+B,OAAO7oC,GAAGu0D,UAAU35D,OAAS,QAGjC,GAAY,IAANgG,GAAiB,IAANiX,GAAiB,IAANjX,GAAiB,IAANiX,GAyGvC,GAAIpN,KAAK47C,KACd,IAAKrmD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGxByK,KAAKo+B,OAAO7oC,GAAGu0D,UAAU35D,OAAS,EAClC6P,KAAKo+B,OAAO7oC,GAAGopD,MAAM/C,MAAO,MA9GwB,CACtD,IACIrH,EACAsL,EAFAxwB,EAAW,GAIf,IAAK95B,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGxB,IAFAg/C,EAAYv0C,KAAKo+B,OAAO7oC,IAETopD,MAAM/C,MAAS57C,KAAK47C,MAASK,GAA4B,IAAXj8C,KAAKoO,EAE3D,CAKL,GAHAovB,GADAgtB,EAAajW,EAAUoK,MAAMiB,OACXnO,QAClBiZ,EAAmB,GAEdnW,EAAUoK,MAAM/C,MAAQrH,EAAUuV,UAAU35D,OAC/Cu6D,EAAmBnW,EAAUmW,qBACxB,CAGL,IAFAZ,EAAY9pD,KAAKsqD,iBAAiB/V,EAAUuV,WAEvC/uD,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzBilC,EAAW6W,IAAIvC,kBAAkBkW,EAAWpsB,OAAOrjC,IACnD+uD,EAAUt0D,KAAKwqC,GACf0qB,GAAoB1qB,EAASmS,YAG/BoC,EAAUmW,iBAAmBA,EAC7BnW,EAAUuV,UAAYA,CACxB,CAEAG,GAAuBS,EACvBnW,EAAUoK,MAAM/C,MAAO,CACzB,MAvBErH,EAAUoK,MAAMiB,MAAQrL,EAAUsL,qBA0BtC,IAGI8K,EAHAP,EAASh9C,EACTi9C,EAASl0D,EACT47C,EAAc,EAGlB,IAAKx8C,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,EAG7B,IAFAg/C,EAAYv0C,KAAKo+B,OAAO7oC,IAEVopD,MAAM/C,KAAM,CAaxB,KAZAiE,EAAuBtL,EAAUsL,sBACZd,gBAEN,IAAX/+C,KAAKoO,GAAWxQ,EAAM,GACxB+sD,EAAQ3qD,KAAK+pD,oBAAoB38C,EAAGjX,EAAGo+C,EAAUmW,iBAAkB3Y,EAAakY,GAChFlY,GAAewC,EAAUmW,kBAEzBC,EAAQ,CAAC,CAACP,EAAQC,IAGpB7sB,EAAOmtB,EAAMx6D,OAER4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAAG,CAC5BqvD,EAASO,EAAM5vD,GAAG,GAClBsvD,EAASM,EAAM5vD,GAAG,GAClBs0B,EAASl/B,OAAS,EAEdk6D,GAAU,EACZh7B,EAAS75B,KAAK,CACZ4X,EAAGmnC,EAAUmW,iBAAmBN,EAChCj0D,EAAGo+C,EAAUmW,iBAAmBL,IAEzBD,GAAU,EACnB/6B,EAAS75B,KAAK,CACZ4X,EAAGmnC,EAAUmW,kBAAoBN,EAAS,GAC1Cj0D,EAAGo+C,EAAUmW,kBAAoBL,EAAS,MAG5Ch7B,EAAS75B,KAAK,CACZ4X,EAAGmnC,EAAUmW,iBAAmBN,EAChCj0D,EAAGo+C,EAAUmW,mBAEfr7B,EAAS75B,KAAK,CACZ4X,EAAG,EACHjX,EAAGo+C,EAAUmW,kBAAoBL,EAAS,MAI9C,IAAIO,EAAgB5qD,KAAK6qD,UAAUtW,EAAWllB,EAAS,IAEvD,GAAIA,EAAS,GAAGjiB,IAAMiiB,EAAS,GAAGl5B,EAAG,CACnC,GAAIk5B,EAASl/B,OAAS,EAGpB,GAF4BokD,EAAUoK,MAAMiB,MAAMxhB,OAAOmW,EAAUoK,MAAMiB,MAAMnO,QAAU,GAE/DhxC,EAAG,CAC3B,IAAIqqD,EAAYF,EAAcG,MAC9B/qD,KAAKgrD,SAASJ,EAAe/K,GAC7B+K,EAAgB5qD,KAAK6qD,UAAUtW,EAAWllB,EAAS,GAAIy7B,EACzD,MACE9qD,KAAKgrD,SAASJ,EAAe/K,GAC7B+K,EAAgB5qD,KAAK6qD,UAAUtW,EAAWllB,EAAS,IAIvDrvB,KAAKgrD,SAASJ,EAAe/K,EAC/B,CACF,CAEAtL,EAAUoK,MAAMiB,MAAQC,CAC1B,CAEJ,CAQF,EAEAyJ,aAAap4D,UAAU85D,SAAW,SAAUC,EAAUpL,GACpD,IAAItqD,EACAqI,EAAMqtD,EAAS96D,OAEnB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBsqD,EAAqBf,SAASmM,EAAS11D,GAE3C,EAEA+zD,aAAap4D,UAAUg6D,WAAa,SAAUrY,EAAKC,EAAKC,EAAKC,EAAK0L,EAAWv6B,EAAKgnC,GAChFzM,EAAUd,QAAQ9K,EAAI,GAAIA,EAAI,GAAI,IAAK3uB,GACvCu6B,EAAUd,QAAQ7K,EAAI,GAAIA,EAAI,GAAI,IAAK5uB,EAAM,GAEzCgnC,GACFzM,EAAUd,QAAQ/K,EAAI,GAAIA,EAAI,GAAI,IAAK1uB,GAGzCu6B,EAAUd,QAAQ5K,EAAI,GAAIA,EAAI,GAAI,IAAK7uB,EAAM,EAC/C,EAEAmlC,aAAap4D,UAAUk6D,oBAAsB,SAAU1b,EAAQgP,EAAWv6B,EAAKgnC,GAC7EzM,EAAUd,QAAQlO,EAAO,GAAIA,EAAO,GAAI,IAAKvrB,GAC7Cu6B,EAAUd,QAAQlO,EAAO,GAAIA,EAAO,GAAI,IAAKvrB,EAAM,GAE/CgnC,GACFzM,EAAUd,QAAQlO,EAAO,GAAIA,EAAO,GAAI,IAAKvrB,GAG/Cu6B,EAAUd,QAAQlO,EAAO,GAAIA,EAAO,GAAI,IAAKvrB,EAAM,EACrD,EAEAmlC,aAAap4D,UAAU25D,UAAY,SAAUtW,EAAW8W,EAAc3M,GACpE,IAEInpD,EAEAwF,EACAyiC,EAEA8tB,EACAC,EACAtZ,EACA5H,EAEA6J,EAZA4V,EAAYvV,EAAUuV,UACtBU,EAAajW,EAAUoK,MAAMiB,MAAMxhB,OAEnCxgC,EAAM22C,EAAUoK,MAAMiB,MAAMnO,QAG5BM,EAAc,EAKd3T,EAAS,GAET+sB,GAAW,EAaf,IAXKzM,GAKH6M,EAAe7M,EAAUjN,QACzByC,EAAUwK,EAAUjN,UALpBiN,EAAYD,UAAU7M,aACtB2Z,EAAe,EACfrX,EAAU,GAMZ9V,EAAO5oC,KAAKkpD,GAEPnpD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAK3B,IAJA08C,EAAU6X,EAAUv0D,GAAG08C,QACvByM,EAAUj+C,EAAI+pD,EAAWj1D,GAAGkL,EAC5B+8B,EAAOgtB,EAAWj1D,GAAGkL,EAAIwxC,EAAQ9hD,OAAS8hD,EAAQ9hD,OAAS,EAEtD4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAGzB,GAAIg3C,GAFJuZ,EAAoBrZ,EAAQl3C,EAAI,IAEIg3C,YAAcsZ,EAAaj+C,EAC7D2kC,GAAeuZ,EAAkBvZ,YACjC2M,EAAUj+C,GAAI,MACT,IAAIsxC,EAAcsZ,EAAal1D,EAAG,CACvCuoD,EAAUj+C,GAAI,EACd,KACF,CACM4qD,EAAaj+C,GAAK2kC,GAAesZ,EAAal1D,GAAK47C,EAAcuZ,EAAkBvZ,aACrF/xC,KAAKkrD,WAAWV,EAAWj1D,GAAGI,EAAEoF,EAAI,GAAIyvD,EAAWj1D,GAAG0R,EAAElM,EAAI,GAAIyvD,EAAWj1D,GAAGA,EAAEwF,GAAIyvD,EAAWj1D,GAAGI,EAAEoF,GAAI2jD,EAAW6M,EAAcJ,GACjIA,GAAW,IAEX9gB,EAAUwM,IAAIjC,cAAc4V,EAAWj1D,GAAGI,EAAEoF,EAAI,GAAIyvD,EAAWj1D,GAAGI,EAAEoF,GAAIyvD,EAAWj1D,GAAG0R,EAAElM,EAAI,GAAIyvD,EAAWj1D,GAAGA,EAAEwF,IAAKswD,EAAaj+C,EAAI2kC,GAAeuZ,EAAkBvZ,aAAcsZ,EAAal1D,EAAI47C,GAAeuZ,EAAkBvZ,YAAaE,EAAQl3C,EAAI,IAChQiF,KAAKorD,oBAAoB/gB,EAASqU,EAAW6M,EAAcJ,GAE3DA,GAAW,EACXzM,EAAUj+C,GAAI,GAGhBsxC,GAAeuZ,EAAkBvZ,YACjCwZ,GAAgB,CAClB,CAGF,GAAIf,EAAWj1D,GAAGkL,GAAKwxC,EAAQ9hD,OAAQ,CAGrC,GAFAm7D,EAAoBrZ,EAAQl3C,EAAI,GAE5Bg3C,GAAesZ,EAAal1D,EAAG,CACjC,IAAIs9C,EAAgBxB,EAAQl3C,EAAI,GAAGg3C,YAE/BsZ,EAAaj+C,GAAK2kC,GAAesZ,EAAal1D,GAAK47C,EAAc0B,GACnEzzC,KAAKkrD,WAAWV,EAAWj1D,GAAGI,EAAEoF,EAAI,GAAIyvD,EAAWj1D,GAAG0R,EAAElM,EAAI,GAAIyvD,EAAWj1D,GAAGA,EAAE,GAAIi1D,EAAWj1D,GAAGI,EAAE,GAAI+oD,EAAW6M,EAAcJ,GACjIA,GAAW,IAEX9gB,EAAUwM,IAAIjC,cAAc4V,EAAWj1D,GAAGI,EAAEoF,EAAI,GAAIyvD,EAAWj1D,GAAGI,EAAE,GAAI60D,EAAWj1D,GAAG0R,EAAElM,EAAI,GAAIyvD,EAAWj1D,GAAGA,EAAE,IAAK81D,EAAaj+C,EAAI2kC,GAAe0B,GAAgB4X,EAAal1D,EAAI47C,GAAe0B,EAAexB,EAAQl3C,EAAI,IAChOiF,KAAKorD,oBAAoB/gB,EAASqU,EAAW6M,EAAcJ,GAE3DA,GAAW,EACXzM,EAAUj+C,GAAI,EAElB,MACEi+C,EAAUj+C,GAAI,EAGhBsxC,GAAeuZ,EAAkBvZ,YACjCwZ,GAAgB,CAClB,CAOA,GALI7M,EAAUjN,UACZiN,EAAUd,QAAQc,EAAU/oD,EAAEu+C,GAAS,GAAIwK,EAAU/oD,EAAEu+C,GAAS,GAAI,IAAKA,GACzEwK,EAAUd,QAAQc,EAAU/oD,EAAE+oD,EAAUjN,QAAU,GAAG,GAAIiN,EAAU/oD,EAAE+oD,EAAUjN,QAAU,GAAG,GAAI,IAAKiN,EAAUjN,QAAU,IAGvHM,EAAcsZ,EAAal1D,EAC7B,MAGEZ,EAAIqI,EAAM,IACZ8gD,EAAYD,UAAU7M,aACtBuZ,GAAW,EACX/sB,EAAO5oC,KAAKkpD,GACZ6M,EAAe,EAEnB,CAEA,OAAOntB,CACT,EAIApJ,gBAAgB,CAACq0B,eAAgBE,wBAEjCA,uBAAuBr4D,UAAUs4D,uBAAyB,SAAU9tC,EAAMwE,GACxElgB,KAAKy8C,SAAWz8C,KAAK2pD,YACrB3pD,KAAKwrD,OAAS1O,gBAAgBC,QAAQrhC,EAAMwE,EAAKrc,EAAG,EAAG,KAAM7D,MAC7DA,KAAKo9C,cAAgBp9C,KAAKwrD,OAAOzP,gBAAgB5rD,MACnD,EAEAo5D,uBAAuBr4D,UAAUu6D,YAAc,SAAU9uB,EAAM6uB,GAC7D,IAAIpV,EAAUoV,EAAS,IACnBE,EAAc,CAAC,EAAG,GAClBC,EAAahvB,EAAK8U,QAClBl8C,EAAI,EAER,IAAKA,EAAI,EAAGA,EAAIo2D,EAAYp2D,GAAK,EAC/Bm2D,EAAY,IAAM/uB,EAAKhnC,EAAEJ,GAAG,GAC5Bm2D,EAAY,IAAM/uB,EAAKhnC,EAAEJ,GAAG,GAG9Bm2D,EAAY,IAAMC,EAClBD,EAAY,IAAMC,EAClB,IAEI7N,EACAC,EACAC,EACAC,EACAC,EACAC,EAPAyN,EAAanN,UAAU7M,aAS3B,IARAga,EAAWnrD,EAAIk8B,EAAKl8B,EAQflL,EAAI,EAAGA,EAAIo2D,EAAYp2D,GAAK,EAC/BuoD,EAAKnhB,EAAKhnC,EAAEJ,GAAG,IAAMm2D,EAAY,GAAK/uB,EAAKhnC,EAAEJ,GAAG,IAAM6gD,EACtD2H,EAAKphB,EAAKhnC,EAAEJ,GAAG,IAAMm2D,EAAY,GAAK/uB,EAAKhnC,EAAEJ,GAAG,IAAM6gD,EACtD4H,EAAKrhB,EAAK11B,EAAE1R,GAAG,IAAMm2D,EAAY,GAAK/uB,EAAK11B,EAAE1R,GAAG,KAAO6gD,EACvD6H,EAAKthB,EAAK11B,EAAE1R,GAAG,IAAMm2D,EAAY,GAAK/uB,EAAK11B,EAAE1R,GAAG,KAAO6gD,EACvD8H,EAAKvhB,EAAKpnC,EAAEA,GAAG,IAAMm2D,EAAY,GAAK/uB,EAAKpnC,EAAEA,GAAG,KAAO6gD,EACvD+H,EAAKxhB,EAAKpnC,EAAEA,GAAG,IAAMm2D,EAAY,GAAK/uB,EAAKpnC,EAAEA,GAAG,KAAO6gD,EACvDwV,EAAW/N,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI5oD,GAGjD,OAAOq2D,CACT,EAEArC,uBAAuBr4D,UAAUq5D,cAAgB,SAAUtO,GACzD,IAAIuO,EACAj1D,EAEAwF,EACAyiC,EAIE+W,EACAsL,EAPFjiD,EAAMoC,KAAKo+B,OAAOjuC,OAGlBq7D,EAASxrD,KAAKwrD,OAAO71D,EAEzB,GAAe,IAAX61D,EAIF,IAAKj2D,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAI3B,GAFAsqD,GADAtL,EAAYv0C,KAAKo+B,OAAO7oC,IACSsqD,qBAE1BtL,EAAUoK,MAAM/C,MAAS57C,KAAK47C,MAASK,EAM5C,IALA4D,EAAqBd,gBACrBxK,EAAUoK,MAAM/C,MAAO,EACvB4O,EAAajW,EAAUoK,MAAMiB,MAAMxhB,OACnCZ,EAAO+W,EAAUoK,MAAMiB,MAAMnO,QAExB12C,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB8kD,EAAqBf,SAAS9+C,KAAKyrD,YAAYjB,EAAWzvD,GAAIywD,IAIlEjX,EAAUoK,MAAMiB,MAAQrL,EAAUsL,oBACpC,CAGG7/C,KAAKm9C,kBAAkBhtD,SAC1B6P,KAAK47C,MAAO,EAEhB,EAEA,IAAIiQ,yBAA2B,WAC7B,IAAIC,EAAgB,CAAC,EAAG,GAkLxB,SAASC,EAAkBrwC,EAAMwE,EAAM5mB,GAwBrC,GAvBA0G,KAAK0b,KAAOA,EACZ1b,KAAK87C,SAAW,EAChB97C,KAAKq3C,SAAW,YAChBr3C,KAAKkgB,KAAOA,EACZlgB,KAAKrK,EAAI,IAAI+sD,OAEb1iD,KAAKgsD,IAAM,IAAItJ,OACf1iD,KAAKisD,uBAAyB,EAC9BjsD,KAAKs9C,6BAA6BhkD,GAAaoiB,GAE3CwE,EAAKxS,GAAKwS,EAAKxS,EAAEN,GACnBpN,KAAKksD,GAAKpP,gBAAgBC,QAAQrhC,EAAMwE,EAAKxS,EAAE1S,EAAG,EAAG,EAAGgF,MACxDA,KAAKmsD,GAAKrP,gBAAgBC,QAAQrhC,EAAMwE,EAAKxS,EAAEpB,EAAG,EAAG,EAAGtM,MAEpDkgB,EAAKxS,EAAE6J,IACTvX,KAAKosD,GAAKtP,gBAAgBC,QAAQrhC,EAAMwE,EAAKxS,EAAE6J,EAAG,EAAG,EAAGvX,QAG1DA,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKxS,GAAK,CAC/C5J,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAG9D,MAGPkgB,EAAKjS,GAAI,CAKX,GAJAjO,KAAKiO,GAAK6uC,gBAAgBC,QAAQrhC,EAAMwE,EAAKjS,GAAI,EAAG6qB,UAAW94B,MAC/DA,KAAKqsD,GAAKvP,gBAAgBC,QAAQrhC,EAAMwE,EAAKmsC,GAAI,EAAGvzB,UAAW94B,MAC/DA,KAAKssD,GAAKxP,gBAAgBC,QAAQrhC,EAAMwE,EAAKosC,GAAI,EAAGxzB,UAAW94B,MAE3DkgB,EAAKta,GAAG9B,EAAE,GAAGq0C,GAAI,CACnB,IAAI5iD,EACAqI,EAAMsiB,EAAKta,GAAG9B,EAAE3T,OAEpB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB2qB,EAAKta,GAAG9B,EAAEvO,GAAG2iD,GAAK,KAClBh4B,EAAKta,GAAG9B,EAAEvO,GAAG4iD,GAAK,IAEtB,CAEAn4C,KAAK4F,GAAKk3C,gBAAgBC,QAAQrhC,EAAMwE,EAAKta,GAAI,EAAGkzB,UAAW94B,MAE/DA,KAAK4F,GAAGszC,IAAK,CACf,MACEl5C,KAAKY,EAAIk8C,gBAAgBC,QAAQrhC,EAAMwE,EAAKtf,GAAK,CAC/CkD,EAAG,GACF,EAAGg1B,UAAW94B,MAGfkgB,EAAK2f,KACP7/B,KAAK6/B,GAAKid,gBAAgBC,QAAQrhC,EAAMwE,EAAK2f,GAAI,EAAG/G,UAAW94B,MAC/DA,KAAK8/B,GAAKgd,gBAAgBC,QAAQrhC,EAAMwE,EAAK4f,GAAI,EAAGhH,UAAW94B,OAGjEA,KAAK6D,EAAIi5C,gBAAgBC,QAAQrhC,EAAMwE,EAAKrc,GAAK,CAC/CC,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAG9D,MACTA,KAAKoN,EAAI0vC,gBAAgBC,QAAQrhC,EAAMwE,EAAK9S,GAAK,CAC/CtJ,EAAG,CAAC,IAAK,IAAK,MACb,EAAG,IAAM9D,MAERkgB,EAAKjZ,EACPjH,KAAKiH,EAAI61C,gBAAgBC,QAAQrhC,EAAMwE,EAAKjZ,EAAG,EAAG,IAAMyU,GAExD1b,KAAKiH,EAAI,CACP20C,MAAM,EACNjmD,EAAG,GAIPqK,KAAKusD,UAAW,EAEXvsD,KAAKm9C,kBAAkBhtD,QAC1B6P,KAAKy8C,UAAS,EAElB,CAgBA,OAdAsP,EAAkB76D,UAAY,CAC5Bs7D,cA7PF,SAAuBC,GACrB,IAAI7Q,EAAO57C,KAAK47C,KAChB57C,KAAKq9C,2BACLr9C,KAAK47C,KAAO57C,KAAK47C,MAAQA,EAErB57C,KAAK6D,GACP4oD,EAAI3I,WAAW9jD,KAAK6D,EAAElO,EAAE,IAAKqK,KAAK6D,EAAElO,EAAE,GAAIqK,KAAK6D,EAAElO,EAAE,IAGjDqK,KAAKoN,GACPq/C,EAAI9I,MAAM3jD,KAAKoN,EAAEzX,EAAE,GAAIqK,KAAKoN,EAAEzX,EAAE,GAAIqK,KAAKoN,EAAEzX,EAAE,IAG3CqK,KAAK6/B,IACP4sB,EAAI/I,cAAc1jD,KAAK6/B,GAAGlqC,EAAGqK,KAAK8/B,GAAGnqC,GAGnCqK,KAAKY,EACP6rD,EAAIzJ,QAAQhjD,KAAKY,EAAEjL,GAEnB82D,EAAInJ,SAAStjD,KAAKssD,GAAG32D,GAAG0tD,QAAQrjD,KAAKqsD,GAAG12D,GAAGytD,QAAQpjD,KAAKiO,GAAGtY,GAAG2tD,SAAStjD,KAAK4F,GAAGjQ,EAAE,IAAI0tD,QAAQrjD,KAAK4F,GAAGjQ,EAAE,IAAIytD,QAAQpjD,KAAK4F,GAAGjQ,EAAE,IAG3HqK,KAAKkgB,KAAKxS,EAAEN,EACVpN,KAAKkgB,KAAKxS,EAAE6J,EACdk1C,EAAI3I,UAAU9jD,KAAKksD,GAAGv2D,EAAGqK,KAAKmsD,GAAGx2D,GAAIqK,KAAKosD,GAAGz2D,GAE7C82D,EAAI3I,UAAU9jD,KAAKksD,GAAGv2D,EAAGqK,KAAKmsD,GAAGx2D,EAAG,GAGtC82D,EAAI3I,UAAU9jD,KAAK0N,EAAE/X,EAAE,GAAIqK,KAAK0N,EAAE/X,EAAE,IAAKqK,KAAK0N,EAAE/X,EAAE,GAEtD,EA8NE8mD,SA5NF,SAAqBiQ,GACnB,GAAI1sD,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,QAA1C,CAWA,GAPI97C,KAAKusD,WACPvsD,KAAK2sD,qBACL3sD,KAAKusD,UAAW,GAGlBvsD,KAAKq9C,2BAEDr9C,KAAK47C,MAAQ8Q,EAAa,CAC5B,IAAI9kB,EAqBJ,GApBA5nC,KAAKrK,EAAEqwD,eAAehmD,KAAKgsD,IAAIv/B,OAE3BzsB,KAAKisD,uBAAyB,GAChCjsD,KAAKrK,EAAEmuD,WAAW9jD,KAAK6D,EAAElO,EAAE,IAAKqK,KAAK6D,EAAElO,EAAE,GAAIqK,KAAK6D,EAAElO,EAAE,IAGpDqK,KAAKisD,uBAAyB,GAChCjsD,KAAKrK,EAAEguD,MAAM3jD,KAAKoN,EAAEzX,EAAE,GAAIqK,KAAKoN,EAAEzX,EAAE,GAAIqK,KAAKoN,EAAEzX,EAAE,IAG9CqK,KAAK6/B,IAAM7/B,KAAKisD,uBAAyB,GAC3CjsD,KAAKrK,EAAE+tD,cAAc1jD,KAAK6/B,GAAGlqC,EAAGqK,KAAK8/B,GAAGnqC,GAGtCqK,KAAKY,GAAKZ,KAAKisD,uBAAyB,EAC1CjsD,KAAKrK,EAAEqtD,QAAQhjD,KAAKY,EAAEjL,IACZqK,KAAKY,GAAKZ,KAAKisD,uBAAyB,GAClDjsD,KAAKrK,EAAE2tD,SAAStjD,KAAKssD,GAAG32D,GAAG0tD,QAAQrjD,KAAKqsD,GAAG12D,GAAGytD,QAAQpjD,KAAKiO,GAAGtY,GAAG2tD,SAAStjD,KAAK4F,GAAGjQ,EAAE,IAAI0tD,QAAQrjD,KAAK4F,GAAGjQ,EAAE,IAAIytD,QAAQpjD,KAAK4F,GAAGjQ,EAAE,IAG9HqK,KAAK4sD,aAAc,CACrB,IAAInK,EACAoK,EAGJ,GAFAjlB,EAAY5nC,KAAK0b,KAAKutB,WAAWrB,UAE7B5nC,KAAK0N,GAAK1N,KAAK0N,EAAEmqC,WAAa73C,KAAK0N,EAAEo/C,eACnC9sD,KAAK0N,EAAE6tC,SAAS9C,UAAYz4C,KAAK0N,EAAE0pC,YAAcp3C,KAAK0N,EAAEmqC,UAAU,GAAGlzC,GACvE89C,EAAKziD,KAAK0N,EAAEo/C,gBAAgB9sD,KAAK0N,EAAEmqC,UAAU,GAAGlzC,EAAI,KAAQijC,EAAW,GACvEilB,EAAK7sD,KAAK0N,EAAEo/C,eAAe9sD,KAAK0N,EAAEmqC,UAAU,GAAGlzC,EAAIijC,EAAW,IACrD5nC,KAAK0N,EAAE6tC,SAAS9C,UAAYz4C,KAAK0N,EAAE0pC,YAAcp3C,KAAK0N,EAAEmqC,UAAU73C,KAAK0N,EAAEmqC,UAAU1nD,OAAS,GAAGwU,GACxG89C,EAAKziD,KAAK0N,EAAEo/C,eAAe9sD,KAAK0N,EAAEmqC,UAAU73C,KAAK0N,EAAEmqC,UAAU1nD,OAAS,GAAGwU,EAAIijC,EAAW,GACxFilB,EAAK7sD,KAAK0N,EAAEo/C,gBAAgB9sD,KAAK0N,EAAEmqC,UAAU73C,KAAK0N,EAAEmqC,UAAU1nD,OAAS,GAAGwU,EAAI,KAAQijC,EAAW,KAEjG6a,EAAKziD,KAAK0N,EAAE4pC,GACZuV,EAAK7sD,KAAK0N,EAAEo/C,gBAAgB9sD,KAAK0N,EAAE6tC,SAAS9C,UAAYz4C,KAAK0N,EAAE0pC,WAAa,KAAQxP,EAAW5nC,KAAK0N,EAAE0pC,kBAEnG,GAAIp3C,KAAKksD,IAAMlsD,KAAKksD,GAAGrU,WAAa73C,KAAKmsD,GAAGtU,WAAa73C,KAAKksD,GAAGY,gBAAkB9sD,KAAKmsD,GAAGW,eAAgB,CAChHrK,EAAK,GACLoK,EAAK,GACL,IAAIX,EAAKlsD,KAAKksD,GACVC,EAAKnsD,KAAKmsD,GAEVD,EAAG3Q,SAAS9C,UAAYyT,EAAG9U,YAAc8U,EAAGrU,UAAU,GAAGlzC,GAC3D89C,EAAG,GAAKyJ,EAAGY,gBAAgBZ,EAAGrU,UAAU,GAAGlzC,EAAI,KAAQijC,EAAW,GAClE6a,EAAG,GAAK0J,EAAGW,gBAAgBX,EAAGtU,UAAU,GAAGlzC,EAAI,KAAQijC,EAAW,GAClEilB,EAAG,GAAKX,EAAGY,eAAeZ,EAAGrU,UAAU,GAAGlzC,EAAIijC,EAAW,GACzDilB,EAAG,GAAKV,EAAGW,eAAeX,EAAGtU,UAAU,GAAGlzC,EAAIijC,EAAW,IAChDskB,EAAG3Q,SAAS9C,UAAYyT,EAAG9U,YAAc8U,EAAGrU,UAAUqU,EAAGrU,UAAU1nD,OAAS,GAAGwU,GACxF89C,EAAG,GAAKyJ,EAAGY,eAAeZ,EAAGrU,UAAUqU,EAAGrU,UAAU1nD,OAAS,GAAGwU,EAAIijC,EAAW,GAC/E6a,EAAG,GAAK0J,EAAGW,eAAeX,EAAGtU,UAAUsU,EAAGtU,UAAU1nD,OAAS,GAAGwU,EAAIijC,EAAW,GAC/EilB,EAAG,GAAKX,EAAGY,gBAAgBZ,EAAGrU,UAAUqU,EAAGrU,UAAU1nD,OAAS,GAAGwU,EAAI,KAAQijC,EAAW,GACxFilB,EAAG,GAAKV,EAAGW,gBAAgBX,EAAGtU,UAAUsU,EAAGtU,UAAU1nD,OAAS,GAAGwU,EAAI,KAAQijC,EAAW,KAExF6a,EAAK,CAACyJ,EAAG5U,GAAI6U,EAAG7U,IAChBuV,EAAG,GAAKX,EAAGY,gBAAgBZ,EAAG3Q,SAAS9C,UAAYyT,EAAG9U,WAAa,KAAQxP,EAAWskB,EAAG9U,YACzFyV,EAAG,GAAKV,EAAGW,gBAAgBX,EAAG5Q,SAAS9C,UAAY0T,EAAG/U,WAAa,KAAQxP,EAAWukB,EAAG/U,YAE7F,MAEEqL,EADAoK,EAAKf,EAIP9rD,KAAKrK,EAAEqtD,QAAQ9wD,KAAKwoD,MAAM+H,EAAG,GAAKoK,EAAG,GAAIpK,EAAG,GAAKoK,EAAG,IACtD,CAEI7sD,KAAKkgB,KAAKxS,GAAK1N,KAAKkgB,KAAKxS,EAAEN,EACzBpN,KAAKkgB,KAAKxS,EAAE6J,EACdvX,KAAKrK,EAAEmuD,UAAU9jD,KAAKksD,GAAGv2D,EAAGqK,KAAKmsD,GAAGx2D,GAAIqK,KAAKosD,GAAGz2D,GAEhDqK,KAAKrK,EAAEmuD,UAAU9jD,KAAKksD,GAAGv2D,EAAGqK,KAAKmsD,GAAGx2D,EAAG,GAGzCqK,KAAKrK,EAAEmuD,UAAU9jD,KAAK0N,EAAE/X,EAAE,GAAIqK,KAAK0N,EAAE/X,EAAE,IAAKqK,KAAK0N,EAAE/X,EAAE,GAEzD,CAEAqK,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,OAvFpC,CAwFF,EAkIE6Q,mBAhIF,WAIE,GAHA3sD,KAAKisD,uBAAyB,EAC9BjsD,KAAKgsD,IAAI9L,SAEJlgD,KAAK6D,EAAEk4C,gBAAgB5rD,SAC1B6P,KAAKgsD,IAAIlI,WAAW9jD,KAAK6D,EAAElO,EAAE,IAAKqK,KAAK6D,EAAElO,EAAE,GAAIqK,KAAK6D,EAAElO,EAAE,IACxDqK,KAAKisD,uBAAyB,GAK3BjsD,KAAKoN,EAAE2uC,gBAAgB5rD,QAA5B,CAOA,GANE6P,KAAKgsD,IAAIrI,MAAM3jD,KAAKoN,EAAEzX,EAAE,GAAIqK,KAAKoN,EAAEzX,EAAE,GAAIqK,KAAKoN,EAAEzX,EAAE,IAClDqK,KAAKisD,uBAAyB,EAK5BjsD,KAAK6/B,GAAI,CACX,GAAK7/B,KAAK6/B,GAAGkc,gBAAgB5rD,QAAW6P,KAAK8/B,GAAGic,gBAAgB5rD,OAI9D,OAHA6P,KAAKgsD,IAAItI,cAAc1jD,KAAK6/B,GAAGlqC,EAAGqK,KAAK8/B,GAAGnqC,GAC1CqK,KAAKisD,uBAAyB,CAIlC,CAEIjsD,KAAKY,EACFZ,KAAKY,EAAEm7C,gBAAgB5rD,SAC1B6P,KAAKgsD,IAAIhJ,QAAQhjD,KAAKY,EAAEjL,GACxBqK,KAAKisD,uBAAyB,GAEtBjsD,KAAKssD,GAAGvQ,gBAAgB5rD,QAAW6P,KAAKqsD,GAAGtQ,gBAAgB5rD,QAAW6P,KAAKiO,GAAG8tC,gBAAgB5rD,QAAW6P,KAAK4F,GAAGm2C,gBAAgB5rD,SAC3I6P,KAAKgsD,IAAI1I,SAAStjD,KAAKssD,GAAG32D,GAAG0tD,QAAQrjD,KAAKqsD,GAAG12D,GAAGytD,QAAQpjD,KAAKiO,GAAGtY,GAAG2tD,SAAStjD,KAAK4F,GAAGjQ,EAAE,IAAI0tD,QAAQrjD,KAAK4F,GAAGjQ,EAAE,IAAIytD,QAAQpjD,KAAK4F,GAAGjQ,EAAE,IAClIqK,KAAKisD,uBAAyB,EAlBhC,CAoBF,EA6FEc,WA3FF,WACE,GA4FF/3B,gBAAgB,CAACkoB,0BAA2B6O,GAC5CA,EAAkB76D,UAAUorD,mBA1F5B,SAA4B/mB,GAC1Bv1B,KAAKgtD,oBAAoBz3B,GAEzBv1B,KAAK0b,KAAK4gC,mBAAmB/mB,GAC7Bv1B,KAAKusD,UAAW,CAClB,EAsFAR,EAAkB76D,UAAU87D,oBAAsB9P,yBAAyBhsD,UAAUorD,mBAM9E,CACL2Q,qBALF,SAA8BvxC,EAAMwE,EAAM5mB,GACxC,OAAO,IAAIyyD,EAAkBrwC,EAAMwE,EAAM5mB,EAC3C,EAKF,CAhR+B,GAkR/B,SAAS4zD,mBAAoB,CAkS7B,SAASC,uBAAwB,CA0HjC,SAASC,WAAWvpD,EAAGlU,GACrB,OAAyB,IAAlBuC,KAAK+S,IAAIpB,EAAIlU,IAAeuC,KAAK6O,IAAI7O,KAAK+S,IAAIpB,GAAI3R,KAAK+S,IAAItV,GACpE,CAEA,SAAS09D,UAAU5iC,GACjB,OAAOv4B,KAAK+S,IAAIwlB,IAAM,IACxB,CAEA,SAAS6iC,KAAK9M,EAAIC,EAAI+K,GACpB,OAAOhL,GAAM,EAAIgL,GAAU/K,EAAK+K,CAClC,CAEA,SAAS+B,UAAU/M,EAAIC,EAAI+K,GACzB,MAAO,CAAC8B,KAAK9M,EAAG,GAAIC,EAAG,GAAI+K,GAAS8B,KAAK9M,EAAG,GAAIC,EAAG,GAAI+K,GACzD,CAEA,SAASgC,UAAU3pD,EAAGlU,EAAG8Q,GAEvB,GAAU,IAANoD,EAAS,MAAO,GACpB,IAAIuJ,EAAIzd,EAAIA,EAAI,EAAIkU,EAAIpD,EAExB,GAAI2M,EAAI,EAAG,MAAO,GAClB,IAAIqgD,GAAc99D,GAAK,EAAIkU,GAE3B,GAAU,IAANuJ,EAAS,MAAO,CAACqgD,GACrB,IAAIv6C,EAAQhhB,KAAKojB,KAAKlI,IAAM,EAAIvJ,GAEhC,MAAO,CAAC4pD,EAAav6C,EAAOu6C,EAAav6C,EAC3C,CAEA,SAASw6C,uBAAuBlN,EAAIC,EAAImE,EAAI+I,GAC1C,MAAO,CAAO,EAAIlN,EAATD,EAAc,EAAIoE,EAAK+I,EAAI,EAAInN,EAAK,EAAIC,EAAK,EAAImE,GAAK,EAAIpE,EAAK,EAAIC,EAAID,EAClF,CAEA,SAASoN,YAAYlgD,GACnB,OAAO,IAAImgD,iBAAiBngD,EAAGA,EAAGA,EAAGA,GAAG,EAC1C,CAEA,SAASmgD,iBAAiBrN,EAAIC,EAAImE,EAAI+I,EAAIG,GACpCA,GAAaC,WAAWvN,EAAIC,KAC9BA,EAAK8M,UAAU/M,EAAImN,EAAI,EAAI,IAGzBG,GAAaC,WAAWnJ,EAAI+I,KAC9B/I,EAAK2I,UAAU/M,EAAImN,EAAI,EAAI,IAG7B,IAAIK,EAASN,uBAAuBlN,EAAG,GAAIC,EAAG,GAAImE,EAAG,GAAI+I,EAAG,IACxDM,EAASP,uBAAuBlN,EAAG,GAAIC,EAAG,GAAImE,EAAG,GAAI+I,EAAG,IAC5D3tD,KAAK6D,EAAI,CAACmqD,EAAO,GAAIC,EAAO,IAC5BjuD,KAAKrQ,EAAI,CAACq+D,EAAO,GAAIC,EAAO,IAC5BjuD,KAAKS,EAAI,CAACutD,EAAO,GAAIC,EAAO,IAC5BjuD,KAAKyY,EAAI,CAACu1C,EAAO,GAAIC,EAAO,IAC5BjuD,KAAK0vC,OAAS,CAAC8Q,EAAIC,EAAImE,EAAI+I,EAC7B,CAkDA,SAASO,QAAQrX,EAAKvY,GACpB,IAAIv9B,EAAM81C,EAAInH,OAAO,GAAGpR,GACpBr9B,EAAM41C,EAAInH,OAAOmH,EAAInH,OAAOv/C,OAAS,GAAGmuC,GAE5C,GAAIv9B,EAAME,EAAK,CACb,IAAI9K,EAAI8K,EACRA,EAAMF,EACNA,EAAM5K,CACR,CAKA,IAFA,IAAIs0B,EAAI+iC,UAAU,EAAI3W,EAAIhzC,EAAEy6B,GAAO,EAAIuY,EAAIlnD,EAAE2uC,GAAOuY,EAAIp2C,EAAE69B,IAEjD/oC,EAAI,EAAGA,EAAIk1B,EAAEt6B,OAAQoF,GAAK,EACjC,GAAIk1B,EAAEl1B,GAAK,GAAKk1B,EAAEl1B,GAAK,EAAG,CACxB,IAAI6J,EAAMy3C,EAAIxD,MAAM5oB,EAAEl1B,IAAI+oC,GACtBl/B,EAAM2B,EAAKA,EAAM3B,EAAaA,EAAM6B,IAAKA,EAAM7B,EACrD,CAGF,MAAO,CACL2B,IAAKA,EACLE,IAAKA,EAET,CAuBA,SAASktD,cAActX,EAAK7B,EAAIoZ,GAC9B,IAAIC,EAAMxX,EAAIyX,cACd,MAAO,CACLC,GAAIF,EAAIE,GACRC,GAAIH,EAAIG,GACRvvD,MAAOovD,EAAIpvD,MACXsyB,OAAQ88B,EAAI98B,OACZslB,IAAKA,EACLlyC,GAAIqwC,EAAKoZ,GAAM,EACfpZ,GAAIA,EACJoZ,GAAIA,EAER,CAEA,SAASK,UAAUvuC,GACjB,IAAItsB,EAAQssB,EAAK22B,IAAIjjD,MAAM,IAC3B,MAAO,CAACu6D,cAAcv6D,EAAM,GAAIssB,EAAK80B,GAAI90B,EAAKvb,GAAIwpD,cAAcv6D,EAAM,GAAIssB,EAAKvb,EAAGub,EAAKkuC,IACzF,CAEA,SAASM,aAAavlD,EAAIG,GACxB,OAAiC,EAA1BpX,KAAK+S,IAAIkE,EAAGolD,GAAKjlD,EAAGilD,IAAUplD,EAAGlK,MAAQqK,EAAGrK,OAAmC,EAA1B/M,KAAK+S,IAAIkE,EAAGqlD,GAAKllD,EAAGklD,IAAUrlD,EAAGooB,OAASjoB,EAAGioB,MAC3G,CAEA,SAASo9B,eAAe7J,EAAIb,EAAI2K,EAAOC,EAAWC,EAAeC,GAC/D,GAAKL,aAAa5J,EAAIb,GAEtB,GAAI2K,GAASG,GAAgBjK,EAAG7lD,OAAS4vD,GAAa/J,EAAGvzB,QAAUs9B,GAAa5K,EAAGhlD,OAAS4vD,GAAa5K,EAAG1yB,QAAUs9B,EACpHC,EAAct5D,KAAK,CAACsvD,EAAGngD,EAAGs/C,EAAGt/C,QAD/B,CAKA,IAAIqqD,EAAMP,UAAU3J,GAChBmK,EAAMR,UAAUxK,GACpB0K,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,EAPpE,CAQF,CAoBA,SAASG,aAAarrD,EAAGlU,GACvB,MAAO,CAACkU,EAAE,GAAKlU,EAAE,GAAKkU,EAAE,GAAKlU,EAAE,GAAIkU,EAAE,GAAKlU,EAAE,GAAKkU,EAAE,GAAKlU,EAAE,GAAIkU,EAAE,GAAKlU,EAAE,GAAKkU,EAAE,GAAKlU,EAAE,GACvF,CAEA,SAASw/D,iBAAiBC,EAAQC,EAAMC,EAAQC,GAC9C,IAAI9M,EAAK,CAAC2M,EAAO,GAAIA,EAAO,GAAI,GAC5BvC,EAAK,CAACwC,EAAK,GAAIA,EAAK,GAAI,GACxBG,EAAK,CAACF,EAAO,GAAIA,EAAO,GAAI,GAC5BG,EAAK,CAACF,EAAK,GAAIA,EAAK,GAAI,GACxB3uD,EAAIsuD,aAAaA,aAAazM,EAAIoK,GAAKqC,aAAaM,EAAIC,IAC5D,OAAIpC,UAAUzsD,EAAE,IAAY,KACrB,CAACA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAChC,CAEA,SAAS8uD,YAAYhiD,EAAGg0C,EAAOvxD,GAC7B,MAAO,CAACud,EAAE,GAAKxb,KAAKob,IAAIo0C,GAASvxD,EAAQud,EAAE,GAAKxb,KAAKub,IAAIi0C,GAASvxD,EACpE,CAEA,SAASw/D,cAAclP,EAAImE,GACzB,OAAO1yD,KAAK09D,MAAMnP,EAAG,GAAKmE,EAAG,GAAInE,EAAG,GAAKmE,EAAG,GAC9C,CAEA,SAASmJ,WAAWtN,EAAImE,GACtB,OAAOwI,WAAW3M,EAAG,GAAImE,EAAG,KAAOwI,WAAW3M,EAAG,GAAImE,EAAG,GAC1D,CAEA,SAASiL,iBAAkB,CAY3B,SAASC,SAASC,EAAc1c,EAAOqO,EAAOvyB,EAAW6gC,EAAWC,EAAcC,GAChF,IAAIC,EAAOzO,EAAQxvD,KAAKqb,GAAK,EACzB6iD,EAAO1O,EAAQxvD,KAAKqb,GAAK,EACzB2+C,EAAK7Y,EAAM,GAAKnhD,KAAKob,IAAIo0C,GAASvyB,EAAY6gC,EAC9C7D,EAAK9Y,EAAM,GAAKnhD,KAAKub,IAAIi0C,GAASvyB,EAAY6gC,EAClDD,EAAalS,YAAYqO,EAAIC,EAAID,EAAKh6D,KAAKob,IAAI6iD,GAAQF,EAAc9D,EAAKj6D,KAAKub,IAAI0iD,GAAQF,EAAc/D,EAAKh6D,KAAKob,IAAI8iD,GAAQF,EAAa/D,EAAKj6D,KAAKub,IAAI2iD,GAAQF,EAAaH,EAAa5/D,SAC9L,CAEA,SAASkgE,uBAAuBxd,EAAKC,GACnC,IAAIwd,EAAS,CAACxd,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IACxC0d,EAAiB,IAAVr+D,KAAKqb,GAEhB,MADoB,CAACrb,KAAKob,IAAIijD,GAAOD,EAAO,GAAKp+D,KAAKub,IAAI8iD,GAAOD,EAAO,GAAIp+D,KAAKub,IAAI8iD,GAAOD,EAAO,GAAKp+D,KAAKob,IAAIijD,GAAOD,EAAO,GAEjI,CAEA,SAASE,mBAAmB7zB,EAAM8zB,GAChC,IAAIC,EAAoB,IAARD,EAAY9zB,EAAKxsC,SAAW,EAAIsgE,EAAM,EAClDE,GAAaF,EAAM,GAAK9zB,EAAKxsC,SAG7BygE,EAAUP,uBAFE1zB,EAAKhnC,EAAE+6D,GACP/zB,EAAKhnC,EAAEg7D,IAEvB,OAAOz+D,KAAKwoD,MAAM,EAAG,GAAKxoD,KAAKwoD,MAAMkW,EAAQ,GAAIA,EAAQ,GAC3D,CAEA,SAASC,aAAad,EAAcpzB,EAAM8zB,EAAKT,EAAWc,EAAWC,EAAW5hC,GAC9E,IAAIuyB,EAAQ8O,mBAAmB7zB,EAAM8zB,GACjCpd,EAAQ1W,EAAKhnC,EAAE86D,EAAM9zB,EAAK8U,SAC1Buf,EAAYr0B,EAAKhnC,EAAU,IAAR86D,EAAY9zB,EAAK8U,QAAU,EAAIgf,EAAM,GACxDQ,EAAYt0B,EAAKhnC,GAAG86D,EAAM,GAAK9zB,EAAK8U,SACpCyf,EAAyB,IAAdH,EAAkB7+D,KAAKojB,KAAKpjB,KAAKmB,IAAIggD,EAAM,GAAK2d,EAAU,GAAI,GAAK9+D,KAAKmB,IAAIggD,EAAM,GAAK2d,EAAU,GAAI,IAAM,EACtHG,EAAyB,IAAdJ,EAAkB7+D,KAAKojB,KAAKpjB,KAAKmB,IAAIggD,EAAM,GAAK4d,EAAU,GAAI,GAAK/+D,KAAKmB,IAAIggD,EAAM,GAAK4d,EAAU,GAAI,IAAM,EAC1HnB,SAASC,EAAcpzB,EAAKhnC,EAAE86D,EAAM9zB,EAAK8U,SAAUiQ,EAAOvyB,EAAW6gC,EAAWmB,GAA8B,GAAjBL,EAAY,IAASI,GAA8B,GAAjBJ,EAAY,IAASC,EACtJ,CAEA,SAASK,cAAcrB,EAAc1lB,EAAS2lB,EAAWc,EAAWC,EAAW5hC,GAC7E,IAAK,IAAI55B,EAAI,EAAGA,EAAIu7D,EAAWv7D,GAAK,EAAG,CACrC,IAAIoP,GAAKpP,EAAI,IAAMu7D,EAAY,GAC3BO,EAAqB,IAAdN,EAAkB7+D,KAAKojB,KAAKpjB,KAAKmB,IAAIg3C,EAAQqF,OAAO,GAAG,GAAKrF,EAAQqF,OAAO,GAAG,GAAI,GAAKx9C,KAAKmB,IAAIg3C,EAAQqF,OAAO,GAAG,GAAKrF,EAAQqF,OAAO,GAAG,GAAI,IAAM,EAC1JgS,EAAQrX,EAAQinB,YAAY3sD,GAEhCmrD,SAASC,EADG1lB,EAAQgJ,MAAM1uC,GACI+8C,EAAOvyB,EAAW6gC,EAAWqB,GAA0B,GAAjBP,EAAY,IAASO,GAA0B,GAAjBP,EAAY,IAASC,GACvH5hC,GAAaA,CACf,CAEA,OAAOA,CACT,CAqEA,SAASoiC,aAAa9Q,EAAImE,EAAI4G,GAC5B,IAAI9J,EAAQxvD,KAAKwoD,MAAMkK,EAAG,GAAKnE,EAAG,GAAImE,EAAG,GAAKnE,EAAG,IACjD,MAAO,CAACiP,YAAYjP,EAAIiB,EAAO8J,GAASkE,YAAY9K,EAAIlD,EAAO8J,GACjE,CAEA,SAASgG,cAAcnnB,EAASmhB,GAC9B,IAAIhL,EACAiR,EACAC,EACAC,EACAC,EACAjE,EACAx3D,EAEJqqD,GADArqD,EAAIo7D,aAAalnB,EAAQqF,OAAO,GAAIrF,EAAQqF,OAAO,GAAI8b,IAChD,GACPiG,EAAMt7D,EAAE,GAERu7D,GADAv7D,EAAIo7D,aAAalnB,EAAQqF,OAAO,GAAIrF,EAAQqF,OAAO,GAAI8b,IAC/C,GACRmG,EAAMx7D,EAAE,GAERy7D,GADAz7D,EAAIo7D,aAAalnB,EAAQqF,OAAO,GAAIrF,EAAQqF,OAAO,GAAI8b,IAC/C,GACRmC,EAAKx3D,EAAE,GACP,IAAIsqD,EAAK0O,iBAAiB3O,EAAIiR,EAAKC,EAAKC,GAC7B,OAAPlR,IAAaA,EAAKgR,GACtB,IAAI7M,EAAKuK,iBAAiByC,EAAKjE,EAAI+D,EAAKC,GAExC,OADW,OAAP/M,IAAaA,EAAKgN,GACf,IAAI/D,iBAAiBrN,EAAIC,EAAImE,EAAI+I,EAC1C,CAEA,SAASkE,UAAU9B,EAAc+B,EAAMC,EAAMC,EAAUC,GACrD,IAAIzR,EAAKsR,EAAKpiB,OAAO,GACjB+Q,EAAKsR,EAAKriB,OAAO,GAErB,GAAiB,IAAbsiB,EAAgB,OAAOxR,EAE3B,GAAIuN,WAAWvN,EAAIC,GAAK,OAAOD,EAE/B,GAAiB,IAAbwR,EAAgB,CAClB,IAAIE,GAAYJ,EAAKK,aAAa,GAC9BC,GAAWL,EAAKI,aAAa,GAAKjgE,KAAKqb,GACvC8kD,EAASlD,iBAAiB3O,EAAIkP,YAAYlP,EAAI0R,EAAWhgE,KAAKqb,GAAK,EAAG,KAAMkzC,EAAIiP,YAAYjP,EAAIyR,EAAWhgE,KAAKqb,GAAK,EAAG,MACxH+kD,EAASD,EAAS1C,cAAc0C,EAAQ7R,GAAMmP,cAAcnP,EAAIC,GAAM,EACtEqC,EAAM4M,YAAYlP,EAAI0R,EAAU,EAAII,EAASv5B,aAIjD,OAHAg3B,EAAanS,QAAQkF,EAAI,GAAIA,EAAI,GAAI,IAAKiN,EAAa5/D,SAAW,GAClE2yD,EAAM4M,YAAYjP,EAAI2R,EAAS,EAAIE,EAASv5B,aAC5Cg3B,EAAalS,YAAY4C,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIqC,EAAI,GAAIA,EAAI,GAAIiN,EAAa5/D,UAC3EswD,CACT,CAGA,IAEI8R,EAAepD,iBAFVpB,WAAWvN,EAAIsR,EAAKpiB,OAAO,IAAMoiB,EAAKpiB,OAAO,GAAKoiB,EAAKpiB,OAAO,GAE/B8Q,EAAIC,EADnCsN,WAAWtN,EAAIsR,EAAKriB,OAAO,IAAMqiB,EAAKriB,OAAO,GAAKqiB,EAAKriB,OAAO,IAGvE,OAAI6iB,GAAgB5C,cAAc4C,EAAc/R,GAAMyR,GACpDlC,EAAalS,YAAY0U,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIxC,EAAa5/D,UACrIoiE,GAGF/R,CACT,CAEA,SAASgS,gBAAgB3uD,EAAGlU,GAC1B,IAAI8iE,EAAY5uD,EAAEirD,cAAcn/D,GAEhC,OADI8iE,EAAUtiE,QAAUi9D,WAAWqF,EAAU,GAAG,GAAI,IAAIA,EAAU/7D,QAC9D+7D,EAAUtiE,OAAesiE,EAAU,GAChC,IACT,CAEA,SAASC,yBAAyB7uD,EAAGlU,GACnC,IAAIgjE,EAAO9uD,EAAE9J,QACT64D,EAAOjjE,EAAEoK,QACT04D,EAAYD,gBAAgB3uD,EAAEA,EAAE1T,OAAS,GAAIR,EAAE,IAOnD,OALI8iE,IACFE,EAAK9uD,EAAE1T,OAAS,GAAK0T,EAAEA,EAAE1T,OAAS,GAAGyD,MAAM6+D,EAAU,IAAI,GACzDG,EAAK,GAAKjjE,EAAE,GAAGiE,MAAM6+D,EAAU,IAAI,IAGjC5uD,EAAE1T,OAAS,GAAKR,EAAEQ,OAAS,IAC7BsiE,EAAYD,gBAAgB3uD,EAAE,GAAIlU,EAAEA,EAAEQ,OAAS,KAGtC,CAAC,CAAC0T,EAAE,GAAGjQ,MAAM6+D,EAAU,IAAI,IAAK,CAAC9iE,EAAEA,EAAEQ,OAAS,GAAGyD,MAAM6+D,EAAU,IAAI,KAIzE,CAACE,EAAMC,EAChB,CAEA,SAASC,mBAAmBxjC,GAG1B,IAFA,IAAIl5B,EAEKZ,EAAI,EAAGA,EAAI85B,EAASl/B,OAAQoF,GAAK,EACxCY,EAAIu8D,yBAAyBrjC,EAAS95B,EAAI,GAAI85B,EAAS95B,IACvD85B,EAAS95B,EAAI,GAAKY,EAAE,GACpBk5B,EAAS95B,GAAKY,EAAE,GASlB,OANIk5B,EAASl/B,OAAS,IACpBgG,EAAIu8D,yBAAyBrjC,EAASA,EAASl/B,OAAS,GAAIk/B,EAAS,IACrEA,EAASA,EAASl/B,OAAS,GAAKgG,EAAE,GAClCk5B,EAAS,GAAKl5B,EAAE,IAGXk5B,CACT,CAEA,SAASyjC,mBAAmBzoB,EAASmhB,GAOnC,IACItqD,EACAC,EACAvN,EACAoT,EAJA+rD,EAAO1oB,EAAQ2oB,mBAMnB,GAAoB,IAAhBD,EAAK5iE,OACP,MAAO,CAACqhE,cAAcnnB,EAASmhB,IAGjC,GAAoB,IAAhBuH,EAAK5iE,QAAgBi9D,WAAW2F,EAAK,GAAI,GAI3C,OAFA7xD,GADAtN,EAAQy2C,EAAQz2C,MAAMm/D,EAAK,KACd,GACb5xD,EAAQvN,EAAM,GACP,CAAC49D,cAActwD,EAAMsqD,GAASgG,cAAcrwD,EAAOqqD,IAI5DtqD,GADAtN,EAAQy2C,EAAQz2C,MAAMm/D,EAAK,KACd,GACb,IAAIpuD,GAAKouD,EAAK,GAAKA,EAAK,KAAO,EAAIA,EAAK,IAIxC,OAFA/rD,GADApT,EAAQA,EAAM,GAAGA,MAAM+Q,IACX,GACZxD,EAAQvN,EAAM,GACP,CAAC49D,cAActwD,EAAMsqD,GAASgG,cAAcxqD,EAAKwkD,GAASgG,cAAcrwD,EAAOqqD,GACxF,CAEA,SAASyH,qBAAsB,CAwG/B,SAASC,kBAAkBC,GAOzB,IANA,IAAIC,EAASD,EAASE,OAASF,EAASE,OAAOz/D,MAAM,KAAO,GACxD0/D,EAAU,SACVD,EAAS,SACTz1D,EAAMw1D,EAAOjjE,OAGRoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAG5B,OAFY69D,EAAO79D,GAAGmrB,eAGpB,IAAK,SACH2yC,EAAS,SACT,MAEF,IAAK,OACHC,EAAU,MACV,MAEF,IAAK,QACHA,EAAU,MACV,MAEF,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,UACL,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,QACL,IAAK,OACHA,EAAU,MAQhB,MAAO,CACL5mC,MAAO2mC,EACPE,OAAQJ,EAASG,SAAWA,EAEhC,CAriCAt+B,gBAAgB,CAACq0B,eAAgB6D,kBAEjCA,iBAAiBh8D,UAAUs4D,uBAAyB,SAAU9tC,EAAMwE,GAClElgB,KAAKy8C,SAAWz8C,KAAK2pD,YACrB3pD,KAAKS,EAAIq8C,gBAAgBC,QAAQrhC,EAAMwE,EAAKzf,EAAG,EAAG,KAAMT,MACxDA,KAAKiH,EAAI61C,gBAAgBC,QAAQrhC,EAAMwE,EAAKjZ,EAAG,EAAG,KAAMjH,MACxDA,KAAKwzD,GAAK3H,yBAAyBoB,qBAAqBvxC,EAAMwE,EAAKszC,GAAIxzD,MACvEA,KAAKyzD,GAAK3W,gBAAgBC,QAAQrhC,EAAMwE,EAAKszC,GAAGC,GAAI,EAAG,IAAMzzD,MAC7DA,KAAK0zD,GAAK5W,gBAAgBC,QAAQrhC,EAAMwE,EAAKszC,GAAGE,GAAI,EAAG,IAAM1zD,MAC7DA,KAAKkgB,KAAOA,EAEPlgB,KAAKm9C,kBAAkBhtD,QAC1B6P,KAAKy8C,UAAS,GAGhBz8C,KAAKo9C,cAAgBp9C,KAAKm9C,kBAAkBhtD,OAC5C6P,KAAK2zD,QAAU,IAAIjR,OACnB1iD,KAAK4zD,QAAU,IAAIlR,OACnB1iD,KAAK6zD,QAAU,IAAInR,OACnB1iD,KAAK8zD,QAAU,IAAIpR,OACnB1iD,KAAK2lD,OAAS,IAAIjD,MACpB,EAEAwK,iBAAiBh8D,UAAU6iE,gBAAkB,SAAUJ,EAASC,EAASC,EAAS1mD,EAAW+lC,EAAM17B,GACjG,IAAI4J,EAAM5J,GAAO,EAAI,EACjBw8C,EAAS7mD,EAAUC,EAAEzX,EAAE,IAAM,EAAIwX,EAAUC,EAAEzX,EAAE,KAAO,EAAIu9C,GAC1D+gB,EAAS9mD,EAAUC,EAAEzX,EAAE,IAAM,EAAIwX,EAAUC,EAAEzX,EAAE,KAAO,EAAIu9C,GAC9DygB,EAAQ7P,UAAU32C,EAAUO,EAAE/X,EAAE,GAAKyrB,EAAM8xB,EAAM/lC,EAAUO,EAAE/X,EAAE,GAAKyrB,EAAM8xB,EAAM/lC,EAAUO,EAAE/X,EAAE,IAC9Fi+D,EAAQ9P,WAAW32C,EAAUtJ,EAAElO,EAAE,IAAKwX,EAAUtJ,EAAElO,EAAE,GAAIwX,EAAUtJ,EAAElO,EAAE,IACtEi+D,EAAQ5Q,QAAQ71C,EAAUvM,EAAEjL,EAAIyrB,EAAM8xB,GACtC0gB,EAAQ9P,UAAU32C,EAAUtJ,EAAElO,EAAE,GAAIwX,EAAUtJ,EAAElO,EAAE,GAAIwX,EAAUtJ,EAAElO,EAAE,IACpEk+D,EAAQ/P,WAAW32C,EAAUtJ,EAAElO,EAAE,IAAKwX,EAAUtJ,EAAElO,EAAE,GAAIwX,EAAUtJ,EAAElO,EAAE,IACtEk+D,EAAQlQ,MAAMnsC,EAAM,EAAIw8C,EAASA,EAAQx8C,EAAM,EAAIy8C,EAASA,GAC5DJ,EAAQ/P,UAAU32C,EAAUtJ,EAAElO,EAAE,GAAIwX,EAAUtJ,EAAElO,EAAE,GAAIwX,EAAUtJ,EAAElO,EAAE,GACtE,EAEAu3D,iBAAiBh8D,UAAUs7C,KAAO,SAAU9wB,EAAMle,EAAK2mB,EAAK+vC,GAY1D,IAXAl0D,KAAK0b,KAAOA,EACZ1b,KAAKxC,IAAMA,EACXwC,KAAKmkB,IAAMA,EACXnkB,KAAKk0D,UAAYA,EACjBl0D,KAAKm0D,eAAiB,EACtBn0D,KAAKo0D,UAAY,GACjBp0D,KAAKq0D,QAAU,GACfr0D,KAAK87C,SAAW,EAChB97C,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKwpD,uBAAuB9tC,EAAMle,EAAI2mB,IAE/BA,EAAM,GACXA,GAAO,EAEPnkB,KAAKo0D,UAAUE,QAAQ92D,EAAI2mB,IAGzBnkB,KAAKm9C,kBAAkBhtD,OACzB6P,KAAK8D,GAAI,EAET9D,KAAKy8C,UAAS,EAElB,EAEAyQ,iBAAiBh8D,UAAUqjE,cAAgB,SAAUC,GACnD,IAAIj/D,EACAqI,EAAM42D,EAASrkE,OAEnB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBi/D,EAASj/D,GAAGk/D,YAAa,EAEF,OAAnBD,EAASj/D,GAAGyoC,IACdh+B,KAAKu0D,cAAcC,EAASj/D,GAAGmpC,GAGrC,EAEAwuB,iBAAiBh8D,UAAUwjE,cAAgB,SAAUF,GACnD,IAAIG,EAAc7oC,KAAKK,MAAML,KAAKC,UAAUyoC,IAE5C,OADAx0D,KAAKu0D,cAAcI,GACZA,CACT,EAEAzH,iBAAiBh8D,UAAU0jE,kBAAoB,SAAUJ,EAAUK,GACjE,IAAIt/D,EACAqI,EAAM42D,EAASrkE,OAEnB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBi/D,EAASj/D,GAAGu/D,QAAUD,EAEC,OAAnBL,EAASj/D,GAAGyoC,IACdh+B,KAAK40D,kBAAkBJ,EAASj/D,GAAGmpC,GAAIm2B,EAG7C,EAEA3H,iBAAiBh8D,UAAUq5D,cAAgB,SAAUtO,GACnD,IAAI8Y,EACAC,EACAz/D,EACA6rB,EACA6zC,EACAC,GAAc,EAElB,GAAIl1D,KAAK47C,MAAQK,EAAe,CAC9B,IAmEI4Y,EAnEAM,EAASjjE,KAAKyP,KAAK3B,KAAKS,EAAE9K,GAE9B,GAAIqK,KAAKq0D,QAAQlkE,OAASglE,EAAQ,CAChC,KAAOn1D,KAAKq0D,QAAQlkE,OAASglE,GAAQ,CACnC,IAAIC,EAAQ,CACV12B,GAAI1+B,KAAK00D,cAAc10D,KAAKo0D,WAC5Bp2B,GAAI,MAENo3B,EAAM12B,GAAGlpC,KAAK,CACZqO,EAAG,CACDA,EAAG,EACHwxD,GAAI,EACJvxD,EAAG,CAAC,EAAG,IAETkjC,GAAI,YACJ//B,EAAG,CACDpD,EAAG,EACHwxD,GAAI,EACJvxD,EAAG,KAEL4J,EAAG,CACD7J,EAAG,EACHwxD,GAAI,EACJvxD,EAAG,CAAC,EAAG,IAETlD,EAAG,CACDiD,EAAG,EACHwxD,GAAI,EACJvxD,EAAG,CAAC,CACFsJ,EAAG,EACHjX,EAAG,EACHwO,EAAG,GACF,CACDyI,EAAG,EACHjX,EAAG,EACHwO,EAAG,KAGPyI,EAAG,CACDvJ,EAAG,EACHwxD,GAAI,EACJvxD,EAAG,CAAC,IAAK,MAEXg8B,GAAI,CACFj8B,EAAG,EACHwxD,GAAI,EACJvxD,EAAG,GAEL+7B,GAAI,CACFh8B,EAAG,EACHwxD,GAAI,EACJvxD,EAAG,GAELk6B,GAAI,OAENh+B,KAAKxC,IAAI+c,OAAO,EAAG,EAAG66C,GAEtBp1D,KAAKq0D,QAAQ95C,OAAO,EAAG,EAAG66C,GAE1Bp1D,KAAKm0D,gBAAkB,CACzB,CAEAn0D,KAAK0b,KAAK45C,eACVJ,GAAc,CAChB,CAKA,IAHAD,EAAO,EAGF1/D,EAAI,EAAGA,GAAKyK,KAAKq0D,QAAQlkE,OAAS,EAAGoF,GAAK,EAAG,CAKhD,GAJAs/D,EAAaI,EAAOE,EACpBn1D,KAAKq0D,QAAQ9+D,GAAGu/D,QAAUD,EAC1B70D,KAAK40D,kBAAkB50D,KAAKq0D,QAAQ9+D,GAAGmpC,GAAIm2B,IAEtCA,EAAY,CACf,IAAIU,EAAQv1D,KAAKk0D,UAAU3+D,GAAGmpC,GAC1B82B,EAAgBD,EAAMA,EAAMplE,OAAS,GAEJ,IAAjCqlE,EAAcroD,UAAUuyB,GAAG/pC,GAC7B6/D,EAAcroD,UAAUuyB,GAAGkc,MAAO,EAClC4Z,EAAcroD,UAAUuyB,GAAG/pC,EAAI,GAE/B6/D,EAAcroD,UAAUuyB,GAAGkc,MAAO,CAEtC,CAEAqZ,GAAQ,CACV,CAEAj1D,KAAKm0D,eAAiBgB,EAEtB,IAAIvkE,EAASoP,KAAKiH,EAAEtR,EAChB8/D,EAAe7kE,EAAS,EACxB8kE,EAAc9kE,EAAS,EAAIsB,KAAKC,MAAMvB,GAAUsB,KAAKyP,KAAK/Q,GAC1D+kE,EAAS31D,KAAK2zD,QAAQlnC,MACtBmpC,EAAS51D,KAAK4zD,QAAQnnC,MACtBopC,EAAS71D,KAAK6zD,QAAQpnC,MAC1BzsB,KAAK2zD,QAAQzT,QACblgD,KAAK4zD,QAAQ1T,QACblgD,KAAK6zD,QAAQ3T,QACblgD,KAAK8zD,QAAQ5T,QACblgD,KAAK2lD,OAAOzF,QACZ,IA2BInlD,EACAyiC,EA5BAs4B,EAAY,EAEhB,GAAIllE,EAAS,EAAG,CACd,KAAOklE,EAAYJ,GACjB11D,KAAK+zD,gBAAgB/zD,KAAK2zD,QAAS3zD,KAAK4zD,QAAS5zD,KAAK6zD,QAAS7zD,KAAKwzD,GAAI,GAAG,GAC3EsC,GAAa,EAGXL,IACFz1D,KAAK+zD,gBAAgB/zD,KAAK2zD,QAAS3zD,KAAK4zD,QAAS5zD,KAAK6zD,QAAS7zD,KAAKwzD,GAAIiC,GAAc,GACtFK,GAAaL,EAEjB,MAAO,GAAI7kE,EAAS,EAAG,CACrB,KAAOklE,EAAYJ,GACjB11D,KAAK+zD,gBAAgB/zD,KAAK2zD,QAAS3zD,KAAK4zD,QAAS5zD,KAAK6zD,QAAS7zD,KAAKwzD,GAAI,GAAG,GAC3EsC,GAAa,EAGXL,IACFz1D,KAAK+zD,gBAAgB/zD,KAAK2zD,QAAS3zD,KAAK4zD,QAAS5zD,KAAK6zD,QAAS7zD,KAAKwzD,IAAKiC,GAAc,GACvFK,GAAaL,EAEjB,CAQA,IANAlgE,EAAoB,IAAhByK,KAAKkgB,KAAK9R,EAAU,EAAIpO,KAAKm0D,eAAiB,EAClD/yC,EAAsB,IAAhBphB,KAAKkgB,KAAK9R,EAAU,GAAK,EAC/B6mD,EAAOj1D,KAAKm0D,eAILc,GAAM,CAQX,GALAz3B,GADAw3B,GADAD,EAAQ/0D,KAAKk0D,UAAU3+D,GAAGmpC,IACHq2B,EAAM5kE,OAAS,GAAGgd,UAAU4oD,OAAOpgE,EAAE82B,OACtCt8B,OACtB4kE,EAAMA,EAAM5kE,OAAS,GAAGgd,UAAU4oD,OAAOna,MAAO,EAChDmZ,EAAMA,EAAM5kE,OAAS,GAAGgd,UAAUuyB,GAAGkc,MAAO,EAC5CmZ,EAAMA,EAAM5kE,OAAS,GAAGgd,UAAUuyB,GAAG/pC,EAA4B,IAAxBqK,KAAKm0D,eAAuBn0D,KAAKyzD,GAAG99D,EAAIqK,KAAKyzD,GAAG99D,GAAKqK,KAAK0zD,GAAG/9D,EAAIqK,KAAKyzD,GAAG99D,IAAMJ,GAAKyK,KAAKm0D,eAAiB,IAEjI,IAAd2B,EAAiB,CASnB,KARU,IAANvgE,GAAmB,IAAR6rB,GAAa7rB,IAAMyK,KAAKm0D,eAAiB,IAAc,IAAT/yC,IAC3DphB,KAAK+zD,gBAAgB/zD,KAAK2zD,QAAS3zD,KAAK4zD,QAAS5zD,KAAK6zD,QAAS7zD,KAAKwzD,GAAI,GAAG,GAG7ExzD,KAAK2lD,OAAOx4C,UAAUyoD,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvM51D,KAAK2lD,OAAOx4C,UAAU0oD,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvM71D,KAAK2lD,OAAOx4C,UAAUwoD,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KAElM56D,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzBi6D,EAAej6D,GAAKiF,KAAK2lD,OAAOl5B,MAAM1xB,GAGxCiF,KAAK2lD,OAAOzF,OACd,MAGE,IAFAlgD,KAAK2lD,OAAOzF,QAEPnlD,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzBi6D,EAAej6D,GAAKiF,KAAK2lD,OAAOl5B,MAAM1xB,GAI1C+6D,GAAa,EACbb,GAAQ,EACR1/D,GAAK6rB,CACP,CACF,MAKE,IAJA6zC,EAAOj1D,KAAKm0D,eACZ5+D,EAAI,EACJ6rB,EAAM,EAEC6zC,GAELD,GADAD,EAAQ/0D,KAAKk0D,UAAU3+D,GAAGmpC,IACHq2B,EAAM5kE,OAAS,GAAGgd,UAAU4oD,OAAOpgE,EAAE82B,MAC5DsoC,EAAMA,EAAM5kE,OAAS,GAAGgd,UAAU4oD,OAAOna,MAAO,EAChDmZ,EAAMA,EAAM5kE,OAAS,GAAGgd,UAAUuyB,GAAGkc,MAAO,EAC5CqZ,GAAQ,EACR1/D,GAAK6rB,EAIT,OAAO8zC,CACT,EAEAhI,iBAAiBh8D,UAAU4tD,SAAW,WAAa,EAInD9pB,gBAAgB,CAACq0B,eAAgB8D,sBAEjCA,qBAAqBj8D,UAAUs4D,uBAAyB,SAAU9tC,EAAMwE,GACtElgB,KAAKy8C,SAAWz8C,KAAK2pD,YACrB3pD,KAAKg2D,GAAKlZ,gBAAgBC,QAAQrhC,EAAMwE,EAAKtf,EAAG,EAAG,KAAMZ,MACzDA,KAAKo9C,cAAgBp9C,KAAKg2D,GAAGja,gBAAgB5rD,MAC/C,EAEAg9D,qBAAqBj8D,UAAUu6D,YAAc,SAAU9uB,EAAMluB,GAC3D,IAEIlZ,EAFAq2D,EAAanN,UAAU7M,aAC3Bga,EAAWnrD,EAAIk8B,EAAKl8B,EAEpB,IACIw1D,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAxY,EACAC,EACAC,EACAC,EACAC,EACAC,EAbAvgD,EAAM++B,EAAK8U,QAOXjxC,EAAQ,EAQZ,IAAKjL,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB0gE,EAAWt5B,EAAKhnC,EAAEJ,GAClB4gE,EAAWx5B,EAAK11B,EAAE1R,GAClB2gE,EAAWv5B,EAAKpnC,EAAEA,GAEd0gE,EAAS,KAAOE,EAAS,IAAMF,EAAS,KAAOE,EAAS,IAAMF,EAAS,KAAOC,EAAS,IAAMD,EAAS,KAAOC,EAAS,GAC7G,IAAN3gE,GAAWA,IAAMqI,EAAM,GAAO++B,EAAKl8B,GASpC21D,EADQ,IAAN7gE,EACQonC,EAAKhnC,EAAEiI,EAAM,GAEb++B,EAAKhnC,EAAEJ,EAAI,GAIvB+gE,GADAD,EAAWnkE,KAAKojB,KAAKpjB,KAAKmB,IAAI4iE,EAAS,GAAKG,EAAQ,GAAI,GAAKlkE,KAAKmB,IAAI4iE,EAAS,GAAKG,EAAQ,GAAI,KACxElkE,KAAK6O,IAAIs1D,EAAW,EAAG5nD,GAAS4nD,EAAW,EAEnEvY,EADAI,EAAK+X,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAGhDvY,EADAI,EAAK8X,EAAS,IAAMA,EAAS,GAAKG,EAAQ,IAAME,EAEhDtY,EAAKF,GAAMA,EAAKmY,EAAS,IAAMl9B,YAC/BklB,EAAKF,GAAMA,EAAKkY,EAAS,IAAMl9B,YAC/B6yB,EAAW/N,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI39C,GAC/CA,GAAS,EAGP41D,EADE7gE,IAAMqI,EAAM,EACJ++B,EAAKhnC,EAAE,GAEPgnC,EAAKhnC,EAAEJ,EAAI,GAIvB+gE,GADAD,EAAWnkE,KAAKojB,KAAKpjB,KAAKmB,IAAI4iE,EAAS,GAAKG,EAAQ,GAAI,GAAKlkE,KAAKmB,IAAI4iE,EAAS,GAAKG,EAAQ,GAAI,KACxElkE,KAAK6O,IAAIs1D,EAAW,EAAG5nD,GAAS4nD,EAAW,EAEnEvY,EADAE,EAAKiY,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAGhDvY,EADAE,EAAKgY,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAEhDpY,EAAKJ,GAAMA,EAAKmY,EAAS,IAAMl9B,YAC/BolB,EAAKJ,GAAMA,EAAKkY,EAAS,IAAMl9B,YAC/B6yB,EAAW/N,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI39C,GAC/CA,GAAS,IAvCTorD,EAAW/N,YAAYoY,EAAS,GAAIA,EAAS,GAAIE,EAAS,GAAIA,EAAS,GAAID,EAAS,GAAIA,EAAS,GAAI11D,GAKrGA,GAAS,IAqCXorD,EAAW/N,YAAYlhB,EAAKhnC,EAAEJ,GAAG,GAAIonC,EAAKhnC,EAAEJ,GAAG,GAAIonC,EAAK11B,EAAE1R,GAAG,GAAIonC,EAAK11B,EAAE1R,GAAG,GAAIonC,EAAKpnC,EAAEA,GAAG,GAAIonC,EAAKpnC,EAAEA,GAAG,GAAIiL,GAC3GA,GAAS,GAIb,OAAOorD,CACT,EAEAuB,qBAAqBj8D,UAAUq5D,cAAgB,SAAUtO,GACvD,IAAIuO,EACAj1D,EAEAwF,EACAyiC,EAIE+W,EACAsL,EAPFjiD,EAAMoC,KAAKo+B,OAAOjuC,OAGlB6lE,EAAKh2D,KAAKg2D,GAAGrgE,EAEjB,GAAW,IAAPqgE,EAIF,IAAKzgE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAI3B,GAFAsqD,GADAtL,EAAYv0C,KAAKo+B,OAAO7oC,IACSsqD,qBAE1BtL,EAAUoK,MAAM/C,MAAS57C,KAAK47C,MAASK,EAM5C,IALA4D,EAAqBd,gBACrBxK,EAAUoK,MAAM/C,MAAO,EACvB4O,EAAajW,EAAUoK,MAAMiB,MAAMxhB,OACnCZ,EAAO+W,EAAUoK,MAAMiB,MAAMnO,QAExB12C,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB8kD,EAAqBf,SAAS9+C,KAAKyrD,YAAYjB,EAAWzvD,GAAIi7D,IAIlEzhB,EAAUoK,MAAMiB,MAAQrL,EAAUsL,oBACpC,CAGG7/C,KAAKm9C,kBAAkBhtD,SAC1B6P,KAAK47C,MAAO,EAEhB,EA0DAiS,iBAAiB38D,UAAUmiD,MAAQ,SAAU1uC,GAC3C,MAAO,GAAG3E,KAAK6D,EAAE,GAAKc,EAAI3E,KAAKrQ,EAAE,IAAMgV,EAAI3E,KAAKS,EAAE,IAAMkE,EAAI3E,KAAKyY,EAAE,KAAMzY,KAAK6D,EAAE,GAAKc,EAAI3E,KAAKrQ,EAAE,IAAMgV,EAAI3E,KAAKS,EAAE,IAAMkE,EAAI3E,KAAKyY,EAAE,GACpI,EAEAo1C,iBAAiB38D,UAAUqlE,WAAa,SAAU5xD,GAChD,MAAO,EAAE,EAAIA,EAAI3E,KAAK6D,EAAE,GAAK,EAAI7D,KAAKrQ,EAAE,IAAMgV,EAAI3E,KAAKS,EAAE,IAAK,EAAIkE,EAAI3E,KAAK6D,EAAE,GAAK,EAAI7D,KAAKrQ,EAAE,IAAMgV,EAAI3E,KAAKS,EAAE,GAChH,EAEAotD,iBAAiB38D,UAAUihE,aAAe,SAAUxtD,GAClD,IAAI+I,EAAI1N,KAAKu2D,WAAW5xD,GACxB,OAAOzS,KAAKwoD,MAAMhtC,EAAE,GAAIA,EAAE,GAC5B,EAEAmgD,iBAAiB38D,UAAUogE,YAAc,SAAU3sD,GACjD,IAAI+I,EAAI1N,KAAKu2D,WAAW5xD,GACxB,OAAOzS,KAAKwoD,MAAMhtC,EAAE,GAAIA,EAAE,GAC5B,EAEAmgD,iBAAiB38D,UAAU8hE,iBAAmB,WAC5C,IAAIwD,EAAQx2D,KAAK6D,EAAE,GAAK7D,KAAKrQ,EAAE,GAAKqQ,KAAK6D,EAAE,GAAK7D,KAAKrQ,EAAE,GACvD,GAAI09D,UAAUmJ,GAAQ,MAAO,GAC7B,IAAIC,GAAS,IAAOz2D,KAAK6D,EAAE,GAAK7D,KAAKS,EAAE,GAAKT,KAAK6D,EAAE,GAAK7D,KAAKS,EAAE,IAAM+1D,EACjEE,EAASD,EAAQA,EAAQ,EAAI,GAAKz2D,KAAKrQ,EAAE,GAAKqQ,KAAKS,EAAE,GAAKT,KAAKrQ,EAAE,GAAKqQ,KAAKS,EAAE,IAAM+1D,EACvF,GAAIE,EAAS,EAAG,MAAO,GACvB,IAAIC,EAAOzkE,KAAKojB,KAAKohD,GAErB,OAAIrJ,UAAUsJ,GACRA,EAAO,GAAKA,EAAO,EAAU,CAACF,GAC3B,GAGF,CAACA,EAAQE,EAAMF,EAAQE,GAAMrqC,QAAO,SAAU1rB,GACnD,OAAOA,EAAI,GAAKA,EAAI,CACtB,GACF,EAEAitD,iBAAiB38D,UAAU0C,MAAQ,SAAU+Q,GAC3C,GAAIA,GAAK,EAAG,MAAO,CAACipD,YAAY5tD,KAAK0vC,OAAO,IAAK1vC,MACjD,GAAI2E,GAAK,EAAG,MAAO,CAAC3E,KAAM4tD,YAAY5tD,KAAK0vC,OAAO1vC,KAAK0vC,OAAOv/C,OAAS,KACvE,IAAIymE,EAAMrJ,UAAUvtD,KAAK0vC,OAAO,GAAI1vC,KAAK0vC,OAAO,GAAI/qC,GAChDkyD,EAAMtJ,UAAUvtD,KAAK0vC,OAAO,GAAI1vC,KAAK0vC,OAAO,GAAI/qC,GAChDqiD,EAAMuG,UAAUvtD,KAAK0vC,OAAO,GAAI1vC,KAAK0vC,OAAO,GAAI/qC,GAChDmyD,EAAMvJ,UAAUqJ,EAAKC,EAAKlyD,GAC1BoyD,EAAMxJ,UAAUsJ,EAAK7P,EAAKriD,GAC1BgpD,EAAKJ,UAAUuJ,EAAKC,EAAKpyD,GAC7B,MAAO,CAAC,IAAIkpD,iBAAiB7tD,KAAK0vC,OAAO,GAAIknB,EAAKE,EAAKnJ,GAAI,GAAO,IAAIE,iBAAiBF,EAAIoJ,EAAK/P,EAAKhnD,KAAK0vC,OAAO,IAAI,GACvH,EA4BAme,iBAAiB38D,UAAU8lE,OAAS,WAClC,MAAO,CACLh8D,EAAGkzD,QAAQluD,KAAM,GACjBsM,EAAG4hD,QAAQluD,KAAM,GAErB,EAEA6tD,iBAAiB38D,UAAUo9D,YAAc,WACvC,IAAI0I,EAASh3D,KAAKg3D,SAClB,MAAO,CACL91D,KAAM81D,EAAOh8D,EAAE+F,IACfI,MAAO61D,EAAOh8D,EAAEiG,IAChBqwB,IAAK0lC,EAAO1qD,EAAEvL,IACdk2D,OAAQD,EAAO1qD,EAAErL,IACjBhC,MAAO+3D,EAAOh8D,EAAEiG,IAAM+1D,EAAOh8D,EAAE+F,IAC/BwwB,OAAQylC,EAAO1qD,EAAErL,IAAM+1D,EAAO1qD,EAAEvL,IAChCwtD,IAAKyI,EAAOh8D,EAAEiG,IAAM+1D,EAAOh8D,EAAE+F,KAAO,EACpCytD,IAAKwI,EAAO1qD,EAAErL,IAAM+1D,EAAO1qD,EAAEvL,KAAO,EAExC,EAyCA8sD,iBAAiB38D,UAAU49D,cAAgB,SAAUoI,EAAOrI,EAAWE,QACnDh9D,IAAd88D,IAAyBA,EAAY,QACpB98D,IAAjBg9D,IAA4BA,EAAe,GAC/C,IAAID,EAAgB,GAEpB,OADAH,eAAeR,cAAcnuD,KAAM,EAAG,GAAImuD,cAAc+I,EAAO,EAAG,GAAI,EAAGrI,EAAWC,EAAeC,GAC5FD,CACT,EAEAjB,iBAAiBxC,aAAe,SAAU3M,EAAWl+C,GACnD,IAAImwD,GAAanwD,EAAQ,GAAKk+C,EAAUvuD,SACxC,OAAO,IAAI09D,iBAAiBnP,EAAU/oD,EAAE6K,GAAQk+C,EAAUz3C,EAAEzG,GAAQk+C,EAAUnpD,EAAEo7D,GAAYjS,EAAU/oD,EAAEg7D,IAAY,EACtH,EAEA9C,iBAAiBsJ,qBAAuB,SAAUzY,EAAWl+C,GAC3D,IAAImwD,GAAanwD,EAAQ,GAAKk+C,EAAUvuD,SACxC,OAAO,IAAI09D,iBAAiBnP,EAAU/oD,EAAEg7D,GAAYjS,EAAUnpD,EAAEo7D,GAAYjS,EAAUz3C,EAAEzG,GAAQk+C,EAAU/oD,EAAE6K,IAAQ,EACtH,EA8BAw0B,gBAAgB,CAACq0B,eAAgBwG,gBAEjCA,eAAe3+D,UAAUs4D,uBAAyB,SAAU9tC,EAAMwE,GAChElgB,KAAKy8C,SAAWz8C,KAAK2pD,YACrB3pD,KAAKgwD,UAAYlT,gBAAgBC,QAAQrhC,EAAMwE,EAAK9S,EAAG,EAAG,KAAMpN,MAChEA,KAAK8wD,UAAYhU,gBAAgBC,QAAQrhC,EAAMwE,EAAKtf,EAAG,EAAG,KAAMZ,MAChEA,KAAKo3D,WAAata,gBAAgBC,QAAQrhC,EAAMwE,EAAK4d,GAAI,EAAG,KAAM99B,MAClEA,KAAKo9C,YAAwD,IAA1Cp9C,KAAKgwD,UAAUjU,gBAAgB5rD,QAA0D,IAA1C6P,KAAK8wD,UAAU/U,gBAAgB5rD,QAA2D,IAA3C6P,KAAKo3D,WAAWrb,gBAAgB5rD,MACnJ,EAiDA0/D,eAAe3+D,UAAUu6D,YAAc,SAAU9uB,EAAMqzB,EAAWc,EAAWC,GAC3E,IAAI17D,EAAQsnC,EAAK8U,QACbma,EAAanN,UAAU7M,aAO3B,GANAga,EAAWnrD,EAAIk8B,EAAKl8B,EAEfk8B,EAAKl8B,IACRpL,GAAS,GAGG,IAAVA,EAAa,OAAOu2D,EACxB,IAAIz8B,GAAa,EACbkb,EAAUwjB,iBAAiBxC,aAAa1uB,EAAM,GAClDk0B,aAAajF,EAAYjvB,EAAM,EAAGqzB,EAAWc,EAAWC,EAAW5hC,GAEnE,IAAK,IAAI55B,EAAI,EAAGA,EAAIF,EAAOE,GAAK,EAC9B45B,EAAYiiC,cAAcxF,EAAYvhB,EAAS2lB,EAAWc,EAAWC,GAAY5hC,GAK/Ekb,EAHE90C,IAAMF,EAAQ,GAAMsnC,EAAKl8B,EAGjBotD,iBAAiBxC,aAAa1uB,GAAOpnC,EAAI,GAAKF,GAF9C,KAKZw7D,aAAajF,EAAYjvB,EAAMpnC,EAAI,EAAGy6D,EAAWc,EAAWC,EAAW5hC,GAGzE,OAAOy8B,CACT,EAEAiE,eAAe3+D,UAAUq5D,cAAgB,SAAUtO,GACjD,IAAIuO,EACAj1D,EAEAwF,EACAyiC,EAME+W,EACAsL,EATFjiD,EAAMoC,KAAKo+B,OAAOjuC,OAGlB6/D,EAAYhwD,KAAKgwD,UAAUr6D,EAC3Bm7D,EAAY5+D,KAAK+O,IAAI,EAAG/O,KAAKuc,MAAMzO,KAAK8wD,UAAUn7D,IAClDo7D,EAAY/wD,KAAKo3D,WAAWzhE,EAEhC,GAAkB,IAAdq6D,EAIF,IAAKz6D,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAI3B,GAFAsqD,GADAtL,EAAYv0C,KAAKo+B,OAAO7oC,IACSsqD,qBAE1BtL,EAAUoK,MAAM/C,MAAS57C,KAAK47C,MAASK,EAM5C,IALA4D,EAAqBd,gBACrBxK,EAAUoK,MAAM/C,MAAO,EACvB4O,EAAajW,EAAUoK,MAAMiB,MAAMxhB,OACnCZ,EAAO+W,EAAUoK,MAAMiB,MAAMnO,QAExB12C,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB8kD,EAAqBf,SAAS9+C,KAAKyrD,YAAYjB,EAAWzvD,GAAIi1D,EAAWc,EAAWC,IAIxFxc,EAAUoK,MAAMiB,MAAQrL,EAAUsL,oBACpC,CAGG7/C,KAAKm9C,kBAAkBhtD,SAC1B6P,KAAK47C,MAAO,EAEhB,EAiJA5mB,gBAAgB,CAACq0B,eAAgB4J,oBAEjCA,mBAAmB/hE,UAAUs4D,uBAAyB,SAAU9tC,EAAMwE,GACpElgB,KAAKy8C,SAAWz8C,KAAK2pD,YACrB3pD,KAAKwrD,OAAS1O,gBAAgBC,QAAQrhC,EAAMwE,EAAKrc,EAAG,EAAG,KAAM7D,MAC7DA,KAAKiyD,WAAanV,gBAAgBC,QAAQrhC,EAAMwE,EAAKm3C,GAAI,EAAG,KAAMr3D,MAClEA,KAAKgyD,SAAW9xC,EAAKo3C,GACrBt3D,KAAKo9C,YAAqD,IAAvCp9C,KAAKwrD,OAAOzP,gBAAgB5rD,MACjD,EAEA8iE,mBAAmB/hE,UAAUu6D,YAAc,SAAU8L,EAAa/L,EAAQwG,EAAUC,GAClF,IAAIlC,EAAetR,UAAU7M,aAC7Bme,EAAatvD,EAAI82D,EAAY92D,EAC7B,IAMIlL,EACAwF,EACAsvC,EARAh1C,EAAQkiE,EAAYpnE,SAEnBonE,EAAY92D,IACfpL,GAAS,GAMX,IAAImiE,EAAgB,GAEpB,IAAKjiE,EAAI,EAAGA,EAAIF,EAAOE,GAAK,EAC1B80C,EAAUwjB,iBAAiBxC,aAAakM,EAAahiE,GACrDiiE,EAAchiE,KAAKs9D,mBAAmBzoB,EAASmhB,IAGjD,IAAK+L,EAAY92D,EACf,IAAKlL,EAAIF,EAAQ,EAAGE,GAAK,EAAGA,GAAK,EAC/B80C,EAAUwjB,iBAAiBsJ,qBAAqBI,EAAahiE,GAC7DiiE,EAAchiE,KAAKs9D,mBAAmBzoB,EAASmhB,IAInDgM,EAAgB3E,mBAAmB2E,GAEnC,IAAIlkB,EAAY,KACZmkB,EAAU,KAEd,IAAKliE,EAAI,EAAGA,EAAIiiE,EAAcrnE,OAAQoF,GAAK,EAAG,CAC5C,IAAImiE,EAAeF,EAAcjiE,GAIjC,IAHIkiE,IAASnkB,EAAYue,UAAU9B,EAAc0H,EAASC,EAAa,GAAI1F,EAAUC,IACrFwF,EAAUC,EAAaA,EAAavnE,OAAS,GAExC4K,EAAI,EAAGA,EAAI28D,EAAavnE,OAAQ4K,GAAK,EACxCsvC,EAAUqtB,EAAa38D,GAEnBu4C,GAAaya,WAAW1jB,EAAQqF,OAAO,GAAI4D,GAC7Cyc,EAAanS,QAAQvT,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAI,IAAKqgB,EAAa5/D,SAAW,GAE9F4/D,EAAalS,YAAYxT,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIqgB,EAAa5/D,UAG5K4/D,EAAalS,YAAYxT,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIrF,EAAQqF,OAAO,GAAG,GAAIqgB,EAAa5/D,UAC1KmjD,EAAYjJ,EAAQqF,OAAO,EAE/B,CAGA,OADI8nB,EAAcrnE,QAAQ0hE,UAAU9B,EAAc0H,EAASD,EAAc,GAAG,GAAIxF,EAAUC,GACnFlC,CACT,EAEAkD,mBAAmB/hE,UAAUq5D,cAAgB,SAAUtO,GACrD,IAAIuO,EACAj1D,EAEAwF,EACAyiC,EAME+W,EACAsL,EATFjiD,EAAMoC,KAAKo+B,OAAOjuC,OAGlBq7D,EAASxrD,KAAKwrD,OAAO71D,EACrBs8D,EAAajyD,KAAKiyD,WAAWt8D,EAC7Bq8D,EAAWhyD,KAAKgyD,SAEpB,GAAe,IAAXxG,EAIF,IAAKj2D,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAI3B,GAFAsqD,GADAtL,EAAYv0C,KAAKo+B,OAAO7oC,IACSsqD,qBAE1BtL,EAAUoK,MAAM/C,MAAS57C,KAAK47C,MAASK,EAM5C,IALA4D,EAAqBd,gBACrBxK,EAAUoK,MAAM/C,MAAO,EACvB4O,EAAajW,EAAUoK,MAAMiB,MAAMxhB,OACnCZ,EAAO+W,EAAUoK,MAAMiB,MAAMnO,QAExB12C,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB8kD,EAAqBf,SAAS9+C,KAAKyrD,YAAYjB,EAAWzvD,GAAIywD,EAAQwG,EAAUC,IAIpF1d,EAAUoK,MAAMiB,MAAQrL,EAAUsL,oBACpC,CAGG7/C,KAAKm9C,kBAAkBhtD,SAC1B6P,KAAK47C,MAAO,EAEhB,EAkDA,IAAI+b,YAAc,WAChB,IACIC,EAAY,CACdh2D,EAAG,EACH9F,KAAM,EACNsiC,OAAQ,GACRle,KAAM,CACJke,OAAQ,KAGRy5B,EAAqB,GAEzBA,EAAqBA,EAAmBp9C,OAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAChP,IAAIq9C,EAAwB,OAMxBC,EAAkC,OAClCC,EAAkC,OAClCC,EAAqB,CAAC,WAAY,WAAY,WAAY,WAAY,YAiB1E,SAASC,EAAUC,EAAMC,GACvB,IAAIC,EAAatjC,UAAU,QAE3BsjC,EAAW/pB,aAAa,eAAe,GACvC+pB,EAAW3rC,MAAM4rC,WAAaF,EAC9B,IAAIG,EAAOxjC,UAAU,QAErBwjC,EAAK9pB,UAAY,iBAEjB4pB,EAAW3rC,MAAMnoB,SAAW,WAC5B8zD,EAAW3rC,MAAMxrB,KAAO,WACxBm3D,EAAW3rC,MAAM4E,IAAM,WAEvB+mC,EAAW3rC,MAAM8rC,SAAW,QAE5BH,EAAW3rC,MAAM+rC,YAAc,SAC/BJ,EAAW3rC,MAAMgsC,UAAY,SAC7BL,EAAW3rC,MAAMisC,WAAa,SAC9BN,EAAW3rC,MAAMksC,cAAgB,IACjCP,EAAWjzB,YAAYmzB,GACvB1lC,SAAS0b,KAAKnJ,YAAYizB,GAE1B,IAAIp5D,EAAQs5D,EAAKM,YAEjB,OADAN,EAAK7rC,MAAM4rC,WAtCb,SAAyBH,GACvB,IACI5iE,EADAujE,EAAcX,EAAKvkE,MAAM,KAEzBgK,EAAMk7D,EAAY3oE,OAClB4oE,EAAkB,GAEtB,IAAKxjE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACD,eAAnBujE,EAAYvjE,IAA0C,cAAnBujE,EAAYvjE,IACjDwjE,EAAgBvjE,KAAKsjE,EAAYvjE,IAIrC,OAAOwjE,EAAgBz6D,KAAK,IAC9B,CAyB0B06D,CAAgBb,GAAQ,KAAOC,EAChD,CACLG,KAAMA,EACN32D,EAAG3C,EACHg6D,OAAQZ,EAEZ,CA6CA,SAASa,EAAa/F,EAAUgG,GAC9B,IACIC,EADAC,EAASxmC,SAAS0b,MAAQ4qB,EAAM,MAAQ,SAExCG,EAAYpG,kBAAkBC,GAElC,GAAe,QAAXkG,EAAkB,CACpB,IAAIE,EAAUv9B,SAAS,QACvBu9B,EAAQ7sC,MAAM8rC,SAAW,QAEzBe,EAAQjrB,aAAa,cAAe6kB,EAASqG,SAC7CD,EAAQjrB,aAAa,aAAcgrB,EAAU5sC,OAC7C6sC,EAAQjrB,aAAa,cAAegrB,EAAU/F,QAC9CgG,EAAQE,YAAc,IAElBtG,EAASuG,QACXH,EAAQ7sC,MAAM4rC,WAAa,UAC3BiB,EAAQjrB,aAAa,QAAS6kB,EAASuG,SAEvCH,EAAQ7sC,MAAM4rC,WAAanF,EAASqG,QAGtCL,EAAI/zB,YAAYm0B,GAChBH,EAASG,CACX,KAAO,CACL,IAAII,EAAgB,IAAIC,gBAAgB,IAAK,KAAKj3B,WAAW,MAC7Dg3B,EAAcxB,KAAOmB,EAAU5sC,MAAQ,IAAM4sC,EAAU/F,OAAS,UAAYJ,EAASqG,QACrFJ,EAASO,CACX,CAWA,MAAO,CACLE,YAVF,SAAiBC,GACf,MAAe,QAAXT,GACFD,EAAOK,YAAcK,EACdV,EAAOW,yBAGTX,EAAOS,YAAYC,GAAM76D,KAClC,EAKF,CAwMA,SAAS+6D,EAAal9D,GACpB,IAAIgmB,EAAY,EACZ2D,EAAQ3pB,EAAO3B,WAAW,GAE9B,GAAIsrB,GAAS,OAAUA,GAAS,MAAQ,CACtC,IAAIwzC,EAASn9D,EAAO3B,WAAW,GAE3B8+D,GAAU,OAAUA,GAAU,QAChCn3C,EAA+B,MAAlB2D,EAAQ,OAAkBwzC,EAAS,MAAS,MAE7D,CAEA,OAAOn3C,CACT,CAsBA,SAASo3C,EAAep9D,GACtB,IAAIgmB,EAAYk3C,EAAal9D,GAE7B,OAAIgmB,GAAai1C,GAAmCj1C,GAAak1C,CAKnE,CA2CA,IAAImC,EAAO,WACTn6D,KAAK+pC,MAAQ,GACb/pC,KAAKu/B,MAAQ,KACbv/B,KAAKo6D,cAAgB,EACrBp6D,KAAK2nC,UAAW,EAChB3nC,KAAKq6D,SAAU,EACfr6D,KAAKotC,SAAWktB,KAAKC,MACrBv6D,KAAKw6D,kBAAoBx6D,KAAKy6D,YAAYljE,KAAKyI,MAC/CA,KAAK06D,uBAAyB16D,KAAK26D,iBAAiBpjE,KAAKyI,KAC3D,EAEAm6D,EAAKS,WAjFL,SAAoBC,EAAeC,GACjC,IAAIrhE,EAAMohE,EAAc3gE,SAAS,IAAM4gE,EAAe5gE,SAAS,IAC/D,OAA4C,IAArC+9D,EAAmBz5D,QAAQ/E,EACpC,EA+EA0gE,EAAKY,kBA7EL,SAA2BC,GACzB,OArWiC,OAqW1BA,CACT,EA4EAb,EAAKc,YApDL,SAAqBn+D,GACnB,OAAOo9D,EAAep9D,EAAOqlB,OAAO,EAAG,KAAO+3C,EAAep9D,EAAOqlB,OAAO,EAAG,GAChF,EAmDAg4C,EAAKD,eAAiBA,EACtBC,EAAKe,oBAlDL,SAA6BC,GAC3B,OAA+C,IAAxCtD,EAAmBr5D,QAAQ28D,EACpC,EAiDAhB,EAAKiB,eA5CL,SAAwBtB,EAAMt5D,GAC5B,IAAIsiB,EAAYk3C,EAAaF,EAAK33C,OAAO3hB,EAAO,IAEhD,GAAIsiB,IAAcg1C,EAChB,OAAO,EAGT,IAAIziE,EAAQ,EAGZ,IAFAmL,GAAS,EAEFnL,EAAQ,GAAG,CAGhB,IAFAytB,EAAYk3C,EAAaF,EAAK33C,OAAO3hB,EAAO,KAvZzB,QAyZiBsiB,EAxZjB,OAyZjB,OAAO,EAGTztB,GAAS,EACTmL,GAAS,CACX,CAEA,OAla0B,SAkanBw5D,EAAaF,EAAK33C,OAAO3hB,EAAO,GACzC,EAuBA25D,EAAKkB,oBA3EL,SAA6BL,GAC3B,OA7WqC,QA6W9BA,CACT,EA0EAb,EAAKrC,sBAAwBA,EAC7B,IAAIwD,EAAgB,CAClBrxB,SArMF,SAAkB1K,GAChB,GAAKA,EAAL,CAQA,IAAIhqC,EAJCyK,KAAKu/B,QACRv/B,KAAKu/B,MAAQ,IAIf,IACIxkC,EAEA8mB,EAHAjkB,EAAM2hC,EAAMpvC,OAEZqtC,EAAOx9B,KAAKu/B,MAAMpvC,OAGtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAI3B,IAHAwF,EAAI,EACJ8mB,GAAQ,EAED9mB,EAAIyiC,GACLx9B,KAAKu/B,MAAMxkC,GAAG2xB,QAAU6S,EAAMhqC,GAAGm3B,OAAS1sB,KAAKu/B,MAAMxkC,GAAGy+D,UAAYj6B,EAAMhqC,GAAGikE,SAAWx5D,KAAKu/B,MAAMxkC,GAAGwgE,KAAOh8B,EAAMhqC,GAAGgmE,KACxH15C,GAAQ,GAGV9mB,GAAK,EAGF8mB,IACH7hB,KAAKu/B,MAAM/pC,KAAK+pC,EAAMhqC,IACtBioC,GAAQ,EAEZ,CA5BA,CA6BF,EAsKE0M,SAjTF,SAAkBipB,EAAUjqB,GAC1B,GAAKiqB,EAAL,CAKA,GAAInzD,KAAKu/B,MAGP,OAFAv/B,KAAK2nC,UAAW,OAChB3nC,KAAK+pC,MAAQopB,EAASjvC,MAIxB,IAAK2O,SAAS0b,KAOZ,OANAvuC,KAAK2nC,UAAW,EAChBwrB,EAASjvC,KAAKzG,SAAQ,SAAUyC,GAC9BA,EAAKk5C,OAASF,EAAah5C,GAC3BA,EAAKs7C,MAAQ,CAAC,CAChB,SACAx7D,KAAK+pC,MAAQopB,EAASjvC,MAIxB,IACI3uB,EADAkmE,EAAUtI,EAASjvC,KAEnBtmB,EAAM69D,EAAQtrE,OACdurE,EAAgB99D,EAEpB,IAAKrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAC3B,IACIomE,EACA5gE,EAFA6gE,GAAiB,EAOrB,GAJAH,EAAQlmE,GAAGsmE,QAAS,EACpBJ,EAAQlmE,GAAGumE,SAAW5D,EAAUuD,EAAQlmE,GAAGikE,QAAS,aACpDiC,EAAQlmE,GAAGwmE,SAAW7D,EAAUuD,EAAQlmE,GAAGikE,QAAS,cAE/CiC,EAAQlmE,GAAGymE,OAGT,GAA2B,MAAvBP,EAAQlmE,GAAG0mE,SAAyC,IAAtBR,EAAQlmE,GAAG4sC,QAOlD,IANAw5B,EAAiB9oC,SAASqpC,iBAAiB,kCAAoCT,EAAQlmE,GAAGikE,QAAU,qCAAuCiC,EAAQlmE,GAAGikE,QAAU,OAE7IrpE,OAAS,IAC1ByrE,GAAiB,GAGfA,EAAgB,CAClB,IAAIxuD,EAAI2nB,UAAU,SAClB3nB,EAAEkhC,aAAa,YAAamtB,EAAQlmE,GAAG0mE,SACvC7uD,EAAEkhC,aAAa,WAAYmtB,EAAQlmE,GAAG4sC,QACtC/0B,EAAEkhC,aAAa,WAAYmtB,EAAQlmE,GAAGikE,SACtCpsD,EAAEoQ,KAAO,WACTpQ,EAAEqhC,UAAY,4BAA8BgtB,EAAQlmE,GAAGikE,QAAU,mCAAqCiC,EAAQlmE,GAAGymE,MAAQ,OACzH9yB,EAAK9D,YAAYh4B,EACnB,OACK,GAA2B,MAAvBquD,EAAQlmE,GAAG0mE,SAAyC,IAAtBR,EAAQlmE,GAAG4sC,OAAc,CAGhE,IAFAw5B,EAAiB9oC,SAASqpC,iBAAiB,2CAEtCnhE,EAAI,EAAGA,EAAI4gE,EAAexrE,OAAQ4K,GAAK,GACgB,IAAtD4gE,EAAe5gE,GAAG2sD,KAAKlpD,QAAQi9D,EAAQlmE,GAAGymE,SAE5CJ,GAAiB,GAIrB,GAAIA,EAAgB,CAClB,IAAIlvD,EAAIqoB,UAAU,QAClBroB,EAAE4hC,aAAa,YAAamtB,EAAQlmE,GAAG0mE,SACvCvvD,EAAE4hC,aAAa,WAAYmtB,EAAQlmE,GAAG4sC,QACtCz1B,EAAE8Q,KAAO,WACT9Q,EAAEyvD,IAAM,aACRzvD,EAAEg7C,KAAO+T,EAAQlmE,GAAGymE,MACpBnpC,SAAS0b,KAAKnJ,YAAY14B,EAC5B,CACF,MAAO,GAA2B,MAAvB+uD,EAAQlmE,GAAG0mE,SAAyC,IAAtBR,EAAQlmE,GAAG4sC,OAAc,CAGhE,IAFAw5B,EAAiB9oC,SAASqpC,iBAAiB,+CAEtCnhE,EAAI,EAAGA,EAAI4gE,EAAexrE,OAAQ4K,GAAK,EACtC0gE,EAAQlmE,GAAGymE,QAAUL,EAAe5gE,GAAG1I,MAEzCupE,GAAiB,GAIrB,GAAIA,EAAgB,CAClB,IAAIQ,EAAKrnC,UAAU,QACnBqnC,EAAG9tB,aAAa,YAAamtB,EAAQlmE,GAAG0mE,SACxCG,EAAG9tB,aAAa,WAAYmtB,EAAQlmE,GAAG4sC,QACvCi6B,EAAG9tB,aAAa,MAAO,cACvB8tB,EAAG9tB,aAAa,OAAQmtB,EAAQlmE,GAAGymE,OACnC9yB,EAAK9D,YAAYg3B,EACnB,CACF,OAvDEX,EAAQlmE,GAAGsmE,QAAS,EACpBH,GAAiB,EAwDnBD,EAAQlmE,GAAG6jE,OAASF,EAAauC,EAAQlmE,GAAI2zC,GAC7CuyB,EAAQlmE,GAAGimE,MAAQ,CAAC,EACpBx7D,KAAK+pC,MAAMv0C,KAAKimE,EAAQlmE,GAC1B,CAEsB,IAAlBmmE,EACF17D,KAAK2nC,UAAW,EAIhBsD,WAAWjrC,KAAK26D,iBAAiBpjE,KAAKyI,MAAO,IAnG/C,MAFEA,KAAK2nC,UAAW,CAuGpB,EAyME00B,YArKF,SAAqBC,EAAO5vC,EAAOyrC,GAIjC,IAHA,IAAI5iE,EAAI,EACJqI,EAAMoC,KAAKu/B,MAAMpvC,OAEdoF,EAAIqI,GAAK,CACd,GAAIoC,KAAKu/B,MAAMhqC,GAAGgmE,KAAOe,GAASt8D,KAAKu/B,MAAMhqC,GAAGm3B,QAAUA,GAAS1sB,KAAKu/B,MAAMhqC,GAAGikE,UAAYrB,EAC3F,OAAOn4D,KAAKu/B,MAAMhqC,GAGpBA,GAAK,CACP,CAQA,OANsB,kBAAV+mE,GAA8C,KAAxBA,EAAMnhE,WAAW,KAAcmhE,IAAUz4C,SAAWA,QAAQ04C,OAC1Fv8D,KAAKq6D,UACPr6D,KAAKq6D,SAAU,EACfx2C,QAAQ04C,KAAK,oDAAqDD,EAAO5vC,EAAOyrC,IAG3EP,CACT,EAmJE4E,cA5HF,SAAuBjrE,GAIrB,IAHA,IAAIgE,EAAI,EACJqI,EAAMoC,KAAK+pC,MAAM55C,OAEdoF,EAAIqI,GAAK,CACd,GAAIoC,KAAK+pC,MAAMx0C,GAAGknE,QAAUlrE,EAC1B,OAAOyO,KAAK+pC,MAAMx0C,GAGpBA,GAAK,CACP,CAEA,OAAOyK,KAAK+pC,MAAM,EACpB,EAgHE8vB,YAlJF,SAAqB6C,EAAQC,EAAU7gE,GACrC,IAAIq3D,EAAWnzD,KAAKw8D,cAAcG,GAG9Bn8D,EAAQk8D,EAEZ,IAAKvJ,EAASqI,MAAMh7D,GAAQ,CAC1B,IAAI+4D,EAAUpG,EAASiG,OAEvB,GAAe,MAAXsD,EAAgB,CAClB,IAAIE,EAAarD,EAAQM,YAAY,IAAM6C,EAAS,KAChDG,EAAatD,EAAQM,YAAY,MACrC1G,EAASqI,MAAMh7D,IAAUo8D,EAAaC,GAAc,GACtD,MACE1J,EAASqI,MAAMh7D,GAAS+4D,EAAQM,YAAY6C,GAAU,GAE1D,CAEA,OAAOvJ,EAASqI,MAAMh7D,GAAS1E,CACjC,EAgIE6+D,iBA3YF,WACE,IAAIplE,EAEAgjE,EACA32D,EAFAhE,EAAMoC,KAAK+pC,MAAM55C,OAGjB2sE,EAAcl/D,EAElB,IAAKrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpByK,KAAK+pC,MAAMx0C,GAAGsmE,OAChBiB,GAAe,EACoB,MAA1B98D,KAAK+pC,MAAMx0C,GAAG0mE,SAA4C,IAAzBj8D,KAAK+pC,MAAMx0C,GAAG4sC,OACxDniC,KAAK+pC,MAAMx0C,GAAGsmE,QAAS,GAEvBtD,EAAOv4D,KAAK+pC,MAAMx0C,GAAGumE,SAASvD,KAC9B32D,EAAI5B,KAAK+pC,MAAMx0C,GAAGumE,SAASl6D,EAEvB22D,EAAKM,cAAgBj3D,GACvBk7D,GAAe,EACf98D,KAAK+pC,MAAMx0C,GAAGsmE,QAAS,IAEvBtD,EAAOv4D,KAAK+pC,MAAMx0C,GAAGwmE,SAASxD,KAC9B32D,EAAI5B,KAAK+pC,MAAMx0C,GAAGwmE,SAASn6D,EAEvB22D,EAAKM,cAAgBj3D,IACvBk7D,GAAe,EACf98D,KAAK+pC,MAAMx0C,GAAGsmE,QAAS,IAIvB77D,KAAK+pC,MAAMx0C,GAAGsmE,SAChB77D,KAAK+pC,MAAMx0C,GAAGwmE,SAAS9C,OAAOZ,WAAW0E,YAAY/8D,KAAK+pC,MAAMx0C,GAAGwmE,SAAS9C,QAC5Ej5D,KAAK+pC,MAAMx0C,GAAGumE,SAAS7C,OAAOZ,WAAW0E,YAAY/8D,KAAK+pC,MAAMx0C,GAAGumE,SAAS7C,UAK9D,IAAhB6D,GAAqBxC,KAAKC,MAAQv6D,KAAKotC,SAxGxB,IAyGjBnC,WAAWjrC,KAAK06D,uBAAwB,IAExCzvB,WAAWjrC,KAAKw6D,kBAAmB,GAEvC,EAmWEC,YA9BF,WACEz6D,KAAK2nC,UAAW,CAClB,GA+BA,OADAwyB,EAAKjpE,UAAYoqE,EACVnB,CACT,CArdkB,GAudlB,SAAS6C,YAAYrwC,GACnB3sB,KAAK2sB,cAAgBA,CACvB,CAUA,SAASswC,YAAYtwC,GACnB,OAAO,IAAIqwC,YAAYrwC,EACzB,CAEA,SAASuwC,oBAAqB,CAZ9BF,YAAY9rE,UAAU6rD,QAAU,SAAU78B,GACxC,OAAIlgB,KAAK2sB,cAAcwwC,OAASn9D,KAAK2sB,cAAcwwC,MAAMj9C,EAAK88B,KACrDhsD,OAAOG,OAAO+uB,EAAMlgB,KAAK2sB,cAAcwwC,MAAMj9C,EAAK88B,KAAKtvC,GAGzDwS,CACT,EAQAg9C,kBAAkBhsE,UAAY,CAC5BksE,eAAgB,WAEdp9D,KAAKq9D,WAAY,EAEjBr9D,KAAKs9D,QAAS,EAEdt9D,KAAKu9D,eAAgB,EAErBv9D,KAAKw9D,qBAAuB,EAC9B,EACAC,uBAAwB,SAAgCC,IACA,IAAlD19D,KAAKw9D,qBAAqBh/D,QAAQk/D,IACpC19D,KAAKw9D,qBAAqBhoE,KAAKkoE,EAEnC,EACAC,0BAA2B,SAAmCD,IACN,IAAlD19D,KAAKw9D,qBAAqBh/D,QAAQk/D,IACpC19D,KAAKw9D,qBAAqBjjD,OAAOva,KAAKw9D,qBAAqBh/D,QAAQk/D,GAAY,EAEnF,EACAE,uBAAwB,SAAgCl/D,GACtDsB,KAAK69D,iBAAiBn/D,EACxB,EACAo/D,kBAAmB,WACb99D,KAAK+9D,eAAeC,MAAM/2D,EAAEtR,GAAK,GAC9BqK,KAAKu9D,eAAiBv9D,KAAKipC,WAAWg1B,aAAaC,oBACtDl+D,KAAKu9D,eAAgB,EACrBv9D,KAAK8sC,QAEE9sC,KAAKu9D,gBACdv9D,KAAKu9D,eAAgB,EACrBv9D,KAAK+sC,OAET,EAUA8wB,iBAAkB,SAA0Bn/D,GACtCsB,KAAKkgB,KAAKuf,GAAKz/B,KAAKkgB,KAAKyf,IAAMjhC,GAAOsB,KAAKkgB,KAAKwf,GAAK1/B,KAAKkgB,KAAKyf,GAAKjhC,GAC/C,IAAnBsB,KAAKq9D,YACPr9D,KAAKipC,WAAW2S,MAAO,EACvB57C,KAAK47C,MAAO,EACZ57C,KAAKq9D,WAAY,EACjBr9D,KAAK+sC,SAEqB,IAAnB/sC,KAAKq9D,YACdr9D,KAAKipC,WAAW2S,MAAO,EACvB57C,KAAKq9D,WAAY,EACjBr9D,KAAK8sC,OAET,EACAqxB,iBAAkB,WAChB,IAAI5oE,EACAqI,EAAMoC,KAAKw9D,qBAAqBrtE,OAEpC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKw9D,qBAAqBjoE,GAAGk2C,YAAYzrC,KAAKi8C,cAKlD,EACAmiB,iBAAkB,WAChB,MAAO,CACL9sC,IAAK,EACLpwB,KAAM,EACNjC,MAAO,IACPsyB,OAAQ,IAEZ,EACA8sC,aAAc,WACZ,OAAqB,IAAjBr+D,KAAKkgB,KAAK8d,GACL,CACLp8B,EAAG5B,KAAKkgB,KAAKo+C,SAASr/D,MACtBkR,EAAGnQ,KAAKkgB,KAAKo+C,SAAS/sC,QAInB,CACL3vB,EAAG5B,KAAKkgB,KAAKjhB,MACbkR,EAAGnQ,KAAKkgB,KAAKqR,OAEjB,GAGF,IAAIgtC,aAAe,WACjB,IAAIC,EAAiB,CACnB,EAAG,cACH,EAAG,WACH,EAAG,SACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,cACH,EAAG,aACH,EAAG,aACH,EAAG,aACH,GAAI,aACJ,GAAI,YACJ,GAAI,MACJ,GAAI,aACJ,GAAI,QACJ,GAAI,cAEN,OAAO,SAAUrtD,GACf,OAAOqtD,EAAertD,IAAS,EACjC,CACF,CAtBmB,GAwBnB,SAASstD,aAAav+C,EAAMxE,EAAMpiB,GAChC0G,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKvqB,EAAG,EAAG,EAAG2D,EACvD,CAEA,SAASolE,YAAYx+C,EAAMxE,EAAMpiB,GAC/B0G,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKvqB,EAAG,EAAG,EAAG2D,EACvD,CAEA,SAASqlE,YAAYz+C,EAAMxE,EAAMpiB,GAC/B0G,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKvqB,EAAG,EAAG,EAAG2D,EACvD,CAEA,SAASslE,YAAY1+C,EAAMxE,EAAMpiB,GAC/B0G,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKvqB,EAAG,EAAG,EAAG2D,EACvD,CAEA,SAASulE,iBAAiB3+C,EAAMxE,EAAMpiB,GACpC0G,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKvqB,EAAG,EAAG,EAAG2D,EACvD,CAEA,SAASwlE,gBAAgB5+C,EAAMxE,EAAMpiB,GACnC0G,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKvqB,EAAG,EAAG,EAAG2D,EACvD,CAEA,SAASylE,eAAe7+C,EAAMxE,EAAMpiB,GAClC0G,KAAK0N,EAAIovC,gBAAgBC,QAAQrhC,EAAMwE,EAAKvqB,EAAG,EAAG,EAAG2D,EACvD,CAEA,SAAS0lE,gBACPh/D,KAAK0N,EAAI,CAAC,CACZ,CAEA,SAASuxD,eAAe/+C,EAAMiZ,GAC5B,IAEI5jC,EAFA2pE,EAAUh/C,EAAKi/C,IAAM,GACzBn/D,KAAKo/D,eAAiB,GAEtB,IACIC,EADAzhE,EAAMshE,EAAQ/uE,OAGlB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB8pE,EAAa,IAAIC,YAAYJ,EAAQ3pE,GAAI4jC,GACzCn5B,KAAKo/D,eAAe5pE,KAAK6pE,EAE7B,CAEA,SAASC,YAAYp/C,EAAMiZ,GACzBn5B,KAAKwsC,KAAKtsB,EAAMiZ,EAClB,CA+DA,SAASomC,cAAe,CAkFxB,SAASC,eAAgB,CAiDzB,SAASC,eAAev/C,EAAM+oB,EAAY3K,GACxCt+B,KAAK82C,YACL92C,KAAKo9D,iBACLp9D,KAAKsjC,UAAY2F,EAAW4D,aAAa3sB,EAAKge,OAC9Cl+B,KAAKkkC,YAAc+E,EAAWy2B,YAAY76B,SAAS7kC,KAAKsjC,WACxDtjC,KAAK2/D,aAAaz/C,EAAM+oB,EAAY3K,EACtC,CA6BA,SAASshC,aAAa1/C,EAAM+oB,EAAY3K,GACtCt+B,KAAK82C,YACL92C,KAAKo9D,iBACLp9D,KAAKsjC,UAAY2F,EAAW4D,aAAa3sB,EAAKge,OAC9Cl+B,KAAK2/D,aAAaz/C,EAAM+oB,EAAY3K,GACpCt+B,KAAK6/D,YAAa,EAClB7/D,KAAK8/D,UAAW,EAChB,IAAIxpC,EAAYt2B,KAAKipC,WAAW5F,cAAcrjC,KAAKsjC,WACnDtjC,KAAKi2B,MAAQj2B,KAAKipC,WAAWR,gBAAgBpS,YAAYC,GACzDt2B,KAAK+/D,aAAe,EACpB//D,KAAKipC,WAAWR,gBAAgBzS,SAASh2B,MACzCA,KAAKggE,kBAAoB,EACzBhgE,KAAK81B,QAAU,EACf91B,KAAKigE,gBAAkB,KACvBjgE,KAAKumC,GAAKrmB,EAAKqmB,GAAKuW,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKqmB,GAAI,EAAG0C,EAAWrB,UAAW5nC,MAAQ,CAC1FkgE,cAAc,GAEhBlgE,KAAKmgE,GAAKrjB,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKkgD,IAAMlgD,EAAKkgD,GAAGD,GAAKjgD,EAAKkgD,GAAGD,GAAK,CAC3Er8D,EAAG,CAAC,MACH,EAAG,IAAM9D,KACd,CA0EA,SAASqgE,eAAgB,CAjUzBrrC,gBAAgB,CAACkoB,0BAA2BoiB,aAC5CA,YAAYpuE,UAAUurD,SAAW6iB,YAAYpuE,UAAUmsD,yBAEvDiiB,YAAYpuE,UAAUs7C,KAAO,SAAUtsB,EAAMiZ,GAI3C,IAAI5jC,EAHJyK,KAAKkgB,KAAOA,EACZlgB,KAAKo/D,eAAiB,GACtBp/D,KAAKs9C,6BAA6BnkB,GAElC,IACImnC,EADA1iE,EAAMoC,KAAKkgB,KAAKi/C,GAAGhvE,OAEnB+uE,EAAUl/D,KAAKkgB,KAAKi/C,GAExB,IAAK5pE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAG3B,OAFA+qE,EAAM,KAEEpB,EAAQ3pE,GAAGyoC,IACjB,KAAK,EACHsiC,EAAM,IAAI7B,aAAaS,EAAQ3pE,GAAI4jC,EAASn5B,MAC5C,MAEF,KAAK,EACHsgE,EAAM,IAAI5B,YAAYQ,EAAQ3pE,GAAI4jC,EAASn5B,MAC3C,MAEF,KAAK,EACHsgE,EAAM,IAAI3B,YAAYO,EAAQ3pE,GAAI4jC,EAASn5B,MAC3C,MAEF,KAAK,EACHsgE,EAAM,IAAI1B,YAAYM,EAAQ3pE,GAAI4jC,EAASn5B,MAC3C,MAEF,KAAK,EACL,KAAK,EACHsgE,EAAM,IAAIvB,eAAeG,EAAQ3pE,GAAI4jC,EAASn5B,MAC9C,MAEF,KAAK,GACHsgE,EAAM,IAAIzB,iBAAiBK,EAAQ3pE,GAAI4jC,EAASn5B,MAChD,MAEF,KAAK,GACHsgE,EAAM,IAAIxB,gBAAgBI,EAAQ3pE,GAAI4jC,EAASn5B,MAC/C,MAEF,KAAK,EACHsgE,EAAM,IAAIrB,eAAeC,EAAQ3pE,GAAI4jC,EAASn5B,MAC9C,MAGF,QACEsgE,EAAM,IAAItB,cAAcE,EAAQ3pE,GAAI4jC,EAASn5B,MAI7CsgE,GACFtgE,KAAKo/D,eAAe5pE,KAAK8qE,EAE7B,CACF,EAIAf,YAAYruE,UAAY,CACtBqvE,WAAY,WACV,IAAKvgE,KAAKkgB,KAAKyd,QACb,OAAO,EAMT,IAHA,IAAIpoC,EAAI,EACJqI,EAAMoC,KAAKkgB,KAAK2d,gBAAgB1tC,OAE7BoF,EAAIqI,GAAK,CACd,GAA0C,MAAtCoC,KAAKkgB,KAAK2d,gBAAgBtoC,GAAG4b,OAAoD,IAApCnR,KAAKkgB,KAAK2d,gBAAgBtoC,GAAG+qC,GAC5E,OAAO,EAGT/qC,GAAK,CACP,CAEA,OAAO,CACT,EACA40C,gBAAiB,WACf,IAAItS,EAAwB8D,0BAE5B,GAAK9D,EAAL,CAIA,IAAI2oC,EAA2B3oC,EAAsB,SACjD4oC,EAA6B5oC,EAAsB,WACnD6oC,EAA2B7oC,EAAsB,SACjD8oC,EAA0B9oC,EAAsB,QAChD+oC,EAA0B/oC,EAAsB,QACpD73B,KAAK6gE,eAAiBL,EAAyBxgE,MAE3CA,KAAKkgB,KAAKyd,SAAW39B,KAAK8gE,aAC5B9gE,KAAK6gE,eAAeE,sBAAsB/gE,KAAK8gE,aAGjD,IAAIE,EAAmBP,EAA2BQ,uBAAuBjhE,KAAMA,KAAK6gE,gBACpF7gE,KAAK6gE,eAAeK,yBAAyBF,GAExB,IAAjBhhE,KAAKkgB,KAAK8d,IAAYh+B,KAAKkgB,KAAKgnB,GAClClnC,KAAKonC,cAAgBw5B,EAAwB5gE,MACnB,IAAjBA,KAAKkgB,KAAK8d,IACnBh+B,KAAK6gE,eAAeM,eAAiBT,EAAyB1gE,KAAKohE,WAAYphE,KAAKqhE,UAAWrhE,KAAK6gE,gBACpG7gE,KAAK6gE,eAAeS,QAAUthE,KAAK6gE,eAAeM,gBACxB,IAAjBnhE,KAAKkgB,KAAK8d,KACnBh+B,KAAK6gE,eAAeU,cAAgBZ,EAAwB3gE,MAC5DA,KAAK6gE,eAAe/G,KAAO95D,KAAK6gE,eAAeU,cAvBjD,CAyBF,EACAC,aAAc,WACZ,IAAIC,EAAiBlD,aAAav+D,KAAKkgB,KAAKwhD,KACjC1hE,KAAK2hE,aAAe3hE,KAAK4hE,cAC/Bl1C,MAAM,kBAAoB+0C,CACjC,EACA9B,aAAc,SAAsBz/C,EAAM+oB,EAAY3K,GACpDt+B,KAAKipC,WAAaA,EAClBjpC,KAAKs+B,KAAOA,EACZt+B,KAAKkgB,KAAOA,EACZlgB,KAAK6hE,QAAUlnC,kBAEV36B,KAAKkgB,KAAK0f,KACb5/B,KAAKkgB,KAAK0f,GAAK,GAIjB5/B,KAAK8hE,eAAiB,IAAI7C,eAAej/D,KAAKkgB,KAAMlgB,KAAMA,KAAKm9C,kBACjE,EACA4kB,QAAS,WACP,OAAO/hE,KAAKwd,IACd,EACA4gD,iBAAkB,WAA6B,GAWjDoB,aAAatuE,UAAY,CAMvB4lD,UAAW,WAET92C,KAAKi8C,eAAgB,EAErBj8C,KAAKm9C,kBAAoB,GAEzBn9C,KAAK47C,MAAO,CACd,EAYAomB,kBAAmB,SAA2BtjE,EAAKujE,GACjD,IAAI1sE,EACAqI,EAAMoC,KAAKm9C,kBAAkBhtD,OAEjC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACpB0sE,GAAajiE,KAAKkiE,WAAoD,cAAvCliE,KAAKm9C,kBAAkB5nD,GAAG8hD,YAC3Dr3C,KAAKm9C,kBAAkB5nD,GAAGknD,WAEtBz8C,KAAKm9C,kBAAkB5nD,GAAGqmD,OAC5B57C,KAAKipC,WAAW2S,MAAO,EACvB57C,KAAK47C,MAAO,GAIpB,EACAU,mBAAoB,SAA4B/mB,IACA,IAA1Cv1B,KAAKm9C,kBAAkB3+C,QAAQ+2B,IACjCv1B,KAAKm9C,kBAAkB3nD,KAAK+/B,EAEhC,GAWFkqC,eAAevuE,UAAU+1C,aAAe,WAAa,EAErDjS,gBAAgB,CAACkoC,kBAAmBqC,YAAaC,cAAeC,gBAEhEA,eAAevuE,UAAUixE,eAAiB,WACxC,OAAO,IACT,EAEA1C,eAAevuE,UAAUu6C,YAAc,WAAa,EAEpDg0B,eAAevuE,UAAUy+B,QAAU,WAAa,EAEhD8vC,eAAevuE,UAAUi5C,gBAAkB,WACzC,IAAItS,EAAwB8D,0BAE5B,GAAK9D,EAAL,CAIA,IAAIuqC,EAAmBvqC,EAAsB,WAC7C73B,KAAK6gE,eAAiBuB,EAAiBpiE,KAHvC,CAIF,EAEAy/D,eAAevuE,UAAUmxE,eAAiB,WACxC,OAAOriE,KAAKkkC,WACd,EAwBA07B,aAAa1uE,UAAU+1C,aAAe,SAAUvoC,GAI9C,GAHAsB,KAAK49D,uBAAuBl/D,GAAK,GACjCsB,KAAKgiE,kBAAkBtjE,GAAK,GAEvBsB,KAAKumC,GAAG25B,aAIXlgE,KAAK+/D,aAAerhE,EAAMsB,KAAKkgB,KAAK0f,OAJX,CACzB,IAAI0iC,EAAetiE,KAAKumC,GAAG5wC,EAC3BqK,KAAK+/D,aAAeuC,CACtB,CAIAtiE,KAAK81B,QAAU91B,KAAKmgE,GAAGxqE,EAAE,GACzB,IAAI4sE,EAAcviE,KAAK81B,QAAU91B,KAAKggE,kBAElChgE,KAAKigE,kBAAoBsC,IAC3BviE,KAAKigE,gBAAkBsC,EACvBviE,KAAKi2B,MAAMiB,OAAOqrC,GAEtB,EAEAvtC,gBAAgB,CAACkoC,kBAAmBqC,YAAaC,cAAeI,cAEhEA,aAAa1uE,UAAUu6C,YAAc,WAC/BzrC,KAAKq9D,WAAar9D,KAAK8/D,WACpB9/D,KAAK6/D,aAIE7/D,KAAKi2B,MAAMS,WAAaxkC,KAAK+S,IAAIjF,KAAK+/D,aAAe//D,KAAKipC,WAAWrB,UAAY5nC,KAAKi2B,MAAMQ,QAAU,KAChHz2B,KAAKi2B,MAAMQ,KAAKz2B,KAAK+/D,aAAe//D,KAAKipC,WAAWrB,YAJpD5nC,KAAKi2B,MAAMxH,OACXzuB,KAAKi2B,MAAMQ,KAAKz2B,KAAK+/D,aAAe//D,KAAKipC,WAAWrB,WACpD5nC,KAAK6/D,YAAa,GAKxB,EAEAD,aAAa1uE,UAAU67C,KAAO,WAAa,EAG3C6yB,aAAa1uE,UAAU47C,KAAO,WAC5B9sC,KAAKi2B,MAAMrH,QACX5uB,KAAK6/D,YAAa,CACpB,EAEAD,aAAa1uE,UAAU09B,MAAQ,WAC7B5uB,KAAKi2B,MAAMrH,QACX5uB,KAAK6/D,YAAa,EAClB7/D,KAAK8/D,UAAW,CAClB,EAEAF,aAAa1uE,UAAUglC,OAAS,WAC9Bl2B,KAAK8/D,UAAW,CAClB,EAEAF,aAAa1uE,UAAUilC,QAAU,SAAUC,GACzCp2B,KAAKi2B,MAAMU,KAAKP,EAClB,EAEAwpC,aAAa1uE,UAAUgmC,OAAS,SAAUsrC,GACxCxiE,KAAKggE,kBAAoBwC,EACzBxiE,KAAKigE,gBAAkBuC,EAAcxiE,KAAK81B,QAC1C91B,KAAKi2B,MAAMiB,OAAOl3B,KAAKigE,gBACzB,EAEAL,aAAa1uE,UAAUixE,eAAiB,WACtC,OAAO,IACT,EAEAvC,aAAa1uE,UAAUy+B,QAAU,WAAa,EAE9CiwC,aAAa1uE,UAAUktE,iBAAmB,WAAa,EAEvDwB,aAAa1uE,UAAUi5C,gBAAkB,WAAa,EAItDk2B,aAAanvE,UAAUuxE,YAAc,SAAU/jE,GAC7C,IAAInJ,EAEA2qB,EADAtiB,EAAMoC,KAAKq9B,OAAOltC,OAItB,IAFA6P,KAAKo9B,gBAAiB,EAEjB7nC,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,EACxByK,KAAKw0D,SAASj/D,KACjB2qB,EAAOlgB,KAAKq9B,OAAO9nC,IAEVkqC,GAAKvf,EAAKyf,IAAMjhC,EAAMsB,KAAKq9B,OAAO9nC,GAAGoqC,IAAMzf,EAAKwf,GAAKxf,EAAKyf,GAAKjhC,EAAMsB,KAAKq9B,OAAO9nC,GAAGoqC,IAC3F3/B,KAAK0iE,UAAUntE,GAInByK,KAAKo9B,iBAAiBp9B,KAAKw0D,SAASj/D,IAAKyK,KAAKo9B,eAGhDp9B,KAAK2iE,sBACP,EAEAtC,aAAanvE,UAAU0xE,WAAa,SAAUC,GAC5C,OAAQA,EAAM7kC,IACZ,KAAK,EACH,OAAOh+B,KAAK8iE,YAAYD,GAE1B,KAAK,EACH,OAAO7iE,KAAK+iE,WAAWF,GAEzB,KAAK,EACH,OAAO7iE,KAAKgjE,YAAYH,GAE1B,KAAK,EAkBL,QACE,OAAO7iE,KAAKijE,WAAWJ,GAhBzB,KAAK,EACH,OAAO7iE,KAAKkjE,YAAYL,GAE1B,KAAK,EACH,OAAO7iE,KAAKmjE,WAAWN,GAEzB,KAAK,EACH,OAAO7iE,KAAKq2B,YAAYwsC,GAE1B,KAAK,GACH,OAAO7iE,KAAKojE,aAAaP,GAE3B,KAAK,GACH,OAAO7iE,KAAKqjE,cAAcR,GAKhC,EAEAxC,aAAanvE,UAAUkyE,aAAe,WACpC,MAAM,IAAIzxE,MAAM,mDAClB,EAEA0uE,aAAanvE,UAAUmlC,YAAc,SAAUnW,GAC7C,OAAO,IAAI0/C,aAAa1/C,EAAMlgB,KAAKipC,WAAYjpC,KACjD,EAEAqgE,aAAanvE,UAAUmyE,cAAgB,SAAUnjD,GAC/C,OAAO,IAAIu/C,eAAev/C,EAAMlgB,KAAKipC,WAAYjpC,KACnD,EAEAqgE,aAAanvE,UAAUoyE,cAAgB,WACrC,IAAI/tE,EACAqI,EAAMoC,KAAKq9B,OAAOltC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK0iE,UAAUntE,GAGjByK,KAAK2iE,sBACP,EAEAtC,aAAanvE,UAAU24C,cAAgB,SAAUC,GAE/C,IAAIv0C,EADJyK,KAAKo9B,gBAAiB,EAEtB,IACIriC,EADA6C,EAAMksC,EAAU35C,OAEhBqtC,EAAOx9B,KAAKq9B,OAAOltC,OAEvB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGxB,IAFAwF,EAAI,EAEGA,EAAIyiC,GAAM,CACf,GAAIx9B,KAAKq9B,OAAOtiC,GAAG0wB,KAAOqe,EAAUv0C,GAAGk2B,GAAI,CACzCzrB,KAAKq9B,OAAOtiC,GAAK+uC,EAAUv0C,GAC3B,KACF,CAEAwF,GAAK,CACP,CAEJ,EAEAslE,aAAanvE,UAAUi4C,oBAAsB,SAAUo6B,GACrDvjE,KAAKipC,WAAWV,iBAAmBg7B,CACrC,EAEAlD,aAAanvE,UAAUi6C,UAAY,WAC5BnrC,KAAKipC,WAAWu6B,iBACnBxjE,KAAKsjE,eAET,EAEAjD,aAAanvE,UAAUuyE,sBAAwB,SAAUtqC,EAASuqC,EAAYC,GAM5E,IALA,IAAInP,EAAWx0D,KAAKw0D,SAChBn3B,EAASr9B,KAAKq9B,OACd9nC,EAAI,EACJqI,EAAMy/B,EAAOltC,OAEVoF,EAAIqI,GACLy/B,EAAO9nC,GAAG6iD,KAAOsrB,IAEdlP,EAASj/D,KAAsB,IAAhBi/D,EAASj/D,IAI3BouE,EAAUnuE,KAAKg/D,EAASj/D,IACxBi/D,EAASj/D,GAAGquE,mBAEa7xE,IAArBsrC,EAAO9nC,GAAG0jE,OACZj5D,KAAKyjE,sBAAsBtqC,EAASkE,EAAO9nC,GAAG0jE,OAAQ0K,GAEtDxqC,EAAQ0qC,aAAaF,KATvB3jE,KAAK0iE,UAAUntE,GACfyK,KAAK8jE,kBAAkB3qC,KAa3B5jC,GAAK,CAET,EAEA8qE,aAAanvE,UAAU4yE,kBAAoB,SAAU3qC,GACnDn5B,KAAK+jE,gBAAgBvuE,KAAK2jC,EAC5B,EAEAknC,aAAanvE,UAAU25C,wBAA0B,SAAUxL,GACzD,IAAI9pC,EACAqI,EAAMyhC,EAAOlvC,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAI8pC,EAAO9pC,GAAG2xC,GAAI,CAChB,IAAI5I,EAAOt+B,KAAK+iE,WAAW1jC,EAAO9pC,IAClC+oC,EAAK6L,kBACLnqC,KAAKipC,WAAWV,iBAAiB1B,oBAAoBvI,EACvD,CAEJ,EAEA+hC,aAAanvE,UAAU8yE,eAAiB,SAAU5rB,GAChD,IAAI7iD,EACAqI,EAAMoC,KAAKw0D,SAASrkE,OAExB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAIyK,KAAKw0D,SAASj/D,GAAG2qB,KAAKk4B,MAAQA,EAChC,OAAOp4C,KAAKw0D,SAASj/D,GAIzB,OAAO,IACT,EAEA8qE,aAAanvE,UAAU+7C,iBAAmB,SAAUtQ,GAClD,IACIxD,EADA8qC,EAAYtnC,EAAKjmC,QAGrB,GAAyB,kBAAdutE,EACT9qC,EAAUn5B,KAAKw0D,SAASyP,OACnB,CACL,IAAI1uE,EACAqI,EAAMoC,KAAKw0D,SAASrkE,OAExB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAIyK,KAAKw0D,SAASj/D,GAAG2qB,KAAK8mB,KAAOi9B,EAAW,CAC1C9qC,EAAUn5B,KAAKw0D,SAASj/D,GACxB,KACF,CAEJ,CAEA,OAAoB,IAAhBonC,EAAKxsC,OACAgpC,EAGFA,EAAQ8T,iBAAiBtQ,EAClC,EAEA0jC,aAAanvE,UAAUgzE,gBAAkB,SAAUv5B,EAAUw5B,GAC3DnkE,KAAKipC,WAAWe,YAAc,IAAI2tB,YAClC33D,KAAKipC,WAAWgU,YAAcggB,YAAYtyB,GAC1C3qC,KAAKipC,WAAWe,YAAYC,SAASU,EAASpL,OAC9Cv/B,KAAKipC,WAAWe,YAAYE,SAASS,EAASZ,MAAOo6B,GACrDnkE,KAAKipC,WAAW4D,aAAe7sC,KAAKkxB,cAAc2b,aAAat1C,KAAKyI,KAAKkxB,eACzElxB,KAAKipC,WAAW5F,cAAgBrjC,KAAKkxB,cAAcmS,cAAc9rC,KAAKyI,KAAKkxB,eAC3ElxB,KAAKipC,WAAWy2B,YAAc1/D,KAAKkxB,cAAcsX,eACjDxoC,KAAKipC,WAAWR,gBAAkBzoC,KAAKkxB,cAAcuX,gBACrDzoC,KAAKipC,WAAW6S,QAAU,EAC1B97C,KAAKipC,WAAWrB,UAAY+C,EAASC,GACrC5qC,KAAKipC,WAAWjC,GAAK2D,EAAS3D,GAC9BhnC,KAAKipC,WAAWm7B,SAAW,CACzBxiE,EAAG+oC,EAAS/oC,EACZuO,EAAGw6B,EAASx6B,EAEhB,EAEA,IAAIk0D,YAAc,CAChBC,iBAAkB,mBAGpB,SAASC,mBAAoB,CA6J7B,SAASC,YAAYtkD,EAAMiZ,EAAS8P,GAClCjpC,KAAKkgB,KAAOA,EACZlgB,KAAKm5B,QAAUA,EACfn5B,KAAKipC,WAAaA,EAClBjpC,KAAK8zC,WAAa,GAClB9zC,KAAK69B,gBAAkB79B,KAAKkgB,KAAK2d,iBAAmB,GACpD79B,KAAKykE,YAAc,KACnB,IACIlvE,EAIAonC,EALAuM,EAAOlpC,KAAKipC,WAAWC,KAEvBtrC,EAAMoC,KAAK69B,gBAAkB79B,KAAK69B,gBAAgB1tC,OAAS,EAC/D6P,KAAK0kE,SAAWltC,iBAAiB55B,GACjCoC,KAAK2kE,UAAY,GAEjB,IAGI5pE,EACAyiC,EAEAonC,EACAC,EACAC,EACA9pE,EATA+pE,EAAa/kE,KAAK69B,gBAClBxoC,EAAQ,EACR2vE,EAAe,GAGfnD,EAAUlnC,kBAKVsqC,EAAW,WACXC,EAAU,YAEd,IAAK3vE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAkBxB,IAjB2B,MAAvBwvE,EAAWxvE,GAAG4b,MAAuC,MAAvB4zD,EAAWxvE,GAAG4b,MAAgB4zD,EAAWxvE,GAAGiiB,KAA6B,MAAtButD,EAAWxvE,GAAG0R,EAAEnD,GAAaihE,EAAWxvE,GAAG0R,EAAEjM,KAChIiqE,EAAW,OACXC,EAAU,QAGgB,MAAvBH,EAAWxvE,GAAG4b,MAAuC,MAAvB4zD,EAAWxvE,GAAG4b,MAA2B,IAAV9b,EAOhEuvE,EAAO,OANPA,EAAO5oC,SAAS,SACXsS,aAAa,OAAQ,WAC1Bs2B,EAAKt2B,aAAa,QAAStuC,KAAKm5B,QAAQmF,KAAKpe,KAAKte,GAAK,GACvDgjE,EAAKt2B,aAAa,SAAUtuC,KAAKm5B,QAAQmF,KAAKpe,KAAK/P,GAAK,GACxD60D,EAAaxvE,KAAKovE,IAKpBjoC,EAAOX,SAAS,QAEW,MAAvB+oC,EAAWxvE,GAAG4b,KAEhBnR,KAAK0kE,SAASnvE,GAAK,CACjBmqC,GAAIod,gBAAgBC,QAAQ/8C,KAAKm5B,QAAS4rC,EAAWxvE,GAAG0R,EAAG,EAAG,IAAMjH,KAAKm5B,SACzE5D,KAAM4pB,qBAAqBgmB,aAAanlE,KAAKm5B,QAAS4rC,EAAWxvE,GAAI,GACrEmmB,KAAMihB,EACNyoC,SAAU,IAEZl8B,EAAK9D,YAAYzI,OACZ,CAIL,IAAI0oC,EAgCJ,GAnCAhwE,GAAS,EACTsnC,EAAK2R,aAAa,OAA+B,MAAvBy2B,EAAWxvE,GAAG4b,KAAe,UAAY,WACnEwrB,EAAK2R,aAAa,YAAa,WAGL,IAAtBy2B,EAAWxvE,GAAGyF,EAAE8I,GAClBmhE,EAAW,OACXC,EAAU,OACVlqE,EAAI8hD,gBAAgBC,QAAQ/8C,KAAKm5B,QAAS4rC,EAAWxvE,GAAGyF,EAAG,EAAG,KAAMgF,KAAKm5B,SACzEksC,EAAW1qC,mBACXkqC,EAAW7oC,SAAS,WACXsS,aAAa,KAAM+2B,IAC5BP,EAAU9oC,SAAS,iBACXsS,aAAa,WAAY,SACjCw2B,EAAQx2B,aAAa,KAAM,iBAC3Bw2B,EAAQx2B,aAAa,SAAU,KAC/Bu2B,EAASz/B,YAAY0/B,GACrB57B,EAAK9D,YAAYy/B,GACjBloC,EAAK2R,aAAa,SAAiC,MAAvBy2B,EAAWxvE,GAAG4b,KAAe,UAAY,aAErE2zD,EAAU,KACV9pE,EAAI,MAINgF,KAAK8zC,WAAWv+C,GAAK,CACnBmmB,KAAMihB,EACN3hC,EAAGA,EACHsqE,MAAOR,EACPM,SAAU,GACVG,aAAc,GACdC,SAAUH,EACVI,WAAY,GAGa,MAAvBV,EAAWxvE,GAAG4b,KAAc,CAC9BqsB,EAAOwnC,EAAa70E,OACpB,IAAIoiB,EAAIypB,SAAS,KAEjB,IAAKjhC,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzBwX,EAAE6yB,YAAY4/B,EAAajqE,IAG7B,IAAIqV,EAAO4rB,SAAS,QACpB5rB,EAAKk+B,aAAa,YAAa,SAC/Bl+B,EAAKk+B,aAAa,KAAMuzB,EAAU,IAAMxsE,GACxC+a,EAAKg1B,YAAYzI,GACjBuM,EAAK9D,YAAYh1B,GACjBmC,EAAE+7B,aAAa,OAAQ,OAASxZ,kBAAoB,IAAM+sC,EAAU,IAAMxsE,EAAQ,KAClF2vE,EAAa70E,OAAS,EACtB60E,EAAaxvE,KAAK+c,EACpB,MACEyyD,EAAaxvE,KAAKmnC,GAGhBooC,EAAWxvE,GAAGiiB,MAAQxX,KAAK2kE,YAC7B3kE,KAAK2kE,UAAY3kE,KAAK0lE,wBAIxB1lE,KAAK0kE,SAASnvE,GAAK,CACjBmmB,KAAMihB,EACNyoC,SAAU,GACV1lC,GAAIod,gBAAgBC,QAAQ/8C,KAAKm5B,QAAS4rC,EAAWxvE,GAAG0R,EAAG,EAAG,IAAMjH,KAAKm5B,SACzE5D,KAAM4pB,qBAAqBgmB,aAAanlE,KAAKm5B,QAAS4rC,EAAWxvE,GAAI,GACrEowE,QAASf,GAGN5kE,KAAK0kE,SAASnvE,GAAGggC,KAAKzxB,GACzB9D,KAAK4lE,SAASb,EAAWxvE,GAAIyK,KAAK0kE,SAASnvE,GAAGggC,KAAK5/B,EAAGqK,KAAK0kE,SAASnvE,GAExE,CAMF,IAHAyK,KAAKykE,YAAczoC,SAASipC,GAC5BrnE,EAAMonE,EAAa70E,OAEdoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKykE,YAAYr/B,YAAY4/B,EAAazvE,IAGxCF,EAAQ,IACV2K,KAAKykE,YAAYn2B,aAAa,KAAMuzB,GACpC7hE,KAAKm5B,QAAQ0sC,cAAcv3B,aAAa42B,EAAS,OAASpwC,kBAAoB,IAAM+sC,EAAU,KAC9F34B,EAAK9D,YAAYplC,KAAKykE,cAGpBzkE,KAAK0kE,SAASv0E,QAChB6P,KAAKm5B,QAAQskC,uBAAuBz9D,KAExC,CA3SAukE,iBAAiBrzE,UAAY,CAC3B40E,cAAe,WACb,IAAIrZ,EAAM,IAAI/J,OACd1iD,KAAK+9D,eAAiB,CACpBC,MAAOh+D,KAAKkgB,KAAKue,GAAKotB,yBAAyBoB,qBAAqBjtD,KAAMA,KAAKkgB,KAAKue,GAAIz+B,MAAQ,CAC9FiH,EAAG,GAEL8+D,SAAS,EACTC,cAAc,EACdC,QAAQ,EACRxZ,IAAKA,EACLyZ,SAAUzZ,EACV0Z,aAAc,GAGZnmE,KAAKkgB,KAAKkmD,KACZpmE,KAAK+9D,eAAeC,MAAMpR,cAAe,GAIvC5sD,KAAKkgB,KAAK8d,EAEhB,EACAqoC,gBAAiB,WAIf,GAHArmE,KAAK+9D,eAAekI,OAASjmE,KAAK+9D,eAAeC,MAAM/2D,EAAE20C,MAAQ57C,KAAKi8C,cACtEj8C,KAAK+9D,eAAegI,QAAU/lE,KAAK+9D,eAAeC,MAAMpiB,MAAQ57C,KAAKi8C,cAEjEj8C,KAAK2jE,UAAW,CAClB,IAAIlX,EACA6Z,EAAWtmE,KAAK+9D,eAAetR,IAC/Bl3D,EAAI,EACJqI,EAAMoC,KAAK2jE,UAAUxzE,OAEzB,IAAK6P,KAAK+9D,eAAegI,QACvB,KAAOxwE,EAAIqI,GAAK,CACd,GAAIoC,KAAK2jE,UAAUpuE,GAAGwoE,eAAeC,MAAMpiB,KAAM,CAC/C57C,KAAK+9D,eAAegI,SAAU,EAC9B,KACF,CAEAxwE,GAAK,CACP,CAGF,GAAIyK,KAAK+9D,eAAegI,QAItB,IAHAtZ,EAAMzsD,KAAK+9D,eAAeC,MAAMroE,EAAE82B,MAClC65C,EAAStgB,eAAeyG,GAEnBl3D,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB+wE,EAAS5gB,SAAS1lD,KAAK2jE,UAAUpuE,GAAGwoE,eAAeC,MAAMroE,EAG/D,CAEIqK,KAAK+9D,eAAegI,UACtB/lE,KAAK+9D,eAAeiI,aAAehmE,KAAK+9D,eAAegI,SAGrD/lE,KAAK+9D,eAAekI,SACtBjmE,KAAK+9D,eAAeoI,aAAenmE,KAAK+9D,eAAeC,MAAM/2D,EAAEtR,EAEnE,EACA4wE,qBAAsB,WACpB,GAAIvmE,KAAKwmE,gBAAiB,CACxB,IAAIjxE,EAAI,EACJqI,EAAMoC,KAAKwmE,gBAAgBr2E,OAG/B,GAFA6P,KAAK+9D,eAAeiI,aAAehmE,KAAK+9D,eAAegI,SAElD/lE,KAAK+9D,eAAeiI,eAAiBhmE,KAAK+9D,eAAekI,OAC5D,KAAO1wE,EAAIqI,GACLoC,KAAKwmE,gBAAgBjxE,GAAGqmD,OAC1B57C,KAAK+9D,eAAeiI,cAAe,GAGjChmE,KAAKwmE,gBAAgBjxE,GAAG0wE,SAAWjmE,KAAK+9D,eAAekI,SACzDjmE,KAAK+9D,eAAeoI,aAAenmE,KAAK+9D,eAAeC,MAAM/2D,EAAEtR,EAC/DqK,KAAK+9D,eAAekI,QAAS,GAG/B1wE,GAAK,EAIT,GAAIyK,KAAK+9D,eAAeiI,aAAc,CACpC,IAAIE,EAAWlmE,KAAK+9D,eAAemI,SAGnC,IAFAlmE,KAAKwmE,gBAAgB,GAAG7gB,OAAOrjD,MAAM4jE,GAEhC3wE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAC3B,IAAIkxE,EAAOzmE,KAAKwmE,gBAAgBjxE,GAAGowD,OACnCugB,EAASxgB,SAAS+gB,EACpB,CAEAP,EAASxgB,SAAS1lD,KAAK+9D,eAAetR,IACxC,CAEA,GAAIzsD,KAAK+9D,eAAekI,OAAQ,CAC9B,IAAIS,EAAU1mE,KAAK+9D,eAAeoI,aAElC,IAAK5wE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBmxE,GAA6C,IAAlC1mE,KAAKwmE,gBAAgBjxE,GAAGoxE,QAGrC3mE,KAAK+9D,eAAeoI,aAAeO,CACrC,CACF,CACF,EACAE,uBAAwB,WACtB,GAAI5mE,KAAK6mE,yBAA0B,CACjC,IAAIC,EAAmB9mE,KAAK6mE,yBAAyBE,WAAW1C,YAAYC,kBAE5E,GAAIwC,EAAiB32E,OAAQ,CAC3B6P,KAAKwmE,gBAAkB,GACvBxmE,KAAK+9D,eAAemI,SAAW,IAAIxjB,OACnC,IAAIntD,EAAI,EACJqI,EAAMkpE,EAAiB32E,OAE3B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKwmE,gBAAgBhxE,KAAKsxE,EAAiBvxE,GAE/C,CACF,CACF,EACAyxE,cAAe,SAAuBlpC,GACpC,IAAImpC,EAAa,GACjBA,EAAWzxE,KAAKwK,KAAK+9D,gBAIrB,IAHA,IAeIxoE,EAfAo/B,GAAO,EACP2J,EAAOt+B,KAAKs+B,KAET3J,GACD2J,EAAKy/B,gBACHz/B,EAAKpe,KAAKyd,SACZspC,EAAW1sD,OAAO,EAAG,EAAG+jB,EAAKy/B,gBAG/Bz/B,EAAOA,EAAKA,MAEZ3J,GAAO,EAKX,IACIuyC,EADAtpE,EAAMqpE,EAAW92E,OAGrB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB2xE,EAAQD,EAAW1xE,GAAGk3D,IAAIhG,kBAAkB,EAAG,EAAG,GAElD3oB,EAAK,CAACA,EAAG,GAAKopC,EAAM,GAAIppC,EAAG,GAAKopC,EAAM,GAAI,GAG5C,OAAOppC,CACT,EACAqpC,QAAS,IAAIzkB,QAqJf8hB,YAAYtzE,UAAUk2E,gBAAkB,SAAUjjD,GAChD,OAAOnkB,KAAK0kE,SAASvgD,GAAKoR,IAC5B,EAEAivC,YAAYtzE,UAAUu6C,YAAc,SAAU47B,GAC5C,IACI9xE,EADA+wE,EAAWtmE,KAAKm5B,QAAQ4kC,eAAetR,IAEvC7uD,EAAMoC,KAAK69B,gBAAgB1tC,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EASxB,IARIyK,KAAK0kE,SAASnvE,GAAGggC,KAAKqmB,MAAQyrB,IAChCrnE,KAAK4lE,SAAS5lE,KAAK69B,gBAAgBtoC,GAAIyK,KAAK0kE,SAASnvE,GAAGggC,KAAK5/B,EAAGqK,KAAK0kE,SAASnvE,KAG5EyK,KAAK0kE,SAASnvE,GAAGmqC,GAAGkc,MAAQyrB,IAC9BrnE,KAAK0kE,SAASnvE,GAAGmmB,KAAK4yB,aAAa,eAAgBtuC,KAAK0kE,SAASnvE,GAAGmqC,GAAG/pC,GAGpC,MAAjCqK,KAAK69B,gBAAgBtoC,GAAG4b,OACtBnR,KAAK0kE,SAASnvE,GAAGowE,UAAY3lE,KAAKm5B,QAAQ4kC,eAAeC,MAAMpiB,MAAQyrB,IACzErnE,KAAK0kE,SAASnvE,GAAGowE,QAAQr3B,aAAa,YAAag4B,EAASjgB,mBAAmBiB,WAG7EtnD,KAAK8zC,WAAWv+C,GAAGyF,IAAMgF,KAAK8zC,WAAWv+C,GAAGyF,EAAE4gD,MAAQyrB,IAAe,CACvE,IAAIvC,EAAU9kE,KAAK8zC,WAAWv+C,GAAG+vE,MAE7BtlE,KAAK8zC,WAAWv+C,GAAGyF,EAAErF,EAAI,GACa,UAApCqK,KAAK8zC,WAAWv+C,GAAGgwE,eACrBvlE,KAAK8zC,WAAWv+C,GAAGgwE,aAAe,QAClCvlE,KAAK8zC,WAAWv+C,GAAGmmB,KAAK4yB,aAAa,SAAU,OAASxZ,kBAAoB,IAAM90B,KAAK8zC,WAAWv+C,GAAGiwE,SAAW,MAGlHV,EAAQx2B,aAAa,UAAWtuC,KAAK8zC,WAAWv+C,GAAGyF,EAAErF,KAEb,WAApCqK,KAAK8zC,WAAWv+C,GAAGgwE,eACrBvlE,KAAK8zC,WAAWv+C,GAAGgwE,aAAe,SAClCvlE,KAAK8zC,WAAWv+C,GAAGmmB,KAAK4yB,aAAa,SAAU,OAGjDtuC,KAAK8zC,WAAWv+C,GAAGmmB,KAAK4yB,aAAa,eAAyC,EAAzBtuC,KAAK8zC,WAAWv+C,GAAGyF,EAAErF,GAE9E,CAGN,EAEA6uE,YAAYtzE,UAAUo2E,eAAiB,WACrC,OAAOtnE,KAAKykE,WACd,EAEAD,YAAYtzE,UAAUw0E,qBAAuB,WAC3C,IAAI/oC,EAAO,QAKX,OAJAA,GAAQ,KAAO38B,KAAKipC,WAAWm7B,SAASxiE,EACxC+6B,GAAQ,KAAO38B,KAAKipC,WAAWm7B,SAASj0D,EACxCwsB,GAAQ,MAAQ38B,KAAKipC,WAAWm7B,SAASxiE,EACzC+6B,GAAQ,MAAQ38B,KAAKipC,WAAWm7B,SAASj0D,EAAI,GAE/C,EAEAq0D,YAAYtzE,UAAU00E,SAAW,SAAU5lC,EAAUunC,EAAW7C,GAC9D,IACInvE,EACAqI,EAFA4pE,EAAa,KAAOD,EAAU5xE,EAAE,GAAG,GAAK,IAAM4xE,EAAU5xE,EAAE,GAAG,GAKjE,IAFAiI,EAAM2pE,EAAU91B,QAEXl8C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAExBiyE,GAAc,KAAOD,EAAUtgE,EAAE1R,EAAI,GAAG,GAAK,IAAMgyE,EAAUtgE,EAAE1R,EAAI,GAAG,GAAK,IAAMgyE,EAAUhyE,EAAEA,GAAG,GAAK,IAAMgyE,EAAUhyE,EAAEA,GAAG,GAAK,IAAMgyE,EAAU5xE,EAAEJ,GAAG,GAAK,IAAMgyE,EAAU5xE,EAAEJ,GAAG,GAShL,GALIgyE,EAAU9mE,GAAK7C,EAAM,IACvB4pE,GAAc,KAAOD,EAAUtgE,EAAE1R,EAAI,GAAG,GAAK,IAAMgyE,EAAUtgE,EAAE1R,EAAI,GAAG,GAAK,IAAMgyE,EAAUhyE,EAAE,GAAG,GAAK,IAAMgyE,EAAUhyE,EAAE,GAAG,GAAK,IAAMgyE,EAAU5xE,EAAE,GAAG,GAAK,IAAM4xE,EAAU5xE,EAAE,GAAG,IAI5K+uE,EAASU,WAAaoC,EAAY,CACpC,IAAIC,EAAiB,GAEjB/C,EAAShpD,OACP6rD,EAAU9mE,IACZgnE,EAAiBznC,EAASxoB,IAAMxX,KAAK2kE,UAAY6C,EAAaA,GAGhE9C,EAAShpD,KAAK4yB,aAAa,IAAKm5B,IAGlC/C,EAASU,SAAWoC,CACtB,CACF,EAEAhD,YAAYtzE,UAAUy+B,QAAU,WAC9B3vB,KAAKm5B,QAAU,KACfn5B,KAAKipC,WAAa,KAClBjpC,KAAKykE,YAAc,KACnBzkE,KAAKkgB,KAAO,KACZlgB,KAAK69B,gBAAkB,IACzB,EAEA,IAAI6pC,eAAiB,WACnB,IAAIzjC,EAAK,CACTA,aAGA,SAAsB0jC,EAAOC,GAC3B,IAAIC,EAAM7rC,SAAS,UAWnB,OAVA6rC,EAAIv5B,aAAa,KAAMq5B,IAEC,IAApBC,IACFC,EAAIv5B,aAAa,cAAe,qBAChCu5B,EAAIv5B,aAAa,IAAK,MACtBu5B,EAAIv5B,aAAa,IAAK,MACtBu5B,EAAIv5B,aAAa,QAAS,QAC1Bu5B,EAAIv5B,aAAa,SAAU,SAGtBu5B,CACT,EAfA5jC,6BAiBA,WACE,IAAI6jC,EAAgB9rC,SAAS,iBAI7B,OAHA8rC,EAAcx5B,aAAa,OAAQ,UACnCw5B,EAAcx5B,aAAa,8BAA+B,QAC1Dw5B,EAAcx5B,aAAa,SAAU,8CAC9Bw5B,CACT,GAEA,OAAO7jC,CACT,CA7BqB,GA+BjB8jC,eAAiB,WACnB,IAAI9jC,EAAK,CACPghC,UAAU,EACV+C,eAAe,EACfC,gBAA4C,qBAApBrO,iBAW1B,OARI,WAAW5hC,KAAK3D,UAAU4D,YAAc,UAAUD,KAAK3D,UAAU4D,YAAc,WAAWD,KAAK3D,UAAU4D,YAAc,aAAaD,KAAK3D,UAAU4D,cACrJgM,EAAGghC,UAAW,GAGZ,WAAWjtC,KAAK3D,UAAU4D,aAC5BgM,EAAG+jC,eAAgB,GAGd/jC,CACT,CAhBqB,GAkBjBikC,oBAAsB,CAAC,EACvBC,SAAW,iBAEf,SAASC,WAAW1sD,GAClB,IAAInmB,EAOA8yE,EANA3sE,EAAS,gBACTkC,EAAM8d,EAAKwE,KAAKi/C,GAAKzjD,EAAKwE,KAAKi/C,GAAGhvE,OAAS,EAC3Cw3E,EAAQhtC,kBACRktC,EAAMH,eAAeY,aAAaX,GAAO,GACzCtyE,EAAQ,EAIZ,IAHA2K,KAAKuoE,QAAU,GAGVhzE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAC3B8yE,EAAgB,KAChB,IAAI7qD,EAAO9B,EAAKwE,KAAKi/C,GAAG5pE,GAAGyoC,GAEvBkqC,oBAAoB1qD,KAEtB6qD,EAAgB,IAAIG,EADPN,oBAAoB1qD,GAAMirD,QACZZ,EAAKnsD,EAAKomD,eAAe1C,eAAe7pE,GAAImmB,EAAMysD,SAAW9yE,EAAOqG,GAC/FA,EAASysE,SAAW9yE,EAEhB6yE,oBAAoB1qD,GAAMkrD,iBAC5BrzE,GAAS,IAITgzE,GACFroE,KAAKuoE,QAAQ/yE,KAAK6yE,EAEtB,CAEIhzE,IACFqmB,EAAKutB,WAAWC,KAAK9D,YAAYyiC,GACjCnsD,EAAKkmD,aAAatzB,aAAa,SAAU,OAASxZ,kBAAoB,IAAM6yC,EAAQ,MAGlF3nE,KAAKuoE,QAAQp4E,QACfurB,EAAK+hD,uBAAuBz9D,KAEhC,CAyBA,SAAS2oE,iBAAiBl9C,EAAIg9C,EAAQC,GACpCR,oBAAoBz8C,GAAM,CACxBg9C,OAAQA,EACRC,eAAgBA,EAEpB,CAEA,SAASE,iBAAkB,CA6L3B,SAASC,mBAAoB,CAgD7B,SAASC,uBAAwB,CAoEjC,SAASC,cAAc7oD,EAAM+oB,EAAY3K,GACvCt+B,KAAKsjC,UAAY2F,EAAW4D,aAAa3sB,EAAKge,OAE1Cl+B,KAAKsjC,WAAatjC,KAAKsjC,UAAU0Z,MACnCh9C,KAAKsjC,UAAY2F,EAAWgU,YAAYF,QAAQ/8C,KAAKsjC,YAGvDtjC,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,GACnCt+B,KAAKipE,WAAa,CAChB33C,IAAK,EACLpwB,KAAM,EACNjC,MAAOe,KAAKsjC,UAAU1hC,EACtB2vB,OAAQvxB,KAAKsjC,UAAUnzB,EAE3B,CAkBA,SAAS+4D,iBAAiB/vC,EAAS50B,GACjCvE,KAAK0b,KAAOyd,EACZn5B,KAAKmkB,IAAM5f,CACb,CAEA,SAAS4kE,gBAAiB,CApX1Bf,WAAWl3E,UAAUu6C,YAAc,SAAUwQ,GAC3C,IAAI1mD,EACAqI,EAAMoC,KAAKuoE,QAAQp4E,OAEvB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKuoE,QAAQhzE,GAAGk2C,YAAYwQ,EAEhC,EAEAmsB,WAAWl3E,UAAU61E,WAAa,SAAUvpD,GAC1C,IAAIjoB,EACAqI,EAAMoC,KAAKuoE,QAAQp4E,OACnB+uE,EAAU,GAEd,IAAK3pE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpByK,KAAKuoE,QAAQhzE,GAAGioB,OAASA,GAC3B0hD,EAAQ1pE,KAAKwK,KAAKuoE,QAAQhzE,IAI9B,OAAO2pE,CACT,EAWA0J,eAAe13E,UAAY,CACzBk4E,oBAAqB,WACnBppE,KAAK4hE,aAAe5lC,SAAS,IAC/B,EACAqtC,wBAAyB,WACvBrpE,KAAKspE,aAAettC,SAAS,KAC7Bh8B,KAAKupE,mBAAqBvpE,KAAK4hE,aAC/B5hE,KAAK6lE,cAAgB7lE,KAAK4hE,aAC1B5hE,KAAKwpE,cAAe,EACpB,IAAIC,EAAqB,KAEzB,GAAIzpE,KAAKkgB,KAAKwpD,GAAI,CAChB1pE,KAAK2pE,WAAa,CAAC,EACnB,IAAIC,EAAK5tC,SAAS,KAClB4tC,EAAGt7B,aAAa,KAAMtuC,KAAK6hE,SAC3B+H,EAAGxkC,YAAYplC,KAAK4hE,cACpB6H,EAAqBG,EACrB5pE,KAAKipC,WAAWC,KAAK9D,YAAYwkC,EACnC,MAAW5pE,KAAKkgB,KAAK2pD,IACnB7pE,KAAKspE,aAAalkC,YAAYplC,KAAK4hE,cACnC6H,EAAqBzpE,KAAKspE,aAC1BtpE,KAAK2hE,YAAc3hE,KAAKspE,cAExBtpE,KAAK2hE,YAAc3hE,KAAK4hE,aAY1B,GATI5hE,KAAKkgB,KAAK4pD,IACZ9pE,KAAK4hE,aAAatzB,aAAa,KAAMtuC,KAAKkgB,KAAK4pD,IAG7C9pE,KAAKkgB,KAAKogB,IACZtgC,KAAK4hE,aAAatzB,aAAa,QAAStuC,KAAKkgB,KAAKogB,IAI/B,IAAjBtgC,KAAKkgB,KAAK8d,KAAah+B,KAAKkgB,KAAK6pD,GAAI,CACvC,IAAIC,EAAKhuC,SAAS,YACd8B,EAAK9B,SAAS,QAClB8B,EAAGwQ,aAAa,IAAK,SAAWtuC,KAAKkgB,KAAKte,EAAI,OAAS5B,KAAKkgB,KAAKte,EAAI,IAAM5B,KAAKkgB,KAAK/P,EAAI,OAASnQ,KAAKkgB,KAAK/P,EAAI,KAChH,IAAI85D,EAAStvC,kBAKb,GAJAqvC,EAAG17B,aAAa,KAAM27B,GACtBD,EAAG5kC,YAAYtH,GACf99B,KAAKipC,WAAWC,KAAK9D,YAAY4kC,GAE7BhqE,KAAKugE,aAAc,CACrB,IAAI2J,EAAUluC,SAAS,KACvBkuC,EAAQ57B,aAAa,YAAa,OAASxZ,kBAAoB,IAAMm1C,EAAS,KAC9EC,EAAQ9kC,YAAYplC,KAAK4hE,cACzB5hE,KAAKupE,mBAAqBW,EAEtBT,EACFA,EAAmBrkC,YAAYplC,KAAKupE,oBAEpCvpE,KAAK2hE,YAAc3hE,KAAKupE,kBAE5B,MACEvpE,KAAK4hE,aAAatzB,aAAa,YAAa,OAASxZ,kBAAoB,IAAMm1C,EAAS,IAE5F,CAEqB,IAAjBjqE,KAAKkgB,KAAKwhD,IACZ1hE,KAAKwhE,cAET,EACA2I,cAAe,WACTnqE,KAAK+9D,eAAeiI,cACtBhmE,KAAKupE,mBAAmBj7B,aAAa,YAAatuC,KAAK+9D,eAAemI,SAAS5e,WAG7EtnD,KAAK+9D,eAAekI,QACtBjmE,KAAKupE,mBAAmBj7B,aAAa,UAAWtuC,KAAK+9D,eAAeoI,aAExE,EACAiE,mBAAoB,WAClBpqE,KAAK4hE,aAAe,KACpB5hE,KAAKspE,aAAe,KACpBtpE,KAAK8gE,YAAYnxC,SACnB,EACAwyC,eAAgB,WACd,OAAIniE,KAAKkgB,KAAK6pD,GACL,KAGF/pE,KAAK2hE,WACd,EACA0I,2BAA4B,WAC1BrqE,KAAK8gE,YAAc,IAAI0D,YAAYxkE,KAAKkgB,KAAMlgB,KAAMA,KAAKipC,YACzDjpC,KAAK6mE,yBAA2B,IAAIuB,WAAWpoE,MAC/CA,KAAK4mE,wBACP,EACA0D,SAAU,SAAkBC,GAQ1B,GAJKvqE,KAAK2pE,aACR3pE,KAAK2pE,WAAa,CAAC,IAGhB3pE,KAAK2pE,WAAWY,GAAY,CAC/B,IACI5C,EACAE,EACA2C,EACAZ,EAJAn+C,EAAKzrB,KAAK6hE,QAAU,IAAM0I,EAM9B,GAAkB,IAAdA,GAAiC,IAAdA,EAAiB,CACtC,IAAIE,EAASzuC,SAAS,QACtByuC,EAAOn8B,aAAa,KAAM7iB,GAC1Bg/C,EAAOn8B,aAAa,YAA2B,IAAdi8B,EAAkB,YAAc,UACjEC,EAAaxuC,SAAS,QACXiJ,eAAe,+BAAgC,OAAQ,IAAMjlC,KAAK6hE,SAC7E4I,EAAOrlC,YAAYolC,GACnBxqE,KAAKipC,WAAWC,KAAK9D,YAAYqlC,GAE5B1C,eAAe9C,UAA0B,IAAdsF,IAC9BE,EAAOn8B,aAAa,YAAa,aACjCq5B,EAAQhtC,kBACRktC,EAAMH,eAAeY,aAAaX,GAClC3nE,KAAKipC,WAAWC,KAAK9D,YAAYyiC,GACjCA,EAAIziC,YAAYsiC,eAAegD,iCAC/Bd,EAAK5tC,SAAS,MACXoJ,YAAYolC,GACfC,EAAOrlC,YAAYwkC,GACnBA,EAAGt7B,aAAa,SAAU,OAASxZ,kBAAoB,IAAM6yC,EAAQ,KAEzE,MAAO,GAAkB,IAAd4C,EAAiB,CAC1B,IAAII,EAAY3uC,SAAS,QACzB2uC,EAAUr8B,aAAa,KAAM7iB,GAC7Bk/C,EAAUr8B,aAAa,YAAa,SACpC,IAAIs8B,EAAc5uC,SAAS,KAC3B2uC,EAAUvlC,YAAYwlC,GACtBjD,EAAQhtC,kBACRktC,EAAMH,eAAeY,aAAaX,GAElC,IAAIkD,EAAQ7uC,SAAS,uBACrB6uC,EAAMv8B,aAAa,KAAM,iBACzBu5B,EAAIziC,YAAYylC,GAChB,IAAIC,EAAS9uC,SAAS,WACtB8uC,EAAOx8B,aAAa,OAAQ,SAC5Bw8B,EAAOx8B,aAAa,cAAe,WACnCu8B,EAAMzlC,YAAY0lC,GAElB9qE,KAAKipC,WAAWC,KAAK9D,YAAYyiC,GACjC,IAAIkD,EAAY/uC,SAAS,QACzB+uC,EAAUz8B,aAAa,QAAStuC,KAAKs+B,KAAKpe,KAAKte,GAC/CmpE,EAAUz8B,aAAa,SAAUtuC,KAAKs+B,KAAKpe,KAAK/P,GAChD46D,EAAUz8B,aAAa,IAAK,KAC5By8B,EAAUz8B,aAAa,IAAK,KAC5By8B,EAAUz8B,aAAa,OAAQ,WAC/By8B,EAAUz8B,aAAa,UAAW,KAClCs8B,EAAYt8B,aAAa,SAAU,OAASxZ,kBAAoB,IAAM6yC,EAAQ,KAC9EiD,EAAYxlC,YAAY2lC,IACxBP,EAAaxuC,SAAS,QACXiJ,eAAe,+BAAgC,OAAQ,IAAMjlC,KAAK6hE,SAC7E+I,EAAYxlC,YAAYolC,GAEnBzC,eAAe9C,WAClB0F,EAAUr8B,aAAa,YAAa,aACpCu5B,EAAIziC,YAAYsiC,eAAegD,gCAC/Bd,EAAK5tC,SAAS,KACd4uC,EAAYxlC,YAAY2lC,GACxBnB,EAAGxkC,YAAYplC,KAAK4hE,cACpBgJ,EAAYxlC,YAAYwkC,IAG1B5pE,KAAKipC,WAAWC,KAAK9D,YAAYulC,EACnC,CAEA3qE,KAAK2pE,WAAWY,GAAa9+C,CAC/B,CAEA,OAAOzrB,KAAK2pE,WAAWY,EACzB,EACAS,SAAU,SAAkBv/C,GACrBzrB,KAAKspE,cAIVtpE,KAAKspE,aAAah7B,aAAa,OAAQ,OAASxZ,kBAAoB,IAAMrJ,EAAK,IACjF,GAUFo9C,iBAAiB33E,UAAY,CAM3B+5E,cAAe,WAEbjrE,KAAK2jE,UAAY,GAEjB3jE,KAAKkiE,WAAY,EACjBliE,KAAKkrE,gBACP,EASArH,aAAc,SAAsBF,GAClC3jE,KAAK2jE,UAAYA,CACnB,EAOAC,YAAa,WACX5jE,KAAKkiE,WAAY,CACnB,EAOAgJ,eAAgB,gBACWn5E,IAArBiO,KAAKkgB,KAAK+4C,QACZj5D,KAAKs+B,KAAKmlC,sBAAsBzjE,KAAMA,KAAKkgB,KAAK+4C,OAAQ,GAE5D,GAoEAjkC,gBAAgB,CAACkoC,kBAAmB1nC,oBA9DnB,CACfwzC,YAAa,SAAqB9oD,EAAM+oB,EAAY3K,GAClDt+B,KAAK82C,YACL92C,KAAK2/D,aAAaz/C,EAAM+oB,EAAY3K,GACpCt+B,KAAK8lE,cAAc5lD,EAAM+oB,EAAY3K,GACrCt+B,KAAKirE,gBACLjrE,KAAKo9D,iBACLp9D,KAAKopE,sBACLppE,KAAKqpE,0BACLrpE,KAAKqqE,6BACLrqE,KAAKmrE,gBACLnrE,KAAK8sC,MACP,EACAA,KAAM,WAEC9sC,KAAKs9D,QAAYt9D,KAAKq9D,YAAar9D,KAAKu9D,iBAChCv9D,KAAK2hE,aAAe3hE,KAAK4hE,cAC/Bl1C,MAAM0M,QAAU,OACrBp5B,KAAKs9D,QAAS,EAElB,EACAvwB,KAAM,WAEA/sC,KAAKq9D,YAAcr9D,KAAKu9D,gBACrBv9D,KAAKkgB,KAAK6pD,MACF/pE,KAAK2hE,aAAe3hE,KAAK4hE,cAC/Bl1C,MAAM0M,QAAU,SAGvBp5B,KAAKs9D,QAAS,EACdt9D,KAAKi8C,eAAgB,EAEzB,EACAxQ,YAAa,WAGPzrC,KAAKkgB,KAAK6pD,IAAM/pE,KAAKs9D,SAIzBt9D,KAAKqmE,kBACLrmE,KAAKm+D,mBACLn+D,KAAKumE,uBACLvmE,KAAKmqE,gBACLnqE,KAAKorE,qBAEDprE,KAAKi8C,gBACPj8C,KAAKi8C,eAAgB,GAEzB,EACAmvB,mBAAoB,WAA+B,EACnDnkC,aAAc,SAAsBvoC,GAClCsB,KAAK47C,MAAO,EACZ57C,KAAK49D,uBAAuBl/D,GAC5BsB,KAAKgiE,kBAAkBtjE,EAAKsB,KAAKq9D,WACjCr9D,KAAK89D,mBACP,EACAnuC,QAAS,WACP3vB,KAAKqrE,UAAY,KACjBrrE,KAAKoqE,oBACP,KAEoEtB,sBAmBxE9zC,gBAAgB,CAACuqC,YAAagF,iBAAkBqE,eAAgBC,iBAAkBrJ,aAAcsJ,sBAAuBC,eAEvHA,cAAc73E,UAAUi6E,cAAgB,WACtC,IAAI70C,EAAYt2B,KAAKipC,WAAW5F,cAAcrjC,KAAKsjC,WACnDtjC,KAAKqrE,UAAYrvC,SAAS,SAC1Bh8B,KAAKqrE,UAAU/8B,aAAa,QAAStuC,KAAKsjC,UAAU1hC,EAAI,MACxD5B,KAAKqrE,UAAU/8B,aAAa,SAAUtuC,KAAKsjC,UAAUnzB,EAAI,MACzDnQ,KAAKqrE,UAAU/8B,aAAa,sBAAuBtuC,KAAKsjC,UAAUgoC,IAAMtrE,KAAKipC,WAAWg1B,aAAasN,0BACrGvrE,KAAKqrE,UAAUpmC,eAAe,+BAAgC,OAAQ3O,GACtEt2B,KAAK4hE,aAAax8B,YAAYplC,KAAKqrE,UACrC,EAEAtC,cAAc73E,UAAUktE,iBAAmB,WACzC,OAAOp+D,KAAKipE,UACd,EASAE,cAAcj4E,UAAY,CACxBs6E,oBAAqB,SAA6BtrD,GAChD,IAAI3qB,EACAqI,EAAMoC,KAAKyrE,eAAet7E,OAE9B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKyrE,eAAel2E,GAAGupD,SAAS5+B,EAEpC,EACAwrD,2BAA4B,SAAoCxrD,GAI9D,IAHA,IACItiB,EAAMoC,KAAKyrE,eAAet7E,OADtB,EAGGyN,GACT,GAAIoC,KAAKyrE,eAJH,GAIqBE,oBAAoBzrD,GAC7C,OAAO,EAIX,OAAO,CACT,EACA0rD,gBAAiB,WACf,GAAK5rE,KAAKyrE,eAAet7E,OAAzB,CAIA,IAAIoF,EACAqI,EAAMoC,KAAKo+B,OAAOjuC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKo+B,OAAO7oC,GAAG2jD,GAAGgH,QAMpB,IAAK3qD,GAHLqI,EAAMoC,KAAKyrE,eAAet7E,QAGX,EAAGoF,GAAK,IACAyK,KAAKyrE,eAAel2E,GAAGg1D,cAAcvqD,KAAKi8C,eADvC1mD,GAAK,GAZ/B,CAoBF,EACAs2E,uBAAwB,SAAgCnwD,GAKtD,IAJA,IAAI84C,EAAWx0D,KAAK8rE,kBAChBv2E,EAAI,EACJqI,EAAM42D,EAASrkE,OAEZoF,EAAIqI,GAAK,CACd,GAAI42D,EAASj/D,GAAGmmB,OAASA,EACvB,OAAO84C,EAASj/D,GAAG4uB,IAGrB5uB,GAAK,CACP,CAEA,OAAO,CACT,EACAw2E,oBAAqB,SAA6BrwD,EAAMyI,GAItD,IAHA,IAAIqwC,EAAWx0D,KAAK8rE,kBAChBv2E,EAAIi/D,EAASrkE,OAEVoF,GAGL,GAAIi/D,EAFJj/D,GAAK,GAEWmmB,OAASA,EAEvB,YADA84C,EAASj/D,GAAG4uB,IAAMA,GAKtBqwC,EAASh/D,KAAK,IAAI0zE,iBAAiBxtD,EAAMyI,GAC3C,EACA8iB,aAAc,SAAsBvoC,GAClCsB,KAAK49D,uBAAuBl/D,GAC5BsB,KAAKgiE,kBAAkBtjE,EAAKsB,KAAKq9D,UACnC,GAGF,IAAI2O,YAAc,CAChB,EAAG,OACH,EAAG,QACH,EAAG,UAEDC,aAAe,CACjB,EAAG,QACH,EAAG,QACH,EAAG,SAGL,SAASC,aAAaC,EAAcC,EAAOztB,GACzC3+C,KAAKqsE,OAAS,GACdrsE,KAAKozD,OAAS,GACdpzD,KAAKmsE,aAAeA,EACpBnsE,KAAKssE,KAAO,GACZtsE,KAAKk5C,GAAKyF,EACV3+C,KAAKusE,IAAMH,EAIXpsE,KAAKo9C,cAAgBuB,EAAM76C,EAK3B,IAHA,IAAIvO,EAAI,EACJqI,EAAMuuE,EAAah8E,OAEhBoF,EAAIqI,GAAK,CACd,GAAIuuE,EAAa52E,GAAGwgE,OAAO5Y,kBAAkBhtD,OAAQ,CACnD6P,KAAKo9C,aAAc,EACnB,KACF,CAEA7nD,GAAK,CACP,CACF,CAMA,SAASi3E,aAAatsD,EAAMksD,GAC1BpsE,KAAKkgB,KAAOA,EACZlgB,KAAKwd,KAAO0C,EAAK8d,GACjBh+B,KAAKyY,EAAI,GACTzY,KAAKusE,IAAMH,EACXpsE,KAAK47C,MAAO,EACZ57C,KAAKqgC,QAAqB,IAAZngB,EAAK6pD,GACnB/pE,KAAKysE,MAAQzwC,SAAS,QACtBh8B,KAAK0sE,OAAS,IAChB,CAOA,SAASC,aAAajxD,EAAMwE,EAAMwN,EAAUp0B,GAU1C,IAAI/D,EATJyK,KAAK0b,KAAOA,EACZ1b,KAAK87C,SAAW,EAChB97C,KAAK4sE,UAAYp1C,iBAAiBtX,EAAK/vB,QACvC6P,KAAK0tB,SAAWA,EAChB1tB,KAAK8D,GAAI,EACT9D,KAAK6sE,QAAU,GACf7sE,KAAK8sE,UAAY31C,iBAAiB,UAAWjX,EAAK/vB,OAAS+vB,EAAK/vB,OAAS,EAAI,GAC7E6P,KAAK+sE,WAAa51C,iBAAiB,UAAW,GAC9Cn3B,KAAKs9C,6BAA6BhkD,GAElC,IACIi8B,EADA33B,EAAMsiB,EAAK/vB,QAAU,EAGzB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBggC,EAAOunB,gBAAgBC,QAAQrhC,EAAMwE,EAAK3qB,GAAGI,EAAG,EAAG,EAAGqK,MACtDA,KAAK8D,EAAIyxB,EAAKzxB,GAAK9D,KAAK8D,EACxB9D,KAAK4sE,UAAUr3E,GAAK,CAClB4Y,EAAG+R,EAAK3qB,GAAG4Y,EACXT,EAAG6nB,GAIFv1B,KAAK8D,GACR9D,KAAKy8C,UAAS,GAGhBz8C,KAAKo9C,YAAcp9C,KAAK8D,CAC1B,CAmCA,SAASkpE,mBAAmBtxD,EAAMwE,EAAM+sD,GACtCjtE,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKy8C,SAAWz8C,KAAKq9C,yBACrBr9C,KAAKiH,EAAI61C,gBAAgBC,QAAQrhC,EAAMwE,EAAKjZ,EAAG,EAAG,IAAMjH,MACxDA,KAAK4B,EAAIk7C,gBAAgBC,QAAQrhC,EAAMwE,EAAKte,EAAG,EAAG,KAAM5B,MACxDA,KAAKyY,EAAI,IAAIk0D,aAAajxD,EAAMwE,EAAKzH,GAAK,CAAC,EAAG,MAAOzY,MACrDA,KAAKS,EAAIq8C,gBAAgBC,QAAQrhC,EAAMwE,EAAKzf,EAAG,EAAG,IAAKT,MACvDA,KAAK0sB,MAAQugD,EACbjtE,KAAKo9C,cAAgBp9C,KAAKo9C,WAC5B,CAIA,SAAS8vB,iBAAiBxxD,EAAMwE,EAAM+sD,GACpCjtE,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKy8C,SAAWz8C,KAAKq9C,yBACrBr9C,KAAKiH,EAAI61C,gBAAgBC,QAAQrhC,EAAMwE,EAAKjZ,EAAG,EAAG,IAAMjH,MACxDA,KAAKS,EAAIq8C,gBAAgBC,QAAQrhC,EAAMwE,EAAKzf,EAAG,EAAG,IAAKT,MACvDA,KAAK0sB,MAAQugD,CACf,CAIA,SAASE,eAAezxD,EAAMwE,EAAM+sD,GAClCjtE,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKy8C,SAAWz8C,KAAKq9C,yBACrBr9C,KAAK0sB,MAAQugD,CACf,CAIA,SAASG,iBAAiB1xD,EAAMwE,EAAM5mB,GACpC0G,KAAKkgB,KAAOA,EACZlgB,KAAKS,EAAI02B,iBAAiB,SAAmB,EAATjX,EAAKxS,GACzC,IAAI2/D,EAAUntD,EAAKpc,EAAEA,EAAE,GAAGsJ,EAAI8S,EAAKpc,EAAEA,EAAE,GAAGsJ,EAAEjd,OAAkB,EAAT+vB,EAAKxS,EAAQwS,EAAKpc,EAAEA,EAAE3T,OAAkB,EAAT+vB,EAAKxS,EACzF1N,KAAKiH,EAAIkwB,iBAAiB,UAAWk2C,GACrCrtE,KAAKstE,OAAQ,EACbttE,KAAKutE,OAAQ,EACbvtE,KAAKwtE,aAAextE,KAAKytE,mBACzBztE,KAAK0tE,YAAcL,EACnBrtE,KAAKs9C,6BAA6BhkD,GAClC0G,KAAKu1B,KAAOunB,gBAAgBC,QAAQrhC,EAAMwE,EAAKpc,EAAG,EAAG,KAAM9D,MAC3DA,KAAK8D,EAAI9D,KAAKu1B,KAAKzxB,EACnB9D,KAAKy8C,UAAS,EAChB,CAqFA,SAASkxB,yBAAyBjyD,EAAMwE,EAAM+sD,GAC5CjtE,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKy8C,SAAWz8C,KAAKq9C,yBACrBr9C,KAAK4tE,iBAAiBlyD,EAAMwE,EAAM+sD,EACpC,CAyFA,SAASY,2BAA2BnyD,EAAMwE,EAAM+sD,GAC9CjtE,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKy8C,SAAWz8C,KAAKq9C,yBACrBr9C,KAAK4B,EAAIk7C,gBAAgBC,QAAQrhC,EAAMwE,EAAKte,EAAG,EAAG,KAAM5B,MACxDA,KAAKyY,EAAI,IAAIk0D,aAAajxD,EAAMwE,EAAKzH,GAAK,CAAC,EAAG,MAAOzY,MACrDA,KAAK4tE,iBAAiBlyD,EAAMwE,EAAM+sD,GAClCjtE,KAAKo9C,cAAgBp9C,KAAKo9C,WAC5B,CAIA,SAAS0wB,iBACP9tE,KAAK0+B,GAAK,GACV1+B,KAAK+tE,aAAe,GACpB/tE,KAAKguE,GAAKhyC,SAAS,IACrB,CAEA,SAASiyC,iBAAiBlY,EAAQr2B,EAAIpmC,GACpC0G,KAAKmN,UAAY,CACf4oD,OAAQA,EACRr2B,GAAIA,EACJpmC,UAAWA,GAEb0G,KAAKw0D,SAAW,GAChBx0D,KAAKo9C,YAAcp9C,KAAKmN,UAAU4oD,OAAO5Y,kBAAkBhtD,QAAU6P,KAAKmN,UAAUuyB,GAAGqc,gBAAgB5rD,MACzG,CA1UA+7E,aAAah7E,UAAUw4D,cAAgB,WACrC1pD,KAAKo9C,aAAc,CACrB,EAaAovB,aAAat7E,UAAUgvD,MAAQ,WAC7BlgD,KAAKyY,EAAI,GACTzY,KAAK47C,MAAO,CACd,EAgCA+wB,aAAaz7E,UAAUurD,SAAW,SAAUiQ,GAC1C,IAAI1sD,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,SAAY4Q,KAItD1sD,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,QACpC97C,KAAKq9C,2BACLr9C,KAAK47C,KAAO57C,KAAK47C,MAAQ8Q,EAErB1sD,KAAK47C,MAAM,CACb,IAAIrmD,EAAI,EACJqI,EAAMoC,KAAK4sE,UAAUz8E,OAMzB,IAJsB,QAAlB6P,KAAK0tB,WACP1tB,KAAK6sE,QAAU,IAGZt3E,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACI,MAAxByK,KAAK4sE,UAAUr3E,GAAG4Y,EACE,QAAlBnO,KAAK0tB,SACP1tB,KAAK6sE,SAAW,IAAM7sE,KAAK4sE,UAAUr3E,GAAGmY,EAAE/X,EAE1CqK,KAAK8sE,UAAUv3E,GAAKyK,KAAK4sE,UAAUr3E,GAAGmY,EAAE/X,EAG1CqK,KAAK+sE,WAAW,GAAK/sE,KAAK4sE,UAAUr3E,GAAGmY,EAAE/X,CAG/C,CACF,EAEAq/B,gBAAgB,CAACkoB,0BAA2ByvB,cAa5C33C,gBAAgB,CAACkoB,0BAA2B8vB,oBAU5Ch4C,gBAAgB,CAACkoB,0BAA2BgwB,kBAQ5Cl4C,gBAAgB,CAACkoB,0BAA2BiwB,gBAiB5CC,iBAAiBl8E,UAAUg9E,cAAgB,SAAU78E,EAAQq+C,GAK3D,IAJA,IAAIn6C,EAAI,EACJqI,EAAMoC,KAAKiH,EAAE9W,OAAS,EAGnBoF,EAAIqI,GAAK,CAGd,GAFO1L,KAAK+S,IAAI5T,EAAW,EAAJkE,GAASlE,EAAgB,EAATq+C,EAAiB,EAAJn6C,IAEzC,IACT,OAAO,EAGTA,GAAK,CACP,CAEA,OAAO,CACT,EAEA63E,iBAAiBl8E,UAAUu8E,iBAAmB,WAC5C,GAAIztE,KAAKiH,EAAE9W,OAAS,IAAM6P,KAAKS,EAAEtQ,OAAS,EACxC,OAAO,EAGT,GAAI6P,KAAKkgB,KAAKpc,EAAEA,EAAE,GAAGsJ,EAInB,IAHA,IAAI7X,EAAI,EACJqI,EAAMoC,KAAKkgB,KAAKpc,EAAEA,EAAE3T,OAEjBoF,EAAIqI,GAAK,CACd,IAAKoC,KAAKkuE,cAAcluE,KAAKkgB,KAAKpc,EAAEA,EAAEvO,GAAG6X,EAAGpN,KAAKkgB,KAAKxS,GACpD,OAAO,EAGTnY,GAAK,CACP,MACK,IAAKyK,KAAKkuE,cAAcluE,KAAKkgB,KAAKpc,EAAEA,EAAG9D,KAAKkgB,KAAKxS,GACtD,OAAO,EAGT,OAAO,CACT,EAEA0/D,iBAAiBl8E,UAAUurD,SAAW,SAAUiQ,GAM9C,GALA1sD,KAAKu1B,KAAKknB,WACVz8C,KAAK47C,MAAO,EACZ57C,KAAKstE,OAAQ,EACbttE,KAAKutE,OAAQ,EAETvtE,KAAKu1B,KAAKqmB,MAAQ8Q,EAAa,CACjC,IAAIn3D,EAEAomD,EACAv8C,EAFAxB,EAAoB,EAAdoC,KAAKkgB,KAAKxS,EAIpB,IAAKnY,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBomD,EAAOpmD,EAAI,IAAM,EAAI,IAAM,IAC3B6J,EAAMlN,KAAKuc,MAAMzO,KAAKu1B,KAAK5/B,EAAEJ,GAAKomD,GAE9B37C,KAAKS,EAAElL,KAAO6J,IAChBY,KAAKS,EAAElL,GAAK6J,EACZY,KAAKstE,OAAS5gB,GAIlB,GAAI1sD,KAAKiH,EAAE9W,OAGT,IAFAyN,EAAMoC,KAAKu1B,KAAK5/B,EAAExF,OAEboF,EAAkB,EAAdyK,KAAKkgB,KAAKxS,EAAOnY,EAAIqI,EAAKrI,GAAK,EACtComD,EAAOpmD,EAAI,IAAM,EAAI,IAAM,EAC3B6J,EAAM7J,EAAI,IAAM,EAAIrD,KAAKuc,MAAuB,IAAjBzO,KAAKu1B,KAAK5/B,EAAEJ,IAAYyK,KAAKu1B,KAAK5/B,EAAEJ,GAE/DyK,KAAKiH,EAAE1R,EAAkB,EAAdyK,KAAKkgB,KAAKxS,KAAWtO,IAClCY,KAAKiH,EAAE1R,EAAkB,EAAdyK,KAAKkgB,KAAKxS,GAAStO,EAC9BY,KAAKutE,OAAS7gB,GAKpB1sD,KAAK47C,MAAQ8Q,CACf,CACF,EAEA13B,gBAAgB,CAACkoB,0BAA2BkwB,kBAQ5CO,yBAAyBz8E,UAAU08E,iBAAmB,SAAUlyD,EAAMwE,EAAM+sD,GAC1EjtE,KAAKiH,EAAI61C,gBAAgBC,QAAQrhC,EAAMwE,EAAKjZ,EAAG,EAAG,IAAMjH,MACxDA,KAAKoN,EAAI0vC,gBAAgBC,QAAQrhC,EAAMwE,EAAK9S,EAAG,EAAG,KAAMpN,MACxDA,KAAK7J,EAAI2mD,gBAAgBC,QAAQrhC,EAAMwE,EAAK/pB,EAAG,EAAG,KAAM6J,MACxDA,KAAKmQ,EAAI2sC,gBAAgBC,QAAQrhC,EAAMwE,EAAK/P,GAAK,CAC/CrM,EAAG,GACF,EAAG,IAAM9D,MACZA,KAAK6D,EAAIi5C,gBAAgBC,QAAQrhC,EAAMwE,EAAKrc,GAAK,CAC/CC,EAAG,GACF,EAAGg1B,UAAW94B,MACjBA,KAAKuS,EAAI,IAAI66D,iBAAiB1xD,EAAMwE,EAAK3N,EAAGvS,MAC5CA,KAAK0sB,MAAQugD,EACbjtE,KAAKmuE,MAAQ,GACbnuE,KAAKouE,gBAAgBnB,EAAQR,MAAOvsD,GACpClgB,KAAKquE,mBAAmBnuD,EAAM+sD,GAC9BjtE,KAAKo9C,cAAgBp9C,KAAKo9C,WAC5B,EAEAuwB,yBAAyBz8E,UAAUk9E,gBAAkB,SAAUE,EAAapuD,GAC1E,IAAIquD,EAAa5zC,kBACb6zC,EAAQxyC,SAAoB,IAAX9b,EAAKvb,EAAU,iBAAmB,kBACvD6pE,EAAMlgC,aAAa,KAAMigC,GACzBC,EAAMlgC,aAAa,eAAgB,OACnCkgC,EAAMlgC,aAAa,gBAAiB,kBACpC,IACI3f,EACA5zB,EACAyiC,EAHA2wC,EAAQ,GAMZ,IAFA3wC,EAAkB,EAAXtd,EAAK3N,EAAE7E,EAET3S,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB4zB,EAAOqN,SAAS,QAChBwyC,EAAMppC,YAAYzW,GAClBw/C,EAAM34E,KAAKm5B,GAGb2/C,EAAYhgC,aAAyB,OAAZpuB,EAAK8d,GAAc,OAAS,SAAU,OAASlJ,kBAAoB,IAAMy5C,EAAa,KAC/GvuE,KAAKyuE,GAAKD,EACVxuE,KAAK0uE,IAAMP,CACb,EAEAR,yBAAyBz8E,UAAUm9E,mBAAqB,SAAUnuD,EAAM+sD,GACtE,GAAIjtE,KAAKuS,EAAEm7D,cAAgB1tE,KAAKuS,EAAEi7D,aAAc,CAC9C,IAAI7+C,EACA5zB,EACAyiC,EACAptB,EAAO4rB,SAAS,QAChByoC,EAAczoC,SAAS,QAC3B5rB,EAAKg1B,YAAYq/B,GACjB,IAAIkK,EAAYh0C,kBACZi0C,EAASj0C,kBACbvqB,EAAKk+B,aAAa,KAAMsgC,GACxB,IAAIC,EAAS7yC,SAAoB,IAAX9b,EAAKvb,EAAU,iBAAmB,kBACxDkqE,EAAOvgC,aAAa,KAAMqgC,GAC1BE,EAAOvgC,aAAa,eAAgB,OACpCugC,EAAOvgC,aAAa,gBAAiB,kBACrC9Q,EAAOtd,EAAK3N,EAAEzO,EAAEA,EAAE,GAAGsJ,EAAI8S,EAAK3N,EAAEzO,EAAEA,EAAE,GAAGsJ,EAAEjd,OAAS+vB,EAAK3N,EAAEzO,EAAEA,EAAE3T,OAC7D,IAAIg+E,EAAQnuE,KAAKmuE,MAEjB,IAAKpzE,EAAe,EAAXmlB,EAAK3N,EAAE7E,EAAO3S,EAAIyiC,EAAMziC,GAAK,GACpC4zB,EAAOqN,SAAS,SACXsS,aAAa,aAAc,oBAChCugC,EAAOzpC,YAAYzW,GACnBw/C,EAAM34E,KAAKm5B,GAGb81C,EAAYn2B,aAAyB,OAAZpuB,EAAK8d,GAAc,OAAS,SAAU,OAASlJ,kBAAoB,IAAM65C,EAAY,KAE9F,OAAZzuD,EAAK8d,KACPymC,EAAYn2B,aAAa,iBAAkB09B,YAAY9rD,EAAK4uD,IAAM,IAClErK,EAAYn2B,aAAa,kBAAmB29B,aAAa/rD,EAAKo3C,IAAM,IAEpD,IAAZp3C,EAAKo3C,IACPmN,EAAYn2B,aAAa,oBAAqBpuB,EAAKm3C,KAIvDr3D,KAAK+uE,GAAKF,EACV7uE,KAAKgvE,GAAK5+D,EACVpQ,KAAKivE,IAAMd,EACXnuE,KAAK4uE,OAASA,EACd3B,EAAQP,OAASjI,CACnB,CACF,EAEAzvC,gBAAgB,CAACkoB,0BAA2BywB,0BAW5C34C,gBAAgB,CAAC24C,yBAA0BzwB,0BAA2B2wB,4BAkBtE,IAAIqB,iBAAmB,SAA0B3H,EAAWp3E,EAAQkwC,EAAQosB,GAC1E,GAAe,IAAXt8D,EACF,MAAO,GAGT,IAGIoF,EAHA45E,EAAK5H,EAAUtgE,EACfmoE,EAAK7H,EAAUhyE,EACfqrD,EAAK2mB,EAAU5xE,EAEf05E,EAAc,KAAO5iB,EAAIvF,wBAAwBtG,EAAG,GAAG,GAAIA,EAAG,GAAG,IAErE,IAAKrrD,EAAI,EAAGA,EAAIpF,EAAQoF,GAAK,EAC3B85E,GAAe,KAAO5iB,EAAIvF,wBAAwBioB,EAAG55E,EAAI,GAAG,GAAI45E,EAAG55E,EAAI,GAAG,IAAM,IAAMk3D,EAAIvF,wBAAwBkoB,EAAG75E,GAAG,GAAI65E,EAAG75E,GAAG,IAAM,IAAMk3D,EAAIvF,wBAAwBtG,EAAGrrD,GAAG,GAAIqrD,EAAGrrD,GAAG,IAQ5L,OALI8qC,GAAUlwC,IACZk/E,GAAe,KAAO5iB,EAAIvF,wBAAwBioB,EAAG55E,EAAI,GAAG,GAAI45E,EAAG55E,EAAI,GAAG,IAAM,IAAMk3D,EAAIvF,wBAAwBkoB,EAAG,GAAG,GAAIA,EAAG,GAAG,IAAM,IAAM3iB,EAAIvF,wBAAwBtG,EAAG,GAAG,GAAIA,EAAG,GAAG,IAC1LyuB,GAAe,KAGVA,CACT,EAEIC,oBAAsB,WACxB,IAAIC,EAAkB,IAAI7sB,OAEtB8sB,EAAgB,IAAI9sB,OAqCxB,SAAS+sB,EAAuBC,EAAWC,EAAUtI,IAC/CA,GAAgBsI,EAASxiE,UAAUuyB,GAAGkc,OACxC+zB,EAASxiE,UAAU7T,UAAUg1C,aAAa,UAAWqhC,EAASxiE,UAAUuyB,GAAG/pC,IAGzE0xE,GAAgBsI,EAASxiE,UAAU4oD,OAAOna,OAC5C+zB,EAASxiE,UAAU7T,UAAUg1C,aAAa,YAAaqhC,EAASxiE,UAAU4oD,OAAOpgE,EAAE2xD,UAEvF,CAEA,SAASsoB,IAAc,CAEvB,SAASC,EAAWH,EAAWC,EAAUtI,GACvC,IAAItsE,EACAyiC,EACAsyC,EACAC,EACAxI,EACA76D,EAGAkzC,EACA6M,EACAujB,EACAlsE,EALAmsE,EAAON,EAASvc,OAAOjjE,OACvBo8E,EAAMoD,EAASpD,IAMnB,IAAK7/D,EAAI,EAAGA,EAAIujE,EAAMvjE,GAAK,EAAG,CAG5B,GAFAqjE,EAASJ,EAASz2B,GAAG0C,MAAQyrB,EAEzBsI,EAASvc,OAAO1mD,GAAG6/D,IAAMA,EAAK,CAKhC,IAJA9f,EAAM+iB,EAActvB,QACpB8vB,EAAazD,EAAMoD,EAASvc,OAAO1mD,GAAG6/D,IACtCzoE,EAAI6rE,EAASxD,aAAah8E,OAAS,GAE3B4/E,GAAUC,EAAa,GAC7BD,EAASJ,EAASxD,aAAaroE,GAAGiyD,OAAOna,MAAQm0B,EACjDC,GAAc,EACdlsE,GAAK,EAGP,GAAIisE,EAIF,IAHAC,EAAazD,EAAMoD,EAASvc,OAAO1mD,GAAG6/D,IACtCzoE,EAAI6rE,EAASxD,aAAah8E,OAAS,EAE5B6/E,EAAa,GAClBvjB,EAAI/G,SAASiqB,EAASxD,aAAaroE,GAAGiyD,OAAOpgE,GAC7Cq6E,GAAc,EACdlsE,GAAK,CAGX,MACE2oD,EAAM8iB,EAMR,GAFA/xC,GADAoiB,EAAQ+vB,EAASz2B,GAAG0G,OACPnO,QAETs+B,EAAQ,CAGV,IAFAD,EAAwB,GAEnB/0E,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,GACzBwsE,EAAY3nB,EAAMxhB,OAAOrjC,KAERwsE,EAAU91B,UACzBq+B,GAAyBZ,iBAAiB3H,EAAWA,EAAU91B,QAAS81B,EAAU9mE,EAAGgsD,IAIzFkjB,EAAStD,OAAO3/D,GAAKojE,CACvB,MACEA,EAAwBH,EAAStD,OAAO3/D,GAG1CijE,EAASvc,OAAO1mD,GAAG+L,IAAsB,IAAjBi3D,EAAU3F,GAAc,GAAK+F,EACrDH,EAASvc,OAAO1mD,GAAGkvC,KAAOm0B,GAAUJ,EAASvc,OAAO1mD,GAAGkvC,IACzD,CACF,CAEA,SAASs0B,EAAWR,EAAWC,EAAUtI,GACvC,IAAI8I,EAAYR,EAASjjD,OAErBijD,EAASlvE,EAAEm7C,MAAQyrB,IACrB8I,EAAU1D,MAAMn+B,aAAa,OAAQ,OAASjW,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,MAGzIg6E,EAAS1oE,EAAE20C,MAAQyrB,IACrB8I,EAAU1D,MAAMn+B,aAAa,eAAgBqhC,EAAS1oE,EAAEtR,EAE5D,CAEA,SAASy6E,EAAqBV,EAAWC,EAAUtI,GACjDgJ,EAAeX,EAAWC,EAAUtI,GACpCiJ,EAAaZ,EAAWC,EAAUtI,EACpC,CAEA,SAASgJ,EAAeX,EAAWC,EAAUtI,GAC3C,IAsBI8G,EACA54E,EACAqI,EACA+wB,EA+CE2yB,EAxEFktB,EAAQmB,EAASlB,GACjB8B,EAAaZ,EAASp9D,EAAEm7D,YACxB76B,EAAM88B,EAASviE,EAAEzX,EACjBm9C,EAAM68B,EAASx5E,EAAER,EAErB,GAAIg6E,EAAS1oE,EAAE20C,MAAQyrB,EAAc,CACnC,IAAIjyC,EAAwB,OAAjBs6C,EAAU1xC,GAAc,eAAiB,iBACpD2xC,EAASjjD,MAAM+/C,MAAMn+B,aAAalZ,EAAMu6C,EAAS1oE,EAAEtR,EACrD,CAEA,GAAIg6E,EAASviE,EAAEwuC,MAAQyrB,EAAc,CACnC,IAAImJ,EAAwB,IAAhBd,EAAU/qE,EAAU,KAAO,KACnC8rE,EAAkB,OAAVD,EAAiB,KAAO,KACpChC,EAAMlgC,aAAakiC,EAAO39B,EAAI,IAC9B27B,EAAMlgC,aAAamiC,EAAO59B,EAAI,IAE1B09B,IAAeZ,EAASp9D,EAAEi7D,eAC5BmC,EAASZ,GAAGzgC,aAAakiC,EAAO39B,EAAI,IACpC88B,EAASZ,GAAGzgC,aAAamiC,EAAO59B,EAAI,IAExC,CAOA,GAAI88B,EAASp9D,EAAE+6D,OAASjG,EAAc,CACpC8G,EAAQwB,EAASjB,IACjB,IAAIgC,EAAUf,EAASp9D,EAAE9R,EAGzB,IAFA7C,EAAMuwE,EAAMh+E,OAEPoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACxBo5B,EAAOw/C,EAAM54E,IACR+4C,aAAa,SAAUoiC,EAAY,EAAJn7E,GAAS,KAC7Co5B,EAAK2f,aAAa,aAAc,OAASoiC,EAAY,EAAJn7E,EAAQ,GAAK,IAAMm7E,EAAY,EAAJn7E,EAAQ,GAAK,IAAMm7E,EAAY,EAAJn7E,EAAQ,GAAK,IAExH,CAEA,GAAIg7E,IAAeZ,EAASp9D,EAAEg7D,OAASlG,GAAe,CACpD,IAAIsJ,EAAUhB,EAASp9D,EAAEtL,EAUzB,IAFArJ,GALEuwE,EADEwB,EAASp9D,EAAEi7D,aACLmC,EAASjB,IAETiB,EAASV,KAGP9+E,OAEPoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBo5B,EAAOw/C,EAAM54E,GAERo6E,EAASp9D,EAAEi7D,cACd7+C,EAAK2f,aAAa,SAAUqiC,EAAY,EAAJp7E,GAAS,KAG/Co5B,EAAK2f,aAAa,eAAgBqiC,EAAY,EAAJp7E,EAAQ,GAEtD,CAEA,GAAoB,IAAhBm6E,EAAU/qE,GACRgrE,EAASx5E,EAAEylD,MAAQyrB,KACrBmH,EAAMlgC,aAAa,KAAMwE,EAAI,IAC7B07B,EAAMlgC,aAAa,KAAMwE,EAAI,IAEzBy9B,IAAeZ,EAASp9D,EAAEi7D,eAC5BmC,EAASZ,GAAGzgC,aAAa,KAAMwE,EAAI,IACnC68B,EAASZ,GAAGzgC,aAAa,KAAMwE,EAAI,WAevC,IATI68B,EAASviE,EAAEwuC,MAAQ+zB,EAASx5E,EAAEylD,MAAQyrB,KACxC/lB,EAAMpvD,KAAKojB,KAAKpjB,KAAKmB,IAAIw/C,EAAI,GAAKC,EAAI,GAAI,GAAK5gD,KAAKmB,IAAIw/C,EAAI,GAAKC,EAAI,GAAI,IACzE07B,EAAMlgC,aAAa,IAAKgT,GAEpBivB,IAAeZ,EAASp9D,EAAEi7D,cAC5BmC,EAASZ,GAAGzgC,aAAa,IAAKgT,IAI9BquB,EAASx5E,EAAEylD,MAAQ+zB,EAASx/D,EAAEyrC,MAAQ+zB,EAAS9rE,EAAE+3C,MAAQyrB,EAAc,CACpE/lB,IACHA,EAAMpvD,KAAKojB,KAAKpjB,KAAKmB,IAAIw/C,EAAI,GAAKC,EAAI,GAAI,GAAK5gD,KAAKmB,IAAIw/C,EAAI,GAAKC,EAAI,GAAI,KAG3E,IAAI89B,EAAM1+E,KAAKwoD,MAAM5H,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IAC/CuD,EAAUu5B,EAASx/D,EAAExa,EAErBygD,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAIib,EAAO/P,EAAMlL,EACbp7C,EAAI9I,KAAKob,IAAIsjE,EAAMjB,EAAS9rE,EAAElO,GAAK07D,EAAOxe,EAAI,GAC9CvmC,EAAIpa,KAAKub,IAAImjE,EAAMjB,EAAS9rE,EAAElO,GAAK07D,EAAOxe,EAAI,GAClD27B,EAAMlgC,aAAa,KAAMtzC,GACzBwzE,EAAMlgC,aAAa,KAAMhiC,GAErBikE,IAAeZ,EAASp9D,EAAEi7D,eAC5BmC,EAASZ,GAAGzgC,aAAa,KAAMtzC,GAC/B20E,EAASZ,GAAGzgC,aAAa,KAAMhiC,GAEnC,CAGJ,CAEA,SAASgkE,EAAaZ,EAAWC,EAAUtI,GACzC,IAAI8I,EAAYR,EAASjjD,MACrBjU,EAAIk3D,EAASl3D,EAEbA,IAAMA,EAAEmjC,MAAQyrB,IAAiB5uD,EAAEo0D,UACrCsD,EAAU1D,MAAMn+B,aAAa,mBAAoB71B,EAAEo0D,SACnDsD,EAAU1D,MAAMn+B,aAAa,oBAAqB71B,EAAEs0D,WAAW,KAG7D4C,EAASlvE,IAAMkvE,EAASlvE,EAAEm7C,MAAQyrB,IACpC8I,EAAU1D,MAAMn+B,aAAa,SAAU,OAASjW,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,MAG3Ig6E,EAAS1oE,EAAE20C,MAAQyrB,IACrB8I,EAAU1D,MAAMn+B,aAAa,iBAAkBqhC,EAAS1oE,EAAEtR,IAGxDg6E,EAAS/tE,EAAEg6C,MAAQyrB,KACrB8I,EAAU1D,MAAMn+B,aAAa,eAAgBqhC,EAAS/tE,EAAEjM,GAEpDw6E,EAAUzD,QACZyD,EAAUzD,OAAOp+B,aAAa,eAAgBqhC,EAAS/tE,EAAEjM,GAG/D,CAEA,MA7QS,CACPk7E,qBAGF,SAA8B3wD,GAC5B,OAAQA,EAAK8d,IACX,IAAK,KACH,OAAOkyC,EAET,IAAK,KACH,OAAOG,EAET,IAAK,KACH,OAAOD,EAET,IAAK,KACH,OAAOE,EAET,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAOT,EAET,IAAK,KACH,OAAOJ,EAET,IAAK,KACH,OAAOG,EAET,QACE,OAAO,KAEb,EA6OF,CAnR0B,GAqR1B,SAASkB,gBAAgB5wD,EAAM+oB,EAAY3K,GAEzCt+B,KAAKo+B,OAAS,GAEdp+B,KAAKohE,WAAalhD,EAAKke,OAEvBp+B,KAAK+wE,WAAa,GAElB/wE,KAAKyrE,eAAiB,GAEtBzrE,KAAKqhE,UAAY,GAEjBrhE,KAAK8rE,kBAAoB,GAEzB9rE,KAAKgxE,iBAAmB,GACxBhxE,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,GAGnCt+B,KAAK+tE,aAAe,EACtB,CAyWA,SAASkD,YAAYhqE,EAAGiqE,EAAI9U,EAAI+U,EAAI/iE,EAAGV,GACrC1N,KAAKiH,EAAIA,EACTjH,KAAKkxE,GAAKA,EACVlxE,KAAKo8D,GAAKA,EACVp8D,KAAKmxE,GAAKA,EACVnxE,KAAKoO,EAAIA,EACTpO,KAAK0N,EAAIA,EACT1N,KAAK47C,KAAO,CACV30C,GAAG,EACHiqE,KAAMA,EACN9U,KAAMA,EACN+U,KAAMA,EACN/iE,GAAG,EACHV,GAAG,EAEP,CAkDA,SAAS0jE,aAAa11D,EAAMwE,GAC1BlgB,KAAKqxE,SAAW58C,oBAChBz0B,KAAKs3C,GAAK,GACVt3C,KAAKrK,EAAI,GACTqK,KAAKm8C,IAAK,EACVn8C,KAAKi8C,eAAgB,EACrBj8C,KAAK47C,MAAO,EAER17B,EAAKzH,GAAKyH,EAAKzH,EAAEukC,MACnB98B,EAAKzH,EAAIiD,EAAKutB,WAAWgU,YAAYF,QAAQ78B,EAAKzH,IAGpDzY,KAAKkgB,KAAOA,EACZlgB,KAAK0b,KAAOA,EACZ1b,KAAKs+B,KAAOt+B,KAAK0b,KAAK4iB,KACtBt+B,KAAKsxE,UAAY,EACjBtxE,KAAKuxE,WAAY,EACjBvxE,KAAKwxE,gBAAkB,EACvBxxE,KAAK+7C,gBAAkB,GACvB/7C,KAAKyxE,YAAc,CACjBC,OAAQ,EACRC,SAAU3xE,KAAK4xE,gBACfnnD,EAAG,GACH4oC,OAAQ,GACRC,QAAS,GACT6d,GAAI,GACJp2E,EAAG,GACH82E,cAAe,GACfnlE,EAAG,GACHolE,GAAI,EACJC,WAAY,GACZC,GAAI,GACJjD,GAAI,GACJ3hE,EAAG,GACHgvD,GAAI,GACJ8U,GAAI,EACJvsE,EAAG,EACH6uD,GAAI,EACJ5P,GAAI,EACJquB,GAAI,KACJC,eAAe,EACfC,iBAAiB,EACjBC,iBAAiB,EACjBC,QAAS,EACTC,UAAW,EACXC,UAAW,GACXC,gBAAiB,EACjBhyC,YAAY,GAEdxgC,KAAKyyE,SAASzyE,KAAKyxE,YAAazxE,KAAKkgB,KAAKzH,EAAE3U,EAAE,GAAGsJ,GAE5CpN,KAAK0yE,kBACR1yE,KAAK2yE,iBAAiB3yE,KAAKyxE,YAE/B,CA9dAz8C,gBAAgB,CAACuqC,YAAagF,iBAAkBqE,eAAgBO,cAAeN,iBAAkBrJ,aAAcsJ,sBAAuBgI,iBAEtIA,gBAAgB5/E,UAAU0hF,qBAAuB,WAAa,EAE9D9B,gBAAgB5/E,UAAU2hF,eAAiB,IAAInwB,OAE/CouB,gBAAgB5/E,UAAU4hF,yBAA2B,WAAa,EAElEhC,gBAAgB5/E,UAAUi6E,cAAgB,WACxCnrE,KAAK+yE,aAAa/yE,KAAKohE,WAAYphE,KAAKqhE,UAAWrhE,KAAK+tE,aAAc/tE,KAAK4hE,aAAc,EAAG,IAAI,GAChG5hE,KAAKgzE,oBACP,EAMAlC,gBAAgB5/E,UAAU8hF,mBAAqB,WAC7C,IAAIz9E,EAEAopD,EACA5jD,EAEA2xB,EAJA9uB,EAAMoC,KAAKo+B,OAAOjuC,OAGlBqtC,EAAOx9B,KAAK+wE,WAAW5gF,OAEvB8iF,EAAa,GACbC,GAAc,EAElB,IAAKn4E,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAAG,CAK5B,IAJA2xB,EAAQ1sB,KAAK+wE,WAAWh2E,GACxBm4E,GAAc,EACdD,EAAW9iF,OAAS,EAEfoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GAGa,KAFrCopD,EAAQ3+C,KAAKo+B,OAAO7oC,IAEV69D,OAAO50D,QAAQkuB,KACvBumD,EAAWz9E,KAAKmpD,GAChBu0B,EAAcv0B,EAAMvB,aAAe81B,GAInCD,EAAW9iF,OAAS,GAAK+iF,GAC3BlzE,KAAKmzE,oBAAoBF,EAE7B,CACF,EAEAnC,gBAAgB5/E,UAAUiiF,oBAAsB,SAAU/0C,GACxD,IAAI7oC,EACAqI,EAAMwgC,EAAOjuC,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB6oC,EAAO7oC,GAAGm0D,eAEd,EAEAonB,gBAAgB5/E,UAAUkiF,mBAAqB,SAAUlzD,EAAMksD,GAE7D,IAAIiH,EACApG,EAAU,IAAIT,aAAatsD,EAAMksD,GACjCkC,EAAcrB,EAAQR,MAgD1B,MA9CgB,OAAZvsD,EAAK8d,GACPq1C,EAAc,IAAIrG,mBAAmBhtE,KAAMkgB,EAAM+sD,GAC5B,OAAZ/sD,EAAK8d,GACdq1C,EAAc,IAAInG,iBAAiBltE,KAAMkgB,EAAM+sD,GAC1B,OAAZ/sD,EAAK8d,IAA2B,OAAZ9d,EAAK8d,IAElCq1C,EAAc,IADwB,OAAZnzD,EAAK8d,GAAc2vC,yBAA2BE,4BAClC7tE,KAAMkgB,EAAM+sD,GAClDjtE,KAAKipC,WAAWC,KAAK9D,YAAYiuC,EAAY5E,IAEzC4E,EAAYzE,SACd5uE,KAAKipC,WAAWC,KAAK9D,YAAYiuC,EAAYrE,IAC7ChvE,KAAKipC,WAAWC,KAAK9D,YAAYiuC,EAAYtE,IAC7CT,EAAYhgC,aAAa,OAAQ,OAASxZ,kBAAoB,IAAMu+C,EAAYzE,OAAS,OAEtE,OAAZ1uD,EAAK8d,KACdq1C,EAAc,IAAIlG,eAAentE,KAAMkgB,EAAM+sD,IAG/B,OAAZ/sD,EAAK8d,IAA2B,OAAZ9d,EAAK8d,KAC3BswC,EAAYhgC,aAAa,iBAAkB09B,YAAY9rD,EAAK4uD,IAAM,IAClER,EAAYhgC,aAAa,kBAAmB29B,aAAa/rD,EAAKo3C,IAAM,IACpEgX,EAAYhgC,aAAa,eAAgB,KAEzB,IAAZpuB,EAAKo3C,IACPgX,EAAYhgC,aAAa,oBAAqBpuB,EAAKm3C,KAIxC,IAAXn3C,EAAKtf,GACP0tE,EAAYhgC,aAAa,YAAa,WAGpCpuB,EAAK4pD,IACPwE,EAAYhgC,aAAa,KAAMpuB,EAAK4pD,IAGlC5pD,EAAKogB,IACPguC,EAAYhgC,aAAa,QAASpuB,EAAKogB,IAGrCpgB,EAAKwhD,KACP4M,EAAY5hD,MAAM,kBAAoB6xC,aAAar+C,EAAKwhD,KAG1D1hE,KAAK+wE,WAAWv7E,KAAKy3E,GACrBjtE,KAAKszE,sBAAsBpzD,EAAMmzD,GAC1BA,CACT,EAEAvC,gBAAgB5/E,UAAUqiF,mBAAqB,SAAUrzD,GACvD,IAAImzD,EAAc,IAAIvF,eActB,OAZI5tD,EAAK4pD,IACPuJ,EAAYrF,GAAG1/B,aAAa,KAAMpuB,EAAK4pD,IAGrC5pD,EAAKogB,IACP+yC,EAAYrF,GAAG1/B,aAAa,QAASpuB,EAAKogB,IAGxCpgB,EAAKwhD,KACP2R,EAAYrF,GAAGthD,MAAM,kBAAoB6xC,aAAar+C,EAAKwhD,KAGtD2R,CACT,EAEAvC,gBAAgB5/E,UAAUsiF,uBAAyB,SAAUtzD,EAAM5mB,GACjE,IAAIm6E,EAAoB5nB,yBAAyBoB,qBAAqBjtD,KAAMkgB,EAAMlgB,MAC9EqzE,EAAc,IAAIpF,iBAAiBwF,EAAmBA,EAAkBxsE,EAAG3N,GAE/E,OADA0G,KAAKszE,sBAAsBpzD,EAAMmzD,GAC1BA,CACT,EAEAvC,gBAAgB5/E,UAAUwiF,mBAAqB,SAAUxzD,EAAMyzD,EAAiBvH,GAC9E,IAAIpuC,EAAK,EAEO,OAAZ9d,EAAK8d,GACPA,EAAK,EACgB,OAAZ9d,EAAK8d,GACdA,EAAK,EACgB,OAAZ9d,EAAK8d,KACdA,EAAK,GAGP,IACIq1C,EAAc,IAAInH,aAAayH,EAAiBvH,EADhCjtB,qBAAqBgmB,aAAanlE,KAAMkgB,EAAM8d,EAAIh+B,OAKtE,OAHAA,KAAKo+B,OAAO5oC,KAAK69E,GACjBrzE,KAAKwrE,oBAAoB6H,GACzBrzE,KAAKszE,sBAAsBpzD,EAAMmzD,GAC1BA,CACT,EAEAvC,gBAAgB5/E,UAAUoiF,sBAAwB,SAAUpzD,EAAMiZ,GAIhE,IAHA,IAAI5jC,EAAI,EACJqI,EAAMoC,KAAKgxE,iBAAiB7gF,OAEzBoF,EAAIqI,GAAK,CACd,GAAIoC,KAAKgxE,iBAAiBz7E,GAAG4jC,UAAYA,EACvC,OAGF5jC,GAAK,CACP,CAEAyK,KAAKgxE,iBAAiBx7E,KAAK,CACzBimB,GAAI6zD,oBAAoBuB,qBAAqB3wD,GAC7CiZ,QAASA,EACTjZ,KAAMA,GAEV,EAEA4wD,gBAAgB5/E,UAAU0iF,iBAAmB,SAAUP,GACrD,IACIt4E,EADAyC,EAAM61E,EAAYjgB,OAElB51B,EAAOx9B,KAAK+wE,WAAW5gF,OAE3B,IAAK4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACpBiF,KAAK+wE,WAAWh2E,GAAGslC,QACtB7iC,EAAIhI,KAAKwK,KAAK+wE,WAAWh2E,GAG/B,EAEA+1E,gBAAgB5/E,UAAUokE,aAAe,WAEvC,IAAI//D,EADJyK,KAAKi8C,eAAgB,EAErB,IAAIr+C,EAAMoC,KAAKqhE,UAAUlxE,OAEzB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK+tE,aAAax4E,GAAKyK,KAAKqhE,UAAU9rE,GAOxC,IAJAyK,KAAK+yE,aAAa/yE,KAAKohE,WAAYphE,KAAKqhE,UAAWrhE,KAAK+tE,aAAc/tE,KAAK4hE,aAAc,EAAG,IAAI,GAChG5hE,KAAKgzE,qBACLp1E,EAAMoC,KAAKm9C,kBAAkBhtD,OAExBoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKm9C,kBAAkB5nD,GAAGknD,WAG5Bz8C,KAAK4rE,iBACP,EAEAkF,gBAAgB5/E,UAAU6hF,aAAe,SAAUv1E,EAAK6jE,EAAW0M,EAAcz0E,EAAW8yE,EAAOD,EAAc0H,GAC/G,IACIt+E,EAEAwF,EACAyiC,EAGAs2C,EACAC,EACAC,EATAL,EAAkB,GAAGl5D,OAAO0xD,GAE5BvuE,EAAMJ,EAAIrN,OAAS,EAGnB8jF,EAAY,GACZC,EAAe,GAKnB,IAAK3+E,EAAIqI,EAAKrI,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARAy+E,EAAeh0E,KAAK6rE,uBAAuBruE,EAAIjI,KAK7C8rE,EAAU9rE,GAAKw4E,EAAaiG,EAAe,GAF3Cx2E,EAAIjI,GAAGu/D,QAAU+e,EAKD,OAAdr2E,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,GAC5Fg2C,EAGH3S,EAAU9rE,GAAGm3B,MAAM2T,QAAS,EAF5BghC,EAAU9rE,GAAKyK,KAAKozE,mBAAmB51E,EAAIjI,GAAI62E,GAK7C5uE,EAAIjI,GAAGu/D,SACLuM,EAAU9rE,GAAGm3B,MAAM+/C,MAAMpU,aAAe/+D,GAC1CA,EAAU8rC,YAAYi8B,EAAU9rE,GAAGm3B,MAAM+/C,OAI7CwH,EAAUz+E,KAAK6rE,EAAU9rE,GAAGm3B,YACvB,GAAkB,OAAdlvB,EAAIjI,GAAGyoC,GAAa,CAC7B,GAAKg2C,EAKH,IAFAx2C,EAAO6jC,EAAU9rE,GAAGmpC,GAAGvuC,OAElB4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzBsmE,EAAU9rE,GAAGw4E,aAAahzE,GAAKsmE,EAAU9rE,GAAGmpC,GAAG3jC,QALjDsmE,EAAU9rE,GAAKyK,KAAKuzE,mBAAmB/1E,EAAIjI,IAS7CyK,KAAK+yE,aAAav1E,EAAIjI,GAAGmpC,GAAI2iC,EAAU9rE,GAAGmpC,GAAI2iC,EAAU9rE,GAAGw4E,aAAc1M,EAAU9rE,GAAGy4E,GAAI5B,EAAQ,EAAGuH,EAAiBE,GAElHr2E,EAAIjI,GAAGu/D,SACLuM,EAAU9rE,GAAGy4E,GAAG3V,aAAe/+D,GACjCA,EAAU8rC,YAAYi8B,EAAU9rE,GAAGy4E,GAGzC,KAAyB,OAAdxwE,EAAIjI,GAAGyoC,IACXg2C,IACH3S,EAAU9rE,GAAKyK,KAAKwzE,uBAAuBh2E,EAAIjI,GAAI+D,IAGrDw6E,EAAmBzS,EAAU9rE,GAAG4X,UAChCwmE,EAAgBn+E,KAAKs+E,IACE,OAAdt2E,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAC7Eg2C,IACH3S,EAAU9rE,GAAKyK,KAAK0zE,mBAAmBl2E,EAAIjI,GAAIo+E,EAAiBvH,IAGlEpsE,KAAK4zE,iBAAiBvS,EAAU9rE,KACT,OAAdiI,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IACzHg2C,GAMHD,EAAW1S,EAAU9rE,IACZ8qC,QAAS,IANlB0zC,EAAW9qB,eAAeG,YAAY5rD,EAAIjI,GAAGyoC,KACpCwO,KAAKxsC,KAAMxC,EAAIjI,IACxB8rE,EAAU9rE,GAAKw+E,EACf/zE,KAAKyrE,eAAej2E,KAAKu+E,IAM3BG,EAAa1+E,KAAKu+E,IACK,OAAdv2E,EAAIjI,GAAGyoC,KACXg2C,GAOHD,EAAW1S,EAAU9rE,IACZ8qC,QAAS,GAPlB0zC,EAAW9qB,eAAeG,YAAY5rD,EAAIjI,GAAGyoC,IAC7CqjC,EAAU9rE,GAAKw+E,EACfA,EAASvnC,KAAKxsC,KAAMxC,EAAKjI,EAAG8rE,GAC5BrhE,KAAKyrE,eAAej2E,KAAKu+E,GACzBF,GAAS,GAMXK,EAAa1+E,KAAKu+E,IAGpB/zE,KAAK+rE,oBAAoBvuE,EAAIjI,GAAIA,EAAI,EACvC,CAIA,IAFAqI,EAAMq2E,EAAU9jF,OAEXoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB0+E,EAAU1+E,GAAG8qC,QAAS,EAKxB,IAFAziC,EAAMs2E,EAAa/jF,OAEdoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB2+E,EAAa3+E,GAAG8qC,QAAS,CAE7B,EAEAywC,gBAAgB5/E,UAAUk6E,mBAAqB,WAE7C,IAAI71E,EADJyK,KAAK4rE,kBAEL,IAAIhuE,EAAMoC,KAAK+wE,WAAW5gF,OAE1B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK+wE,WAAWx7E,GAAG2qD,QAKrB,IAFAlgD,KAAKm0E,cAEA5+E,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACpByK,KAAK+wE,WAAWx7E,GAAGqmD,MAAQ57C,KAAKi8C,iBAC9Bj8C,KAAK+wE,WAAWx7E,GAAGm3E,SACrB1sE,KAAK+wE,WAAWx7E,GAAGm3E,OAAOp+B,aAAa,IAAKtuC,KAAK+wE,WAAWx7E,GAAGkjB,GAE/DzY,KAAK+wE,WAAWx7E,GAAGkjB,EAAI,OAASzY,KAAK+wE,WAAWx7E,GAAGkjB,GAGrDzY,KAAK+wE,WAAWx7E,GAAGk3E,MAAMn+B,aAAa,IAAKtuC,KAAK+wE,WAAWx7E,GAAGkjB,GAAK,QAGzE,EAEAq4D,gBAAgB5/E,UAAUijF,YAAc,WACtC,IAAI5+E,EAEA6+E,EADAx2E,EAAMoC,KAAKgxE,iBAAiB7gF,OAGhC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB6+E,EAAkBp0E,KAAKgxE,iBAAiBz7E,IAEnCyK,KAAKi8C,eAAiBm4B,EAAgBj7C,QAAQikB,eAAyC,IAAzBg3B,EAAgBl0D,MACjFk0D,EAAgB34D,GAAG24D,EAAgBl0D,KAAMk0D,EAAgBj7C,QAASn5B,KAAKi8C,cAG7E,EAEA60B,gBAAgB5/E,UAAUy+B,QAAU,WAClC3vB,KAAKoqE,qBACLpqE,KAAKohE,WAAa,KAClBphE,KAAKqhE,UAAY,IACnB,EAmBA4P,YAAY//E,UAAUmjF,OAAS,SAAUptE,EAAGiqE,EAAI9U,EAAI+U,EAAI/iE,EAAGV,GACzD1N,KAAK47C,KAAK30C,GAAI,EACdjH,KAAK47C,KAAKs1B,IAAK,EACflxE,KAAK47C,KAAKwgB,IAAK,EACfp8D,KAAK47C,KAAKu1B,IAAK,EACfnxE,KAAK47C,KAAKxtC,GAAI,EACdpO,KAAK47C,KAAKluC,GAAI,EACd,IAAI4mE,GAAU,EAsCd,OApCIt0E,KAAKiH,IAAMA,IACbjH,KAAKiH,EAAIA,EACTjH,KAAK47C,KAAK30C,GAAI,EACdqtE,GAAU,GAGRt0E,KAAKkxE,KAAOA,IACdlxE,KAAKkxE,GAAKA,EACVlxE,KAAK47C,KAAKs1B,IAAK,EACfoD,GAAU,GAGRt0E,KAAKo8D,KAAOA,IACdp8D,KAAKo8D,GAAKA,EACVp8D,KAAK47C,KAAKwgB,IAAK,EACfkY,GAAU,GAGRt0E,KAAKmxE,KAAOA,IACdnxE,KAAKmxE,GAAKA,EACVnxE,KAAK47C,KAAKu1B,IAAK,EACfmD,GAAU,GAGRt0E,KAAKoO,IAAMA,IACbpO,KAAKoO,EAAIA,EACTpO,KAAK47C,KAAKxtC,GAAI,EACdkmE,GAAU,IAGR5mE,EAAEvd,QAAW6P,KAAK0N,EAAE,KAAOA,EAAE,IAAM1N,KAAK0N,EAAE,KAAOA,EAAE,IAAM1N,KAAK0N,EAAE,KAAOA,EAAE,IAAM1N,KAAK0N,EAAE,KAAOA,EAAE,IAAM1N,KAAK0N,EAAE,MAAQA,EAAE,KAAO1N,KAAK0N,EAAE,MAAQA,EAAE,MAChJ1N,KAAK0N,EAAIA,EACT1N,KAAK47C,KAAKluC,GAAI,EACd4mE,GAAU,GAGLA,CACT,EA0DAlD,aAAalgF,UAAU0gF,gBAAkB,CAAC,EAAG,GAE7CR,aAAalgF,UAAUuhF,SAAW,SAAU70D,EAAKsC,GAC/C,IAAK,IAAI9S,KAAK8S,EACRlvB,OAAOE,UAAU2G,eAAeC,KAAKooB,EAAM9S,KAC7CwQ,EAAIxQ,GAAK8S,EAAK9S,IAIlB,OAAOwQ,CACT,EAEAwzD,aAAalgF,UAAUqjF,eAAiB,SAAUr0D,GAC3CA,EAAKsgB,YACRxgC,KAAK2yE,iBAAiBzyD,GAGxBlgB,KAAKyxE,YAAcvxD,EACnBlgB,KAAKyxE,YAAYE,SAAW3xE,KAAKyxE,YAAYE,UAAY3xE,KAAK4xE,gBAC9D5xE,KAAK47C,MAAO,CACd,EAEAw1B,aAAalgF,UAAUwhF,eAAiB,WACtC,OAAO1yE,KAAKw0E,iBACd,EAEApD,aAAalgF,UAAUsjF,gBAAkB,WAOvC,OANAx0E,KAAKm8C,GAAKn8C,KAAKkgB,KAAKzH,EAAE3U,EAAE3T,OAAS,EAE7B6P,KAAKm8C,IACPn8C,KAAKo8C,UAAUp8C,KAAKy0E,iBAAiBl9E,KAAKyI,OAGrCA,KAAKm8C,EACd,EAEAi1B,aAAalgF,UAAUkrD,UAAY,SAAUC,GAC3Cr8C,KAAK+7C,gBAAgBvmD,KAAK6mD,GAC1Br8C,KAAK0b,KAAK4gC,mBAAmBt8C,KAC/B,EAEAoxE,aAAalgF,UAAUurD,SAAW,SAAUi4B,GAC1C,GAAK10E,KAAK0b,KAAKutB,WAAW6S,UAAY97C,KAAK87C,SAAY97C,KAAK+7C,gBAAgB5rD,QAAYukF,EAAxF,CAIA10E,KAAKyxE,YAAY9sE,EAAI3E,KAAKkgB,KAAKzH,EAAE3U,EAAE9D,KAAKsxE,WAAWlkE,EAAEzI,EACrD,IAAIgwE,EAAe30E,KAAKyxE,YACpBmD,EAAe50E,KAAKsxE,UAExB,GAAItxE,KAAKg8C,KACPh8C,KAAKu0E,eAAev0E,KAAKyxE,iBAD3B,CAOA,IAAIl8E,EAFJyK,KAAKg8C,MAAO,EACZh8C,KAAK47C,MAAO,EAEZ,IAAIh+C,EAAMoC,KAAK+7C,gBAAgB5rD,OAC3B+rD,EAAaw4B,GAAe10E,KAAKkgB,KAAKzH,EAAE3U,EAAE9D,KAAKsxE,WAAWlkE,EAE9D,IAAK7X,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGtB2mD,EADE04B,IAAiB50E,KAAKsxE,UACXtxE,KAAK+7C,gBAAgBxmD,GAAG2mD,EAAYA,EAAWv3C,GAE/C3E,KAAK+7C,gBAAgBxmD,GAAGyK,KAAKyxE,YAAav1B,EAAWv3C,GAIlEgwE,IAAiBz4B,GACnBl8C,KAAKu0E,eAAer4B,GAGtBl8C,KAAKrK,EAAIqK,KAAKyxE,YACdzxE,KAAKs3C,GAAKt3C,KAAKrK,EACfqK,KAAKg8C,MAAO,EACZh8C,KAAK87C,QAAU97C,KAAK0b,KAAKutB,WAAW6S,OAxBpC,CATA,CAkCF,EAEAs1B,aAAalgF,UAAUujF,iBAAmB,WAMxC,IALA,IAAII,EAAW70E,KAAKkgB,KAAKzH,EAAE3U,EACvBmzC,EAAWj3C,KAAK0b,KAAK4iB,KAAK+c,cAC1B9lD,EAAI,EACJqI,EAAMi3E,EAAS1kF,OAEZoF,GAAKqI,EAAM,KACZrI,IAAMqI,EAAM,GAAKi3E,EAASt/E,EAAI,GAAGoP,EAAIsyC,IAIzC1hD,GAAK,EAOP,OAJIyK,KAAKsxE,YAAc/7E,IACrByK,KAAKsxE,UAAY/7E,GAGZyK,KAAKkgB,KAAKzH,EAAE3U,EAAE9D,KAAKsxE,WAAWlkE,CACvC,EAEAgkE,aAAalgF,UAAU4jF,eAAiB,SAAUhb,GAUhD,IATA,IAGIkB,EACAF,EAJAia,EAAkB,GAClBx/E,EAAI,EACJqI,EAAMk8D,EAAK3pE,OAGX6kF,GAAgB,EAChBC,GAAoB,EACpBC,EAAe,GAEZ3/E,EAAIqI,GACTo3E,EAAgBC,EAChBA,GAAoB,EACpBja,EAAWlB,EAAK3+D,WAAW5F,GAC3B2/E,EAAepb,EAAK7+D,OAAO1F,GAEvBoiE,YAAYuD,oBAAoBF,GAClCga,GAAgB,EACPha,GAAY,OAAUA,GAAY,MACvCrD,YAAYyD,eAAetB,EAAMvkE,GACnC2/E,EAAepb,EAAK33C,OAAO5sB,EAAG,KAE9BulE,EAAiBhB,EAAK3+D,WAAW5F,EAAI,KAEf,OAAUulE,GAAkB,QAC5CnD,YAAYiD,WAAWI,EAAUF,IACnCoa,EAAepb,EAAK33C,OAAO5sB,EAAG,GAC9By/E,GAAgB,GAEhBE,EADSvd,YAAYsD,YAAYnB,EAAK33C,OAAO5sB,EAAG,IACjCukE,EAAK33C,OAAO5sB,EAAG,GAEfukE,EAAK33C,OAAO5sB,EAAG,IAI3BylE,EAAW,OACpBF,EAAiBhB,EAAK3+D,WAAW5F,EAAI,GAEjCoiE,YAAY0D,oBAAoBL,KAClCga,GAAgB,IAETrd,YAAYoD,kBAAkBC,KACvCga,GAAgB,EAChBC,GAAoB,GAGlBD,GACFD,EAAgBA,EAAgB5kF,OAAS,IAAM+kF,EAC/CF,GAAgB,GAEhBD,EAAgBv/E,KAAK0/E,GAGvB3/E,GAAK2/E,EAAa/kF,OAGpB,OAAO4kF,CACT,EAEA3D,aAAalgF,UAAUyhF,iBAAmB,SAAUxzC,GAClDA,EAAaqB,YAAa,EAC1B,IAGIjrC,EACAqI,EACAu3E,EAEA/1E,EAQArE,EACAyiC,EAEAgC,EAlBAwK,EAAchqC,KAAK0b,KAAKutB,WAAWe,YACnC9pB,EAAOlgB,KAAKkgB,KACZk1D,EAAU,GAIV50E,EAAQ,EAER60E,EAAiBn1D,EAAK9R,EAAEmE,EACxB+iE,EAAc,EACdC,EAAa,EACbC,EAAc,EACdzD,EAAa,GACb0D,EAAY,EACZC,EAAe,EAGfviB,EAAWnpB,EAAYwyB,cAAcr9B,EAAa1U,GAElD4iD,EAAU,EACV/T,EAAYpG,kBAAkBC,GAClCh0B,EAAam0B,QAAUgG,EAAU/F,OACjCp0B,EAAak0B,OAASiG,EAAU5sC,MAChCyS,EAAamzC,UAAYnzC,EAAa/xB,EACtC+xB,EAAaozC,UAAYvyE,KAAK80E,eAAe31C,EAAax6B,GAC1D/G,EAAMuhC,EAAaozC,UAAUpiF,OAC7BgvC,EAAaqzC,gBAAkBrzC,EAAa2yC,GAC5C,IACI9W,EADA2a,EAAiBx2C,EAAaq0B,GAAK,IAAOr0B,EAAamzC,UAG3D,GAAInzC,EAAaykB,GAOf,IANA,IAGIgyB,EACArD,EAJA59C,GAAO,EACPg9C,EAAWxyC,EAAaykB,GAAG,GAC3BiyB,EAAY12C,EAAaykB,GAAG,GAIzBjvB,GAAM,CAEXihD,EAAgB,EAChBH,EAAY,EACZ73E,GAHA20E,EAAYvyE,KAAK80E,eAAe31C,EAAax6B,IAG7BxU,OAChBwlF,EAAiBx2C,EAAaq0B,GAAK,IAAOr0B,EAAamzC,UACvD,IAAIwD,GAAkB,EAEtB,IAAKvgF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBylE,EAAWuX,EAAUh9E,GAAG4F,WAAW,GACnCg6E,GAAc,EAEO,MAAjB5C,EAAUh9E,GACZugF,EAAiBvgF,EACK,KAAbylE,GAAgC,IAAbA,IAC5Bya,EAAY,EACZN,GAAc,EACdS,GAAiBz2C,EAAaqzC,iBAA4C,IAAzBrzC,EAAamzC,WAG5DtoC,EAAYzK,OACdC,EAAWwK,EAAYqyB,YAAYkW,EAAUh9E,GAAI49D,EAASE,OAAQF,EAASqG,SAC3E6T,EAAU8H,EAAc,EAAI31C,EAAS59B,EAAIu9B,EAAamzC,UAAY,KAGlEjF,EAAUrjC,EAAY6vB,YAAY0Y,EAAUh9E,GAAI4pC,EAAa1U,EAAG0U,EAAamzC,WAG3EmD,EAAYpI,EAAUsE,GAA6B,MAAjBY,EAAUh9E,KACtB,IAApBugF,EACFl4E,GAAO,EAEPrI,EAAIugF,EAGNF,GAAiBz2C,EAAaqzC,iBAA4C,IAAzBrzC,EAAamzC,UAC9DC,EAAUh4D,OAAOhlB,EAAGugF,IAAmBvgF,EAAI,EAAI,EAAG,MAElDugF,GAAkB,EAClBL,EAAY,IAEZA,GAAapI,EACboI,GAAaE,GAIjBC,GAAiBziB,EAASue,OAASvyC,EAAamzC,UAAY,IAExDtyE,KAAKuxE,WAAapyC,EAAamzC,UAAYtyE,KAAKwxE,iBAAmBqE,EAAYD,GACjFz2C,EAAamzC,WAAa,EAC1BnzC,EAAaqzC,gBAAkBrzC,EAAamzC,UAAYnzC,EAAa2yC,GAAK3yC,EAAa/xB,IAEvF+xB,EAAaozC,UAAYA,EACzB30E,EAAMuhC,EAAaozC,UAAUpiF,OAC7BwkC,GAAO,EAEX,CAGF8gD,GAAaE,EACbtI,EAAU,EACV,IACI0I,EADAC,EAAoB,EAGxB,IAAKzgF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EA6CxB,GA5CA4/E,GAAc,EAIG,MAFjBna,GADA+a,EAAc52C,EAAaozC,UAAUh9E,IACd4F,WAAW,KAEE,IAAb6/D,GACrBgb,EAAoB,EACpBjE,EAAWv8E,KAAKigF,GAChBC,EAAeD,EAAYC,EAAeD,EAAYC,EACtDD,GAAa,EAAIE,EACjBv2E,EAAM,GACN+1E,GAAc,EACdK,GAAe,GAEfp2E,EAAM22E,EAGJ/rC,EAAYzK,OACdC,EAAWwK,EAAYqyB,YAAY0Z,EAAa5iB,EAASE,OAAQrpB,EAAYwyB,cAAcr9B,EAAa1U,GAAG+uC,SAC3G6T,EAAU8H,EAAc,EAAI31C,EAAS59B,EAAIu9B,EAAamzC,UAAY,KAIlEjF,EAAUrjC,EAAY6vB,YAAYz6D,EAAK+/B,EAAa1U,EAAG0U,EAAamzC,WAIlD,MAAhByD,EACFC,GAAqB3I,EAAUsI,GAE/BF,GAAapI,EAAUsI,EAAiBK,EACxCA,EAAoB,GAGtBZ,EAAQ5/E,KAAK,CACXkX,EAAG2gE,EACH4I,GAAI5I,EACJxmE,IAAKyuE,EACLnnE,EAAGgnE,EACHe,UAAW,GACX92E,IAAKA,EACL0mC,KAAM0vC,EACNW,sBAAuB,IAGH,GAAlBd,GAIF,GAFAC,GAAejI,EAEH,KAARjuE,GAAsB,MAARA,GAAe7J,IAAMqI,EAAM,EAAG,CAK9C,IAJY,KAARwB,GAAsB,MAARA,IAChBk2E,GAAejI,GAGVkI,GAAchgF,GACnB6/E,EAAQG,GAAYU,GAAKX,EACzBF,EAAQG,GAAYn9B,IAAM53C,EAC1B40E,EAAQG,GAAYa,MAAQ/I,EAC5BkI,GAAc,EAGhB/0E,GAAS,EACT80E,EAAc,CAChB,OACK,GAAsB,GAAlBD,GAIT,GAFAC,GAAejI,EAEH,KAARjuE,GAAc7J,IAAMqI,EAAM,EAAG,CAK/B,IAJY,KAARwB,IACFk2E,GAAejI,GAGVkI,GAAchgF,GACnB6/E,EAAQG,GAAYU,GAAKX,EACzBF,EAAQG,GAAYn9B,IAAM53C,EAC1B40E,EAAQG,GAAYa,MAAQ/I,EAC5BkI,GAAc,EAGhBD,EAAc,EACd90E,GAAS,CACX,OAEA40E,EAAQ50E,GAAO43C,IAAM53C,EACrB40E,EAAQ50E,GAAO41E,MAAQ,EACvB51E,GAAS,EAQb,GAJA2+B,EAAazyB,EAAI0oE,EACjBM,EAAeD,EAAYC,EAAeD,EAAYC,EACtD3D,EAAWv8E,KAAKigF,GAEZt2C,EAAaykB,GACfzkB,EAAawyC,SAAWxyC,EAAaykB,GAAG,GACxCzkB,EAAa0yC,cAAgB,OAI7B,OAFA1yC,EAAawyC,SAAW+D,EAEhBv2C,EAAapkC,GACnB,KAAK,EACHokC,EAAa0yC,eAAiB1yC,EAAawyC,SAC3C,MAEF,KAAK,EACHxyC,EAAa0yC,eAAiB1yC,EAAawyC,SAAW,EACtD,MAEF,QACExyC,EAAa0yC,cAAgB,EAInC1yC,EAAa4yC,WAAaA,EAC1B,IACIsE,EACAC,EAEAC,EACAn+B,EALAo+B,EAAYt2D,EAAKrc,EAGrB25B,EAAOg5C,EAAUrmF,OAGjB,IAAIsmF,EAAU,GAEd,IAAK17E,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAAG,CAkB5B,KAjBAs7E,EAAeG,EAAUz7E,IAER8I,EAAEu4D,KACjBj9B,EAAagzC,iBAAkB,GAG7BkE,EAAaxyE,EAAEqtE,KACjB/xC,EAAaizC,iBAAkB,IAG7BiE,EAAaxyE,EAAEstE,IAAMkF,EAAaxyE,EAAE6yE,IAAML,EAAaxyE,EAAE8yE,IAAMN,EAAaxyE,EAAE+yE,MAChFz3C,EAAa+yC,eAAgB,GAG/B95B,EAAM,EACNm+B,EAAQF,EAAajpE,EAAEzd,EAElB4F,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACxB+gF,EAAalB,EAAQ7/E,IACV2gF,UAAUn7E,GAAKq9C,GAEb,GAATm+B,GAAiC,KAAnBD,EAAWl3E,KAAuB,GAATm3E,GAAiC,KAAnBD,EAAWl3E,KAAiC,MAAnBk3E,EAAWl3E,KAAwB,GAATm3E,IAAeD,EAAWnoE,GAAuB,KAAlBmoE,EAAWl3E,KAAc7J,GAAKqI,EAAM,IAAe,GAAT24E,IAAeD,EAAWnoE,GAAK5Y,GAAKqI,EAAM,MAEnM,IAAtBy4E,EAAajpE,EAAEypE,IACjBJ,EAAQjhF,KAAK4iD,GAGfA,GAAO,GAIXl4B,EAAKrc,EAAE9I,GAAGqS,EAAE0pE,WAAa1+B,EACzB,IACI2+B,EADAC,GAAc,EAGlB,GAA0B,IAAtBX,EAAajpE,EAAEypE,GACjB,IAAKthF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGpByhF,IAFJV,EAAalB,EAAQ7/E,IAEQ2gF,UAAUn7E,KAErCi8E,EAAaV,EAAWJ,UAAUn7E,GAClCg8E,EAASN,EAAQl8D,OAAOroB,KAAKC,MAAMD,KAAKymC,SAAW89C,EAAQtmF,QAAS,GAAG,IAGzEmmF,EAAWJ,UAAUn7E,GAAKg8E,CAGhC,CAEA53C,EAAakzC,QAAUlzC,EAAaqzC,iBAA4C,IAAzBrzC,EAAamzC,UACpEnzC,EAAa6yC,GAAK7yC,EAAa6yC,IAAM,EACrC7yC,EAAauyC,OAASve,EAASue,OAASvyC,EAAamzC,UAAY,GACnE,EAEAlB,aAAalgF,UAAU87C,mBAAqB,SAAUiqC,EAASz2E,GAC7DA,OAAkBzO,IAAVyO,EAAsBR,KAAKsxE,UAAY9wE,EAC/C,IAAI02E,EAAQl3E,KAAKyyE,SAAS,CAAC,EAAGzyE,KAAKkgB,KAAKzH,EAAE3U,EAAEtD,GAAO4M,GACnD8pE,EAAQl3E,KAAKyyE,SAASyE,EAAOD,GAC7Bj3E,KAAKkgB,KAAKzH,EAAE3U,EAAEtD,GAAO4M,EAAI8pE,EACzBl3E,KAAKm3E,YAAY32E,GACjBR,KAAKu0E,eAAe2C,GACpBl3E,KAAK0b,KAAK4gC,mBAAmBt8C,KAC/B,EAEAoxE,aAAalgF,UAAUimF,YAAc,SAAU32E,GAC7C,IAAI02E,EAAQl3E,KAAKkgB,KAAKzH,EAAE3U,EAAEtD,GAAO4M,EACjC8pE,EAAM12C,YAAa,EACnBxgC,KAAKsxE,UAAY,EACjBtxE,KAAKi8C,eAAgB,EACrBj8C,KAAKy8C,SAASy6B,EAChB,EAEA9F,aAAalgF,UAAUkmF,cAAgB,SAAUC,GAC/Cr3E,KAAKuxE,UAAY8F,EACjBr3E,KAAKm3E,YAAYn3E,KAAKsxE,WACtBtxE,KAAK0b,KAAK4gC,mBAAmBt8C,KAC/B,EAEAoxE,aAAalgF,UAAUomF,mBAAqB,SAAUC,GACpDv3E,KAAKwxE,gBAAkBt/E,KAAKC,MAAMolF,IAAe,EACjDv3E,KAAKm3E,YAAYn3E,KAAKsxE,WACtBtxE,KAAK0b,KAAK4gC,mBAAmBt8C,KAC/B,EAEA,IAAIw3E,iBAAmB,WACrB,IAAIv2E,EAAM/O,KAAK+O,IACXF,EAAM7O,KAAK6O,IACX5O,EAAQD,KAAKC,MAEjB,SAASslF,EAAwB/7D,EAAMwE,GACrClgB,KAAK03E,oBAAsB,EAC3B13E,KAAK8D,GAAI,EACT9D,KAAKkgB,KAAOA,EACZlgB,KAAK0b,KAAOA,EACZ1b,KAAKs+B,KAAO5iB,EAAK4iB,KACjBt+B,KAAK23E,OAAS,EACd33E,KAAK43E,OAAS,EACd53E,KAAKs9C,6BAA6B5hC,GAClC1b,KAAKoN,EAAI0vC,gBAAgBC,QAAQrhC,EAAMwE,EAAK9S,GAAK,CAC/CtJ,EAAG,GACF,EAAG,EAAG9D,MAGPA,KAAK7J,EADH,MAAO+pB,EACA48B,gBAAgBC,QAAQrhC,EAAMwE,EAAK/pB,EAAG,EAAG,EAAG6J,MAE5C,CACPrK,EAAG,KAIPqK,KAAKiH,EAAI61C,gBAAgBC,QAAQrhC,EAAMwE,EAAKjZ,GAAK,CAC/CnD,EAAG,GACF,EAAG,EAAG9D,MACTA,KAAK63E,GAAK/6B,gBAAgBC,QAAQrhC,EAAMwE,EAAK23D,IAAM,CACjD/zE,EAAG,GACF,EAAG,EAAG9D,MACTA,KAAK83E,GAAKh7B,gBAAgBC,QAAQrhC,EAAMwE,EAAK43D,IAAM,CACjDh0E,EAAG,GACF,EAAG,EAAG9D,MACTA,KAAK+3E,GAAKj7B,gBAAgBC,QAAQrhC,EAAMwE,EAAK63D,IAAM,CACjDj0E,EAAG,KACF,EAAG,EAAG9D,MACTA,KAAK6D,EAAIi5C,gBAAgBC,QAAQrhC,EAAMwE,EAAKrc,EAAG,EAAG,IAAM7D,MAEnDA,KAAKm9C,kBAAkBhtD,QAC1B6P,KAAKy8C,UAET,CA+JA,OA7JAg7B,EAAwBvmF,UAAY,CAClC8mF,QAAS,SAAiB5/B,GACpBp4C,KAAK03E,qBAAuB13E,KAAK0b,KAAKu8D,aAAaxG,YAAY/kE,EAAEvc,QACnE6P,KAAKy8C,WAGP,IAAIzpC,EAAK,EACLu/B,EAAK,EACLt/B,EAAK,EACLu/B,EAAK,EAELxyC,KAAK83E,GAAGniF,EAAI,EACdqd,EAAKhT,KAAK83E,GAAGniF,EAAI,IAEjB48C,GAAMvyC,KAAK83E,GAAGniF,EAAI,IAGhBqK,KAAK63E,GAAGliF,EAAI,EACdsd,EAAK,EAAMjT,KAAK63E,GAAGliF,EAAI,IAEvB68C,EAAK,EAAMxyC,KAAK63E,GAAGliF,EAAI,IAGzB,IAAIuiF,EAAQppC,cAAcwJ,gBAAgBtlC,EAAIu/B,EAAIt/B,EAAIu/B,GAAIt6B,IACtDyjC,EAAO,EACPvuC,EAAIpN,KAAK23E,OACTxhF,EAAI6J,KAAK43E,OACTp6D,EAAOxd,KAAKkgB,KAAKg5B,GAErB,GAAa,IAAT17B,EAOFm+B,EAAOu8B,EALLv8B,EADExlD,IAAMiX,EACDgrC,GAAOjiD,EAAI,EAAI,EAEf8K,EAAI,EAAGF,EAAI,IAAO5K,EAAIiX,IAAMgrC,EAAMhrC,IAAMjX,EAAIiX,GAAI,UAIpD,GAAa,IAAToQ,EAOTm+B,EAAOu8B,EALLv8B,EADExlD,IAAMiX,EACDgrC,GAAOjiD,EAAI,EAAI,EAEf,EAAI8K,EAAI,EAAGF,EAAI,IAAO5K,EAAIiX,IAAMgrC,EAAMhrC,IAAMjX,EAAIiX,GAAI,UAIxD,GAAa,IAAToQ,EACLrnB,IAAMiX,EACRuuC,EAAO,GAEPA,EAAO16C,EAAI,EAAGF,EAAI,IAAO5K,EAAIiX,IAAMgrC,EAAMhrC,IAAMjX,EAAIiX,GAAI,KAE5C,GACTuuC,GAAQ,EAERA,EAAO,EAAI,GAAKA,EAAO,IAI3BA,EAAOu8B,EAAMv8B,QACR,GAAa,IAATn+B,EAAY,CACrB,GAAIrnB,IAAMiX,EACRuuC,EAAO,MACF,CACL,IAAIw8B,EAAMhiF,EAAIiX,EAKVpS,GAAKm9E,EAAM,GADf//B,EAAMr3C,EAAIE,EAAI,EAAGm3C,EAAM,GAAMhrC,GAAIjX,EAAIiX,IAEjCvJ,EAAIs0E,EAAM,EACdx8B,EAAOzpD,KAAKojB,KAAK,EAAIta,EAAIA,GAAK6I,EAAIA,GACpC,CAEA83C,EAAOu8B,EAAMv8B,EACf,MAAoB,IAATn+B,GACLrnB,IAAMiX,EACRuuC,EAAO,GAEPvD,EAAMr3C,EAAIE,EAAI,EAAGm3C,EAAM,GAAMhrC,GAAIjX,EAAIiX,GACrCuuC,GAAQ,EAAIzpD,KAAKob,IAAIpb,KAAKqb,GAAe,EAAVrb,KAAKqb,GAAS6qC,GAAOjiD,EAAIiX,KAAO,GAGjEuuC,EAAOu8B,EAAMv8B,KAETvD,GAAOjmD,EAAMib,KAEbuuC,EAAO16C,EAAI,EAAGF,EADZq3C,EAAMhrC,EAAI,EACMrM,EAAI5K,EAAG,IAAMiX,EAAIgrC,GAEjBjiD,EAAIiiD,EAFmB,KAM7CuD,EAAOu8B,EAAMv8B,IAaf,GAAkB,MAAd37C,KAAK+3E,GAAGpiF,EAAW,CACrB,IAAIyiF,EAAyB,IAAZp4E,KAAK+3E,GAAGpiF,EAEN,IAAfyiF,IACFA,EAAa,MAGf,IAAIC,EAAY,GAAmB,GAAbD,EAElBz8B,EAAO08B,EACT18B,EAAO,GAEPA,GAAQA,EAAO08B,GAAaD,GAEjB,IACTz8B,EAAO,EAGb,CAEA,OAAOA,EAAO37C,KAAK6D,EAAElO,CACvB,EACA8mD,SAAU,SAAkB67B,GAC1Bt4E,KAAKq9C,2BACLr9C,KAAK47C,KAAO08B,GAAgBt4E,KAAK47C,KACjC57C,KAAK03E,mBAAqB13E,KAAK0b,KAAKu8D,aAAaxG,YAAY/kE,EAAEvc,QAAU,EAErEmoF,GAAgC,IAAhBt4E,KAAKkgB,KAAKtf,IAC5BZ,KAAK7J,EAAER,EAAIqK,KAAK03E,oBAGlB,IAAIa,EAA0B,IAAhBv4E,KAAKkgB,KAAKtf,EAAU,EAAI,IAAMZ,KAAKkgB,KAAK42D,WAClD7vE,EAAIjH,KAAKiH,EAAEtR,EAAI4iF,EACfnrE,EAAIpN,KAAKoN,EAAEzX,EAAI4iF,EAAUtxE,EACzB9Q,EAAI6J,KAAK7J,EAAER,EAAI4iF,EAAUtxE,EAE7B,GAAImG,EAAIjX,EAAG,CACT,IAAIs0D,EAAKr9C,EACTA,EAAIjX,EACJA,EAAIs0D,CACN,CAEAzqD,KAAK23E,OAASvqE,EACdpN,KAAK43E,OAASzhF,CAChB,GAEF6+B,gBAAgB,CAACkoB,0BAA2Bu6B,GAMrC,CACLe,oBALF,SAA6B98D,EAAMwE,EAAM1iB,GACvC,OAAO,IAAIi6E,EAAwB/7D,EAAMwE,EAAM1iB,EACjD,EAKF,CA7MuB,GA+MvB,SAASi7E,yBAAyB/8D,EAAMg9D,EAAep/E,GACrD,IAAIq/E,EAAc,CAChBthC,UAAU,GAER0F,EAAUD,gBAAgBC,QAC1B67B,EAA0BF,EAAc70E,EAC5C7D,KAAK6D,EAAI,CACPjD,EAAGg4E,EAAwBh4E,EAAIm8C,EAAQrhC,EAAMk9D,EAAwBh4E,EAAG,EAAGk4B,UAAWx/B,GAAaq/E,EACnG1qE,GAAI2qE,EAAwB3qE,GAAK8uC,EAAQrhC,EAAMk9D,EAAwB3qE,GAAI,EAAG6qB,UAAWx/B,GAAaq/E,EACtGtsB,GAAIusB,EAAwBvsB,GAAKtP,EAAQrhC,EAAMk9D,EAAwBvsB,GAAI,EAAGvzB,UAAWx/B,GAAaq/E,EACtG94C,GAAI+4C,EAAwB/4C,GAAKkd,EAAQrhC,EAAMk9D,EAAwB/4C,GAAI,EAAG/G,UAAWx/B,GAAaq/E,EACtG74C,GAAI84C,EAAwB94C,GAAKid,EAAQrhC,EAAMk9D,EAAwB94C,GAAI,EAAGhH,UAAWx/B,GAAaq/E,EACtGvrE,EAAGwrE,EAAwBxrE,EAAI2vC,EAAQrhC,EAAMk9D,EAAwBxrE,EAAG,EAAG,IAAM9T,GAAaq/E,EAC9F90E,EAAG+0E,EAAwB/0E,EAAIk5C,EAAQrhC,EAAMk9D,EAAwB/0E,EAAG,EAAG,EAAGvK,GAAaq/E,EAC3F1xE,EAAG2xE,EAAwB3xE,EAAI81C,EAAQrhC,EAAMk9D,EAAwB3xE,EAAG,EAAG,IAAM3N,GAAaq/E,EAC9FjrE,EAAGkrE,EAAwBlrE,EAAIqvC,EAAQrhC,EAAMk9D,EAAwBlrE,EAAG,EAAG,EAAGpU,GAAaq/E,EAC3FzH,GAAI0H,EAAwB1H,GAAKn0B,EAAQrhC,EAAMk9D,EAAwB1H,GAAI,EAAG,EAAG53E,GAAaq/E,EAC9Fvc,GAAIwc,EAAwBxc,GAAKrf,EAAQrhC,EAAMk9D,EAAwBxc,GAAI,EAAG,EAAG9iE,GAAaq/E,EAC9FxH,GAAIyH,EAAwBzH,GAAKp0B,EAAQrhC,EAAMk9D,EAAwBzH,GAAI,EAAG,EAAG73E,GAAaq/E,EAC9FjC,GAAIkC,EAAwBlC,GAAK35B,EAAQrhC,EAAMk9D,EAAwBlC,GAAI,EAAG,EAAGp9E,GAAaq/E,EAC9FhC,GAAIiC,EAAwBjC,GAAK55B,EAAQrhC,EAAMk9D,EAAwBjC,GAAI,EAAG,IAAMr9E,GAAaq/E,EACjG/B,GAAIgC,EAAwBhC,GAAK75B,EAAQrhC,EAAMk9D,EAAwBhC,GAAI,EAAG,IAAMt9E,GAAaq/E,EACjGh0E,EAAGi0E,EAAwBj0E,EAAIo4C,EAAQrhC,EAAMk9D,EAAwBj0E,EAAG,EAAG,EAAGrL,GAAaq/E,GAE7F34E,KAAKoN,EAAIoqE,iBAAiBgB,oBAAoB98D,EAAMg9D,EAActrE,EAAG9T,GACrE0G,KAAKoN,EAAEzI,EAAI+zE,EAActrE,EAAEzI,CAC7B,CAEA,SAASk0E,qBAAqBva,EAAUwa,EAAYp9D,GAClD1b,KAAKi8C,eAAgB,EACrBj8C,KAAK+4E,gBAAiB,EACtB/4E,KAAKqxE,UAAY,EACjBrxE,KAAKg5E,UAAY1a,EACjBt+D,KAAKi5E,YAAcH,EACnB94E,KAAKk5E,MAAQx9D,EACb1b,KAAKm5E,eAAiB3hD,iBAAiBx3B,KAAKg5E,UAAUn1E,EAAE1T,QACxD6P,KAAKo5E,UAAY,CAAC,EAClBp5E,KAAKq5E,aAAe,CAClBC,UAAW,CAAC,GAEdt5E,KAAKu5E,gBAAkB,GACvBv5E,KAAKw5E,oBAAqB,EAC1Bx5E,KAAKs9C,6BAA6B5hC,EACpC,CAwoBA,SAAS+9D,eAAgB,CAtoBzBZ,qBAAqB3nF,UAAUwoF,iBAAmB,WAChD,IAAInkF,EAEAmjF,EADA96E,EAAMoC,KAAKg5E,UAAUn1E,EAAE1T,OAEvB4sD,EAAUD,gBAAgBC,QAE9B,IAAKxnD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBmjF,EAAgB14E,KAAKg5E,UAAUn1E,EAAEtO,GACjCyK,KAAKm5E,eAAe5jF,GAAK,IAAIkjF,yBAAyBz4E,KAAKk5E,MAAOR,EAAe14E,MAG/EA,KAAKg5E,UAAUtrE,GAAK,MAAO1N,KAAKg5E,UAAUtrE,GAC5C1N,KAAKo5E,UAAY,CACfv1E,EAAGk5C,EAAQ/8C,KAAKk5E,MAAOl5E,KAAKg5E,UAAUtrE,EAAE7J,EAAG,EAAG,EAAG7D,MACjDyqB,EAAGsyB,EAAQ/8C,KAAKk5E,MAAOl5E,KAAKg5E,UAAUtrE,EAAE+c,EAAG,EAAG,EAAGzqB,MACjD0M,EAAGqwC,EAAQ/8C,KAAKk5E,MAAOl5E,KAAKg5E,UAAUtrE,EAAEhB,EAAG,EAAG,EAAG1M,MACjDY,EAAGm8C,EAAQ/8C,KAAKk5E,MAAOl5E,KAAKg5E,UAAUtrE,EAAE9M,EAAG,EAAG,EAAGZ,MACjD0N,EAAGqvC,EAAQ/8C,KAAKk5E,MAAOl5E,KAAKg5E,UAAUtrE,EAAEA,EAAG,EAAG,EAAG1N,MACjDoO,EAAGpO,KAAKk5E,MAAMpY,YAAYsG,gBAAgBpnE,KAAKg5E,UAAUtrE,EAAEU,IAE7DpO,KAAK+4E,gBAAiB,GAEtB/4E,KAAK+4E,gBAAiB,EAGxB/4E,KAAKq5E,aAAaC,UAAYv8B,EAAQ/8C,KAAKk5E,MAAOl5E,KAAKg5E,UAAU5qE,EAAEvK,EAAG,EAAG,EAAG7D,KAC9E,EAEA64E,qBAAqB3nF,UAAUyoF,YAAc,SAAUx6C,EAAcq6C,GAGnE,GAFAx5E,KAAKw5E,mBAAqBA,EAErBx5E,KAAK47C,MAAS57C,KAAKi8C,eAAkBu9B,GAAwBx5E,KAAK+4E,gBAAmB/4E,KAAKo5E,UAAUhrE,EAAEwtC,KAA3G,CAIA57C,KAAKi8C,eAAgB,EACrB,IAMI29B,EACAC,EACAtkF,EACAqI,EAEAk8E,EACAC,EACAC,EACAvmC,EACA9e,EACAslD,EACAC,EACAlpB,EACAthB,EACArgB,EACAukB,EACAzB,EACAe,EACAinC,EACA/pE,EAzBAkpE,EAAYt5E,KAAKq5E,aAAaC,UAAU3jF,EACxC6gF,EAAYx2E,KAAKm5E,eACjB7a,EAAWt+D,KAAKg5E,UAChBoB,EAAep6E,KAAKmnE,QACpB2R,EAAa94E,KAAKi5E,YAClBoB,EAAuBr6E,KAAKu5E,gBAAgBppF,OAK5CilF,EAAUj2C,EAAazyB,EAiB3B,GAAI1M,KAAK+4E,eAAgB,CAGvB,GAFA3oE,EAAOpQ,KAAKo5E,UAAUhrE,GAEjBpO,KAAKo5E,UAAUjrE,GAAKnO,KAAKo5E,UAAUx9B,KAAM,CAC5C,IAYI5H,EAZA4L,EAAQxvC,EAAKza,EAejB,IAbIqK,KAAKo5E,UAAUx4E,EAAEjL,IACnBiqD,EAAQA,EAAM9gD,WAIhBg7E,EAAW,CACTQ,QAAS,EACTjrD,SAAU,IAEZzxB,EAAMgiD,EAAMnO,QAAU,EAEtBU,EAAc,EAET58C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBy+C,EAAa6C,IAAIhD,gBAAgB+L,EAAMjqD,EAAEJ,GAAIqqD,EAAMjqD,EAAEJ,EAAI,GAAI,CAACqqD,EAAM34C,EAAE1R,GAAG,GAAKqqD,EAAMjqD,EAAEJ,GAAG,GAAIqqD,EAAM34C,EAAE1R,GAAG,GAAKqqD,EAAMjqD,EAAEJ,GAAG,IAAK,CAACqqD,EAAMrqD,EAAEA,EAAI,GAAG,GAAKqqD,EAAMjqD,EAAEJ,EAAI,GAAG,GAAIqqD,EAAMrqD,EAAEA,EAAI,GAAG,GAAKqqD,EAAMjqD,EAAEJ,EAAI,GAAG,KACxMukF,EAASQ,SAAWtmC,EAAWP,cAC/BqmC,EAASzqD,SAAS75B,KAAKw+C,GACvB7B,GAAe6B,EAAWP,cAG5Bl+C,EAAIqI,EAEAwS,EAAKza,EAAE8K,IACTuzC,EAAa6C,IAAIhD,gBAAgB+L,EAAMjqD,EAAEJ,GAAIqqD,EAAMjqD,EAAE,GAAI,CAACiqD,EAAM34C,EAAE1R,GAAG,GAAKqqD,EAAMjqD,EAAEJ,GAAG,GAAIqqD,EAAM34C,EAAE1R,GAAG,GAAKqqD,EAAMjqD,EAAEJ,GAAG,IAAK,CAACqqD,EAAMrqD,EAAE,GAAG,GAAKqqD,EAAMjqD,EAAE,GAAG,GAAIiqD,EAAMrqD,EAAE,GAAG,GAAKqqD,EAAMjqD,EAAE,GAAG,KACpLmkF,EAASQ,SAAWtmC,EAAWP,cAC/BqmC,EAASzqD,SAAS75B,KAAKw+C,GACvB7B,GAAe6B,EAAWP,eAG5BzzC,KAAKo5E,UAAUmB,GAAKT,CACtB,CAUA,GARAA,EAAW95E,KAAKo5E,UAAUmB,GAC1BR,EAAgB/5E,KAAKo5E,UAAU3uD,EAAE90B,EACjCukF,EAAa,EACbD,EAAW,EACXxmC,EAAgB,EAChB9e,GAAO,EACPtF,EAAWyqD,EAASzqD,SAEhB0qD,EAAgB,GAAK3pE,EAAKza,EAAE8K,EAS9B,IARIq5E,EAASQ,QAAUpoF,KAAK+S,IAAI80E,KAC9BA,GAAiB7nF,KAAK+S,IAAI80E,GAAiBD,EAASQ,SAKtDL,GADAvqC,EAASrgB,EADT6qD,EAAa7qD,EAASl/B,OAAS,GACDu/C,QACZv/C,OAAS,EAEpB4pF,EAAgB,GACrBA,GAAiBrqC,EAAOuqC,GAAUrmC,eAClCqmC,GAAY,GAEG,IAGbA,GADAvqC,EAASrgB,EADT6qD,GAAc,GACgBxqC,QACZv/C,OAAS,GAMjC6gE,GADAthB,EAASrgB,EAAS6qD,GAAYxqC,QACXuqC,EAAW,GAE9BrmC,GADAomC,EAAetqC,EAAOuqC,IACOrmC,aAC/B,CAEAh2C,EAAMw3E,EAAQjlF,OACdypF,EAAO,EACPC,EAAO,EACP,IAEInB,EAEA39E,EACAyiC,EACAg9C,EAEA7+B,EARA8+B,EAAgC,IAAzBt7C,EAAamzC,UAAkB,KACtCoI,GAAY,EAMhBl9C,EAAOg5C,EAAUrmF,OAEjB,IACIwqF,EACAC,EACAC,EAKAC,EACA1e,EACA8U,EACAC,EACArtE,EACAi3E,EACAC,EACAC,EAGAC,EAlBA9iC,GAAO,EAIP+iC,EAAcpB,EACdqB,EAAiBlB,EACjBmB,EAAepB,EACfzE,GAAe,EASf8F,GAAU,GACVC,GAAUv7E,KAAKw7E,kBAGnB,GAAuB,IAAnBr8C,EAAapkC,GAA8B,IAAnBokC,EAAapkC,EAAS,CAChD,IAAIo7E,GAAwB,EACxBsF,GAA0B,EAC1BC,GAAuC,IAAnBv8C,EAAapkC,GAAW,IAAO,EACnD68C,GAAY,EACZ+jC,IAAY,EAEhB,IAAKpmF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAI6/E,EAAQ7/E,GAAG4Y,EAAG,CAKhB,IAJIgoE,KACFA,IAAyBsF,IAGpB7jC,GAAYriD,GACjB6/E,EAAQx9B,IAAWu+B,sBAAwBA,GAC3Cv+B,IAAa,EAGfu+B,GAAwB,EACxBwF,IAAY,CACd,KAAO,CACL,IAAK5gF,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,GACzB29E,EAAgBlC,EAAUz7E,GAAG8I,GAEXc,EAAE0yC,WACdskC,IAAgC,IAAnBx8C,EAAapkC,IAC5B0gF,IAA2B/C,EAAc/zE,EAAEhP,EAAI+lF,KAIjD//B,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,aAEhE3mF,OACPgmF,IAAyBuC,EAAc/zE,EAAEhP,EAAIgmD,EAAK,GAAK+/B,GAEvDvF,IAAyBuC,EAAc/zE,EAAEhP,EAAIgmD,EAAO+/B,IAK1DC,IAAY,CACd,CAOF,IAJIxF,KACFA,IAAyBsF,IAGpB7jC,GAAYriD,GACjB6/E,EAAQx9B,IAAWu+B,sBAAwBA,GAC3Cv+B,IAAa,CAEjB,CAGA,IAAKriD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAI3B,GAHA6kF,EAAal6B,QACb46B,EAAc,EAEV1F,EAAQ7/E,GAAG4Y,EACbyrE,EAAO,EACPC,GAAQ16C,EAAakzC,QACrBwH,GAAQa,EAAY,EAAI,EACxBX,EAAgBoB,EAChBT,GAAY,EAER16E,KAAK+4E,iBAEPkB,EAAWoB,EAEXrqB,GADAthB,EAASrgB,EAFT6qD,EAAakB,GAEiB1rC,QACXuqC,EAAW,GAE9BrmC,GADAomC,EAAetqC,EAAOuqC,IACOrmC,cAC7BH,EAAgB,GAGlB6nC,GAAU,GACVL,EAAW,GACXF,EAAW,GACXG,EAAU,GACVK,GAAUv7E,KAAKw7E,sBACV,CACL,GAAIx7E,KAAK+4E,eAAgB,CACvB,GAAIvD,IAAgBJ,EAAQ7/E,GAAGuwC,KAAM,CACnC,OAAQ3G,EAAapkC,GACnB,KAAK,EACHg/E,GAAiB5nC,EAAchT,EAAa4yC,WAAWqD,EAAQ7/E,GAAGuwC,MAClE,MAEF,KAAK,EACHi0C,IAAkB5nC,EAAchT,EAAa4yC,WAAWqD,EAAQ7/E,GAAGuwC,OAAS,EAOhF0vC,EAAcJ,EAAQ7/E,GAAGuwC,IAC3B,CAEIsS,IAAQg9B,EAAQ7/E,GAAG6iD,MACjBg9B,EAAQh9B,KACV2hC,GAAiB3E,EAAQh9B,GAAKg+B,OAGhC2D,GAAiB3E,EAAQ7/E,GAAG0gF,GAAK,EACjC79B,EAAMg9B,EAAQ7/E,GAAG6iD,KAGnB2hC,GAAiBT,EAAU,GAAKlE,EAAQ7/E,GAAG0gF,GAAK,KAChD,IAAI2F,GAAiB,EAErB,IAAK7gF,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,GACzB29E,EAAgBlC,EAAUz7E,GAAG8I,GAEX6J,EAAE2pC,YAElBsE,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,aAEhE3mF,OACPyrF,IAAkBlD,EAAchrE,EAAE/X,EAAE,GAAKgmD,EAAK,GAE9CigC,IAAkBlD,EAAchrE,EAAE/X,EAAE,GAAKgmD,GAIzC+8B,EAAc70E,EAAEwzC,YAElBsE,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,aAEhE3mF,OACPyrF,IAAkBlD,EAAc70E,EAAElO,EAAE,GAAKgmD,EAAK,GAE9CigC,IAAkBlD,EAAc70E,EAAElO,EAAE,GAAKgmD,GAY/C,IAPAhnB,GAAO,EAEH30B,KAAKo5E,UAAUv1E,EAAElO,IACnBokF,EAAgC,GAAhB3E,EAAQ,GAAGa,IAAY9jC,EAAcnyC,KAAKo5E,UAAU3uD,EAAE90B,EAAoB,GAAhBy/E,EAAQ,GAAGa,GAA4C,GAAjCb,EAAQA,EAAQjlF,OAAS,GAAG8lF,IAAY79B,GAAOx6C,EAAM,GACrJm8E,GAAiB/5E,KAAKo5E,UAAU3uD,EAAE90B,GAG7Bg/B,GACD8e,EAAgBG,GAAiBmmC,EAAgB6B,KAAmBlsC,GACtEwD,GAAQ6mC,EAAgB6B,GAAiBnoC,GAAiBumC,EAAapmC,cACvEgnC,EAAW5pB,EAAU3d,MAAM,IAAM2mC,EAAa3mC,MAAM,GAAK2d,EAAU3d,MAAM,IAAMH,EAC/E2nC,EAAW7pB,EAAU3d,MAAM,IAAM2mC,EAAa3mC,MAAM,GAAK2d,EAAU3d,MAAM,IAAMH,EAC/EknC,EAAat2B,WAAWw1B,EAAU,GAAKlE,EAAQ7/E,GAAG0gF,GAAK,MAASqD,EAAU,GAAKmB,EAAQ,KACvF9lD,GAAO,GACE+a,IACT+D,GAAiBumC,EAAapmC,eAC9BqmC,GAAY,IAEIvqC,EAAOv/C,SACrB8pF,EAAW,EAGN5qD,EAFL6qD,GAAc,GAYZxqC,EAASrgB,EAAS6qD,GAAYxqC,OAT1Bt/B,EAAKza,EAAE8K,GACTw5E,EAAW,EAEXvqC,EAASrgB,EADT6qD,EAAa,GACiBxqC,SAE9B+D,GAAiBumC,EAAapmC,cAC9BlE,EAAS,OAOXA,IACFshB,EAAYgpB,EAEZpmC,GADAomC,EAAetqC,EAAOuqC,IACOrmC,gBAKnC+mC,EAAOvF,EAAQ7/E,GAAG0gF,GAAK,EAAIb,EAAQ7/E,GAAGsR,IACtCuzE,EAAat2B,WAAW62B,EAAM,EAAG,EACnC,MACEA,EAAOvF,EAAQ7/E,GAAG0gF,GAAK,EAAIb,EAAQ7/E,GAAGsR,IACtCuzE,EAAat2B,WAAW62B,EAAM,EAAG,GAEjCP,EAAat2B,WAAWw1B,EAAU,GAAKlE,EAAQ7/E,GAAG0gF,GAAK,MAAQqD,EAAU,GAAKmB,EAAO,IAAM,GAG7F,IAAK1/E,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,GACzB29E,EAAgBlC,EAAUz7E,GAAG8I,GAEXc,EAAE0yC,WAElBsE,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,YAE5D,IAAT8C,GAAiC,IAAnBz6C,EAAapkC,IACzBiF,KAAK+4E,eACHp9B,EAAKxrD,OACP4pF,GAAiBrB,EAAc/zE,EAAEhP,EAAIgmD,EAAK,GAE1Co+B,GAAiBrB,EAAc/zE,EAAEhP,EAAIgmD,EAE9BA,EAAKxrD,OACdypF,GAAQlB,EAAc/zE,EAAEhP,EAAIgmD,EAAK,GAEjCi+B,GAAQlB,EAAc/zE,EAAEhP,EAAIgmD,IAsBpC,IAhBIxc,EAAaizC,kBACflB,EAAK/xC,EAAa+xC,IAAM,GAGtB/xC,EAAagzC,kBAEb/V,EADEj9B,EAAai9B,GACV,CAACj9B,EAAai9B,GAAG,GAAIj9B,EAAai9B,GAAG,GAAIj9B,EAAai9B,GAAG,IAEzD,CAAC,EAAG,EAAG,IAIZj9B,EAAa+yC,eAAiB/yC,EAAagyC,KAC7CA,EAAK,CAAChyC,EAAagyC,GAAG,GAAIhyC,EAAagyC,GAAG,GAAIhyC,EAAagyC,GAAG,KAG3Dp2E,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,GACzB29E,EAAgBlC,EAAUz7E,GAAG8I,GAEXA,EAAEwzC,YAElBsE,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,aAEhE3mF,OACPiqF,EAAat2B,WAAW40B,EAAc70E,EAAElO,EAAE,GAAKgmD,EAAK,IAAK+8B,EAAc70E,EAAElO,EAAE,GAAKgmD,EAAK,GAAI+8B,EAAc70E,EAAElO,EAAE,GAAKgmD,EAAK,IAErHy+B,EAAat2B,WAAW40B,EAAc70E,EAAElO,EAAE,GAAKgmD,GAAO+8B,EAAc70E,EAAElO,EAAE,GAAKgmD,EAAM+8B,EAAc70E,EAAElO,EAAE,GAAKgmD,IAKhH,IAAK5gD,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,GACzB29E,EAAgBlC,EAAUz7E,GAAG8I,GAEXuJ,EAAEiqC,YAElBsE,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,aAEhE3mF,OACPiqF,EAAaz2B,MAAM,GAAK+0B,EAActrE,EAAEzX,EAAE,GAAK,GAAKgmD,EAAK,GAAI,GAAK+8B,EAActrE,EAAEzX,EAAE,GAAK,GAAKgmD,EAAK,GAAI,GAEvGy+B,EAAaz2B,MAAM,GAAK+0B,EAActrE,EAAEzX,EAAE,GAAK,GAAKgmD,EAAM,GAAK+8B,EAActrE,EAAEzX,EAAE,GAAK,GAAKgmD,EAAM,IAKvG,IAAK5gD,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAAG,CAqD5B,GApDA29E,EAAgBlC,EAAUz7E,GAAG8I,EAE7B83C,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,YAErE4B,EAAc74C,GAAGwX,WACfsE,EAAKxrD,OACPiqF,EAAa12B,cAAcg1B,EAAc74C,GAAGlqC,EAAIgmD,EAAK,GAAI+8B,EAAc54C,GAAGnqC,EAAIgmD,EAAK,IAEnFy+B,EAAa12B,cAAcg1B,EAAc74C,GAAGlqC,EAAIgmD,EAAM+8B,EAAc54C,GAAGnqC,EAAIgmD,IAI3E+8B,EAAc93E,EAAEy2C,WACdsE,EAAKxrD,OACPiqF,EAAa92B,SAASo1B,EAAc93E,EAAEjL,EAAIgmD,EAAK,IAE/Cy+B,EAAa92B,SAASo1B,EAAc93E,EAAEjL,EAAIgmD,IAI1C+8B,EAAcrsB,GAAGhV,WACfsE,EAAKxrD,OACPiqF,EAAa/2B,QAAQq1B,EAAcrsB,GAAG12D,EAAIgmD,EAAK,IAE/Cy+B,EAAa/2B,QAAQq1B,EAAcrsB,GAAG12D,EAAIgmD,IAI1C+8B,EAAczqE,GAAGopC,WACfsE,EAAKxrD,OACPiqF,EAAah3B,QAAQs1B,EAAczqE,GAAGtY,EAAIgmD,EAAK,IAE/Cy+B,EAAah3B,QAAQs1B,EAAczqE,GAAGtY,EAAIgmD,IAI1C+8B,EAAczxE,EAAEowC,WACdsE,EAAKxrD,OACP2qF,IAAgBpC,EAAczxE,EAAEtR,EAAIgmD,EAAK,GAAKm/B,GAAen/B,EAAK,GAElEm/B,IAAgBpC,EAAczxE,EAAEtR,EAAIgmD,EAAOm/B,GAAen/B,GAI1Dxc,EAAaizC,iBAAmBsG,EAAcxH,GAAG75B,WAC/CsE,EAAKxrD,OACP+gF,GAAMwH,EAAcxH,GAAGv7E,EAAIgmD,EAAK,GAEhCu1B,GAAMwH,EAAcxH,GAAGv7E,EAAIgmD,GAI3Bxc,EAAagzC,iBAAmBuG,EAActc,GAAG/kB,SACnD,IAAKvzC,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClB63C,EAAKxrD,OACPisE,EAAGt4D,KAAO40E,EAActc,GAAGzmE,EAAEmO,GAAKs4D,EAAGt4D,IAAM63C,EAAK,GAEhDygB,EAAGt4D,KAAO40E,EAActc,GAAGzmE,EAAEmO,GAAKs4D,EAAGt4D,IAAM63C,EAKjD,GAAIxc,EAAa+yC,eAAiB/yC,EAAagyC,GAAI,CACjD,GAAIuH,EAAcvH,GAAG95B,SACnB,IAAKvzC,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClB63C,EAAKxrD,OACPghF,EAAGrtE,KAAO40E,EAAcvH,GAAGx7E,EAAEmO,GAAKqtE,EAAGrtE,IAAM63C,EAAK,GAEhDw1B,EAAGrtE,KAAO40E,EAAcvH,GAAGx7E,EAAEmO,GAAKqtE,EAAGrtE,IAAM63C,EAK7C+8B,EAAchC,GAAGr/B,WAEjB85B,EADEx1B,EAAKxrD,OACFgrC,YAAYg2C,EAAIuH,EAAchC,GAAG/gF,EAAIgmD,EAAK,IAE1CxgB,YAAYg2C,EAAIuH,EAAchC,GAAG/gF,EAAIgmD,IAI1C+8B,EAAc/B,GAAGt/B,WAEjB85B,EADEx1B,EAAKxrD,OACF4qC,mBAAmBo2C,EAAIuH,EAAc/B,GAAGhhF,EAAIgmD,EAAK,IAEjD5gB,mBAAmBo2C,EAAIuH,EAAc/B,GAAGhhF,EAAIgmD,IAIjD+8B,EAAc9B,GAAGv/B,WAEjB85B,EADEx1B,EAAKxrD,OACF+qC,mBAAmBi2C,EAAIuH,EAAc9B,GAAGjhF,EAAIgmD,EAAK,IAEjDzgB,mBAAmBi2C,EAAIuH,EAAc9B,GAAGjhF,EAAIgmD,GAGvD,CACF,CAEA,IAAK5gD,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,GACzB29E,EAAgBlC,EAAUz7E,GAAG8I,GAEX6J,EAAE2pC,WAElBsE,EADmB66B,EAAUz7E,GAAGqS,EACR4qE,QAAQ5C,EAAQ7/E,GAAG2gF,UAAUn7E,GAAIujE,EAASz6D,EAAE9I,GAAGqS,EAAE0pE,YAErE92E,KAAK+4E,eACHp9B,EAAKxrD,OACPiqF,EAAat2B,UAAU,EAAG40B,EAAchrE,EAAE/X,EAAE,GAAKgmD,EAAK,IAAK+8B,EAAchrE,EAAE/X,EAAE,GAAKgmD,EAAK,IAEvFy+B,EAAat2B,UAAU,EAAG40B,EAAchrE,EAAE/X,EAAE,GAAKgmD,GAAO+8B,EAAchrE,EAAE/X,EAAE,GAAKgmD,GAExEA,EAAKxrD,OACdiqF,EAAat2B,UAAU40B,EAAchrE,EAAE/X,EAAE,GAAKgmD,EAAK,GAAI+8B,EAAchrE,EAAE/X,EAAE,GAAKgmD,EAAK,IAAK+8B,EAAchrE,EAAE/X,EAAE,GAAKgmD,EAAK,IAEpHy+B,EAAat2B,UAAU40B,EAAchrE,EAAE/X,EAAE,GAAKgmD,EAAM+8B,EAAchrE,EAAE/X,EAAE,GAAKgmD,GAAO+8B,EAAchrE,EAAE/X,EAAE,GAAKgmD,IAiB/G,GAZIxc,EAAaizC,kBACf2I,EAAW7J,EAAK,EAAI,EAAIA,GAGtB/xC,EAAagzC,kBACf6I,EAAW,OAAS9oF,KAAKuc,MAAc,IAAR2tD,EAAG,IAAY,IAAMlqE,KAAKuc,MAAc,IAAR2tD,EAAG,IAAY,IAAMlqE,KAAKuc,MAAc,IAAR2tD,EAAG,IAAY,KAG5Gj9B,EAAa+yC,eAAiB/yC,EAAagyC,KAC7C8J,EAAW,OAAS/oF,KAAKuc,MAAc,IAAR0iE,EAAG,IAAY,IAAMj/E,KAAKuc,MAAc,IAAR0iE,EAAG,IAAY,IAAMj/E,KAAKuc,MAAc,IAAR0iE,EAAG,IAAY,KAG5GnxE,KAAK+4E,eAAgB,CAIvB,GAHAqB,EAAat2B,UAAU,GAAI3kB,EAAa6yC,IACxCoI,EAAat2B,UAAU,EAAGw1B,EAAU,GAAKmB,EAAO,IAAOZ,EAAM,GAEzD75E,KAAKo5E,UAAU1rE,EAAE/X,EAAG,CACtBwkF,GAAYH,EAAa3mC,MAAM,GAAK2d,EAAU3d,MAAM,KAAO2mC,EAAa3mC,MAAM,GAAK2d,EAAU3d,MAAM,IACnG,IAAIkd,GAA4B,IAAtBr+D,KAAK2pF,KAAK1B,GAAkBjoF,KAAKqb,GAEvCysE,EAAa3mC,MAAM,GAAK2d,EAAU3d,MAAM,KAC1Ckd,IAAO,KAGT6pB,EAAap3B,QAAQuN,GAAMr+D,KAAKqb,GAAK,IACvC,CAEA6sE,EAAat2B,UAAU82B,EAAUC,EAAU,GAC3Cd,GAAiBT,EAAU,GAAKlE,EAAQ7/E,GAAG0gF,GAAK,KAE5Cb,EAAQ7/E,EAAI,IAAM6iD,IAAQg9B,EAAQ7/E,EAAI,GAAG6iD,MAC3C2hC,GAAiB3E,EAAQ7/E,GAAG0gF,GAAK,EACjC8D,GAAmC,KAAlB56C,EAAaq0B,GAAar0B,EAAamzC,UAE5D,KAAO,CAQL,OAPA8H,EAAat2B,UAAU81B,EAAMC,EAAM,GAE/B16C,EAAa8yC,IAEfmI,EAAat2B,UAAU3kB,EAAa8yC,GAAG,GAAI9yC,EAAa8yC,GAAG,GAAK9yC,EAAauyC,OAAQ,GAG/EvyC,EAAapkC,GACnB,KAAK,EACHq/E,EAAat2B,UAAUsxB,EAAQ7/E,GAAG4gF,sBAAwBh3C,EAAa0yC,eAAiB1yC,EAAawyC,SAAWxyC,EAAa4yC,WAAWqD,EAAQ7/E,GAAGuwC,OAAQ,EAAG,GAC9J,MAEF,KAAK,EACHs0C,EAAat2B,UAAUsxB,EAAQ7/E,GAAG4gF,sBAAwBh3C,EAAa0yC,eAAiB1yC,EAAawyC,SAAWxyC,EAAa4yC,WAAWqD,EAAQ7/E,GAAGuwC,OAAS,EAAG,EAAG,GAOtKs0C,EAAat2B,UAAU,GAAI3kB,EAAa6yC,IACxCoI,EAAat2B,UAAU62B,EAAM,EAAG,GAChCP,EAAat2B,UAAUw1B,EAAU,GAAKlE,EAAQ7/E,GAAG0gF,GAAK,KAAOqD,EAAU,GAAKmB,EAAO,IAAM,GACzFb,GAAQxE,EAAQ7/E,GAAGmX,EAAsB,KAAlByyB,EAAaq0B,GAAar0B,EAAamzC,SAChE,CAEmB,SAAfwG,EACFwC,GAAUlB,EAAajzB,QACC,QAAf2xB,EACTwC,GAAUlB,EAAa9yB,UAEvBi0B,GAAU,CAACnB,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,GAAI2tD,EAAa3tD,MAAM,IAAK2tD,EAAa3tD,MAAM,IAAK2tD,EAAa3tD,MAAM,IAAK2tD,EAAa3tD,MAAM,IAAK2tD,EAAa3tD,MAAM,IAAK2tD,EAAa3tD,MAAM,KAG9XyuD,EAAUJ,CACZ,CAEIT,GAAwB9kF,GAC1BilF,EAAc,IAAIvJ,YAAYiK,EAASH,EAAUC,EAAUC,EAAUK,GAASC,IAC9Ev7E,KAAKu5E,gBAAgB/jF,KAAKglF,GAC1BH,GAAwB,EACxBr6E,KAAKw5E,oBAAqB,IAE1BgB,EAAcx6E,KAAKu5E,gBAAgBhkF,GACnCyK,KAAKw5E,mBAAqBgB,EAAYnG,OAAO6G,EAASH,EAAUC,EAAUC,EAAUK,GAASC,KAAYv7E,KAAKw5E,mBAElH,CArlBA,CAslBF,EAEAX,qBAAqB3nF,UAAUurD,SAAW,WACpCz8C,KAAKk5E,MAAMjwC,WAAW6S,UAAY97C,KAAKqxE,WAI3CrxE,KAAKqxE,SAAWrxE,KAAKk5E,MAAMjwC,WAAW6S,QACtC97C,KAAKq9C,2BACP,EAEAw7B,qBAAqB3nF,UAAUi2E,QAAU,IAAIzkB,OAC7Cm2B,qBAAqB3nF,UAAUsqF,kBAAoB,GACnDxmD,gBAAgB,CAACkoB,0BAA2B27B,sBAI5CY,aAAavoF,UAAU83E,YAAc,SAAU9oD,EAAM+oB,EAAY3K,GAC/Dt+B,KAAKw5E,oBAAqB,EAC1Bx5E,KAAK82C,YACL92C,KAAK2/D,aAAaz/C,EAAM+oB,EAAY3K,GACpCt+B,KAAKi4E,aAAe,IAAI7G,aAAapxE,KAAMkgB,EAAKvb,EAAG3E,KAAKm9C,mBACxDn9C,KAAK87E,aAAe,IAAIjD,qBAAqB34D,EAAKvb,EAAG3E,KAAK84E,WAAY94E,MACtEA,KAAK8lE,cAAc5lD,EAAM+oB,EAAY3K,GACrCt+B,KAAKirE,gBACLjrE,KAAKo9D,iBACLp9D,KAAKopE,sBACLppE,KAAKqpE,0BACLrpE,KAAKqqE,6BACLrqE,KAAKmrE,gBACLnrE,KAAK8sC,OACL9sC,KAAK87E,aAAapC,iBAAiB15E,KAAKm9C,kBAC1C,EAEAs8B,aAAavoF,UAAU+1C,aAAe,SAAUvoC,GAC9CsB,KAAK47C,MAAO,EACZ57C,KAAK49D,uBAAuBl/D,GAC5BsB,KAAKgiE,kBAAkBtjE,EAAKsB,KAAKq9D,UACnC,EAEAoc,aAAavoF,UAAU6qF,gBAAkB,SAAU3B,EAAch8C,GAC/D,IAAIrjC,EAEAwsE,EADA/pC,EAAOY,EAAOjuC,OAEd6rF,EAAW,GAEf,IAAKjhF,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACJ,OAAjBqjC,EAAOrjC,GAAGijC,KACZupC,EAAYnpC,EAAOrjC,GAAG0jC,GAAG36B,EACzBk4E,GAAY9M,iBAAiB3H,EAAWA,EAAUhyE,EAAEpF,QAAQ,EAAMiqF,IAItE,OAAO4B,CACT,EAEAvC,aAAavoF,UAAU87C,mBAAqB,SAAUiqC,EAASz2E,GAC7DR,KAAKi4E,aAAajrC,mBAAmBiqC,EAASz2E,EAChD,EAEAi5E,aAAavoF,UAAUkmF,cAAgB,SAAUC,GAC/Cr3E,KAAKi4E,aAAab,cAAcC,EAClC,EAEAoC,aAAavoF,UAAUomF,mBAAqB,SAAU2E,GACpDj8E,KAAKi4E,aAAaX,mBAAmB2E,EACvC,EAEAxC,aAAavoF,UAAUgrF,4BAA8B,SAAU/8C,EAAci7C,EAAc+B,EAAYvC,EAAMC,GAO3G,OANI16C,EAAa8yC,IACfmI,EAAat2B,UAAU3kB,EAAa8yC,GAAG,GAAI9yC,EAAa8yC,GAAG,GAAK9yC,EAAauyC,OAAQ,GAGvF0I,EAAat2B,UAAU,GAAI3kB,EAAa6yC,GAAI,GAEpC7yC,EAAapkC,GACnB,KAAK,EACHq/E,EAAat2B,UAAU3kB,EAAa0yC,eAAiB1yC,EAAawyC,SAAWxyC,EAAa4yC,WAAWoK,IAAc,EAAG,GACtH,MAEF,KAAK,EACH/B,EAAat2B,UAAU3kB,EAAa0yC,eAAiB1yC,EAAawyC,SAAWxyC,EAAa4yC,WAAWoK,IAAe,EAAG,EAAG,GAO9H/B,EAAat2B,UAAU81B,EAAMC,EAAM,EACrC,EAEAJ,aAAavoF,UAAUkrF,WAAa,SAAUC,GAC5C,MAAO,OAASnqF,KAAKuc,MAAqB,IAAf4tE,EAAU,IAAY,IAAMnqF,KAAKuc,MAAqB,IAAf4tE,EAAU,IAAY,IAAMnqF,KAAKuc,MAAqB,IAAf4tE,EAAU,IAAY,GACjI,EAEA5C,aAAavoF,UAAUorF,UAAY,IAAIrL,YAEvCwI,aAAavoF,UAAUy+B,QAAU,WAAa,EAE9C8pD,aAAavoF,UAAUqrF,aAAe,YAChCv8E,KAAKi4E,aAAar8B,MAAQ57C,KAAKi4E,aAAah8B,iBAC9Cj8C,KAAKw8E,eACLx8E,KAAKi4E,aAAah8B,eAAgB,EAClCj8C,KAAKi4E,aAAar8B,MAAO,EAE7B,EAEA,IAAI6gC,eAAiB,CACnBr+C,OAAQ,IAGV,SAASs+C,qBAAqBx8D,EAAM+oB,EAAY3K,GAC9Ct+B,KAAK28E,UAAY,GACjB38E,KAAK84E,WAAa,MAClB94E,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CAgVA,SAASs+C,cAAc18D,EAAM+oB,EAAY3K,GACvCt+B,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CAeA,SAASu+C,YAAY38D,EAAM+oB,EAAY3K,GACrCt+B,KAAK82C,YACL92C,KAAK2/D,aAAaz/C,EAAM+oB,EAAY3K,GACpCt+B,KAAK82C,YACL92C,KAAK8lE,cAAc5lD,EAAM+oB,EAAY3K,GACrCt+B,KAAKirE,eACP,CAoBA,SAAS6R,kBAAmB,CAkQ5B,SAASC,eAAgB,CA4GzB,SAASC,eAAe98D,EAAM+oB,EAAY3K,GACxCt+B,KAAKq9B,OAASnd,EAAKmd,OACnBr9B,KAAKi9E,YAAa,EAClBj9E,KAAKo9B,gBAAiB,EACtBp9B,KAAK+jE,gBAAkB,GACvB/jE,KAAKw0D,SAAWx0D,KAAKq9B,OAAS7F,iBAAiBx3B,KAAKq9B,OAAOltC,QAAU,GACrE6P,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,GACnCt+B,KAAKumC,GAAKrmB,EAAKqmB,GAAKuW,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKqmB,GAAI,EAAG0C,EAAWrB,UAAW5nC,MAAQ,CAC1FkgE,cAAc,EAElB,CAQA,SAASgd,YAAYhsD,EAAepB,GAClC9vB,KAAKkxB,cAAgBA,EACrBlxB,KAAKq9B,OAAS,KACdr9B,KAAKq7C,eAAiB,EACtBr7C,KAAKm9E,WAAanhD,SAAS,OAC3B,IAAIohD,EAAY,GAEhB,GAAIttD,GAAUA,EAAOutD,MAAO,CAC1B,IAAIC,EAAethD,SAAS,SACxBuhD,EAAU5iD,kBACd2iD,EAAahvC,aAAa,KAAMivC,GAChCD,EAAa7jB,YAAc3pC,EAAOutD,MAClCr9E,KAAKm9E,WAAW/3C,YAAYk4C,GAC5BF,GAAaG,CACf,CAEA,GAAIztD,GAAUA,EAAO0tD,YAAa,CAChC,IAAIC,EAAczhD,SAAS,QACvB0hD,EAAS/iD,kBACb8iD,EAAYnvC,aAAa,KAAMovC,GAC/BD,EAAYhkB,YAAc3pC,EAAO0tD,YACjCx9E,KAAKm9E,WAAW/3C,YAAYq4C,GAC5BL,GAAa,IAAMM,CACrB,CAEIN,GACFp9E,KAAKm9E,WAAW7uC,aAAa,kBAAmB8uC,GAGlD,IAAIl0C,EAAOlN,SAAS,QACpBh8B,KAAKm9E,WAAW/3C,YAAY8D,GAC5B,IAAIu7B,EAAczoC,SAAS,KAC3Bh8B,KAAKm9E,WAAW/3C,YAAYq/B,GAC5BzkE,KAAK4hE,aAAe6C,EACpBzkE,KAAKi+D,aAAe,CAClB0f,oBAAqB7tD,GAAUA,EAAO6tD,qBAAuB,gBAC7DpS,yBAA0Bz7C,GAAUA,EAAOy7C,0BAA4B,iBACvEqS,kBAAmB9tD,GAAUA,EAAO8tD,mBAAqB,UACzDpa,gBAAiB1zC,GAAUA,EAAO0zC,kBAAmB,EACrDtF,oBAAqBpuC,IAAuC,IAA7BA,EAAOouC,mBACtC2f,YAAa/tD,GAAUA,EAAO+tD,cAAe,EAC7CC,YAAahuD,GAAUA,EAAOguD,cAAe,EAC7CC,UAAWjuD,GAAUA,EAAOiuD,WAAa,GACzCtyD,GAAIqE,GAAUA,EAAOrE,IAAM,GAC3BuyD,UAAWluD,GAAUA,EAAOkuD,UAC5BC,WAAY,CACVh/E,MAAO6wB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAWh/E,OAAS,OACjEsyB,OAAQzB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAW1sD,QAAU,OACnEv2B,EAAG80B,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAWjjF,GAAK,KACzDsR,EAAGwjB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAW3xE,GAAK,MAE3DrN,MAAO6wB,GAAUA,EAAO7wB,MACxBsyB,OAAQzB,GAAUA,EAAOyB,OACzB2sD,gBAAiBpuD,QAAoC/9B,IAA1B+9B,EAAOouD,gBAAgCpuD,EAAOouD,gBAE3El+E,KAAKipC,WAAa,CAChB2S,MAAM,EACN3E,UAAW,EACX/N,KAAMA,EACN+0B,aAAcj+D,KAAKi+D,cAErBj+D,KAAKw0D,SAAW,GAChBx0D,KAAK+jE,gBAAkB,GACvB/jE,KAAKm+E,WAAY,EACjBn+E,KAAKkrC,aAAe,KACtB,CAQA,SAASkzC,wBACPp+E,KAAKq+E,UAAY,CAAC,EAClBr+E,KAAKs+E,aAAe,GACpBt+E,KAAKu+E,oBAAsB,CAC7B,CAt0BAvpD,gBAAgB,CAACuqC,YAAagF,iBAAkBqE,eAAgBC,iBAAkBrJ,aAAcsJ,qBAAsB2Q,cAAeiD,sBAErIA,qBAAqBxrF,UAAUi6E,cAAgB,WACzCnrE,KAAKkgB,KAAKs+D,cAAgBx+E,KAAKipC,WAAWe,YAAYzK,QACxDv/B,KAAKy+E,cAAgBziD,SAAS,QAElC,EAEA0gD,qBAAqBxrF,UAAUwtF,kBAAoB,SAAUC,GAM3D,IALA,IAAIppF,EAAI,EACJqI,EAAM+gF,EAAUxuF,OAChByuF,EAAe,GACfC,EAAqB,GAElBtpF,EAAIqI,GACL+gF,EAAUppF,KAAO6E,OAAOkpB,aAAa,KAAOq7D,EAAUppF,KAAO6E,OAAOkpB,aAAa,IACnFs7D,EAAappF,KAAKqpF,GAClBA,EAAqB,IAErBA,GAAsBF,EAAUppF,GAGlCA,GAAK,EAIP,OADAqpF,EAAappF,KAAKqpF,GACXD,CACT,EAEAlC,qBAAqBxrF,UAAU4tF,eAAiB,SAAU5+D,EAAMyjC,GAK9D,GAAIzjC,EAAKke,QAAUle,EAAKke,OAAOjuC,OAAQ,CACrC,IAAIwuD,EAAQz+B,EAAKke,OAAO,GAExB,GAAIugB,EAAMjgB,GAAI,CACZ,IAAIqgD,EAAYpgC,EAAMjgB,GAAGigB,EAAMjgB,GAAGvuC,OAAS,GAEvC4uF,EAAU3xE,IACZ2xE,EAAU3xE,EAAEtJ,EAAE,GAAK6/C,EACnBo7B,EAAU3xE,EAAEtJ,EAAE,GAAK6/C,EAEvB,CACF,CAEA,OAAOzjC,CACT,EAEAw8D,qBAAqBxrF,UAAUsrF,aAAe,WAE5C,IAAIjnF,EACAqI,EAFJoC,KAAKs8C,mBAAmBt8C,MAGxB,IAAIm/B,EAAen/B,KAAKi4E,aAAaxG,YACrCzxE,KAAKu5E,gBAAkB/hD,iBAAiB2H,EAAeA,EAAazyB,EAAEvc,OAAS,GAE3EgvC,EAAagyC,GACfnxE,KAAK4hE,aAAatzB,aAAa,OAAQtuC,KAAKo8E,WAAWj9C,EAAagyC,KAEpEnxE,KAAK4hE,aAAatzB,aAAa,OAAQ,iBAGrCnP,EAAai9B,KACfp8D,KAAK4hE,aAAatzB,aAAa,SAAUtuC,KAAKo8E,WAAWj9C,EAAai9B,KACtEp8D,KAAK4hE,aAAatzB,aAAa,eAAgBnP,EAAa+xC,KAG9DlxE,KAAK4hE,aAAatzB,aAAa,YAAanP,EAAamzC,WACzD,IAAInf,EAAWnzD,KAAKipC,WAAWe,YAAYwyB,cAAcr9B,EAAa1U,GAEtE,GAAI0oC,EAASuG,OACX15D,KAAK4hE,aAAatzB,aAAa,QAAS6kB,EAASuG,YAC5C,CACL15D,KAAK4hE,aAAatzB,aAAa,cAAe6kB,EAASqG,SACvD,IAAIlG,EAAUn0B,EAAam0B,QACvBD,EAASl0B,EAAak0B,OAC1BrzD,KAAK4hE,aAAatzB,aAAa,aAAc+kB,GAC7CrzD,KAAK4hE,aAAatzB,aAAa,cAAeglB,EAChD,CAEAtzD,KAAK4hE,aAAatzB,aAAa,aAAcnP,EAAax6B,GAC1D,IAGIq6E,EAHA5J,EAAUj2C,EAAazyB,GAAK,GAC5BuyE,IAAej/E,KAAKipC,WAAWe,YAAYzK,MAC/C3hC,EAAMw3E,EAAQjlF,OAEd,IAAIiqF,EAAep6E,KAAKmnE,QAEpBqX,EAAcx+E,KAAKkgB,KAAKs+D,YACxB5E,EAAO,EACPC,EAAO,EACPa,GAAY,EACZ/E,EAAmC,KAAlBx2C,EAAaq0B,GAAar0B,EAAamzC,UAE5D,IAAIkM,GAAgBS,GAAe9/C,EAAaykB,GA4CzC,CACL,IACIpkB,EADA0/C,EAAoBl/E,KAAK28E,UAAUxsF,OAGvC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAS3B,GARKyK,KAAK28E,UAAUpnF,KAClByK,KAAK28E,UAAUpnF,GAAK,CAClBjF,KAAM,KACN6uF,UAAW,KACXC,MAAO,QAINH,IAAeT,GAAqB,IAANjpF,EAAS,CAG1C,GAFAypF,EAAQE,EAAoB3pF,EAAIyK,KAAK28E,UAAUpnF,GAAGjF,KAAO0rC,SAASijD,EAAa,IAAM,QAEjFC,GAAqB3pF,EAAG,CAM1B,GALAypF,EAAM1wC,aAAa,iBAAkB,QACrC0wC,EAAM1wC,aAAa,kBAAmB,SACtC0wC,EAAM1wC,aAAa,oBAAqB,KACxCtuC,KAAK28E,UAAUpnF,GAAGjF,KAAO0uF,EAErBC,EAAY,CACd,IAAIE,EAAYnjD,SAAS,KACzBgjD,EAAM55C,YAAY+5C,GAClBn/E,KAAK28E,UAAUpnF,GAAG4pF,UAAYA,CAChC,CAEAn/E,KAAK28E,UAAUpnF,GAAGjF,KAAO0uF,EACzBh/E,KAAK4hE,aAAax8B,YAAY45C,EAChC,CAEAA,EAAMtyD,MAAM0M,QAAU,SACxB,CAkBA,GAhBAghD,EAAal6B,QAETs+B,IACEpJ,EAAQ7/E,GAAG4Y,IACbyrE,GAAQjE,EACRkE,GAAQ16C,EAAakzC,QACrBwH,GAAQa,EAAY,EAAI,EACxBA,GAAY,GAGd16E,KAAKk8E,4BAA4B/8C,EAAci7C,EAAchF,EAAQ7/E,GAAGuwC,KAAM8zC,EAAMC,GACpFD,GAAQxE,EAAQ7/E,GAAGmX,GAAK,EAExBktE,GAAQjE,GAGNsJ,EAAY,CAEd,IAAII,EAEJ,GAAmB,KAHnB7/C,EAAWx/B,KAAKipC,WAAWe,YAAYqyB,YAAYl9B,EAAaozC,UAAUh9E,GAAI49D,EAASE,OAAQrzD,KAAKipC,WAAWe,YAAYwyB,cAAcr9B,EAAa1U,GAAG+uC,UAG5I70D,EACX06E,EAAe,IAAIrC,eAAex9C,EAAStf,KAAMlgB,KAAKipC,WAAYjpC,UAC7D,CACL,IAAIkgB,EAAOu8D,eAEPj9C,EAAStf,MAAQsf,EAAStf,KAAKke,SACjCle,EAAOlgB,KAAK8+E,eAAet/C,EAAStf,KAAMif,EAAamzC,YAGzD+M,EAAe,IAAIvO,gBAAgB5wD,EAAMlgB,KAAKipC,WAAYjpC,KAC5D,CAEA,GAAIA,KAAK28E,UAAUpnF,GAAG6pF,MAAO,CAC3B,IAAIA,EAAQp/E,KAAK28E,UAAUpnF,GAAG6pF,MAC9Bp/E,KAAK28E,UAAUpnF,GAAG4pF,UAAUpiB,YAAYqiB,EAAMxd,cAC9Cwd,EAAMzvD,SACR,CAEA3vB,KAAK28E,UAAUpnF,GAAG6pF,MAAQC,EAC1BA,EAAaC,QAAS,EACtBD,EAAap4C,aAAa,GAC1Bo4C,EAAa5zC,cACbzrC,KAAK28E,UAAUpnF,GAAG4pF,UAAU/5C,YAAYi6C,EAAazd,cAGlC,IAAfpiC,EAAS76B,GACX3E,KAAK28E,UAAUpnF,GAAG4pF,UAAU7wC,aAAa,YAAa,SAAWnP,EAAamzC,UAAY,IAAM,IAAMnzC,EAAamzC,UAAY,IAAM,IAEzI,MACMkM,GACFQ,EAAM1wC,aAAa,YAAa,aAAe8rC,EAAa3tD,MAAM,IAAM,IAAM2tD,EAAa3tD,MAAM,IAAM,KAGzGuyD,EAAMvlB,YAAc2b,EAAQ7/E,GAAG6J,IAC/B4/E,EAAM/5C,eAAe,uCAAwC,YAAa,WAG9E,CAEIu5C,GAAeQ,GACjBA,EAAM1wC,aAAa,IAlJR,GAoJf,KA7IoD,CAClD,IAAIixC,EAAWv/E,KAAKy+E,cAChBe,EAAU,QAEd,OAAQrgD,EAAapkC,GACnB,KAAK,EACHykF,EAAU,MACV,MAEF,KAAK,EACHA,EAAU,SACV,MAEF,QACEA,EAAU,QAIdD,EAASjxC,aAAa,cAAekxC,GACrCD,EAASjxC,aAAa,iBAAkBqnC,GACxC,IAAIlc,EAAcz5D,KAAK0+E,kBAAkBv/C,EAAaozC,WAItD,IAHA30E,EAAM67D,EAAYtpE,OAClB0pF,EAAO16C,EAAa8yC,GAAK9yC,EAAa8yC,GAAG,GAAK9yC,EAAauyC,OAAS,EAE/Dn8E,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACxBypF,EAAQh/E,KAAK28E,UAAUpnF,GAAGjF,MAAQ0rC,SAAS,UACrCy9B,YAAcA,EAAYlkE,GAChCypF,EAAM1wC,aAAa,IAAK,GACxB0wC,EAAM1wC,aAAa,IAAKurC,GACxBmF,EAAMtyD,MAAM0M,QAAU,UACtBmmD,EAASn6C,YAAY45C,GAEhBh/E,KAAK28E,UAAUpnF,KAClByK,KAAK28E,UAAUpnF,GAAK,CAClBjF,KAAM,KACN8uF,MAAO,OAIXp/E,KAAK28E,UAAUpnF,GAAGjF,KAAO0uF,EACzBnF,GAAQ16C,EAAaqzC,gBAGvBxyE,KAAK4hE,aAAax8B,YAAYm6C,EAChC,CAmGA,KAAOhqF,EAAIyK,KAAK28E,UAAUxsF,QACxB6P,KAAK28E,UAAUpnF,GAAGjF,KAAKo8B,MAAM0M,QAAU,OACvC7jC,GAAK,EAGPyK,KAAKwpE,cAAe,CACtB,EAEAkT,qBAAqBxrF,UAAUktE,iBAAmB,WAIhD,GAHAp+D,KAAKinC,aAAajnC,KAAKs+B,KAAK+c,cAAgBr7C,KAAKkgB,KAAKyf,IACtD3/B,KAAKorE,qBAEDprE,KAAKwpE,aAAc,CACrBxpE,KAAKwpE,cAAe,EACpB,IAAIiW,EAAUz/E,KAAK4hE,aAAa/9B,UAChC7jC,KAAK0/E,KAAO,CACVpuD,IAAKmuD,EAAQnzE,EACbpL,KAAMu+E,EAAQzkF,EACdiE,MAAOwgF,EAAQxgF,MACfsyB,OAAQkuD,EAAQluD,OAEpB,CAEA,OAAOvxB,KAAK0/E,IACd,EAEAhD,qBAAqBxrF,UAAUurD,SAAW,WACxC,IAAIlnD,EAEA8pF,EADAzhF,EAAMoC,KAAK28E,UAAUxsF,OAIzB,IAFA6P,KAAKq7C,cAAgBr7C,KAAKs+B,KAAK+c,cAE1B9lD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACxB8pF,EAAer/E,KAAK28E,UAAUpnF,GAAG6pF,SAG/BC,EAAap4C,aAAajnC,KAAKs+B,KAAK+c,cAAgBr7C,KAAKkgB,KAAKyf,IAE1D0/C,EAAazjC,OACf57C,KAAK47C,MAAO,GAIpB,EAEA8gC,qBAAqBxrF,UAAUk6E,mBAAqB,WAGlD,GAFAprE,KAAKu8E,iBAEAv8E,KAAKkgB,KAAKs+D,aAAex+E,KAAK47C,QACjC57C,KAAK87E,aAAanC,YAAY35E,KAAKi4E,aAAaxG,YAAazxE,KAAKw5E,oBAE9Dx5E,KAAKw5E,oBAAsBx5E,KAAK87E,aAAatC,oBAAoB,CAEnE,IAAIjkF,EACAqI,EAFJoC,KAAKwpE,cAAe,EAGpB,IAGImW,EACAC,EACAP,EALA9F,EAAkBv5E,KAAK87E,aAAavC,gBACpCnE,EAAUp1E,KAAKi4E,aAAaxG,YAAY/kE,EAM5C,IALA9O,EAAMw3E,EAAQjlF,OAKToF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACnB6/E,EAAQ7/E,GAAG4Y,IACdwxE,EAAiBpG,EAAgBhkF,GACjCqqF,EAAW5/E,KAAK28E,UAAUpnF,GAAGjF,MAC7B+uF,EAAer/E,KAAK28E,UAAUpnF,GAAG6pF,QAG/BC,EAAa5zC,cAGXk0C,EAAe/jC,KAAKxtC,GACtBwxE,EAAStxC,aAAa,YAAaqxC,EAAevxE,GAGhDuxE,EAAe/jC,KAAK30C,GACtB24E,EAAStxC,aAAa,UAAWqxC,EAAe14E,GAG9C04E,EAAe/jC,KAAKs1B,IACtB0O,EAAStxC,aAAa,eAAgBqxC,EAAezO,IAGnDyO,EAAe/jC,KAAKwgB,IACtBwjB,EAAStxC,aAAa,SAAUqxC,EAAevjB,IAG7CujB,EAAe/jC,KAAKu1B,IACtByO,EAAStxC,aAAa,OAAQqxC,EAAexO,IAIrD,CAEJ,EAMAn8C,gBAAgB,CAAC+zC,eAAgB6T,eAEjCA,cAAc1rF,UAAUi6E,cAAgB,WACtC,IAAIvG,EAAO5oC,SAAS,QAIpB4oC,EAAKt2B,aAAa,QAAStuC,KAAKkgB,KAAKgxD,IACrCtM,EAAKt2B,aAAa,SAAUtuC,KAAKkgB,KAAKg5B,IACtC0rB,EAAKt2B,aAAa,OAAQtuC,KAAKkgB,KAAKk8C,IACpCp8D,KAAK4hE,aAAax8B,YAAYw/B,EAChC,EAUAiY,YAAY3rF,UAAU+1C,aAAe,SAAUvoC,GAC7CsB,KAAKgiE,kBAAkBtjE,GAAK,EAC9B,EAEAm+E,YAAY3rF,UAAUu6C,YAAc,WAAa,EAEjDoxC,YAAY3rF,UAAUixE,eAAiB,WACrC,OAAO,IACT,EAEA0a,YAAY3rF,UAAUy+B,QAAU,WAAa,EAE7CktD,YAAY3rF,UAAUktE,iBAAmB,WAAa,EAEtDye,YAAY3rF,UAAU47C,KAAO,WAAa,EAE1C9X,gBAAgB,CAACuqC,YAAagF,iBAAkBsE,iBAAkBrJ,cAAeqd,aAIjF7nD,gBAAgB,CAACqrC,cAAeyc,iBAEhCA,gBAAgB5rF,UAAU+xE,WAAa,SAAU/iD,GAC/C,OAAO,IAAI28D,YAAY38D,EAAMlgB,KAAKipC,WAAYjpC,KAChD,EAEA88E,gBAAgB5rF,UAAUgyE,YAAc,SAAUhjD,GAChD,OAAO,IAAI4wD,gBAAgB5wD,EAAMlgB,KAAKipC,WAAYjpC,KACpD,EAEA88E,gBAAgB5rF,UAAUiyE,WAAa,SAAUjjD,GAC/C,OAAO,IAAIw8D,qBAAqBx8D,EAAMlgB,KAAKipC,WAAYjpC,KACzD,EAEA88E,gBAAgB5rF,UAAU4xE,YAAc,SAAU5iD,GAChD,OAAO,IAAI6oD,cAAc7oD,EAAMlgB,KAAKipC,WAAYjpC,KAClD,EAEA88E,gBAAgB5rF,UAAU8xE,YAAc,SAAU9iD,GAChD,OAAO,IAAI08D,cAAc18D,EAAMlgB,KAAKipC,WAAYjpC,KAClD,EAEA88E,gBAAgB5rF,UAAUw3C,gBAAkB,SAAUiC,GACpD3qC,KAAKm9E,WAAW7uC,aAAa,QAAS,8BACtCtuC,KAAKm9E,WAAW7uC,aAAa,cAAe,gCAExCtuC,KAAKi+D,aAAa6f,YACpB99E,KAAKm9E,WAAW7uC,aAAa,UAAWtuC,KAAKi+D,aAAa6f,aAE1D99E,KAAKm9E,WAAW7uC,aAAa,UAAW,OAAS3D,EAAS/oC,EAAI,IAAM+oC,EAASx6B,GAG1EnQ,KAAKi+D,aAAa4f,cACrB79E,KAAKm9E,WAAW7uC,aAAa,QAAS3D,EAAS/oC,GAC/C5B,KAAKm9E,WAAW7uC,aAAa,SAAU3D,EAASx6B,GAChDnQ,KAAKm9E,WAAWzwD,MAAMztB,MAAQ,OAC9Be,KAAKm9E,WAAWzwD,MAAM6E,OAAS,OAC/BvxB,KAAKm9E,WAAWzwD,MAAMvf,UAAY,qBAClCnN,KAAKm9E,WAAWzwD,MAAMkxD,kBAAoB59E,KAAKi+D,aAAa2f,mBAG1D59E,KAAKi+D,aAAah/D,OACpBe,KAAKm9E,WAAW7uC,aAAa,QAAStuC,KAAKi+D,aAAah/D,OAGtDe,KAAKi+D,aAAa1sC,QACpBvxB,KAAKm9E,WAAW7uC,aAAa,SAAUtuC,KAAKi+D,aAAa1sC,QAGvDvxB,KAAKi+D,aAAa8f,WACpB/9E,KAAKm9E,WAAW7uC,aAAa,QAAStuC,KAAKi+D,aAAa8f,WAGtD/9E,KAAKi+D,aAAaxyC,IACpBzrB,KAAKm9E,WAAW7uC,aAAa,KAAMtuC,KAAKi+D,aAAaxyC,SAGnB15B,IAAhCiO,KAAKi+D,aAAa+f,WACpBh+E,KAAKm9E,WAAW7uC,aAAa,YAAatuC,KAAKi+D,aAAa+f,WAG9Dh+E,KAAKm9E,WAAW7uC,aAAa,sBAAuBtuC,KAAKi+D,aAAa0f,qBAGtE39E,KAAKkxB,cAAcc,QAAQoT,YAAYplC,KAAKm9E,YAE5C,IAAIj0C,EAAOlpC,KAAKipC,WAAWC,KAC3BlpC,KAAKkkE,gBAAgBv5B,EAAUzB,GAC/BlpC,KAAKipC,WAAWu6B,gBAAkBxjE,KAAKi+D,aAAauF,gBACpDxjE,KAAKkgB,KAAOyqB,EACZ,IAAI85B,EAAczoC,SAAS,YACvB4oC,EAAO5oC,SAAS,QACpB4oC,EAAKt2B,aAAa,QAAS3D,EAAS/oC,GACpCgjE,EAAKt2B,aAAa,SAAU3D,EAASx6B,GACrCy0D,EAAKt2B,aAAa,IAAK,GACvBs2B,EAAKt2B,aAAa,IAAK,GACvB,IAAIsgC,EAASj0C,kBACb8pC,EAAYn2B,aAAa,KAAMsgC,GAC/BnK,EAAYr/B,YAAYw/B,GACxB5kE,KAAK4hE,aAAatzB,aAAa,YAAa,OAASxZ,kBAAoB,IAAM85C,EAAS,KACxF1lC,EAAK9D,YAAYq/B,GACjBzkE,KAAKq9B,OAASsN,EAAStN,OACvBr9B,KAAKw0D,SAAWh9B,iBAAiBmT,EAAStN,OAAOltC,OACnD,EAEA2sF,gBAAgB5rF,UAAUy+B,QAAU,WAOlC,IAAIp6B,EANAyK,KAAKkxB,cAAcc,UACrBhyB,KAAKkxB,cAAcc,QAAQyc,UAAY,IAGzCzuC,KAAK4hE,aAAe,KACpB5hE,KAAKipC,WAAWC,KAAO,KAEvB,IAAItrC,EAAMoC,KAAKq9B,OAASr9B,KAAKq9B,OAAOltC,OAAS,EAE7C,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpByK,KAAKw0D,SAASj/D,IAAMyK,KAAKw0D,SAASj/D,GAAGo6B,SACvC3vB,KAAKw0D,SAASj/D,GAAGo6B,UAIrB3vB,KAAKw0D,SAASrkE,OAAS,EACvB6P,KAAKm+E,WAAY,EACjBn+E,KAAKkxB,cAAgB,IACvB,EAEA4rD,gBAAgB5rF,UAAUs6C,oBAAsB,WAAa,EAE7DsxC,gBAAgB5rF,UAAU2uF,eAAiB,SAAUznC,GACnD,IAAI7iD,EAAI,EACJqI,EAAMoC,KAAKq9B,OAAOltC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAIyK,KAAKq9B,OAAO9nC,GAAG6iD,MAAQA,EACzB,OAAO7iD,EAIX,OAAQ,CACV,EAEAunF,gBAAgB5rF,UAAUwxE,UAAY,SAAUv+C,GAC9C,IAAIqwC,EAAWx0D,KAAKw0D,SAEpB,IAAIA,EAASrwC,IAAgC,KAAxBnkB,KAAKq9B,OAAOlZ,GAAK6Z,GAAtC,CAIAw2B,EAASrwC,IAAO,EAChB,IAAIgV,EAAUn5B,KAAK4iE,WAAW5iE,KAAKq9B,OAAOlZ,IAa1C,GAZAqwC,EAASrwC,GAAOgV,EAEZsC,yBAC0B,IAAxBz7B,KAAKq9B,OAAOlZ,GAAK6Z,IACnBh+B,KAAKipC,WAAWV,iBAAiB1B,oBAAoB1N,GAGvDA,EAAQgR,mBAGVnqC,KAAK8/E,mBAAmB3mD,EAAShV,GAE7BnkB,KAAKq9B,OAAOlZ,GAAK0lD,GAAI,CACvB,IAAIkW,EAAe,OAAQ//E,KAAKq9B,OAAOlZ,GAAOnkB,KAAK6/E,eAAe7/E,KAAKq9B,OAAOlZ,GAAK67D,IAAM77D,EAAM,EAE/F,IAAsB,IAAlB47D,EACF,OAGF,GAAK//E,KAAKw0D,SAASurB,KAAiD,IAAhC//E,KAAKw0D,SAASurB,GAG3C,CACL,IACIE,EADezrB,EAASurB,GACCzV,SAAStqE,KAAKq9B,OAAOlZ,GAAK0lD,IACvD1wC,EAAQ6xC,SAASiV,EACnB,MANEjgF,KAAK0iE,UAAUqd,GACf//E,KAAK8jE,kBAAkB3qC,EAM3B,CA/BA,CAgCF,EAEA2jD,gBAAgB5rF,UAAUyxE,qBAAuB,WAC/C,KAAO3iE,KAAK+jE,gBAAgB5zE,QAAQ,CAClC,IAAIgpC,EAAUn5B,KAAK+jE,gBAAgBhZ,MAGnC,GAFA5xB,EAAQ+xC,iBAEJ/xC,EAAQjZ,KAAK2pD,GAIf,IAHA,IAAIt0E,EAAI,EACJqI,EAAMoC,KAAKw0D,SAASrkE,OAEjBoF,EAAIqI,GAAK,CACd,GAAIoC,KAAKw0D,SAASj/D,KAAO4jC,EAAS,CAChC,IAAI4mD,EAAe,OAAQ5mD,EAAQjZ,KAAOlgB,KAAK6/E,eAAe1mD,EAAQjZ,KAAK8/D,IAAMzqF,EAAI,EAEjF0qF,EADejgF,KAAKw0D,SAASurB,GACJzV,SAAStqE,KAAKq9B,OAAO9nC,GAAGs0E,IACrD1wC,EAAQ6xC,SAASiV,GACjB,KACF,CAEA1qF,GAAK,CACP,CAEJ,CACF,EAEAunF,gBAAgB5rF,UAAUu6C,YAAc,SAAU/sC,GAChD,GAAIsB,KAAKq7C,gBAAkB38C,IAAOsB,KAAKm+E,UAAvC,CAgBA,IAAI5oF,EAZQ,OAARmJ,EACFA,EAAMsB,KAAKq7C,cAEXr7C,KAAKq7C,cAAgB38C,EAKvBsB,KAAKipC,WAAWgO,SAAWv4C,EAC3BsB,KAAKipC,WAAW6S,SAAW,EAC3B97C,KAAKipC,WAAWV,iBAAiBpB,aAAezoC,EAChDsB,KAAKipC,WAAW2S,MAAO,EAEvB,IAAIh+C,EAAMoC,KAAKq9B,OAAOltC,OAMtB,IAJK6P,KAAKo9B,gBACRp9B,KAAKyiE,YAAY/jE,GAGdnJ,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,GACzByK,KAAKo9B,gBAAkBp9B,KAAKw0D,SAASj/D,KACvCyK,KAAKw0D,SAASj/D,GAAG0xC,aAAavoC,EAAMsB,KAAKq9B,OAAO9nC,GAAGoqC,IAIvD,GAAI3/B,KAAKipC,WAAW2S,KAClB,IAAKrmD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACpByK,KAAKo9B,gBAAkBp9B,KAAKw0D,SAASj/D,KACvCyK,KAAKw0D,SAASj/D,GAAGk2C,aA9BvB,CAkCF,EAEAqxC,gBAAgB5rF,UAAU4uF,mBAAqB,SAAU3mD,EAAShV,GAChE,IAAIytB,EAAazY,EAAQgpC,iBAEzB,GAAKvwB,EAAL,CAOA,IAHA,IACIsuC,EADA3qF,EAAI,EAGDA,EAAI4uB,GACLnkB,KAAKw0D,SAASj/D,KAA2B,IAArByK,KAAKw0D,SAASj/D,IAAeyK,KAAKw0D,SAASj/D,GAAG4sE,mBACpE+d,EAAclgF,KAAKw0D,SAASj/D,GAAG4sE,kBAGjC5sE,GAAK,EAGH2qF,EACFlgF,KAAK4hE,aAAaue,aAAavuC,EAAYsuC,GAE3ClgF,KAAK4hE,aAAax8B,YAAYwM,EAhBhC,CAkBF,EAEAkrC,gBAAgB5rF,UAAU47C,KAAO,WAC/B9sC,KAAK4hE,aAAal1C,MAAM0M,QAAU,MACpC,EAEA0jD,gBAAgB5rF,UAAU67C,KAAO,WAC/B/sC,KAAK4hE,aAAal1C,MAAM0M,QAAU,OACpC,EAIApE,gBAAgB,CAACuqC,YAAagF,iBAAkBsE,iBAAkBrJ,aAAcsJ,sBAAuBiU,cAEvGA,aAAa7rF,UAAU83E,YAAc,SAAU9oD,EAAM+oB,EAAY3K,GAC/Dt+B,KAAK82C,YACL92C,KAAK2/D,aAAaz/C,EAAM+oB,EAAY3K,GACpCt+B,KAAK8lE,cAAc5lD,EAAM+oB,EAAY3K,GACrCt+B,KAAKo9D,iBACLp9D,KAAKirE,gBACLjrE,KAAKopE,sBACLppE,KAAKqpE,0BACLrpE,KAAKqqE,8BAEDrqE,KAAKkgB,KAAKgnB,IAAO+B,EAAWu6B,iBAC9BxjE,KAAKsjE,gBAGPtjE,KAAK8sC,MACP,EAcAiwC,aAAa7rF,UAAU+1C,aAAe,SAAUvoC,GAK9C,GAJAsB,KAAK47C,MAAO,EACZ57C,KAAK49D,uBAAuBl/D,GAC5BsB,KAAKgiE,kBAAkBtjE,EAAKsB,KAAKq9D,WAE5Br9D,KAAKq9D,WAAcr9D,KAAKkgB,KAAKgnB,GAAlC,CAIA,GAAKlnC,KAAKumC,GAAG25B,aASXlgE,KAAKq7C,cAAgB38C,EAAMsB,KAAKkgB,KAAK0f,OATZ,CACzB,IAAI0iC,EAAetiE,KAAKumC,GAAG5wC,EAEvB2sE,IAAiBtiE,KAAKkgB,KAAKwf,KAC7B4iC,EAAetiE,KAAKkgB,KAAKwf,GAAK,GAGhC1/B,KAAKq7C,cAAgBinB,CACvB,CAIA,IAAI/sE,EACAqI,EAAMoC,KAAKw0D,SAASrkE,OAOxB,IALK6P,KAAKo9B,gBACRp9B,KAAKyiE,YAAYziE,KAAKq7C,eAInB9lD,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,GACzByK,KAAKo9B,gBAAkBp9B,KAAKw0D,SAASj/D,MACvCyK,KAAKw0D,SAASj/D,GAAG0xC,aAAajnC,KAAKq7C,cAAgBr7C,KAAKq9B,OAAO9nC,GAAGoqC,IAE9D3/B,KAAKw0D,SAASj/D,GAAGqmD,OACnB57C,KAAK47C,MAAO,GA3BlB,CA+BF,EAEAmhC,aAAa7rF,UAAUk6E,mBAAqB,WAC1C,IAAI71E,EACAqI,EAAMoC,KAAKq9B,OAAOltC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,GACpByK,KAAKo9B,gBAAkBp9B,KAAKw0D,SAASj/D,KACvCyK,KAAKw0D,SAASj/D,GAAGk2C,aAGvB,EAEAsxC,aAAa7rF,UAAUkvF,YAAc,SAAU7qB,GAC7Cv1D,KAAKw0D,SAAWe,CAClB,EAEAwnB,aAAa7rF,UAAUmvF,YAAc,WACnC,OAAOrgF,KAAKw0D,QACd,EAEAuoB,aAAa7rF,UAAUovF,gBAAkB,WACvC,IAAI/qF,EACAqI,EAAMoC,KAAKq9B,OAAOltC,OAEtB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpByK,KAAKw0D,SAASj/D,IAChByK,KAAKw0D,SAASj/D,GAAGo6B,SAGvB,EAEAotD,aAAa7rF,UAAUy+B,QAAU,WAC/B3vB,KAAKsgF,kBACLtgF,KAAKoqE,oBACP,EAcAp1C,gBAAgB,CAAC8nD,gBAAiBC,aAAcnU,gBAAiBoU,gBAEjEA,eAAe9rF,UAAU6xE,WAAa,SAAU7iD,GAC9C,OAAO,IAAI88D,eAAe98D,EAAMlgB,KAAKipC,WAAYjpC,KACnD,EAqEAg1B,gBAAgB,CAAC8nD,iBAAkBI,aAEnCA,YAAYhsF,UAAU6xE,WAAa,SAAU7iD,GAC3C,OAAO,IAAI88D,eAAe98D,EAAMlgB,KAAKipC,WAAYjpC,KACnD,EAQAo+E,sBAAsBltF,UAAY,CAChCqvF,qBAAsB,SAA8BtZ,GAClD,IAAI1xE,EACAqI,EAAMqpE,EAAW92E,OACjBooB,EAAM,IAEV,IAAKhjB,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBgjB,GAAO0uD,EAAW1xE,GAAG4X,UAAUoL,IAAM,IAGvC,IAAIioE,EAAWxgF,KAAKq+E,UAAU9lE,GAY9B,OAVKioE,IACHA,EAAW,CACTvZ,WAAY,GAAGxsD,OAAOwsD,GACtBlJ,eAAgB,IAAIrb,OACpB9G,MAAM,GAER57C,KAAKq+E,UAAU9lE,GAAOioE,EACtBxgF,KAAKs+E,aAAa9oF,KAAKgrF,IAGlBA,CACT,EACAC,gBAAiB,SAAyBD,EAAUnZ,GAKlD,IAJA,IAAI9xE,EAAI,EACJqI,EAAM4iF,EAASvZ,WAAW92E,OAC1ByrD,EAAOyrB,EAEJ9xE,EAAIqI,IAAQypE,GAAc,CAC/B,GAAImZ,EAASvZ,WAAW1xE,GAAG4X,UAAU4oD,OAAOna,KAAM,CAChDA,GAAO,EACP,KACF,CAEArmD,GAAK,CACP,CAEA,GAAIqmD,EAGF,IAFA4kC,EAASziB,eAAe7d,QAEnB3qD,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,EAC7BirF,EAASziB,eAAerY,SAAS86B,EAASvZ,WAAW1xE,GAAG4X,UAAU4oD,OAAOpgE,GAI7E6qF,EAAS5kC,KAAOA,CAClB,EACA8kC,iBAAkB,SAA0BrZ,GAC1C,IAAI9xE,EACAqI,EAAMoC,KAAKs+E,aAAanuF,OAE5B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKygF,gBAAgBzgF,KAAKs+E,aAAa/oF,GAAI8xE,EAE/C,EACAsZ,UAAW,WAET,OADA3gF,KAAKu+E,qBAAuB,EACrB,IAAMv+E,KAAKu+E,mBACpB,GAGF,IAAIqC,WAAa,WACf,IAAIn1D,EAAK,+BACLo1D,EAAa,KACbC,EAAgB,KAChBC,EAAM,KA4CV,SAASC,IACFH,IACHE,EAxBJ,WACE,IAAIE,EAAOjlD,SAAS,OAEhB6rC,EAAM7rC,SAAS,UACf2pB,EAAS3pB,SAAS,iBAetB,OAdA6rC,EAAIv5B,aAAa,KAAM7iB,GACvBk6B,EAAOrX,aAAa,OAAQ,UAC5BqX,EAAOrX,aAAa,8BAA+B,QACnDqX,EAAOrX,aAAa,SAAU,sFAC9Bu5B,EAAIziC,YAAYugB,GAEhBs7B,EAAK77C,YAAYyiC,GAEjBoZ,EAAK3yC,aAAa,KAAM7iB,EAAK,QAEzBs8C,eAAeC,gBACjBiZ,EAAKv0D,MAAM0M,QAAU,QAGhB6nD,CACT,CAIUC,GACNruD,SAAS0b,KAAKnJ,YAAY27C,GAC1BF,EAAa9rD,UAAU,WACvB+rD,EAAgBD,EAAWl+C,WAAW,OAExBrW,OAAS,QAAUb,EAAK,IACtCq1D,EAAcl+C,UAAY,gBAC1Bk+C,EAAcj+C,SAAS,EAAG,EAAG,EAAG,GAEpC,CAcA,MAAO,CACL5B,KAAM+/C,EACN9oE,IAdF,SAAiBwqB,GASf,OARKm+C,GACHG,IAGFH,EAAW5hF,MAAQyjC,EAAOzjC,MAC1B4hF,EAAWtvD,OAASmR,EAAOnR,OAE3BuvD,EAAcx0D,OAAS,QAAUb,EAAK,IAC/Bo1D,CACT,EAMF,EAEA,SAASM,aAAaliF,EAAOsyB,GAC3B,GAAIw2C,eAAeE,gBACjB,OAAO,IAAIrO,gBAAgB36D,EAAOsyB,GAGpC,IAAImR,EAAS3N,UAAU,UAGvB,OAFA2N,EAAOzjC,MAAQA,EACfyjC,EAAOnR,OAASA,EACTmR,CACT,CAEA,IAAI/B,YACK,CACLygD,eAAgBR,WAAW3/C,KAC3BogD,cAAeT,WAAW1oE,IAC1BipE,aAAcA,cAIdG,kBAAoB,CAAC,EAEzB,SAASC,UAAU7lE,GACjB,IAAInmB,EAGA8yE,EAFAzqE,EAAM8d,EAAKwE,KAAKi/C,GAAKzjD,EAAKwE,KAAKi/C,GAAGhvE,OAAS,EAI/C,IAHA6P,KAAKuoE,QAAU,GAGVhzE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAC3B8yE,EAAgB,KAChB,IAAI7qD,EAAO9B,EAAKwE,KAAKi/C,GAAG5pE,GAAGyoC,GAEvBsjD,kBAAkB9jE,KAEpB6qD,EAAgB,IAAIG,EADP8Y,kBAAkB9jE,GAAMirD,QACV/sD,EAAKomD,eAAe1C,eAAe7pE,GAAImmB,IAGhE2sD,GACFroE,KAAKuoE,QAAQ/yE,KAAK6yE,EAEtB,CAEIroE,KAAKuoE,QAAQp4E,QACfurB,EAAK+hD,uBAAuBz9D,KAEhC,CAyBA,SAASwhF,eAAe/1D,EAAIg9C,GAC1B6Y,kBAAkB71D,GAAM,CACtBg9C,OAAQA,EAEZ,CAEA,SAASgZ,cAAcvhE,EAAMiZ,GAK3B,IAAI5jC,EAJJyK,KAAKkgB,KAAOA,EACZlgB,KAAKm5B,QAAUA,EACfn5B,KAAK69B,gBAAkB79B,KAAKkgB,KAAK2d,iBAAmB,GACpD79B,KAAK0kE,SAAWltC,iBAAiBx3B,KAAK69B,gBAAgB1tC,QAEtD,IAAIyN,EAAMoC,KAAK69B,gBAAgB1tC,OAC3BuxF,GAAW,EAEf,IAAKnsF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACa,MAAjCyK,KAAK69B,gBAAgBtoC,GAAG4b,OAC1BuwE,GAAW,GAGb1hF,KAAK0kE,SAASnvE,GAAK4pD,qBAAqBgmB,aAAanlE,KAAKm5B,QAASn5B,KAAK69B,gBAAgBtoC,GAAI,GAG9FyK,KAAK0hF,SAAWA,EAEZA,GACF1hF,KAAKm5B,QAAQskC,uBAAuBz9D,KAExC,CAoDA,SAAS2hF,gBAAiB,CAvG1BJ,UAAUrwF,UAAUu6C,YAAc,SAAUwQ,GAC1C,IAAI1mD,EACAqI,EAAMoC,KAAKuoE,QAAQp4E,OAEvB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKuoE,QAAQhzE,GAAGk2C,YAAYwQ,EAEhC,EAEAslC,UAAUrwF,UAAU61E,WAAa,SAAUvpD,GACzC,IAAIjoB,EACAqI,EAAMoC,KAAKuoE,QAAQp4E,OACnB+uE,EAAU,GAEd,IAAK3pE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpByK,KAAKuoE,QAAQhzE,GAAGioB,OAASA,GAC3B0hD,EAAQ1pE,KAAKwK,KAAKuoE,QAAQhzE,IAI9B,OAAO2pE,CACT,EAgCAuiB,cAAcvwF,UAAUu6C,YAAc,WACpC,GAAKzrC,KAAK0hF,SAAV,CAIA,IAEInsF,EAEAuoC,EACA6oB,EACAzmC,EANA/S,EAAYnN,KAAKm5B,QAAQ4kC,eAAetR,IACxCt4C,EAAMnU,KAAKm5B,QAAQyoD,cAEnBhkF,EAAMoC,KAAK69B,gBAAgB1tC,OAM/B,IAFAgkB,EAAI0tE,YAECtsF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAqC,MAAjCyK,KAAK69B,gBAAgBtoC,GAAG4b,KAAc,CAYxC,IAAIpW,EAXAiF,KAAK69B,gBAAgBtoC,GAAGiiB,MAC1BrD,EAAI2tE,OAAO,EAAG,GACd3tE,EAAI4tE,OAAO/hF,KAAKm5B,QAAQ8P,WAAWm7B,SAASxiE,EAAG,GAC/CuS,EAAI4tE,OAAO/hF,KAAKm5B,QAAQ8P,WAAWm7B,SAASxiE,EAAG5B,KAAKm5B,QAAQ8P,WAAWm7B,SAASj0D,GAChFgE,EAAI4tE,OAAO,EAAG/hF,KAAKm5B,QAAQ8P,WAAWm7B,SAASj0D,GAC/CgE,EAAI4tE,OAAO,EAAG,IAGhB7hE,EAAOlgB,KAAK0kE,SAASnvE,GAAGI,EACxBmoC,EAAK3wB,EAAUs5C,kBAAkBvmC,EAAKvqB,EAAE,GAAG,GAAIuqB,EAAKvqB,EAAE,GAAG,GAAI,GAC7Dwe,EAAI2tE,OAAOhkD,EAAG,GAAIA,EAAG,IAErB,IAAIN,EAAOtd,EAAKuxB,QAEhB,IAAK12C,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB4rD,EAAMx5C,EAAU05C,oBAAoB3mC,EAAKjZ,EAAElM,EAAI,GAAImlB,EAAK3qB,EAAEwF,GAAImlB,EAAKvqB,EAAEoF,IACrEoZ,EAAI6tE,cAAcr7B,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAGhEA,EAAMx5C,EAAU05C,oBAAoB3mC,EAAKjZ,EAAElM,EAAI,GAAImlB,EAAK3qB,EAAE,GAAI2qB,EAAKvqB,EAAE,IACrEwe,EAAI6tE,cAAcr7B,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAChE,CAGF3mD,KAAKm5B,QAAQ8P,WAAWvb,SAASu0D,MAAK,GACtC9tE,EAAI+tE,MAtCJ,CAuCF,EAEAT,cAAcvwF,UAAUk2E,gBAAkB5C,YAAYtzE,UAAUk2E,gBAEhEqa,cAAcvwF,UAAUy+B,QAAU,WAChC3vB,KAAKm5B,QAAU,IACjB,EAIA,IAAIgpD,cAAgB,CAClB,EAAG,YACH,EAAG,aACH,EAAG,YACH,EAAG,cA4JL,SAASC,YAAYjpD,EAASjZ,EAAMkzC,EAAQivB,GAC1CriF,KAAKsiF,aAAe,GACpBtiF,KAAKwzD,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC1B,IAWIj+D,EAXAyoC,EAAK,EAEO,OAAZ9d,EAAK8d,GACPA,EAAK,EACgB,OAAZ9d,EAAK8d,GACdA,EAAK,EACgB,OAAZ9d,EAAK8d,KACdA,EAAK,GAGPh+B,KAAKk5C,GAAKiG,qBAAqBgmB,aAAahsC,EAASjZ,EAAM8d,EAAI7E,GAE/D,IACIopD,EADA3kF,EAAMw1D,EAAOjjE,OAGjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACnB69D,EAAO79D,GAAG8qC,SACbkiD,EAAc,CACZtb,WAAYob,EAAkB9B,qBAAqBntB,EAAO79D,GAAG0xE,YAC7Dub,QAAS,IAEXxiF,KAAKsiF,aAAa9sF,KAAK+sF,GACvBnvB,EAAO79D,GAAGi/D,SAASh/D,KAAK+sF,GAG9B,CAIA,SAASE,eAAeviE,EAAM+oB,EAAY3K,GACxCt+B,KAAKo+B,OAAS,GACdp+B,KAAKohE,WAAalhD,EAAKke,OACvBp+B,KAAK+wE,WAAa,GAClB/wE,KAAKqhE,UAAY,GACjBrhE,KAAK+tE,aAAe,GACpB/tE,KAAKyrE,eAAiB,GACtBzrE,KAAK8rE,kBAAoB,GACzB9rE,KAAKqiF,kBAAoB,IAAIjE,sBAC7Bp+E,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CA4hBA,SAASokD,cAAcxiE,EAAM+oB,EAAY3K,GACvCt+B,KAAK28E,UAAY,GACjB38E,KAAKqyE,QAAU,EACfryE,KAAKkyE,eAAgB,EACrBlyE,KAAKmyE,iBAAkB,EACvBnyE,KAAKoyE,iBAAkB,EACvBpyE,KAAK2iF,QAAS,EACd3iF,KAAK3D,MAAO,EACZ2D,KAAK6xE,cAAgB,EACrB7xE,KAAK4iF,cAAgB,KACrB5iF,KAAK84E,WAAa,SAClB94E,KAAK3O,OAAS,CACZgL,KAAM,gBACNsmF,OAAQ,gBACRE,OAAQ,EACRC,OAAQ,IAEV9iF,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CAsOA,SAASykD,eAAe7iE,EAAM+oB,EAAY3K,GACxCt+B,KAAKsjC,UAAY2F,EAAW4D,aAAa3sB,EAAKge,OAC9Cl+B,KAAK0jC,IAAMuF,EAAWy2B,YAAY76B,SAAS7kC,KAAKsjC,WAChDtjC,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CAyCA,SAAS0kD,eAAe9iE,EAAM+oB,EAAY3K,GACxCt+B,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CAcA,SAAS2kD,qBAAsB,CAmU/B,SAASC,gBACPljF,KAAK2mE,SAAW,EAChB3mE,KAAKmN,UAAYgqB,iBAAiB,UAAW,IAC7Cn3B,KAAK4iC,UAAY,GACjB5iC,KAAKmjF,YAAc,GACnBnjF,KAAKy1E,UAAY,GACjBz1E,KAAKojF,QAAU,GACfpjF,KAAKgyD,SAAW,GAChBhyD,KAAKiyD,WAAa,GAClBjyD,KAAKyrB,GAAKv5B,KAAKymC,QACjB,CAEA,SAAS0qD,gBAIP,IAAI9tF,EAGJ,IANAyK,KAAK2oB,MAAQ,GACb3oB,KAAKsjF,QAAU,EACftjF,KAAKujF,IAAM,IAAI7gC,OAIVntD,EAAI,EAAGA,EAFF,GAEWA,GAAK,EAAG,CAC3B,IAAIqsF,EAAgB,IAAIsB,cACxBljF,KAAK2oB,MAAMpzB,GAAKqsF,CAClB,CAEA5hF,KAAKyxC,QAPK,GAQVzxC,KAAKwjF,cAAgB,KACrBxjF,KAAKyjF,aAAe,IAAI/gC,OACxB1iD,KAAK0jF,eAAiB,EAEtB1jF,KAAK2jF,iBAAmB,GACxB3jF,KAAK4jF,iBAAmB,GAExB5jF,KAAK6jF,mBAAqB,GAC1B7jF,KAAK8jF,mBAAqB,GAE1B9jF,KAAK+jF,iBAAmB,GACxB/jF,KAAKgkF,iBAAmB,GAExBhkF,KAAKikF,eAAiB,GACtBjkF,KAAKkkF,eAAiB,GAEtBlkF,KAAKmkF,gBAAkB,GACvBnkF,KAAKokF,gBAAkB,GAEvBpkF,KAAKqkF,kBAAoB,GACzBrkF,KAAKskF,kBAAoB,EAC3B,CAiNA,SAASC,cAAcrkE,EAAM+oB,EAAY3K,GACvCt+B,KAAKo9B,gBAAiB,EACtBp9B,KAAKq9B,OAASnd,EAAKmd,OACnBr9B,KAAK+jE,gBAAkB,GACvB/jE,KAAKw0D,SAAWh9B,iBAAiBx3B,KAAKq9B,OAAOltC,QAC7C6P,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,GACnCt+B,KAAKumC,GAAKrmB,EAAKqmB,GAAKuW,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKqmB,GAAI,EAAG0C,EAAWrB,UAAW5nC,MAAQ,CAC1FkgE,cAAc,EAElB,CAyCA,SAASskB,eAAetzD,EAAepB,GACrC9vB,KAAKkxB,cAAgBA,EACrBlxB,KAAKi+D,aAAe,CAClBwmB,aAAa30D,QAAiC/9B,IAAvB+9B,EAAO20D,aAA4B30D,EAAO20D,YACjEC,QAAS50D,GAAUA,EAAO40D,SAAW,KACrClhB,gBAAiB1zC,GAAUA,EAAO0zC,kBAAmB,EACrDma,oBAAqB7tD,GAAUA,EAAO6tD,qBAAuB,gBAC7DpS,yBAA0Bz7C,GAAUA,EAAOy7C,0BAA4B,iBACvEqS,kBAAmB9tD,GAAUA,EAAO8tD,mBAAqB,UACzDG,UAAWjuD,GAAUA,EAAOiuD,WAAa,GACzCtyD,GAAIqE,GAAUA,EAAOrE,IAAM,GAC3ByyD,gBAAiBpuD,QAAoC/9B,IAA1B+9B,EAAOouD,gBAAgCpuD,EAAOouD,gBAE3El+E,KAAKi+D,aAAa0mB,IAAM70D,GAAUA,EAAO60D,KAAO,EAE5C3kF,KAAKkxB,cAAcc,UACrBhyB,KAAKi+D,aAAa0mB,IAAM70D,GAAUA,EAAO60D,KAAOrkF,OAAOskF,kBAAoB,GAG7E5kF,KAAKq7C,eAAiB,EACtBr7C,KAAKipC,WAAa,CAChBgO,UAAW,EACX2E,MAAM,EACNqiB,aAAcj+D,KAAKi+D,aACnB4mB,oBAAqB,GAEvB7kF,KAAK8kF,YAAc,IAAIzB,cACvBrjF,KAAKw0D,SAAW,GAChBx0D,KAAK+jE,gBAAkB,GACvB/jE,KAAKyjF,aAAe,IAAI/gC,OACxB1iD,KAAKo9B,gBAAiB,EACtBp9B,KAAKkrC,aAAe,SAEhBlrC,KAAKi+D,aAAawmB,cACpBzkF,KAAK+kF,aAAe/kF,KAAK8kF,YAAY33E,UAAU5V,KAAKyI,KAAK8kF,aACzD9kF,KAAKglF,WAAahlF,KAAK8kF,YAAYne,QAAQpvE,KAAKyI,KAAK8kF,aACrD9kF,KAAKilF,aAAejlF,KAAK8kF,YAAYliD,UAAUrrC,KAAKyI,KAAK8kF,aACzD9kF,KAAKklF,eAAiBllF,KAAK8kF,YAAY3B,YAAY5rF,KAAKyI,KAAK8kF,aAC7D9kF,KAAKmlF,aAAenlF,KAAK8kF,YAAYrP,UAAUl+E,KAAKyI,KAAK8kF,aACzD9kF,KAAKolF,WAAaplF,KAAK8kF,YAAY1B,QAAQ7rF,KAAKyI,KAAK8kF,aACrD9kF,KAAKqlF,YAAcrlF,KAAK8kF,YAAY9yB,SAASz6D,KAAKyI,KAAK8kF,aACvD9kF,KAAKslF,cAAgBtlF,KAAK8kF,YAAY7yB,WAAW16D,KAAKyI,KAAK8kF,aAC3D9kF,KAAKulF,QAAUvlF,KAAK8kF,YAAYzoF,KAAK9E,KAAKyI,KAAK8kF,aAC/C9kF,KAAKwlF,YAAcxlF,KAAK8kF,YAAYjiD,SAAStrC,KAAKyI,KAAK8kF,aACvD9kF,KAAKylF,UAAYzlF,KAAK8kF,YAAYnC,OAAOprF,KAAKyI,KAAK8kF,aACnD9kF,KAAKiiF,KAAOjiF,KAAK8kF,YAAY7C,KAAK1qF,KAAKyI,KAAK8kF,aAEhD,CAQA,SAASY,eAAgB,CAwFzB,SAASC,cAAczlE,EAAM+oB,EAAY3K,GACvCt+B,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CAwBA,SAASsnD,cAAc1lE,EAAM+oB,EAAY3K,GAEvCt+B,KAAKo+B,OAAS,GAEdp+B,KAAKohE,WAAalhD,EAAKke,OAEvBp+B,KAAK+wE,WAAa,GAElB/wE,KAAKyrE,eAAiB,GAEtBzrE,KAAKqhE,UAAY,GAEjBrhE,KAAK8rE,kBAAoB,GAEzB9rE,KAAKgxE,iBAAmB,GACxBhxE,KAAK6lF,gBAAkB7pD,SAAS,KAChCh8B,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,GAGnCt+B,KAAK+tE,aAAe,GACpB/tE,KAAK8lF,YAAc,CACjB9qF,EAAG,OACHsR,GAAI,OACJ6D,EAAG,EACHvO,EAAG,EAEP,CA+NA,SAASmkF,aAAa7lE,EAAM+oB,EAAY3K,GACtCt+B,KAAK28E,UAAY,GACjB38E,KAAKgmF,UAAY,GACjBhmF,KAAK8lF,YAAc,CACjB9qF,EAAG,OACHsR,GAAI,OACJ6D,EAAG,EACHvO,EAAG,GAEL5B,KAAK84E,WAAa,MAClB94E,KAAKimF,UAAW,EAChBjmF,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CA0RA,SAAS4nD,eAAehmE,EAAM+oB,EAAY3K,GACxCt+B,KAAK82C,YACL92C,KAAK2/D,aAAaz/C,EAAM+oB,EAAY3K,GACpCt+B,KAAKirE,gBACL,IAAIluB,EAAUD,gBAAgBC,QAe9B,GAdA/8C,KAAKmmF,GAAKppC,EAAQ/8C,KAAMkgB,EAAKimE,GAAI,EAAG,EAAGnmF,MAEnCkgB,EAAKue,GAAG/wB,EAAEN,GACZpN,KAAKksD,GAAKnP,EAAQ/8C,KAAMkgB,EAAKue,GAAG/wB,EAAE1S,EAAG,EAAG,EAAGgF,MAC3CA,KAAKmsD,GAAKpP,EAAQ/8C,KAAMkgB,EAAKue,GAAG/wB,EAAEpB,EAAG,EAAG,EAAGtM,MAC3CA,KAAKosD,GAAKrP,EAAQ/8C,KAAMkgB,EAAKue,GAAG/wB,EAAE6J,EAAG,EAAG,EAAGvX,OAE3CA,KAAK0N,EAAIqvC,EAAQ/8C,KAAMkgB,EAAKue,GAAG/wB,EAAG,EAAG,EAAG1N,MAGtCkgB,EAAKue,GAAG56B,IACV7D,KAAK6D,EAAIk5C,EAAQ/8C,KAAMkgB,EAAKue,GAAG56B,EAAG,EAAG,EAAG7D,OAGtCkgB,EAAKue,GAAG74B,GAAG9B,EAAE3T,QAAU+vB,EAAKue,GAAG74B,GAAG9B,EAAE,GAAGo0C,GAAI,CAC7C,IAAI3iD,EACAqI,EAAMsiB,EAAKue,GAAG74B,GAAG9B,EAAE3T,OAEvB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB2qB,EAAKue,GAAG74B,GAAG9B,EAAEvO,GAAG2iD,GAAK,KACrBh4B,EAAKue,GAAG74B,GAAG9B,EAAEvO,GAAG4iD,GAAK,IAEzB,CAEAn4C,KAAK4F,GAAKm3C,EAAQ/8C,KAAMkgB,EAAKue,GAAG74B,GAAI,EAAGkzB,UAAW94B,MAClDA,KAAK4F,GAAGszC,IAAK,EACbl5C,KAAKiO,GAAK8uC,EAAQ/8C,KAAMkgB,EAAKue,GAAGxwB,GAAI,EAAG6qB,UAAW94B,MAClDA,KAAKqsD,GAAKtP,EAAQ/8C,KAAMkgB,EAAKue,GAAG4tB,GAAI,EAAGvzB,UAAW94B,MAClDA,KAAKssD,GAAKvP,EAAQ/8C,KAAMkgB,EAAKue,GAAG6tB,GAAI,EAAGxzB,UAAW94B,MAClDA,KAAKysD,IAAM,IAAI/J,OACf1iD,KAAKomF,SAAW,IAAI1jC,OACpB1iD,KAAKi8C,eAAgB,EAErBj8C,KAAK+9D,eAAiB,CACpBC,MAAOh+D,KAEX,CAyIA,SAASqmF,cAAcnmE,EAAM+oB,EAAY3K,GACvCt+B,KAAKsjC,UAAY2F,EAAW4D,aAAa3sB,EAAKge,OAC9Cl+B,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,EACrC,CA4BA,SAASgoD,mBAAmBp1D,EAAepB,GACzC9vB,KAAKkxB,cAAgBA,EACrBlxB,KAAKq9B,OAAS,KACdr9B,KAAKq7C,eAAiB,EACtBr7C,KAAKi+D,aAAe,CAClB8f,UAAWjuD,GAAUA,EAAOiuD,WAAa,GACzCxS,yBAA0Bz7C,GAAUA,EAAOy7C,0BAA4B,iBACvErN,oBAAqBpuC,IAAuC,IAA7BA,EAAOouC,mBACtC+f,WAAY,CACVh/E,MAAO6wB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAWh/E,OAAS,OACjEsyB,OAAQzB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAW1sD,QAAU,OACnEv2B,EAAG80B,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAWjjF,GAAK,QACzDsR,EAAGwjB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAW3xE,GAAK,UAG7DtM,KAAKipC,WAAa,CAChB2S,MAAM,EACN3E,UAAW,EACXgnB,aAAcj+D,KAAKi+D,cAErBj+D,KAAK+jE,gBAAkB,GACvB/jE,KAAKw0D,SAAW,GAChBx0D,KAAKumF,eAAiB,GACtBvmF,KAAKm+E,WAAY,EACjBn+E,KAAKwmF,OAAS,KACdxmF,KAAKi9E,YAAa,EAClBj9E,KAAKkrC,aAAe,MACtB,CAyUA,SAASu7C,aAAavmE,EAAM+oB,EAAY3K,GACtCt+B,KAAKq9B,OAASnd,EAAKmd,OACnBr9B,KAAKi9E,YAAc/8D,EAAKyd,QACxB39B,KAAKo9B,gBAAiB,EACtBp9B,KAAK+jE,gBAAkB,GACvB/jE,KAAKw0D,SAAWx0D,KAAKq9B,OAAS7F,iBAAiBx3B,KAAKq9B,OAAOltC,QAAU,GACrE6P,KAAKgpE,YAAY9oD,EAAM+oB,EAAY3K,GACnCt+B,KAAKumC,GAAKrmB,EAAKqmB,GAAKuW,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKqmB,GAAI,EAAG0C,EAAWrB,UAAW5nC,MAAQ,CAC1FkgE,cAAc,EAElB,CA6CA,SAASwmB,eAAex1D,EAAepB,GACrC9vB,KAAKkxB,cAAgBA,EACrBlxB,KAAKq9B,OAAS,KACdr9B,KAAKq7C,eAAiB,EACtBr7C,KAAKi+D,aAAe,CAClB8f,UAAWjuD,GAAUA,EAAOiuD,WAAa,GACzCxS,yBAA0Bz7C,GAAUA,EAAOy7C,0BAA4B,iBACvErN,oBAAqBpuC,IAAuC,IAA7BA,EAAOouC,mBACtC+f,WAAY,CACVh/E,MAAO6wB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAWh/E,OAAS,OACjEsyB,OAAQzB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAW1sD,QAAU,OACnEv2B,EAAG80B,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAWjjF,GAAK,QACzDsR,EAAGwjB,GAAUA,EAAOmuD,YAAcnuD,EAAOmuD,WAAW3xE,GAAK,SAE3D4xE,gBAAiBpuD,QAAoC/9B,IAA1B+9B,EAAOouD,gBAAgCpuD,EAAOouD,gBAE3El+E,KAAKipC,WAAa,CAChB2S,MAAM,EACN3E,UAAW,EACXgnB,aAAcj+D,KAAKi+D,cAErBj+D,KAAK+jE,gBAAkB,GACvB/jE,KAAKw0D,SAAW,GAChBx0D,KAAKumF,eAAiB,GACtBvmF,KAAKm+E,WAAY,EACjBn+E,KAAKwmF,OAAS,KACdxmF,KAAKi9E,YAAa,EAClBj9E,KAAKkrC,aAAe,MACtB,CAz9FAy2C,cAAczwF,UAAY,CACxBy1F,eAAgB,WAA2B,EAC3Cvd,oBAAqB,WAAgC,EACrDC,wBAAyB,WAMvB,GAAIrpE,KAAKkgB,KAAK2pD,IAAM,EAAG,CACrB7pE,KAAK4mF,QAAU,GACf,IAAIhF,EAAgB5hF,KAAKipC,WAAW24C,cAChCiF,EAAelmD,YAAYwgD,aAAaS,EAAcl/C,OAAOzjC,MAAO2iF,EAAcl/C,OAAOnR,QAC7FvxB,KAAK4mF,QAAQpxF,KAAKqxF,GAClB,IAAIC,EAAgBnmD,YAAYwgD,aAAaS,EAAcl/C,OAAOzjC,MAAO2iF,EAAcl/C,OAAOnR,QAC9FvxB,KAAK4mF,QAAQpxF,KAAKsxF,GAEd9mF,KAAKkgB,KAAK2pD,IAAM,IAAMh3C,SAASk0D,UACjCpmD,YAAYygD,gBAEhB,CAEAphF,KAAK4hF,cAAgB5hF,KAAKipC,WAAW24C,cACrC5hF,KAAKgnF,gBAAkBhnF,KAAKipC,WAAW+9C,gBACvChnF,KAAK6mE,yBAA2B,IAAI0a,UAAUvhF,MAC9CA,KAAK4mE,wBACP,EACAuE,cAAe,WAA0B,EACzC3J,aAAc,WACZ,IAAIv4B,EAAajpC,KAAKipC,WAEtB,GAAIA,EAAWg+C,YAAcjnF,KAAKkgB,KAAKwhD,GAAI,CACzCz4B,EAAWg+C,UAAYjnF,KAAKkgB,KAAKwhD,GACjC,IAAID,EAAiBlD,aAAav+D,KAAKkgB,KAAKwhD,IAC5Cz4B,EAAW24C,cAAcsF,yBAA2BzlB,CACtD,CACF,EACA4I,2BAA4B,WAC1BrqE,KAAK8gE,YAAc,IAAI2gB,cAAczhF,KAAKkgB,KAAMlgB,MAChDA,KAAK8mE,iBAAmB9mE,KAAK6mE,yBAAyBE,WAAW1C,YAAYC,iBAC/E,EACA6iB,YAAa,WACNnnF,KAAKs9D,QAAYt9D,KAAKq9D,YAAar9D,KAAKu9D,gBAC3Cv9D,KAAKs9D,QAAS,EAElB,EACA8pB,YAAa,WACPpnF,KAAKq9D,YAAcr9D,KAAKu9D,gBAC1Bv9D,KAAKs9D,QAAS,EACdt9D,KAAKi8C,eAAgB,EACrBj8C,KAAK8gE,YAAY7kB,eAAgB,EAErC,EACAwoC,YAAa,SAAqB7C,GAChCA,EAAcyF,UAAUrnF,KAAKgnF,gBAAgBjjC,GAAI/jD,KAAKgnF,gBAAgBhpD,GAAIh+B,KAAKgnF,gBAAgBplF,EAAI5B,KAAKgnF,gBAAgBxjC,GAAIxjD,KAAKgnF,gBAAgB72E,EAAInQ,KAAKgnF,gBAAgBjmC,GAC5K,EACAumC,aAAc,WACZ,GAAItnF,KAAKkgB,KAAK2pD,IAAM,EAAG,CACrB,IACI0d,EADSvnF,KAAK4mF,QAAQ,GACHjkD,WAAW,MAClC3iC,KAAKykF,YAAY8C,GAEjBA,EAAUC,UAAUxnF,KAAK4hF,cAAcl/C,OAAQ,EAAG,GAGlD1iC,KAAK8zE,iBAAmB9zE,KAAK4hF,cAAc6F,eAC3CznF,KAAK4hF,cAAc/9B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/C7jD,KAAKykF,YAAYzkF,KAAK4hF,eACtB5hF,KAAK4hF,cAAc/9B,aAAa7jD,KAAK8zE,iBACvC,CACF,EACA4T,UAAW,WACT,GAAI1nF,KAAKkgB,KAAK2pD,IAAM,EAAG,CACrB,IAAI55E,EAAS+P,KAAK4mF,QAAQ,GAItBW,EAAYt3F,EAAO0yC,WAAW,MAclC,GAbA3iC,KAAKykF,YAAY8C,GACjBA,EAAUC,UAAUxnF,KAAK4hF,cAAcl/C,OAAQ,EAAG,GAElD1iC,KAAK4hF,cAAc/9B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/C7jD,KAAKykF,YAAYzkF,KAAK4hF,eACtB5hF,KAAK4hF,cAAc/9B,aAAa7jD,KAAK8zE,kBAE1B9zE,KAAKs+B,KAAK0lC,eAAe,OAAQhkE,KAAKkgB,KAAOlgB,KAAKkgB,KAAK8/D,GAAKhgF,KAAKkgB,KAAKk4B,IAAM,GAClF3M,aAAY,GAEjBzrC,KAAK4hF,cAAc/9B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAG3C7jD,KAAKkgB,KAAK2pD,IAAM,IAAMh3C,SAASk0D,SAAU,CAG3C,IAAIlG,EAAalgD,YAAY0gD,cAAcrhF,KAAK4hF,cAAcl/C,QAC1Cm+C,EAAWl+C,WAAW,MAC5B6kD,UAAUxnF,KAAK4hF,cAAcl/C,OAAQ,EAAG,GACtD1iC,KAAKykF,YAAYzkF,KAAK4hF,eAEtB5hF,KAAK4hF,cAAc4F,UAAU3G,EAAY,EAAG,EAC9C,CAEA7gF,KAAK4hF,cAAcsF,yBAA2B/E,cAAcniF,KAAKkgB,KAAK2pD,IACtE7pE,KAAK4hF,cAAc4F,UAAUv3F,EAAQ,EAAG,GAGxC+P,KAAK4hF,cAAcsF,yBAA2B,mBAC9ClnF,KAAK4hF,cAAc4F,UAAUxnF,KAAK4mF,QAAQ,GAAI,EAAG,GACjD5mF,KAAK4hF,cAAc/9B,aAAa7jD,KAAK8zE,kBAErC9zE,KAAK4hF,cAAcsF,yBAA2B,aAChD,CACF,EACAz7C,YAAa,SAAqBihB,GAChC,IAAI1sD,KAAKs9D,SAAUt9D,KAAKkgB,KAAK6pD,KAIR,IAAjB/pE,KAAKkgB,KAAKwpD,IAAahd,GAA3B,CAIA1sD,KAAKqmE,kBACLrmE,KAAKm+D,mBACLn+D,KAAKumE,uBACLvmE,KAAKwhE,eACL,IAAImmB,EAAkC,IAAjB3nF,KAAKkgB,KAAK8d,GAC/Bh+B,KAAKsnF,eACLtnF,KAAKipC,WAAWvb,SAASu0D,KAAK0F,GAC9B3nF,KAAKipC,WAAWvb,SAASq3D,aAAa/kF,KAAK+9D,eAAemI,SAASz5C,OACnEzsB,KAAKipC,WAAWvb,SAASs3D,WAAWhlF,KAAK+9D,eAAeoI,cACxDnmE,KAAKorE,qBACLprE,KAAKipC,WAAWvb,SAASk6D,QAAQD,GACjC3nF,KAAK0nF,YAED1nF,KAAK8gE,YAAY4gB,UACnB1hF,KAAKipC,WAAWvb,SAASk6D,SAAQ,GAG/B5nF,KAAKi8C,gBACPj8C,KAAKi8C,eAAgB,EApBvB,CAsBF,EACAtsB,QAAS,WACP3vB,KAAK4hF,cAAgB,KACrB5hF,KAAKkgB,KAAO,KACZlgB,KAAKipC,WAAa,KAClBjpC,KAAK8gE,YAAYnxC,SACnB,EACAw3C,QAAS,IAAIzkB,QAEfi/B,cAAczwF,UAAU47C,KAAO60C,cAAczwF,UAAUi2F,YACvDxF,cAAczwF,UAAU67C,KAAO40C,cAAczwF,UAAUk2F,YAgCvDhF,YAAYlxF,UAAUw4D,cAAgBwiB,aAAah7E,UAAUw4D,cAc7D10B,gBAAgB,CAACuqC,YAAagF,iBAAkBod,cAAexY,cAAeN,iBAAkBrJ,aAActC,mBAAoBulB,gBAClIA,eAAevxF,UAAU83E,YAAcF,qBAAqB53E,UAAU83E,YACtEyZ,eAAevxF,UAAU22F,gBAAkB,CACzClhB,QAAS,EACTV,QAAQ,GAEVwc,eAAevxF,UAAU42F,aAAe,GAExCrF,eAAevxF,UAAUi6E,cAAgB,WACvCnrE,KAAK+yE,aAAa/yE,KAAKohE,WAAYphE,KAAKqhE,UAAWrhE,KAAK+tE,cAAc,EAAM,GAC9E,EAEA0U,eAAevxF,UAAUkiF,mBAAqB,SAAUlzD,EAAM+mD,GAC5D,IAAIkJ,EAAY,CACdjwD,KAAMA,EACN1C,KAAM0C,EAAK8d,GACX+pD,cAAe/nF,KAAKqiF,kBAAkB9B,qBAAqBtZ,GAC3DA,WAAY,GACZzS,SAAU,GACVn0B,QAAoB,IAAZngB,EAAK6pD,IAEXsJ,EAAc,CAAC,EAsBnB,GApBgB,OAAZnzD,EAAK8d,IAA2B,OAAZ9d,EAAK8d,IAC3Bq1C,EAAY5yE,EAAIq8C,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKzf,EAAG,EAAG,IAAKT,MAEzDqzE,EAAY5yE,EAAEqD,IACjBqsE,EAAU6X,GAAK,OAAS3vD,QAAQg7C,EAAY5yE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQg7C,EAAY5yE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQg7C,EAAY5yE,EAAE9K,EAAE,IAAM,MAE3G,OAAZuqB,EAAK8d,IAA2B,OAAZ9d,EAAK8d,KAClCq1C,EAAYjmE,EAAI0vC,gBAAgBC,QAAQ/8C,KAAMkgB,EAAK9S,EAAG,EAAG,KAAMpN,MAC/DqzE,EAAYl9E,EAAI2mD,gBAAgBC,QAAQ/8C,KAAMkgB,EAAK/pB,EAAG,EAAG,KAAM6J,MAC/DqzE,EAAYljE,EAAI2sC,gBAAgBC,QAAQ/8C,KAAMkgB,EAAK/P,GAAK,CACtDrM,EAAG,GACF,EAAG,IAAM9D,MACZqzE,EAAYxvE,EAAIi5C,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKrc,GAAK,CACtDC,EAAG,GACF,EAAGg1B,UAAW94B,MACjBqzE,EAAY9gE,EAAI,IAAI66D,iBAAiBptE,KAAMkgB,EAAK3N,EAAGvS,OAGrDqzE,EAAYpsE,EAAI61C,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKjZ,EAAG,EAAG,IAAMjH,MAE/C,OAAZkgB,EAAK8d,IAA2B,OAAZ9d,EAAK8d,IAe3B,GAdAmyC,EAAUrB,GAAK9C,YAAY9rD,EAAK4uD,IAAM,GACtCqB,EAAU7Y,GAAK2U,aAAa/rD,EAAKo3C,IAAM,GAExB,GAAXp3C,EAAKo3C,KAEP6Y,EAAU9Y,GAAKn3C,EAAKm3C,IAGtBgc,EAAYzxE,EAAIk7C,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKte,EAAG,EAAG,KAAM5B,MAE1DqzE,EAAYzxE,EAAEkC,IACjBqsE,EAAU8X,GAAK5U,EAAYzxE,EAAEjM,GAG3BuqB,EAAKzH,EAAG,CACV,IAAIA,EAAI,IAAIk0D,aAAa3sE,KAAMkgB,EAAKzH,EAAG,SAAUzY,MACjDqzE,EAAY56D,EAAIA,EAEX46D,EAAY56D,EAAE3U,IACjBqsE,EAAU+X,GAAK7U,EAAY56D,EAAEq0D,UAC7BqD,EAAc,GAAIkD,EAAY56D,EAAEs0D,WAAW,GAE/C,OAEAoD,EAAUvvE,EAAe,IAAXsf,EAAKtf,EAAU,UAAY,UAK3C,OAFAZ,KAAK+wE,WAAWv7E,KAAK26E,GACrBkD,EAAY3mD,MAAQyjD,EACbkD,CACT,EAEAoP,eAAevxF,UAAUqiF,mBAAqB,WAK5C,MAJkB,CAChB70C,GAAI,GACJqvC,aAAc,GAGlB,EAEA0U,eAAevxF,UAAUsiF,uBAAyB,SAAUtzD,GAU1D,MATkB,CAChB/S,UAAW,CACTw5D,QAAS,EACTV,QAAQ,EACR1tD,IAAKvY,KAAKqiF,kBAAkB1B,YAC5BjhD,GAAIod,gBAAgBC,QAAQ/8C,KAAMkgB,EAAKjZ,EAAG,EAAG,IAAMjH,MACnD+1D,OAAQlK,yBAAyBoB,qBAAqBjtD,KAAMkgB,EAAMlgB,OAIxE,EAEAyiF,eAAevxF,UAAUwiF,mBAAqB,SAAUxzD,GACtD,IAAImzD,EAAc,IAAI+O,YAAYpiF,KAAMkgB,EAAMlgB,KAAK+wE,WAAY/wE,KAAKqiF,mBAGpE,OAFAriF,KAAKo+B,OAAO5oC,KAAK69E,GACjBrzE,KAAKwrE,oBAAoB6H,GAClBA,CACT,EAEAoP,eAAevxF,UAAUokE,aAAe,WAEtC,IAAI//D,EADJyK,KAAKi8C,eAAgB,EAErB,IAAIr+C,EAAMoC,KAAKqhE,UAAUlxE,OAEzB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAK+tE,aAAax4E,GAAKyK,KAAKqhE,UAAU9rE,GAMxC,IAHAyK,KAAK+yE,aAAa/yE,KAAKohE,WAAYphE,KAAKqhE,UAAWrhE,KAAK+tE,cAAc,EAAM,IAC5EnwE,EAAMoC,KAAKm9C,kBAAkBhtD,OAExBoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKm9C,kBAAkB5nD,GAAGknD,WAG5Bz8C,KAAK4rE,kBACL5rE,KAAKqiF,kBAAkB3B,iBAAiB1gF,KAAKi8C,cAC/C,EAEAwmC,eAAevxF,UAAUi3F,wBAA0B,SAAUh7E,GAC3D,IAAI5X,EACAqI,EAAMoC,KAAK+wE,WAAW5gF,OAE1B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACnByK,KAAK+wE,WAAWx7E,GAAG8qC,QACtBrgC,KAAK+wE,WAAWx7E,GAAG0xE,WAAWzxE,KAAK2X,EAGzC,EAEAs1E,eAAevxF,UAAUk3F,6BAA+B,WACtD,IAAI7yF,EACAqI,EAAMoC,KAAK+wE,WAAW5gF,OAE1B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACnByK,KAAK+wE,WAAWx7E,GAAG8qC,QACtBrgC,KAAK+wE,WAAWx7E,GAAG0xE,WAAWlc,KAGpC,EAEA03B,eAAevxF,UAAUm3F,YAAc,SAAUj1B,GAC/C,IAAI79D,EACAqI,EAAMw1D,EAAOjjE,OAEjB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB69D,EAAO79D,GAAG8qC,QAAS,CAEvB,EAEAoiD,eAAevxF,UAAU6hF,aAAe,SAAUv1E,EAAK6jE,EAAW0M,EAAcua,EAAcrhB,GAC5F,IAAI1xE,EAEAwF,EACAyiC,EAGAw2C,EACAD,EACAD,EAPAl2E,EAAMJ,EAAIrN,OAAS,EAGnB8jF,EAAY,GACZC,EAAe,GAIfqU,EAAgB,GAAG9tE,OAAOwsD,GAE9B,IAAK1xE,EAAIqI,EAAKrI,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARAy+E,EAAeh0E,KAAK6rE,uBAAuBruE,EAAIjI,KAK7C8rE,EAAU9rE,GAAKw4E,EAAaiG,EAAe,GAF3Cx2E,EAAIjI,GAAGizF,cAAgBF,EAKP,OAAd9qF,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,GACtEg2C,EAGH3S,EAAU9rE,GAAGm3B,MAAM2T,QAAS,EAF5BghC,EAAU9rE,GAAKyK,KAAKozE,mBAAmB51E,EAAIjI,GAAIgzF,GAKjDtU,EAAUz+E,KAAK6rE,EAAU9rE,GAAGm3B,YACvB,GAAkB,OAAdlvB,EAAIjI,GAAGyoC,GAAa,CAC7B,GAAKg2C,EAKH,IAFAx2C,EAAO6jC,EAAU9rE,GAAGmpC,GAAGvuC,OAElB4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzBsmE,EAAU9rE,GAAGw4E,aAAahzE,GAAKsmE,EAAU9rE,GAAGmpC,GAAG3jC,QALjDsmE,EAAU9rE,GAAKyK,KAAKuzE,mBAAmB/1E,EAAIjI,IAS7CyK,KAAK+yE,aAAav1E,EAAIjI,GAAGmpC,GAAI2iC,EAAU9rE,GAAGmpC,GAAI2iC,EAAU9rE,GAAGw4E,aAAcua,EAAcC,EACzF,KAAyB,OAAd/qF,EAAIjI,GAAGyoC,IACXg2C,IACHF,EAAmB9zE,KAAKwzE,uBAAuBh2E,EAAIjI,IACnD8rE,EAAU9rE,GAAKu+E,GAGjByU,EAAc/yF,KAAK6rE,EAAU9rE,IAC7ByK,KAAKmoF,wBAAwB9mB,EAAU9rE,KAChB,OAAdiI,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,GAC7Eg2C,IACH3S,EAAU9rE,GAAKyK,KAAK0zE,mBAAmBl2E,EAAIjI,KAEtB,OAAdiI,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IAA6B,OAAdxgC,EAAIjI,GAAGyoC,IACnGg2C,GAMHD,EAAW1S,EAAU9rE,IACZ8qC,QAAS,IANlB0zC,EAAW9qB,eAAeG,YAAY5rD,EAAIjI,GAAGyoC,KACpCwO,KAAKxsC,KAAMxC,EAAIjI,IACxB8rE,EAAU9rE,GAAKw+E,EACf/zE,KAAKyrE,eAAej2E,KAAKu+E,IAM3BG,EAAa1+E,KAAKu+E,IACK,OAAdv2E,EAAIjI,GAAGyoC,KACXg2C,GAOHD,EAAW1S,EAAU9rE,IACZ8qC,QAAS,GAPlB0zC,EAAW9qB,eAAeG,YAAY5rD,EAAIjI,GAAGyoC,IAC7CqjC,EAAU9rE,GAAKw+E,EACfA,EAASvnC,KAAKxsC,KAAMxC,EAAKjI,EAAG8rE,GAC5BrhE,KAAKyrE,eAAej2E,KAAKu+E,GACzBuU,GAAe,GAMjBpU,EAAa1+E,KAAKu+E,IAGpB/zE,KAAK+rE,oBAAoBvuE,EAAIjI,GAAIA,EAAI,EACvC,CAMA,IAJAyK,KAAKooF,+BACLpoF,KAAKqoF,YAAYpU,GACjBr2E,EAAMs2E,EAAa/jF,OAEdoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB2+E,EAAa3+E,GAAG8qC,QAAS,CAE7B,EAEAoiD,eAAevxF,UAAUk6E,mBAAqB,WAC5CprE,KAAK6nF,gBAAgBlhB,QAAU,EAC/B3mE,KAAK6nF,gBAAgB5hB,QAAS,EAC9BjmE,KAAK4rE,kBACL5rE,KAAKqiF,kBAAkB3B,iBAAiB1gF,KAAKi8C,eAC7Cj8C,KAAKm0E,YAAYn0E,KAAK6nF,gBAAiB7nF,KAAKohE,WAAYphE,KAAKqhE,WAAW,EAC1E,EAEAohB,eAAevxF,UAAUu3F,qBAAuB,SAAUC,EAAiBC,IACrED,EAAgBziB,QAAU0iB,EAAejpD,GAAGkc,MAAQ57C,KAAKi8C,iBAC3D0sC,EAAehiB,QAAU+hB,EAAgB/hB,QACzCgiB,EAAehiB,SAAWgiB,EAAejpD,GAAG/pC,EAC5CgzF,EAAe1iB,QAAS,EAE5B,EAEAwc,eAAevxF,UAAU03F,UAAY,WACnC,IAAIrzF,EAEAwF,EACAyiC,EACA15B,EACA25B,EACA83B,EACAszB,EAGArrE,EACAsrE,EAVAlrF,EAAMoC,KAAK+wE,WAAW5gF,OAOtBu9B,EAAW1tB,KAAKipC,WAAWvb,SAC3BvZ,EAAMnU,KAAKipC,WAAW24C,cAI1B,IAAKrsF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAQxB,IAAgB,QANhBioB,GADAsrE,EAAe9oF,KAAK+wE,WAAWx7E,IACXioB,OAMa,OAATA,GAAsC,IAApBsrE,EAAab,KAAaa,EAAa5oE,KAAKsoE,eAAuC,IAAtBM,EAAaC,MAAqD,IAAvC/oF,KAAKipC,WAAW47C,mBAA2B,CA2B3K,IA1BAn3D,EAASu0D,OACT1sB,EAAQuzB,EAAat0B,SAER,OAATh3C,GAA0B,OAATA,GACnBkQ,EAASw3D,eAAwB,OAAT1nE,EAAgBsrE,EAAad,GAAKc,EAAaE,KAEvEt7D,EAASy3D,aAAa2D,EAAab,IAEnCv6D,EAAS03D,WAAW0D,EAAaha,IAEjCphD,EAAS23D,YAAYyD,EAAaxxB,IAElC5pC,EAAS43D,cAAcwD,EAAazxB,IAAM,IAE1C3pC,EAASu3D,aAAsB,OAATznE,EAAgBsrE,EAAad,GAAKc,EAAaE,KAGvEt7D,EAASs3D,WAAW8D,EAAaC,MAEpB,OAATvrE,GAA0B,OAATA,GACnBrJ,EAAI0tE,YAGNn0D,EAASq3D,aAAa+D,EAAaf,cAAchqB,eAAetxC,OAChE+Q,EAAO+3B,EAAMplE,OAER4K,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAAG,CAa5B,IAZa,OAATyiB,GAA0B,OAATA,IACnBrJ,EAAI0tE,YAEAiH,EAAaZ,KACf/zE,EAAI80E,YAAYH,EAAaZ,IAC7B/zE,EAAI+0E,eAAiBJ,EAAiB,KAK1CrrD,GADAorD,EAAQtzB,EAAMx6D,GAAGynF,SACJryF,OAER2T,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACN,MAAf+kF,EAAM/kF,GAAGa,EACXwP,EAAI2tE,OAAO+G,EAAM/kF,GAAG4J,EAAE,GAAIm7E,EAAM/kF,GAAG4J,EAAE,IACb,MAAfm7E,EAAM/kF,GAAGa,EAClBwP,EAAI6tE,cAAc6G,EAAM/kF,GAAG6iD,IAAI,GAAIkiC,EAAM/kF,GAAG6iD,IAAI,GAAIkiC,EAAM/kF,GAAG6iD,IAAI,GAAIkiC,EAAM/kF,GAAG6iD,IAAI,GAAIkiC,EAAM/kF,GAAG6iD,IAAI,GAAIkiC,EAAM/kF,GAAG6iD,IAAI,IAEpHxyC,EAAIg1E,YAIK,OAAT3rE,GAA0B,OAATA,IAEnBkQ,EAAS+3D,YAELqD,EAAaZ,IACf/zE,EAAI80E,YAAYjpF,KAAK8nF,cAG3B,CAEa,OAATtqE,GAA0B,OAATA,GAEnBxd,KAAKipC,WAAWvb,SAAS63D,QAAQuD,EAAaloF,GAGhD8sB,EAASk6D,SACX,CAEJ,EAEAnF,eAAevxF,UAAUijF,YAAc,SAAUuU,EAAiB3zB,EAAO70C,EAAMkpE,GAC7E,IAAI7zF,EAEAozF,EAGJ,IAFAA,EAAiBD,EAEZnzF,EAJKw/D,EAAM5kE,OAAS,EAIXoF,GAAK,EAAGA,GAAK,EACL,OAAhBw/D,EAAMx/D,GAAGyoC,IACX2qD,EAAiBzoE,EAAK3qB,GAAG4X,UACzBnN,KAAKyoF,qBAAqBC,EAAiBC,IAClB,OAAhB5zB,EAAMx/D,GAAGyoC,IAA+B,OAAhB+2B,EAAMx/D,GAAGyoC,IAA+B,OAAhB+2B,EAAMx/D,GAAGyoC,IAA+B,OAAhB+2B,EAAMx/D,GAAGyoC,GAC1Fh+B,KAAK6vE,WAAW9a,EAAMx/D,GAAI2qB,EAAK3qB,IACN,OAAhBw/D,EAAMx/D,GAAGyoC,GAClBh+B,KAAKkwE,WAAWnb,EAAMx/D,GAAI2qB,EAAK3qB,GAAIozF,GACV,OAAhB5zB,EAAMx/D,GAAGyoC,GAClBh+B,KAAKswE,aAAavb,EAAMx/D,GAAI2qB,EAAK3qB,GAAIozF,GACZ,OAAhB5zB,EAAMx/D,GAAGyoC,IAA+B,OAAhB+2B,EAAMx/D,GAAGyoC,GAC1Ch+B,KAAKqpF,mBAAmBt0B,EAAMx/D,GAAI2qB,EAAK3qB,GAAIozF,GAClB,OAAhB5zB,EAAMx/D,GAAGyoC,GAClBh+B,KAAKm0E,YAAYwU,EAAgB5zB,EAAMx/D,GAAGmpC,GAAIxe,EAAK3qB,GAAGmpC,IAC7Cq2B,EAAMx/D,GAAGyoC,GAIlBorD,GACFppF,KAAK4oF,WAET,EAEAnG,eAAevxF,UAAUo4F,kBAAoB,SAAU/G,EAAa5jC,GAClE,GAAI3+C,KAAKi8C,eAAiB0C,EAAM/C,MAAQ2mC,EAAYtb,WAAWrrB,KAAM,CACnE,IAEIrmD,EACAqI,EACA7C,EAJAwuF,EAAahH,EAAYC,QACzB5iC,EAAQjB,EAAMiB,MAIdpiB,EAAOoiB,EAAMnO,QACjB83C,EAAWp5F,OAAS,EACpB,IAAIq5F,EAAoBjH,EAAYtb,WAAWlJ,eAE/C,IAAKhjE,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAAG,CAC5B,IAAIwsE,EAAY3nB,EAAMxhB,OAAOrjC,GAE7B,GAAIwsE,GAAaA,EAAU5xE,EAAG,CAG5B,IAFAiI,EAAM2pE,EAAU91B,QAEXl8C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACd,IAANA,GACFg0F,EAAW/zF,KAAK,CACdmP,EAAG,IACH+I,EAAG87E,EAAkB/iC,kBAAkB8gB,EAAU5xE,EAAE,GAAG,GAAI4xE,EAAU5xE,EAAE,GAAG,GAAI,KAIjF4zF,EAAW/zF,KAAK,CACdmP,EAAG,IACHgiD,IAAK6iC,EAAkB3iC,oBAAoB0gB,EAAUtgE,EAAE1R,EAAI,GAAIgyE,EAAUhyE,EAAEA,GAAIgyE,EAAU5xE,EAAEJ,MAInF,IAARqI,GACF2rF,EAAW/zF,KAAK,CACdmP,EAAG,IACH+I,EAAG87E,EAAkB/iC,kBAAkB8gB,EAAU5xE,EAAE,GAAG,GAAI4xE,EAAU5xE,EAAE,GAAG,GAAI,KAI7E4xE,EAAU9mE,GAAK7C,IACjB2rF,EAAW/zF,KAAK,CACdmP,EAAG,IACHgiD,IAAK6iC,EAAkB3iC,oBAAoB0gB,EAAUtgE,EAAE1R,EAAI,GAAIgyE,EAAUhyE,EAAE,GAAIgyE,EAAU5xE,EAAE,MAE7F4zF,EAAW/zF,KAAK,CACdmP,EAAG,MAGT,CACF,CAEA49E,EAAYC,QAAU+G,CACxB,CACF,EAEA9G,eAAevxF,UAAU2+E,WAAa,SAAU7vC,EAAU2vC,GACxD,IAAoB,IAAhB3vC,EAAS+pC,IAAe/pC,EAASwoD,cAAe,CAClD,IAAIjzF,EACAqI,EAAM+xE,EAAS2S,aAAanyF,OAEhC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKspF,kBAAkB3Z,EAAS2S,aAAa/sF,GAAIo6E,EAASz2B,GAE9D,CACF,EAEAupC,eAAevxF,UAAUg/E,WAAa,SAAUR,EAAWC,EAAUgZ,GACnE,IAAIxY,EAAYR,EAASjjD,OAErBijD,EAASlvE,EAAEm7C,MAAQ57C,KAAKi8C,iBAC1Bk0B,EAAU6X,GAAK,OAAS3vD,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,MAGnHg6E,EAAS1oE,EAAE20C,MAAQ+sC,EAAe1iB,QAAUjmE,KAAKi8C,iBACnDk0B,EAAU4Y,KAAOpZ,EAAS1oE,EAAEtR,EAAIgzF,EAAehiB,QAEnD,EAEA8b,eAAevxF,UAAUm4F,mBAAqB,SAAU3Z,EAAWC,EAAUgZ,GAC3E,IACIK,EADA7Y,EAAYR,EAASjjD,MAGzB,IAAKyjD,EAAU6Y,KAAOrZ,EAASp9D,EAAEqpC,MAAQ+zB,EAASviE,EAAEwuC,MAAQ+zB,EAASx5E,EAAEylD,MAAwB,IAAhB8zB,EAAU/qE,IAAYgrE,EAASx/D,EAAEyrC,MAAQ+zB,EAAS9rE,EAAE+3C,MAAO,CACxI,IAuBIrmD,EAvBA4e,EAAMnU,KAAKipC,WAAW24C,cACtB/uC,EAAM88B,EAASviE,EAAEzX,EACjBm9C,EAAM68B,EAASx5E,EAAER,EAErB,GAAoB,IAAhB+5E,EAAU/qE,EACZqkF,EAAM70E,EAAIs1E,qBAAqB52C,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,QACtD,CACL,IAAIwO,EAAMpvD,KAAKojB,KAAKpjB,KAAKmB,IAAIw/C,EAAI,GAAKC,EAAI,GAAI,GAAK5gD,KAAKmB,IAAIw/C,EAAI,GAAKC,EAAI,GAAI,IACzE89B,EAAM1+E,KAAKwoD,MAAM5H,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IAC/CuD,EAAUu5B,EAASx/D,EAAExa,EAErBygD,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAIib,EAAO/P,EAAMlL,EACbp7C,EAAI9I,KAAKob,IAAIsjE,EAAMjB,EAAS9rE,EAAElO,GAAK07D,EAAOxe,EAAI,GAC9CvmC,EAAIpa,KAAKub,IAAImjE,EAAMjB,EAAS9rE,EAAElO,GAAK07D,EAAOxe,EAAI,GAClDm2C,EAAM70E,EAAIu1E,qBAAqB1uF,EAAGsR,EAAG,EAAGumC,EAAI,GAAIA,EAAI,GAAIyO,EAC1D,CAGA,IAAI1jD,EAAM8xE,EAAUn9D,EAAE7E,EAClBgjE,EAAUf,EAASp9D,EAAE9R,EACrBkmE,EAAU,EAEd,IAAKpxE,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpBo6E,EAASp9D,EAAEm7D,aAAeiC,EAASp9D,EAAEi7D,eACvC7G,EAAUgJ,EAASp9D,EAAEtL,EAAM,EAAJ1R,EAAQ,IAGjCyzF,EAAIW,aAAajZ,EAAY,EAAJn7E,GAAS,IAAK,QAAUm7E,EAAY,EAAJn7E,EAAQ,GAAK,IAAMm7E,EAAY,EAAJn7E,EAAQ,GAAK,IAAMm7E,EAAY,EAAJn7E,EAAQ,GAAK,IAAMoxE,EAAU,KAG9IwJ,EAAU6Y,IAAMA,CAClB,CAEA7Y,EAAU4Y,KAAOpZ,EAAS1oE,EAAEtR,EAAIgzF,EAAehiB,OACjD,EAEA8b,eAAevxF,UAAUo/E,aAAe,SAAUZ,EAAWC,EAAUgZ,GACrE,IAAIxY,EAAYR,EAASjjD,MACrBjU,EAAIk3D,EAASl3D,EAEbA,IAAMA,EAAEmjC,MAAQ57C,KAAKi8C,iBACvBk0B,EAAU+X,GAAKzvE,EAAEq0D,UACjBqD,EAAc,GAAI13D,EAAEs0D,WAAW,KAG7B4C,EAASlvE,EAAEm7C,MAAQ57C,KAAKi8C,iBAC1Bk0B,EAAU6X,GAAK,OAAS3vD,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,IAAM0iC,QAAQs3C,EAASlvE,EAAE9K,EAAE,IAAM,MAGnHg6E,EAAS1oE,EAAE20C,MAAQ+sC,EAAe1iB,QAAUjmE,KAAKi8C,iBACnDk0B,EAAU4Y,KAAOpZ,EAAS1oE,EAAEtR,EAAIgzF,EAAehiB,UAG7CgJ,EAAS/tE,EAAEg6C,MAAQ57C,KAAKi8C,iBAC1Bk0B,EAAU8X,GAAKtY,EAAS/tE,EAAEjM,EAE9B,EAEA8sF,eAAevxF,UAAUy+B,QAAU,WACjC3vB,KAAKohE,WAAa,KAClBphE,KAAKipC,WAAa,KAClBjpC,KAAK4hF,cAAgB,KACrB5hF,KAAK+wE,WAAW5gF,OAAS,EACzB6P,KAAKqhE,UAAUlxE,OAAS,CAC1B,EAsBA6kC,gBAAgB,CAACuqC,YAAagF,iBAAkBod,cAAe9Y,iBAAkBrJ,aAActC,kBAAmBuc,cAAeiJ,eACjIA,cAAcxxF,UAAUqoE,QAAUxkC,UAAU,UAAU4N,WAAW,MAEjE+/C,cAAcxxF,UAAUsrF,aAAe,WACrC,IAAIr9C,EAAen/B,KAAKi4E,aAAaxG,YACrCzxE,KAAKu5E,gBAAkB/hD,iBAAiB2H,EAAazyB,EAAIyyB,EAAazyB,EAAEvc,OAAS,GACjF,IAAIy5F,GAAU,EAEVzqD,EAAagyC,IACfyY,GAAU,EACV5pF,KAAK3O,OAAOgL,KAAO2D,KAAKo8E,WAAWj9C,EAAagyC,KAEhDnxE,KAAK3O,OAAOgL,KAAO,gBAGrB2D,KAAK3D,KAAOutF,EACZ,IAAIC,GAAY,EAEZ1qD,EAAai9B,KACfytB,GAAY,EACZ7pF,KAAK3O,OAAOsxF,OAAS3iF,KAAKo8E,WAAWj9C,EAAai9B,IAClDp8D,KAAK3O,OAAOwxF,OAAS1jD,EAAa+xC,IAGpC,IACI37E,EACAqI,EAOA4hC,EACA+U,EACAzwC,EACA25B,EACAW,EACArjC,EACAyiC,EACA+pC,EACAuiB,EACAC,EAlBA52B,EAAWnzD,KAAKipC,WAAWe,YAAYwyB,cAAcr9B,EAAa1U,GAGlE2qD,EAAUj2C,EAAazyB,EACvB0tE,EAAep6E,KAAKmnE,QACxBnnE,KAAK2iF,OAASkH,EACd7pF,KAAK3O,OAAOyxF,OAAS3jD,EAAamzC,UAAY,MAAQtyE,KAAKipC,WAAWe,YAAYwyB,cAAcr9B,EAAa1U,GAAG+uC,QAChH57D,EAAMuhC,EAAaozC,UAAUpiF,OAY7B,IAAIquF,EAAcx+E,KAAKkgB,KAAKs+D,YACxB7I,EAAmC,KAAlBx2C,EAAaq0B,GAAar0B,EAAamzC,UACxDsH,EAAO,EACPC,EAAO,EACPa,GAAY,EACZl8B,EAAM,EAEV,IAAKjpD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAE3Bg/C,GADA/U,EAAWx/B,KAAKipC,WAAWe,YAAYqyB,YAAYl9B,EAAaozC,UAAUh9E,GAAI49D,EAASE,OAAQrzD,KAAKipC,WAAWe,YAAYwyB,cAAcr9B,EAAa1U,GAAG+uC,WACjIh6B,EAAStf,MAAQ,CAAC,EAC1Ck6D,EAAal6B,QAETs+B,GAAepJ,EAAQ7/E,GAAG4Y,IAC5ByrE,GAAQjE,EACRkE,GAAQ16C,EAAakzC,QACrBwH,GAAQa,EAAY,EAAI,EACxBA,GAAY,GAIdl9C,GADAY,EAASmW,EAAUnW,OAASmW,EAAUnW,OAAO,GAAGM,GAAK,IACvCvuC,OACdiqF,EAAaz2B,MAAMxkB,EAAamzC,UAAY,IAAKnzC,EAAamzC,UAAY,KAEtEkM,GACFx+E,KAAKk8E,4BAA4B/8C,EAAci7C,EAAchF,EAAQ7/E,GAAGuwC,KAAM8zC,EAAMC,GAGtFiQ,EAAWtyD,iBAAiBgG,EAAO,GACnC,IAAIwsD,EAAkB,EAEtB,IAAKjvF,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EACzB,GAAqB,OAAjBqjC,EAAOrjC,GAAGijC,GAAa,CAKzB,IAJAP,EAAOW,EAAOrjC,GAAG0jC,GAAG36B,EAAEvO,EAAEpF,OACxBo3E,EAAYnpC,EAAOrjC,GAAG0jC,GAAG36B,EACzBimF,EAAU,GAELjmF,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACf,IAANA,GACFimF,EAAQv0F,KAAK4kF,EAAal0B,SAASqhB,EAAU5xE,EAAE,GAAG,GAAI4xE,EAAU5xE,EAAE,GAAG,GAAI,GAAIykF,EAAaj0B,SAASohB,EAAU5xE,EAAE,GAAG,GAAI4xE,EAAU5xE,EAAE,GAAG,GAAI,IAG3Io0F,EAAQv0F,KAAK4kF,EAAal0B,SAASqhB,EAAUtgE,EAAEnD,EAAI,GAAG,GAAIyjE,EAAUtgE,EAAEnD,EAAI,GAAG,GAAI,GAAIs2E,EAAaj0B,SAASohB,EAAUtgE,EAAEnD,EAAI,GAAG,GAAIyjE,EAAUtgE,EAAEnD,EAAI,GAAG,GAAI,GAAIs2E,EAAal0B,SAASqhB,EAAUhyE,EAAEuO,GAAG,GAAIyjE,EAAUhyE,EAAEuO,GAAG,GAAI,GAAIs2E,EAAaj0B,SAASohB,EAAUhyE,EAAEuO,GAAG,GAAIyjE,EAAUhyE,EAAEuO,GAAG,GAAI,GAAIs2E,EAAal0B,SAASqhB,EAAU5xE,EAAEmO,GAAG,GAAIyjE,EAAU5xE,EAAEmO,GAAG,GAAI,GAAIs2E,EAAaj0B,SAASohB,EAAU5xE,EAAEmO,GAAG,GAAIyjE,EAAU5xE,EAAEmO,GAAG,GAAI,IAG3ZimF,EAAQv0F,KAAK4kF,EAAal0B,SAASqhB,EAAUtgE,EAAEnD,EAAI,GAAG,GAAIyjE,EAAUtgE,EAAEnD,EAAI,GAAG,GAAI,GAAIs2E,EAAaj0B,SAASohB,EAAUtgE,EAAEnD,EAAI,GAAG,GAAIyjE,EAAUtgE,EAAEnD,EAAI,GAAG,GAAI,GAAIs2E,EAAal0B,SAASqhB,EAAUhyE,EAAE,GAAG,GAAIgyE,EAAUhyE,EAAE,GAAG,GAAI,GAAI6kF,EAAaj0B,SAASohB,EAAUhyE,EAAE,GAAG,GAAIgyE,EAAUhyE,EAAE,GAAG,GAAI,GAAI6kF,EAAal0B,SAASqhB,EAAU5xE,EAAE,GAAG,GAAI4xE,EAAU5xE,EAAE,GAAG,GAAI,GAAIykF,EAAaj0B,SAASohB,EAAU5xE,EAAE,GAAG,GAAI4xE,EAAU5xE,EAAE,GAAG,GAAI,IACzZm0F,EAASE,GAAmBD,EAC5BC,GAAmB,CACrB,CAGExL,IACF5E,GAAQxE,EAAQ7/E,GAAGmX,EACnBktE,GAAQjE,GAGN31E,KAAK28E,UAAUn+B,GACjBx+C,KAAK28E,UAAUn+B,GAAK9iC,KAAOouE,EAE3B9pF,KAAK28E,UAAUn+B,GAAO,CACpB9iC,KAAMouE,GAIVtrC,GAAO,CACT,CACF,EAEAkkC,cAAcxxF,UAAUk6E,mBAAqB,WAE3C,IAYI71E,EACAqI,EACA7C,EACAyiC,EACA15B,EACA25B,EAlBJz9B,KAAKu8E,eACKv8E,KAAK4hF,cACXzpB,KAAOn4D,KAAK3O,OAAOyxF,OACvB9iF,KAAKipC,WAAWvb,SAAS03D,WAAW,QAEpCplF,KAAKipC,WAAWvb,SAAS23D,YAAY,SAErCrlF,KAAKipC,WAAWvb,SAAS43D,cAAc,GAElCtlF,KAAKkgB,KAAKs+D,aACbx+E,KAAK87E,aAAanC,YAAY35E,KAAKi4E,aAAaxG,YAAazxE,KAAKw5E,oBASpE,IAGImG,EAHApG,EAAkBv5E,KAAK87E,aAAavC,gBACpCnE,EAAUp1E,KAAKi4E,aAAaxG,YAAY/kE,EAC5C9O,EAAMw3E,EAAQjlF,OAEd,IAGI25F,EACAC,EAJAE,EAAW,KACXC,EAAa,KACbC,EAAc,KAGdz8D,EAAW1tB,KAAKipC,WAAWvb,SAE/B,IAAKn4B,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,IAAK6/E,EAAQ7/E,GAAG4Y,EAAG,CASjB,IARAwxE,EAAiBpG,EAAgBhkF,MAG/Bm4B,EAASu0D,OACTv0D,EAASq3D,aAAapF,EAAejyE,GACrCggB,EAASs3D,WAAWrF,EAAe14E,IAGjCjH,KAAK3D,KAAM,CAeb,IAdIsjF,GAAkBA,EAAexO,GAC/B8Y,IAAatK,EAAexO,KAC9BzjD,EAASu3D,aAAatF,EAAexO,IACrC8Y,EAAWtK,EAAexO,IAEnB8Y,IAAajqF,KAAK3O,OAAOgL,OAClC4tF,EAAWjqF,KAAK3O,OAAOgL,KACvBqxB,EAASu3D,aAAajlF,KAAK3O,OAAOgL,OAIpCmhC,GADAssD,EAAW9pF,KAAK28E,UAAUpnF,GAAGmmB,MACbvrB,OAChB6P,KAAKipC,WAAW24C,cAAcC,YAEzB9mF,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAKzB,IAHA0iC,GADAssD,EAAUD,EAAS/uF,IACJ5K,OACf6P,KAAKipC,WAAW24C,cAAcE,OAAOiI,EAAQ,GAAIA,EAAQ,IAEpDjmF,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACzB9D,KAAKipC,WAAW24C,cAAcI,cAAc+H,EAAQjmF,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,IAIxI9D,KAAKipC,WAAW24C,cAAcuH,YAC9Bz7D,EAAS63D,SAEX,CAEA,GAAIvlF,KAAK2iF,OAAQ,CAyBf,IAxBIhD,GAAkBA,EAAezO,GAC/BiZ,IAAgBxK,EAAezO,KACjCiZ,EAAcxK,EAAezO,GAC7BxjD,EAASy3D,aAAaxF,EAAezO,KAE9BiZ,IAAgBnqF,KAAK3O,OAAOwxF,SACrCsH,EAAcnqF,KAAK3O,OAAOwxF,OAC1Bn1D,EAASy3D,aAAanlF,KAAK3O,OAAOwxF,SAGhClD,GAAkBA,EAAevjB,GAC/B8tB,IAAevK,EAAevjB,KAChC8tB,EAAavK,EAAevjB,GAC5B1uC,EAASw3D,eAAevF,EAAevjB,KAEhC8tB,IAAelqF,KAAK3O,OAAOsxF,SACpCuH,EAAalqF,KAAK3O,OAAOsxF,OACzBj1D,EAASw3D,eAAellF,KAAK3O,OAAOsxF,SAItCnlD,GADAssD,EAAW9pF,KAAK28E,UAAUpnF,GAAGmmB,MACbvrB,OAChB6P,KAAKipC,WAAW24C,cAAcC,YAEzB9mF,EAAI,EAAGA,EAAIyiC,EAAMziC,GAAK,EAKzB,IAHA0iC,GADAssD,EAAUD,EAAS/uF,IACJ5K,OACf6P,KAAKipC,WAAW24C,cAAcE,OAAOiI,EAAQ,GAAIA,EAAQ,IAEpDjmF,EAAI,EAAGA,EAAI25B,EAAM35B,GAAK,EACzB9D,KAAKipC,WAAW24C,cAAcI,cAAc+H,EAAQjmF,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,GAAIimF,EAAQjmF,EAAI,IAIxI9D,KAAKipC,WAAW24C,cAAcuH,YAC9Bz7D,EAAS+3D,WAEX,CAEI9F,GACF3/E,KAAKipC,WAAWvb,SAASk6D,SAE7B,CAEJ,EAQA5yD,gBAAgB,CAACuqC,YAAagF,iBAAkBod,cAAe9Y,iBAAkBrJ,aAActC,mBAAoB6lB,gBACnHA,eAAe7xF,UAAU83E,YAAc8H,gBAAgB5/E,UAAU83E,YACjE+Z,eAAe7xF,UAAU+1C,aAAe8hC,cAAc73E,UAAU+1C,aAEhE87C,eAAe7xF,UAAUi6E,cAAgB,WACvC,GAAInrE,KAAK0jC,IAAIzkC,QAAUe,KAAKsjC,UAAU1hC,IAAM5B,KAAK0jC,IAAIzkC,OAASe,KAAKsjC,UAAUnzB,IAAMnQ,KAAK0jC,IAAInS,QAAS,CACnG,IAAImR,EAAS3N,UAAU,UACvB2N,EAAOzjC,MAAQe,KAAKsjC,UAAU1hC,EAC9B8gC,EAAOnR,OAASvxB,KAAKsjC,UAAUnzB,EAC/B,IAKIi6E,EACAC,EANAl2E,EAAMuuB,EAAOC,WAAW,MACxB2nD,EAAOtqF,KAAK0jC,IAAIzkC,MAChBsrF,EAAOvqF,KAAK0jC,IAAInS,OAChBi5D,EAASF,EAAOC,EAChBE,EAAYzqF,KAAKsjC,UAAU1hC,EAAI5B,KAAKsjC,UAAUnzB,EAG9Cu6E,EAAM1qF,KAAKsjC,UAAUgoC,IAAMtrE,KAAKipC,WAAWg1B,aAAasN,yBAExDif,EAASC,GAAqB,mBAARC,GAA4BF,EAASC,GAAqB,mBAARC,EAE1EN,GADAC,EAAaE,GACYE,EAGzBJ,GADAD,EAAYE,GACaG,EAG3Bt2E,EAAIqzE,UAAUxnF,KAAK0jC,KAAM4mD,EAAOF,GAAa,GAAIG,EAAOF,GAAc,EAAGD,EAAWC,EAAY,EAAG,EAAGrqF,KAAKsjC,UAAU1hC,EAAG5B,KAAKsjC,UAAUnzB,GACvInQ,KAAK0jC,IAAMhB,CACb,CACF,EAEAqgD,eAAe7xF,UAAUk6E,mBAAqB,WAC5CprE,KAAK4hF,cAAc4F,UAAUxnF,KAAK0jC,IAAK,EAAG,EAC5C,EAEAq/C,eAAe7xF,UAAUy+B,QAAU,WACjC3vB,KAAK0jC,IAAM,IACb,EAMA1O,gBAAgB,CAACuqC,YAAagF,iBAAkBod,cAAe9Y,iBAAkBrJ,aAActC,mBAAoB8lB,gBACnHA,eAAe9xF,UAAU83E,YAAc8H,gBAAgB5/E,UAAU83E,YACjEga,eAAe9xF,UAAU+1C,aAAe8hC,cAAc73E,UAAU+1C,aAEhE+7C,eAAe9xF,UAAUk6E,mBAAqB,WAE5CprE,KAAKipC,WAAWvb,SAASu3D,aAAajlF,KAAKkgB,KAAKk8C,IAEhDp8D,KAAKipC,WAAWvb,SAAS83D,YAAY,EAAG,EAAGxlF,KAAKkgB,KAAKgxD,GAAIlxE,KAAKkgB,KAAKg5B,GAErE,EAIAlkB,gBAAgB,CAACqrC,cAAe4iB,oBAEhCA,mBAAmB/xF,UAAUgyE,YAAc,SAAUhjD,GACnD,OAAO,IAAIuiE,eAAeviE,EAAMlgB,KAAKipC,WAAYjpC,KACnD,EAEAijF,mBAAmB/xF,UAAUiyE,WAAa,SAAUjjD,GAClD,OAAO,IAAIwiE,cAAcxiE,EAAMlgB,KAAKipC,WAAYjpC,KAClD,EAEAijF,mBAAmB/xF,UAAU4xE,YAAc,SAAU5iD,GACnD,OAAO,IAAI6iE,eAAe7iE,EAAMlgB,KAAKipC,WAAYjpC,KACnD,EAEAijF,mBAAmB/xF,UAAU8xE,YAAc,SAAU9iD,GACnD,OAAO,IAAI8iE,eAAe9iE,EAAMlgB,KAAKipC,WAAYjpC,KACnD,EAEAijF,mBAAmB/xF,UAAU+xE,WAAaia,YAAYhsF,UAAU+xE,WAEhEggB,mBAAmB/xF,UAAU6zF,aAAe,SAAUt4D,GACnC,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAA0B,IAAdA,EAAM,KAA2B,IAAdA,EAAM,KAIrGzsB,KAAK4hF,cAAcz0E,UAAUsf,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,IACxF,EAEAw2D,mBAAmB/xF,UAAU8zF,WAAa,SAAUtlD,GAClD1/B,KAAK4hF,cAAc+I,aAAejrD,EAAK,EAAI,EAAIA,CACjD,EAEAujD,mBAAmB/xF,UAAU+zF,aAAe,SAAUrsF,GACpDoH,KAAK4hF,cAAch/C,UAAYhqC,CACjC,EAEAqqF,mBAAmB/xF,UAAUg0F,eAAiB,SAAUtsF,GACtDoH,KAAK4hF,cAAcuB,YAAcvqF,CACnC,EAEAqqF,mBAAmB/xF,UAAUi0F,aAAe,SAAUvsF,GACpDoH,KAAK4hF,cAAcnM,UAAY78E,CACjC,EAEAqqF,mBAAmB/xF,UAAUk0F,WAAa,SAAUxsF,GAClDoH,KAAK4hF,cAAcwB,QAAUxqF,CAC/B,EAEAqqF,mBAAmB/xF,UAAUm0F,YAAc,SAAUzsF,GACnDoH,KAAK4hF,cAAc5vB,SAAWp5D,CAChC,EAEAqqF,mBAAmB/xF,UAAUo0F,cAAgB,SAAU1sF,GACrDoH,KAAK4hF,cAAc3vB,WAAar5D,CAClC,EAEAqqF,mBAAmB/xF,UAAUq0F,QAAU,SAAUqF,GAC/C5qF,KAAK4hF,cAAcvlF,KAAKuuF,EAC1B,EAEA3H,mBAAmB/xF,UAAUs0F,YAAc,SAAUxqF,EAAGsR,EAAG1K,EAAGuO,GAC5DnQ,KAAK4hF,cAAc/+C,SAAS7nC,EAAGsR,EAAG1K,EAAGuO,EACvC,EAEA8yE,mBAAmB/xF,UAAUu0F,UAAY,WACvCzlF,KAAK4hF,cAAce,QACrB,EAEAM,mBAAmB/xF,UAAUgvD,MAAQ,WAC9BlgD,KAAKi+D,aAAawmB,YAKvBzkF,KAAK8kF,YAAY5kC,QAJflgD,KAAK4hF,cAAcgG,SAKvB,EAEA3E,mBAAmB/xF,UAAU+wF,KAAO,WAClCjiF,KAAK4hF,cAAcK,MACrB,EAEAgB,mBAAmB/xF,UAAU02F,QAAU,SAAUiD,GAC1C7qF,KAAKi+D,aAAawmB,aAKnBoG,IACF7qF,KAAKipC,WAAWg+C,UAAY,eAG9BjnF,KAAK8kF,YAAY8C,QAAQiD,IARvB7qF,KAAK4hF,cAAcgG,SASvB,EAEA3E,mBAAmB/xF,UAAUw3C,gBAAkB,SAAUiC,GACvD,GAAI3qC,KAAKkxB,cAAcc,QAAS,CAC9BhyB,KAAKkxB,cAAc53B,UAAYy7B,UAAU,UACzC,IAAI+1D,EAAiB9qF,KAAKkxB,cAAc53B,UAAUozB,MAClDo+D,EAAe7rF,MAAQ,OACvB6rF,EAAev5D,OAAS,OACxB,IAAI4Q,EAAS,cACb2oD,EAAezxD,gBAAkB8I,EACjC2oD,EAAeC,mBAAqB5oD,EACpC2oD,EAAexxD,sBAAwB6I,EACvC2oD,EAAe,qBAAuB3oD,EACtC2oD,EAAelN,kBAAoB59E,KAAKi+D,aAAa2f,kBACrD59E,KAAKkxB,cAAcc,QAAQoT,YAAYplC,KAAKkxB,cAAc53B,WAC1D0G,KAAK4hF,cAAgB5hF,KAAKkxB,cAAc53B,UAAUqpC,WAAW,MAEzD3iC,KAAKi+D,aAAa8f,WACpB/9E,KAAKkxB,cAAc53B,UAAUg1C,aAAa,QAAStuC,KAAKi+D,aAAa8f,WAGnE/9E,KAAKi+D,aAAaxyC,IACpBzrB,KAAKkxB,cAAc53B,UAAUg1C,aAAa,KAAMtuC,KAAKi+D,aAAaxyC,GAEtE,MACEzrB,KAAK4hF,cAAgB5hF,KAAKi+D,aAAaymB,QAGzC1kF,KAAK8kF,YAAYkG,WAAWhrF,KAAK4hF,eACjC5hF,KAAKkgB,KAAOyqB,EACZ3qC,KAAKq9B,OAASsN,EAAStN,OACvBr9B,KAAKgnF,gBAAkB,CACrBplF,EAAG+oC,EAAS/oC,EACZuO,EAAGw6B,EAASx6B,EACZqzC,GAAI,EACJzC,GAAI,EACJgD,GAAI,EACJ/lB,GAAI,GAENh+B,KAAKkkE,gBAAgBv5B,EAAU9X,SAAS0b,MACxCvuC,KAAKipC,WAAW24C,cAAgB5hF,KAAK4hF,cACrC5hF,KAAKipC,WAAWvb,SAAW1tB,KAC3BA,KAAKipC,WAAWgiD,UAAW,EAC3BjrF,KAAKipC,WAAWu6B,gBAAkBxjE,KAAKi+D,aAAauF,gBACpDxjE,KAAKipC,WAAW+9C,gBAAkBhnF,KAAKgnF,gBACvChnF,KAAKw0D,SAAWh9B,iBAAiBmT,EAAStN,OAAOltC,QACjD6P,KAAKwrC,qBACP,EAEAy3C,mBAAmB/xF,UAAUs6C,oBAAsB,SAAUvsC,EAAOsyB,GAElE,IAAI25D,EACAC,EAoBAC,EACAC,EAEJ,GAzBArrF,KAAKkgD,QAIDjhD,GACFisF,EAAejsF,EACfksF,EAAgB55D,EAChBvxB,KAAK4hF,cAAcl/C,OAAOzjC,MAAQisF,EAClClrF,KAAK4hF,cAAcl/C,OAAOnR,OAAS45D,IAE/BnrF,KAAKkxB,cAAcc,SAAWhyB,KAAKkxB,cAAc53B,WACnD4xF,EAAelrF,KAAKkxB,cAAcc,QAAQ6mC,YAC1CsyB,EAAgBnrF,KAAKkxB,cAAcc,QAAQs5D,eAE3CJ,EAAelrF,KAAK4hF,cAAcl/C,OAAOzjC,MACzCksF,EAAgBnrF,KAAK4hF,cAAcl/C,OAAOnR,QAG5CvxB,KAAK4hF,cAAcl/C,OAAOzjC,MAAQisF,EAAelrF,KAAKi+D,aAAa0mB,IACnE3kF,KAAK4hF,cAAcl/C,OAAOnR,OAAS45D,EAAgBnrF,KAAKi+D,aAAa0mB,MAMR,IAA3D3kF,KAAKi+D,aAAa0f,oBAAoBn/E,QAAQ,UAA8E,IAA5DwB,KAAKi+D,aAAa0f,oBAAoBn/E,QAAQ,SAAiB,CACjI,IAAIksF,EAAM1qF,KAAKi+D,aAAa0f,oBAAoB/pF,MAAM,KAClD23F,EAAWb,EAAI,IAAM,OACrBvmE,EAAMumE,EAAI,IAAM,WAChB9Q,EAAOz1D,EAAIhC,OAAO,EAAG,GACrB03D,EAAO11D,EAAIhC,OAAO,GACtBipE,EAAaF,EAAeC,GAC5BE,EAAerrF,KAAKgnF,gBAAgBplF,EAAI5B,KAAKgnF,gBAAgB72E,GAE1Ci7E,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,GACnFvrF,KAAKgnF,gBAAgBxjC,GAAK0nC,GAAgBlrF,KAAKgnF,gBAAgBplF,EAAI5B,KAAKi+D,aAAa0mB,KACrF3kF,KAAKgnF,gBAAgBjmC,GAAKmqC,GAAgBlrF,KAAKgnF,gBAAgBplF,EAAI5B,KAAKi+D,aAAa0mB,OAErF3kF,KAAKgnF,gBAAgBxjC,GAAK2nC,GAAiBnrF,KAAKgnF,gBAAgB72E,EAAInQ,KAAKi+D,aAAa0mB,KACtF3kF,KAAKgnF,gBAAgBjmC,GAAKoqC,GAAiBnrF,KAAKgnF,gBAAgB72E,EAAInQ,KAAKi+D,aAAa0mB,MAItF3kF,KAAKgnF,gBAAgBjjC,GADV,SAAT61B,IAAoByR,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IAC5EL,EAAelrF,KAAKgnF,gBAAgBplF,GAAKupF,EAAgBnrF,KAAKgnF,gBAAgB72E,IAAM,EAAInQ,KAAKi+D,aAAa0mB,IACnH,SAAT/K,IAAoByR,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IACnFL,EAAelrF,KAAKgnF,gBAAgBplF,GAAKupF,EAAgBnrF,KAAKgnF,gBAAgB72E,IAAMnQ,KAAKi+D,aAAa0mB,IAEvG,EAI1B3kF,KAAKgnF,gBAAgBhpD,GADV,SAAT67C,IAAoBwR,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IAC5EJ,EAAgBnrF,KAAKgnF,gBAAgB72E,GAAK+6E,EAAelrF,KAAKgnF,gBAAgBplF,IAAM,EAAI5B,KAAKi+D,aAAa0mB,IACnH,SAAT9K,IAAoBwR,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IACnFJ,EAAgBnrF,KAAKgnF,gBAAgB72E,GAAK+6E,EAAelrF,KAAKgnF,gBAAgBplF,IAAM5B,KAAKi+D,aAAa0mB,IAEvG,CAE9B,KAAqD,SAA1C3kF,KAAKi+D,aAAa0f,qBAC3B39E,KAAKgnF,gBAAgBxjC,GAAK0nC,GAAgBlrF,KAAKgnF,gBAAgBplF,EAAI5B,KAAKi+D,aAAa0mB,KACrF3kF,KAAKgnF,gBAAgBjmC,GAAKoqC,GAAiBnrF,KAAKgnF,gBAAgB72E,EAAInQ,KAAKi+D,aAAa0mB,KACtF3kF,KAAKgnF,gBAAgBjjC,GAAK,EAC1B/jD,KAAKgnF,gBAAgBhpD,GAAK,IAE1Bh+B,KAAKgnF,gBAAgBxjC,GAAKxjD,KAAKi+D,aAAa0mB,IAC5C3kF,KAAKgnF,gBAAgBjmC,GAAK/gD,KAAKi+D,aAAa0mB,IAC5C3kF,KAAKgnF,gBAAgBjjC,GAAK,EAC1B/jD,KAAKgnF,gBAAgBhpD,GAAK,GAG5Bh+B,KAAKgnF,gBAAgBv6D,MAAQ,CAACzsB,KAAKgnF,gBAAgBxjC,GAAI,EAAG,EAAG,EAAG,EAAGxjD,KAAKgnF,gBAAgBjmC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG/gD,KAAKgnF,gBAAgBjjC,GAAI/jD,KAAKgnF,gBAAgBhpD,GAAI,EAAG,GAQnKh+B,KAAK+kF,aAAa/kF,KAAKgnF,gBAAgBv6D,OACvCzsB,KAAK4hF,cAAcC,YACnB7hF,KAAK4hF,cAAchd,KAAK,EAAG,EAAG5kE,KAAKgnF,gBAAgBplF,EAAG5B,KAAKgnF,gBAAgB72E,GAC3EnQ,KAAK4hF,cAAcuH,YACnBnpF,KAAK4hF,cAAcM,OACnBliF,KAAKyrC,YAAYzrC,KAAKq7C,eAAe,EACvC,EAEA4nC,mBAAmB/xF,UAAUy+B,QAAU,WAKrC,IAAIp6B,EAGJ,IAPIyK,KAAKi+D,aAAawmB,aAAezkF,KAAKkxB,cAAcc,UACtDhyB,KAAKkxB,cAAcc,QAAQyc,UAAY,IAMpCl5C,GAFKyK,KAAKq9B,OAASr9B,KAAKq9B,OAAOltC,OAAS,GAE9B,EAAGoF,GAAK,EAAGA,GAAK,EACzByK,KAAKw0D,SAASj/D,IAAMyK,KAAKw0D,SAASj/D,GAAGo6B,SACvC3vB,KAAKw0D,SAASj/D,GAAGo6B,UAIrB3vB,KAAKw0D,SAASrkE,OAAS,EACvB6P,KAAKipC,WAAW24C,cAAgB,KAChC5hF,KAAKkxB,cAAc53B,UAAY,KAC/B0G,KAAKm+E,WAAY,CACnB,EAEA8E,mBAAmB/xF,UAAUu6C,YAAc,SAAU/sC,EAAKguD,GACxD,IAAI1sD,KAAKq7C,gBAAkB38C,IAAyC,IAAlCsB,KAAKi+D,aAAawmB,aAAyB/3B,KAAe1sD,KAAKm+E,YAAsB,IAATz/E,EAA9G,CAWA,IAAInJ,EAPJyK,KAAKq7C,cAAgB38C,EACrBsB,KAAKipC,WAAWgO,SAAWv4C,EAAMsB,KAAKkxB,cAAc+qB,cACpDj8C,KAAKipC,WAAW6S,SAAW,EAC3B97C,KAAKipC,WAAW2S,MAAQ57C,KAAKi+D,aAAawmB,aAAe/3B,EACzD1sD,KAAKipC,WAAWV,iBAAiBpB,aAAezoC,EAIhD,IAAId,EAAMoC,KAAKq9B,OAAOltC,OAMtB,IAJK6P,KAAKo9B,gBACRp9B,KAAKyiE,YAAY/jE,GAGdnJ,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,GACzByK,KAAKo9B,gBAAkBp9B,KAAKw0D,SAASj/D,KACvCyK,KAAKw0D,SAASj/D,GAAG0xC,aAAavoC,EAAMsB,KAAKq9B,OAAO9nC,GAAGoqC,IAIvD,GAAI3/B,KAAKipC,WAAW2S,KAAM,CAOxB,KANsC,IAAlC57C,KAAKi+D,aAAawmB,YACpBzkF,KAAK4hF,cAAcyF,UAAU,EAAG,EAAGrnF,KAAKgnF,gBAAgBplF,EAAG5B,KAAKgnF,gBAAgB72E,GAEhFnQ,KAAKiiF,OAGF1sF,EAAIqI,EAAM,EAAGrI,GAAK,EAAGA,GAAK,GACzByK,KAAKo9B,gBAAkBp9B,KAAKw0D,SAASj/D,KACvCyK,KAAKw0D,SAASj/D,GAAGk2C,eAIiB,IAAlCzrC,KAAKi+D,aAAawmB,aACpBzkF,KAAK4nF,SAET,CAtCA,CAuCF,EAEA3E,mBAAmB/xF,UAAUwxE,UAAY,SAAUv+C,GACjD,IAAIqwC,EAAWx0D,KAAKw0D,SAEpB,IAAIA,EAASrwC,IAAgC,KAAxBnkB,KAAKq9B,OAAOlZ,GAAK6Z,GAAtC,CAIA,IAAI7E,EAAUn5B,KAAK4iE,WAAW5iE,KAAKq9B,OAAOlZ,GAAMnkB,KAAMA,KAAKipC,YAC3DurB,EAASrwC,GAAOgV,EAChBA,EAAQgR,iBAJR,CAQF,EAEA84C,mBAAmB/xF,UAAUyxE,qBAAuB,WAClD,KAAO3iE,KAAK+jE,gBAAgB5zE,QACZ6P,KAAK+jE,gBAAgBhZ,MAC3BmgB,gBAEZ,EAEA+X,mBAAmB/xF,UAAU47C,KAAO,WAClC9sC,KAAKkxB,cAAc53B,UAAUozB,MAAM0M,QAAU,MAC/C,EAEA6pD,mBAAmB/xF,UAAU67C,KAAO,WAClC/sC,KAAKkxB,cAAc53B,UAAUozB,MAAM0M,QAAU,OAC/C,EAkDAiqD,cAAcnyF,UAAUs6F,UAAY,WAClC,IAAIC,EAA2B,EAAfzrF,KAAKyxC,QACjBl8C,EAAI,EAER,IAAKA,EAAIyK,KAAKyxC,QAASl8C,EAAIk2F,EAAWl2F,GAAK,EACzCyK,KAAK2oB,MAAMpzB,GAAK,IAAI2tF,cAGtBljF,KAAKyxC,QAAUg6C,CACjB,EAEApI,cAAcnyF,UAAUgvD,MAAQ,WAC9BlgD,KAAKsjF,QAAU,EACftjF,KAAKujF,IAAIrjC,QACTlgD,KAAK2oB,MAAM3oB,KAAKsjF,SAAS3c,QAAU,CACrC,EAEA0c,cAAcnyF,UAAU02F,QAAU,SAAU8D,GAC1C1rF,KAAKsjF,SAAW,EAChB,IAEI/tF,EAFAo2F,EAAiB3rF,KAAK2oB,MAAM3oB,KAAKsjF,SACjCn2E,EAAYw+E,EAAex+E,UAE3B3P,EAAMwC,KAAKujF,IAAI92D,MAEnB,IAAKl3B,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBiI,EAAIjI,GAAK4X,EAAU5X,GAGrB,GAAIm2F,EAAc,CAChB1rF,KAAKwjF,cAAcoE,UACnB,IAAIgE,EAAY5rF,KAAK2oB,MAAM3oB,KAAKsjF,QAAU,GAC1CtjF,KAAK4jF,iBAAmBgI,EAAUhpD,UAClC5iC,KAAK8jF,mBAAqB8H,EAAUzI,YACpCnjF,KAAKgkF,iBAAmB4H,EAAUnW,UAClCz1E,KAAKkkF,eAAiB0H,EAAUxI,QAChCpjF,KAAKokF,gBAAkBwH,EAAU55B,SACjChyD,KAAKqkF,kBAAoBuH,EAAU35B,UACrC,CAEAjyD,KAAKwjF,cAAc3/B,aAAa12C,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,IAAKA,EAAU,MAE7Gu+E,IAA4C,IAA5BC,EAAehlB,SAAkB3mE,KAAK0jF,iBAAmBiI,EAAehlB,WAC1F3mE,KAAKwjF,cAAcmH,YAAcgB,EAAehlB,QAChD3mE,KAAK0jF,eAAiBiI,EAAehlB,SAGvC3mE,KAAK2jF,iBAAmBgI,EAAe/oD,UACvC5iC,KAAK6jF,mBAAqB8H,EAAexI,YACzCnjF,KAAK+jF,iBAAmB4H,EAAelW,UACvCz1E,KAAKikF,eAAiB0H,EAAevI,QACrCpjF,KAAKmkF,gBAAkBwH,EAAe35B,SACtChyD,KAAKskF,kBAAoBqH,EAAe15B,UAC1C,EAEAoxB,cAAcnyF,UAAU+wF,KAAO,SAAU4J,GACnCA,GACF7rF,KAAKwjF,cAAcvB,OAGrB,IAAIx1D,EAAQzsB,KAAKujF,IAAI92D,MAEjBzsB,KAAKyxC,SAAWzxC,KAAKsjF,SACvBtjF,KAAKwrF,YAGP,IACIj2F,EADAu2F,EAAe9rF,KAAK2oB,MAAM3oB,KAAKsjF,SAGnC,IAAK/tF,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBu2F,EAAa3+E,UAAU5X,GAAKk3B,EAAMl3B,GAGpCyK,KAAKsjF,SAAW,EAChB,IAAIyI,EAAW/rF,KAAK2oB,MAAM3oB,KAAKsjF,SAC/ByI,EAASplB,QAAUmlB,EAAanlB,QAChColB,EAASnpD,UAAYkpD,EAAalpD,UAClCmpD,EAAS5I,YAAc2I,EAAa3I,YACpC4I,EAAStW,UAAYqW,EAAarW,UAClCsW,EAAS3I,QAAU0I,EAAa1I,QAChC2I,EAAS/5B,SAAW85B,EAAa95B,SACjC+5B,EAAS95B,WAAa65B,EAAa75B,UACrC,EAEAoxB,cAAcnyF,UAAU86F,WAAa,SAAUpzF,GAC7CoH,KAAK2oB,MAAM3oB,KAAKsjF,SAAS3c,QAAU/tE,CACrC,EAEAyqF,cAAcnyF,UAAU85F,WAAa,SAAUpyF,GAC7CoH,KAAKwjF,cAAgB5qF,CACvB,EAEAyqF,cAAcnyF,UAAU0xC,UAAY,SAAUhqC,GACxCoH,KAAK2oB,MAAM3oB,KAAKsjF,SAAS1gD,YAAchqC,IACzCoH,KAAK2jF,iBAAmB/qF,EACxBoH,KAAK2oB,MAAM3oB,KAAKsjF,SAAS1gD,UAAYhqC,EAEzC,EAEAyqF,cAAcnyF,UAAUiyF,YAAc,SAAUvqF,GAC1CoH,KAAK2oB,MAAM3oB,KAAKsjF,SAASH,cAAgBvqF,IAC3CoH,KAAK6jF,mBAAqBjrF,EAC1BoH,KAAK2oB,MAAM3oB,KAAKsjF,SAASH,YAAcvqF,EAE3C,EAEAyqF,cAAcnyF,UAAUukF,UAAY,SAAU78E,GACxCoH,KAAK2oB,MAAM3oB,KAAKsjF,SAAS7N,YAAc78E,IACzCoH,KAAK+jF,iBAAmBnrF,EACxBoH,KAAK2oB,MAAM3oB,KAAKsjF,SAAS7N,UAAY78E,EAEzC,EAEAyqF,cAAcnyF,UAAUkyF,QAAU,SAAUxqF,GACtCoH,KAAK2oB,MAAM3oB,KAAKsjF,SAASF,UAAYxqF,IACvCoH,KAAKikF,eAAiBrrF,EACtBoH,KAAK2oB,MAAM3oB,KAAKsjF,SAASF,QAAUxqF,EAEvC,EAEAyqF,cAAcnyF,UAAU8gE,SAAW,SAAUp5D,GACvCoH,KAAK2oB,MAAM3oB,KAAKsjF,SAAStxB,WAAap5D,IACxCoH,KAAKmkF,gBAAkBvrF,EACvBoH,KAAK2oB,MAAM3oB,KAAKsjF,SAAStxB,SAAWp5D,EAExC,EAEAyqF,cAAcnyF,UAAU+gE,WAAa,SAAUr5D,GACzCoH,KAAK2oB,MAAM3oB,KAAKsjF,SAASrxB,aAAer5D,IAC1CoH,KAAKskF,kBAAoB1rF,EACzBoH,KAAK2oB,MAAM3oB,KAAKsjF,SAASrxB,WAAar5D,EAE1C,EAEAyqF,cAAcnyF,UAAUic,UAAY,SAAUsf,GAC5CzsB,KAAKyjF,aAAaz9B,eAAev5B,GAEjC,IAAIqnD,EAAmB9zE,KAAKujF,IAE5BvjF,KAAKyjF,aAAa/9B,SAASouB,GAE3BA,EAAiB9tB,eAAehmD,KAAKyjF,aAAah3D,OAClD,IAAIw/D,EAAUnY,EAAiBrnD,MAE/BzsB,KAAKwjF,cAAc3/B,aAAaooC,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,IAAKA,EAAQ,IACvG,EAEA5I,cAAcnyF,UAAUy1E,QAAU,SAAUjnC,GAC1C,IAAIgkD,EAAiB1jF,KAAK2oB,MAAM3oB,KAAKsjF,SAAS3c,QAC9C+c,GAAkBhkD,EAAK,EAAI,EAAIA,EAE3B1/B,KAAK2oB,MAAM3oB,KAAKsjF,SAAS3c,UAAY+c,IACnC1jF,KAAK0jF,iBAAmBhkD,IAC1B1/B,KAAKwjF,cAAcmH,YAAcjrD,EACjC1/B,KAAK0jF,eAAiBhkD,GAGxB1/B,KAAK2oB,MAAM3oB,KAAKsjF,SAAS3c,QAAU+c,EAEvC,EAEAL,cAAcnyF,UAAUmL,KAAO,SAAUuuF,GACnC5qF,KAAK4jF,mBAAqB5jF,KAAK2jF,mBACjC3jF,KAAK4jF,iBAAmB5jF,KAAK2jF,iBAC7B3jF,KAAKwjF,cAAc5gD,UAAY5iC,KAAK4jF,kBAGtC5jF,KAAKwjF,cAAcnnF,KAAKuuF,EAC1B,EAEAvH,cAAcnyF,UAAU2xC,SAAW,SAAU7nC,EAAGsR,EAAG1K,EAAGuO,GAChDnQ,KAAK4jF,mBAAqB5jF,KAAK2jF,mBACjC3jF,KAAK4jF,iBAAmB5jF,KAAK2jF,iBAC7B3jF,KAAKwjF,cAAc5gD,UAAY5iC,KAAK4jF,kBAGtC5jF,KAAKwjF,cAAc3gD,SAAS7nC,EAAGsR,EAAG1K,EAAGuO,EACvC,EAEAkzE,cAAcnyF,UAAUyxF,OAAS,WAC3B3iF,KAAK8jF,qBAAuB9jF,KAAK6jF,qBACnC7jF,KAAK8jF,mBAAqB9jF,KAAK6jF,mBAC/B7jF,KAAKwjF,cAAcL,YAAcnjF,KAAK8jF,oBAGpC9jF,KAAKgkF,mBAAqBhkF,KAAK+jF,mBACjC/jF,KAAKgkF,iBAAmBhkF,KAAK+jF,iBAC7B/jF,KAAKwjF,cAAc/N,UAAYz1E,KAAKgkF,kBAGlChkF,KAAKkkF,iBAAmBlkF,KAAKikF,iBAC/BjkF,KAAKkkF,eAAiBlkF,KAAKikF,eAC3BjkF,KAAKwjF,cAAcJ,QAAUpjF,KAAKkkF,gBAGhClkF,KAAKokF,kBAAoBpkF,KAAKmkF,kBAChCnkF,KAAKokF,gBAAkBpkF,KAAKmkF,gBAC5BnkF,KAAKwjF,cAAcxxB,SAAWhyD,KAAKokF,iBAGjCpkF,KAAKqkF,oBAAsBrkF,KAAKskF,oBAClCtkF,KAAKqkF,kBAAoBrkF,KAAKskF,kBAC9BtkF,KAAKwjF,cAAcvxB,WAAajyD,KAAKqkF,mBAGvCrkF,KAAKwjF,cAAcb,QACrB,EAaA3tD,gBAAgB,CAACiuD,mBAAoBlG,aAAc4E,eAAgB4C,eAEnEA,cAAcrzF,UAAUk6E,mBAAqB,WAC3C,IAQI71E,EARA4e,EAAMnU,KAAK4hF,cAWf,IAVAztE,EAAI0tE,YACJ1tE,EAAI2tE,OAAO,EAAG,GACd3tE,EAAI4tE,OAAO/hF,KAAKkgB,KAAKte,EAAG,GACxBuS,EAAI4tE,OAAO/hF,KAAKkgB,KAAKte,EAAG5B,KAAKkgB,KAAK/P,GAClCgE,EAAI4tE,OAAO,EAAG/hF,KAAKkgB,KAAK/P,GACxBgE,EAAI4tE,OAAO,EAAG,GACd5tE,EAAI+tE,OAIC3sF,EAFKyK,KAAKq9B,OAAOltC,OAEP,EAAGoF,GAAK,EAAGA,GAAK,GACzByK,KAAKo9B,gBAAkBp9B,KAAKw0D,SAASj/D,KACvCyK,KAAKw0D,SAASj/D,GAAGk2C,aAGvB,EAEA84C,cAAcrzF,UAAUy+B,QAAU,WAChC,IAAIp6B,EAGJ,IAAKA,EAFKyK,KAAKq9B,OAAOltC,OAEP,EAAGoF,GAAK,EAAGA,GAAK,EACzByK,KAAKw0D,SAASj/D,IAChByK,KAAKw0D,SAASj/D,GAAGo6B,UAIrB3vB,KAAKq9B,OAAS,KACdr9B,KAAKw0D,SAAW,IAClB,EAEA+vB,cAAcrzF,UAAU6xE,WAAa,SAAU7iD,GAC7C,OAAO,IAAIqkE,cAAcrkE,EAAMlgB,KAAKipC,WAAYjpC,KAClD,EAmDAg1B,gBAAgB,CAACiuD,oBAAqBuB,gBAEtCA,eAAetzF,UAAU6xE,WAAa,SAAU7iD,GAC9C,OAAO,IAAIqkE,cAAcrkE,EAAMlgB,KAAKipC,WAAYjpC,KAClD,EAIA0lF,aAAax0F,UAAY,CACvBg7F,eAAgB,WAA2B,EAC3C9iB,oBAAqB,WACnBppE,KAAK2hE,YAAc5sC,UAAU/0B,KAAKkgB,KAAKisE,IAAM,OAEzCnsF,KAAKkgB,KAAKyd,SACZ39B,KAAKm9E,WAAanhD,SAAS,OAC3Bh8B,KAAK4hE,aAAe5lC,SAAS,KAC7Bh8B,KAAK6lE,cAAgB7lE,KAAK4hE,aAC1B5hE,KAAKm9E,WAAW/3C,YAAYplC,KAAK4hE,cACjC5hE,KAAK2hE,YAAYv8B,YAAYplC,KAAKm9E,aAElCn9E,KAAK4hE,aAAe5hE,KAAK2hE,YAG3BzoC,SAASl5B,KAAK2hE,YAChB,EACA0H,wBAAyB,WACvBrpE,KAAK6mE,yBAA2B,IAAI0a,UAAUvhF,MAC9CA,KAAKupE,mBAAqBvpE,KAAK2hE,YAC/B3hE,KAAK6lE,cAAgB7lE,KAAK4hE,aAEtB5hE,KAAKkgB,KAAK4pD,IACZ9pE,KAAK4hE,aAAatzB,aAAa,KAAMtuC,KAAKkgB,KAAK4pD,IAG7C9pE,KAAKkgB,KAAKogB,IACZtgC,KAAK4hE,aAAatzB,aAAa,QAAStuC,KAAKkgB,KAAKogB,IAG/B,IAAjBtgC,KAAKkgB,KAAKwhD,IACZ1hE,KAAKwhE,cAET,EACA2I,cAAe,WACb,IAAIiiB,EAA0BpsF,KAAKupE,mBAAqBvpE,KAAKupE,mBAAmB78C,MAAQ,CAAC,EAEzF,GAAI1sB,KAAK+9D,eAAegI,QAAS,CAC/B,IAAIsmB,EAAcrsF,KAAK+9D,eAAetR,IAAItF,QAC1CilC,EAAwBj/E,UAAYk/E,EACpCD,EAAwBE,gBAAkBD,CAC5C,CAEIrsF,KAAK+9D,eAAekI,SACtBmmB,EAAwBzlB,QAAU3mE,KAAK+9D,eAAeC,MAAM/2D,EAAEtR,EAElE,EACA81C,YAAa,WAGPzrC,KAAKkgB,KAAK6pD,IAAM/pE,KAAKs9D,SAIzBt9D,KAAKqmE,kBACLrmE,KAAKm+D,mBACLn+D,KAAKmqE,gBACLnqE,KAAKorE,qBAEDprE,KAAKi8C,gBACPj8C,KAAKi8C,eAAgB,GAEzB,EACAtsB,QAAS,WACP3vB,KAAK4hE,aAAe,KACpB5hE,KAAKupE,mBAAqB,KAEtBvpE,KAAKspE,eACPtpE,KAAKspE,aAAe,MAGlBtpE,KAAK8gE,cACP9gE,KAAK8gE,YAAYnxC,UACjB3vB,KAAK8gE,YAAc,KAEvB,EACAuJ,2BAA4B,WAC1BrqE,KAAK8gE,YAAc,IAAI0D,YAAYxkE,KAAKkgB,KAAMlgB,KAAMA,KAAKipC,WAC3D,EACAsjD,WAAY,WAAuB,EACnCvhB,SAAU,WAAqB,GAEjC0a,aAAax0F,UAAUixE,eAAiByG,eAAe13E,UAAUixE,eACjEujB,aAAax0F,UAAUk5E,mBAAqBsb,aAAax0F,UAAUy+B,QACnE+1D,aAAax0F,UAAUuyE,sBAAwBpD,aAAanvE,UAAUuyE,sBAMtEzuC,gBAAgB,CAACuqC,YAAagF,iBAAkBmhB,aAAc7c,iBAAkBrJ,aAAcsJ,sBAAuB6c,eAErHA,cAAcz0F,UAAUi6E,cAAgB,WACtC,IAAIvG,EAEA5kE,KAAKkgB,KAAKyd,UACZinC,EAAO5oC,SAAS,SACXsS,aAAa,QAAStuC,KAAKkgB,KAAKgxD,IACrCtM,EAAKt2B,aAAa,SAAUtuC,KAAKkgB,KAAKg5B,IACtC0rB,EAAKt2B,aAAa,OAAQtuC,KAAKkgB,KAAKk8C,IACpCp8D,KAAKm9E,WAAW7uC,aAAa,QAAStuC,KAAKkgB,KAAKgxD,IAChDlxE,KAAKm9E,WAAW7uC,aAAa,SAAUtuC,KAAKkgB,KAAKg5B,OAEjD0rB,EAAO7vC,UAAU,QACZrI,MAAMztB,MAAQe,KAAKkgB,KAAKgxD,GAAK,KAClCtM,EAAKl4C,MAAM6E,OAASvxB,KAAKkgB,KAAKg5B,GAAK,KACnC0rB,EAAKl4C,MAAM8/D,gBAAkBxsF,KAAKkgB,KAAKk8C,IAGzCp8D,KAAK4hE,aAAax8B,YAAYw/B,EAChC,EA8BA5vC,gBAAgB,CAACuqC,YAAagF,iBAAkBohB,cAAe7U,gBAAiB4U,aAAc7c,iBAAkBrJ,aAActC,mBAAoB0oB,eAClJA,cAAc10F,UAAUu7F,kBAAoB7G,cAAc10F,UAAUk6E,mBAEpEwa,cAAc10F,UAAUi6E,cAAgB,WACtC,IAAIlW,EAGJ,GAFAj1D,KAAK2hE,YAAYj1C,MAAM8rC,SAAW,EAE9Bx4D,KAAKkgB,KAAKyd,QACZ39B,KAAK4hE,aAAax8B,YAAYplC,KAAK6lF,iBACnC5wB,EAAOj1D,KAAKm9E,eACP,CACLloB,EAAOj5B,SAAS,OAChB,IAAIlgC,EAAOkE,KAAKs+B,KAAKpe,KAAOlgB,KAAKs+B,KAAKpe,KAAOlgB,KAAKipC,WAAWm7B,SAC7DnP,EAAK3mB,aAAa,QAASxyC,EAAK8F,GAChCqzD,EAAK3mB,aAAa,SAAUxyC,EAAKqU,GACjC8kD,EAAK7vB,YAAYplC,KAAK6lF,iBACtB7lF,KAAK4hE,aAAax8B,YAAY6vB,EAChC,CAEAj1D,KAAK+yE,aAAa/yE,KAAKohE,WAAYphE,KAAKqhE,UAAWrhE,KAAK+tE,aAAc/tE,KAAK6lF,gBAAiB,EAAG,IAAI,GACnG7lF,KAAKgzE,qBACLhzE,KAAK0sF,UAAYz3B,CACnB,EAEA2wB,cAAc10F,UAAUy7F,oBAAsB,SAAUxgB,EAAc94B,GACpE,IAAI99C,EACAqI,EAAMuuE,EAAah8E,OAEvB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB89C,EAAQ84B,EAAa52E,GAAGwgE,OAAOpgE,EAAE8wD,kBAAkBpT,EAAM,GAAIA,EAAM,GAAI,GAGzE,OAAOA,CACT,EAEAuyC,cAAc10F,UAAU07F,0BAA4B,SAAUtvE,EAAMgxC,GAClE,IAEI/4D,EAEAs3F,EACAC,EACAC,EACAC,EAPAruC,EAAQrhC,EAAK47B,GAAGvjD,EAChBw2E,EAAe7uD,EAAK6uD,aAEpBvuE,EAAM+gD,EAAMlN,QAMhB,KAAI7zC,GAAO,GAAX,CAIA,IAAKrI,EAAI,EAAGA,EAAIqI,EAAM,EAAGrI,GAAK,EAC5Bs3F,EAAS7sF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAMhpD,EAAEJ,IACxDu3F,EAAS9sF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAM13C,EAAE1R,IACxDw3F,EAAa/sF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAMppD,EAAEA,EAAI,IAChEy3F,EAAahtF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAMhpD,EAAEJ,EAAI,IAChEyK,KAAK+oB,YAAY8jE,EAAQC,EAAQC,EAAYC,EAAY1+B,GAGvD3P,EAAMl+C,IACRosF,EAAS7sF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAMhpD,EAAEJ,IACxDu3F,EAAS9sF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAM13C,EAAE1R,IACxDw3F,EAAa/sF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAMppD,EAAE,IAC5Dy3F,EAAahtF,KAAK2sF,oBAAoBxgB,EAAcxtB,EAAMhpD,EAAE,IAC5DqK,KAAK+oB,YAAY8jE,EAAQC,EAAQC,EAAYC,EAAY1+B,GAf3D,CAiBF,EAEAs3B,cAAc10F,UAAU63B,YAAc,SAAU8jE,EAAQC,EAAQC,EAAYC,EAAY1+B,GACtFtuD,KAAKitF,iBAAiBJ,EAAQC,EAAQC,EAAYC,GAClD,IAAIh2B,EAASh3D,KAAKktF,iBAClB5+B,EAAYtzD,EAAIu9B,MAAMy+B,EAAO91D,KAAMotD,EAAYtzD,GAC/CszD,EAAY6+B,KAAO70D,MAAM0+B,EAAO71D,MAAOmtD,EAAY6+B,MACnD7+B,EAAYhiD,EAAIisB,MAAMy+B,EAAO1lC,IAAKg9B,EAAYhiD,GAC9CgiD,EAAY8+B,KAAO90D,MAAM0+B,EAAOC,OAAQ3I,EAAY8+B,KACtD,EAEAxH,cAAc10F,UAAUg8F,iBAAmB,CACzChsF,KAAM,EACNC,MAAO,EACPmwB,IAAK,EACL2lC,OAAQ,GAEV2uB,cAAc10F,UAAUm8F,gBAAkB,CACxCryF,EAAG,EACHmyF,KAAM,EACN7gF,EAAG,EACH8gF,KAAM,EACNnuF,MAAO,EACPsyB,OAAQ,GAGVq0D,cAAc10F,UAAU+7F,iBAAmB,SAAUzsC,EAAIC,EAAImE,EAAI+I,GAG/D,IAFA,IAES9pD,EAAGlU,EAAG8Q,EAAGkE,EAAG2oF,EAAMt4C,EAAIoZ,EAF3B4I,EAAS,CAAC,CAACxW,EAAG,GAAImN,EAAG,IAAK,CAACnN,EAAG,GAAImN,EAAG,KAENp4D,EAAI,EAAGA,EAAI,IAAKA,EAEjD5F,EAAI,EAAI6wD,EAAGjrD,GAAK,GAAKkrD,EAAGlrD,GAAK,EAAIqvD,EAAGrvD,GACpCsO,GAAK,EAAI28C,EAAGjrD,GAAK,EAAIkrD,EAAGlrD,GAAK,EAAIqvD,EAAGrvD,GAAK,EAAIo4D,EAAGp4D,GAChDkL,EAAI,EAAIggD,EAAGlrD,GAAK,EAAIirD,EAAGjrD,GACvB5F,GAAK,EAIL8Q,GAAK,EAEK,KAJVoD,GAAK,IAIgB,IAANlU,IACE,IAANkU,GACTc,GAAKlE,EAAI9Q,GAED,GAAKgV,EAAI,GACfqyD,EAAOzhE,GAAGC,KAAKwK,KAAKutF,WAAW5oF,EAAG67C,EAAIC,EAAImE,EAAI+I,EAAIp4D,KAGpD+3F,EAAO39F,EAAIA,EAAI,EAAI8Q,EAAIoD,IAEX,KACVmxC,IAAOrlD,EAAIyoC,OAAOk1D,KAAU,EAAIzpF,IACvB,GAAKmxC,EAAK,GAAGgiB,EAAOzhE,GAAGC,KAAKwK,KAAKutF,WAAWv4C,EAAIwL,EAAIC,EAAImE,EAAI+I,EAAIp4D,KACzE64D,IAAOz+D,EAAIyoC,OAAOk1D,KAAU,EAAIzpF,IACvB,GAAKuqD,EAAK,GAAG4I,EAAOzhE,GAAGC,KAAKwK,KAAKutF,WAAWn/B,EAAI5N,EAAIC,EAAImE,EAAI+I,EAAIp4D,MAK/EyK,KAAKktF,iBAAiBhsF,KAAOq3B,MAAMrc,MAAM,KAAM86C,EAAO,IACtDh3D,KAAKktF,iBAAiB57D,IAAMiH,MAAMrc,MAAM,KAAM86C,EAAO,IACrDh3D,KAAKktF,iBAAiB/rF,MAAQm3B,MAAMpc,MAAM,KAAM86C,EAAO,IACvDh3D,KAAKktF,iBAAiBj2B,OAAS3+B,MAAMpc,MAAM,KAAM86C,EAAO,GAC1D,EAEA4uB,cAAc10F,UAAUq8F,WAAa,SAAU5oF,EAAG67C,EAAIC,EAAImE,EAAI+I,EAAIp4D,GAChE,OAAO4iC,MAAM,EAAIxzB,EAAG,GAAK67C,EAAGjrD,GAAK,EAAI4iC,MAAM,EAAIxzB,EAAG,GAAKA,EAAI87C,EAAGlrD,GAAK,GAAK,EAAIoP,GAAKwzB,MAAMxzB,EAAG,GAAKigD,EAAGrvD,GAAK4iC,MAAMxzB,EAAG,GAAKgpD,EAAGp4D,EAC1H,EAEAqwF,cAAc10F,UAAUs8F,qBAAuB,SAAUnsB,EAAW/S,GAClE,IAAI/4D,EACAqI,EAAMyjE,EAAUlxE,OAEpB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpB8rE,EAAU9rE,IAAM8rE,EAAU9rE,GAAG2jD,GAC/Bl5C,KAAK4sF,0BAA0BvrB,EAAU9rE,GAAI+4D,GACpC+S,EAAU9rE,IAAM8rE,EAAU9rE,GAAGmpC,GACtC1+B,KAAKwtF,qBAAqBnsB,EAAU9rE,GAAGmpC,GAAI4vB,GAClC+S,EAAU9rE,IAAM8rE,EAAU9rE,GAAGm3B,OAAS20C,EAAU9rE,GAAGqM,GAC5D5B,KAAKytF,wBAAwBpsB,EAAU9rE,GAAGqM,EAAG0sD,EAGnD,EAEAs3B,cAAc10F,UAAUu8F,wBAA0B,SAAUC,EAAep/B,GACzE,IAAIrvD,EAAQ,EAEZ,GAAIyuF,EAAc71C,UAAW,CAC3B,IAAK,IAAItiD,EAAI,EAAGA,EAAIm4F,EAAc71C,UAAU1nD,OAAQoF,GAAK,EAAG,CAC1D,IAAIo4F,EAAMD,EAAc71C,UAAUtiD,GAAG6X,EAEjCugF,EAAM1uF,IACRA,EAAQ0uF,EAEZ,CAEA1uF,GAASyuF,EAAc/xC,IACzB,MACE18C,EAAQyuF,EAAc/3F,EAAI+3F,EAAc/xC,KAG1C2S,EAAYtzD,GAAKiE,EACjBqvD,EAAY6+B,MAAQluF,EACpBqvD,EAAYhiD,GAAKrN,EACjBqvD,EAAY8+B,MAAQnuF,CACtB,EAEA2mF,cAAc10F,UAAU08F,mBAAqB,SAAUv/B,GACrD,OAAOruD,KAAK8lF,YAAY9qF,GAAKqzD,EAAIrzD,GAAKgF,KAAK8lF,YAAYx5E,GAAK+hD,EAAI/hD,GAAKtM,KAAK8lF,YAAY7mF,MAAQe,KAAK8lF,YAAY9qF,GAAKqzD,EAAIrzD,EAAIqzD,EAAIpvD,OAASe,KAAK8lF,YAAYv0D,OAASvxB,KAAK8lF,YAAYx5E,GAAK+hD,EAAI/hD,EAAI+hD,EAAI98B,MACvM,EAEAq0D,cAAc10F,UAAUk6E,mBAAqB,WAG3C,GAFAprE,KAAKysF,qBAEAzsF,KAAKs9D,SAAWt9D,KAAKi8C,eAAiBj8C,KAAK47C,MAAO,CACrD,IAAIyxC,EAAkBrtF,KAAKqtF,gBACvBpsF,EAAM,OASV,GARAosF,EAAgBryF,EAAIiG,EACpBosF,EAAgBF,MAAQlsF,EACxBosF,EAAgB/gF,EAAIrL,EACpBosF,EAAgBD,MAAQnsF,EACxBjB,KAAKwtF,qBAAqBxtF,KAAKqhE,UAAWgsB,GAC1CA,EAAgBpuF,MAAQouF,EAAgBF,KAAOE,EAAgBryF,EAAI,EAAIqyF,EAAgBF,KAAOE,EAAgBryF,EAC9GqyF,EAAgB97D,OAAS87D,EAAgBD,KAAOC,EAAgB/gF,EAAI,EAAI+gF,EAAgBD,KAAOC,EAAgB/gF,EAE3GtM,KAAK4tF,mBAAmBP,GAC1B,OAGF,IAAIQ,GAAU,EAcd,GAZI7tF,KAAK8lF,YAAYlkF,IAAMyrF,EAAgBpuF,QACzCe,KAAK8lF,YAAYlkF,EAAIyrF,EAAgBpuF,MACrCe,KAAK0sF,UAAUp+C,aAAa,QAAS++C,EAAgBpuF,OACrD4uF,GAAU,GAGR7tF,KAAK8lF,YAAY31E,IAAMk9E,EAAgB97D,SACzCvxB,KAAK8lF,YAAY31E,EAAIk9E,EAAgB97D,OACrCvxB,KAAK0sF,UAAUp+C,aAAa,SAAU++C,EAAgB97D,QACtDs8D,GAAU,GAGRA,GAAW7tF,KAAK8lF,YAAY9qF,IAAMqyF,EAAgBryF,GAAKgF,KAAK8lF,YAAYx5E,IAAM+gF,EAAgB/gF,EAAG,CACnGtM,KAAK8lF,YAAYlkF,EAAIyrF,EAAgBpuF,MACrCe,KAAK8lF,YAAY31E,EAAIk9E,EAAgB97D,OACrCvxB,KAAK8lF,YAAY9qF,EAAIqyF,EAAgBryF,EACrCgF,KAAK8lF,YAAYx5E,EAAI+gF,EAAgB/gF,EACrCtM,KAAK0sF,UAAUp+C,aAAa,UAAWtuC,KAAK8lF,YAAY9qF,EAAI,IAAMgF,KAAK8lF,YAAYx5E,EAAI,IAAMtM,KAAK8lF,YAAYlkF,EAAI,IAAM5B,KAAK8lF,YAAY31E,GACzI,IAAI29E,EAAa9tF,KAAK0sF,UAAUhgE,MAC5BqhE,EAAiB,aAAe/tF,KAAK8lF,YAAY9qF,EAAI,MAAQgF,KAAK8lF,YAAYx5E,EAAI,MACtFwhF,EAAW3gF,UAAY4gF,EACvBD,EAAWxB,gBAAkByB,CAC/B,CACF,CACF,EAgBA/4D,gBAAgB,CAACuqC,YAAagF,iBAAkBmhB,aAAc7c,iBAAkBrJ,aAAcsJ,qBAAsB2Q,cAAesM,cAEnIA,aAAa70F,UAAUi6E,cAAgB,WAGrC,GAFAnrE,KAAKimF,SAAWjmF,KAAKugE,aAEjBvgE,KAAKimF,SAAU,CACjBjmF,KAAK84E,WAAa,MAClB94E,KAAKguF,MAAQhuF,KAAKs+B,KAAKpe,KAAKte,EAC5B5B,KAAKiuF,MAAQjuF,KAAKs+B,KAAKpe,KAAK/P,EAC5BnQ,KAAKm9E,WAAW7uC,aAAa,QAAStuC,KAAKguF,OAC3ChuF,KAAKm9E,WAAW7uC,aAAa,SAAUtuC,KAAKiuF,OAC5C,IAAI17E,EAAIypB,SAAS,KACjBh8B,KAAK6lE,cAAczgC,YAAY7yB,GAC/BvS,KAAKqrE,UAAY94D,CACnB,MACEvS,KAAK84E,WAAa,OAClB94E,KAAKqrE,UAAYrrE,KAAK4hE,aAGxB5hE,KAAKkrE,gBACP,EAEA6a,aAAa70F,UAAUsrF,aAAe,WACpC,IAAIr9C,EAAen/B,KAAKi4E,aAAaxG,YACrCzxE,KAAKu5E,gBAAkB/hD,iBAAiB2H,EAAazyB,EAAIyyB,EAAazyB,EAAEvc,OAAS,GACjF,IAAI+9F,EAAiBluF,KAAKqrE,UAAU3+C,MAChCyhE,EAAYhvD,EAAagyC,GAAKnxE,KAAKo8E,WAAWj9C,EAAagyC,IAAM,gBACrE+c,EAAe7xF,KAAO8xF,EACtBD,EAAelzD,MAAQmzD,EAEnBhvD,EAAai9B,KACf8xB,EAAevL,OAAS3iF,KAAKo8E,WAAWj9C,EAAai9B,IACrD8xB,EAAeE,YAAcjvD,EAAa+xC,GAAK,MAGjD,IAiBI37E,EACAqI,EAlBAu1D,EAAWnzD,KAAKipC,WAAWe,YAAYwyB,cAAcr9B,EAAa1U,GAEtE,IAAKzqB,KAAKipC,WAAWe,YAAYzK,MAI/B,GAHA2uD,EAAe11B,SAAWr5B,EAAamzC,UAAY,KACnD4b,EAAeG,WAAalvD,EAAamzC,UAAY,KAEjDnf,EAASuG,OACX15D,KAAKqrE,UAAU0S,UAAY5qB,EAASuG,WAC/B,CACLw0B,EAAe51B,WAAanF,EAASqG,QACrC,IAAIlG,EAAUn0B,EAAam0B,QACvBD,EAASl0B,EAAak0B,OAC1B66B,EAAex1B,UAAYrF,EAC3B66B,EAAev1B,WAAarF,CAC9B,CAKF,IAEI0rB,EACAsP,EACAC,EAJAnZ,EAAUj2C,EAAazyB,EAC3B9O,EAAMw3E,EAAQjlF,OAId,IACIiuC,EADAg8C,EAAep6E,KAAKmnE,QAEpB6U,EAAW,GACXx9B,EAAM,EAEV,IAAKjpD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAuC3B,GAtCIyK,KAAKipC,WAAWe,YAAYzK,OACzBv/B,KAAKgmF,UAAUxnC,GAMlBwgC,EAAQh/E,KAAKgmF,UAAUxnC,KALvBwgC,EAAQhjD,SAAS,SACXsS,aAAa,iBAAkB09B,YAAY,IACjDgT,EAAM1wC,aAAa,kBAAmB29B,aAAa,IACnD+S,EAAM1wC,aAAa,oBAAqB,MAKrCtuC,KAAKimF,WACJjmF,KAAK28E,UAAUn+B,GAEjB+vC,GADAD,EAAUtuF,KAAK28E,UAAUn+B,IACTgwC,SAAS,KAEzBF,EAAUv5D,UAAU,QACZrI,MAAM2hE,WAAa,GAC3BE,EAAQvyD,SAAS,QACXoJ,YAAY45C,GAClB9lD,SAASo1D,MAGHtuF,KAAKimF,SAYfjH,EAAQh/E,KAAKgmF,UAAUxnC,GAAOx+C,KAAKgmF,UAAUxnC,GAAOxiB,SAAS,QAXzDh8B,KAAK28E,UAAUn+B,IACjB8vC,EAAUtuF,KAAK28E,UAAUn+B,GACzBwgC,EAAQh/E,KAAKgmF,UAAUxnC,KAGvBtlB,SADAo1D,EAAUv5D,UAAU,SAGpBmE,SADA8lD,EAAQjqD,UAAU,SAElBu5D,EAAQlpD,YAAY45C,IAOpBh/E,KAAKipC,WAAWe,YAAYzK,MAAO,CACrC,IACIgV,EADA/U,EAAWx/B,KAAKipC,WAAWe,YAAYqyB,YAAYl9B,EAAaozC,UAAUh9E,GAAI49D,EAASE,OAAQrzD,KAAKipC,WAAWe,YAAYwyB,cAAcr9B,EAAa1U,GAAG+uC,SAkB7J,GAdEjlB,EADE/U,EACUA,EAAStf,KAET,KAGdk6D,EAAal6B,QAET3L,GAAaA,EAAUnW,QAAUmW,EAAUnW,OAAOjuC,SACpDiuC,EAASmW,EAAUnW,OAAO,GAAGM,GAC7B07C,EAAaz2B,MAAMxkB,EAAamzC,UAAY,IAAKnzC,EAAamzC,UAAY,KAC1E0J,EAAWh8E,KAAK+7E,gBAAgB3B,EAAch8C,GAC9C4gD,EAAM1wC,aAAa,IAAK0tC,IAGrBh8E,KAAKimF,SAsBRjmF,KAAKqrE,UAAUjmC,YAAY45C,OAtBT,CAGlB,GAFAh/E,KAAKqrE,UAAUjmC,YAAYkpD,GAEvB/5C,GAAaA,EAAUnW,OAAQ,CAEjCvL,SAAS0b,KAAKnJ,YAAYmpD,GAC1B,IAAIjgC,EAAcigC,EAAM1qD,UACxB0qD,EAAMjgD,aAAa,QAASggB,EAAYrvD,MAAQ,GAChDsvF,EAAMjgD,aAAa,SAAUggB,EAAY/8B,OAAS,GAClDg9D,EAAMjgD,aAAa,UAAWggB,EAAYtzD,EAAI,EAAI,KAAOszD,EAAYhiD,EAAI,GAAK,KAAOgiD,EAAYrvD,MAAQ,GAAK,KAAOqvD,EAAY/8B,OAAS,IAC1I,IAAIk9D,EAAaF,EAAM7hE,MACnBgiE,EAAmB,cAAgBpgC,EAAYtzD,EAAI,GAAK,OAASszD,EAAYhiD,EAAI,GAAK,MAC1FmiF,EAAWthF,UAAYuhF,EACvBD,EAAWnC,gBAAkBoC,EAC7BtZ,EAAQ7/E,GAAG88E,QAAU/jB,EAAYhiD,EAAI,CACvC,MACEiiF,EAAMjgD,aAAa,QAAS,GAC5BigD,EAAMjgD,aAAa,SAAU,GAG/BggD,EAAQlpD,YAAYmpD,EACtB,CAGF,MAIE,GAHAvP,EAAMvlB,YAAc2b,EAAQ7/E,GAAG6J,IAC/B4/E,EAAM/5C,eAAe,uCAAwC,YAAa,YAErEjlC,KAAKimF,SAQRjmF,KAAKqrE,UAAUjmC,YAAY45C,OART,CAClBh/E,KAAKqrE,UAAUjmC,YAAYkpD,GAE3B,IAAIK,EAAS3P,EAAMtyD,MACfkiE,EAAmB,kBAAoBzvD,EAAamzC,UAAY,IAAM,QAC1Eqc,EAAOxhF,UAAYyhF,EACnBD,EAAOrC,gBAAkBsC,CAC3B,CAMG5uF,KAAKimF,SAGRjmF,KAAK28E,UAAUn+B,GAAOwgC,EAFtBh/E,KAAK28E,UAAUn+B,GAAO8vC,EAKxBtuF,KAAK28E,UAAUn+B,GAAK9xB,MAAM0M,QAAU,QACpCp5B,KAAKgmF,UAAUxnC,GAAOwgC,EACtBxgC,GAAO,CACT,CAEA,KAAOA,EAAMx+C,KAAK28E,UAAUxsF,QAC1B6P,KAAK28E,UAAUn+B,GAAK9xB,MAAM0M,QAAU,OACpColB,GAAO,CAEX,EAEAunC,aAAa70F,UAAUk6E,mBAAqB,WAE1C,IAAIyjB,EAEJ,GAHA7uF,KAAKu8E,eAGDv8E,KAAKkgB,KAAKs+D,YAAa,CACzB,IAAKx+E,KAAKi8C,gBAAkBj8C,KAAKw5E,mBAC/B,OAGF,GAAIx5E,KAAKimF,UAAYjmF,KAAK+9D,eAAegI,QAAS,CAEhD/lE,KAAKm9E,WAAW7uC,aAAa,WAAYtuC,KAAK+9D,eAAeC,MAAMtwD,EAAE/X,EAAE,GAAK,KAAOqK,KAAK+9D,eAAeC,MAAMtwD,EAAE/X,EAAE,GAAK,IAAMqK,KAAKguF,MAAQ,IAAMhuF,KAAKiuF,OACpJY,EAAW7uF,KAAKm9E,WAAWzwD,MAC3B,IAAIoiE,EAAc,cAAgB9uF,KAAK+9D,eAAeC,MAAMtwD,EAAE/X,EAAE,GAAK,OAASqK,KAAK+9D,eAAeC,MAAMtwD,EAAE/X,EAAE,GAAK,MACjHk5F,EAAS1hF,UAAY2hF,EACrBD,EAASvC,gBAAkBwC,CAC7B,CACF,CAIA,GAFA9uF,KAAK87E,aAAanC,YAAY35E,KAAKi4E,aAAaxG,YAAazxE,KAAKw5E,oBAE7Dx5E,KAAKw5E,oBAAuBx5E,KAAK87E,aAAatC,mBAAnD,CAIA,IAAIjkF,EACAqI,EAKA+hF,EACAC,EACAmP,EANA15F,EAAQ,EACRkkF,EAAkBv5E,KAAK87E,aAAavC,gBACpCnE,EAAUp1E,KAAKi4E,aAAaxG,YAAY/kE,EAM5C,IALA9O,EAAMw3E,EAAQjlF,OAKToF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpB6/E,EAAQ7/E,GAAG4Y,EACb9Y,GAAS,GAETuqF,EAAW5/E,KAAK28E,UAAUpnF,GAC1Bw5F,EAAW/uF,KAAKgmF,UAAUzwF,GAC1BoqF,EAAiBpG,EAAgBlkF,GACjCA,GAAS,EAELsqF,EAAe/jC,KAAKxtC,IACjBpO,KAAKimF,SAIRrG,EAAStxC,aAAa,YAAaqxC,EAAevxE,IAHlDwxE,EAASlzD,MAAM4/D,gBAAkB3M,EAAevxE,EAChDwxE,EAASlzD,MAAMvf,UAAYwyE,EAAevxE,IAO9CwxE,EAASlzD,MAAMi6C,QAAUgZ,EAAe14E,EAEpC04E,EAAezO,IAAMyO,EAAe/jC,KAAKs1B,IAC3C6d,EAASzgD,aAAa,eAAgBqxC,EAAezO,IAGnDyO,EAAevjB,IAAMujB,EAAe/jC,KAAKwgB,IAC3C2yB,EAASzgD,aAAa,SAAUqxC,EAAevjB,IAG7CujB,EAAexO,IAAMwO,EAAe/jC,KAAKu1B,KAC3C4d,EAASzgD,aAAa,OAAQqxC,EAAexO,IAC7C4d,EAASriE,MAAMsO,MAAQ2kD,EAAexO,KAK5C,GAAInxE,KAAKqrE,UAAUxnC,UAAY7jC,KAAKs9D,SAAWt9D,KAAKi8C,eAAiBj8C,KAAK47C,MAAO,CAC/E,IAAI0S,EAActuD,KAAKqrE,UAAUxnC,UAcjC,GAZI7jC,KAAK8lF,YAAYlkF,IAAM0sD,EAAYrvD,QACrCe,KAAK8lF,YAAYlkF,EAAI0sD,EAAYrvD,MACjCe,KAAKm9E,WAAW7uC,aAAa,QAASggB,EAAYrvD,QAGhDe,KAAK8lF,YAAY31E,IAAMm+C,EAAY/8B,SACrCvxB,KAAK8lF,YAAY31E,EAAIm+C,EAAY/8B,OACjCvxB,KAAKm9E,WAAW7uC,aAAa,SAAUggB,EAAY/8B,SAKjDvxB,KAAK8lF,YAAYlkF,IAAM0sD,EAAYrvD,MAAQ+vF,GAAchvF,KAAK8lF,YAAY31E,IAAMm+C,EAAY/8B,OAASy9D,GAAchvF,KAAK8lF,YAAY9qF,IAAMszD,EAAYtzD,EAF7I,GAE2JgF,KAAK8lF,YAAYx5E,IAAMgiD,EAAYhiD,EAF9L,EAE0M,CACrNtM,KAAK8lF,YAAYlkF,EAAI0sD,EAAYrvD,MAAQ+vF,EACzChvF,KAAK8lF,YAAY31E,EAAIm+C,EAAY/8B,OAASy9D,EAC1ChvF,KAAK8lF,YAAY9qF,EAAIszD,EAAYtzD,EALtB,EAMXgF,KAAK8lF,YAAYx5E,EAAIgiD,EAAYhiD,EANtB,EAOXtM,KAAKm9E,WAAW7uC,aAAa,UAAWtuC,KAAK8lF,YAAY9qF,EAAI,IAAMgF,KAAK8lF,YAAYx5E,EAAI,IAAMtM,KAAK8lF,YAAYlkF,EAAI,IAAM5B,KAAK8lF,YAAY31E,GAC1I0+E,EAAW7uF,KAAKm9E,WAAWzwD,MAC3B,IAAIuiE,EAAe,aAAejvF,KAAK8lF,YAAY9qF,EAAI,MAAQgF,KAAK8lF,YAAYx5E,EAAI,MACpFuiF,EAAS1hF,UAAY8hF,EACrBJ,EAASvC,gBAAkB2C,CAC7B,CACF,CA1EA,CA2EF,EA6CAj6D,gBAAgB,CAACuqC,YAAaC,aAAcqJ,kBAAmBqd,gBAE/DA,eAAeh1F,UAAUg+F,MAAQ,WAC/B,IAAI35F,EAEA+oC,EACA6wD,EACArE,EAHAltF,EAAMoC,KAAKs+B,KAAKioD,eAAep2F,OAKnC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAIxB,GAAkB,QAFlB+oC,EAAOt+B,KAAKs+B,KAAKioD,eAAehxF,IAEvBioB,KAAe,CACtB2xE,EAAmB7wD,EAAK8wD,gBAAgB1iE,MACxCo+D,EAAiBxsD,EAAKhlC,UAAUozB,MAChC,IAAI2iE,EAAcrvF,KAAKmmF,GAAGxwF,EAAI,KAC1BwsC,EAAS,cACTwjB,EAAS,4CACbwpC,EAAiBE,YAAcA,EAC/BF,EAAiBG,kBAAoBD,EACrCvE,EAAezxD,gBAAkB8I,EACjC2oD,EAAeC,mBAAqB5oD,EACpC2oD,EAAexxD,sBAAwB6I,EACvCgtD,EAAiBhiF,UAAYw4C,EAC7BwpC,EAAiB7C,gBAAkB3mC,CACrC,CAEJ,EAEAugC,eAAeh1F,UAAUy1F,eAAiB,WAAa,EAEvDT,eAAeh1F,UAAU47C,KAAO,WAAa,EAE7Co5C,eAAeh1F,UAAUu6C,YAAc,WACrC,IACIl2C,EACAqI,EAFAg+C,EAAO57C,KAAKi8C,cAIhB,GAAIj8C,KAAK2jE,UAGP,IAFA/lE,EAAMoC,KAAK2jE,UAAUxzE,OAEhBoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBqmD,EAAO57C,KAAK2jE,UAAUpuE,GAAGwoE,eAAeC,MAAMpiB,MAAQA,EAI1D,GAAIA,GAAQ57C,KAAKmmF,GAAGvqC,MAAQ57C,KAAK0N,GAAK1N,KAAK0N,EAAEkuC,MAAQ57C,KAAKksD,KAAOlsD,KAAKksD,GAAGtQ,MAAQ57C,KAAKmsD,GAAGvQ,MAAQ57C,KAAKosD,GAAGxQ,OAAS57C,KAAKiO,GAAG2tC,MAAQ57C,KAAKqsD,GAAGzQ,MAAQ57C,KAAKssD,GAAG1Q,MAAQ57C,KAAK4F,GAAGg2C,MAAQ57C,KAAK6D,GAAK7D,KAAK6D,EAAE+3C,KAAM,CAGvM,GAFA57C,KAAKysD,IAAIvM,QAELlgD,KAAK2jE,UAGP,IAAKpuE,EAFLqI,EAAMoC,KAAK2jE,UAAUxzE,OAAS,EAEhBoF,GAAK,EAAGA,GAAK,EAAG,CAC5B,IAAIg6F,EAAUvvF,KAAK2jE,UAAUpuE,GAAGwoE,eAAeC,MAC/Ch+D,KAAKysD,IAAI3I,WAAWyrC,EAAQ7hF,EAAE/X,EAAE,IAAK45F,EAAQ7hF,EAAE/X,EAAE,GAAI45F,EAAQ7hF,EAAE/X,EAAE,IACjEqK,KAAKysD,IAAIrJ,SAASmsC,EAAQ3pF,GAAGjQ,EAAE,IAAI0tD,SAASksC,EAAQ3pF,GAAGjQ,EAAE,IAAI2tD,QAAQisC,EAAQ3pF,GAAGjQ,EAAE,IAClFqK,KAAKysD,IAAIrJ,SAASmsC,EAAQthF,GAAGtY,GAAG0tD,SAASksC,EAAQljC,GAAG12D,GAAG2tD,QAAQisC,EAAQjjC,GAAG32D,GAC1EqK,KAAKysD,IAAI9I,MAAM,EAAI4rC,EAAQniF,EAAEzX,EAAE,GAAI,EAAI45F,EAAQniF,EAAEzX,EAAE,GAAI,EAAI45F,EAAQniF,EAAEzX,EAAE,IACvEqK,KAAKysD,IAAI3I,UAAUyrC,EAAQ1rF,EAAElO,EAAE,GAAI45F,EAAQ1rF,EAAElO,EAAE,GAAI45F,EAAQ1rF,EAAElO,EAAE,GACjE,CASF,GANIqK,KAAK0N,EACP1N,KAAKysD,IAAI3I,WAAW9jD,KAAK0N,EAAE/X,EAAE,IAAKqK,KAAK0N,EAAE/X,EAAE,GAAIqK,KAAK0N,EAAE/X,EAAE,IAExDqK,KAAKysD,IAAI3I,WAAW9jD,KAAKksD,GAAGv2D,GAAIqK,KAAKmsD,GAAGx2D,EAAGqK,KAAKosD,GAAGz2D,GAGjDqK,KAAK6D,EAAG,CACV,IAAI2rF,EAGFA,EADExvF,KAAK0N,EACM,CAAC1N,KAAK0N,EAAE/X,EAAE,GAAKqK,KAAK6D,EAAElO,EAAE,GAAIqK,KAAK0N,EAAE/X,EAAE,GAAKqK,KAAK6D,EAAElO,EAAE,GAAIqK,KAAK0N,EAAE/X,EAAE,GAAKqK,KAAK6D,EAAElO,EAAE,IAE9E,CAACqK,KAAKksD,GAAGv2D,EAAIqK,KAAK6D,EAAElO,EAAE,GAAIqK,KAAKmsD,GAAGx2D,EAAIqK,KAAK6D,EAAElO,EAAE,GAAIqK,KAAKosD,GAAGz2D,EAAIqK,KAAK6D,EAAElO,EAAE,IAGvF,IAAI85F,EAAMv9F,KAAKojB,KAAKpjB,KAAKmB,IAAIm8F,EAAW,GAAI,GAAKt9F,KAAKmB,IAAIm8F,EAAW,GAAI,GAAKt9F,KAAKmB,IAAIm8F,EAAW,GAAI,IAElGE,EAAU,CAACF,EAAW,GAAKC,EAAKD,EAAW,GAAKC,EAAKD,EAAW,GAAKC,GACrEE,EAAiBz9F,KAAKojB,KAAKo6E,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,IAC1EE,EAAa19F,KAAKwoD,MAAMg1C,EAAQ,GAAIC,GACpCE,EAAa39F,KAAKwoD,MAAMg1C,EAAQ,IAAKA,EAAQ,IACjD1vF,KAAKysD,IAAIpJ,QAAQwsC,GAAYzsC,SAASwsC,EACxC,CAEA5vF,KAAKysD,IAAIrJ,SAASpjD,KAAKiO,GAAGtY,GAAG0tD,SAASrjD,KAAKqsD,GAAG12D,GAAG2tD,QAAQtjD,KAAKssD,GAAG32D,GACjEqK,KAAKysD,IAAIrJ,SAASpjD,KAAK4F,GAAGjQ,EAAE,IAAI0tD,SAASrjD,KAAK4F,GAAGjQ,EAAE,IAAI2tD,QAAQtjD,KAAK4F,GAAGjQ,EAAE,IACzEqK,KAAKysD,IAAI3I,UAAU9jD,KAAKipC,WAAWm7B,SAASxiE,EAAI,EAAG5B,KAAKipC,WAAWm7B,SAASj0D,EAAI,EAAG,GACnFnQ,KAAKysD,IAAI3I,UAAU,EAAG,EAAG9jD,KAAKmmF,GAAGxwF,GACjC,IAAIm6F,GAAoB9vF,KAAKomF,SAAS5hE,OAAOxkB,KAAKysD,KAElD,IAAKqjC,GAAoB9vF,KAAKmmF,GAAGvqC,OAAS57C,KAAKs+B,KAAKioD,eAAgB,CAElE,IAAIjoD,EACA6wD,EACArE,EAEJ,IALAltF,EAAMoC,KAAKs+B,KAAKioD,eAAep2F,OAK1BoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAGxB,GAAkB,QAFlB+oC,EAAOt+B,KAAKs+B,KAAKioD,eAAehxF,IAEvBioB,KAAe,CACtB,GAAIsyE,EAAkB,CACpB,IAAIC,EAAW/vF,KAAKysD,IAAItF,SACxB2jC,EAAiBxsD,EAAKhlC,UAAUozB,OACjBvf,UAAY4iF,EAC3BjF,EAAewB,gBAAkByD,CACnC,CAEI/vF,KAAKmmF,GAAGvqC,QACVuzC,EAAmB7wD,EAAK8wD,gBAAgB1iE,OACvB2iE,YAAcrvF,KAAKmmF,GAAGxwF,EAAI,KAC3Cw5F,EAAiBG,kBAAoBtvF,KAAKmmF,GAAGxwF,EAAI,KAErD,CAGFqK,KAAKysD,IAAInqD,MAAMtC,KAAKomF,SACtB,CACF,CAEApmF,KAAKi8C,eAAgB,CACvB,EAEAiqC,eAAeh1F,UAAU+1C,aAAe,SAAUvoC,GAChDsB,KAAKgiE,kBAAkBtjE,GAAK,EAC9B,EAEAwnF,eAAeh1F,UAAUy+B,QAAU,WAAa,EAEhDu2D,eAAeh1F,UAAUixE,eAAiB,WACxC,OAAO,IACT,EAOAntC,gBAAgB,CAACuqC,YAAagF,iBAAkBmhB,aAAcC,cAAe9c,iBAAkBrJ,aAActC,mBAAoBmpB,eAEjIA,cAAcn1F,UAAUi6E,cAAgB,WACtC,IAAI70C,EAAYt2B,KAAKipC,WAAW5F,cAAcrjC,KAAKsjC,WAC/CI,EAAM,IAAIssD,MAEVhwF,KAAKkgB,KAAKyd,SACZ39B,KAAKiwF,UAAYj0D,SAAS,SAC1Bh8B,KAAKiwF,UAAU3hD,aAAa,QAAStuC,KAAKsjC,UAAU1hC,EAAI,MACxD5B,KAAKiwF,UAAU3hD,aAAa,SAAUtuC,KAAKsjC,UAAUnzB,EAAI,MACzDnQ,KAAKiwF,UAAUhrD,eAAe,+BAAgC,OAAQ3O,GACtEt2B,KAAK4hE,aAAax8B,YAAYplC,KAAKiwF,WACnCjwF,KAAK2hE,YAAYrzB,aAAa,QAAStuC,KAAKsjC,UAAU1hC,GACtD5B,KAAK2hE,YAAYrzB,aAAa,SAAUtuC,KAAKsjC,UAAUnzB,IAEvDnQ,KAAK4hE,aAAax8B,YAAY1B,GAGhCA,EAAIqB,YAAc,YAClBrB,EAAIrxC,IAAMikC,EAENt2B,KAAKkgB,KAAK4pD,IACZ9pE,KAAK2hE,YAAYrzB,aAAa,KAAMtuC,KAAKkgB,KAAK4pD,GAElD,EA+BA90C,gBAAgB,CAACqrC,cAAeimB,oBAChCA,mBAAmBp1F,UAAUwxE,UAAYwa,YAAYhsF,UAAUwxE,UAE/D4jB,mBAAmBp1F,UAAUyxE,qBAAuB,WAClD,KAAO3iE,KAAK+jE,gBAAgB5zE,QACZ6P,KAAK+jE,gBAAgBhZ,MAC3BmgB,gBAEZ,EAEAob,mBAAmBp1F,UAAU4uF,mBAAqB,SAAU3mD,EAAShV,GACnE,IAAI+rE,EAAgB/2D,EAAQgpC,iBAE5B,GAAK+tB,EAAL,CAIA,IAAIrtB,EAAQ7iE,KAAKq9B,OAAOlZ,GAExB,GAAK0+C,EAAMstB,KAAQnwF,KAAKi9E,WA4BtBj9E,KAAKowF,iBAAiBF,EAAe/rE,QA3BrC,GAAInkB,KAAKumF,eACPvmF,KAAKowF,iBAAiBF,EAAe/rE,OAChC,CAML,IALA,IACIksE,EACAC,EAFA/6F,EAAI,EAKDA,EAAI4uB,GACLnkB,KAAKw0D,SAASj/D,KAA2B,IAArByK,KAAKw0D,SAASj/D,IAAeyK,KAAKw0D,SAASj/D,GAAG4sE,iBACpEmuB,EAAYtwF,KAAKw0D,SAASj/D,GAE1B86F,GADgBrwF,KAAKq9B,OAAO9nC,GAAG46F,IAAMnwF,KAAKuwF,wBAAwBh7F,GAAK+6F,EAAUnuB,mBAC/CkuB,GAGpC96F,GAAK,EAGH86F,EACGxtB,EAAMstB,KAAQnwF,KAAKi9E,YACtBj9E,KAAK4hE,aAAaue,aAAa+P,EAAeG,GAEtCxtB,EAAMstB,KAAQnwF,KAAKi9E,YAC7Bj9E,KAAK4hE,aAAax8B,YAAY8qD,EAElC,CA9BF,CAkCF,EAEA5J,mBAAmBp1F,UAAUgyE,YAAc,SAAUhjD,GACnD,OAAKlgB,KAAKi9E,WAIH,IAAI2I,cAAc1lE,EAAMlgB,KAAKipC,WAAYjpC,MAHvC,IAAI8wE,gBAAgB5wD,EAAMlgB,KAAKipC,WAAYjpC,KAItD,EAEAsmF,mBAAmBp1F,UAAUiyE,WAAa,SAAUjjD,GAClD,OAAKlgB,KAAKi9E,WAIH,IAAI8I,aAAa7lE,EAAMlgB,KAAKipC,WAAYjpC,MAHtC,IAAI08E,qBAAqBx8D,EAAMlgB,KAAKipC,WAAYjpC,KAI3D,EAEAsmF,mBAAmBp1F,UAAUkyE,aAAe,SAAUljD,GAEpD,OADAlgB,KAAKwmF,OAAS,IAAIN,eAAehmE,EAAMlgB,KAAKipC,WAAYjpC,MACjDA,KAAKwmF,MACd,EAEAF,mBAAmBp1F,UAAU4xE,YAAc,SAAU5iD,GACnD,OAAKlgB,KAAKi9E,WAIH,IAAIoJ,cAAcnmE,EAAMlgB,KAAKipC,WAAYjpC,MAHvC,IAAI+oE,cAAc7oD,EAAMlgB,KAAKipC,WAAYjpC,KAIpD,EAEAsmF,mBAAmBp1F,UAAU8xE,YAAc,SAAU9iD,GACnD,OAAKlgB,KAAKi9E,WAIH,IAAI0I,cAAczlE,EAAMlgB,KAAKipC,WAAYjpC,MAHvC,IAAI48E,cAAc18D,EAAMlgB,KAAKipC,WAAYjpC,KAIpD,EAEAsmF,mBAAmBp1F,UAAU+xE,WAAaia,YAAYhsF,UAAU+xE,WAEhEqjB,mBAAmBp1F,UAAUq/F,wBAA0B,SAAUpsE,GAI/D,IAHA,IAAI5uB,EAAI,EACJqI,EAAMoC,KAAKumF,eAAep2F,OAEvBoF,EAAIqI,GAAK,CACd,GAAIoC,KAAKumF,eAAehxF,GAAGi7F,UAAYrsE,GAAOnkB,KAAKumF,eAAehxF,GAAGk7F,QAAUtsE,EAC7E,OAAOnkB,KAAKumF,eAAehxF,GAAG65F,gBAGhC75F,GAAK,CACP,CAEA,OAAO,IACT,EAEA+wF,mBAAmBp1F,UAAUw/F,sBAAwB,SAAUvsE,EAAK3G,GAClE,IACIkP,EACAo+D,EAFAsE,EAAkBr6D,UAAU,OAGhCmE,SAASk2D,GACT,IAAI91F,EAAYy7B,UAAU,OAG1B,GAFAmE,SAAS5/B,GAEI,OAATkkB,EAAe,EACjBkP,EAAQ0iE,EAAgB1iE,OAClBztB,MAAQe,KAAKipC,WAAWm7B,SAASxiE,EAAI,KAC3C8qB,EAAM6E,OAASvxB,KAAKipC,WAAWm7B,SAASj0D,EAAI,KAC5C,IAAIkiD,EAAS,UACb3lC,EAAM4M,sBAAwB+4B,EAC9B3lC,EAAMq+D,mBAAqB14B,EAC3B3lC,EAAM2M,gBAAkBg5B,EAExB,IAAI1M,EAAS,6CADbmlC,EAAiBxxF,EAAUozB,OAEZvf,UAAYw4C,EAC3BmlC,EAAewB,gBAAkB3mC,CACnC,CAEAypC,EAAgBhqD,YAAY9rC,GAE5B,IAAIq3F,EAAsB,CACxBr3F,UAAWA,EACX81F,gBAAiBA,EACjBoB,SAAUrsE,EACVssE,OAAQtsE,EACR3G,KAAMA,GAGR,OADAxd,KAAKumF,eAAe/wF,KAAKm7F,GAClBA,CACT,EAEArK,mBAAmBp1F,UAAU0/F,kBAAoB,WAC/C,IAAIr7F,EAEAs7F,EADAjzF,EAAMoC,KAAKq9B,OAAOltC,OAElB2gG,EAAmB,GAEvB,IAAKv7F,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpByK,KAAKq9B,OAAO9nC,GAAG46F,KAA6B,IAAtBnwF,KAAKq9B,OAAO9nC,GAAGyoC,IACd,OAArB8yD,IACFA,EAAmB,KACnBD,EAA0B7wF,KAAK0wF,sBAAsBn7F,EAAG,OAG1Ds7F,EAAwBJ,OAASv+F,KAAK+O,IAAI4vF,EAAwBJ,OAAQl7F,KAEjD,OAArBu7F,IACFA,EAAmB,KACnBD,EAA0B7wF,KAAK0wF,sBAAsBn7F,EAAG,OAG1Ds7F,EAAwBJ,OAASv+F,KAAK+O,IAAI4vF,EAAwBJ,OAAQl7F,IAM9E,IAAKA,GAFLqI,EAAMoC,KAAKumF,eAAep2F,QAEX,EAAGoF,GAAK,EAAGA,GAAK,EAC7ByK,KAAK+wF,YAAY3rD,YAAYplC,KAAKumF,eAAehxF,GAAG65F,gBAExD,EAEA9I,mBAAmBp1F,UAAUk/F,iBAAmB,SAAU10E,EAAMyI,GAI9D,IAHA,IAAI5uB,EAAI,EACJqI,EAAMoC,KAAKumF,eAAep2F,OAEvBoF,EAAIqI,GAAK,CACd,GAAIumB,GAAOnkB,KAAKumF,eAAehxF,GAAGk7F,OAAQ,CAIxC,IAHA,IACIvQ,EADAnlF,EAAIiF,KAAKumF,eAAehxF,GAAGi7F,SAGxBz1F,EAAIopB,GACLnkB,KAAKw0D,SAASz5D,IAAMiF,KAAKw0D,SAASz5D,GAAGonE,iBACvC+d,EAAclgF,KAAKw0D,SAASz5D,GAAGonE,kBAGjCpnE,GAAK,EAGHmlF,EACFlgF,KAAKumF,eAAehxF,GAAG+D,UAAU6mF,aAAazkE,EAAMwkE,GAEpDlgF,KAAKumF,eAAehxF,GAAG+D,UAAU8rC,YAAY1pB,GAG/C,KACF,CAEAnmB,GAAK,CACP,CACF,EAEA+wF,mBAAmBp1F,UAAUw3C,gBAAkB,SAAUiC,GACvD,IAAIomD,EAAch8D,UAAU,OACxB/C,EAAUhyB,KAAKkxB,cAAcc,QAC7BtF,EAAQqkE,EAAYrkE,MACxBA,EAAMztB,MAAQ0rC,EAAS/oC,EAAI,KAC3B8qB,EAAM6E,OAASoZ,EAASx6B,EAAI,KAC5BnQ,KAAK+wF,YAAcA,EACnB73D,SAAS63D,GACTrkE,EAAM+M,eAAiB,OACvB/M,EAAMiN,kBAAoB,OAC1BjN,EAAMgN,qBAAuB,OAEzB15B,KAAKi+D,aAAa8f,WACpBgT,EAAYziD,aAAa,QAAStuC,KAAKi+D,aAAa8f,WAGtD/rD,EAAQoT,YAAY2rD,GACpBrkE,EAAMskE,SAAW,SACjB,IAAIjQ,EAAM/kD,SAAS,OACnB+kD,EAAIzyC,aAAa,QAAS,KAC1ByyC,EAAIzyC,aAAa,SAAU,KAC3BpV,SAAS6nD,GACT/gF,KAAK+wF,YAAY3rD,YAAY27C,GAC7B,IAAI73C,EAAOlN,SAAS,QACpB+kD,EAAI37C,YAAY8D,GAChBlpC,KAAKkgB,KAAOyqB,EAEZ3qC,KAAKkkE,gBAAgBv5B,EAAUo2C,GAC/B/gF,KAAKipC,WAAWC,KAAOA,EACvBlpC,KAAKq9B,OAASsN,EAAStN,OACvBr9B,KAAK4hE,aAAe5hE,KAAK+wF,YACzB/wF,KAAK4wF,oBACL5wF,KAAKwrC,qBACP,EAEA86C,mBAAmBp1F,UAAUy+B,QAAU,WAOrC,IAAIp6B,EANAyK,KAAKkxB,cAAcc,UACrBhyB,KAAKkxB,cAAcc,QAAQyc,UAAY,IAGzCzuC,KAAKkxB,cAAc53B,UAAY,KAC/B0G,KAAKipC,WAAWC,KAAO,KAEvB,IAAItrC,EAAMoC,KAAKq9B,OAASr9B,KAAKq9B,OAAOltC,OAAS,EAE7C,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACpByK,KAAKw0D,SAASj/D,IAAMyK,KAAKw0D,SAASj/D,GAAGo6B,SACvC3vB,KAAKw0D,SAASj/D,GAAGo6B,UAIrB3vB,KAAKw0D,SAASrkE,OAAS,EACvB6P,KAAKm+E,WAAY,EACjBn+E,KAAKkxB,cAAgB,IACvB,EAEAo1D,mBAAmBp1F,UAAUs6C,oBAAsB,WACjD,IAIIgY,EACAzC,EACAgD,EACA/lB,EAPAktD,EAAelrF,KAAKkxB,cAAcc,QAAQ6mC,YAC1CsyB,EAAgBnrF,KAAKkxB,cAAcc,QAAQs5D,aAC3CF,EAAaF,EAAeC,EACbnrF,KAAKipC,WAAWm7B,SAASxiE,EAAI5B,KAAKipC,WAAWm7B,SAASj0D,EAMtDi7E,GACjB5nC,EAAK0nC,EAAelrF,KAAKipC,WAAWm7B,SAASxiE,EAC7Cm/C,EAAKmqC,EAAelrF,KAAKipC,WAAWm7B,SAASxiE,EAC7CmiD,EAAK,EACL/lB,GAAMmtD,EAAgBnrF,KAAKipC,WAAWm7B,SAASj0D,GAAK+6E,EAAelrF,KAAKipC,WAAWm7B,SAASxiE,IAAM,IAElG4hD,EAAK2nC,EAAgBnrF,KAAKipC,WAAWm7B,SAASj0D,EAC9C4wC,EAAKoqC,EAAgBnrF,KAAKipC,WAAWm7B,SAASj0D,EAC9C4zC,GAAMmnC,EAAelrF,KAAKipC,WAAWm7B,SAASxiE,GAAKupF,EAAgBnrF,KAAKipC,WAAWm7B,SAASj0D,IAAM,EAClG6tB,EAAK,GAGP,IAAItR,EAAQ1sB,KAAK+wF,YAAYrkE,MAC7BA,EAAM4/D,gBAAkB,YAAc9oC,EAAK,YAAczC,EAAK,gBAAkBgD,EAAK,IAAM/lB,EAAK,QAChGtR,EAAMvf,UAAYuf,EAAM4/D,eAC1B,EAEAhG,mBAAmBp1F,UAAUu6C,YAAcyxC,YAAYhsF,UAAUu6C,YAEjE66C,mBAAmBp1F,UAAU47C,KAAO,WAClC9sC,KAAK+wF,YAAYrkE,MAAM0M,QAAU,MACnC,EAEAktD,mBAAmBp1F,UAAU67C,KAAO,WAClC/sC,KAAK+wF,YAAYrkE,MAAM0M,QAAU,OACnC,EAEAktD,mBAAmBp1F,UAAUi6C,UAAY,WAGvC,GAFAnrC,KAAKsjE,gBAEDtjE,KAAKwmF,OACPxmF,KAAKwmF,OAAO0I,YACP,CACL,IAEI35F,EAFA07F,EAASjxF,KAAKipC,WAAWm7B,SAASxiE,EAClCsvF,EAAUlxF,KAAKipC,WAAWm7B,SAASj0D,EAEnCvS,EAAMoC,KAAKumF,eAAep2F,OAE9B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAAG,CAC3B,IAAIm3B,EAAQ1sB,KAAKumF,eAAehxF,GAAG65F,gBAAgB1iE,MACnDA,EAAM4iE,kBAAoBp9F,KAAKojB,KAAKpjB,KAAKmB,IAAI49F,EAAQ,GAAK/+F,KAAKmB,IAAI69F,EAAS,IAAM,KAClFxkE,EAAM2iE,YAAc3iE,EAAM4iE,iBAC5B,CACF,CACF,EAEAhJ,mBAAmBp1F,UAAU25C,wBAA0B,SAAUxL,GAC/D,IAAI9pC,EACAqI,EAAMyhC,EAAOlvC,OACbghG,EAAoBp8D,UAAU,OAElC,IAAKx/B,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,GAAI8pC,EAAO9pC,GAAG2xC,GAAI,CAChB,IAAI5I,EAAOt+B,KAAK+iE,WAAW1jC,EAAO9pC,GAAI47F,EAAmBnxF,KAAKipC,WAAW3K,KAAM,MAC/EA,EAAK6L,kBACLnqC,KAAKipC,WAAWV,iBAAiB1B,oBAAoBvI,EACvD,CAEJ,EAcAtJ,gBAAgB,CAACsxD,mBAAoBvJ,aAAc2I,cAAee,cAClEA,aAAav1F,UAAUkgG,6BAA+B3K,aAAav1F,UAAUm4E,wBAE7Eod,aAAav1F,UAAUm4E,wBAA0B,WAC/CrpE,KAAKoxF,+BAGDpxF,KAAKkgB,KAAKyd,SACZ39B,KAAKm9E,WAAW7uC,aAAa,QAAStuC,KAAKkgB,KAAKte,GAChD5B,KAAKm9E,WAAW7uC,aAAa,SAAUtuC,KAAKkgB,KAAK/P,GACjDnQ,KAAKupE,mBAAqBvpE,KAAK2hE,aAE/B3hE,KAAKupE,mBAAqBvpE,KAAK4hE,YAEnC,EAEA6kB,aAAav1F,UAAUk/F,iBAAmB,SAAU10E,EAAMyI,GAIxD,IAHA,IACI+7D,EADAnlF,EAAI,EAGDA,EAAIopB,GACLnkB,KAAKw0D,SAASz5D,IAAMiF,KAAKw0D,SAASz5D,GAAGonE,iBACvC+d,EAAclgF,KAAKw0D,SAASz5D,GAAGonE,kBAGjCpnE,GAAK,EAGHmlF,EACFlgF,KAAK4hE,aAAaue,aAAazkE,EAAMwkE,GAErClgF,KAAK4hE,aAAax8B,YAAY1pB,EAElC,EAEA+qE,aAAav1F,UAAU6xE,WAAa,SAAU7iD,GAC5C,OAAKlgB,KAAKi9E,WAIH,IAAIwJ,aAAavmE,EAAMlgB,KAAKipC,WAAYjpC,MAHtC,IAAIg9E,eAAe98D,EAAMlgB,KAAKipC,WAAYjpC,KAIrD,EAgCAg1B,gBAAgB,CAACsxD,oBAAqBI,gBAEtCA,eAAex1F,UAAU6xE,WAAa,SAAU7iD,GAC9C,OAAKlgB,KAAKi9E,WAIH,IAAIwJ,aAAavmE,EAAMlgB,KAAKipC,WAAYjpC,MAHtC,IAAIg9E,eAAe98D,EAAMlgB,KAAKipC,WAAYjpC,KAIrD,EAEA,IAAI4gE,wBACK,SAAUtiC,GACf,SAAS+yD,EAAmB9/F,GAI1B,IAHA,IAAIgE,EAAI,EACJqI,EAAM0gC,EAAKjB,OAAOltC,OAEfoF,EAAIqI,GAAK,CACd,GAAI0gC,EAAKjB,OAAO9nC,GAAGyxC,KAAOz1C,GAAQ+sC,EAAKjB,OAAO9nC,GAAG6iD,MAAQ7mD,EACvD,OAAO+sC,EAAKk2B,SAASj/D,GAAGsrE,eAG1BtrE,GAAK,CACP,CAEA,OAAO,IACT,CAaA,OAXAvE,OAAOgnB,eAAeq5E,EAAoB,QAAS,CACjDz4F,MAAO0lC,EAAKpe,KAAK8mB,KAEnBqqD,EAAmBxuB,MAAQwuB,EAC3BA,EAAmBC,YAAc,EACjCD,EAAmB9/D,OAAS+M,EAAKpe,KAAK/P,GAAKmuB,EAAK2K,WAAWm7B,SAASj0D,EACpEkhF,EAAmBpyF,MAAQq/B,EAAKpe,KAAKte,GAAK08B,EAAK2K,WAAWm7B,SAASxiE,EACnEyvF,EAAmBC,YAAc,EACjCD,EAAmBE,cAAgB,EAAIjzD,EAAK2K,WAAWrB,UACvDypD,EAAmBG,iBAAmB,EACtCH,EAAmBI,UAAYnzD,EAAKjB,OAAOltC,OACpCkhG,CACT,EAGF,SAASK,UAAU9zE,GAAuV,OAA1O8zE,UAArD,oBAAXjvF,QAAoD,kBAApBA,OAAOi1B,SAAqC,SAAiB9Z,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXnb,QAAyBmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAY8zE,UAAU9zE,EAAM,CA2BjY,SAAS+zE,WAAWhgD,EAAMU,GAIxB,IAaIu/C,EAbAC,EAAS7xF,KACTf,EAAQ,IAMZ6yF,EAAU,SAEVC,EAAa1/C,EAAKh/C,IAAI4L,EANb,GAOL+yF,EAAe3/C,EAAKh/C,IAAI,EALnB,IAML29F,EAA0B,EAAfgB,EACX5hF,EAAOnR,EAAQ,EA6FnB,SAASgzF,EAAK15E,GACZ,IAAI5T,EACAutF,EAAS35E,EAAIpoB,OACbgiG,EAAKnyF,KACLzK,EAAI,EACJwF,EAAIo3F,EAAG58F,EAAI48F,EAAGp3F,EAAI,EAClBqS,EAAI+kF,EAAGC,EAAI,GAOf,IALKF,IACH35E,EAAM,CAAC25E,MAIF38F,EAAI0J,GACTmO,EAAE7X,GAAKA,IAGT,IAAKA,EAAI,EAAGA,EAAI0J,EAAO1J,IACrB6X,EAAE7X,GAAK6X,EAAErS,EAAIqV,EAAOrV,EAAIwd,EAAIhjB,EAAI28F,IAAWvtF,EAAIyI,EAAE7X,KACjD6X,EAAErS,GAAK4J,EAITwtF,EAAG5/E,EAAI,SAAUld,GAQf,IANA,IAAIsP,EACA/D,EAAI,EACJrL,EAAI48F,EAAG58F,EACPwF,EAAIo3F,EAAGp3F,EACPqS,EAAI+kF,EAAGC,EAEJ/8F,KACLsP,EAAIyI,EAAE7X,EAAI6a,EAAO7a,EAAI,GACrBqL,EAAIA,EAAI3B,EAAQmO,EAAEgD,GAAQhD,EAAE7X,GAAK6X,EAAErS,EAAIqV,EAAOrV,EAAI4J,KAAOyI,EAAErS,GAAK4J,IAKlE,OAFAwtF,EAAG58F,EAAIA,EACP48F,EAAGp3F,EAAIA,EACA6F,CAGT,CACF,CAMA,SAAStG,EAAKmwB,EAAG9lB,GAIf,OAHAA,EAAEpP,EAAIk1B,EAAEl1B,EACRoP,EAAE5J,EAAI0vB,EAAE1vB,EACR4J,EAAEytF,EAAI3nE,EAAE2nE,EAAEr4F,QACH4K,CACT,CAMA,SAAS0tF,EAAQz0E,EAAKgxC,GACpB,IAEIr5B,EAFAxc,EAAS,GACTu5E,EAAMZ,UAAU9zE,GAGpB,GAAIgxC,GAAgB,UAAP0jC,EACX,IAAK/8D,KAAQ3X,EACX,IACE7E,EAAOvjB,KAAK68F,EAAQz0E,EAAI2X,GAAOq5B,EAAQ,GACzC,CAAE,MAAOz4D,GAAI,CAIjB,OAAO4iB,EAAO5oB,OAAS4oB,EAAgB,UAAPu5E,EAAkB10E,EAAMA,EAAM,IAChE,CAOA,SAAS20E,EAAOC,EAAMj6E,GAKpB,IAJA,IACIk6E,EADAC,EAAaF,EAAO,GAEpBz3F,EAAI,EAEDA,EAAI23F,EAAWviG,QACpBooB,EAAInI,EAAOrV,GAAKqV,GAAQqiF,GAAyB,GAAhBl6E,EAAInI,EAAOrV,IAAW23F,EAAWv3F,WAAWJ,KAG/E,OAAO43F,EAASp6E,EAClB,CA2BA,SAASo6E,EAAS9uF,GAChB,OAAOzJ,OAAOkpB,aAAapH,MAAM,EAAGrY,EACtC,CAlIAwuC,EAAK,OAASy/C,GA3Ed,SAAoBU,EAAMxnE,EAASU,GACjC,IAAInT,EAAM,GAKNq6E,EAAYL,EAAOF,GAJvBrnE,GAAsB,IAAZA,EAAmB,CAC3B6nE,SAAS,GACP7nE,GAAW,CAAC,GAEuB6nE,QAAU,CAACL,EAAMG,EAAShhD,IAAkB,OAAT6gD,EAiL5E,WACE,IACE,GAAIZ,EACF,OAAOe,EAASf,EAAWkB,YAAY7zF,IAGzC,IAAI+D,EAAM,IAAIpT,WAAWqP,GAEzB,OADC4yF,EAAOkB,QAAUlB,EAAOmB,UAAUC,gBAAgBjwF,GAC5C2vF,EAAS3vF,EAClB,CAAE,MAAO7M,GACP,IAAI+8F,EAAUrB,EAAOx9D,UACjB8+D,EAAUD,GAAWA,EAAQC,QACjC,MAAO,EAAE,IAAI74B,KAAQu3B,EAAQsB,EAAStB,EAAOuB,OAAQT,EAAShhD,GAChE,CACF,CA/L4F0hD,GAAab,EAAM,GAAIj6E,GAE7G+6E,EAAO,IAAIrB,EAAK15E,GAGhBg7E,EAAO,WAOT,IANA,IAAIplF,EAAImlF,EAAK/gF,EA5BR,GA8BLkG,EAAIs5E,EAEJ/2F,EAAI,EAEGmT,EAAI6jF,GAET7jF,GAAKA,EAAInT,GAAKiE,EAEdwZ,GAAKxZ,EAELjE,EAAIs4F,EAAK/gF,EAAE,GAGb,KAAOpE,GAAK6iF,GAEV7iF,GAAK,EAELsK,GAAK,EAELzd,KAAO,EAGT,OAAQmT,EAAInT,GAAKyd,CACnB,EAcA,OAZA86E,EAAKC,MAAQ,WACX,OAAmB,EAAZF,EAAK/gF,EAAE,EAChB,EAEAghF,EAAKE,MAAQ,WACX,OAAOH,EAAK/gF,EAAE,GAAK,UACrB,EAEAghF,EAAa,OAAIA,EAEjBhB,EAAOI,EAASW,EAAKlB,GAAIzgD,IAEjB3mB,EAAQ0oE,MAAQhoE,GAAY,SAAU6nE,EAAMf,EAAMmB,EAAcC,GAetE,OAdIA,IAEEA,EAAMxB,GACR93F,EAAKs5F,EAAON,GAIdC,EAAKK,MAAQ,WACX,OAAOt5F,EAAKg5F,EAAM,CAAC,EACrB,GAKEK,GACFthD,EAAKy/C,GAAWyB,EACTf,GAGGe,CACd,GAAGA,EAAMX,EAAW,WAAY5nE,EAAUA,EAAQ6mE,OAAS7xF,MAAQqyC,EAAMrnB,EAAQ4oE,MACnF,EA6IArB,EAAOlgD,EAAK1Z,SAAUgZ,EAKxB,CAIA,SAASkiD,aAAar7D,GACpBm5D,WAAW,GAAIn5D,EACjB,CAEA,IAAIs7D,UAAY,CACdC,MAAO,SAGT,SAASC,UAAUp2E,GAAuV,OAA1Oo2E,UAArD,oBAAXvxF,QAAoD,kBAApBA,OAAOi1B,SAAqC,SAAiB9Z,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXnb,QAAyBmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAYo2E,UAAUp2E,EAAM,CAEjY,IAAIq2E,kBAAoB,WAGtB,IAAIhwD,GAAK,CAAC,EACN/xC,KAAOsmC,OACPl4B,OAAS,KACTuyB,SAAW,KACXuO,eAAiB,KACjB8yD,MAAQ,KACRzhE,OAAS,KACT0hE,cAAgB,CAAC,EAGrB,SAASzoD,aACPyoD,cAAgB,CAAC,CACnB,CAEA,SAASC,sBAAsB52F,GAC7B,OAAOA,EAAInN,cAAgB0F,OAASyH,EAAInN,cAAgBinC,YAC1D,CAEA,SAAS+8D,YAAYC,EAAM3+F,GACzB,MAAgB,WAAT2+F,GAAqB3+F,aAAanF,QAAmB,YAAT8jG,GAA+B,WAATA,CAC3E,CAEA,SAASC,QAAQ1wF,GACf,IAAI2wF,EAAOR,UAAUnwF,GAErB,GAAa,WAAT2wF,GAAqB3wF,aAAarT,QAAmB,YAATgkG,EAC9C,OAAQ3wF,EAGV,GAAIuwF,sBAAsBvwF,GAAI,CAC5B,IAAItO,EACAk/F,EAAO5wF,EAAE1T,OACTukG,EAAS,GAEb,IAAKn/F,EAAI,EAAGA,EAAIk/F,EAAMl/F,GAAK,EACzBm/F,EAAOn/F,IAAMsO,EAAEtO,GAGjB,OAAOm/F,CACT,CAEA,OAAI7wF,EAAEwzC,SACGxzC,EAAElO,GAGHkO,CACV,CAtCAgwF,aAAar7D,QAwCb,IAAIm8D,UAAY7lD,cAAcwJ,gBAAgB,KAAO,EAAG,KAAO,KAAO,UAAUpgC,IAC5E08E,WAAa9lD,cAAcwJ,gBAAgB,KAAO,KAAO,KAAO,EAAG,WAAWpgC,IAC9E28E,aAAe/lD,cAAcwJ,gBAAgB,IAAM,EAAG,KAAO,EAAG,aAAapgC,IAEjF,SAASze,IAAIoK,EAAGlU,GACd,IAAI6kG,EAAOR,UAAUnwF,GAEjBixF,EAAOd,UAAUrkG,GAErB,GAAI0kG,YAAYG,EAAM3wF,IAAMwwF,YAAYS,EAAMnlG,IAAe,WAAT6kG,GAA8B,WAATM,EACvE,OAAOjxF,EAAIlU,EAGb,GAAIykG,sBAAsBvwF,IAAMwwF,YAAYS,EAAMnlG,GAGhD,OAFAkU,EAAIA,EAAE9J,MAAM,IACV,IAAMpK,EACDkU,EAGT,GAAIwwF,YAAYG,EAAM3wF,IAAMuwF,sBAAsBzkG,GAGhD,OAFAA,EAAIA,EAAEoK,MAAM,IACV,GAAK8J,EAAIlU,EAAE,GACNA,EAGT,GAAIykG,sBAAsBvwF,IAAMuwF,sBAAsBzkG,GAAI,CAMxD,IALA,IAAI4F,EAAI,EACJk/F,EAAO5wF,EAAE1T,OACT4kG,EAAOplG,EAAEQ,OACTukG,EAAS,GAENn/F,EAAIk/F,GAAQl/F,EAAIw/F,IACA,kBAATlxF,EAAEtO,IAAmBsO,EAAEtO,aAAc/E,UAA4B,kBAATb,EAAE4F,IAAmB5F,EAAE4F,aAAc/E,QACvGkkG,EAAOn/F,GAAKsO,EAAEtO,GAAK5F,EAAE4F,GAErBm/F,EAAOn/F,QAAcxD,IAATpC,EAAE4F,GAAmBsO,EAAEtO,GAAKsO,EAAEtO,IAAM5F,EAAE4F,GAGpDA,GAAK,EAGP,OAAOm/F,CACT,CAEA,OAAO,CACT,CAEA,IAAI7tF,IAAMpN,IAEV,SAASqN,IAAIjD,EAAGlU,GACd,IAAI6kG,EAAOR,UAAUnwF,GAEjBixF,EAAOd,UAAUrkG,GAErB,GAAI0kG,YAAYG,EAAM3wF,IAAMwwF,YAAYS,EAAMnlG,GAS5C,MARa,WAAT6kG,IACF3wF,EAAIqe,SAASre,EAAG,KAGL,WAATixF,IACFnlG,EAAIuyB,SAASvyB,EAAG,KAGXkU,EAAIlU,EAGb,GAAIykG,sBAAsBvwF,IAAMwwF,YAAYS,EAAMnlG,GAGhD,OAFAkU,EAAIA,EAAE9J,MAAM,IACV,IAAMpK,EACDkU,EAGT,GAAIwwF,YAAYG,EAAM3wF,IAAMuwF,sBAAsBzkG,GAGhD,OAFAA,EAAIA,EAAEoK,MAAM,IACV,GAAK8J,EAAIlU,EAAE,GACNA,EAGT,GAAIykG,sBAAsBvwF,IAAMuwF,sBAAsBzkG,GAAI,CAMxD,IALA,IAAI4F,EAAI,EACJk/F,EAAO5wF,EAAE1T,OACT4kG,EAAOplG,EAAEQ,OACTukG,EAAS,GAENn/F,EAAIk/F,GAAQl/F,EAAIw/F,IACA,kBAATlxF,EAAEtO,IAAmBsO,EAAEtO,aAAc/E,UAA4B,kBAATb,EAAE4F,IAAmB5F,EAAE4F,aAAc/E,QACvGkkG,EAAOn/F,GAAKsO,EAAEtO,GAAK5F,EAAE4F,GAErBm/F,EAAOn/F,QAAcxD,IAATpC,EAAE4F,GAAmBsO,EAAEtO,GAAKsO,EAAEtO,IAAM5F,EAAE4F,GAGpDA,GAAK,EAGP,OAAOm/F,CACT,CAEA,OAAO,CACT,CAEA,SAAS5zF,IAAI+C,EAAGlU,GACd,IAII6N,EAMAjI,EACAqI,EAXA42F,EAAOR,UAAUnwF,GAEjBixF,EAAOd,UAAUrkG,GAIrB,GAAI0kG,YAAYG,EAAM3wF,IAAMwwF,YAAYS,EAAMnlG,GAC5C,OAAOkU,EAAIlU,EAMb,GAAIykG,sBAAsBvwF,IAAMwwF,YAAYS,EAAMnlG,GAAI,CAIpD,IAHAiO,EAAMiG,EAAE1T,OACRqN,EAAM25B,iBAAiB,UAAWv5B,GAE7BrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBiI,EAAIjI,GAAKsO,EAAEtO,GAAK5F,EAGlB,OAAO6N,CACT,CAEA,GAAI62F,YAAYG,EAAM3wF,IAAMuwF,sBAAsBzkG,GAAI,CAIpD,IAHAiO,EAAMjO,EAAEQ,OACRqN,EAAM25B,iBAAiB,UAAWv5B,GAE7BrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBiI,EAAIjI,GAAKsO,EAAIlU,EAAE4F,GAGjB,OAAOiI,CACT,CAEA,OAAO,CACT,CAEA,SAAS+T,IAAI1N,EAAGlU,GACd,IAII6N,EAMAjI,EACAqI,EAXA42F,EAAOR,UAAUnwF,GAEjBixF,EAAOd,UAAUrkG,GAIrB,GAAI0kG,YAAYG,EAAM3wF,IAAMwwF,YAAYS,EAAMnlG,GAC5C,OAAOkU,EAAIlU,EAMb,GAAIykG,sBAAsBvwF,IAAMwwF,YAAYS,EAAMnlG,GAAI,CAIpD,IAHAiO,EAAMiG,EAAE1T,OACRqN,EAAM25B,iBAAiB,UAAWv5B,GAE7BrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBiI,EAAIjI,GAAKsO,EAAEtO,GAAK5F,EAGlB,OAAO6N,CACT,CAEA,GAAI62F,YAAYG,EAAM3wF,IAAMuwF,sBAAsBzkG,GAAI,CAIpD,IAHAiO,EAAMjO,EAAEQ,OACRqN,EAAM25B,iBAAiB,UAAWv5B,GAE7BrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBiI,EAAIjI,GAAKsO,EAAIlU,EAAE4F,GAGjB,OAAOiI,CACT,CAEA,OAAO,CACT,CAEA,SAAS0E,IAAI2B,EAAGlU,GASd,MARiB,kBAANkU,IACTA,EAAIqe,SAASre,EAAG,KAGD,kBAANlU,IACTA,EAAIuyB,SAASvyB,EAAG,KAGXkU,EAAIlU,CACb,CAEA,IAAIqlG,QAAUv7F,IACVw7F,QAAUnuF,IACVouF,QAAUp0F,IACVq0F,QAAU5jF,IACV6jF,QAAUlzF,IAEd,SAASmzF,MAAM32F,EAAKqC,EAAKE,GACvB,GAAIF,EAAME,EAAK,CACb,IAAIq0F,EAAKr0F,EACTA,EAAMF,EACNA,EAAMu0F,CACR,CAEA,OAAOpjG,KAAK6O,IAAI7O,KAAK+O,IAAIvC,EAAKqC,GAAME,EACtC,CAEA,SAASs0F,iBAAiBn2F,GACxB,OAAOA,EAAM05B,SACf,CAEA,IAAI08D,mBAAqBD,iBAEzB,SAASE,iBAAiBr2F,GACxB,OAAOA,EAAM05B,SACf,CAEA,IAAI48D,mBAAqBH,iBACrBI,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAExC,SAASxlG,OAAOylG,EAAMC,GACpB,GAAoB,kBAATD,GAAqBA,aAAgBplG,OAE9C,OADAqlG,EAAOA,GAAQ,EACR3jG,KAAK+S,IAAI2wF,EAAOC,GAOzB,IAAItgG,EAJCsgG,IACHA,EAAOF,mBAIT,IAAI/3F,EAAM1L,KAAK6O,IAAI60F,EAAKzlG,OAAQ0lG,EAAK1lG,QACjC4hD,EAAc,EAElB,IAAKx8C,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBw8C,GAAe7/C,KAAKmB,IAAIwiG,EAAKtgG,GAAKqgG,EAAKrgG,GAAI,GAG7C,OAAOrD,KAAKojB,KAAKy8B,EACnB,CAEA,SAAS+jD,UAAUC,GACjB,OAAOxkF,IAAIwkF,EAAK5lG,OAAO4lG,GACzB,CAEA,SAASC,SAAS52F,GAChB,IAKI+Q,EACA/C,EANAxM,EAAIxB,EAAI,GACRmT,EAAInT,EAAI,GACRzP,EAAIyP,EAAI,GACR6B,EAAM/O,KAAK+O,IAAIL,EAAG2R,EAAG5iB,GACrBoR,EAAM7O,KAAK6O,IAAIH,EAAG2R,EAAG5iB,GAGrB+c,GAAKzL,EAAMF,GAAO,EAEtB,GAAIE,IAAQF,EACVoP,EAAI,EAEJ/C,EAAI,MACC,CACL,IAAIqL,EAAIxX,EAAMF,EAGd,OAFAqM,EAAIV,EAAI,GAAM+L,GAAK,EAAIxX,EAAMF,GAAO0X,GAAKxX,EAAMF,GAEvCE,GACN,KAAKL,EACHuP,GAAKoC,EAAI5iB,GAAK8oB,GAAKlG,EAAI5iB,EAAI,EAAI,GAC/B,MAEF,KAAK4iB,EACHpC,GAAKxgB,EAAIiR,GAAK6X,EAAI,EAClB,MAEF,KAAK9oB,EACHwgB,GAAKvP,EAAI2R,GAAKkG,EAAI,EAOtBtI,GAAK,CACP,CAEA,MAAO,CAACA,EAAG/C,EAAGV,EAAGtN,EAAI,GACvB,CAEA,SAAS62F,QAAQvoF,EAAGiC,EAAGhL,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAU+I,EAAc,GAATiC,EAAIjC,GAAS/I,EACpCA,EAAI,GAAcgL,EAClBhL,EAAI,EAAI,EAAU+I,GAAKiC,EAAIjC,IAAM,EAAI,EAAI/I,GAAK,EAC3C+I,CACT,CAEA,SAASwoF,SAAS92F,GAChB,IAGIwB,EACA2R,EACA5iB,EALAwgB,EAAI/Q,EAAI,GACRgO,EAAIhO,EAAI,GACRsN,EAAItN,EAAI,GAKZ,GAAU,IAANgO,EACFxM,EAAI8L,EAEJ/c,EAAI+c,EAEJ6F,EAAI7F,MACC,CACL,IAAIiD,EAAIjD,EAAI,GAAMA,GAAK,EAAIU,GAAKV,EAAIU,EAAIV,EAAIU,EACxCM,EAAI,EAAIhB,EAAIiD,EAChB/O,EAAIq1F,QAAQvoF,EAAGiC,EAAGQ,EAAI,EAAI,GAC1BoC,EAAI0jF,QAAQvoF,EAAGiC,EAAGQ,GAClBxgB,EAAIsmG,QAAQvoF,EAAGiC,EAAGQ,EAAI,EAAI,EAC5B,CAEA,MAAO,CAACvP,EAAG2R,EAAG5iB,EAAGyP,EAAI,GACvB,CAEA,SAAS+2F,OAAOxxF,EAAGyxF,EAAMC,EAAMC,EAAQC,GAQrC,QAPexkG,IAAXukG,QAAmCvkG,IAAXwkG,IAC1BD,EAASF,EACTG,EAASF,EACTD,EAAO,EACPC,EAAO,GAGLA,EAAOD,EAAM,CACf,IAAII,EAAQH,EACZA,EAAOD,EACPA,EAAOI,CACT,CAEA,GAAI7xF,GAAKyxF,EACP,OAAOE,EAGT,GAAI3xF,GAAK0xF,EACP,OAAOE,EAGT,IAMIhhG,EANA29C,EAAOmjD,IAASD,EAAO,GAAKzxF,EAAIyxF,IAASC,EAAOD,GAEpD,IAAKE,EAAOnmG,OACV,OAAOmmG,GAAUC,EAASD,GAAUpjD,EAItC,IAAIt1C,EAAM04F,EAAOnmG,OACbqN,EAAM25B,iBAAiB,UAAWv5B,GAEtC,IAAKrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBiI,EAAIjI,GAAK+gG,EAAO/gG,IAAMghG,EAAOhhG,GAAK+gG,EAAO/gG,IAAM29C,EAGjD,OAAO11C,CACT,CAEA,SAASm7B,OAAO53B,EAAKE,GAWnB,QAVYlP,IAARkP,SACUlP,IAARgP,GACFA,EAAM,EACNE,EAAM,IAENA,EAAMF,EACNA,OAAMhP,IAINkP,EAAI9Q,OAAQ,CACd,IAAIoF,EACAqI,EAAMqD,EAAI9Q,OAET4Q,IACHA,EAAMo2B,iBAAiB,UAAWv5B,IAGpC,IAAIJ,EAAM25B,iBAAiB,UAAWv5B,GAClC64F,EAAMj+D,OAAOG,SAEjB,IAAKpjC,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBiI,EAAIjI,GAAKwL,EAAIxL,GAAKkhG,GAAOx1F,EAAI1L,GAAKwL,EAAIxL,IAGxC,OAAOiI,CACT,CAOA,YALYzL,IAARgP,IACFA,EAAM,GAIDA,EADIy3B,OAAOG,UACG13B,EAAMF,EAC7B,CAEA,SAAS21F,WAAWhnD,EAAQinD,EAAYC,EAAav2D,GACnD,IAAI9qC,EACAqI,EAAM8xC,EAAOv/C,OACbwsC,EAAO8hB,UAAU7M,aACrBjV,EAAK8gB,cAAcpd,EAAQziC,GAC3B,IACIi5F,EACAC,EAFAC,EAAiB,CAAC,EAAG,GAIzB,IAAKxhG,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBshG,EAAgBF,GAAcA,EAAWphG,GAAKohG,EAAWphG,GAAKwhG,EAC9DD,EAAiBF,GAAeA,EAAYrhG,GAAKqhG,EAAYrhG,GAAKwhG,EAClEp6D,EAAKkhB,YAAYnO,EAAOn6C,GAAG,GAAIm6C,EAAOn6C,GAAG,GAAIuhG,EAAe,GAAKpnD,EAAOn6C,GAAG,GAAIuhG,EAAe,GAAKpnD,EAAOn6C,GAAG,GAAIshG,EAAc,GAAKnnD,EAAOn6C,GAAG,GAAIshG,EAAc,GAAKnnD,EAAOn6C,GAAG,GAAIA,GAAG,GAGxL,OAAOonC,CACT,CAEA,SAASq6D,mBAAmBt7E,KAAMwE,KAAM3vB,UAEtC,SAAS0mG,KAAKC,GACZ,OAAOA,CACT,CAEA,IAAKx7E,KAAKutB,WAAWg1B,aAAaigB,eAChC,OAAO+Y,KAGT,IAAI73F,IAAM8gB,KAAKllB,EACXm8F,cAAgB,qBAAqBn/D,KAAK54B,KAE1Cg4F,cAA0C,IAA3Bh4F,IAAIZ,QAAQ,UAE3B64F,SAAW37E,KAAKwE,KAAK8d,GACrB7wB,UACAmqF,cACAh2B,QACAmH,OACA8uB,aAAehnG,SACnBgnG,aAAaC,YAAcD,aAAazqC,eACxC97D,OAAOgnB,eAAeu/E,aAAc,QAAS,CAC3Cr/E,IAAK,WACH,OAAOq/E,aAAa5hG,CACtB,IAEF+lB,KAAK4iB,KAAKizD,cAAgB,EAAI71E,KAAK4iB,KAAK2K,WAAWrB,UACnDlsB,KAAK4iB,KAAKkzD,iBAAmB,EAC7B,IAAIiG,QAAU/7E,KAAKwE,KAAKuf,GAAK/jB,KAAK4iB,KAAK2K,WAAWrB,UAC9C8vD,SAAWh8E,KAAKwE,KAAKwf,GAAKhkB,KAAK4iB,KAAK2K,WAAWrB,UAC/C3oC,MAAQyc,KAAKwE,KAAKgxD,GAAKx1D,KAAKwE,KAAKgxD,GAAK,EACtC3/C,OAAS7V,KAAKwE,KAAKg5B,GAAKx9B,KAAKwE,KAAKg5B,GAAK,EACvC3nD,KAAOmqB,KAAKwE,KAAK8mB,GACjB2wD,OACAC,QACAC,QACAC,SACAC,OACAC,QACAC,UACAC,SACAC,OACAC,kBACA7zF,SACA8zF,SACAC,YACA30C,MACA40C,UACAC,SACApoF,KACAonF,YACAiB,eACAC,aAEAC,oBAAsBC,KAAK,oCAAsCx5F,IAAM,0BAA0B,GAEjGy5F,QAAUtoG,SAAS4rD,GAAKj8B,KAAKpc,EAAE3T,OAAS,EACxC2oG,QAAU94F,KAAKkgB,OAAyB,IAAjBlgB,KAAKkgB,KAAK6pD,GAEjCgvB,OAAS,SAAgBC,EAAMC,GACjC,IAAIC,EACAn+F,EACAo+F,EAAYn5F,KAAKs3C,GAAGnnD,OAAS6P,KAAKs3C,GAAGnnD,OAAS,EAC9CipG,EAAYjiE,iBAAiB,UAAWgiE,GAExCnpB,EAAa99E,KAAKC,MADf,EACqBm0C,MAI5B,IAHA4yD,EAAU,EACVn+F,EAAI,EAEGm+F,EAAUlpB,GAAY,CAE3B,IAAKj1E,EAAI,EAAGA,EAAIo+F,EAAWp+F,GAAK,EAC9Bq+F,EAAUr+F,KAAOk+F,EAAY,EAANA,EAAUzgE,OAAOG,SAG1CugE,GAAW,CACb,CAGA,IAAIG,EAfG,EAeO/yD,KACV4M,EAAOmmD,EAAUnnG,KAAKC,MAAMknG,GAC5B77F,EAAM25B,iBAAiB,UAAWgiE,GAEtC,GAAIA,EAAY,EAAG,CACjB,IAAKp+F,EAAI,EAAGA,EAAIo+F,EAAWp+F,GAAK,EAC9ByC,EAAIzC,GAAKiF,KAAKs3C,GAAGv8C,GAAKq+F,EAAUr+F,KAAOk+F,EAAY,EAANA,EAAUzgE,OAAOG,UAAYua,EAI5E,OAAO11C,CACT,CAEA,OAAOwC,KAAKs3C,GAAK8hD,EAAU,KAAOH,EAAY,EAANA,EAAUzgE,OAAOG,UAAYua,CACvE,EAAE37C,KAAKyI,MAgBP,SAASs5F,eAAe97E,EAAMgpB,GAC5B,OAAOmxD,OAAOn6E,EAAMgpB,GAAU,EAChC,CAEA,SAAS+yD,gBAAgB/7E,EAAMgpB,GAC7B,OAAOqxD,QAAQr6E,EAAMgpB,GAAU,EACjC,CApBI+wD,aAAaI,SACfA,OAASJ,aAAaI,OAAOpgG,KAAKggG,cAClCK,QAAUD,QAGRJ,aAAaM,UACfA,QAAUN,aAAaM,QAAQtgG,KAAKggG,cACpCO,SAAWD,SAGTN,aAAaQ,SACfA,OAASR,aAAaQ,OAAOxgG,KAAKggG,eAWhCv3F,KAAK8sD,iBACP0qC,YAAcx3F,KAAK8sD,eAAev1D,KAAKyI,OAGrCA,KAAKw5F,oBACPf,eAAiBz4F,KAAKw5F,kBAAkBjiG,KAAKyI,OAG/C,IAAIs+B,KAAO5iB,KAAK4iB,KAAK2K,WAAWV,iBAAiBhxC,KAAKmkB,KAAK4iB,KAAK2K,WAAWV,kBAsLvEjC,KACAmzD,SACA7gG,MACAkhE,KACA4/B,UACAC,UACAC,cA1LJ,SAASC,OAAOC,EAAOC,GACrB,IAAIC,EAAO,CAACD,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,IACnEG,EAAQ/nG,KAAKwoD,MAAMs/C,EAAK,GAAI9nG,KAAKojB,KAAK0kF,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKA,EAAK,KAAOlhE,UAEpF,MAAO,EADI5mC,KAAKwoD,MAAMs/C,EAAK,GAAIA,EAAK,IAAMlhE,UAC7BmhE,EAAO,EACtB,CAEA,SAASC,QAAQv1F,EAAGyxF,EAAMC,EAAM8D,EAAMC,GACpC,OAAOC,UAAUzF,WAAYjwF,EAAGyxF,EAAMC,EAAM8D,EAAMC,EACpD,CAEA,SAASE,OAAO31F,EAAGyxF,EAAMC,EAAM8D,EAAMC,GACnC,OAAOC,UAAU1F,UAAWhwF,EAAGyxF,EAAMC,EAAM8D,EAAMC,EACnD,CAEA,SAASG,KAAK51F,EAAGyxF,EAAMC,EAAM8D,EAAMC,GACjC,OAAOC,UAAUxF,aAAclwF,EAAGyxF,EAAMC,EAAM8D,EAAMC,EACtD,CAEA,SAASC,UAAU5+E,EAAI9W,EAAGyxF,EAAMC,EAAM8D,EAAMC,QAC7BroG,IAATooG,GACFA,EAAO/D,EACPgE,EAAO/D,GAEP1xF,GAAKA,EAAIyxF,IAASC,EAAOD,GAGvBzxF,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAGN,IAAIg3C,EAAOlgC,EAAG9W,GAEd,GAAIyvF,sBAAsB+F,GAAO,CAC/B,IAAIK,EACAC,EAASN,EAAKhqG,OACdqN,EAAM25B,iBAAiB,UAAWsjE,GAEtC,IAAKD,EAAO,EAAGA,EAAOC,EAAQD,GAAQ,EACpCh9F,EAAIg9F,IAASJ,EAAKI,GAAQL,EAAKK,IAAS7+C,EAAOw+C,EAAKK,GAGtD,OAAOh9F,CACT,CAEA,OAAQ48F,EAAOD,GAAQx+C,EAAOw+C,CAChC,CAEA,SAASO,WAAWp0D,GAClB,IAAIk0D,EAEAh6F,EACAy3C,EAFAwiD,EAASv6E,KAAKpc,EAAE3T,OAIpB,GAAK+vB,KAAKpc,EAAE3T,QAA+B,kBAAd+vB,KAAKpc,EAAE,GAOlC,GAHAtD,GAAS,GACT8lC,GAAQ5qB,KAAK4iB,KAAK2K,WAAWrB,WAElB1nB,KAAKpc,EAAE,GAAGa,EACnBnE,EAAQ,EACRy3C,EAAU/3B,KAAKpc,EAAE,GAAGa,MACf,CACL,IAAK61F,EAAO,EAAGA,EAAOC,EAAS,EAAGD,GAAQ,EAAG,CAC3C,GAAIl0D,IAASpmB,KAAKpc,EAAE02F,GAAM71F,EAAG,CAC3BnE,EAAQg6F,EAAO,EACfviD,EAAU/3B,KAAKpc,EAAE02F,GAAM71F,EACvB,KACF,CAAO,GAAI2hC,EAAOpmB,KAAKpc,EAAE02F,GAAM71F,GAAK2hC,EAAOpmB,KAAKpc,EAAE02F,EAAO,GAAG71F,EAAG,CACzD2hC,EAAOpmB,KAAKpc,EAAE02F,GAAM71F,EAAIub,KAAKpc,EAAE02F,EAAO,GAAG71F,EAAI2hC,GAC/C9lC,EAAQg6F,EAAO,EACfviD,EAAU/3B,KAAKpc,EAAE02F,EAAO,GAAG71F,IAE3BnE,EAAQg6F,EAAO,EACfviD,EAAU/3B,KAAKpc,EAAE02F,GAAM71F,GAGzB,KACF,CACF,EAEe,IAAXnE,IACFA,EAAQg6F,EAAO,EACfviD,EAAU/3B,KAAKpc,EAAE02F,GAAM71F,EAE3B,MAhCAnE,EAAQ,EACRy3C,EAAU,EAkCZ,IAAI0iD,EAAQ,CAAC,EAGb,OAFAA,EAAMn6F,MAAQA,EACdm6F,EAAMr0D,KAAO2R,EAAUv8B,KAAK4iB,KAAK2K,WAAWrB,UACrC+yD,CACT,CAEA,SAASpiF,IAAI6/B,GACX,IAAIuiD,EACAH,EACAC,EAEJ,IAAKv6E,KAAKpc,EAAE3T,QAA+B,kBAAd+vB,KAAKpc,EAAE,GAClC,MAAM,IAAInS,MAAM,yCAA2CymD,GAG7DA,GAAO,EACPuiD,EAAQ,CACNr0D,KAAMpmB,KAAKpc,EAAEs0C,GAAKzzC,EAAI+W,KAAK4iB,KAAK2K,WAAWrB,UAC3ChvC,MAAO,IAET,IAAI4E,EAAMxM,OAAOE,UAAU2G,eAAeC,KAAKooB,KAAKpc,EAAEs0C,GAAM,KAAOl4B,KAAKpc,EAAEs0C,GAAKhrC,EAAI8S,KAAKpc,EAAEs0C,EAAM,GAAGjiD,EAGnG,IAFAskG,EAASj9F,EAAIrN,OAERqqG,EAAO,EAAGA,EAAOC,EAAQD,GAAQ,EACpCG,EAAMH,GAAQh9F,EAAIg9F,GAClBG,EAAM/hG,MAAM4hG,GAAQh9F,EAAIg9F,GAG1B,OAAOG,CACT,CAEA,SAASC,aAAahwD,EAAIiwD,GAKxB,OAJKA,IACHA,EAAMn/E,KAAK4iB,KAAK2K,WAAWrB,WAGtBgD,EAAKiwD,CACd,CAEA,SAASC,aAAan2F,EAAGk2F,GASvB,OARKl2F,GAAW,IAANA,IACRA,EAAI2hC,MAGDu0D,IACHA,EAAMn/E,KAAK4iB,KAAK2K,WAAWrB,WAGtBjjC,EAAIk2F,CACb,CAEA,SAASlJ,WAAWa,GAClBh6D,OAAOuiE,WAAWC,SAAWxI,EAC/B,CAEA,SAASp0B,mBACP,OAAO1iD,KAAK0iD,kBACd,CAEA,SAAS68B,UAAUzuD,EAAM/tC,GACvB,MAAqB,kBAAV7F,WACG7G,IAAR0M,EACK7F,MAAMqiG,UAAUzuD,GAGlB5zC,MAAMqiG,UAAUzuD,EAAM/tC,GAGxB,EACT,CAEA,SAAS0jB,OAAOqqB,EAAM/tC,GACpB,MAAqB,kBAAV7F,WACG7G,IAAR0M,EACK7F,MAAMupB,OAAOqqB,GAGf5zC,MAAMupB,OAAOqqB,EAAM/tC,GAGrB,EACT,CAEA,SAASy8F,cAAcC,GACrB70D,KAA2B,IAApB60D,EAAwB,EAAIjpG,KAAKC,MAAMm0C,KAAO60D,GAAmBA,EACxEviG,MAAQ4+F,YAAYlxD,KACtB,CASA,IAAI9lC,MAAQkb,KAAKwE,KAAKk4B,IAClBgjD,aAAe1/E,KAAKioD,YAAajoD,KAAKioD,UAAUxzE,QAChD8oE,OACA+hC,SAAW9oG,KAAKC,MAAsB,IAAhBD,KAAKymC,UAC3BsQ,WAAavtB,KAAKutB,WAEtB,SAASoyD,kBAAkBnE,GAIzB,OAFAt+F,MAAQs+F,EAEJl3F,KAAKs7F,oBAAsB5/E,KAAKutB,WAAW6S,SAA6B,iBAAlB97C,KAAKq3C,SACtDz+C,OAGa,iBAAlBoH,KAAKq3C,WACPqiD,UAAY15F,KAAK05F,UACjBC,UAAY35F,KAAK25F,UACjBC,cAAgB55F,KAAK45F,eAGlBrB,YACHz+B,KAAOp+C,KAAKmlD,eAAe/G,KAC3By+B,UAAY78E,KAAKmlD,eACjB23B,SAAW98E,KAAK4iB,KAAK8I,cACrB4wD,QAAUO,UAAUP,QAAQzgG,KAAKghG,WACjCN,UAAYM,UAAUN,UAAU1gG,KAAKghG,WACrCL,SAAWK,UAAUL,SAAS3gG,KAAKghG,WACnCJ,OAASI,UAAUJ,OAAO5gG,KAAKghG,WAC/BnoF,KAAOmoF,UAAUnoF,KAAOmoF,UAAUnoF,KAAK7Y,KAAKghG,WAAa,KACzDH,kBAAoBF,UAGjB/qF,YACHA,UAAYuO,KAAKmlD,eAAe,wBAChCy2B,cAAgBnqF,UAEZA,YACFmrF,YAAcnrF,UAAUmrF,cAOX,IAAbjB,UAAmB/1B,UACrBA,QAAUi3B,UAAU,4BAGjB9vB,SACHA,OAAS8vB,UAAU,KAGrB6C,aAAe1/E,KAAKioD,YAAajoD,KAAKioD,UAAUxzE,WAE9B8oE,SAChBA,OAASv9C,KAAKioD,UAAU,GAAG9C,gBAG7Bv6B,KAAOtmC,KAAKs+B,KAAK+c,cAAgBr7C,KAAKs+B,KAAK2K,WAAWrB,UAElDwvD,cACFzF,WAAWqJ,SAAW10D,MAGpB6wD,gBACFsC,SAAWhB,eAAenyD,OAG5BqyD,sBACA34F,KAAKs7F,kBAAoB5/E,KAAKutB,WAAW6S,QAGzC48C,aAAeA,aAAarhD,WAAay8C,UAAUC,MAAQ2E,aAAa/iG,EAAI+iG,aAE9E,CAIA,OADA2C,kBAAkBE,yBAA2B,CAACjE,cAAegB,YAAahyD,KAAMmzD,SAAUhC,QAASC,SAAUz4F,MAAOsyB,OAAQhgC,KAAMqmG,QAASE,SAAUC,OAAQI,OAAQC,kBAAmBJ,QAASC,UAAW7nF,KAAM7L,SAAU8zF,SAAU10C,MAAO60C,SAAUK,QAASC,OAAQC,OAAQO,eAAgBC,gBAAiBj7D,KAAMu7D,OAAQK,QAASI,OAAQC,KAAMG,WAAYniF,IAAKuhD,KAAM4/B,UAAWC,UAAWC,cAAegB,aAAcE,aAAc18B,iBAAkB68B,UAAW94E,OAAQ+4E,cAAe16F,MAAOyoC,YACleoyD,iBACT,CAKA,OAHAp3D,GAAG+yD,mBAAqBA,mBACxB/yD,GAAGs3D,yBAA2B,CAACj7F,OAAQuyB,SAAUuO,eAAgB8yD,MAAOzhE,OAAQ8hE,QAAS1tF,IAAKmuF,QAASC,QAASC,QAASC,QAASC,QAASC,MAAOG,mBAAoBC,iBAAkBC,mBAAoBI,UAAWE,SAAUE,SAAUC,OAAQx9D,OAAQ+9D,WAAYvC,eACvQlwD,GAAGyH,WAAaA,WACTzH,EACT,CAh2BwB,GAk2BpBu3D,YAAc,WAChB,IAAIv3D,EAAK,CACTA,gBAGA,SAAyBrC,GACvB,IAAI65D,EAAa,EACbC,EAAY,GA+BhB95D,EAAUlU,SAAS0Z,cAAgBw5B,wBAAwBh/B,EAAUlU,UACrEkU,EAAUlU,SAASub,WAAWV,iBAAiB1B,oBAAoBjF,EAAUlU,UAC7EkU,EAAUlU,SAASub,WAAW0yD,eA/B9B,WACEF,GAAc,CAChB,EA8BA75D,EAAUlU,SAASub,WAAW2yD,cA5B9B,WAGqB,KAFnBH,GAAc,IAahB,WACE,IAAIlmG,EACAqI,EAAM89F,EAAUvrG,OAEpB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBmmG,EAAUnmG,GAAGs8C,UAGf6pD,EAAUvrG,OAAS,CACrB,CAnBI0rG,EAEJ,EAuBAj6D,EAAUlU,SAASub,WAAW6yD,2BArB9B,SAAoCC,IACK,IAAnCL,EAAUl9F,QAAQu9F,IACpBL,EAAUlmG,KAAKumG,EAEnB,CAkBF,GAEA,OA1CA93D,EAAGyH,WAAauoD,kBAAkBvoD,WA0C3BzH,CACT,CA9CkB,GAgDd+3D,qBAAuB,WACzB,SAASC,EAAc7rF,EAAM8P,GAC3BlgB,KAAKk8F,MAAQ9rF,EACbpQ,KAAKm8F,MAAQj8E,CACf,CAgDA,OA9CAlvB,OAAOgnB,eAAeikF,EAAc/qG,UAAW,WAAY,CACzDgnB,IAAK,WAKH,OAJIlY,KAAKk8F,MAAM3mE,KAAKzxB,GAClB9D,KAAKk8F,MAAM3mE,KAAKknB,WAGXz8C,KAAKk8F,MAAM3mE,IACpB,IAEFvkC,OAAOgnB,eAAeikF,EAAc/qG,UAAW,cAAe,CAC5DgnB,IAAK,WAKH,OAJIlY,KAAKk8F,MAAMx8D,GAAG57B,GAChB9D,KAAKk8F,MAAMx8D,GAAG+c,WAGS,IAAlBz8C,KAAKk8F,MAAMx8D,GAAG/pC,CACvB,IAGgB,SAAqBmrE,GACrC,IAEIvrE,EAFA6mG,EAAmB5kE,iBAAiBspC,EAAY4D,SAASv0E,QAGzDyN,EAAMkjE,EAAY4D,SAASv0E,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB6mG,EAAiB7mG,GAAK,IAAI0mG,EAAcn7B,EAAY4D,SAASnvE,GAAIurE,EAAYjjC,gBAAgBtoC,IAiB/F,OAdmB,SAAsBhE,GAGvC,IAFAgE,EAAI,EAEGA,EAAIqI,GAAK,CACd,GAAIkjE,EAAYjjC,gBAAgBtoC,GAAGyxC,KAAOz1C,EACxC,OAAO6qG,EAAiB7mG,GAG1BA,GAAK,CACP,CAEA,OAAO,IACT,CAGF,CAGF,CArD2B,GAuDvB8mG,4BAA8B,WAChC,IAAIC,EAA6B,CAC/BhlD,GAAI,EACJ3hD,EAAG,EACHgmD,KAAM,GAEJ4gD,EAA+B,CACjCjlD,GAAI,CAAC,EAAG,EAAG,GACX3hD,EAAG,CAAC,EAAG,EAAG,GACVgmD,KAAM,GAGR,SAAS6gD,EAAiBC,EAAiBlsG,EAAUitB,GACnDxsB,OAAOgnB,eAAeykF,EAAiB,WAAY,CACjDvkF,IAAK,WACH,OAAO3nB,EAASipG,kBAAkBjpG,EAAS+tC,KAAK6I,aAClD,IAEFs1D,EAAgB5D,QAAUtoG,EAASsnD,UAAYtnD,EAASsnD,UAAU1nD,OAAS,EAE3EssG,EAAgBlkF,IAAM,SAAU4L,GAC9B,IAAKs4E,EAAgB5D,QACnB,OAAO,EAGT,IAAIjgG,EAAQ,GAGVA,EADE,MAAOrI,EAASsnD,UAAU1zB,EAAM,GAC1B5zB,EAASsnD,UAAU1zB,EAAM,GAAG/W,EAC3B,MAAO7c,EAASsnD,UAAU1zB,EAAM,GACjC5zB,EAASsnD,UAAU1zB,EAAM,GAAGhuB,EAE5B5F,EAASsnD,UAAU1zB,EAAM,GAAG/W,EAGtC,IAAIsvF,EAAqB,mBAATl/E,EAA4B,IAAIhtB,OAAOoI,GAAS5H,OAAOG,OAAO,CAAC,EAAGyH,GAIlF,OAFA8jG,EAAUp2D,KAAO/1C,EAASsnD,UAAU1zB,EAAM,GAAGxf,EAAIpU,EAASmrB,KAAK4iB,KAAK2K,WAAWrB,UAC/E80D,EAAU9jG,MAAiB,mBAAT4kB,EAA4B5kB,EAAM,GAAKA,EAClD8jG,CACT,EAEAD,EAAgBjF,YAAcjnG,EAASu8D,eACvC2vC,EAAgBE,YAAcpsG,EAASqsG,eACvCH,EAAgBhE,eAAiBloG,EAASipG,kBAC1CiD,EAAgBI,cAAgBtsG,EAASssG,aAC3C,CAyDA,SAASC,IACP,OAAOR,CACT,CAEA,OAAO,SAAU/rG,GACf,OAAKA,EAIqB,mBAAtBA,EAAS8mD,SAhEf,SAAyC9mD,GAClCA,GAAc,OAAQA,IACzBA,EAAW+rG,GAGb,IAAI3gD,EAAO,EAAIprD,EAASorD,KACpBv8C,EAAM7O,EAAS+mD,GAAKqE,EACpB8gD,EAAkB,IAAIjsG,OAAO4O,GAIjC,OAFAq9F,EAAgB7jG,MAAQwG,EACxBo9F,EAAiBC,EAAiBlsG,EAAU,kBACrC,WAcL,OAbIA,EAASuT,GACXvT,EAASksD,WAGXr9C,EAAM7O,EAASoF,EAAIgmD,EAEf8gD,EAAgB7jG,QAAUwG,KAC5Bq9F,EAAkB,IAAIjsG,OAAO4O,IAEbxG,MAAQwG,EACxBo9F,EAAiBC,EAAiBlsG,EAAU,mBAGvCksG,CACT,CACF,CAsCWM,CAAgCxsG,GApC3C,SAA2CA,GACpCA,GAAc,OAAQA,IACzBA,EAAWgsG,GAGb,IAAI5gD,EAAO,EAAIprD,EAASorD,KACpB/9C,EAAMrN,EAAS2vB,MAAQ3vB,EAAS2vB,KAAKxT,GAAKnc,EAAS+mD,GAAGnnD,OACtDssG,EAAkBtlE,iBAAiB,UAAWv5B,GAC9Co/F,EAAW7lE,iBAAiB,UAAWv5B,GAG3C,OAFA6+F,EAAgB7jG,MAAQokG,EACxBR,EAAiBC,EAAiBlsG,EAAU,oBACrC,WACDA,EAASuT,GACXvT,EAASksD,WAGX,IAAK,IAAIlnD,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAC5BynG,EAASznG,GAAKhF,EAASoF,EAAEJ,GAAKomD,EAC9B8gD,EAAgBlnG,GAAKynG,EAASznG,GAGhC,OAAOknG,CACT,CACF,CAgBSQ,CAAkC1sG,GAPhCusG,CAQX,CACF,CAtHkC,GAwH9BI,6BACK,SAAU/vF,GACf,SAASgwF,EAAc5rG,GACrB,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,aACL,KAAK,EACH,OAAO4rG,EAAcx5C,MAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,KAAK,GACH,OAAOw5C,EAAc9E,SAEvB,IAAK,gBACH,OAAO8E,EAAcC,UAEvB,IAAK,gBACH,OAAOD,EAAcE,UAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,KAAK,EACH,OAAOF,EAAc54F,SAEvB,IAAK,kBACH,OAAO44F,EAAcG,UAEvB,IAAK,kBACH,OAAOH,EAAcI,UAEvB,IAAK,kBACH,OAAOJ,EAAcK,UAEvB,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,KAAK,EACH,OAAOL,EAAc7E,YAEvB,IAAK,UACL,IAAK,UACL,KAAK,GACH,OAAO6E,EAAcx2B,QAEvB,QACE,OAAO,KAEb,CAkBA,IAAI82B,EAEAC,EAEAC,EAEAC,EA8CJ,OApEA5sG,OAAOgnB,eAAemlF,EAAe,WAAY,CAC/CjlF,IAAKmkF,4BAA4BlvF,EAAUvM,GAAKuM,EAAUm/C,MAE5Dt7D,OAAOgnB,eAAemlF,EAAe,YAAa,CAChDjlF,IAAKmkF,4BAA4BlvF,EAAUm/C,IAAMn/C,EAAUvM,KAE7D5P,OAAOgnB,eAAemlF,EAAe,YAAa,CAChDjlF,IAAKmkF,4BAA4BlvF,EAAUc,MAE7Cjd,OAAOgnB,eAAemlF,EAAe,YAAa,CAChDjlF,IAAKmkF,4BAA4BlvF,EAAUk/C,MAE7Cr7D,OAAOgnB,eAAemlF,EAAe,QAAS,CAC5CjlF,IAAKmkF,4BAA4BlvF,EAAUC,KAWzCD,EAAUO,EACZkwF,EAAoBvB,4BAA4BlvF,EAAUO,IAE1D+vF,EAAMpB,4BAA4BlvF,EAAU++C,IAC5CwxC,EAAMrB,4BAA4BlvF,EAAUg/C,IAExCh/C,EAAUi/C,KACZuxC,EAAMtB,4BAA4BlvF,EAAUi/C,MAIhDp7D,OAAOgnB,eAAemlF,EAAe,WAAY,CAC/CjlF,IAAK,WACH,OAAI/K,EAAUO,EACLkwF,IAGF,CAACH,IAAOC,IAAOC,EAAMA,IAAQ,EACtC,IAEF3sG,OAAOgnB,eAAemlF,EAAe,YAAa,CAChDjlF,IAAKmkF,4BAA4BlvF,EAAU++C,MAE7Cl7D,OAAOgnB,eAAemlF,EAAe,YAAa,CAChDjlF,IAAKmkF,4BAA4BlvF,EAAUg/C,MAE7Cn7D,OAAOgnB,eAAemlF,EAAe,YAAa,CAChDjlF,IAAKmkF,4BAA4BlvF,EAAUi/C,MAE7Cp7D,OAAOgnB,eAAemlF,EAAe,cAAe,CAClDjlF,IAAKmkF,4BAA4BlvF,EAAUtJ,KAE7C7S,OAAOgnB,eAAemlF,EAAe,UAAW,CAC9CjlF,IAAKmkF,4BAA4BlvF,EAAUlG,KAE7CjW,OAAOgnB,eAAemlF,EAAe,OAAQ,CAC3CjlF,IAAKmkF,4BAA4BlvF,EAAU0yB,MAE7C7uC,OAAOgnB,eAAemlF,EAAe,WAAY,CAC/CjlF,IAAKmkF,4BAA4BlvF,EAAU2yB,MAE7C9uC,OAAOgnB,eAAemlF,EAAe,cAAe,CAClDjlF,IAAKmkF,4BAA4BlvF,EAAUvH,MAEtCu3F,CACT,EAGE38B,yBAA2B,WAC7B,SAASq9B,EAAUv3D,GACjB,IAAIw3D,EAAa,IAAIp7C,OAWrB,YATa3wD,IAATu0C,EACetmC,KAAKk5E,MAAMnb,eAAeC,MAAMlR,eAAexmB,GAErDhkC,MAAMw7F,GAEE99F,KAAKk5E,MAAMnb,eAAeC,MAChCxR,cAAcsxC,GAGtBA,CACT,CAEA,SAASC,EAAWvgG,EAAK8oC,GACvB,IAAIw3D,EAAa99F,KAAK69F,UAAUv3D,GAIhC,OAHAw3D,EAAWrxE,MAAM,IAAM,EACvBqxE,EAAWrxE,MAAM,IAAM,EACvBqxE,EAAWrxE,MAAM,IAAM,EAChBzsB,KAAKg+F,WAAWF,EAAYtgG,EACrC,CAEA,SAASw6F,EAAQx6F,EAAK8oC,GACpB,IAAIw3D,EAAa99F,KAAK69F,UAAUv3D,GAChC,OAAOtmC,KAAKg+F,WAAWF,EAAYtgG,EACrC,CAEA,SAASygG,EAAazgG,EAAK8oC,GACzB,IAAIw3D,EAAa99F,KAAK69F,UAAUv3D,GAIhC,OAHAw3D,EAAWrxE,MAAM,IAAM,EACvBqxE,EAAWrxE,MAAM,IAAM,EACvBqxE,EAAWrxE,MAAM,IAAM,EAChBzsB,KAAKk+F,YAAYJ,EAAYtgG,EACtC,CAEA,SAASy6F,EAAUz6F,EAAK8oC,GACtB,IAAIw3D,EAAa99F,KAAK69F,UAAUv3D,GAChC,OAAOtmC,KAAKk+F,YAAYJ,EAAYtgG,EACtC,CAEA,SAASwgG,EAAWr4C,EAAQnoD,GAC1B,GAAIwC,KAAKk5E,MAAMvV,WAAa3jE,KAAKk5E,MAAMvV,UAAUxzE,OAAQ,CACvD,IAAIoF,EACAqI,EAAMoC,KAAKk5E,MAAMvV,UAAUxzE,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKk5E,MAAMvV,UAAUpuE,GAAGwoE,eAAeC,MAAMxR,cAAc7G,EAE/D,CAEA,OAAOA,EAAOc,kBAAkBjpD,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,EAC5D,CAEA,SAAS0gG,EAAYv4C,EAAQnoD,GAC3B,GAAIwC,KAAKk5E,MAAMvV,WAAa3jE,KAAKk5E,MAAMvV,UAAUxzE,OAAQ,CACvD,IAAIoF,EACAqI,EAAMoC,KAAKk5E,MAAMvV,UAAUxzE,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKk5E,MAAMvV,UAAUpuE,GAAGwoE,eAAeC,MAAMxR,cAAc7G,EAE/D,CAEA,OAAOA,EAAOa,aAAahpD,EAC7B,CAEA,SAAS06F,EAAS16F,GAChB,IAAIsgG,EAAa,IAAIp7C,OAKrB,GAJAo7C,EAAW59C,QAEXlgD,KAAKk5E,MAAMnb,eAAeC,MAAMxR,cAAcsxC,GAE1C99F,KAAKk5E,MAAMvV,WAAa3jE,KAAKk5E,MAAMvV,UAAUxzE,OAAQ,CACvD,IAAIoF,EACAqI,EAAMoC,KAAKk5E,MAAMvV,UAAUxzE,OAE/B,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxByK,KAAKk5E,MAAMvV,UAAUpuE,GAAGwoE,eAAeC,MAAMxR,cAAcsxC,GAG7D,OAAOA,EAAWt3C,aAAahpD,EACjC,CAEA,OAAOsgG,EAAWt3C,aAAahpD,EACjC,CAEA,SAAS2gG,IACP,MAAO,CAAC,EAAG,EAAG,EAAG,EACnB,CAEA,OAAO,SAAUziF,GACf,IAAI0iF,EAUJ,SAAS/M,EAAmB9/F,GAC1B,OAAQA,GACN,IAAK,0BACL,IAAK,WACL,KAAK,EACH,OAAO8/F,EAAmBlwB,eAE5B,KAAK,EACL,KAAK,EACL,IAAK,YACL,IAAK,YACL,IAAK,uBACH,OAAOi9B,EAET,KAAK,EACL,IAAK,qBACL,IAAK,UACL,IAAK,UACH,OAAO/M,EAAmB5oB,OAE5B,IAAK,uBACH,OAAO4oB,EAAmB9vB,cAE5B,QACE,OAAO,KAEb,CAEA8vB,EAAmBwM,UAAYA,EAC/BxM,EAAmB6M,YAAcA,EACjC7M,EAAmB2M,WAAaA,EAChC3M,EAAmB2G,QAAUA,EAC7B3G,EAAmB0M,WAAaA,EAChC1M,EAAmB4G,UAAYA,EAC/B5G,EAAmB4M,aAAeA,EAClC5M,EAAmB8G,OAASH,EAC5B3G,EAAmB6G,SAAWA,EAC9B7G,EAAmB8M,YAAcA,EACjC9M,EAAmBjzB,iBAAmB1iD,EAAK0iD,iBAAiB7mE,KAAKmkB,GACjE21E,EAAmBnY,MAAQx9D,EAE3B,IAAI2iF,EAAwBhpE,cAD5B+oE,EAAqBlB,6BAA6BxhF,EAAKqiD,eAAeC,OACR,eAuC9D,OAtCAhtE,OAAOstG,iBAAiBjN,EAAoB,CAC1C+J,UAAW,CACTljF,IAAK,WACH,OAAOwD,EAAKioD,UAAUxzE,MACxB,GAEF8oE,OAAQ,CACN/gD,IAAK,WACH,OAAOwD,EAAKioD,UAAU,GAAG9C,cAC3B,GAEFw3B,SAAUhjE,cAAc+oE,EAAoB,YAC5Cz6C,MAAOtuB,cAAc+oE,EAAoB,SACzC75F,SAAU8wB,cAAc+oE,EAAoB,YAC5Cz3B,QAAStxC,cAAc+oE,EAAoB,WAC3C9F,YAAa+F,EACbE,aAAcF,EACdlxF,UAAW,CACT+K,IAAK,WACH,OAAOkmF,CACT,GAEFtF,OAAQ,CACN5gF,IAAK,WACH,OAAOwD,EAAK2hD,SACd,KAGJg0B,EAAmBmN,UAAY9iF,EAAKwE,KAAKyf,GACzC0xD,EAAmB7wF,MAAQkb,EAAKwE,KAAKk4B,IACrCi5C,EAAmB31F,OAASggB,EAAKwE,KAAKge,MACtCmzD,EAAmB9/D,OAA0B,IAAjB7V,EAAKwE,KAAK8d,GAAWtiB,EAAKwE,KAAK/P,EAAI,IAC/DkhF,EAAmBpyF,MAAyB,IAAjByc,EAAKwE,KAAK8d,GAAWtiB,EAAKwE,KAAKte,EAAI,IAC9DyvF,EAAmBoG,QAAU/7E,EAAKwE,KAAKuf,GAAK/jB,EAAK4iB,KAAK2K,WAAWrB,UACjEypD,EAAmBqG,SAAWh8E,EAAKwE,KAAKwf,GAAKhkB,EAAK4iB,KAAK2K,WAAWrB,UAClEypD,EAAmBoN,MAAQ/iF,EAAKwE,KAAK8mB,GACrCqqD,EAAmBtwB,sBAtFnB,SAAgCD,GAC9BuwB,EAAmBjhF,KAAO,IAAI4rF,qBAAqBl7B,EAAaplD,EAClE,EAqFA21E,EAAmBnwB,yBAnFnB,SAAmChC,GACjCmyB,EAAmB5oB,OAASvJ,CAC9B,EAkFOmyB,CACT,CACF,CAzL+B,GA2L3BqN,qBACK,SAAUC,EAAmBC,GAClC,OAAO,SAAUx/F,GAGf,OAFAA,OAAcrN,IAARqN,EAAoB,EAAIA,IAEnB,EACFu/F,EAGFC,EAAoBx/F,EAAM,EACnC,CACF,EAGEy/F,kBACK,SAAUC,EAAcjC,GAC7B,IAAI8B,EAAoB,CACtBF,MAAOK,GAaT,OAVA,SAAwB1/F,GAGtB,OAFAA,OAAcrN,IAARqN,EAAoB,EAAIA,IAEnB,EACFu/F,EAGF9B,EAAcz9F,EAAM,EAC7B,CAGF,EAGEqhE,2BAA6B,WA4C/B,SAASs+B,EAAqB7+E,EAAMs0C,EAAUqoC,EAAenhF,GAC3D,SAASsjF,EAAeztG,GAKtB,IAJA,IAAI2tE,EAAUh/C,EAAKi/C,GACf5pE,EAAI,EACJqI,EAAMshE,EAAQ/uE,OAEXoF,EAAIqI,GAAK,CACd,GAAIrM,IAAS2tE,EAAQ3pE,GAAGyxC,IAAMz1C,IAAS2tE,EAAQ3pE,GAAG0pG,IAAM1tG,IAAS2tE,EAAQ3pE,GAAG8/D,GAC1E,OAAsB,IAAlB6J,EAAQ3pE,GAAGyoC,GACNohC,EAAe7pE,GAGjB6pE,EAAe7pE,KAGxBA,GAAK,CACP,CAEA,MAAM,IAAI5D,KACZ,CAEA,IAGI4D,EAHA2pG,EAAiBR,qBAAqBM,EAAgBnC,GAEtDz9B,EAAiB,GAEjBxhE,EAAMsiB,EAAKi/C,GAAGhvE,OAElB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACF,IAAlB2qB,EAAKi/C,GAAG5pE,GAAGyoC,GACbohC,EAAe5pE,KAAKupG,EAAqB7+E,EAAKi/C,GAAG5pE,GAAIi/D,EAAS4K,eAAe7pE,GAAIi/D,EAAS4K,eAAe7pE,GAAGsnG,cAAenhF,IAE3H0jD,EAAe5pE,KAAK2pG,EAAqB3qC,EAAS4K,eAAe7pE,GAAI2qB,EAAKi/C,GAAG5pE,GAAGyoC,GAAItiB,EAAMwjF,IA2B9F,MAvBgB,uBAAZh/E,EAAK++E,IACPjuG,OAAOgnB,eAAegnF,EAAgB,QAAS,CAC7C9mF,IAAK,WACH,OAAOknD,EAAe,IACxB,IAIJpuE,OAAOstG,iBAAiBU,EAAgB,CACtCI,cAAe,CACblnF,IAAK,WACH,OAAOgI,EAAKm/E,EACd,GAEFZ,MAAO,CACL7lG,MAAOsnB,EAAK8mB,IAEd61D,cAAe,CACbjkG,MAAOsmG,KAGXF,EAAeM,QAAsB,IAAZp/E,EAAKq/E,GAC9BP,EAAelG,OAASkG,EAAeM,QAChCN,CACT,CAEA,SAASG,EAAqBhmE,EAAS3b,EAAM9B,EAAMmhF,GACjD,IAAI2C,EAAqBnD,4BAA4BljE,EAAQzrB,GAc7D,OAJIyrB,EAAQzrB,EAAE+xF,kBACZtmE,EAAQzrB,EAAE+xF,iBAAiBZ,kBAAkB,GAAIhC,IATnD,WACE,OAAa,KAATr/E,EACK9B,EAAK4iB,KAAK8I,cAAcjO,EAAQzrB,EAAE/X,GAGpC6pG,GACT,CAOF,CAEA,MA1HS,CACPv+B,uBAGF,SAAgCvlD,EAAMmhF,GACpC,GAAInhF,EAAKomD,eAAgB,CACvB,IAEIvsE,EAFA6pE,EAAiB,GACjBsgC,EAAchkF,EAAKwE,KAAKi/C,GAExBvhE,EAAM8d,EAAKomD,eAAe1C,eAAejvE,OAE7C,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB6pE,EAAe5pE,KAAKupG,EAAqBW,EAAYnqG,GAAImmB,EAAKomD,eAAe1C,eAAe7pE,GAAIsnG,EAAenhF,IAGjH,IAAIwjD,EAAUxjD,EAAKwE,KAAKi/C,IAAM,GAE1B6/B,EAAiB,SAAwBztG,GAI3C,IAHAgE,EAAI,EACJqI,EAAMshE,EAAQ/uE,OAEPoF,EAAIqI,GAAK,CACd,GAAIrM,IAAS2tE,EAAQ3pE,GAAGyxC,IAAMz1C,IAAS2tE,EAAQ3pE,GAAG0pG,IAAM1tG,IAAS2tE,EAAQ3pE,GAAG8/D,GAC1E,OAAO+J,EAAe7pE,GAGxBA,GAAK,CACP,CAEA,OAAO,IACT,EAOA,OALAvE,OAAOgnB,eAAegnF,EAAgB,gBAAiB,CACrD9mF,IAAK,WACH,OAAOgnD,EAAQ/uE,MACjB,IAEK6uG,CACT,CAEA,OAAO,IACT,EAkFF,CA5HiC,GA8H7BW,mBACK,SAA8BhhD,EAAOihD,EAAM/C,GAChD,IAAItnE,EAAOqqE,EAAK1mD,GAEhB,SAASylD,EAAkBv/F,GACzB,MAAY,UAARA,GAA2B,UAARA,GAA2B,SAARA,GAA0B,SAARA,GAA0B,sBAARA,GAAuC,IAARA,EACpGu/F,EAAkBhiE,KAGpB,IACT,CAEA,IAAIuiE,EAAiBR,qBAAqBC,EAAmB9B,GAsC7D,OApCAtnE,EAAKkqE,iBAAiBZ,kBAAkB,OAAQK,IAChDluG,OAAOstG,iBAAiBK,EAAmB,CACzChiE,KAAM,CACJzkB,IAAK,WAKH,OAJIqd,EAAKzxB,GACPyxB,EAAKknB,WAGAlnB,CACT,GAEFopB,MAAO,CACLzmC,IAAK,WAKH,OAJIqd,EAAKzxB,GACPyxB,EAAKknB,WAGAlnB,CACT,GAEFkpE,MAAO,CACL7lG,MAAO+lD,EAAM3X,IAEfquB,GAAI,CACFz8D,MAAO+lD,EAAM0W,IAEfwqC,cAAe,CACbjnG,MAAO+lD,EAAM0W,IAEf4pC,GAAI,CACFrmG,MAAO+lD,EAAMsgD,IAEfpC,cAAe,CACbjkG,MAAOikG,KAGJ8B,CACT,EAGEj+B,yBAA2B,WAC7B,SAASo/B,EAAgB1hE,EAAQwhE,EAAM/C,GACrC,IACItnG,EADAiI,EAAM,GAENI,EAAMwgC,EAASA,EAAOjuC,OAAS,EAEnC,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACH,OAAjB6oC,EAAO7oC,GAAGyoC,GACZxgC,EAAIhI,KAAKuqG,EAAsB3hE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IACzB,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAKwqG,EAAqB5hE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IACxB,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAKyqG,EAAuB7hE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IAC1B,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAK0qG,EAAqB9hE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IACxB,OAAjBz+D,EAAO7oC,GAAGyoC,KACO,OAAjBI,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAK2qG,EAAwB/hE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IAC3B,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAK4qG,EAAqBhiE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IACxB,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAKmqG,mBAAmBvhE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IACtB,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAK6qG,EAAqBjiE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IACxB,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAK8qG,EAAwBliE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IAC3B,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAK+qG,EAAyBniE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IAC5B,OAAjBz+D,EAAO7oC,GAAGyoC,GACnBxgC,EAAIhI,KAAKgrG,EAA6BpiE,EAAO7oC,GAAIqqG,EAAKrqG,GAAIsnG,IAE1Dr/F,EAAIhI,MAA6B4oC,EAAO7oC,GAAIqqG,EAAKrqG,GAuJrD,WACE,OAAO,IACT,KArJA,OAAOiI,CACT,CAkCA,SAASuiG,EAAsBphD,EAAOihD,EAAM/C,GAC1C,IAAI8B,EAAoB,SAA4B/lG,GAClD,OAAQA,GACN,IAAK,qBACL,IAAK,WACL,KAAK,EACH,OAAO+lG,EAAkBr9B,QAK3B,QACE,OAAOq9B,EAAkBxxF,UAE/B,EAEAwxF,EAAkB9B,cAAgB6B,qBAAqBC,EAAmB9B,GAC1E,IAAIv7B,EAjDN,SAAkC3iB,EAAOihD,EAAM/C,GAC7C,IAAI4D,EAEA9B,EAAoB,SAA4B/lG,GAIlD,IAHA,IAAIrD,EAAI,EACJqI,EAAM6iG,EAAWtwG,OAEdoF,EAAIqI,GAAK,CACd,GAAI6iG,EAAWlrG,GAAGkpG,QAAU7lG,GAAS6nG,EAAWlrG,GAAG0pG,KAAOrmG,GAAS6nG,EAAWlrG,GAAGsqG,gBAAkBjnG,GAAS6nG,EAAWlrG,GAAG8/D,KAAOz8D,GAAS6nG,EAAWlrG,GAAG6iD,MAAQx/C,EAC9J,OAAO6nG,EAAWlrG,GAGpBA,GAAK,CACP,CAEA,MAAqB,kBAAVqD,EACF6nG,EAAW7nG,EAAQ,GAGrB,IACT,EAEA+lG,EAAkB9B,cAAgB6B,qBAAqBC,EAAmB9B,GAC1E4D,EAAaX,EAAgBnhD,EAAMjgB,GAAIkhE,EAAKlhE,GAAIigE,EAAkB9B,eAClE8B,EAAkBS,cAAgBqB,EAAWtwG,OAC7C,IAAIiuG,EAAqBsC,EAA0B/hD,EAAMjgB,GAAGigB,EAAMjgB,GAAGvuC,OAAS,GAAIyvG,EAAKlhE,GAAGkhE,EAAKlhE,GAAGvuC,OAAS,GAAIwuG,EAAkB9B,eAIjI,OAHA8B,EAAkBxxF,UAAYixF,EAC9BO,EAAkBkB,cAAgBlhD,EAAMgiD,IACxChC,EAAkBF,MAAQ9/C,EAAM3X,GACzB23D,CACT,CAmBgBiC,CAAyBjiD,EAAOihD,EAAMjB,EAAkB9B,eAClEuB,EAAqBsC,EAA0B/hD,EAAMjgB,GAAGigB,EAAMjgB,GAAGvuC,OAAS,GAAIyvG,EAAKlhE,GAAGkhE,EAAKlhE,GAAGvuC,OAAS,GAAIwuG,EAAkB9B,eAajI,OAZA8B,EAAkBr9B,QAAUA,EAC5Bq9B,EAAkBxxF,UAAYixF,EAC9BptG,OAAOgnB,eAAe2mF,EAAmB,QAAS,CAChDzmF,IAAK,WACH,OAAOymC,EAAM3X,EACf,IAGF23D,EAAkBS,cAAgBzgD,EAAM0gD,GACxCV,EAAkBkB,cAAgBlhD,EAAM0W,GACxCspC,EAAkB33D,GAAK2X,EAAM3X,GAC7B23D,EAAkBM,GAAKtgD,EAAMsgD,GACtBN,CACT,CAEA,SAASqB,EAAqBrhD,EAAOihD,EAAM/C,GACzC,SAAS8B,EAAkBv/F,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdu/F,EAAkB3jE,MAGf,YAAR57B,GAA6B,YAARA,EAChBu/F,EAAkBh4B,QAGpB,IACT,CAkBA,OAhBA31E,OAAOstG,iBAAiBK,EAAmB,CACzC3jE,MAAO,CACL9iB,IAAKmkF,4BAA4BuD,EAAKn/F,IAExCkmE,QAAS,CACPzuD,IAAKmkF,4BAA4BuD,EAAK34F,IAExCw3F,MAAO,CACL7lG,MAAO+lD,EAAM3X,IAEfi4D,GAAI,CACFrmG,MAAO+lD,EAAMsgD,MAGjBW,EAAKn/F,EAAEg/F,iBAAiBZ,kBAAkB,QAAShC,IACnD+C,EAAK34F,EAAEw4F,iBAAiBZ,kBAAkB,UAAWhC,IAC9C8B,CACT,CAEA,SAAS6B,EAA6B7hD,EAAOihD,EAAM/C,GACjD,SAAS8B,EAAkBv/F,GACzB,MAAY,gBAARA,GAAiC,gBAARA,EACpBu/F,EAAkBkC,WAGf,cAARzhG,GAA+B,cAARA,EAClBu/F,EAAkBmC,SAGf,YAAR1hG,GAA6B,YAARA,EAChBu/F,EAAkBh4B,QAGpB,IACT,CA2BA,OAzBA31E,OAAOstG,iBAAiBK,EAAmB,CACzCkC,WAAY,CACV3oF,IAAKmkF,4BAA4BuD,EAAKxyF,IAExC0zF,SAAU,CACR5oF,IAAKmkF,4BAA4BuD,EAAKzpG,IAExCwwE,QAAS,CACPzuD,IAAKmkF,4BAA4BuD,EAAK34F,IAExCuW,KAAM,CACJtF,IAAK,WACH,MAAO,GACT,GAEFumF,MAAO,CACL7lG,MAAO+lD,EAAM3X,IAEfi4D,GAAI,CACFrmG,MAAO+lD,EAAMsgD,MAGjBW,EAAKxyF,EAAEqyF,iBAAiBZ,kBAAkB,cAAehC,IACzD+C,EAAKzpG,EAAEspG,iBAAiBZ,kBAAkB,YAAahC,IACvD+C,EAAK34F,EAAEw4F,iBAAiBZ,kBAAkB,UAAWhC,IAC9C8B,CACT,CAUA,SAASsB,EAAuBthD,EAAOihD,EAAM/C,GAC3C,IAUItnG,EAVA2pG,EAAiBR,qBAAqBC,EAAmB9B,GAEzDkE,EAAqBrC,qBAAqBsC,EAAQ9B,GAEtD,SAAS+B,EAAoB1rG,GAC3BvE,OAAOgnB,eAAegpF,EAAQriD,EAAMlmC,EAAEljB,GAAGyxC,GAAI,CAC3C9uB,IAAKmkF,4BAA4BuD,EAAKnnF,EAAEm0D,UAAUr3E,GAAGmY,IAEzD,CAGA,IAAI9P,EAAM+gD,EAAMlmC,EAAIkmC,EAAMlmC,EAAEtoB,OAAS,EACjC6wG,EAAS,CAAC,EAEd,IAAKzrG,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB0rG,EAAoB1rG,GACpBqqG,EAAKnnF,EAAEm0D,UAAUr3E,GAAGmY,EAAE+xF,iBAAiBsB,GAGzC,SAASpC,EAAkBv/F,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdu/F,EAAkB3jE,MAGf,YAAR57B,GAA6B,YAARA,EAChBu/F,EAAkBh4B,QAGf,iBAARvnE,GAAkC,iBAARA,EACrBu/F,EAAkBvQ,YAGpB,IACT,CA2BA,OAzBAp9F,OAAOstG,iBAAiBK,EAAmB,CACzC3jE,MAAO,CACL9iB,IAAKmkF,4BAA4BuD,EAAKn/F,IAExCkmE,QAAS,CACPzuD,IAAKmkF,4BAA4BuD,EAAK34F,IAExCmnF,YAAa,CACXl2E,IAAKmkF,4BAA4BuD,EAAKh+F,IAExCs/F,KAAM,CACJhpF,IAAK,WACH,OAAO8oF,CACT,GAEFvC,MAAO,CACL7lG,MAAO+lD,EAAM3X,IAEfi4D,GAAI,CACFrmG,MAAO+lD,EAAMsgD,MAGjBW,EAAKn/F,EAAEg/F,iBAAiBZ,kBAAkB,QAASK,IACnDU,EAAK34F,EAAEw4F,iBAAiBZ,kBAAkB,UAAWK,IACrDU,EAAKh+F,EAAE69F,iBAAiBZ,kBAAkB,eAAgBK,IACnDP,CACT,CAEA,SAASuB,EAAqBvhD,EAAOihD,EAAM/C,GACzC,SAAS8B,EAAkBv/F,GACzB,OAAIA,IAAQu/C,EAAMxoD,EAAEk/D,IAAc,QAARj2D,GAAyB,QAARA,EAClCu/F,EAAkBlgG,IAGvBW,IAAQu/C,EAAMvxC,EAAEioD,GACXspC,EAAkBhlG,MAGvByF,IAAQu/C,EAAM13C,EAAEouD,GACXspC,EAAkB/tG,OAGpB,IACT,CAEA,IAAIsuG,EAAiBR,qBAAqBC,EAAmB9B,GAuB7D,OArBA8B,EAAkBkB,cAAgBlhD,EAAM0W,GACxCuqC,EAAKxyF,EAAEqyF,iBAAiBZ,kBAAkB,QAASK,IACnDU,EAAKzpG,EAAEspG,iBAAiBZ,kBAAkB,MAAOK,IACjDU,EAAK34F,EAAEw4F,iBAAiBZ,kBAAkB,SAAUK,IACpDP,EAAkBkB,cAAgBlhD,EAAM0W,GACxCspC,EAAkB9B,cAAgBA,EAClC7rG,OAAOstG,iBAAiBK,EAAmB,CACzChlG,MAAO,CACLue,IAAKmkF,4BAA4BuD,EAAKxyF,IAExC3O,IAAK,CACHyZ,IAAKmkF,4BAA4BuD,EAAKzpG,IAExCvF,OAAQ,CACNsnB,IAAKmkF,4BAA4BuD,EAAK34F,IAExCw3F,MAAO,CACL7lG,MAAO+lD,EAAM3X,MAGjB23D,EAAkBM,GAAKtgD,EAAMsgD,GACtBN,CACT,CAEA,SAAS+B,EAA0B/hD,EAAOihD,EAAM/C,GAC9C,SAAS8B,EAAkB/lG,GACzB,OAAI+lD,EAAM96C,EAAEwxD,KAAOz8D,GAAmB,iBAAVA,EACnB+lG,EAAkBrG,YAGvB35C,EAAM13C,EAAEouD,KAAOz8D,GAAmB,YAAVA,EACnB+lG,EAAkBh4B,QAGvBhoB,EAAMjxC,EAAE2nD,KAAOz8D,GAAmB,aAAVA,EACnB+lG,EAAkBp6F,SAGvBo6C,EAAM/9C,EAAEy0D,KAAOz8D,GAAmB,aAAVA,GAAkC,yBAAVA,EAC3C+lG,EAAkBtG,SAGvB15C,EAAMvxC,EAAEioD,KAAOz8D,GAAmB,UAAVA,EACnB+lG,EAAkBh7C,MAGvBhF,EAAM9e,IAAM8e,EAAM9e,GAAGw1B,KAAOz8D,GAAmB,SAAVA,EAChC+lG,EAAkBl7C,KAGvB9E,EAAM7e,IAAM6e,EAAM7e,GAAGu1B,KAAOz8D,GAAmB,cAAVA,EAChC+lG,EAAkBwC,SAGpB,IACT,CAEA,IAAIjC,EAAiBR,qBAAqBC,EAAmB9B,GA2C7D,OAzCA+C,EAAKzyF,UAAU4oD,OAAO9uD,EAAEw4F,iBAAiBZ,kBAAkB,UAAWK,IACtEU,EAAKzyF,UAAU4oD,OAAOroD,EAAE+xF,iBAAiBZ,kBAAkB,WAAYK,IACvEU,EAAKzyF,UAAU4oD,OAAOlyD,EAAE47F,iBAAiBZ,kBAAkB,eAAgBK,IAC3EU,EAAKzyF,UAAU4oD,OAAO3oD,EAAEqyF,iBAAiBZ,kBAAkB,QAASK,IACpEU,EAAKzyF,UAAU4oD,OAAOn1D,EAAE6+F,iBAAiBZ,kBAAkB,WAAYK,IAEnEU,EAAKzyF,UAAU4oD,OAAOl2B,KACxB+/D,EAAKzyF,UAAU4oD,OAAOl2B,GAAG4/D,iBAAiBZ,kBAAkB,OAAQK,IACpEU,EAAKzyF,UAAU4oD,OAAOj2B,GAAG2/D,iBAAiBZ,kBAAkB,aAAcK,KAG5EU,EAAKzyF,UAAUuyB,GAAG+/D,iBAAiBZ,kBAAkB,UAAWK,IAChEluG,OAAOstG,iBAAiBK,EAAmB,CACzCh4B,QAAS,CACPzuD,IAAKmkF,4BAA4BuD,EAAKzyF,UAAU4oD,OAAO9uD,IAEzD1C,SAAU,CACR2T,IAAKmkF,4BAA4BuD,EAAKzyF,UAAU4oD,OAAOroD,IAEzD4qF,YAAa,CACXpgF,IAAKmkF,4BAA4BuD,EAAKzyF,UAAU4oD,OAAOlyD,IAEzD8/C,MAAO,CACLzrC,IAAKmkF,4BAA4BuD,EAAKzyF,UAAU4oD,OAAO3oD,IAEzDirF,SAAU,CACRngF,IAAKmkF,4BAA4BuD,EAAKzyF,UAAU4oD,OAAOn1D,IAEzD6iD,KAAM,CACJvrC,IAAKmkF,4BAA4BuD,EAAKzyF,UAAU4oD,OAAOl2B,KAEzDshE,SAAU,CACRjpF,IAAKmkF,4BAA4BuD,EAAKzyF,UAAU4oD,OAAOj2B,KAEzD2+D,MAAO,CACL7lG,MAAO+lD,EAAM3X,MAGjB23D,EAAkB3gE,GAAK,KACvB2gE,EAAkBM,GAAKtgD,EAAMsgD,GAC7BN,EAAkB9B,cAAgBA,EAC3B8B,CACT,CAEA,SAASwB,EAAwBxhD,EAAOihD,EAAM/C,GAC5C,SAAS8B,EAAkB/lG,GACzB,OAAI+lD,EAAMjxC,EAAE2nD,KAAOz8D,EACV+lG,EAAkBp6F,SAGvBo6C,EAAMvxC,EAAEioD,KAAOz8D,EACV+lG,EAAkB7iG,KAGpB,IACT,CAEA,IAAIojG,EAAiBR,qBAAqBC,EAAmB9B,GAE7D8B,EAAkBkB,cAAgBlhD,EAAM0W,GACxC,IAAI9/B,EAAsB,OAAfqqE,EAAK1mD,GAAGlb,GAAc4hE,EAAK1mD,GAAG3jB,KAAOqqE,EAAK1mD,GAerD,OAdA3jB,EAAKnoB,EAAEqyF,iBAAiBZ,kBAAkB,OAAQK,IAClD3pE,EAAK7nB,EAAE+xF,iBAAiBZ,kBAAkB,WAAYK,IACtDluG,OAAOstG,iBAAiBK,EAAmB,CACzC7iG,KAAM,CACJoc,IAAKmkF,4BAA4B9mE,EAAKnoB,IAExC7I,SAAU,CACR2T,IAAKmkF,4BAA4B9mE,EAAK7nB,IAExC+wF,MAAO,CACL7lG,MAAO+lD,EAAM3X,MAGjB23D,EAAkBM,GAAKtgD,EAAMsgD,GACtBN,CACT,CAEA,SAASyB,EAAqBzhD,EAAOihD,EAAM/C,GACzC,SAAS8B,EAAkB/lG,GACzB,OAAI+lD,EAAMjxC,EAAE2nD,KAAOz8D,EACV+lG,EAAkBp6F,SAGvBo6C,EAAM/9C,EAAEy0D,KAAOz8D,EACV+lG,EAAkBtG,SAGvB15C,EAAM7gB,GAAGu3B,KAAOz8D,EACX+lG,EAAkBjvD,OAGvBiP,EAAM/4C,GAAGyvD,KAAOz8D,GAAmB,kCAAVA,EACpB+lG,EAAkByC,YAGvBziD,EAAM0C,GAAGgU,KAAOz8D,EACX+lG,EAAkB0C,gBAGvB1iD,EAAMqC,IAAOrC,EAAMqC,GAAGqU,KAAOz8D,GAAmB,kCAAVA,EAItC+lD,EAAMsC,IAAMtC,EAAMsC,GAAGoU,KAAOz8D,EACvB+lG,EAAkB2C,eAGpB,KAPE3C,EAAkB4C,WAQ7B,CAEA,IAAIrC,EAAiBR,qBAAqBC,EAAmB9B,GAEzDtnE,EAAsB,OAAfqqE,EAAK1mD,GAAGlb,GAAc4hE,EAAK1mD,GAAG3jB,KAAOqqE,EAAK1mD,GAwCrD,OAvCAylD,EAAkBkB,cAAgBlhD,EAAM0W,GACxC9/B,EAAK3vB,GAAG65F,iBAAiBZ,kBAAkB,eAAgBK,IAC3D3pE,EAAK8rB,GAAGo+C,iBAAiBZ,kBAAkB,kBAAmBK,IAC9D3pE,EAAKuI,GAAG2hE,iBAAiBZ,kBAAkB,SAAUK,IACrD3pE,EAAK7nB,EAAE+xF,iBAAiBZ,kBAAkB,WAAYK,IACtD3pE,EAAK30B,EAAE6+F,iBAAiBZ,kBAAkB,WAAYK,IAElDvgD,EAAMqC,KACRzrB,EAAKyrB,GAAGy+C,iBAAiBZ,kBAAkB,eAAgBK,IAC3D3pE,EAAK0rB,GAAGw+C,iBAAiBZ,kBAAkB,kBAAmBK,KAGhEluG,OAAOstG,iBAAiBK,EAAmB,CACzCp6F,SAAU,CACR2T,IAAKmkF,4BAA4B9mE,EAAK7nB,IAExC2qF,SAAU,CACRngF,IAAKmkF,4BAA4B9mE,EAAK30B,IAExC8uC,OAAQ,CACNx3B,IAAKmkF,4BAA4B9mE,EAAKuI,KAExCsjE,YAAa,CACXlpF,IAAKmkF,4BAA4B9mE,EAAK3vB,KAExCy7F,eAAgB,CACdnpF,IAAKmkF,4BAA4B9mE,EAAK8rB,KAExCkgD,YAAa,CACXrpF,IAAKmkF,4BAA4B9mE,EAAKyrB,KAExCsgD,eAAgB,CACdppF,IAAKmkF,4BAA4B9mE,EAAK0rB,KAExCw9C,MAAO,CACL7lG,MAAO+lD,EAAM3X,MAGjB23D,EAAkBM,GAAKtgD,EAAMsgD,GACtBN,CACT,CAEA,SAAS0B,EAAqB1hD,EAAOihD,EAAM/C,GACzC,SAAS8B,EAAkB/lG,GACzB,OAAI+lD,EAAMjxC,EAAE2nD,KAAOz8D,EACV+lG,EAAkBp6F,SAGvBo6C,EAAM/9C,EAAEy0D,KAAOz8D,EACV+lG,EAAkBp9C,UAGvB5C,EAAMvxC,EAAEioD,KAAOz8D,GAAmB,SAAVA,GAA8B,0BAAVA,EACvC+lG,EAAkB7iG,KAGpB,IACT,CAEA,IAAIojG,EAAiBR,qBAAqBC,EAAmB9B,GAEzDtnE,EAAsB,OAAfqqE,EAAK1mD,GAAGlb,GAAc4hE,EAAK1mD,GAAG3jB,KAAOqqE,EAAK1mD,GAoBrD,OAnBAylD,EAAkBkB,cAAgBlhD,EAAM0W,GACxC9/B,EAAK7nB,EAAE+xF,iBAAiBZ,kBAAkB,WAAYK,IACtD3pE,EAAKnoB,EAAEqyF,iBAAiBZ,kBAAkB,OAAQK,IAClD3pE,EAAK30B,EAAE6+F,iBAAiBZ,kBAAkB,WAAYK,IACtDluG,OAAOstG,iBAAiBK,EAAmB,CACzCp6F,SAAU,CACR2T,IAAKmkF,4BAA4B9mE,EAAK7nB,IAExC6zC,UAAW,CACTrpC,IAAKmkF,4BAA4B9mE,EAAK30B,IAExC9E,KAAM,CACJoc,IAAKmkF,4BAA4B9mE,EAAKnoB,IAExCqxF,MAAO,CACL7lG,MAAO+lD,EAAM3X,MAGjB23D,EAAkBM,GAAKtgD,EAAMsgD,GACtBN,CACT,CAEA,SAAS2B,EAAwB3hD,EAAOihD,EAAM/C,GAC5C,SAAS8B,EAAkB/lG,GACzB,OAAI+lD,EAAM/9C,EAAEy0D,KAAOz8D,GAAmB,oBAAVA,EACnB+lG,EAAkBrsC,OAGpB,IACT,CAEA,IAAI4sC,EAAiBR,qBAAqBC,EAAmB9B,GAEzDtnE,EAAOqqE,EAYX,OAXAjB,EAAkBkB,cAAgBlhD,EAAM0W,GACxC9/B,EAAKygC,GAAGypC,iBAAiBZ,kBAAkB,SAAUK,IACrDluG,OAAOstG,iBAAiBK,EAAmB,CACzCrsC,OAAQ,CACNp6C,IAAKmkF,4BAA4B9mE,EAAKygC,KAExCyoC,MAAO,CACL7lG,MAAO+lD,EAAM3X,MAGjB23D,EAAkBM,GAAKtgD,EAAMsgD,GACtBN,CACT,CAEA,SAAS4B,EAAyB5hD,EAAOihD,EAAM/C,GAC7C,SAAS8B,EAAkB/lG,GACzB,OAAI+lD,EAAMl+C,EAAE40D,KAAOz8D,GAAmB,WAAVA,EACnB+lG,EAAkBxpC,OAGvBxW,EAAM13C,EAAEouD,KAAOz8D,GAAmB,WAAVA,EACnB+lG,EAAkB/tG,OAGpB,IACT,CAEA,IAAIsuG,EAAiBR,qBAAqBC,EAAmB9B,GAEzDtnE,EAAOqqE,EAgBX,OAfAjB,EAAkBkB,cAAgBlhD,EAAM0W,GACxC9/B,EAAK90B,EAAEg/F,iBAAiBZ,kBAAkB,SAAUK,IACpD3pE,EAAKtuB,EAAEw4F,iBAAiBZ,kBAAkB,SAAUK,IACpDluG,OAAOstG,iBAAiBK,EAAmB,CACzCxpC,OAAQ,CACNj9C,IAAKmkF,4BAA4B9mE,EAAK90B,IAExC7P,OAAQ,CACNsnB,IAAKmkF,4BAA4B9mE,EAAKtuB,IAExCw3F,MAAO,CACL7lG,MAAO+lD,EAAM3X,MAGjB23D,EAAkBM,GAAKtgD,EAAMsgD,GACtBN,CACT,CAEA,OAAO,SAAUvgE,EAAQwhE,EAAM/C,GAC7B,IAAI4D,EAEJ,SAASe,EAAmB5oG,GAC1B,GAAqB,kBAAVA,EAGT,OAAc,KAFdA,OAAkB7G,IAAV6G,EAAsB,EAAIA,GAGzBikG,EAGF4D,EAAW7nG,EAAQ,GAM5B,IAHA,IAAIrD,EAAI,EACJqI,EAAM6iG,EAAWtwG,OAEdoF,EAAIqI,GAAK,CACd,GAAI6iG,EAAWlrG,GAAGkpG,QAAU7lG,EAC1B,OAAO6nG,EAAWlrG,GAGpBA,GAAK,CACP,CAEA,OAAO,IACT,CAUA,OAJAisG,EAAmB3E,cAAgB6B,qBAAqB8C,GAJxD,WACE,OAAO3E,CACT,IAGA4D,EAAaX,EAAgB1hE,EAAQwhE,EAAM4B,EAAmB3E,eAC9D2E,EAAmBpC,cAAgBqB,EAAWtwG,OAC9CqxG,EAAmB/C,MAAQ,WACpB+C,CACT,CACF,CAnnB+B,GAqnB3B7gC,wBACK,SAAUjlD,GACf,IAAI+lF,EAEJ,SAASpQ,EAAmB9/F,GAC1B,MACO,uBADCA,EAEG8/F,EAAmBqQ,WAGnB,IAEb,CAyBA,OAvBA1wG,OAAOgnB,eAAeq5E,EAAoB,aAAc,CACtDn5E,IAAK,WACHwD,EAAKu8D,aAAax7B,WAClB,IAAIklD,EAAcjmF,EAAKu8D,aAAaxG,YAAY9sE,EAiBhD,OAfK88F,GAAeE,IAAgBF,EAAY7oG,SAC9C6oG,EAAc,IAAIrnG,OAAOunG,IAGb/oG,MAAQ+oG,GAAe,IAAIvnG,OAAOunG,GAE9C3wG,OAAOgnB,eAAeypF,EAAa,QAAS,CAC1CvpF,IAAK,WACH,MAAO,CACL0pF,UAAWlmF,EAAKu8D,aAAaxG,YAAYN,GAE7C,KAIGswB,CACT,IAEKpQ,CACT,EAGF,SAASwQ,QAAQjkF,GAAmV,OAAtOikF,QAArD,oBAAXp/F,QAAoD,kBAApBA,OAAOi1B,SAAmC,SAAiB9Z,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXnb,QAAyBmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAYikF,QAAQjkF,EAAM,CAEzX,IAAIwkD,iBAAmB,WACrB,IAyCI0/B,EAAuB,SAA8BpmF,GACvD,SAASijF,EAAkB/lG,GACzB,MAAc,YAAVA,EACK+lG,EAAkBoD,mBAGpB,IACT,CAIA,OAFApD,EAAkBF,MAAQ,UAC1BE,EAAkBoD,iBAnDU,SAAiCrmF,GAC7D,IAAIsmF,EAAsB,GACtBC,EAAkBvmF,EAAK2mD,iBAQ3B,SAASqQ,EAAe95E,GACtB,GAAIqpG,EAAgBrpG,GAIlB,OAHAopG,EAAsBppG,EAGW,WAA7BipG,QAFJI,EAAkBA,EAAgBrpG,IAGzB85E,EAGFuvB,EAGT,IAAIC,EAAoBtpG,EAAM4F,QAAQwjG,GAEtC,IAA2B,IAAvBE,EAA0B,CAC5B,IAAI1hG,EAAQ0hB,SAAStpB,EAAMupB,OAAO+/E,EAAoBF,EAAoB7xG,QAAS,IAGnF,MAAiC,WAA7B0xG,QAFJI,EAAkBA,EAAgBzhG,IAGzBkyE,EAGFuvB,CACT,CAEA,MAAO,EACT,CAEA,OAlCA,WAGE,OAFAD,EAAsB,GACtBC,EAAkBvmF,EAAK2mD,iBAChBqQ,CACT,CA+BF,CAYuCyvB,CAAwBzmF,GACtDijF,CACT,EAEA,OAAO,SAAUjjF,GACf,SAAS8lF,EAAmB5oG,GAC1B,MAAc,SAAVA,EACK4oG,EAAmBY,cAGrB,IACT,CAIA,OAFAZ,EAAmB/C,MAAQ,OAC3B+C,EAAmBY,cAAgBN,EAAqBpmF,GACjD8lF,CACT,CACF,CArEuB,GAuEnBf,WAAa,CACf59B,MAAOrC,yBACPtB,QAASuB,2BACTniC,KAAMsiC,wBACNjiB,MAAO+hB,yBACP5G,KAAM6G,wBACN0hC,QAASjgC,kBAGX,SAASkgC,aAAa9kF,GACpB,OAAOijF,WAAWjjF,IAAS,IAC7B,CAEA,IAAI+kF,kBAgFK,CACLC,kBAhFF,SAA2B9mF,EAAMwE,EAAMqV,GACjCrV,EAAKllB,IACPu6B,EAAKzxB,GAAI,EACTyxB,EAAKv6B,GAAI,EACTu6B,EAAKyhE,mBAAqB/C,kBAAkB+C,mBAC5CzhE,EAAKwmB,gBAAgBvmD,KAAK+/B,EAAKyhE,mBAAmBt7E,EAAMwE,EAAMqV,GAAMh+B,KAAKg+B,IAE7E,EA0EEqnE,eA3DF,SAAwB3lD,GACtB,IACIwL,EAAKziD,KAAK8sD,eAAe7V,GACzB4V,EAAK7sD,KAAK8sD,eAAe7V,GAFhB,KAGTnoB,EAAQ,EAEZ,GAAI2zB,EAAGtyD,OAAQ,CACb,IAAIoF,EAEJ,IAAKA,EAAI,EAAGA,EAAIktD,EAAGtyD,OAAQoF,GAAK,EAC9Bu5B,GAAS58B,KAAKmB,IAAIw5D,EAAGt3D,GAAKktD,EAAGltD,GAAI,GAGnCu5B,EAA2B,IAAnB58B,KAAKojB,KAAKwZ,EACpB,MACEA,EAAQ,EAGV,OAAOA,CACT,EAyCE0qE,kBAvCF,SAA2BviD,GACzB,QAAiBllD,IAAbiO,KAAKw8C,IACP,OAAOx8C,KAAKw8C,IAGd,IAIIi9C,EAIElkG,EARF2d,GAAS,KAETuvC,EAAKziD,KAAK8sD,eAAe7V,GACzB4V,EAAK7sD,KAAK8sD,eAAe7V,EAAW/jC,GAGxC,GAAIuvC,EAAGtyD,OAIL,IAHAspG,EAAWtiE,iBAAiB,UAAWsrB,EAAGtyD,QAGrCoF,EAAI,EAAGA,EAAIktD,EAAGtyD,OAAQoF,GAAK,EAI9BkkG,EAASlkG,IAAMs3D,EAAGt3D,GAAKktD,EAAGltD,IAAM2d,OAGlCumF,GAAY5sC,EAAKpK,GAAMvvC,EAGzB,OAAOumF,CACT,EAcE3sC,eA1EF,SAAwB7V,GAUtB,OATAA,GAAYj3C,KAAK0b,KAAKutB,WAAWrB,WACjCqP,GAAYj3C,KAAKo3C,cAEAp3C,KAAKyiG,eAAehqD,YACnCz4C,KAAKyiG,eAAe7qD,UAAY53C,KAAKyiG,eAAehqD,UAAYxB,EAAWj3C,KAAKyiG,eAAe7qD,UAAY,EAC3G53C,KAAKyiG,eAAe7pG,MAAQoH,KAAKg3C,iBAAiBC,EAAUj3C,KAAKyiG,gBACjEziG,KAAKyiG,eAAehqD,UAAYxB,GAG3Bj3C,KAAKyiG,eAAe7pG,KAC7B,EAgEE8pG,qBAbF,WACE,OAAO1iG,KAAKs3C,EACd,EAYEmoD,iBAVF,SAA0B5C,GACxB78F,KAAK68F,cAAgBA,CACvB,GAYF,SAAS8F,uBACP,SAAS9K,EAAQr6E,EAAMgpB,EAAUo8D,GAC/B,IAAK5iG,KAAK8D,IAAM9D,KAAK63C,UACnB,OAAO73C,KAAKs3C,GAGd95B,EAAOA,EAAOA,EAAKkD,cAAgB,GACnC,IAQImiF,EACAC,EAmBAvtG,EACAqI,EACA2F,EA9BA4jC,EAAennC,KAAKs+B,KAAK+c,cACzBxD,EAAY73C,KAAK63C,UACjBkrD,EAAelrD,EAAUA,EAAU1nD,OAAS,GAAGwU,EAEnD,GAAIwiC,GAAgB47D,EAClB,OAAO/iG,KAAKs3C,GA2Bd,GArBKsrD,EAcHE,EAAgBC,GAHdF,EAHGr8D,EAGat0C,KAAK+S,IAAI89F,EAAe/iG,KAAK0b,KAAK4iB,KAAK2K,WAAWrB,UAAYpB,GAF9Dt0C,KAAK+O,IAAI,EAAG8hG,EAAe/iG,KAAK0b,KAAKwE,KAAKuf,QARvD+G,GAAYA,EAAWqR,EAAU1nD,OAAS,KAC7Cq2C,EAAWqR,EAAU1nD,OAAS,GAIhC0yG,EAAgBE,GADhBD,EAAgBjrD,EAAUA,EAAU1nD,OAAS,EAAIq2C,GAAU7hC,IAgBhD,aAAT6Y,GAGF,GAFiBtrB,KAAKC,OAAOg1C,EAAe27D,GAAiBD,GAE5C,IAAM,EACrB,OAAO7iG,KAAK8sD,gBAAgB+1C,GAAiB17D,EAAe27D,GAAiBD,EAAgBC,GAAiB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,OAE3I,IAAa,WAATpqB,EAAmB,CAC5B,IAAIwlF,EAAQhjG,KAAK8sD,eAAeg2C,EAAgB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAC5Eq7D,EAAOjjG,KAAK8sD,eAAei2C,EAAe/iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAC1ElwB,EAAU1X,KAAK8sD,iBAAiB3lB,EAAe27D,GAAiBD,EAAgBC,GAAiB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAEjIs7D,EAAUhxG,KAAKC,OAAOg1C,EAAe27D,GAAiBD,GAE1D,GAAI7iG,KAAKs3C,GAAGnnD,OAAQ,CAIlB,IAFAyN,GADA2F,EAAM,IAAIxN,MAAMitG,EAAM7yG,SACZA,OAELoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBgO,EAAIhO,IAAM0tG,EAAK1tG,GAAKytG,EAAMztG,IAAM2tG,EAAUxrF,EAAQniB,GAGpD,OAAOgO,CACT,CAEA,OAAQ0/F,EAAOD,GAASE,EAAUxrF,CACpC,CAAO,GAAa,aAAT8F,EAAqB,CAC9B,IAAI2lF,EAAYnjG,KAAK8sD,eAAei2C,EAAe/iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAC/Ew7D,EAAgBpjG,KAAK8sD,gBAAgBi2C,EAAe,MAAS/iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAEjG,GAAI5nC,KAAKs3C,GAAGnnD,OAAQ,CAIlB,IAFAyN,GADA2F,EAAM,IAAIxN,MAAMotG,EAAUhzG,SAChBA,OAELoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBgO,EAAIhO,GAAK4tG,EAAU5tG,IAAM4tG,EAAU5tG,GAAK6tG,EAAc7tG,MAAQ4xC,EAAe47D,GAAgB/iG,KAAKs+B,KAAK2K,WAAWrB,WAAa,KAGjI,OAAOrkC,CACT,CAEA,OAAO4/F,GAA4Ch8D,EAAe47D,GAAgB,MAA9DI,EAAYC,EAClC,EAEA,OAAOpjG,KAAK8sD,iBAAiB3lB,EAAe27D,GAAiBD,EAAgBC,GAAiB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,EAChI,CAEA,SAAS+vD,EAAOn6E,EAAMgpB,EAAUo8D,GAC9B,IAAK5iG,KAAK8D,EACR,OAAO9D,KAAKs3C,GAGd95B,EAAOA,EAAOA,EAAKkD,cAAgB,GACnC,IAQImiF,EACAE,EAmBAxtG,EACAqI,EACA2F,EA9BA4jC,EAAennC,KAAKs+B,KAAK+c,cACzBxD,EAAY73C,KAAK63C,UACjBirD,EAAgBjrD,EAAU,GAAGlzC,EAEjC,GAAIwiC,GAAgB27D,EAClB,OAAO9iG,KAAKs3C,GA2Bd,GArBKsrD,EAcHG,EAAeD,GAHbD,EAHGr8D,EAGat0C,KAAK+S,IAAIjF,KAAK0b,KAAK4iB,KAAK2K,WAAWrB,UAAYpB,GAF/Ct0C,KAAK+O,IAAI,EAAGjB,KAAK0b,KAAKwE,KAAKwf,GAAKojE,OAR7Ct8D,GAAYA,EAAWqR,EAAU1nD,OAAS,KAC7Cq2C,EAAWqR,EAAU1nD,OAAS,GAIhC0yG,GADAE,EAAelrD,EAAUrR,GAAU7hC,GACJm+F,GAepB,aAATtlF,GAGF,GAFiBtrB,KAAKC,OAAO2wG,EAAgB37D,GAAgB07D,GAE5C,IAAM,EACrB,OAAO7iG,KAAK8sD,iBAAiBg2C,EAAgB37D,GAAgB07D,EAAgBC,GAAiB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,OAE3H,IAAa,WAATpqB,EAAmB,CAC5B,IAAIwlF,EAAQhjG,KAAK8sD,eAAeg2C,EAAgB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAC5Eq7D,EAAOjjG,KAAK8sD,eAAei2C,EAAe/iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAC1ElwB,EAAU1X,KAAK8sD,gBAAgB+1C,GAAiBC,EAAgB37D,GAAgB07D,EAAgBC,GAAiB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GACjJs7D,EAAUhxG,KAAKC,OAAO2wG,EAAgB37D,GAAgB07D,GAAiB,EAE3E,GAAI7iG,KAAKs3C,GAAGnnD,OAAQ,CAIlB,IAFAyN,GADA2F,EAAM,IAAIxN,MAAMitG,EAAM7yG,SACZA,OAELoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBgO,EAAIhO,GAAKmiB,EAAQniB,IAAM0tG,EAAK1tG,GAAKytG,EAAMztG,IAAM2tG,EAG/C,OAAO3/F,CACT,CAEA,OAAOmU,GAAWurF,EAAOD,GAASE,CACpC,CAAO,GAAa,aAAT1lF,EAAqB,CAC9B,IAAI6lF,EAAarjG,KAAK8sD,eAAeg2C,EAAgB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GACjF07D,EAAiBtjG,KAAK8sD,gBAAgBg2C,EAAgB,MAAS9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,GAEnG,GAAI5nC,KAAKs3C,GAAGnnD,OAAQ,CAIlB,IAFAyN,GADA2F,EAAM,IAAIxN,MAAMstG,EAAWlzG,SACjBA,OAELoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxBgO,EAAIhO,GAAK8tG,EAAW9tG,IAAM8tG,EAAW9tG,GAAK+tG,EAAe/tG,KAAOutG,EAAgB37D,GAAgB,KAGlG,OAAO5jC,CACT,CAEA,OAAO8/F,GAAcA,EAAaC,IAAmBR,EAAgB37D,GAAgB,IACvF,EAEA,OAAOnnC,KAAK8sD,gBAAgB+1C,IAAkBC,EAAgB37D,GAAgB07D,EAAgBC,IAAkB9iG,KAAKs+B,KAAK2K,WAAWrB,UAAW,EAClJ,CAEA,SAASmwD,EAAO94F,EAAOskG,GACrB,IAAKvjG,KAAK8D,EACR,OAAO9D,KAAKs3C,GAMd,GAHAr4C,EAAyB,IAAhBA,GAAS,KAClBskG,EAAUrxG,KAAKC,MAAMoxG,GAAW,KAEjB,EACb,OAAOvjG,KAAKs3C,GAGd,IAMI1+C,EAQA4qG,EAdA3pE,EAAc75B,KAAKs+B,KAAK+c,cAAgBr7C,KAAKs+B,KAAK2K,WAAWrB,UAC7DkP,EAAYjd,EAAc56B,EAE1BwkG,EAAkBF,EAAU,GADjB1pE,EAAc56B,EACmB63C,IAAcysD,EAAU,GAAK,EACzEhuG,EAAI,EACJwF,EAAI,EAWR,IAPEnC,EADEoH,KAAKs3C,GAAGnnD,OACFgnC,iBAAiB,UAAWn3B,KAAKs3C,GAAGnnD,QAEpC,EAKHoF,EAAIguG,GAAS,CAGlB,GAFAC,EAAcxjG,KAAK8sD,eAAehW,EAAYvhD,EAAIkuG,GAE9CzjG,KAAKs3C,GAAGnnD,OACV,IAAK4K,EAAI,EAAGA,EAAIiF,KAAKs3C,GAAGnnD,OAAQ4K,GAAK,EACnCnC,EAAMmC,IAAMyoG,EAAYzoG,QAG1BnC,GAAS4qG,EAGXjuG,GAAK,CACP,CAEA,GAAIyK,KAAKs3C,GAAGnnD,OACV,IAAK4K,EAAI,EAAGA,EAAIiF,KAAKs3C,GAAGnnD,OAAQ4K,GAAK,EACnCnC,EAAMmC,IAAMwoG,OAGd3qG,GAAS2qG,EAGX,OAAO3qG,CACT,CAEA,SAAS8qG,EAAwBp9D,GAC1BtmC,KAAK2jG,0BACR3jG,KAAK2jG,wBAA0B,CAC7BhuG,EAAG,IAAI+sD,SAKX,IAAIiD,EAAS3lD,KAAK2jG,wBAAwBhuG,EAG1C,GAFAgwD,EAAOK,eAAehmD,KAAKgsD,IAAIv/B,OAE3BzsB,KAAKisD,uBAAyB,EAAG,CACnC,IAAI23C,EAAS5jG,KAAK6D,EAAEipD,eAAexmB,GACnCqf,EAAO7B,WAAW8/C,EAAO,GAAK5jG,KAAK6D,EAAE83C,MAAOioD,EAAO,GAAK5jG,KAAK6D,EAAE83C,KAAMioD,EAAO,GAAK5jG,KAAK6D,EAAE83C,KAC1F,CAEA,GAAI37C,KAAKisD,uBAAyB,EAAG,CACnC,IAAItI,EAAQ3jD,KAAKoN,EAAE0/C,eAAexmB,GAClCqf,EAAOhC,MAAMA,EAAM,GAAK3jD,KAAKoN,EAAEuuC,KAAMgI,EAAM,GAAK3jD,KAAKoN,EAAEuuC,KAAMgI,EAAM,GAAK3jD,KAAKoN,EAAEuuC,KACjF,CAEA,GAAI37C,KAAK6/B,IAAM7/B,KAAKisD,uBAAyB,EAAG,CAC9C,IAAIxI,EAAOzjD,KAAK6/B,GAAGitB,eAAexmB,GAC9B66D,EAAWnhG,KAAK8/B,GAAGgtB,eAAexmB,GACtCqf,EAAOjC,cAAcD,EAAOzjD,KAAK6/B,GAAG8b,KAAMwlD,EAAWnhG,KAAK8/B,GAAG6b,KAC/D,CAEA,GAAI37C,KAAKY,GAAKZ,KAAKisD,uBAAyB,EAAG,CAC7C,IAAIosC,EAAWr4F,KAAKY,EAAEksD,eAAexmB,GACrCqf,EAAO3C,QAAQq1C,EAAWr4F,KAAKY,EAAE+6C,KACnC,MAAO,IAAK37C,KAAKY,GAAKZ,KAAKisD,uBAAyB,EAAG,CACrD,IAAI43C,EAAY7jG,KAAKssD,GAAGQ,eAAexmB,GACnCw9D,EAAY9jG,KAAKqsD,GAAGS,eAAexmB,GACnCy9D,EAAY/jG,KAAKiO,GAAG6+C,eAAexmB,GACnC09D,EAAchkG,KAAK4F,GAAGknD,eAAexmB,GACzCqf,EAAOrC,SAASugD,EAAY7jG,KAAKssD,GAAG3Q,MAAM0H,QAAQygD,EAAY9jG,KAAKqsD,GAAG1Q,MAAMyH,QAAQ2gD,EAAY/jG,KAAKiO,GAAG0tC,MAAM2H,SAAS0gD,EAAY,GAAKhkG,KAAK4F,GAAG+1C,MAAM0H,QAAQ2gD,EAAY,GAAKhkG,KAAK4F,GAAG+1C,MAAMyH,QAAQ4gD,EAAY,GAAKhkG,KAAK4F,GAAG+1C,KAChO,CAEA,GAAI37C,KAAKkgB,KAAKxS,GAAK1N,KAAKkgB,KAAKxS,EAAEN,EAAG,CAChC,IAAI62F,EAAYjkG,KAAKksD,GAAGY,eAAexmB,GACnC49D,EAAYlkG,KAAKmsD,GAAGW,eAAexmB,GAEvC,GAAItmC,KAAKkgB,KAAKxS,EAAE6J,EAAG,CACjB,IAAI4sF,EAAYnkG,KAAKosD,GAAGU,eAAexmB,GACvCqf,EAAO7B,UAAUmgD,EAAYjkG,KAAKksD,GAAGvQ,KAAMuoD,EAAYlkG,KAAKmsD,GAAGxQ,MAAOwoD,EAAYnkG,KAAKosD,GAAGzQ,KAC5F,MACEgK,EAAO7B,UAAUmgD,EAAYjkG,KAAKksD,GAAGvQ,KAAMuoD,EAAYlkG,KAAKmsD,GAAGxQ,KAAM,EAEzE,KAAO,CACL,IAAIp3C,EAAWvE,KAAK0N,EAAEo/C,eAAexmB,GACrCqf,EAAO7B,UAAUv/C,EAAS,GAAKvE,KAAK0N,EAAEiuC,KAAMp3C,EAAS,GAAKvE,KAAK0N,EAAEiuC,MAAOp3C,EAAS,GAAKvE,KAAK0N,EAAEiuC,KAC/F,CAEA,OAAOgK,CACT,CAEA,SAASy+C,IACP,OAAOpkG,KAAKrK,EAAE2M,MAAM,IAAIogD,OAC1B,CAEA,IAAIuK,EAAuBpB,yBAAyBoB,qBAEpDpB,yBAAyBoB,qBAAuB,SAAUvxC,EAAMwE,EAAM5mB,GACpE,IAAIi8B,EAAO03B,EAAqBvxC,EAAMwE,EAAM5mB,GAS5C,OAPIi8B,EAAK4nB,kBAAkBhtD,OACzBolC,EAAKu3B,eAAiB42C,EAAwBnsG,KAAKg+B,GAEnDA,EAAKu3B,eAAiBs3C,EAA8B7sG,KAAKg+B,GAG3DA,EAAKkqE,iBAAmB8C,kBAAkB9C,iBACnClqE,CACT,EAEA,IAAI8uE,EAAkBvnD,gBAAgBC,QAEtCD,gBAAgBC,QAAU,SAAUrhC,EAAMwE,EAAM1C,EAAMm+B,EAAMriD,GAC1D,IAAIi8B,EAAO8uE,EAAgB3oF,EAAMwE,EAAM1C,EAAMm+B,EAAMriD,GAI/Ci8B,EAAK4mB,GACP5mB,EAAKu3B,eAAiBy1C,kBAAkBz1C,eAAev1D,KAAKg+B,GAE5DA,EAAKu3B,eAAiBy1C,kBAAkBG,qBAAqBnrG,KAAKg+B,GAGpEA,EAAKkqE,iBAAmB8C,kBAAkB9C,iBAC1ClqE,EAAKsiE,QAAUA,EACftiE,EAAKoiE,OAASA,EACdpiE,EAAKwiE,OAASA,EACdxiE,EAAKikE,kBAAoB+I,kBAAkB/I,kBAAkBjiG,KAAKg+B,GAClEA,EAAKqnE,eAAiB2F,kBAAkB3F,eAAerlG,KAAKg+B,GAC5DA,EAAKsjE,QAAqB,IAAX34E,EAAKrc,EAAUqc,EAAKpc,EAAE3T,OAAS,EAC9ColC,EAAKsqE,cAAgB3/E,EAAKm1C,GAC1B,IAAIz8D,EAAQ,EAiBZ,OAfa,IAAT4kB,IACF5kB,EAAQu+B,iBAAiB,UAAsB,IAAXjX,EAAKrc,EAAUqc,EAAKpc,EAAE,GAAGsJ,EAAEjd,OAAS+vB,EAAKpc,EAAE3T,SAGjFolC,EAAKktE,eAAiB,CACpBhqD,UAAWhkB,oBACXmjB,UAAW,EACXh/C,MAAOA,GAET2pG,kBAAkBC,kBAAkB9mF,EAAMwE,EAAMqV,GAE5CA,EAAKzxB,GACPxK,EAAUgjD,mBAAmB/mB,GAGxBA,CACT,EAwBA,IAAI+uE,EAAmCnlD,qBAAqBolD,yBACxDC,EAA4CrlD,qBAAqBslD,kCAErE,SAASC,IAAoB,CAE7BA,EAAiBxzG,UAAY,CAC3BmtD,SAAU,SAAkB9oB,EAAM+Q,GAC5BtmC,KAAK8D,GACP9D,KAAKy8C,WAGP,IAMIlnD,EANAmpD,EAAY1+C,KAAKrK,OAER5D,IAATu0C,IACFoY,EAAY1+C,KAAK8sD,eAAexmB,EAAM,IAIxC,IAAI1oC,EAAM8gD,EAAUjN,QAChB4M,EAAWK,EAAUnpB,GACrBma,EAASgP,EAAU/oD,EACnB6H,EAAMg6B,iBAAiB55B,GAE3B,IAAKrI,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EAEtBiI,EAAIjI,GADO,MAATggC,GAAyB,MAATA,EACT,CAAC8oB,EAAS9oD,GAAG,GAAKm6C,EAAOn6C,GAAG,GAAI8oD,EAAS9oD,GAAG,GAAKm6C,EAAOn6C,GAAG,IAE3D,CAAC8oD,EAAS9oD,GAAG,GAAI8oD,EAAS9oD,GAAG,IAI1C,OAAOiI,CACT,EACAkyC,OAAQ,SAAgBpJ,GACtB,OAAOtmC,KAAKq+C,SAAS,IAAK/X,EAC5B,EACAqwD,WAAY,SAAoBrwD,GAC9B,OAAOtmC,KAAKq+C,SAAS,IAAK/X,EAC5B,EACAswD,YAAa,SAAqBtwD,GAChC,OAAOtmC,KAAKq+C,SAAS,IAAK/X,EAC5B,EACAq+D,SAAU,WACR,OAAO3kG,KAAKrK,EAAE8K,CAChB,EACAmkG,YAAa,SAAqB1xD,EAAM5M,GACtC,IAAIoY,EAAY1+C,KAAKrK,OAER5D,IAATu0C,IACFoY,EAAY1+C,KAAK8sD,eAAexmB,EAAM,IAGnCtmC,KAAK6kG,kBACR7kG,KAAK6kG,gBAAkBhuD,IAAIvC,kBAAkBoK,IAW/C,IARA,IAMI5gB,EANA0W,EAAiBx0C,KAAK6kG,gBACtB5yD,EAAUuC,EAAevC,QACzBkC,EAAYK,EAAerC,YAAce,EACzC39C,EAAI,EACJqI,EAAMq0C,EAAQ9hD,OACd20G,EAAoB,EAGjBvvG,EAAIqI,GAAK,CACd,GAAIknG,EAAoB7yD,EAAQ18C,GAAGw8C,YAAcoC,EAAW,CAC1D,IAAI4wD,EAAYxvG,EACZyvG,EAAWtmD,EAAUj+C,GAAKlL,IAAMqI,EAAM,EAAI,EAAIrI,EAAI,EAClDgjD,GAAepE,EAAY2wD,GAAqB7yD,EAAQ18C,GAAGw8C,YAC/DjU,EAAK+Y,IAAIV,kBAAkBuI,EAAU/oD,EAAEovG,GAAYrmD,EAAU/oD,EAAEqvG,GAAWtmD,EAAUz3C,EAAE89F,GAAYrmD,EAAUnpD,EAAEyvG,GAAWzsD,EAAatG,EAAQ18C,IAC9I,KACF,CACEuvG,GAAqB7yD,EAAQ18C,GAAGw8C,YAGlCx8C,GAAK,CACP,CAMA,OAJKuoC,IACHA,EAAK4gB,EAAUj+C,EAAI,CAACi+C,EAAU/oD,EAAE,GAAG,GAAI+oD,EAAU/oD,EAAE,GAAG,IAAM,CAAC+oD,EAAU/oD,EAAE+oD,EAAUjN,QAAU,GAAG,GAAIiN,EAAU/oD,EAAE+oD,EAAUjN,QAAU,GAAG,KAGlI3T,CACT,EACAmnE,aAAc,SAAsB/xD,EAAM5M,EAAM4+D,GAElC,GAARhyD,EAEFA,EAAOlzC,KAAKrK,EAAE8K,EACG,GAARyyC,IAETA,EAAO,MAGT,IAAIL,EAAM7yC,KAAK4kG,YAAY1xD,EAAM5M,GAC7BwM,EAAM9yC,KAAK4kG,YAAY1xD,EAAO,KAAO5M,GACrC6+D,EAAUryD,EAAI,GAAKD,EAAI,GACvBuyD,EAAUtyD,EAAI,GAAKD,EAAI,GACvBwyD,EAAYnzG,KAAKojB,KAAKpjB,KAAKmB,IAAI8xG,EAAS,GAAKjzG,KAAKmB,IAAI+xG,EAAS,IAEnE,OAAkB,IAAdC,EACK,CAAC,EAAG,GAGmB,YAAfH,EAA2B,CAACC,EAAUE,EAAWD,EAAUC,GAAa,EAAED,EAAUC,EAAWF,EAAUE,EAE5H,EACAC,cAAe,SAAuBpyD,EAAM5M,GAC1C,OAAOtmC,KAAKilG,aAAa/xD,EAAM5M,EAAM,UACvC,EACAi/D,aAAc,SAAsBryD,EAAM5M,GACxC,OAAOtmC,KAAKilG,aAAa/xD,EAAM5M,EAAM,SACvC,EACAm5D,iBAAkB8C,kBAAkB9C,iBACpC3yC,eAAgBy1C,kBAAkBG,sBAEpC1tE,gBAAgB,CAAC0vE,GAAmBJ,GACpCtvE,gBAAgB,CAAC0vE,GAAmBF,GACpCA,EAA0CtzG,UAAU47D,eA5IpD,SAA6B7V,GAmB3B,OAjBKj3C,KAAKyiG,iBACRziG,KAAKyiG,eAAiB,CACpB+C,WAAY/mD,UAAUn8C,MAAMtC,KAAKs3C,IACjCM,UAAW,EACX6tD,SAAUhxE,sBAIdwiB,GAAYj3C,KAAK0b,KAAKutB,WAAWrB,WACjCqP,GAAYj3C,KAAKo3C,cAEAp3C,KAAKyiG,eAAegD,WACnCzlG,KAAKyiG,eAAe7qD,UAAY53C,KAAKyiG,eAAegD,SAAWxuD,EAAWj3C,KAAKu7C,SAAS3D,UAAY,EACpG53C,KAAKyiG,eAAegD,SAAWxuD,EAC/Bj3C,KAAKo/C,iBAAiBnI,EAAUj3C,KAAKyiG,eAAe+C,WAAYxlG,KAAKyiG,iBAGhEziG,KAAKyiG,eAAe+C,UAC7B,EAyHAhB,EAA0CtzG,UAAU8lG,mBAAqB/C,kBAAkB+C,mBAC3F,IAAI0O,EAAuBvmD,qBAAqBgmB,aAEhDhmB,qBAAqBgmB,aAAe,SAAUzpD,EAAMwE,EAAM1C,EAAMhgB,EAAKmoG,GACnE,IAAIpwE,EAAOmwE,EAAqBhqF,EAAMwE,EAAM1C,EAAMhgB,EAAKmoG,GAcvD,OAbApwE,EAAKsqE,cAAgB3/E,EAAKm1C,GAC1B9/B,EAAKymB,MAAO,EAEC,IAATx+B,EACF+kF,kBAAkBC,kBAAkB9mF,EAAMwE,EAAK4d,GAAIvI,GACjC,IAAT/X,GACT+kF,kBAAkBC,kBAAkB9mF,EAAMwE,EAAKue,GAAIlJ,GAGjDA,EAAKzxB,GACP4X,EAAK4gC,mBAAmB/mB,GAGnBA,CACT,CACF,CAEA,SAASqwE,eACPjD,sBACF,CAEA,SAASkD,eAWPz0B,aAAalgF,UAAU40G,mBAAqB,SAAUnxB,EAAc7a,GAClE,IAAI3iB,EAAWn3C,KAAK+lG,oBAAoBjsC,GAExC,GAAI6a,EAAahwE,IAAMwyC,EAAU,CAC/B,IAAI8/B,EAAU,CAAC,EAIf,OAHAj3E,KAAKyyE,SAASwE,EAAStC,GACvBsC,EAAQtyE,EAAIwyC,EAASj9C,WACrB+8E,EAAQz2C,YAAa,EACdy2C,CACT,CAEA,OAAOtC,CACT,EAEAvD,aAAalgF,UAAUwhF,eAAiB,WACtC,IAAIszB,EAAchmG,KAAKw0E,kBACnByxB,EAAiBjmG,KAAKwiG,oBAE1B,OADAxiG,KAAKm8C,GAAK6pD,GAAeC,EAClBjmG,KAAKm8C,EACd,EAEAi1B,aAAalgF,UAAUsxG,kBA/BvB,WACE,OAAIxiG,KAAKkgB,KAAKzH,EAAEzd,GACdgF,KAAK+lG,oBAAsB9R,kBAAkB+C,mBAAmBz/F,KAAKyI,KAA1Ci0F,CAAgDj0F,KAAK0b,KAAM1b,KAAKkgB,KAAKzH,EAAGzY,MACnGA,KAAKo8C,UAAUp8C,KAAK8lG,mBAAmBvuG,KAAKyI,QACrC,GAGF,IACT,CAwBF,CAEA,SAASkmG,aACPL,cACF,CAEA,SAASM,sBAAuB,CAEhCA,oBAAoBj1G,UAAY,CAC9Bk1G,gBAAiB,SAAyBC,EAAUC,GAClD,IAEIC,EACAhxG,EAHAixG,EAAUxqE,SAAS,WAKvB,IAJAwqE,EAAQl4D,aAAa,SAAU+3D,GAI1B9wG,EAAI,EAAGA,EAAI+wG,EAAIn2G,OAAQoF,GAAK,GAC/BgxG,EAAcvqE,SAAS,gBACXsS,aAAa,KAAMg4D,EAAI/wG,IACnCixG,EAAQphE,YAAYmhE,GACpBC,EAAQphE,YAAYmhE,GAGtB,OAAOC,CACT,GAGF,IAAIC,kBAAoB,mFAExB,SAASC,cAAcp6E,EAAQ+7C,EAAe3sD,EAAM+P,EAAI/vB,GACtDsE,KAAKqoE,cAAgBA,EACrB,IAAIP,EAAgB9rC,SAAS,iBAC7B8rC,EAAcx5B,aAAa,OAAQ,UACnCw5B,EAAcx5B,aAAa,8BAA+B,aAC1Dw5B,EAAcx5B,aAAa,SAAUm4D,kBAAoB,QACzDzmG,KAAK2mG,aAAe7+B,EACpBA,EAAcx5B,aAAa,SAAU7iB,EAAK,WAC1Ca,EAAO8Y,YAAY0iC,IACnBA,EAAgB9rC,SAAS,kBACXsS,aAAa,OAAQ,UACnCw5B,EAAcx5B,aAAa,8BAA+B,QAC1Dw5B,EAAcx5B,aAAa,SAAU,2CACrCw5B,EAAcx5B,aAAa,SAAU7iB,EAAK,WAC1Ca,EAAO8Y,YAAY0iC,GACnB9nE,KAAK4mG,aAAe9+B,EACpB,IAAI0+B,EAAUxmG,KAAKomG,gBAAgB36E,EAAI,CAAC/vB,EAAQ+vB,EAAK,UAAWA,EAAK,YACrEa,EAAO8Y,YAAYohE,EACrB,CAcA,SAASK,cAAcv6E,EAAQ+7C,EAAe3sD,EAAM+P,GAClDzrB,KAAKqoE,cAAgBA,EACrB,IAAIP,EAAgB9rC,SAAS,iBAC7B8rC,EAAcx5B,aAAa,OAAQ,UACnCw5B,EAAcx5B,aAAa,8BAA+B,QAC1Dw5B,EAAcx5B,aAAa,SAAU,2CACrCw5B,EAAcx5B,aAAa,SAAU7iB,GACrCa,EAAO8Y,YAAY0iC,GACnB9nE,KAAK4mG,aAAe9+B,CACtB,CAUA,SAASg/B,gBAAgBj/B,EAAKQ,EAAe3sD,GAC3C1b,KAAK+mG,aAAc,EACnB/mG,KAAKqoE,cAAgBA,EACrBroE,KAAK0b,KAAOA,EACZ1b,KAAK4/C,MAAQ,EACf,CAgIA,SAASonD,iBAAiB16E,EAAQ+7C,EAAe3sD,EAAM+P,GACrDzrB,KAAKqoE,cAAgBA,EACrB,IAAIP,EAAgB9rC,SAAS,iBAC7B8rC,EAAcx5B,aAAa,OAAQ,UACnCw5B,EAAcx5B,aAAa,8BAA+B,aAC1Dw5B,EAAcx5B,aAAa,SAAU,wFACrChiB,EAAO8Y,YAAY0iC,GACnB,IAAIm/B,EAAsBjrE,SAAS,uBACnCirE,EAAoB34D,aAAa,8BAA+B,QAChE24D,EAAoB34D,aAAa,SAAU7iB,GAC3CzrB,KAAK4mG,aAAeK,EACpB,IAAIC,EAAUlrE,SAAS,WACvBkrE,EAAQ54D,aAAa,OAAQ,SAC7B24D,EAAoB7hE,YAAY8hE,GAChClnG,KAAKknG,QAAUA,EACf,IAAIC,EAAUnrE,SAAS,WACvBmrE,EAAQ74D,aAAa,OAAQ,SAC7B24D,EAAoB7hE,YAAY+hE,GAChCnnG,KAAKmnG,QAAUA,EACf,IAAIC,EAAUprE,SAAS,WACvBorE,EAAQ94D,aAAa,OAAQ,SAC7B24D,EAAoB7hE,YAAYgiE,GAChCpnG,KAAKonG,QAAUA,EACf96E,EAAO8Y,YAAY6hE,EACrB,CAgBA,SAASI,mBAAmB/6E,EAAQ+7C,EAAe3sD,EAAM+P,GACvDzrB,KAAKqoE,cAAgBA,EACrB,IAAIjJ,EAAiBp/D,KAAKqoE,cAAcjJ,eACpC6nC,EAAsBjrE,SAAS,wBAE/BojC,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,KACzRqK,KAAKknG,QAAUlnG,KAAKsnG,aAAa,UAAWL,KAI1C7nC,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,KACzRqK,KAAKmnG,QAAUnnG,KAAKsnG,aAAa,UAAWL,KAI1C7nC,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,KACzRqK,KAAKonG,QAAUpnG,KAAKsnG,aAAa,UAAWL,KAI1C7nC,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,GAAWypE,EAAe,IAAI1xD,EAAE5J,GAAgC,IAA3Bs7D,EAAe,IAAI1xD,EAAE/X,KACzRqK,KAAKunG,QAAUvnG,KAAKsnG,aAAa,UAAWL,KAI1CjnG,KAAKknG,SAAWlnG,KAAKmnG,SAAWnnG,KAAKonG,SAAWpnG,KAAKunG,WACvDN,EAAoB34D,aAAa,8BAA+B,QAChEhiB,EAAO8Y,YAAY6hE,KAGjB7nC,EAAe,GAAG1xD,EAAE5J,GAA+B,IAA1Bs7D,EAAe,GAAG1xD,EAAE/X,GAAWypE,EAAe,GAAG1xD,EAAE5J,GAA+B,IAA1Bs7D,EAAe,GAAG1xD,EAAE/X,GAAWypE,EAAe,GAAG1xD,EAAE5J,GAA+B,IAA1Bs7D,EAAe,GAAG1xD,EAAE/X,GAAWypE,EAAe,GAAG1xD,EAAE5J,GAA+B,IAA1Bs7D,EAAe,GAAG1xD,EAAE/X,GAAWypE,EAAe,GAAG1xD,EAAE5J,GAA+B,IAA1Bs7D,EAAe,GAAG1xD,EAAE/X,MAC/QsxG,EAAsBjrE,SAAS,wBACXsS,aAAa,8BAA+B,QAChE24D,EAAoB34D,aAAa,SAAU7iB,GAC3Ca,EAAO8Y,YAAY6hE,GACnBjnG,KAAKwnG,gBAAkBxnG,KAAKsnG,aAAa,UAAWL,GACpDjnG,KAAKynG,gBAAkBznG,KAAKsnG,aAAa,UAAWL,GACpDjnG,KAAK0nG,gBAAkB1nG,KAAKsnG,aAAa,UAAWL,GAExD,CA4EA,SAASU,oBAAoBr7E,EAAQ+7C,EAAe3sD,EAAM+P,EAAI/vB,GAC5D,IAAIksG,EAAmBv/B,EAAc/uE,UAAU2vC,WAAWg1B,aAAaggB,WACnEA,EAAa5V,EAAcnoD,KAAKy2D,IAAMixB,EAC1Ct7E,EAAOgiB,aAAa,IAAK2vC,EAAWjjF,GAAK4sG,EAAiB5sG,GAC1DsxB,EAAOgiB,aAAa,IAAK2vC,EAAW3xE,GAAKs7F,EAAiBt7F,GAC1DggB,EAAOgiB,aAAa,QAAS2vC,EAAWh/E,OAAS2oG,EAAiB3oG,OAClEqtB,EAAOgiB,aAAa,SAAU2vC,EAAW1sD,QAAUq2E,EAAiBr2E,QACpEvxB,KAAKqoE,cAAgBA,EACrB,IAAIw/B,EAAiB7rE,SAAS,kBAC9B6rE,EAAev5D,aAAa,KAAM,eAClCu5D,EAAev5D,aAAa,SAAU7iB,EAAK,kBAC3Co8E,EAAev5D,aAAa,eAAgB,KAC5CtuC,KAAK6nG,eAAiBA,EACtBv7E,EAAO8Y,YAAYyiE,GACnB,IAAIC,EAAW9rE,SAAS,YACxB8rE,EAASx5D,aAAa,KAAM,MAC5Bw5D,EAASx5D,aAAa,KAAM,KAC5Bw5D,EAASx5D,aAAa,KAAM7iB,EAAK,kBACjCq8E,EAASx5D,aAAa,SAAU7iB,EAAK,kBACrCzrB,KAAK8nG,SAAWA,EAChBx7E,EAAO8Y,YAAY0iE,GACnB,IAAIC,EAAU/rE,SAAS,WACvB+rE,EAAQz5D,aAAa,cAAe,WACpCy5D,EAAQz5D,aAAa,gBAAiB,KACtCy5D,EAAQz5D,aAAa,SAAU7iB,EAAK,kBACpCzrB,KAAK+nG,QAAUA,EACfz7E,EAAO8Y,YAAY2iE,GACnB,IAAIC,EAAchsE,SAAS,eAC3BgsE,EAAY15D,aAAa,KAAM7iB,EAAK,kBACpCu8E,EAAY15D,aAAa,MAAO7iB,EAAK,kBACrCu8E,EAAY15D,aAAa,WAAY,MACrC05D,EAAY15D,aAAa,SAAU7iB,EAAK,kBACxCa,EAAO8Y,YAAY4iE,GACnB,IAAIxB,EAAUxmG,KAAKomG,gBAAgB36E,EAAI,CAACA,EAAK,iBAAkB/vB,IAC/D4wB,EAAO8Y,YAAYohE,EACrB,CAlWAxxE,gBAAgB,CAACmxE,qBAAsBO,eAEvCA,cAAcx1G,UAAUu6C,YAAc,SAAUihB,GAC9C,GAAIA,GAAe1sD,KAAKqoE,cAAczsB,KAAM,CAC1C,IAAIqsD,EAAajoG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EACpDuyG,EAAaloG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EACpDgxE,EAAU3mE,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,IACzDqK,KAAK2mG,aAAar4D,aAAa,SAAUm4D,kBAAoB,IAAM9/B,EAAU,MAC7E3mE,KAAK4mG,aAAat4D,aAAa,SAAU45D,EAAW,GAAKD,EAAW,GAAK,UAAYA,EAAW,GAAK,KAAOC,EAAW,GAAKD,EAAW,IAAM,UAAYA,EAAW,GAAK,KAAOC,EAAW,GAAKD,EAAW,IAAM,UAAYA,EAAW,GAAK,aAC/O,CACF,EAaApB,cAAc31G,UAAUu6C,YAAc,SAAUihB,GAC9C,GAAIA,GAAe1sD,KAAKqoE,cAAczsB,KAAM,CAC1C,IAAI5gB,EAAQh7B,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAC/CgxE,EAAU3mE,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EACrDqK,KAAK4mG,aAAat4D,aAAa,SAAU,WAAatT,EAAM,GAAK,YAAcA,EAAM,GAAK,YAAcA,EAAM,GAAK,UAAY2rC,EAAU,KAC3I,CACF,EASAmgC,gBAAgB51G,UAAUg1G,WAAa,WACrC,IACIvpE,EACAwrE,EACA5yG,EACAqI,EAJAwqG,EAAepoG,KAAK0b,KAAKkmD,aAAa4sB,UAAYxuF,KAAK0b,KAAKkmD,aAAaymC,WAmB7E,IAbiD,IAA7CroG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,GACzCiI,EAAMoC,KAAK0b,KAAKolD,YAAYjjC,gBAAgB1tC,OAC5CoF,EAAI,GAGJqI,EAAU,GADVrI,EAAIyK,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,IAIjDwyG,EAAYnsE,SAAS,MACXsS,aAAa,OAAQ,QAC/B65D,EAAU75D,aAAa,iBAAkB,SACzC65D,EAAU75D,aAAa,oBAAqB,GAEpC/4C,EAAIqI,EAAKrI,GAAK,EACpBonC,EAAOX,SAAS,QAChBmsE,EAAU/iE,YAAYzI,GACtB38B,KAAK4/C,MAAMpqD,KAAK,CACdkY,EAAGivB,EACHvuB,EAAG7Y,IAIP,GAAkD,IAA9CyK,KAAKqoE,cAAcjJ,eAAe,IAAI1xD,EAAE/X,EAAS,CACnD,IAAIya,EAAO4rB,SAAS,QAChBvQ,EAAKkP,kBACTvqB,EAAKk+B,aAAa,KAAM7iB,GACxBrb,EAAKk+B,aAAa,YAAa,SAC/Bl+B,EAAKg1B,YAAY+iE,GACjBnoG,KAAK0b,KAAKutB,WAAWC,KAAK9D,YAAYh1B,GACtC,IAAImC,EAAIypB,SAAS,KAGjB,IAFAzpB,EAAE+7B,aAAa,OAAQ,OAASxZ,kBAAoB,IAAMrJ,EAAK,KAExD28E,EAAa,IAClB71F,EAAE6yB,YAAYgjE,EAAa,IAG7BpoG,KAAK0b,KAAKkmD,aAAax8B,YAAY7yB,GACnCvS,KAAKyqE,OAASr6D,EACd+3F,EAAU75D,aAAa,SAAU,OACnC,MAAO,GAAkD,IAA9CtuC,KAAKqoE,cAAcjJ,eAAe,IAAI1xD,EAAE/X,GAAyD,IAA9CqK,KAAKqoE,cAAcjJ,eAAe,IAAI1xD,EAAE/X,EAAS,CAC7G,GAAkD,IAA9CqK,KAAKqoE,cAAcjJ,eAAe,IAAI1xD,EAAE/X,EAG1C,IAFAyyG,EAAepoG,KAAK0b,KAAKkmD,aAAa4sB,UAAYxuF,KAAK0b,KAAKkmD,aAAaymC,WAElED,EAAaj4G,QAClB6P,KAAK0b,KAAKkmD,aAAa7E,YAAYqrC,EAAa,IAIpDpoG,KAAK0b,KAAKkmD,aAAax8B,YAAY+iE,GACnCnoG,KAAK0b,KAAKkmD,aAAa0mC,gBAAgB,QACvCH,EAAU75D,aAAa,SAAU,OACnC,CAEAtuC,KAAK+mG,aAAc,EACnB/mG,KAAKuoG,WAAaJ,CACpB,EAEArB,gBAAgB51G,UAAUu6C,YAAc,SAAUihB,GAKhD,IAAIn3D,EAJCyK,KAAK+mG,aACR/mG,KAAKkmG,aAIP,IACI91F,EACAusB,EAFA/+B,EAAMoC,KAAK4/C,MAAMzvD,OAIrB,IAAKoF,EAAI,EAAGA,EAAIqI,EAAKrI,GAAK,EACxB,IAAyB,IAArByK,KAAK4/C,MAAMrqD,GAAG6Y,IAChBgC,EAAOpQ,KAAK0b,KAAKolD,YAAY4D,SAAS1kE,KAAK4/C,MAAMrqD,GAAG6Y,GACpDuuB,EAAO38B,KAAK4/C,MAAMrqD,GAAGmY,GAEjBg/C,GAAe1sD,KAAKqoE,cAAczsB,MAAQxrC,EAAKmlB,KAAKqmB,OACtDjf,EAAK2R,aAAa,IAAKl+B,EAAKg1D,UAG1B1Y,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,MAAQ57C,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,MAAQ57C,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,MAAQ57C,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,MAAQxrC,EAAKmlB,KAAKqmB,MAAM,CAC7N,IAAI4sD,EAEJ,GAAiD,IAA7CxoG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,GAAwD,MAA7CqK,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAW,CACtG,IAAIyX,EAAmG,IAA/Flb,KAAK6O,IAAIf,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAGqK,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,GAC9FQ,EAAmG,IAA/FjE,KAAK+O,IAAIjB,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAGqK,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,GAC9F+W,EAAIiwB,EAAK8rE,iBACbD,EAAiB,SAAW97F,EAAIU,EAAI,IACpC,IAGIrS,EAHA2tG,EAAah8F,GAAKvW,EAAIiX,GACtBi9B,EAAU,EAA+C,EAA3CrqC,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAQqK,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,IACxGgtB,EAAQzwB,KAAKC,MAAMu2G,EAAar+D,GAGpC,IAAKtvC,EAAI,EAAGA,EAAI4nB,EAAO5nB,GAAK,EAC1BytG,GAAkB,KAAkD,EAA3CxoG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAQqK,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,IAAO,IAG5H6yG,GAAkB,KAAW,GAAJ97F,EAAS,MACpC,MACE87F,EAAiB,KAAkD,EAA3CxoG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAQqK,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,IAGpHgnC,EAAK2R,aAAa,mBAAoBk6D,EACxC,CAYJ,IARI97C,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,OACxD57C,KAAKuoG,WAAWj6D,aAAa,eAA2D,EAA3CtuC,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,IAGlF+2D,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,OACxD57C,KAAKuoG,WAAWj6D,aAAa,UAAWtuC,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,IAG/B,IAA9CqK,KAAKqoE,cAAcjJ,eAAe,IAAI1xD,EAAE/X,GAAyD,IAA9CqK,KAAKqoE,cAAcjJ,eAAe,IAAI1xD,EAAE/X,KACzF+2D,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,MAAM,CAC9D,IAAI5gB,EAAQh7B,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EACnDqK,KAAKuoG,WAAWj6D,aAAa,SAAU,OAASjW,QAAmB,IAAX2C,EAAM,IAAY,IAAM3C,QAAmB,IAAX2C,EAAM,IAAY,IAAM3C,QAAmB,IAAX2C,EAAM,IAAY,IAC5I,CAEJ,EA4BAgsE,iBAAiB91G,UAAUu6C,YAAc,SAAUihB,GACjD,GAAIA,GAAe1sD,KAAKqoE,cAAczsB,KAAM,CAC1C,IAAI+sD,EAAS3oG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAChDizG,EAAS5oG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAChDkzG,EAAS7oG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAChDmzG,EAASD,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACpDI,EAASF,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACpDK,EAASH,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACxD3oG,KAAKknG,QAAQ54D,aAAa,cAAew6D,GACzC9oG,KAAKmnG,QAAQ74D,aAAa,cAAey6D,GACzC/oG,KAAKonG,QAAQ94D,aAAa,cAAe06D,EAC3C,CACF,EA2CA3B,mBAAmBn2G,UAAUo2G,aAAe,SAAU9pF,EAAMypF,GAC1D,IAAIn8B,EAAS9uC,SAASxe,GAGtB,OAFAstD,EAAOx8B,aAAa,OAAQ,SAC5B24D,EAAoB7hE,YAAY0lC,GACzBA,CACT,EAEAu8B,mBAAmBn2G,UAAU+3G,cAAgB,SAAUC,EAAYC,EAAYC,EAAOC,EAAaC,GAcjG,IAbA,IAEIp2D,EAMAq2D,EARA/qD,EAAM,EAGNz9C,EAAM7O,KAAK6O,IAAImoG,EAAYC,GAC3BloG,EAAM/O,KAAK+O,IAAIioG,EAAYC,GAC3B1/E,EAAQ1zB,MAAM+B,KAAK,KAAM,CAC3B3H,OALa,MAQXg0B,EAAM,EACNqlF,EAAcF,EAAcD,EAC5BI,EAAaN,EAAaD,EAEvB1qD,GAAO,KAIV+qD,GAHFr2D,EAAOsL,EAAM,MAEDz9C,EACG0oG,EAAa,EAAIH,EAAcD,EACnCn2D,GAAQjyC,EACJwoG,EAAa,EAAIJ,EAAcC,EAE/BD,EAAcG,EAAct3G,KAAKmB,KAAK6/C,EAAOg2D,GAAcO,EAAY,EAAIL,GAG1F3/E,EAAMtF,GAAOolF,EACbplF,GAAO,EACPq6B,GAAO,IAAM,IAGf,OAAO/0B,EAAMnrB,KAAK,IACpB,EAEA+oG,mBAAmBn2G,UAAUu6C,YAAc,SAAUihB,GACnD,GAAIA,GAAe1sD,KAAKqoE,cAAczsB,KAAM,CAC1C,IAAIx8C,EACAggE,EAAiBp/D,KAAKqoE,cAAcjJ,eAEpCp/D,KAAKwnG,kBAAoB96C,GAAe0S,EAAe,GAAG1xD,EAAEkuC,MAAQwjB,EAAe,GAAG1xD,EAAEkuC,MAAQwjB,EAAe,GAAG1xD,EAAEkuC,MAAQwjB,EAAe,GAAG1xD,EAAEkuC,MAAQwjB,EAAe,GAAG1xD,EAAEkuC,QAC9Kx8C,EAAMY,KAAKipG,cAAc7pC,EAAe,GAAG1xD,EAAE/X,EAAGypE,EAAe,GAAG1xD,EAAE/X,EAAGypE,EAAe,GAAG1xD,EAAE/X,EAAGypE,EAAe,GAAG1xD,EAAE/X,EAAGypE,EAAe,GAAG1xD,EAAE/X,GACzIqK,KAAKwnG,gBAAgBl5D,aAAa,cAAelvC,GACjDY,KAAKynG,gBAAgBn5D,aAAa,cAAelvC,GACjDY,KAAK0nG,gBAAgBp5D,aAAa,cAAelvC,IAG/CY,KAAKknG,UAAYx6C,GAAe0S,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,QAC3Kx8C,EAAMY,KAAKipG,cAAc7pC,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,GAC9IqK,KAAKknG,QAAQ54D,aAAa,cAAelvC,IAGvCY,KAAKmnG,UAAYz6C,GAAe0S,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,QAC3Kx8C,EAAMY,KAAKipG,cAAc7pC,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,GAC9IqK,KAAKmnG,QAAQ74D,aAAa,cAAelvC,IAGvCY,KAAKonG,UAAY16C,GAAe0S,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,QAC3Kx8C,EAAMY,KAAKipG,cAAc7pC,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,GAC9IqK,KAAKonG,QAAQ94D,aAAa,cAAelvC,IAGvCY,KAAKunG,UAAY76C,GAAe0S,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,MAAQwjB,EAAe,IAAI1xD,EAAEkuC,QAC3Kx8C,EAAMY,KAAKipG,cAAc7pC,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,EAAGypE,EAAe,IAAI1xD,EAAE/X,GAC9IqK,KAAKunG,QAAQj5D,aAAa,cAAelvC,GAE7C,CACF,EAuCA41B,gBAAgB,CAACmxE,qBAAsBwB,qBAEvCA,oBAAoBz2G,UAAUu6C,YAAc,SAAUihB,GACpD,GAAIA,GAAe1sD,KAAKqoE,cAAczsB,KAAM,CAK1C,IAJI8Q,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,OACxD57C,KAAK6nG,eAAev5D,aAAa,eAAgBtuC,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,GAG1F+2D,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,KAAM,CAC9D,IAAI8tD,EAAM1pG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EACjDqK,KAAK+nG,QAAQz5D,aAAa,cAAelT,SAASlpC,KAAKuc,MAAe,IAATi7F,EAAI,IAAWx3G,KAAKuc,MAAe,IAATi7F,EAAI,IAAWx3G,KAAKuc,MAAe,IAATi7F,EAAI,KACvH,CAMA,IAJIh9C,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,OACxD57C,KAAK+nG,QAAQz5D,aAAa,gBAAiBtuC,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,KAGpF+2D,GAAe1sD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,MAAQ57C,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAEkuC,KAAM,CAC7G,IAAIya,EAAWr2D,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAClD+rD,GAAS1hD,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAI,IAAMmjC,UAC1D99B,EAAIq7D,EAAWnkE,KAAKob,IAAIo0C,GACxBp1C,EAAI+pD,EAAWnkE,KAAKub,IAAIi0C,GAC5B1hD,KAAK8nG,SAASx5D,aAAa,KAAMtzC,GACjCgF,KAAK8nG,SAASx5D,aAAa,KAAMhiC,EACnC,CACF,CACF,EAEA,IAAIq9F,iBAAmB,GAEvB,SAASC,gBAAgBC,EAAYxhC,EAAe3sD,GAClD1b,KAAK+mG,aAAc,EACnB/mG,KAAKqoE,cAAgBA,EACrBroE,KAAK6pG,WAAaA,EAClB7pG,KAAK0b,KAAOA,EACZA,EAAK4tD,aAAettC,SAAS,KAC7BtgB,EAAK4tD,aAAalkC,YAAY1pB,EAAKkmD,cACnClmD,EAAK4tD,aAAalkC,YAAY1pB,EAAK6tD,oBACnC7tD,EAAKimD,YAAcjmD,EAAK4tD,YAC1B,CAqGA,SAASwgC,sBAAsBx9E,EAAQ+7C,EAAe3sD,EAAM+P,GAE1Da,EAAOgiB,aAAa,IAAK,SACzBhiB,EAAOgiB,aAAa,IAAK,SACzBhiB,EAAOgiB,aAAa,QAAS,QAC7BhiB,EAAOgiB,aAAa,SAAU,QAC9BtuC,KAAKqoE,cAAgBA,EACrB,IAAIw/B,EAAiB7rE,SAAS,kBAC9B6rE,EAAev5D,aAAa,SAAU7iB,GACtCa,EAAO8Y,YAAYyiE,GACnB7nG,KAAK6nG,eAAiBA,CACxB,CA6BA,SAASkC,kBAAmB,CAwC5B,SAASC,mBAAmBl7F,EAAGu5D,GAC7BroE,KAAKwsC,KAAK67B,EACZ,CAIA,SAAS4hC,kBAAkBnoC,GACzB9hE,KAAKwsC,KAAKs1B,EACZ,CA+BA,OA1NA8nC,gBAAgB14G,UAAUg5G,WAAa,SAAU95F,GAI/C,IAHA,IAAI7a,EAAI,EACJqI,EAAM+rG,iBAAiBx5G,OAEpBoF,EAAIqI,GAAK,CACd,GAAI+rG,iBAAiBp0G,KAAO6a,EAC1B,OAAOu5F,iBAAiBp0G,GAG1BA,GAAK,CACP,CAEA,OAAO,IACT,EAEAq0G,gBAAgB14G,UAAUi5G,gBAAkB,SAAU/5F,EAAMg6F,GAC1D,IAAI/xC,EAAajoD,EAAKwxD,aAAavJ,WAEnC,GAAKA,EAAL,CAQA,IAJA,IAYIgyC,EAZA7b,EAAWn2B,EAAWm2B,SACtBj5F,EAAI,EACJqI,EAAM4wF,EAASr+F,OAEZoF,EAAIqI,GACL4wF,EAASj5F,KAAO6a,EAAKwxD,cAIzBrsE,GAAK,EAKHA,GAAKqI,EAAM,IACbysG,EAAY7b,EAASj5F,EAAI,IAG3B,IAAI+0G,EAAUtuE,SAAS,OACvBsuE,EAAQh8D,aAAa,OAAQ,IAAM87D,GAE/BC,EACFhyC,EAAW8nB,aAAamqB,EAASD,GAEjChyC,EAAWjzB,YAAYklE,EA1BzB,CA4BF,EAEAV,gBAAgB14G,UAAUq5G,iBAAmB,SAAU7uF,EAAMtL,GAC3D,IAAKpQ,KAAKkqG,WAAW95F,GAAO,CAC1B,IAAIg6F,EAAWzvE,kBACX8vC,EAASzuC,SAAS,QACtByuC,EAAOn8B,aAAa,KAAMl+B,EAAKyxD,SAC/B4I,EAAOn8B,aAAa,YAAa,SAEjCq7D,iBAAiBn0G,KAAK4a,GAEtB,IAAI84B,EAAOxtB,EAAKutB,WAAWC,KAC3BA,EAAK9D,YAAYqlC,GACjB,IAAI+/B,EAASxuE,SAAS,UACtBwuE,EAAOl8D,aAAa,KAAM87D,GAC1BpqG,KAAKmqG,gBAAgB/5F,EAAMg6F,GAC3BI,EAAOplE,YAAYh1B,EAAKwxD,cACxB14B,EAAK9D,YAAYolE,GACjB,IAAIF,EAAUtuE,SAAS,OACvBsuE,EAAQh8D,aAAa,OAAQ,IAAM87D,GACnC3/B,EAAOrlC,YAAYklE,GACnBl6F,EAAK8P,KAAK6pD,IAAK,EACf35D,EAAK28B,MACP,CAEArxB,EAAKsvD,SAAS56D,EAAKyxD,QACrB,EAEA+nC,gBAAgB14G,UAAUg1G,WAAa,WAMrC,IALA,IAAI9tD,EAAMp4C,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAC7C6+D,EAAWx0D,KAAK0b,KAAK4iB,KAAKk2B,SAC1Bj/D,EAAI,EACJqI,EAAM42D,EAASrkE,OAEZoF,EAAIqI,GACL42D,EAASj/D,IAAMi/D,EAASj/D,GAAG2qB,KAAKk4B,MAAQA,GAC1Cp4C,KAAKuqG,iBAAiBvqG,KAAK0b,KAAM84C,EAASj/D,IAG5CA,GAAK,EAGPyK,KAAK+mG,aAAc,CACrB,EAEA6C,gBAAgB14G,UAAUu6C,YAAc,WACjCzrC,KAAK+mG,aACR/mG,KAAKkmG,YAET,EAeA4D,sBAAsB54G,UAAUu6C,YAAc,SAAUihB,GACtD,GAAIA,GAAe1sD,KAAKqoE,cAAczsB,KAAM,CAE1C,IACI6uD,EADqB,GACbzqG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAO/C+0G,EAAa1qG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EACpDg1G,EAAuB,GAAdD,EAAkB,EAAID,EAE/BG,EAAuB,GAAdF,EAAkB,EAAID,EAEnCzqG,KAAK6nG,eAAev5D,aAAa,eAAgBq8D,EAAS,IAAMC,GAKhE,IAAIC,EAAuD,GAA5C7qG,KAAKqoE,cAAcjJ,eAAe,GAAG1xD,EAAE/X,EAAS,OAAS,YAExEqK,KAAK6nG,eAAev5D,aAAa,WAAYu8D,EAC/C,CACF,EAIAd,gBAAgB74G,UAAUs7C,KAAO,SAAUs1B,GACzC9hE,KAAK8hE,eAAiBA,EACtB9hE,KAAKwd,KAAO6mD,YAAYC,iBACxBtkE,KAAK2lD,OAAS,IAAIjD,OAClB1iD,KAAK2mE,SAAW,EAChB3mE,KAAK47C,MAAO,EACZ57C,KAAKimE,QAAS,CAChB,EAEA8jC,gBAAgB74G,UAAUu6C,YAAc,SAAUq/D,GAIhD,GAHA9qG,KAAKimE,QAAS,EACdjmE,KAAK47C,MAAO,EAERkvD,GAAc9qG,KAAK8hE,eAAelmB,KAAM,CAC1C,IAAIwjB,EAAiBp/D,KAAK8hE,eAAe1C,eACrCwkC,EAASxkC,EAAe,GAAG1xD,EAAE/X,EAC7B4O,EAAW66D,EAAe,GAAG1xD,EAAE/X,EAC/Bo1G,EAA2C,IAA1B3rC,EAAe,GAAG1xD,EAAE/X,EACrCq1G,EAAc5rC,EAAe,GAAG1xD,EAAE/X,EAClCs1G,EAAaF,EAAiBC,EAAc5rC,EAAe,GAAG1xD,EAAE/X,EAChE8tD,EAAO2b,EAAe,GAAG1xD,EAAE/X,EAC3BwrG,EAAW/hC,EAAe,GAAG1xD,EAAE/X,EAC/B0iG,EAAWj5B,EAAe,GAAG1xD,EAAE/X,EACnCqK,KAAK2lD,OAAOzF,QACZlgD,KAAK2lD,OAAO7B,WAAW8/C,EAAO,IAAKA,EAAO,GAAIA,EAAO,IACrD5jG,KAAK2lD,OAAOhC,MAAmB,IAAbsnD,EAAiC,IAAdD,EAAoB,GACzDhrG,KAAK2lD,OAAO3C,QAAQq1C,EAAWv/D,WAC/B94B,KAAK2lD,OAAOjC,cAAcD,EAAO3qB,WAAYqoE,EAAW,IAAMroE,WAC9D94B,KAAK2lD,OAAO7B,UAAUv/C,EAAS,GAAIA,EAAS,GAAI,GAChDvE,KAAK47C,MAAO,EAER57C,KAAK2mE,UAAYvH,EAAe,GAAG1xD,EAAE/X,IACvCqK,KAAK2mE,QAAUvH,EAAe,GAAG1xD,EAAE/X,EACnCqK,KAAKimE,QAAS,EAElB,CACF,EAMAjxC,gBAAgB,CAAC+0E,iBAAkBC,oBAMnCh1E,gBAAgB,CAAC+0E,iBAAkBE,mBAEnC3iE,iBAAiB,SAAUk9C,gBAC3Bl9C,iBAAiB,OAAQo/C,gBACzBp/C,iBAAiB,MAAO41C,aAExBj0B,eAAeE,iBAAiB,KAAMG,cACtCL,eAAeE,iBAAiB,KAAMI,wBACtCN,eAAeE,iBAAiB,KAAM+D,kBACtCjE,eAAeE,iBAAiB,KAAMgE,sBACtClE,eAAeE,iBAAiB,KAAM0G,gBACtC5G,eAAeE,iBAAiB,KAAM8J,oBAEtCz3B,qBAAqBggE,aACrB9/D,wBAAwB4mE,cACxBsD,eACAM,aAEAv9B,iBAAiB,GAAI+9B,eAAe,GACpC/9B,iBAAiB,GAAIk+B,eAAe,GACpCl+B,iBAAiB,GAAIm+B,iBAAiB,GACtCn+B,iBAAiB,GAAIq+B,kBAAkB,GACvCr+B,iBAAiB,GAAI0+B,oBAAoB,GACzC1+B,iBAAiB,GAAIg/B,qBAAqB,GAC1Ch/B,iBAAiB,GAAIihC,iBAAiB,GACtCjhC,iBAAiB,GAAImhC,uBAAuB,GAC5CnhC,iBAAiB,GAAIqhC,oBAAoB,GACzCxoB,eAAe,GAAIyoB,mBAEZziD,MAET,EA1rnBiE5sD,OAAOF,QAAU05B,2BCDlF,MASI82E,EAAY,WAGhB,IAAIzgF,EAAIrwB,OAAOkpB,aACX6nF,EAAe,oEACfC,EAAgB,oEAChBC,EAAiB,CAAC,EAEtB,SAASC,EAAa9hF,EAAU+hF,GAC9B,IAAKF,EAAe7hF,GAAW,CAC7B6hF,EAAe7hF,GAAY,CAAC,EAC5B,IAAK,IAAIj0B,EAAE,EAAIA,EAAEi0B,EAASr5B,OAASoF,IACjC81G,EAAe7hF,GAAUA,EAASvuB,OAAO1F,IAAMA,CAEnD,CACA,OAAO81G,EAAe7hF,GAAU+hF,EAClC,CAEA,IAAIL,EAAW,CACbM,iBAAmB,SAAUz0F,GAC3B,GAAa,MAATA,EAAe,MAAO,GAC1B,IAAI3S,EAAM8mG,EAASO,UAAU10F,EAAO,GAAG,SAASlT,GAAG,OAAOsnG,EAAalwG,OAAO4I,EAAG,IACjF,OAAQO,EAAIjU,OAAS,GACrB,QACA,KAAK,EAAI,OAAOiU,EAChB,KAAK,EAAI,OAAOA,EAAI,MACpB,KAAK,EAAI,OAAOA,EAAI,KACpB,KAAK,EAAI,OAAOA,EAAI,IAEtB,EAEAsnG,qBAAuB,SAAU30F,GAC/B,OAAa,MAATA,EAAsB,GACb,IAATA,EAAoB,KACjBm0F,EAASS,YAAY50F,EAAM5mB,OAAQ,IAAI,SAASqQ,GAAS,OAAO8qG,EAAaH,EAAcp0F,EAAM9b,OAAOuF,GAAS,GAC1H,EAEAorG,gBAAkB,SAAU70F,GAC1B,OAAa,MAATA,EAAsB,GACnBm0F,EAASO,UAAU10F,EAAO,IAAI,SAASlT,GAAG,OAAO4mB,EAAE5mB,EAAE,GAAI,IAAK,GACvE,EAEAgoG,oBAAqB,SAAUC,GAC7B,OAAkB,MAAdA,EAA2B,GACb,IAAdA,EAAyB,KACtBZ,EAASS,YAAYG,EAAW37G,OAAQ,OAAO,SAASqQ,GAAS,OAAOsrG,EAAW3wG,WAAWqF,GAAS,EAAI,GACpH,EAGAurG,qBAAsB,SAAUC,GAI9B,IAHA,IAAIF,EAAaZ,EAASe,SAASD,GAC/BptG,EAAI,IAAIhP,WAA6B,EAAlBk8G,EAAW37G,QAEzBoF,EAAE,EAAG22G,EAASJ,EAAW37G,OAAQoF,EAAE22G,EAAU32G,IAAK,CACzD,IAAI42G,EAAgBL,EAAW3wG,WAAW5F,GAC1CqJ,EAAM,EAAFrJ,GAAO42G,IAAkB,EAC7BvtG,EAAM,EAAFrJ,EAAI,GAAK42G,EAAgB,GAC/B,CACA,OAAOvtG,CACT,EAGAwtG,yBAAyB,SAAUN,GACjC,GAAiB,OAAbA,QAAkC/5G,IAAb+5G,EACrB,OAAOZ,EAASmB,WAAWP,GAG3B,IADA,IAAIltG,EAAI,IAAI7I,MAAM+1G,EAAW37G,OAAO,GAC3BoF,EAAE,EAAG22G,EAASttG,EAAIzO,OAAQoF,EAAE22G,EAAU32G,IAC7CqJ,EAAIrJ,GAAmB,IAAhBu2G,EAAa,EAAFv2G,GAASu2G,EAAa,EAAFv2G,EAAI,GAG5C,IAAIwjB,EAAS,GAIb,OAHAna,EAAI6e,SAAQ,SAAUhd,GACpBsY,EAAOvjB,KAAKi1B,EAAEhqB,GAChB,IACOyqG,EAASmB,WAAWtzF,EAAOza,KAAK,IAI7C,EAIAguG,8BAA+B,SAAUv1F,GACvC,OAAa,MAATA,EAAsB,GACnBm0F,EAASO,UAAU10F,EAAO,GAAG,SAASlT,GAAG,OAAOunG,EAAcnwG,OAAO4I,EAAG,GACjF,EAGA0oG,kCAAkC,SAAUx1F,GAC1C,OAAa,MAATA,EAAsB,GACb,IAATA,EAAoB,MACxBA,EAAQA,EAAMxV,QAAQ,KAAM,KACrB2pG,EAASS,YAAY50F,EAAM5mB,OAAQ,IAAI,SAASqQ,GAAS,OAAO8qG,EAAaF,EAAer0F,EAAM9b,OAAOuF,GAAS,IAC3H,EAEAyrG,SAAU,SAAUD,GAClB,OAAOd,EAASO,UAAUO,EAAc,IAAI,SAASnoG,GAAG,OAAO4mB,EAAE5mB,EAAG,GACtE,EACA4nG,UAAW,SAAUO,EAAcQ,EAAaC,GAC9C,GAAoB,MAAhBT,EAAsB,MAAO,GACjC,IAAIz2G,EAAGqD,EAYH8zG,EAXAC,EAAoB,CAAC,EACrBC,EAA4B,CAAC,EAC7BC,EAAU,GACVC,EAAW,GACXC,EAAU,GACVC,EAAmB,EACnBC,EAAkB,EAClBC,EAAiB,EACjBC,EAAa,GACbC,EAAiB,EACjBC,EAAsB,EAG1B,IAAKX,EAAK,EAAGA,EAAKV,EAAa77G,OAAQu8G,GAAM,EAQ3C,GAPAG,EAAYb,EAAa/wG,OAAOyxG,GAC3B17G,OAAOE,UAAU2G,eAAeC,KAAK60G,EAAmBE,KAC3DF,EAAmBE,GAAaI,IAChCL,EAA2BC,IAAa,GAG1CC,EAAaC,EAAYF,EACrB77G,OAAOE,UAAU2G,eAAeC,KAAK60G,EAAmBG,GAC1DC,EAAYD,MACP,CACL,GAAI97G,OAAOE,UAAU2G,eAAeC,KAAK80G,EAA2BG,GAAY,CAC9E,GAAIA,EAAU5xG,WAAW,GAAG,IAAK,CAC/B,IAAK5F,EAAE,EAAIA,EAAE23G,EAAkB33G,IAC7B63G,IAAwC,EACpCC,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAIJ,IADAz0G,EAAQm0G,EAAU5xG,WAAW,GACxB5F,EAAE,EAAIA,EAAE,EAAIA,IACf63G,EAAoBA,GAAoB,EAAY,EAANx0G,EAC1Cy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,IAAiB,CAErB,KAAO,CAEL,IADAA,EAAQ,EACHrD,EAAE,EAAIA,EAAE23G,EAAkB33G,IAC7B63G,EAAoBA,GAAoB,EAAKx0G,EACzCy0G,GAAwBb,EAAY,GACtCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,EAAQ,EAGV,IADAA,EAAQm0G,EAAU5xG,WAAW,GACxB5F,EAAE,EAAIA,EAAE,GAAKA,IAChB63G,EAAoBA,GAAoB,EAAY,EAANx0G,EAC1Cy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,IAAiB,CAErB,CAEyB,KADzBo0G,IAEEA,EAAoB96G,KAAKmB,IAAI,EAAG65G,GAChCA,YAEKN,EAA2BG,EACpC,MAEE,IADAn0G,EAAQ+zG,EAAmBI,GACtBx3G,EAAE,EAAIA,EAAE23G,EAAkB33G,IAC7B63G,EAAoBA,GAAoB,EAAY,EAANx0G,EAC1Cy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,IAAiB,EAMI,KADzBo0G,IAEEA,EAAoB96G,KAAKmB,IAAI,EAAG65G,GAChCA,KAGFP,EAAmBG,GAAcG,IACjCF,EAAY3yG,OAAOyyG,EACrB,CAIF,GAAkB,KAAdE,EAAkB,CACpB,GAAI/7G,OAAOE,UAAU2G,eAAeC,KAAK80G,EAA2BG,GAAY,CAC9E,GAAIA,EAAU5xG,WAAW,GAAG,IAAK,CAC/B,IAAK5F,EAAE,EAAIA,EAAE23G,EAAkB33G,IAC7B63G,IAAwC,EACpCC,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAIJ,IADAz0G,EAAQm0G,EAAU5xG,WAAW,GACxB5F,EAAE,EAAIA,EAAE,EAAIA,IACf63G,EAAoBA,GAAoB,EAAY,EAANx0G,EAC1Cy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,IAAiB,CAErB,KAAO,CAEL,IADAA,EAAQ,EACHrD,EAAE,EAAIA,EAAE23G,EAAkB33G,IAC7B63G,EAAoBA,GAAoB,EAAKx0G,EACzCy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,EAAQ,EAGV,IADAA,EAAQm0G,EAAU5xG,WAAW,GACxB5F,EAAE,EAAIA,EAAE,GAAKA,IAChB63G,EAAoBA,GAAoB,EAAY,EAANx0G,EAC1Cy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,IAAiB,CAErB,CAEyB,KADzBo0G,IAEEA,EAAoB96G,KAAKmB,IAAI,EAAG65G,GAChCA,YAEKN,EAA2BG,EACpC,MAEE,IADAn0G,EAAQ+zG,EAAmBI,GACtBx3G,EAAE,EAAIA,EAAE23G,EAAkB33G,IAC7B63G,EAAoBA,GAAoB,EAAY,EAANx0G,EAC1Cy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,IAAiB,EAMI,KADzBo0G,IAEEA,EAAoB96G,KAAKmB,IAAI,EAAG65G,GAChCA,IAEJ,CAIA,IADAt0G,EAAQ,EACHrD,EAAE,EAAIA,EAAE23G,EAAkB33G,IAC7B63G,EAAoBA,GAAoB,EAAY,EAANx0G,EAC1Cy0G,GAAyBb,EAAY,GACvCa,EAAwB,EACxBF,EAAa33G,KAAKi3G,EAAeW,IACjCA,EAAmB,GAEnBC,IAEFz0G,IAAiB,EAInB,OAAa,CAEX,GADAw0G,IAAwC,EACpCC,GAAyBb,EAAY,EAAG,CAC1CW,EAAa33G,KAAKi3G,EAAeW,IACjC,KACF,CACKC,GACP,CACA,OAAOF,EAAa7uG,KAAK,GAC3B,EAEA+tG,WAAY,SAAUP,GACpB,OAAkB,MAAdA,EAA2B,GACb,IAAdA,EAAyB,KACtBZ,EAASS,YAAYG,EAAW37G,OAAQ,OAAO,SAASqQ,GAAS,OAAOsrG,EAAW3wG,WAAWqF,EAAQ,GAC/G,EAEAmrG,YAAa,SAAUx7G,EAAQm9G,EAAYC,GACzC,IAOIh4G,EACAqM,EACA5I,EAAMw0G,EAAMC,EAAUC,EACtBjtG,EAVAktG,EAAa,GAEbC,EAAY,EACZC,EAAW,EACXC,EAAU,EACVC,EAAQ,GACRh1F,EAAS,GAKTmH,EAAO,CAAC9gB,IAAImuG,EAAa,GAAIhpG,SAAS+oG,EAAY9sG,MAAM,GAE5D,IAAKjL,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBo4G,EAAWp4G,GAAKA,EAMlB,IAHAyD,EAAO,EACPy0G,EAAWv7G,KAAKmB,IAAI,EAAE,GACtBq6G,EAAM,EACCA,GAAOD,GACZD,EAAOttF,EAAK9gB,IAAM8gB,EAAK3b,SACvB2b,EAAK3b,WAAa,EACG,GAAjB2b,EAAK3b,WACP2b,EAAK3b,SAAW+oG,EAChBptF,EAAK9gB,IAAMmuG,EAAartF,EAAK1f,UAE/BxH,IAASw0G,EAAK,EAAI,EAAI,GAAKE,EAC3BA,IAAU,EAGZ,OAAe10G,GACb,KAAK,EAID,IAHAA,EAAO,EACPy0G,EAAWv7G,KAAKmB,IAAI,EAAE,GACtBq6G,EAAM,EACCA,GAAOD,GACZD,EAAOttF,EAAK9gB,IAAM8gB,EAAK3b,SACvB2b,EAAK3b,WAAa,EACG,GAAjB2b,EAAK3b,WACP2b,EAAK3b,SAAW+oG,EAChBptF,EAAK9gB,IAAMmuG,EAAartF,EAAK1f,UAE/BxH,IAASw0G,EAAK,EAAI,EAAI,GAAKE,EAC3BA,IAAU,EAEdjtG,EAAIgqB,EAAEzxB,GACN,MACF,KAAK,EAID,IAHAA,EAAO,EACPy0G,EAAWv7G,KAAKmB,IAAI,EAAE,IACtBq6G,EAAM,EACCA,GAAOD,GACZD,EAAOttF,EAAK9gB,IAAM8gB,EAAK3b,SACvB2b,EAAK3b,WAAa,EACG,GAAjB2b,EAAK3b,WACP2b,EAAK3b,SAAW+oG,EAChBptF,EAAK9gB,IAAMmuG,EAAartF,EAAK1f,UAE/BxH,IAASw0G,EAAK,EAAI,EAAI,GAAKE,EAC3BA,IAAU,EAEdjtG,EAAIgqB,EAAEzxB,GACN,MACF,KAAK,EACH,MAAO,GAKX,IAHA20G,EAAW,GAAKltG,EAChBmB,EAAInB,EACJsY,EAAOvjB,KAAKiL,KACC,CACX,GAAIyf,EAAK1f,MAAQrQ,EACf,MAAO,GAMT,IAHA6I,EAAO,EACPy0G,EAAWv7G,KAAKmB,IAAI,EAAEy6G,GACtBJ,EAAM,EACCA,GAAOD,GACZD,EAAOttF,EAAK9gB,IAAM8gB,EAAK3b,SACvB2b,EAAK3b,WAAa,EACG,GAAjB2b,EAAK3b,WACP2b,EAAK3b,SAAW+oG,EAChBptF,EAAK9gB,IAAMmuG,EAAartF,EAAK1f,UAE/BxH,IAASw0G,EAAK,EAAI,EAAI,GAAKE,EAC3BA,IAAU,EAGZ,OAAQjtG,EAAIzH,GACV,KAAK,EAIH,IAHAA,EAAO,EACPy0G,EAAWv7G,KAAKmB,IAAI,EAAE,GACtBq6G,EAAM,EACCA,GAAOD,GACZD,EAAOttF,EAAK9gB,IAAM8gB,EAAK3b,SACvB2b,EAAK3b,WAAa,EACG,GAAjB2b,EAAK3b,WACP2b,EAAK3b,SAAW+oG,EAChBptF,EAAK9gB,IAAMmuG,EAAartF,EAAK1f,UAE/BxH,IAASw0G,EAAK,EAAI,EAAI,GAAKE,EAC3BA,IAAU,EAGZC,EAAWE,KAAcpjF,EAAEzxB,GAC3ByH,EAAIotG,EAAS,EACbD,IACA,MACF,KAAK,EAIH,IAHA50G,EAAO,EACPy0G,EAAWv7G,KAAKmB,IAAI,EAAE,IACtBq6G,EAAM,EACCA,GAAOD,GACZD,EAAOttF,EAAK9gB,IAAM8gB,EAAK3b,SACvB2b,EAAK3b,WAAa,EACG,GAAjB2b,EAAK3b,WACP2b,EAAK3b,SAAW+oG,EAChBptF,EAAK9gB,IAAMmuG,EAAartF,EAAK1f,UAE/BxH,IAASw0G,EAAK,EAAI,EAAI,GAAKE,EAC3BA,IAAU,EAEZC,EAAWE,KAAcpjF,EAAEzxB,GAC3ByH,EAAIotG,EAAS,EACbD,IACA,MACF,KAAK,EACH,OAAO70F,EAAOza,KAAK,IAQvB,GALiB,GAAbsvG,IACFA,EAAY17G,KAAKmB,IAAI,EAAGy6G,GACxBA,KAGEH,EAAWltG,GACbstG,EAAQJ,EAAWltG,OACd,CACL,GAAIA,IAAMotG,EAGR,OAAO,KAFPE,EAAQnsG,EAAIA,EAAE3G,OAAO,EAIzB,CACA8d,EAAOvjB,KAAKu4G,GAGZJ,EAAWE,KAAcjsG,EAAImsG,EAAM9yG,OAAO,GAG1C2G,EAAImsG,EAEa,KAJjBH,IAKEA,EAAY17G,KAAKmB,IAAI,EAAGy6G,GACxBA,IAGJ,CACF,GAEA,OAAO5C,CACT,CAregB,QAweyB,KAAvCliD,EAAAA,WAAqB,OAAOkiD,CAAW,6DCxezC,IAAI8C,EAAuBv+G,EAAQ,MAEnC,SAASw+G,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3CrzG,EAAOF,QAAU,WACf,SAAS0zG,EAAK3hF,EAAO4hF,EAAUC,EAAepsE,EAAUqsE,EAAcC,GACpE,GAAIA,IAAWR,EAAf,CAIA,IAAIniF,EAAM,IAAIl6B,MACZ,mLAKF,MADAk6B,EAAIt6B,KAAO,sBACLs6B,CAPN,CAQF,CAEA,SAAS4iF,IACP,OAAOL,CACT,CAHAA,EAAKM,WAAaN,EAMlB,IAAIO,EAAiB,CACnBpzF,MAAO6yF,EACPQ,OAAQR,EACRS,KAAMT,EACNU,KAAMV,EACNxuG,OAAQwuG,EACR94E,OAAQ84E,EACRtxG,OAAQsxG,EACR5D,OAAQ4D,EAERW,IAAKX,EACLY,QAASP,EACTt1E,QAASi1E,EACTa,YAAab,EACbc,WAAYT,EACZl2C,KAAM61C,EACNe,SAAUV,EACVW,MAAOX,EACPY,UAAWZ,EACX9vD,MAAO8vD,EACPa,MAAOb,EAEPc,eAAgBrB,EAChBC,kBAAmBF,GAKrB,OAFAU,EAAea,UAAYb,EAEpBA,CACT,kBC/CE/zG,EAAOF,QAAUjL,EAAQ,KAARA,0BCNnBmL,EAAOF,QAFoB,yDCAxBkJ,KAPDhJ,EAAOF,QAQF,yBCVP,IAAAkG,EAAAuN,EAiBIlH,EAAS,WAWX,IAAItC,EAAS,SAASA,EAAYxO,GAEhC,IAGIyK,EAAc+D,EACdwJ,EAAwBtK,EAAuB1N,GAC/C8Q,EAAW,KACX1R,EAAe,EACfsiB,EAAa,KACbliB,EAAY,GAEZiM,EAAQ,CAAC,EAETwM,EAAW,SAASzJ,EAAMxO,GAG5B8Q,EAAW,SAAStC,GAElB,IADA,IAAIxO,EAAU,IAAIJ,MAAM4O,GACf/D,EAAM,EAAGA,EAAM+D,EAAa/D,GAAO,EAAG,CAC7CzK,EAAQyK,GAAO,IAAI7K,MAAM4O,GACzB,IAAK,IAAIwJ,EAAM,EAAGA,EAAMxJ,EAAawJ,GAAO,EAC1ChY,EAAQyK,GAAKuN,GAAO,KAGxB,OAAOhY,CAAA,CARE,CADXZ,EAA6B,EAAdqL,EAAkB,IAYjCjR,EAA0B,EAAG,GAC7BA,EAA0B4F,EAAe,EAAG,GAC5C5F,EAA0B,EAAG4F,EAAe,GAC5CyF,IACA8T,IACA2gG,EAAc9qG,EAAMxO,GAEhByK,GAAe,GACjBwxF,EAAgBztF,GAGA,MAAdkT,IACFA,EAAa1F,EAAWvR,EAAauN,EAAuBxY,IAG9D0c,EAAQwF,EAAY1hB,EAAA,EAGlBxG,EAA4B,SAASgV,EAAKxO,GAE5C,IAAK,IAAIyK,GAAK,EAAGA,GAAK,EAAGA,GAAK,EAE5B,KAAI+D,EAAM/D,IAAM,GAAKrL,GAAgBoP,EAAM/D,GAE3C,IAAK,IAAIuN,GAAK,EAAGA,GAAK,EAAGA,GAAK,EAExBhY,EAAMgY,IAAM,GAAK5Y,GAAgBY,EAAMgY,IAKzClH,EAAStC,EAAM/D,GAAGzK,EAAMgY,GAHpB,GAAKvN,GAAKA,GAAK,IAAW,GAALuN,GAAe,GAALA,IAC7B,GAAKA,GAAKA,GAAK,IAAW,GAALvN,GAAe,GAALA,IAC/B,GAAKA,GAAKA,GAAK,GAAK,GAAKuN,GAAKA,GAAK,IA6B7CW,EAAqB,WAEvB,IAAK,IAAInK,EAAI,EAAGA,EAAIpP,EAAe,EAAGoP,GAAK,EACnB,MAAlBsC,EAAStC,GAAG,KAGhBsC,EAAStC,GAAG,GAAMA,EAAI,GAAK,GAG7B,IAAK,IAAIxO,EAAI,EAAGA,EAAIZ,EAAe,EAAGY,GAAK,EACnB,MAAlB8Q,EAAS,GAAG9Q,KAGhB8Q,EAAS,GAAG9Q,GAAMA,EAAI,GAAK,IAI3B6E,EAA6B,WAI/B,IAFA,IAAI2J,EAAMyI,EAAOsiG,mBAAmB9uG,GAE3BzK,EAAI,EAAGA,EAAIwO,EAAIxU,OAAQgG,GAAK,EAEnC,IAAK,IAAIgY,EAAI,EAAGA,EAAIxJ,EAAIxU,OAAQge,GAAK,EAAG,CAEtC,IAAI5Y,EAAMoP,EAAIxO,GACV0N,EAAMc,EAAIwJ,GAEd,GAA0B,MAAtBlH,EAAS1R,GAAKsO,GAIlB,IAAK,IAAIgU,GAAK,EAAGA,GAAK,EAAGA,GAAK,EAE5B,IAAK,IAAI1H,GAAK,EAAGA,GAAK,EAAGA,GAAK,EAI1BlJ,EAAS1R,EAAMsiB,GAAGhU,EAAMsM,IAFhB,GAAN0H,GAAgB,GAALA,IAAgB,GAAN1H,GAAgB,GAALA,GACvB,GAAL0H,GAAe,GAAL1H,CAAA,GAWxBiiF,EAAkB,SAASztF,GAI7B,IAFA,IAAIxO,EAAOiX,EAAOuiG,iBAAiB/uG,GAE1BuN,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,IAAItK,GAAQc,GAA8B,IAAnBxO,GAAQgY,EAAK,GACpClH,EAAS/U,KAAKC,MAAMgc,EAAI,IAAIA,EAAI,EAAI5Y,EAAe,EAAI,GAAKsO,CAAA,CAG9D,IAASsK,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBtK,GAAQc,GAA8B,IAAnBxO,GAAQgY,EAAK,GACpClH,EAASkH,EAAI,EAAI5Y,EAAe,EAAI,GAAGrD,KAAKC,MAAMgc,EAAI,IAAMtK,CAAA,EAI5D4rG,EAAgB,SAAS9qG,EAAMxO,GAMjC,IAJA,IAAIyK,EAAQuN,GAAyB,EAAKhY,EACtC0N,EAAOuJ,EAAOwiG,eAAehvG,GAGxBiX,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAE9B,IAAI1H,GAAQxL,GAA8B,IAAnBd,GAAQgU,EAAK,GAEhCA,EAAI,EACN5Q,EAAS4Q,GAAG,GAAK1H,EACR0H,EAAI,EACb5Q,EAAS4Q,EAAI,GAAG,GAAK1H,EAErBlJ,EAAS1R,EAAe,GAAKsiB,GAAG,GAAK1H,CAAA,CAKzC,IAAS0H,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAEvB1H,GAAQxL,GAA8B,IAAnBd,GAAQgU,EAAK,GAEhCA,EAAI,EACN5Q,EAAS,GAAG1R,EAAesiB,EAAI,GAAK1H,EAC3B0H,EAAI,EACb5Q,EAAS,GAAG,GAAK4Q,EAAI,EAAI,GAAK1H,EAE9BlJ,EAAS,GAAG,GAAK4Q,EAAI,GAAK1H,EAK9BlJ,EAAS1R,EAAe,GAAG,IAAOoP,CAAA,EAGhC0N,EAAU,SAAS1N,EAAMxO,GAQ3B,IANA,IAAIyK,GAAO,EACPuN,EAAM5Y,EAAe,EACrBsO,EAAW,EACXgU,EAAY,EACZ1H,EAAW/C,EAAOyiG,gBAAgB15G,GAE7BsK,EAAMlL,EAAe,EAAGkL,EAAM,EAAGA,GAAO,EAI/C,IAFW,GAAPA,IAAUA,GAAO,KAER,CAEX,IAAK,IAAIiM,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAE1B,GAA8B,MAA1BzF,EAASkH,GAAK1N,EAAMiM,GAAY,CAElC,IAAI+L,GAAA,EAEAZ,EAAYlT,EAAKxU,SACnBsoB,EAAkD,IAAtC9T,EAAKkT,KAAehU,EAAY,IAGnCsM,EAAShC,EAAK1N,EAAMiM,KAG7B+L,GAAQA,GAGVxR,EAASkH,GAAK1N,EAAMiM,GAAK+L,GAGR,IAFjB5U,GAAY,KAGVgU,GAAa,EACbhU,EAAW,GAOjB,IAFAsK,GAAOvN,GAEG,GAAKrL,GAAgB4Y,EAAK,CAClCA,GAAOvN,EACPA,GAAOA,EACP,SAuEJuR,EAAa,SAASxN,EAAYxO,EAAsByK,GAM1D,IAJA,IAAIuN,EAAW1N,EAAUqvG,YAAYnrG,EAAYxO,GAE7C8Q,EAASyF,IAEJnX,EAAI,EAAGA,EAAIqL,EAASzQ,OAAQoF,GAAK,EAAG,CAC3C,IAAIsO,EAAOjD,EAASrL,GACpB0R,EAAO8oG,IAAIlsG,EAAKmsG,UAAW,GAC3B/oG,EAAO8oG,IAAIlsG,EAAKosG,YAAa7iG,EAAO8iG,gBAAgBrsG,EAAKmsG,UAAWrrG,IACpEd,EAAK5J,MAAMgN,EAAA,CAIb,IAAI4Q,EAAiB,EACrB,IAAStiB,EAAI,EAAGA,EAAI4Y,EAAShe,OAAQoF,GAAK,EACxCsiB,GAAkB1J,EAAS5Y,GAAG46G,UAGhC,GAAIlpG,EAAOipG,kBAAqC,EAAjBr4F,EAC7B,KAAM,0BACF5Q,EAAOipG,kBACP,IACiB,EAAjBr4F,EACA,IASN,IALI5Q,EAAOipG,kBAAoB,GAAsB,EAAjBr4F,GAClC5Q,EAAO8oG,IAAI,EAAG,GAIT9oG,EAAOipG,kBAAoB,GAAK,GACrCjpG,EAAOmpG,QAAA,GAIT,OAEMnpG,EAAOipG,mBAAsC,EAAjBr4F,IAGhC5Q,EAAO8oG,IAxVA,IAwVU,GAEb9oG,EAAOipG,mBAAsC,EAAjBr4F,KAGhC5Q,EAAO8oG,IA5VA,GA4VU,GAGnB,OApHgB,SAASprG,EAAQxO,GAUjC,IARA,IAAIyK,EAAS,EAETuN,EAAa,EACblH,EAAa,EAEb1R,EAAS,IAAIQ,MAAMI,EAAShG,QAC5B0T,EAAS,IAAI9N,MAAMI,EAAShG,QAEvB0nB,EAAI,EAAGA,EAAI1hB,EAAShG,OAAQ0nB,GAAK,EAAG,CAE3C,IAAIpX,EAAUtK,EAAS0hB,GAAGs4F,UACtBzjG,EAAUvW,EAAS0hB,GAAGw4F,WAAa5vG,EAEvC0N,EAAajc,KAAK+O,IAAIkN,EAAY1N,GAClCwG,EAAa/U,KAAK+O,IAAIgG,EAAYyF,GAElCnX,EAAOsiB,GAAK,IAAI9hB,MAAM0K,GAEtB,IAAK,IAAIgY,EAAI,EAAGA,EAAIljB,EAAOsiB,GAAG1nB,OAAQsoB,GAAK,EACzCljB,EAAOsiB,GAAGY,GAAK,IAAO9T,EAAO2rG,YAAY73F,EAAI7X,GAE/CA,GAAUH,EAEV,IAAIgqB,EAASrd,EAAOmjG,0BAA0B7jG,GAG1C6F,EAFUpC,EAAa5a,EAAOsiB,GAAI4S,EAAOwlF,YAAc,GAErC/tG,IAAIuoB,GAE1B,IADA5mB,EAAOgU,GAAK,IAAI9hB,MAAM00B,EAAOwlF,YAAc,GAClCx3F,EAAI,EAAGA,EAAI5U,EAAOgU,GAAG1nB,OAAQsoB,GAAK,EAAG,CAC5C,IAAI/K,EAAW+K,EAAIlG,EAAQ09F,YAAcpsG,EAAOgU,GAAG1nB,OACnD0T,EAAOgU,GAAGY,GAAM/K,GAAY,EAAI6E,EAAQi+F,MAAM9iG,GAAY,GAI9D,IAAI/X,EAAiB,EACrB,IAAS8iB,EAAI,EAAGA,EAAItiB,EAAShG,OAAQsoB,GAAK,EACxC9iB,GAAkBQ,EAASsiB,GAAG43F,WAGhC,IAAIzuG,EAAO,IAAI7L,MAAMJ,GACjB2W,EAAQ,EAEZ,IAASmM,EAAI,EAAGA,EAAItK,EAAYsK,GAAK,EACnC,IAASZ,EAAI,EAAGA,EAAI1hB,EAAShG,OAAQ0nB,GAAK,EACpCY,EAAIljB,EAAOsiB,GAAG1nB,SAChByR,EAAK0K,GAAS/W,EAAOsiB,GAAGY,GACxBnM,GAAS,GAKf,IAASmM,EAAI,EAAGA,EAAIxR,EAAYwR,GAAK,EACnC,IAASZ,EAAI,EAAGA,EAAI1hB,EAAShG,OAAQ0nB,GAAK,EACpCY,EAAI5U,EAAOgU,GAAG1nB,SAChByR,EAAK0K,GAASzI,EAAOgU,GAAGY,GACxBnM,GAAS,GAKf,OAAO1K,CAAA,CA9DS,CAoHGqF,EAAQkH,EAAA,EAG7BvM,EAAM6uG,QAAU,SAAS9rG,EAAMxO,GAI7B,IAAIyK,EAAU,KAEd,OAJAzK,EAAOA,GAAQ,QAKf,IAAK,UACHyK,EAAU6X,EAAS9T,GACnB,MACF,IAAK,eACH/D,EAAU6pB,EAAW9lB,GACrB,MACF,IAAK,OACH/D,EAAU2R,EAAW5N,GACrB,MACF,IAAK,QACH/D,EAAU8M,EAAQ/I,GAClB,MACF,QACE,KAAM,QAAUxO,EAGlBR,EAAUH,KAAKoL,GACfiX,EAAa,MAGfjW,EAAM8uG,OAAS,SAAS/rG,EAAKxO,GAC3B,GAAIwO,EAAM,GAAKpP,GAAgBoP,GAAOxO,EAAM,GAAKZ,GAAgBY,EAC/D,MAAMwO,EAAM,IAAMxO,EAEpB,OAAO8Q,EAAStC,GAAKxO,EAAA,EAGvByL,EAAM+uG,eAAiB,WACrB,OAAOp7G,CAAA,EAGTqM,EAAMgvG,KAAO,WACX,GAAIhwG,EAAc,EAAG,CAGnB,IAFA,IAAI+D,EAAa,EAEVA,EAAa,GAAIA,IAAc,CAIpC,IAHA,IAAIxO,EAAWsK,EAAUqvG,YAAYnrG,EAAYwJ,GAC7ClH,EAASyF,IAEJnX,EAAI,EAAGA,EAAII,EAAUxF,OAAQoF,IAAK,CACzC,IAAIsO,EAAOlO,EAAUJ,GACrB0R,EAAO8oG,IAAIlsG,EAAKmsG,UAAW,GAC3B/oG,EAAO8oG,IAAIlsG,EAAKosG,YAAa7iG,EAAO8iG,gBAAgBrsG,EAAKmsG,UAAWrrG,IACpEd,EAAK5J,MAAMgN,EAAA,CAGb,IAAI4Q,EAAiB,EACrB,IAAStiB,EAAI,EAAGA,EAAIY,EAAShG,OAAQoF,IACnCsiB,GAAkB1hB,EAASZ,GAAG46G,UAGhC,GAAIlpG,EAAOipG,mBAAsC,EAAjBr4F,EAC9B,MAIJjX,EAAc+D,CAAA,CAGhByJ,GAAA,EApWuB,WAKvB,IAHA,IAAIzJ,EAAe,EACfxO,EAAU,EAELyK,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAE7BwN,GAAA,EAAexN,GAEf,IAAIuN,EAAYf,EAAOyjG,aAAajvG,IAE3B,GAALhB,GAAU+D,EAAewJ,KAC3BxJ,EAAewJ,EACfhY,EAAUyK,EAAA,CAId,OAAOzK,CAAA,CAjBgB,GAoWP,EAGlByL,EAAMkvG,eAAiB,SAASnsG,EAAUxO,GAExCwO,EAAWA,GAAY,EAGvB,IAAI/D,EAAS,GAEbA,GAAU,iBACVA,GAAU,0CACVA,GAAU,8BACVA,GAAU,2BAPVzK,OAAA,IAAiBA,EAAmC,EAAXwO,EAAexO,GAOT,MAC/CyK,GAAU,KACVA,GAAU,UAEV,IAAK,IAAIuN,EAAI,EAAGA,EAAIvM,EAAM+uG,iBAAkBxiG,GAAK,EAAG,CAElDvN,GAAU,OAEV,IAAK,IAAIqG,EAAI,EAAGA,EAAIrF,EAAM+uG,iBAAkB1pG,GAAK,EAC/CrG,GAAU,cACVA,GAAU,0CACVA,GAAU,8BACVA,GAAU,8BACVA,GAAU,WAAa+D,EAAW,MAClC/D,GAAU,YAAc+D,EAAW,MACnC/D,GAAU,sBACVA,GAAUgB,EAAM8uG,OAAOviG,EAAGlH,GAAI,UAAY,UAC1CrG,GAAU,IACVA,GAAU,MAGZA,GAAU,QAMZ,OAHAA,GAAU,YACA,YAKZgB,EAAMmvG,aAAe,SAASpsG,EAAUxO,EAAQyK,EAAKuN,GAEnD,IAAIlH,EAAO,CAAC,EACe,iBAAhBnV,UAAU,KAInB6S,GAFAsC,EAAOnV,UAAU,IAEDk/G,SAChB76G,EAAS8Q,EAAK+nF,OACdpuF,EAAMqG,EAAKgqG,IACX9iG,EAAQlH,EAAKo2E,OAGf14E,EAAWA,GAAY,EACvBxO,OAAA,IAAiBA,EAAmC,EAAXwO,EAAexO,GAGxDyK,EAAsB,iBAARA,EAAoB,CAACk5D,KAAMl5D,GAAOA,GAAO,CAAC,GACpDk5D,KAAOl5D,EAAIk5D,MAAQ,KACvBl5D,EAAI6qB,GAAM7qB,EAAQk5D,KAAIl5D,EAAI6qB,IAAM,qBAAuB,MAGvDtd,EAA0B,iBAAVA,EAAsB,CAAC2rD,KAAM3rD,GAASA,GAAS,CAAC,GAC1D2rD,KAAO3rD,EAAM2rD,MAAQ,KAC3B3rD,EAAMsd,GAAMtd,EAAU2rD,KAAI3rD,EAAMsd,IAAM,eAAiB,KAEvD,IACIl2B,EAAOsO,EAAGuJ,EAAcyK,EADxB1H,EAAOvO,EAAM+uG,iBAAmBhsG,EAAoB,EAATxO,EAC7BsK,EAAM,GAmBxB,IAjBAoX,EAAO,IAAMlT,EAAW,QAAUA,EAChC,KAAOA,EAAW,SAAWA,EAAW,KAE1ClE,GAAS,wDACTA,GAAUwG,EAAKiqG,SAA+D,GAApD,WAAa/gG,EAAO,eAAiBA,EAAO,MACtE1P,GAAS,iBAAmB0P,EAAO,IAAMA,EAAO,KAChD1P,GAAS,uCACTA,GAAU0N,EAAM2rD,MAAQl5D,EAAIk5D,KAAQ,gCAChCh2D,EAAU,CAACqK,EAAMsd,GAAI7qB,EAAI6qB,IAAIntB,KAAK,KAAKmmB,QAAW,IAAM,GAC5DhkB,GAAS,IACTA,GAAU0N,EAAU2rD,KAAI,cAAgBh2D,EAAUqK,EAAMsd,IAAM,KAC1D3nB,EAAUqK,EAAM2rD,MAAQ,WAAa,GACzCr5D,GAAUG,EAAQk5D,KAAI,oBAAsBh2D,EAAUlD,EAAI6qB,IAAM,KAC5D3nB,EAAUlD,EAAIk5D,MAAQ,iBAAmB,GAC7Cr5D,GAAS,gEACTA,GAAS,YAEJoD,EAAI,EAAGA,EAAIjC,EAAM+uG,iBAAkB9sG,GAAK,EAE3C,IADAuJ,EAAKvJ,EAAIc,EAAWxO,EACfZ,EAAI,EAAGA,EAAIqM,EAAM+uG,iBAAkBp7G,GAAK,EACvCqM,EAAM8uG,OAAO7sG,EAAGtO,KAElBkL,GAAS,KADJlL,EAAEoP,EAASxO,GACI,IAAMiX,EAAKyK,GAQrC,OAHApX,GAAS,yCACA,UAKXmB,EAAMuvG,cAAgB,SAASxsG,EAAUxO,GAEvCwO,EAAWA,GAAY,EACvBxO,OAAA,IAAiBA,EAAmC,EAAXwO,EAAexO,EAExD,IAAIyK,EAAOgB,EAAM+uG,iBAAmBhsG,EAAoB,EAATxO,EAC3CgY,EAAMhY,EACN8Q,EAAMrG,EAAOzK,EAEjB,OAAOmW,EAAc1L,EAAMA,GAAM,SAASzK,EAAGyK,GAC3C,GAAIuN,GAAOhY,GAAKA,EAAI8Q,GAAOkH,GAAOvN,GAAKA,EAAIqG,EAAK,CAC9C,IAAI1R,EAAIrD,KAAKC,OAAQgE,EAAIgY,GAAOxJ,GAC5Bd,EAAI3R,KAAKC,OAAQyO,EAAIuN,GAAOxJ,GAChC,OAAO/C,EAAM8uG,OAAO7sG,EAAGtO,GAAI,EAAI,EAE/B,OAAO,MAKbqM,EAAMwvG,aAAe,SAASzsG,EAAUxO,EAAQyK,GAE9C+D,EAAWA,GAAY,EACvBxO,OAAA,IAAiBA,EAAmC,EAAXwO,EAAexO,EAExD,IAAIgY,EAAOvM,EAAM+uG,iBAAmBhsG,EAAoB,EAATxO,EAE3C8Q,EAAM,GAkBV,OAjBAA,GAAO,OACPA,GAAO,SACPA,GAAOrF,EAAMuvG,cAAcxsG,EAAUxO,GACrC8Q,GAAO,IACPA,GAAO,WACPA,GAAOkH,EACPlH,GAAO,IACPA,GAAO,YACPA,GAAOkH,EACPlH,GAAO,IACHrG,IACFqG,GAAO,SACPA,GAAOnD,EAAUlD,GACjBqG,GAAO,KAETA,EAAO,MAKT,IAAInD,EAAY,SAASa,GAEvB,IADA,IAAIxO,EAAU,GACLyK,EAAI,EAAGA,EAAI+D,EAAExU,OAAQyQ,GAAK,EAAG,CACpC,IAAIuN,EAAIxJ,EAAE1J,OAAO2F,GACjB,OAAOuN,GACP,IAAK,IAAKhY,GAAW,OAAQ,MAC7B,IAAK,IAAKA,GAAW,OAAQ,MAC7B,IAAK,IAAKA,GAAW,QAAS,MAC9B,IAAK,IAAKA,GAAW,SAAU,MAC/B,QAAUA,GAAWgY,EAAA,CAGvB,OAAOhY,CAAA,EAiHT,OAtDAyL,EAAMyvG,YAAc,SAAS1sG,EAAUxO,GAGrC,IAFAwO,EAAWA,GAAY,GAER,EACb,OA5DmB,SAASA,GAE9BA,OAAA,IAAiBA,EAAwB,EAAeA,EAExD,IAIIxO,EAAGyK,EAAGuN,EAAIlH,EAAI1R,EAJdsO,EAHW,EAGJjC,EAAM+uG,iBAAuC,EAAThsG,EAC3CyI,EAAMzI,EACNkT,EAAMhU,EAAOc,EAIbwL,EAAS,CACX,eAAM,SACN,UAAM,SACN,UAAM,SACN,KAAM,KAGJ1P,EAAyB,CAC3B,eAAM,SACN,UAAM,SACN,UAAM,IACN,KAAM,KAGJiM,EAAQ,GACZ,IAAKvW,EAAI,EAAGA,EAAI0N,EAAM1N,GAAK,EAAG,CAG5B,IAFAgY,EAAKjc,KAAKC,OAAOgE,EAAIiX,GAzBR,GA0BbnG,EAAK/U,KAAKC,OAAOgE,EAAI,EAAIiX,GA1BZ,GA2BRxM,EAAI,EAAGA,EAAIiD,EAAMjD,GAAK,EACzBrL,EAAI,SAEA6X,GAAOxM,GAAKA,EAAIiX,GAAOzK,GAAOjX,GAAKA,EAAI0hB,GAAOjW,EAAM8uG,OAAOviG,EAAIjc,KAAKC,OAAOyO,EAAIwM,GA9BxE,MA+BT7X,EAAI,KAGF6X,GAAOxM,GAAKA,EAAIiX,GAAOzK,GAAOjX,EAAE,GAAKA,EAAE,EAAI0hB,GAAOjW,EAAM8uG,OAAOzpG,EAAI/U,KAAKC,OAAOyO,EAAIwM,GAlC5E,IAmCT7X,GAAK,IAGLA,GAAK,SAIPmX,GAAU/H,EAAS,GAAKxO,EAAE,GAAK0hB,EAAOpX,EAAuBlL,GAAK4a,EAAO5a,GAG3EmX,GAAS,KAGX,OAAI7I,EAAO,GAAKc,EAAS,EAChB+H,EAAMuuF,UAAU,EAAGvuF,EAAMvc,OAAS0T,EAAO,GAAK9N,MAAM8N,EAAK,GAAGvF,KAAK,UAGnEoO,EAAMuuF,UAAU,EAAGvuF,EAAMvc,OAAO,GArDlB,CA4DKgG,GAG1BwO,GAAY,EACZxO,OAAA,IAAiBA,EAAmC,EAAXwO,EAAexO,EAExD,IAIIyK,EAAGuN,EAAGlH,EAAG1R,EAJTsO,EAAOjC,EAAM+uG,iBAAmBhsG,EAAoB,EAATxO,EAC3CiX,EAAMjX,EACN0hB,EAAMhU,EAAO1N,EAIbga,EAAQpa,MAAM4O,EAAS,GAAGrG,KAAK,gBAC/BmC,EAAQ1K,MAAM4O,EAAS,GAAGrG,KAAK,MAE/BoO,EAAQ,GACR+L,EAAO,GACX,IAAK7X,EAAI,EAAGA,EAAIiD,EAAMjD,GAAK,EAAG,CAG5B,IAFAqG,EAAI/U,KAAKC,OAAQyO,EAAIwM,GAAOzI,GAC5B8T,EAAO,GACFtK,EAAI,EAAGA,EAAItK,EAAMsK,GAAK,EACzB5Y,EAAI,EAEA6X,GAAOe,GAAKA,EAAI0J,GAAOzK,GAAOxM,GAAKA,EAAIiX,GAAOjW,EAAM8uG,OAAOzpG,EAAG/U,KAAKC,OAAOgc,EAAIf,GAAOzI,MACvFpP,EAAI,GAINkjB,GAAQljB,EAAI4a,EAAQ1P,EAGtB,IAAKwG,EAAI,EAAGA,EAAItC,EAAUsC,GAAK,EAC7ByF,GAAS+L,EAAO,KAIpB,OAAO/L,EAAMuuF,UAAU,EAAGvuF,EAAMvc,OAAO,IAGzCyR,EAAM0vG,kBAAoB,SAAS3sG,EAASxO,GAC1CA,EAAWA,GAAY,EAEvB,IADA,IAAIyK,EAASgB,EAAM+uG,iBACVxiG,EAAM,EAAGA,EAAMvN,EAAQuN,IAC9B,IAAK,IAAIlH,EAAM,EAAGA,EAAMrG,EAAQqG,IAC9BtC,EAAQi+B,UAAYhhC,EAAM8uG,OAAOviG,EAAKlH,GAAO,QAAU,QACvDtC,EAAQk+B,SAAS10B,EAAMhY,EAAU8Q,EAAM9Q,EAAUA,EAAUA,EAAA,EAK1DyL,CAAA,EAkBT+C,EAAO4sG,eAXP5sG,EAAO6sG,mBAAqB,CAC1Bz3F,QAAY,SAASpV,GAEnB,IADA,IAAIxO,EAAQ,GACHyK,EAAI,EAAGA,EAAI+D,EAAExU,OAAQyQ,GAAK,EAAG,CACpC,IAAIuN,EAAIxJ,EAAExJ,WAAWyF,GACrBzK,EAAMX,KAAS,IAAJ2Y,EAAA,CAEb,OAAOhY,CAAA,IAI+C4jB,QAW1DpV,EAAO8sG,oBAAsB,SAAS9sG,EAAaxO,GAIjD,IAAIyK,EAAa,WAWf,IATA,IAAIA,EAAMgB,EAAwB+C,GAC9BwJ,EAAO,WACT,IAAIxJ,EAAI/D,EAAI8gB,OACZ,IAAU,GAAN/c,EAAS,KAAM,MACnB,OAAOA,CAAA,EAGLsC,EAAQ,EACR1R,EAAa,CAAC,IACL,CACX,IAAIsO,EAAKjD,EAAI8gB,OACb,IAAW,GAAP7d,EAAU,MACd,IAAIuJ,EAAKe,IAIL0J,EAHK1J,KAGM,EAFNA,IAGT5Y,EAFQ6E,OAAOkpB,aAAezf,GAAM,EAAKuJ,IAEzByK,EAChB5Q,GAAS,EAEX,GAAIA,GAAS9Q,EACX,MAAM8Q,EAAQ,OAAS9Q,EAGzB,OAAOZ,CAAA,CA1BQ,GA6Bb4Y,EAAc,IAAIhT,WAAW,GAEjC,OAAO,SAASwJ,GAEd,IADA,IAAIxO,EAAQ,GACH8Q,EAAI,EAAGA,EAAItC,EAAExU,OAAQ8W,GAAK,EAAG,CACpC,IAAI1R,EAAIoP,EAAExJ,WAAW8L,GACrB,GAAI1R,EAAI,IACNY,EAAMX,KAAKD,OACN,CACL,IAAIsO,EAAIjD,EAAW+D,EAAE1J,OAAOgM,IACZ,iBAALpD,GACC,IAAJA,IAAaA,EAEjB1N,EAAMX,KAAKqO,IAGX1N,EAAMX,KAAKqO,IAAM,GACjB1N,EAAMX,KAAS,IAAJqO,IAGb1N,EAAMX,KAAK2Y,EAAA,EAIjB,OAAOhY,CAAA,GAQX,IAuCMA,EA0CAyK,EACAuN,EAGAlH,EAEA1R,EA5EFsO,EAAyB,CAC3B6tG,EAAI,EACJjC,EAAI,EACJkC,EAAI,EACJC,EAAI,GAsBFxkG,GAEEjX,EAAyB,CAC3B,GACA,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,GAAI,IAChB,CAAC,EAAG,GAAI,GAAI,GAAI,IAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,KACpB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,MAExByK,EAAM,KACNuN,EAAM,KAKN5Y,EAAc,SAASoP,GAEzB,IADA,IAAIxO,EAAQ,EACG,GAARwO,GACLxO,GAAS,EACTwO,KAAU,EAEZ,OAAOxO,CAAA,GARL8Q,EAAQ,CAAC,GAWP2oG,eAAiB,SAASjrG,GAE9B,IADA,IAAIxO,EAAIwO,GAAQ,GACTpP,EAAYY,GAAKZ,EAAYqL,IAAQ,GAC1CzK,GAAMyK,GAAQrL,EAAYY,GAAKZ,EAAYqL,GAE7C,OAlBa,OAkBH+D,GAAQ,GAAMxO,EAAA,EAG1B8Q,EAAM0oG,iBAAmB,SAAShrG,GAEhC,IADA,IAAIxO,EAAIwO,GAAQ,GACTpP,EAAYY,GAAKZ,EAAY4Y,IAAQ,GAC1ChY,GAAMgY,GAAQ5Y,EAAYY,GAAKZ,EAAY4Y,GAE7C,OAAQxJ,GAAQ,GAAMxO,CAAA,EAGxB8Q,EAAMyoG,mBAAqB,SAAS/qG,GAClC,OAAOxO,EAAuBwO,EAAa,IAG7CsC,EAAM4oG,gBAAkB,SAASlrG,GAE/B,OAAQA,GAER,KAjGW,EAkGT,OAAO,SAASA,EAAGxO,GAAK,OAAQwO,EAAIxO,GAAK,GAAK,GAChD,KAlGW,EAmGT,OAAO,SAASwO,EAAGxO,GAAK,OAAOwO,EAAI,GAAK,GAC1C,KAnGW,EAoGT,OAAO,SAASA,EAAGxO,GAAK,OAAOA,EAAI,GAAK,GAC1C,KApGW,EAqGT,OAAO,SAASwO,EAAGxO,GAAK,OAAQwO,EAAIxO,GAAK,GAAK,GAChD,KArGW,EAsGT,OAAO,SAASwO,EAAGxO,GAAK,OAAQjE,KAAKC,MAAMwS,EAAI,GAAKzS,KAAKC,MAAMgE,EAAI,IAAO,GAAK,GACjF,KAtGW,EAuGT,OAAO,SAASwO,EAAGxO,GAAK,OAAQwO,EAAIxO,EAAK,EAAKwO,EAAIxO,EAAK,GAAK,GAC9D,KAvGW,EAwGT,OAAO,SAASwO,EAAGxO,GAAK,OAAUwO,EAAIxO,EAAK,EAAKwO,EAAIxO,EAAK,GAAK,GAAK,GACrE,KAxGW,EAyGT,OAAO,SAASwO,EAAGxO,GAAK,OAAUwO,EAAIxO,EAAK,GAAKwO,EAAIxO,GAAK,GAAK,GAAK,GAErE,QACE,KAAM,mBAAqBwO,EAAA,EAI/BsC,EAAMspG,0BAA4B,SAAS5rG,GAEzC,IADA,IAAIxO,EAAIga,EAAa,CAAC,GAAI,GACjBvP,EAAI,EAAGA,EAAI+D,EAAoB/D,GAAK,EAC3CzK,EAAIA,EAAEuvD,SAASv1C,EAAa,CAAC,EAAG0H,EAAOg6F,KAAKjxG,IAAK,IAEnD,OAAOzK,CAAA,EAGT8Q,EAAMipG,gBAAkB,SAASvrG,EAAMxO,GAErC,GAAI,GAAKA,GAAQA,EAAO,GAItB,OAAOwO,GACP,KA5Ja,EA4JgB,OAAO,GACpC,KA5Ja,EA4JgB,OAAO,EACpC,KA5Ja,EA6Jb,KA5Ja,EA4JgB,OAAO,EACpC,QACE,KAAM,QAAUA,OAGb,GAAIxO,EAAO,GAIhB,OAAOwO,GACP,KAzKa,EAyKgB,OAAO,GACpC,KAzKa,EAyKgB,OAAO,GACpC,KAzKa,EAyKgB,OAAO,GACpC,KAzKa,EAyKgB,OAAO,GACpC,QACE,KAAM,QAAUA,MAGb,MAAIxO,EAAO,IAchB,KAAM,QAAUA,EAVhB,OAAOwO,GACP,KAtLa,EAsLgB,OAAO,GACpC,KAtLa,EAsLgB,OAAO,GACpC,KAtLa,EAsLgB,OAAO,GACpC,KAtLa,EAsLgB,OAAO,GACpC,QACE,KAAM,QAAUA,EAAA,GAQtBsC,EAAM4pG,aAAe,SAASlsG,GAQ5B,IANA,IAAIxO,EAAcwO,EAAOgsG,iBAErB/vG,EAAY,EAIPuN,EAAM,EAAGA,EAAMhY,EAAagY,GAAO,EAC1C,IAAK,IAAIlH,EAAM,EAAGA,EAAM9Q,EAAa8Q,GAAO,EAAG,CAK7C,IAHA,IAAI1R,EAAY,EACZsO,EAAOc,EAAO+rG,OAAOviG,EAAKlH,GAErBmG,GAAK,EAAGA,GAAK,EAAGA,GAAK,EAE5B,KAAIe,EAAMf,EAAI,GAAKjX,GAAegY,EAAMf,GAIxC,IAAK,IAAIyK,GAAK,EAAGA,GAAK,EAAGA,GAAK,EAExB5Q,EAAM4Q,EAAI,GAAK1hB,GAAe8Q,EAAM4Q,GAI/B,GAALzK,GAAe,GAALyK,GAIVhU,GAAQc,EAAO+rG,OAAOviG,EAAMf,EAAGnG,EAAM4Q,KACvCtiB,GAAa,GAKfA,EAAY,IACdqL,GAAc,EAAIrL,EAAY,GAOpC,IAAS4Y,EAAM,EAAGA,EAAMhY,EAAc,EAAGgY,GAAO,EAC9C,IAASlH,EAAM,EAAGA,EAAM9Q,EAAc,EAAG8Q,GAAO,EAAG,CACjD,IAAIkJ,EAAQ,EACRxL,EAAO+rG,OAAOviG,EAAKlH,KAAOkJ,GAAS,GACnCxL,EAAO+rG,OAAOviG,EAAM,EAAGlH,KAAOkJ,GAAS,GACvCxL,EAAO+rG,OAAOviG,EAAKlH,EAAM,KAAKkJ,GAAS,GACvCxL,EAAO+rG,OAAOviG,EAAM,EAAGlH,EAAM,KAAKkJ,GAAS,GAClC,GAATA,GAAuB,GAATA,IAChBvP,GAAa,GAOnB,IAASuN,EAAM,EAAGA,EAAMhY,EAAagY,GAAO,EAC1C,IAASlH,EAAM,EAAGA,EAAM9Q,EAAc,EAAG8Q,GAAO,EAC1CtC,EAAO+rG,OAAOviG,EAAKlH,KACftC,EAAO+rG,OAAOviG,EAAKlH,EAAM,IACzBtC,EAAO+rG,OAAOviG,EAAKlH,EAAM,IACzBtC,EAAO+rG,OAAOviG,EAAKlH,EAAM,IACzBtC,EAAO+rG,OAAOviG,EAAKlH,EAAM,KACzBtC,EAAO+rG,OAAOviG,EAAKlH,EAAM,IACzBtC,EAAO+rG,OAAOviG,EAAKlH,EAAM,KAC/BrG,GAAa,IAKnB,IAASqG,EAAM,EAAGA,EAAM9Q,EAAa8Q,GAAO,EAC1C,IAASkH,EAAM,EAAGA,EAAMhY,EAAc,EAAGgY,GAAO,EAC1CxJ,EAAO+rG,OAAOviG,EAAKlH,KACftC,EAAO+rG,OAAOviG,EAAM,EAAGlH,IACvBtC,EAAO+rG,OAAOviG,EAAM,EAAGlH,IACvBtC,EAAO+rG,OAAOviG,EAAM,EAAGlH,IACvBtC,EAAO+rG,OAAOviG,EAAM,EAAGlH,KACvBtC,EAAO+rG,OAAOviG,EAAM,EAAGlH,IACvBtC,EAAO+rG,OAAOviG,EAAM,EAAGlH,KAC7BrG,GAAa,IAOnB,IAAIH,EAAY,EAEhB,IAASwG,EAAM,EAAGA,EAAM9Q,EAAa8Q,GAAO,EAC1C,IAASkH,EAAM,EAAGA,EAAMhY,EAAagY,GAAO,EACtCxJ,EAAO+rG,OAAOviG,EAAKlH,KACrBxG,GAAa,GAQnB,OAFAG,EADY1O,KAAK+S,IAAI,IAAMxE,EAAYtK,EAAcA,EAAc,IAAM,EACpD,IAKhB8Q,GAOL4Q,EAAS,WAMX,IAJA,IAAIlT,EAAY,IAAI5O,MAAM,KACtBI,EAAY,IAAIJ,MAAM,KAGjB6K,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B+D,EAAU/D,GAAK,GAAKA,EAEtB,IAASA,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAC5B+D,EAAU/D,GAAK+D,EAAU/D,EAAI,GACzB+D,EAAU/D,EAAI,GACd+D,EAAU/D,EAAI,GACd+D,EAAU/D,EAAI,GAEpB,IAASA,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAC5BzK,EAAUwO,EAAU/D,IAAOA,EA2B7B,MAxBY,CAEZkxG,KAAa,SAASntG,GAEpB,GAAIA,EAAI,EACN,KAAM,QAAUA,EAAI,IAGtB,OAAOxO,EAAUwO,EAAA,EAGnBktG,KAAa,SAAS17G,GAEpB,KAAOA,EAAI,GACTA,GAAK,IAGP,KAAOA,GAAK,KACVA,GAAK,IAGP,OAAOwO,EAAUxO,EAAA,GAxCR,GAkDb,SAASga,EAAaxL,EAAKxO,GAEzB,QAAI,IAAOwO,EAAIxU,OACb,MAAMwU,EAAIxU,OAAS,IAAMgG,EAG3B,IAAIyK,EAAO,WAET,IADA,IAAIA,EAAS,EACNA,EAAS+D,EAAIxU,QAAyB,GAAfwU,EAAI/D,IAChCA,GAAU,EAGZ,IADA,IAAIuN,EAAO,IAAIpY,MAAM4O,EAAIxU,OAASyQ,EAASzK,GAClC8Q,EAAI,EAAGA,EAAItC,EAAIxU,OAASyQ,EAAQqG,GAAK,EAC5CkH,EAAKlH,GAAKtC,EAAIsC,EAAIrG,GAEpB,OAAOuN,CAAA,CATE,GAYPA,EAAQ,CAEZqiG,MAAc,SAAS7rG,GACrB,OAAO/D,EAAK+D,EAAA,EAGdsrG,UAAkB,WAChB,OAAOrvG,EAAKzQ,MAAA,EAGdu1D,SAAiB,SAAS/gD,GAIxB,IAFA,IAAIxO,EAAM,IAAIJ,MAAMoY,EAAM8hG,YAActrG,EAAEsrG,YAAc,GAE/CrvG,EAAI,EAAGA,EAAIuN,EAAM8hG,YAAarvG,GAAK,EAC1C,IAAK,IAAIqG,EAAI,EAAGA,EAAItC,EAAEsrG,YAAahpG,GAAK,EACtC9Q,EAAIyK,EAAIqG,IAAM4Q,EAAOg6F,KAAKh6F,EAAOi6F,KAAK3jG,EAAMqiG,MAAM5vG,IAAOiX,EAAOi6F,KAAKntG,EAAE6rG,MAAMvpG,KAIjF,OAAOkJ,EAAaha,EAAK,IAG3B+L,IAAY,SAASyC,GAEnB,GAAIwJ,EAAM8hG,YAActrG,EAAEsrG,YAAc,EACtC,OAAO9hG,EAMT,IAHA,IAAIhY,EAAQ0hB,EAAOi6F,KAAK3jG,EAAMqiG,MAAM,IAAO34F,EAAOi6F,KAAKntG,EAAE6rG,MAAM,IAE3D5vG,EAAM,IAAI7K,MAAMoY,EAAM8hG,aACjBhpG,EAAI,EAAGA,EAAIkH,EAAM8hG,YAAahpG,GAAK,EAC1CrG,EAAIqG,GAAKkH,EAAMqiG,MAAMvpG,GAGvB,IAASA,EAAI,EAAGA,EAAItC,EAAEsrG,YAAahpG,GAAK,EACtCrG,EAAIqG,IAAM4Q,EAAOg6F,KAAKh6F,EAAOi6F,KAAKntG,EAAE6rG,MAAMvpG,IAAO9Q,GAInD,OAAOga,EAAavP,EAAK,GAAGsB,IAAIyC,EAAA,GAGlC,OAAOwJ,CAAA,CAOT,IAAI1N,EAAY,WAEd,IAAIkE,EAAiB,CAQnB,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAGR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IAGR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IAGR,CAAC,EAAG,IAAK,IACT,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAGR,CAAC,EAAG,IAAK,KACT,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAGnB,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IAGR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAGnB,CAAC,EAAG,IAAK,IACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAGnB,CAAC,EAAG,IAAK,KACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAGnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAGnB,CAAC,EAAG,IAAK,IACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAGnB,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IACrB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IAGnB,CAAC,EAAG,IAAK,KACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IACrB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IACrB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,IACT,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,IACT,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,IAGT,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,KACV,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAGpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,KAGnBxO,EAAY,SAASwO,EAAYxO,GACnC,IAAIyK,EAAQ,CAAC,EAGb,OAFAA,EAAMyvG,WAAa1rG,EACnB/D,EAAMuvG,UAAYh6G,EACXyK,CAAA,EAGLA,EAAQ,CAkBZkvG,YAAoB,SAASlvG,EAAYuN,GAEvC,IAAIlH,EAlBgB,SAAS9Q,EAAYyK,GAEzC,OAAOA,GACP,KAAKiD,EAAuB6tG,EAC1B,OAAO/sG,EAAkC,GAAlBxO,EAAa,GAAS,GAC/C,KAAK0N,EAAuB4rG,EAC1B,OAAO9qG,EAAkC,GAAlBxO,EAAa,GAAS,GAC/C,KAAK0N,EAAuB8tG,EAC1B,OAAOhtG,EAAkC,GAAlBxO,EAAa,GAAS,GAC/C,KAAK0N,EAAuB+tG,EAC1B,OAAOjtG,EAAkC,GAAlBxO,EAAa,GAAS,GAC/C,QACE,QAZkB,CAkBUyK,EAAYuN,GAE1C,QAAI,IAAOlH,EACT,KAAM,6BAA+BrG,EACjC,yBAA2BuN,EAOjC,IAJA,IAAI5Y,EAAS0R,EAAQ9W,OAAS,EAE1Bid,EAAO,GAEFyK,EAAI,EAAGA,EAAItiB,EAAQsiB,GAAK,EAM/B,IAJA,IAAI1H,EAAQlJ,EAAY,EAAJ4Q,EAAQ,GACxBpX,EAAawG,EAAY,EAAJ4Q,EAAQ,GAC7BnL,EAAYzF,EAAY,EAAJ4Q,EAAQ,GAEvBY,EAAI,EAAGA,EAAItI,EAAOsI,GAAK,EAC9BrL,EAAK5X,KAAKW,EAAUsK,EAAYiM,IAIpC,OAAOU,CAAA,GAGT,OAAOxM,CAAA,CA9SO,GAqTZ8L,EAAc,WAEhB,IAAI/H,EAAU,GACVxO,EAAU,EAEVyK,EAAQ,CAEZ0vG,UAAkB,WAChB,OAAO3rG,CAAA,EAGT6rG,MAAc,SAASr6G,GACrB,IAAIyK,EAAW1O,KAAKC,MAAMgE,EAAQ,GAClC,OAA0D,IAAhDwO,EAAQ/D,KAAe,EAAIzK,EAAQ,EAAO,IAGtD45G,IAAY,SAASprG,EAAKxO,GACxB,IAAK,IAAIgY,EAAI,EAAGA,EAAIhY,EAAQgY,GAAK,EAC/BvN,EAAMwvG,OAA8C,IAAnCzrG,IAASxO,EAASgY,EAAI,EAAO,KAIlD+hG,gBAAwB,WACtB,OAAO/5G,CAAA,EAGTi6G,OAAe,SAASxvG,GAEtB,IAAIuN,EAAWjc,KAAKC,MAAMgE,EAAU,GAChCwO,EAAQxU,QAAUge,GACpBxJ,EAAQnP,KAAK,GAGXoL,IACF+D,EAAQwJ,IAAc,MAAUhY,EAAU,GAG5CA,GAAW,IAGb,OAAOyK,CAAA,EAOL6X,EAAW,SAAS9T,GAEtB,IACIxO,EAAQwO,EAER/D,EAAQ,CAEZovG,QAAgB,WACd,OAtxBe,GAyxBjBC,UAAkB,SAAStrG,GACzB,OAAOxO,EAAMhG,MAAA,EAGf8J,MAAc,SAAS0K,GAMrB,IAJA,IAAI/D,EAAOzK,EAEP8Q,EAAI,EAEDA,EAAI,EAAIrG,EAAKzQ,QAClBwU,EAAOorG,IAAI5hG,EAASvN,EAAKq6F,UAAUh0F,EAAGA,EAAI,IAAM,IAChDA,GAAK,EAGHA,EAAIrG,EAAKzQ,SACPyQ,EAAKzQ,OAAS8W,GAAK,EACrBtC,EAAOorG,IAAI5hG,EAASvN,EAAKq6F,UAAUh0F,EAAGA,EAAI,IAAM,GACvCrG,EAAKzQ,OAAS8W,GAAK,GAC5BtC,EAAOorG,IAAI5hG,EAASvN,EAAKq6F,UAAUh0F,EAAGA,EAAI,IAAM,MAKlDkH,EAAW,SAASxJ,GAEtB,IADA,IAAIxO,EAAM,EACDyK,EAAI,EAAGA,EAAI+D,EAAExU,OAAQyQ,GAAK,EACjCzK,EAAY,GAANA,EAAW8Q,EAAUtC,EAAE1J,OAAO2F,IAEtC,OAAOzK,CAAA,EAGL8Q,EAAY,SAAStC,GACvB,GAAI,KAAOA,GAAKA,GAAK,IACnB,OAAOA,EAAExJ,WAAW,GAAK,IAAIA,WAAW,GAE1C,KAAM,iBAAmBwJ,CAAA,EAG3B,OAAO/D,CAAA,EAOL6pB,EAAa,SAAS9lB,GAExB,IACIxO,EAAQwO,EAER/D,EAAQ,CAEZovG,QAAgB,WACd,OA90Be,GAi1BjBC,UAAkB,SAAStrG,GACzB,OAAOxO,EAAMhG,MAAA,EAGf8J,MAAc,SAAS0K,GAMrB,IAJA,IAAI/D,EAAIzK,EAEJ8Q,EAAI,EAEDA,EAAI,EAAIrG,EAAEzQ,QACfwU,EAAOorG,IACmB,GAAxB5hG,EAAQvN,EAAE3F,OAAOgM,IACjBkH,EAAQvN,EAAE3F,OAAOgM,EAAI,IAAM,IAC7BA,GAAK,EAGHA,EAAIrG,EAAEzQ,QACRwU,EAAOorG,IAAI5hG,EAAQvN,EAAE3F,OAAOgM,IAAM,KAIlCkH,EAAU,SAASxJ,GAErB,GAAI,KAAOA,GAAKA,GAAK,IACnB,OAAOA,EAAExJ,WAAW,GAAK,IAAIA,WAAW,GACnC,GAAI,KAAOwJ,GAAKA,GAAK,IAC1B,OAAOA,EAAExJ,WAAW,GAAK,IAAIA,WAAW,GAAK,GAE7C,OAAQwJ,GACR,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,IAAK,IAAM,OAAO,GAClB,QACE,KAAM,iBAAmBA,EAAA,EAK/B,OAAO/D,CAAA,EAOL2R,EAAa,SAASpc,GAExB,IAEIyK,EAAS+D,EAAO4sG,cAAcp7G,GAkBlC,MAhBY,CAEZ65G,QAAgB,WACd,OA74Be,GAg5BjBC,UAAkB,SAAStrG,GACzB,OAAO/D,EAAOzQ,MAAA,EAGhB8J,MAAc,SAAS0K,GACrB,IAAK,IAAIxO,EAAI,EAAGA,EAAIyK,EAAOzQ,OAAQgG,GAAK,EACtCwO,EAAOorG,IAAInvG,EAAOzK,GAAI,MAWxBuX,EAAU,SAASvX,GAErB,IAGIyK,EAAgB+D,EAAO6sG,mBAAyBO,KACpD,IAAKnxG,EACH,KAAM,uBAEP,WAEC,IAAIuN,EAAOvN,EAIX,UAHA,GAAmB,GAAfuN,EAAKhe,QAGC,QAHiBge,EAAK,IAAM,EAAKA,EAAK,IAC9C,KAAM,sBAJT,GAQD,IAAIA,EAASvN,EAAczK,GA0C3B,MAxCY,CAEZ65G,QAAgB,WACd,OAt7Be,GAy7BjBC,UAAkB,SAAStrG,GACzB,SAAUwJ,EAAOhe,OAAS,IAG5B8J,MAAc,SAAS0K,GAMrB,IAJA,IAAIxO,EAAOgY,EAEPvN,EAAI,EAEDA,EAAI,EAAIzK,EAAKhG,QAAQ,CAE1B,IAAI8W,GAAO,IAAO9Q,EAAKyK,KAAO,EAAM,IAAOzK,EAAKyK,EAAI,GAEpD,GAAI,OAAUqG,GAAKA,GAAK,MACtBA,GAAK,UACA,MAAI,OAAUA,GAAKA,GAAK,OAG7B,KAAM,oBAAsBrG,EAAI,GAAK,IAAMqG,EAF3CA,GAAK,MAKPA,EAA0B,KAAnBA,IAAM,EAAK,MAAoB,IAAJA,GAElCtC,EAAOorG,IAAI9oG,EAAG,IAEdrG,GAAK,EAGP,GAAIA,EAAIzK,EAAKhG,OACX,KAAM,oBAAsByQ,EAAI,MAelCjL,EAAwB,WAE1B,IAAIgP,EAAS,GAETxO,EAAQ,CAEZ67G,UAAkB,SAAS77G,GACzBwO,EAAOnP,KAAS,IAAJW,EAAA,EAGd87G,WAAmB,SAASttG,GAC1BxO,EAAM67G,UAAUrtG,GAChBxO,EAAM67G,UAAUrtG,IAAM,IAGxButG,WAAmB,SAASvtG,EAAG/D,EAAKuN,GAClCvN,EAAMA,GAAO,EACbuN,EAAMA,GAAOxJ,EAAExU,OACf,IAAK,IAAI8W,EAAI,EAAGA,EAAIkH,EAAKlH,GAAK,EAC5B9Q,EAAM67G,UAAUrtG,EAAEsC,EAAIrG,GAAA,EAI1Bya,YAAoB,SAAS1W,GAC3B,IAAK,IAAI/D,EAAI,EAAGA,EAAI+D,EAAExU,OAAQyQ,GAAK,EACjCzK,EAAM67G,UAAUrtG,EAAExJ,WAAWyF,GAAA,EAIjCtD,YAAoB,WAClB,OAAOqH,CAAA,EAGTzK,SAAiB,WACf,IAAI/D,EAAI,GACRA,GAAK,IACL,IAAK,IAAIyK,EAAI,EAAGA,EAAI+D,EAAOxU,OAAQyQ,GAAK,EAClCA,EAAI,IACNzK,GAAK,KAEPA,GAAKwO,EAAO/D,GAGd,OADAzK,EAAK,MAIP,OAAOA,CAAA,EA6ELyL,EAA0B,SAAS+C,GAErC,IAAIxO,EAAOwO,EACP/D,EAAO,EACPuN,EAAU,EACVlH,EAAU,EAEV1R,EAAQ,CAEZmsB,KAAa,WAEX,KAAOza,EAAU,GAAG,CAElB,GAAIrG,GAAQzK,EAAKhG,OAAQ,CACvB,GAAe,GAAX8W,EACF,OAAQ,EAEV,KAAM,2BAA6BA,CAAA,CAGrC,IAAItC,EAAIxO,EAAK8E,OAAO2F,GAGpB,GAFAA,GAAQ,EAEC,KAAL+D,EAEF,OADAsC,EAAU,GACF,EACCtC,EAAEwtG,MAAM,UAKnBhkG,EAAWA,GAAW,EAAKtK,EAAOc,EAAExJ,WAAW,IAC/C8L,GAAW,GAGb,IAAI1R,EAAK4Y,IAAalH,EAAU,EAAO,IAEvC,OADAA,GAAW,EACJ1R,CAAA,GAGLsO,EAAS,SAASc,GACpB,GAAI,IAAQA,GAAKA,GAAK,GACpB,OAAOA,EAAI,GACN,GAAI,IAAQA,GAAKA,GAAK,IAC3B,OAAOA,EAAI,GAAO,GACb,GAAI,IAAQA,GAAKA,GAAK,GAC3B,OAAOA,EAAI,GAAO,GACb,GAAS,IAALA,EACT,OAAO,GACF,GAAS,IAALA,EACT,OAAO,GAEP,KAAM,KAAOA,CAAA,EAIjB,OAAOpP,CAAA,EAyNL+W,EAAgB,SAAS3H,EAAOxO,EAAQyK,GAE1C,IADA,IAAIuN,EAnNS,SAASxJ,EAAOxO,GAE7B,IAAIyK,EAAS+D,EACTwJ,EAAUhY,EACV8Q,EAAQ,IAAIlR,MAAM4O,EAAQxO,GAE1BZ,EAAQ,CAEZ68G,SAAiB,SAASztG,EAAGxO,EAAGgY,GAC9BlH,EAAM9Q,EAAIyK,EAAS+D,GAAKwJ,CAAA,EAG1BlU,MAAc,SAAS0K,GAKrBA,EAAI0W,YAAY,UAKhB1W,EAAIstG,WAAWrxG,GACf+D,EAAIstG,WAAW9jG,GAEfxJ,EAAIqtG,UAAU,KACdrtG,EAAIqtG,UAAU,GACdrtG,EAAIqtG,UAAU,GAMdrtG,EAAIqtG,UAAU,GACdrtG,EAAIqtG,UAAU,GACdrtG,EAAIqtG,UAAU,GAGdrtG,EAAIqtG,UAAU,KACdrtG,EAAIqtG,UAAU,KACdrtG,EAAIqtG,UAAU,KAKdrtG,EAAI0W,YAAY,KAChB1W,EAAIstG,WAAW,GACfttG,EAAIstG,WAAW,GACfttG,EAAIstG,WAAWrxG,GACf+D,EAAIstG,WAAW9jG,GACfxJ,EAAIqtG,UAAU,GAQd,IACI77G,EAAS0N,EADQ,GAGrBc,EAAIqtG,UAHiB,GAOrB,IAFA,IAAI/qG,EAAS,EAEN9Q,EAAOhG,OAAS8W,EAAS,KAC9BtC,EAAIqtG,UAAU,KACdrtG,EAAIutG,WAAW/7G,EAAQ8Q,EAAQ,KAC/BA,GAAU,IAGZtC,EAAIqtG,UAAU77G,EAAOhG,OAAS8W,GAC9BtC,EAAIutG,WAAW/7G,EAAQ8Q,EAAQ9Q,EAAOhG,OAAS8W,GAC/CtC,EAAIqtG,UAAU,GAIdrtG,EAAI0W,YAAY,OAsCdxX,EAAe,SAASc,GAS1B,IAPA,IAAIxO,EAAY,GAAKwO,EACjB/D,EAAkC,GAAvB,GAAK+D,GAChBwJ,EAAYxJ,EAAiB,EAG7BpP,EAAQ6X,IAEHvJ,EAAI,EAAGA,EAAI1N,EAAW0N,GAAK,EAClCtO,EAAMsR,IAAIzM,OAAOkpB,aAAazf,IAEhCtO,EAAMsR,IAAIzM,OAAOkpB,aAAantB,IAC9BZ,EAAMsR,IAAIzM,OAAOkpB,aAAa1iB,IAE9B,IAhDIiX,EACA1H,EACA1P,EA8CAiM,EAAU/W,IACV8iB,GAjDAZ,EAiDyBnL,EAhDzByD,EAAa,EACb1P,EAAa,EAEL,CAEZxG,MAAc,SAAS0K,EAAMxO,GAE3B,GAAMwO,IAASxO,GAAW,EACxB,KAAM,cAGR,KAAOga,EAAaha,GAAU,GAC5B0hB,EAAKm6F,UAAU,KAAUrtG,GAAQwL,EAAc1P,IAC/CtK,GAAW,EAAIga,EACfxL,KAAW,EAAIwL,EACf1P,EAAa,EACb0P,EAAa,EAGf1P,GAAckE,GAAQwL,EACtBA,GAA0Bha,CAAA,EAG5Bk8G,MAAc,WACRliG,EAAa,GACf0H,EAAKm6F,UAAUvxG,EAAA,IA0BnBgY,EAAOxe,MAAM9D,EAAWgY,GAExB,IAAIsc,EAAY,EAEZlY,EAAInY,OAAOkpB,aAAarc,EAAMwjB,IAGlC,IAFAA,GAAa,EAENA,EAAYxjB,EAAM9W,QAAQ,CAE/B,IAAIud,EAAItT,OAAOkpB,aAAarc,EAAMwjB,IAClCA,GAAa,EAETl1B,EAAM+8G,SAAS//F,EAAI7E,GAErB6E,GAAQ7E,GAIR+K,EAAOxe,MAAM1E,EAAMiJ,QAAQ+T,GAAIpE,GAE3B5Y,EAAMuG,OAAS,OAEbvG,EAAMuG,QAAW,GAAKqS,IACxBA,GAAa,GAGf5Y,EAAMsR,IAAI0L,EAAI7E,IAGhB6E,EAAI7E,EAAA,CAWR,OAPA+K,EAAOxe,MAAM1E,EAAMiJ,QAAQ+T,GAAIpE,GAG/BsK,EAAOxe,MAAM2G,EAASuN,GAEtBsK,EAAO45F,QAEA3lG,EAAQpP,aAAA,EAGb8P,EAAW,WAEb,IAAIzI,EAAO,CAAC,EACRxO,EAAQ,EAERyK,EAAQ,CAEZiG,IAAY,SAASsH,GACnB,GAAIvN,EAAM0xG,SAASnkG,GACjB,KAAM,WAAaA,EAErBxJ,EAAKwJ,GAAOhY,EACZA,GAAS,GAGX2F,KAAa,WACX,OAAO3F,CAAA,EAGTqI,QAAgB,SAASrI,GACvB,OAAOwO,EAAKxO,EAAA,EAGdm8G,SAAiB,SAASn8G,GACxB,YAAO,IAAOwO,EAAKxO,EAAA,GAGrB,OAAOyK,CAAA,EAGT,OAAOrL,CAAA,CA/MM,CAmNMoP,EAAOxO,GACjB8Q,EAAI,EAAGA,EAAI9Q,EAAQ8Q,GAAK,EAC/B,IAAK,IAAI1R,EAAI,EAAGA,EAAIoP,EAAOpP,GAAK,EAC9B4Y,EAAIikG,SAAS78G,EAAG0R,EAAGrG,EAASrL,EAAG0R,IAInC,IAAIpD,EAAIlO,IACRwY,EAAIlU,MAAM4J,GAIV,IAFA,IAAIuJ,EAlWyB,WAE7B,IAAIzI,EAAU,EACVxO,EAAU,EACVyK,EAAU,EACVuN,EAAU,GAEVlH,EAAQ,CAAC,EAET1R,EAAe,SAASoP,GAC1BwJ,GAAW/T,OAAOkpB,aAAazf,EAAW,GAAJc,GAAA,EAGpCd,EAAS,SAASc,GACpB,GAAIA,EAAI,OAED,IAAIA,EAAI,GACb,OAAO,GAAOA,EACT,GAAIA,EAAI,GACb,OAAeA,EAAI,GAAZ,GACF,GAAIA,EAAI,GACb,OAAeA,EAAI,GAAZ,GACF,GAAS,IAALA,EACT,OAAO,GACF,GAAS,IAALA,EACT,OAAO,GAET,KAAM,KAAOA,CAAA,EAoCf,OAjCAsC,EAAM+qG,UAAY,SAAS7jG,GAMzB,IAJAxJ,EAAWA,GAAW,EAAU,IAAJwJ,EAC5BhY,GAAW,EACXyK,GAAW,EAEJzK,GAAW,GAChBZ,EAAaoP,IAAaxO,EAAU,GACpCA,GAAW,GAIf8Q,EAAMorG,MAAQ,WAQZ,GANIl8G,EAAU,IACZZ,EAAaoP,GAAY,EAAIxO,GAC7BwO,EAAU,EACVxO,EAAU,GAGRyK,EAAU,GAAK,EAGjB,IADA,IAAIqG,EAAS,EAAIrG,EAAU,EAClBiD,EAAI,EAAGA,EAAIoD,EAAQpD,GAAK,EAC/BsK,GAAW,KAKjBlH,EAAM/M,SAAW,WACf,OAAOiU,CAAA,EAGFlH,CAAA,CA/DsB,GAmWzB4Q,EAAQhU,EAAEvG,cACL6S,EAAI,EAAGA,EAAI0H,EAAM1nB,OAAQggB,GAAK,EACrC/C,EAAO4kG,UAAUn6F,EAAM1H,IAIzB,OAFA/C,EAAOilG,QAEA,yBAA2BjlG,CAAA,EAMpC,OAAOzI,CAAA,CAprEI,GA0rEXsC,EAAOuqG,mBAAmB,SAAW,SAAS7sG,GAgC5C,OA9BA,SAAqBA,GAEnB,IADA,IAAIxO,EAAO,GACFyK,EAAE,EAAGA,EAAI+D,EAAIxU,OAAQyQ,IAAK,CACjC,IAAIuN,EAAWxJ,EAAIxJ,WAAWyF,GAC1BuN,EAAW,IAAMhY,EAAKX,KAAK2Y,GACtBA,EAAW,KAClBhY,EAAKX,KAAK,IAAQ2Y,GAAY,EAC1B,IAAmB,GAAXA,GAELA,EAAW,OAAUA,GAAY,MACxChY,EAAKX,KAAK,IAAQ2Y,GAAY,GAC1B,IAASA,GAAU,EAAK,GACxB,IAAmB,GAAXA,IAIZvN,IAIAuN,EAAW,QAAwB,KAAXA,IAAmB,GAClB,KAApBxJ,EAAIxJ,WAAWyF,IACpBzK,EAAKX,KAAK,IAAQ2Y,GAAW,GACzB,IAASA,GAAU,GAAM,GACzB,IAASA,GAAU,EAAK,GACxB,IAAmB,GAAXA,GAAA,CAGhB,OAAOhY,CAAA,CA5BT,CA8BmBwO,EAAA,YAOCwJ,EAAA,mBAAPvN,EAIf,WACE,OAAOqG,CAAA,GALarG,EAAAsb,MAAA/lB,EAAX,IAAWyK,KAAA+D,EAAAjK,QAAAyT,EAAC,+bChvEnB5Y,EAAW,SAACoP,GAA0C,QAAEA,GAAsB,iBAARA,IAAqB5O,MAAMC,QAAQ2O,EAAA,EAEhG,SAASd,EAAUc,OAAuB,IAAAxO,EAAA,GAAAyK,EAAA,EAAAA,EAAA9O,UAAA3B,OAAAyQ,IAAAzK,EAAAyK,EAAA,GAAA9O,UAAA8O,GACvD,IAAKzK,EAAQhG,OAAQ,OAAOwU,EAC5B,IAAMyI,EAASjX,EAAQO,QACvB,gBAAI0W,GAAyB7X,EAASoP,IAAYpP,EAAS6X,IAC3DzI,EAASwJ,EAAH,GAAQxJ,GACd3T,OAAOg1C,KAAK54B,GAAQqQ,SAAQ,SAACtnB,GAC3B,IAAMyK,EAAc+D,EAAOxO,GACrBgY,EAAcf,EAAOjX,GAEvBJ,MAAMC,QAAQ4K,IAAgB7K,MAAMC,QAAQmY,GAC9CxJ,EAAOxO,GAAOgY,EACL5Y,EAASqL,IAAgBrL,EAAS4Y,GAC3CxJ,EAAOxO,GAAO0N,EAAU7S,OAAOG,OAAO,CAAC,EAAGyP,GAAcuN,GAExDxJ,EAAOxO,GAAOgY,CAAA,IAIXtK,EAASqY,WAAC,EAADjV,EAAC,CAAAtC,GAAWxO,KAf+CwO,CAAA,CCP9D,SAASyI,EAAYzI,EAAaxO,GAC/C,IAAMyK,EAAOiyB,SAAS9B,cAAc,KACpCnwB,EAAK2xG,SAAWp8G,EAChByK,EAAK8mD,KAAO/iD,EACZkuB,SAAS0b,KAAKnJ,YAAYxkC,GAC1BA,EAAK4xG,QACL3/E,SAAS0b,KAAKwuB,YAAYn8D,EAAA,CCNb,SAAeiX,EAAUlT,qmCACtC,MAAO,CAAP,EAAO,IAAI8tG,SAAQ,SAACt8G,GAClB,IAAMyK,EAAM,IAAIwgC,eAChBxgC,EAAI8xG,OAAS,WACX,IAAM/tG,EAAS,IAAIguG,WACnBhuG,EAAOiuG,UAAY,WACjBz8G,EAAQwO,EAAOoU,OAAA,EAEjBpU,EAAOkuG,cAAcjyG,EAAIorB,SAAA,EAE3BprB,EAAI4gC,KAAK,MAAO78B,GAChB/D,EAAIogC,aAAe,OACnBpgC,EAAI6gC,MAAA,wSCRR,MAAAtxB,EAAA,CACEuhG,EAAG,IACHjC,EAAG,IACHkC,EAAG,IACHC,EAAG,+NCLL,WAKE,SAAAjtG,EAAYA,OAAExO,EAAGwO,EAAAo8E,IAAEngF,EAAI+D,EAAA6Y,KACrBxd,KAAKihF,KAAO9qF,EACZ6J,KAAK8yG,MAAQlyG,CAAA,CAgTjB,OA7SE+D,EAAAzT,UAAA6hH,KAAA,SAAKpuG,EAAWxO,EAAWyK,EAAcuN,GACvC,IACIlH,EAEJ,OAHajH,KAAK8yG,OAIhB,ICfE,ODgBA7rG,EAAejH,KAAKgzG,SACpB,MACF,IChBI,SDiBF/rG,EAAejH,KAAKizG,YACpB,MACF,IClBW,iBDmBThsG,EAAejH,KAAKkzG,mBACpB,MACF,ICvBK,UDwBHjsG,EAAejH,KAAKmzG,aACpB,MACF,ICtBU,gBDuBRlsG,EAAejH,KAAKozG,kBACpB,MAEF,QACEnsG,EAAejH,KAAKqzG,YAGxBpsG,EAAanP,KAAKkI,KAAM,CAAEhF,EAAC2J,EAAE2H,EAACnW,EAAE2F,KAAI8E,EAAE0yG,YAAWnlG,GAAA,EAGnDxJ,EAAAzT,UAAAqiH,cAAA,SAAc5uG,SAAE/D,EAAC+D,EAAA3J,EAAEmT,EAACxJ,EAAA2H,EAAErF,EAAItC,EAAA7I,KAAEvG,EAAAoP,EAAA0zF,SAAAx0F,OAAA,IAAWtO,EAAA,EAACA,EAChC6X,EAAKxM,EAAIqG,EAAO,EAChB4Q,EAAK1J,EAAIlH,EAAO,KAFsBtC,EAAAouG,QAK/B,QAAb58G,EAAA6J,KAAKwzG,gBAAA,IAAQr9G,GAAAA,EAAEm4C,aAAa,YAAa,UAAW,IAAMzqC,EAAY3R,KAAKqb,GAAE,IAAIH,EAAE,IAAIyK,EAAE,MAG3FlT,EAAAzT,UAAAuiH,UAAA,SAAU9uG,GAAV,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAc9yG,EAAAA,EAAA,GACdkE,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,UACvE9lC,EAAKq9G,SAASllE,aAAa,KAAMl0C,OAAO+T,EAAIvN,EAAO,IACnDzK,EAAKq9G,SAASllE,aAAa,KAAMl0C,OAAO6M,EAAIrG,EAAO,IACnDzK,EAAKq9G,SAASllE,aAAa,IAAKl0C,OAAOwG,EAAO,SAKpD+D,EAAAzT,UAAAwiH,aAAA,SAAa/uG,GAAb,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAc9yG,EAAAA,EAAA,GACdkE,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aAAa,IAAKl0C,OAAO+T,IACvChY,EAAKq9G,SAASllE,aAAa,IAAKl0C,OAAO6M,IACvC9Q,EAAKq9G,SAASllE,aAAa,QAASl0C,OAAOwG,IAC3CzK,EAAKq9G,SAASllE,aAAa,SAAUl0C,OAAOwG,GAAA,MAMlD+D,EAAAzT,UAAAyiH,kBAAA,SAAkBhvG,GAAlB,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAc9yG,EAAAA,EAAA,GACdkE,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aACZ,IACA,KAAKngC,EAAC,IAAIlH,EACR,KAAKrG,EACL,KAAKA,EAAO,EACZ,KAAKA,EAAO,EAAC,IAAIA,EAAO,EAAC,iBAAiBA,EAAA,MAOpD+D,EAAAzT,UAAA0iH,oBAAA,SAAoBjvG,GAApB,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAc9yG,EAAAA,EAAA,GACdkE,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aACZ,IACA,KAAKngC,EAAC,IAAIlH,EACR,KAAKrG,EACL,KAAKA,EACL,MAAMA,EAAO,EACb,KAAKA,EAAO,EAAC,IAAIA,EAAO,EAAC,eAAeA,EAAO,EAAC,KAAKA,EAAO,QAOtE+D,EAAAzT,UAAA2iH,yBAAA,SAAyBlvG,GAAzB,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAc9yG,EAAAA,EAAA,GACdkE,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aACZ,IACA,KAAKngC,EAAC,IAAIlH,EACR,KAAKrG,EACL,KAAKA,EACL,KAAKA,EAAI,IAAIA,EAAI,eAAeA,EAAI,KAAKA,EAAA,MAOnD+D,EAAAzT,UAAA4iH,qBAAA,SAAqBnvG,GAArB,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAc9yG,EAAAA,EAAA,GACdkE,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aACZ,IACA,KAAKngC,EAAC,IAAIlH,EACR,KAAKrG,EAAO,EACZ,KAAKA,EAAO,EAAC,IAAIA,EAAO,EAAC,cAAcA,EAAO,EAAC,IAAIA,EAAO,EAC1D,KAAKA,EAAO,EACZ,MAAMA,EAAO,EACb,KAAKA,EAAO,EAAC,IAAIA,EAAO,EAAC,eAAeA,EAAO,EAAC,KAAKA,EAAO,QAMtE+D,EAAAzT,UAAA8hH,SAAA,SAASruG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KACnBkE,KAAKyzG,UAAU,CAAEz4G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,KAGzC1zF,EAAAzT,UAAAmiH,YAAA,SAAY1uG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KACtBkE,KAAK0zG,aAAa,CAAE14G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,KAG5C1zF,EAAAzT,UAAAiiH,aAAA,SAAaxuG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAWtC,EAAA2uG,YAC9B/9G,EAAe0R,GAAeA,GAAa,EAAG,GAAK,EACnDpD,EAAgBoD,GAAeA,EAAY,EAAG,GAAK,EACnDmG,EAAcnG,GAAeA,EAAY,GAAI,GAAK,EAClD4Q,EAAiB5Q,GAAeA,EAAY,EAAG,GAAK,EAEpDkJ,EAAiB5a,EAAesO,EAAgBuJ,EAAcyK,EAEpE,GAAuB,IAAnB1H,EAKJ,GAAIA,EAAiB,GAAM5a,GAAgBsO,GAAmBuJ,GAAeyK,EAC3E7X,KAAK0zG,aAAa,CAAE14G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,QAD5C,CAKA,GAAuB,IAAnBloF,EAAsB,CACxB,IAAI1P,EAAW,EAWf,OATIlL,GAAgB6X,EAClB3M,EAAWvO,KAAKqb,GAAK,EACZH,GAAevJ,EACxBpD,EAAWvO,KAAKqb,GACP1J,GAAiBgU,IAC1BpX,GAAYvO,KAAKqb,GAAK,QAGxBvN,KAAK4zG,oBAAoB,CAAE54G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQ53F,GAAA,CAIjD,GAAuB,IAAnB0P,EAYF,OAXI1P,EAAW,EAEX2M,EACF3M,EAAWvO,KAAKqb,GAAK,EACZ1J,EACTpD,EAAWvO,KAAKqb,GACPsK,IACTpX,GAAYvO,KAAKqb,GAAK,QAGxBvN,KAAK2zG,kBAAkB,CAAE34G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQ53F,GAAA,MAnC7CT,KAAKyzG,UAAU,CAAEz4G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,KAwC3C1zF,EAAAzT,UAAAkiH,kBAAA,SAAkBzuG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAWtC,EAAA2uG,YACnC/9G,EAAe0R,GAAeA,GAAa,EAAG,GAAK,EACnDpD,EAAgBoD,GAAeA,EAAY,EAAG,GAAK,EACnDmG,EAAcnG,GAAeA,EAAY,GAAI,GAAK,EAClD4Q,EAAiB5Q,GAAeA,EAAY,EAAG,GAAK,EAEpDkJ,EAAiB5a,EAAesO,EAAgBuJ,EAAcyK,EAEpE,GAAuB,IAAnB1H,EAKJ,GAAIA,EAAiB,GAAM5a,GAAgBsO,GAAmBuJ,GAAeyK,EAC3E7X,KAAK0zG,aAAa,CAAE14G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,QAD5C,CAKA,GAAuB,IAAnBloF,EAAsB,CACxB,IAAI1P,EAAW,EAWf,OATIlL,GAAgB6X,EAClB3M,EAAWvO,KAAKqb,GAAK,EACZH,GAAevJ,EACxBpD,EAAWvO,KAAKqb,GACP1J,GAAiBgU,IAC1BpX,GAAYvO,KAAKqb,GAAK,QAGxBvN,KAAK6zG,yBAAyB,CAAE74G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQ53F,GAAA,CAItD,GAAuB,IAAnB0P,EAYF,OAXI1P,EAAW,EAEX2M,EACF3M,EAAWvO,KAAKqb,GAAK,EACZ1J,EACTpD,EAAWvO,KAAKqb,GACPsK,IACTpX,GAAYvO,KAAKqb,GAAK,QAGxBvN,KAAK2zG,kBAAkB,CAAE34G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQ53F,GAAA,MAnC7CT,KAAKyzG,UAAU,CAAEz4G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,KAwC3C1zF,EAAAzT,UAAA+hH,YAAA,SAAYtuG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAWtC,EAAA2uG,YAC7B/9G,EAAe0R,GAAeA,GAAa,EAAG,GAAK,EACnDpD,EAAgBoD,GAAeA,EAAY,EAAG,GAAK,EACnDmG,EAAcnG,GAAeA,EAAY,GAAI,GAAK,EAClD4Q,EAAiB5Q,GAAeA,EAAY,EAAG,GAAK,EAInC,IAFA1R,EAAesO,EAAgBuJ,EAAcyK,EAO/DtiB,GAAiB6X,EAKjBvJ,GAAkBgU,EAKvB7X,KAAK0zG,aAAa,CAAE14G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,IAJxCr4F,KAAK4zG,oBAAoB,CAAE54G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAUnmG,KAAKqb,GAAK,IAL3DvN,KAAK4zG,oBAAoB,CAAE54G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,UAAWnmG,KAAKqb,GAAK,IAL5DvN,KAAK8zG,qBAAqB,CAAE94G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAUnmG,KAAKqb,GAAK,KAiBhE5I,EAAAzT,UAAAgiH,mBAAA,SAAmBvuG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAWtC,EAAA2uG,YACpC/9G,EAAe0R,GAAeA,GAAa,EAAG,GAAK,EACnDpD,EAAgBoD,GAAeA,EAAY,EAAG,GAAK,EACnDmG,EAAcnG,GAAeA,EAAY,GAAI,GAAK,EAClD4Q,EAAiB5Q,GAAeA,EAAY,EAAG,GAAK,EAInC,IAFA1R,EAAesO,EAAgBuJ,EAAcyK,EAO/DtiB,GAAiB6X,EAKjBvJ,GAAkBgU,EAKvB7X,KAAK0zG,aAAa,CAAE14G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAU,IAJxCr4F,KAAK6zG,yBAAyB,CAAE74G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAUnmG,KAAKqb,GAAK,IALhEvN,KAAK6zG,yBAAyB,CAAE74G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,UAAWnmG,KAAKqb,GAAK,IALjEvN,KAAK8zG,qBAAqB,CAAE94G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAUnmG,KAAKqb,GAAK,KAgBlE5I,CAAA,CAvTA,8NEAA,WAKE,SAAAA,EAAYA,OAAExO,EAAGwO,EAAAo8E,IAAEngF,EAAI+D,EAAA6Y,KACrBxd,KAAKihF,KAAO9qF,EACZ6J,KAAK8yG,MAAQlyG,CAAA,CA2HjB,OAxHE+D,EAAAzT,UAAA6hH,KAAA,SAAKpuG,EAAWxO,EAAWyK,EAAcuN,GACvC,IACIlH,EAEJ,OAHajH,KAAK8yG,OAIhB,ICdI,SDeF7rG,EAAejH,KAAKqzG,YACpB,MACF,IChBU,gBDiBRpsG,EAAejH,KAAKozG,kBACpB,MAEF,QACEnsG,EAAejH,KAAKgzG,SAGxB/rG,EAAanP,KAAKkI,KAAM,CAAEhF,EAAC2J,EAAE2H,EAACnW,EAAE2F,KAAI8E,EAAEy3F,SAAQlqF,GAAA,EAGhDxJ,EAAAzT,UAAAqiH,cAAA,SAAc5uG,SAAE/D,EAAC+D,EAAA3J,EAAEmT,EAACxJ,EAAA2H,EAAErF,EAAItC,EAAA7I,KAAEvG,EAAAoP,EAAA0zF,SAAAx0F,OAAA,IAAWtO,EAAA,EAACA,EAChC6X,EAAKxM,EAAIqG,EAAO,EAChB4Q,EAAK1J,EAAIlH,EAAO,KAFsBtC,EAAAouG,QAK/B,QAAb58G,EAAA6J,KAAKwzG,gBAAA,IAAQr9G,GAAAA,EAAEm4C,aAAa,YAAa,UAAW,IAAMzqC,EAAY3R,KAAKqb,GAAE,IAAIH,EAAE,IAAIyK,EAAE,MAG3FlT,EAAAzT,UAAAuiH,UAAA,SAAU9uG,GAAV,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EACrB/W,EAAUqL,EAAO,EAEvBZ,KAAKuzG,cAAc96F,EAAAA,EAAA,GACd9T,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aAAa,YAAa,WACxCn4C,EAAKq9G,SAASllE,aACZ,IACA,MAAKngC,EAAIvN,EAAO,GAAC,IAAIqG,EACnB,KAAKrG,EAAO,EAAC,IAAIA,EAAO,EAD1B,oBAGSrL,EACP,MAAKqL,EAAO,EAAIrL,GAAO,KAAIqL,EAAO,EAAIrL,GAJxC,uBAWRoP,EAAAzT,UAAAwiH,aAAA,SAAa/uG,GAAb,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EACrB/W,EAAUqL,EAAO,EAEvBZ,KAAKuzG,cAAc96F,EAAAA,EAAA,GACd9T,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aAAa,YAAa,WACxCn4C,EAAKq9G,SAASllE,aACZ,IACA,KAAKngC,EAAC,IAAIlH,EACR,KAAKrG,EACL,KAAKA,EACL,MAAMA,EAHR,OAKOuN,EAAI5Y,GAAO,KAAI0R,EAAI1R,GACxB,MAAKqL,EAAO,EAAIrL,GAChB,MAAKqL,EAAO,EAAIrL,GAChB,MAAa,EAAIA,EAAXqL,GACN,UAMV+D,EAAAzT,UAAA6iH,mBAAA,SAAmBpvG,GAAnB,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EACrB/W,EAAUqL,EAAO,EAEvBZ,KAAKuzG,cAAc96F,EAAAA,EAAA,GACd9T,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aAAa,YAAa,WACxCn4C,EAAKq9G,SAASllE,aACZ,IACA,KAAKngC,EAAC,KAAIlH,EAAI,IAAM1R,GAClB,KAAK,EAAIA,EACT,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAwB,IAAVA,EAAa,IAAc,IAAVA,EAClE,KAAK,EAAIA,EACT,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAwB,IAAVA,EAAa,IAAe,KAAVA,EACnE,MAAM,EAAIA,EACV,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAyB,KAAVA,EAAa,IAAe,KAAVA,EACpE,MAAM,EAAIA,EACV,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAyB,KAAVA,EAAa,IAAc,IAAVA,EACnE,MAAK4Y,EAAI,IAAM5Y,GAAO,KAAI0R,EAAI1R,GAC9B,KAAK,EAAIA,EACT,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAwB,IAAVA,EAAa,IAAc,IAAVA,EAClE,KAAK,EAAIA,EACT,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAyB,KAAVA,EAAa,IAAc,IAAVA,EACnE,MAAM,EAAIA,EACV,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAyB,KAAVA,EAAa,IAAe,KAAVA,EACpE,MAAM,EAAIA,EACV,KAAK,IAAMA,EAAO,IAAI,IAAMA,EAAO,cAAwB,IAAVA,EAAa,IAAe,KAAVA,EAAA,MAM7EoP,EAAAzT,UAAA8hH,SAAA,SAASruG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAQtC,EAAA0zF,SAC7Br4F,KAAKyzG,UAAU,CAAEz4G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQpxF,GAAA,EAGvCtC,EAAAzT,UAAAmiH,YAAA,SAAY1uG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAQtC,EAAA0zF,SAChCr4F,KAAK0zG,aAAa,CAAE14G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQpxF,GAAA,EAG1CtC,EAAAzT,UAAAkiH,kBAAA,SAAkBzuG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAQtC,EAAA0zF,SACtCr4F,KAAK+zG,mBAAmB,CAAE/4G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQpxF,GAAA,EAElDtC,CAAA,CAlIA,8NEAA,WAKE,SAAAA,EAAYA,OAAExO,EAAGwO,EAAAo8E,IAAEngF,EAAI+D,EAAA6Y,KACrBxd,KAAKihF,KAAO9qF,EACZ6J,KAAK8yG,MAAQlyG,CAAA,CA+DjB,OA5DE+D,EAAAzT,UAAA6hH,KAAA,SAAKpuG,EAAWxO,EAAWyK,EAAcuN,ICTjC,WDUOnO,KAAK8yG,MAKC9yG,KAAKqzG,YAILrzG,KAAKgzG,UAGXl7G,KAAKkI,KAAM,CAAEhF,EAAC2J,EAAE2H,EAACnW,EAAE2F,KAAI8E,EAAEy3F,SAAQlqF,GAAA,EAGhDxJ,EAAAzT,UAAAqiH,cAAA,SAAc5uG,SAAE/D,EAAC+D,EAAA3J,EAAEmT,EAACxJ,EAAA2H,EAAErF,EAAItC,EAAA7I,KAAEvG,EAAAoP,EAAA0zF,SAAAx0F,OAAA,IAAWtO,EAAA,EAACA,EAChC6X,EAAKxM,EAAIqG,EAAO,EAChB4Q,EAAK1J,EAAIlH,EAAO,KAFsBtC,EAAAouG,QAK/B,QAAb58G,EAAA6J,KAAKwzG,gBAAA,IAAQr9G,GAAAA,EAAEm4C,aAAa,YAAa,UAAW,IAAMzqC,EAAY3R,KAAKqb,GAAE,IAAIH,EAAE,IAAIyK,EAAE,MAG3FlT,EAAAzT,UAAAuiH,UAAA,SAAU9uG,GAAV,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAchhG,EAAAA,EAAA,GACd5N,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,UACvE9lC,EAAKq9G,SAASllE,aAAa,KAAMl0C,OAAO+T,EAAIvN,EAAO,IACnDzK,EAAKq9G,SAASllE,aAAa,KAAMl0C,OAAO6M,EAAIrG,EAAO,IACnDzK,EAAKq9G,SAASllE,aAAa,IAAKl0C,OAAOwG,EAAO,SAKpD+D,EAAAzT,UAAAwiH,aAAA,SAAa/uG,GAAb,IAAAxO,EAAA,KACUyK,EAAe+D,EAAI7I,KAAbqS,EAASxJ,EAAI3J,EAAViM,EAAMtC,EAAI2H,EAE3BtM,KAAKuzG,cAAchhG,EAAAA,EAAA,GACd5N,GAAI,CACPouG,KAAM,WACJ58G,EAAKq9G,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,QACvE9lC,EAAKq9G,SAASllE,aAAa,IAAKl0C,OAAO+T,IACvChY,EAAKq9G,SAASllE,aAAa,IAAKl0C,OAAO6M,IACvC9Q,EAAKq9G,SAASllE,aAAa,QAASl0C,OAAOwG,IAC3CzK,EAAKq9G,SAASllE,aAAa,SAAUl0C,OAAOwG,GAAA,MAKlD+D,EAAAzT,UAAA8hH,SAAA,SAASruG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAQtC,EAAA0zF,SAC7Br4F,KAAKyzG,UAAU,CAAEz4G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQpxF,GAAA,EAGvCtC,EAAAzT,UAAAmiH,YAAA,SAAY1uG,OAAExO,EAACwO,EAAA3J,EAAE4F,EAAC+D,EAAA2H,EAAE6B,EAAIxJ,EAAA7I,KAAEmL,EAAQtC,EAAA0zF,SAChCr4F,KAAK0zG,aAAa,CAAE14G,EAAC7E,EAAEmW,EAAC1L,EAAE9E,KAAIqS,EAAEkqF,SAAQpxF,GAAA,EAE5CtC,CAAA,CAtEA,GEDAhP,EAEU,01CCOJyY,EAAa,CACjB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAGfze,EAAU,CACd,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,YAGrB,WAYE,SAAAgV,EAAYA,GACV3E,KAAKwzG,SAAW3gF,SAASoJ,gBAAgB,6BAA8B,OACvEj8B,KAAKwzG,SAASllE,aAAa,QAASl0C,OAAOuK,EAAQ1F,QACnDe,KAAKwzG,SAASllE,aAAa,SAAUl0C,OAAOuK,EAAQ4sB,SACpDvxB,KAAKg0G,MAAQnhF,SAASoJ,gBAAgB,6BAA8B,QACpEj8B,KAAKwzG,SAASpuE,YAAYplC,KAAKg0G,OAE/Bh0G,KAAKi0G,SAAWtvG,CAAA,CA8fpB,OA3fE3T,OAAAgnB,eAAIrT,EAAAzT,UAAA,QAAK,KAAT,WACE,OAAO8O,KAAKi0G,SAASh1G,KAAA,kCAGvBjO,OAAAgnB,eAAIrT,EAAAzT,UAAA,SAAM,KAAV,WACE,OAAO8O,KAAKi0G,SAAS1iF,MAAA,kCAGvB5sB,EAAAzT,UAAAgjH,WAAA,WACE,OAAOl0G,KAAKwzG,QAAA,EAGR7uG,EAAAzT,UAAAijH,OAAN,SAAaxvG,mIACLxO,EAAQwO,EAAGgsG,iBACX/vG,EAAU1O,KAAK6O,IAAIf,KAAKi0G,SAASh1G,MAAOe,KAAKi0G,SAAS1iF,QAAiC,EAAvBvxB,KAAKi0G,SAASjlB,OAC9E7gF,EAAanO,KAAKi0G,SAASt1D,QAAUhpD,EAAoBiL,EAAU1O,KAAKojB,KAAK,GAAK1U,EAClFqG,EAAU/U,KAAKC,MAAMgc,EAAahY,GACpCZ,EAAgB,CAClB6+G,UAAW,EACXC,UAAW,EACXp1G,MAAO,EACPsyB,OAAQ,GAGVvxB,KAAKs0G,IAAM3vG,EAEP3E,KAAKi0G,SAASM,MAEhB,GAAMv0G,KAAKw0G,aAFT,aAGF,GADA/pF,EAAAgqF,QACKz0G,KAAK00G,OAAQ,UACZ7wG,EAA8B7D,KAAKi0G,SAAjC7mG,EAAYvJ,EAAA8wG,aAAE98F,EAAShU,EAAA+wG,UACzBn0G,EAAa2M,EAAaynG,UAAY1kG,EAAwB0H,EAAUi9F,sBACxEpoG,EAAgBxa,KAAKC,MAAMsO,EAAatK,EAAQA,GAEtDZ,ECxES,SAA4BoP,OACzCxO,EAAcwO,EAAAowG,eACdn0G,EAAa+D,EAAAqwG,cACb7mG,EAAaxJ,EAAAswG,cACbhuG,EAAiBtC,EAAAuwG,kBACjB3/G,EAAOoP,EAAAwwG,QAEDtxG,EAAW,CAAE7I,EAAG,EAAGsR,EAAG,GACtBc,EAAY,CAAEpS,EAAG,EAAGsR,EAAG,GAE7B,GAAInW,GAAkB,GAAKyK,GAAiB,GAAKuN,GAAiB,GAAK5Y,GAAW,EAChF,MAAO,CACLg8B,OAAQ,EACRtyB,MAAO,EACPo1G,UAAW,EACXD,UAAW,GAIf,IAAMv8F,EAAI1hB,EAAiByK,EA6B3B,OA1BAiD,EAAS7I,EAAI9I,KAAKC,MAAMD,KAAKojB,KAAKnH,EAAgB0J,IAE9ChU,EAAS7I,GAAK,IAAG6I,EAAS7I,EAAI,GAE9BiM,GAAqBA,EAAoBpD,EAAS7I,IAAG6I,EAAS7I,EAAIiM,GAElEpD,EAAS7I,EAAI,GAAM,GAAG6I,EAAS7I,IACnCoS,EAAUpS,EAAI6I,EAAS7I,EAAIzF,EAI3BsO,EAASyI,EAAI,EAAI,EAAIpa,KAAKyP,MAAMkC,EAAS7I,EAAI6c,EAAI,GAAK,GACtDzK,EAAUd,EAAIpa,KAAKuc,MAAMrB,EAAUpS,EAAI6c,IAEnChU,EAASyI,EAAIzI,EAAS7I,EAAImT,GAAkBlH,GAAqBA,EAAoBpD,EAASyI,KAC5FrF,GAAqBA,EAAoBpD,EAASyI,GACpDzI,EAASyI,EAAIrF,EACTpD,EAASyI,EAAI,GAAM,GAAGzI,EAAS7I,KAEnC6I,EAASyI,GAAK,EAEhBc,EAAUd,EAAIzI,EAASyI,EAAI/W,EAC3BsO,EAAS7I,EAAI,EAAI,EAAI9I,KAAKyP,MAAMkC,EAASyI,EAAIuL,EAAI,GAAK,GACtDzK,EAAUpS,EAAI9I,KAAKuc,MAAMrB,EAAUd,EAAIuL,IAGlC,CACL0Z,OAAQnkB,EAAUd,EAClBrN,MAAOmO,EAAUpS,EACjBq5G,UAAWxwG,EAASyI,EACpB8nG,UAAWvwG,EAAS7I,EAAA,CApDT,CDwE0B,CACjCg6G,cAAeh1G,KAAK00G,OAAOz1G,MAC3B81G,eAAgB/0G,KAAK00G,OAAOnjF,OAC5B0jF,cAAavoG,EACbwoG,kBAAmB/+G,EAAQ,GAC3Bg/G,QAAOluG,IAAA,wBAIXjH,KAAKo1G,iBACLp1G,KAAKq1G,UAAS,SAAC1wG,EAAW/D,mBACxB,QAAI6X,EAAKw7F,SAASU,aAAaW,oBAE3B3wG,IAAMxO,EAAQZ,EAAc6+G,WAAa,GACzCzvG,GAAKxO,EAAQZ,EAAc6+G,WAAa,GACxCxzG,IAAMzK,EAAQZ,EAAc8+G,WAAa,GACzCzzG,GAAKzK,EAAQZ,EAAc8+G,WAAa,IAM3B,QAAblmG,EAAAC,EAAWzJ,UAAA,IAAEwJ,OAAA,EAAAA,EAAGvN,MAA+B,QAA9BqG,EAAKmH,EAAWzJ,EAAIxO,EAAQ,cAAE8Q,OAAA,EAAAA,EAAGrG,MAAmB,QAAjBiD,EAAIuK,EAAWzJ,UAAA,IAAEd,OAAA,EAAAA,EAAGjD,EAAIzK,EAAQ,MAI1E,QAAViX,EAAAzd,EAAQgV,UAAA,IAAEyI,OAAA,EAAAA,EAAGxM,MAA4B,QAA3BiX,EAAKloB,EAAQgV,EAAIxO,EAAQ,cAAE0hB,OAAA,EAAAA,EAAGjX,MAAgB,QAAduP,EAAIxgB,EAAQgV,UAAA,IAAEwL,OAAA,EAAAA,EAAGvP,EAAIzK,EAAQ,QAMjF6J,KAAKu1G,cAEDv1G,KAAKi0G,SAASM,MAChB,GAAMv0G,KAAKwnF,UAAU,CAAEvoF,MAAO1J,EAAc0J,MAAOsyB,OAAQh8B,EAAcg8B,OAAQl8B,MAAKc,EAAEg/G,QAAOluG,KAD7F,aACFwjB,EAAAgqF,OAAA,mCAIJ9vG,EAAAzT,UAAAkkH,eAAA,qBACQjnG,EAAUnO,KAAKwzG,SACfvsG,EAAUjH,KAAKi0G,SAErB,GAAI9lG,EAAS,CACX,IAAM5Y,EAA2C,QAA5BoP,EAAGsC,EAAQuuG,yBAAA,IAAiB7wG,OAAA,EAAAA,EAAE8wG,SAC7C5xG,EAAiC,QAA5B1N,EAAG8Q,EAAQuuG,yBAAA,IAAiBr/G,OAAA,EAAAA,EAAE6kC,MAezC,IAbIzlC,GAAmBsO,IACrB7D,KAAK01G,aAAa,CAChB1qF,QAASz1B,EACTylC,MAAOn3B,EACP8xG,mBAAoB,EACpB36G,EAAG,EACHsR,EAAG,EACHilB,OAAQtqB,EAAQsqB,OAChBtyB,MAAOgI,EAAQhI,MACf1N,KAAM,qBAImB,QAA7BqP,EAAIqG,EAAQuuG,yBAAA,IAAiB50G,OAAA,EAAAA,EAAE6N,MAAO,CACpC,IAAMrB,EAAOlb,KAAK6O,IAAIkG,EAAQhI,MAAOgI,EAAQsqB,QACvC1Z,EAAUgb,SAASoJ,gBAAgB,6BAA8B,QACvEj8B,KAAK41G,oBAAsB/iF,SAASoJ,gBAAgB,6BAA8B,YAClFj8B,KAAK41G,oBAAoBtnE,aAAa,KAAM,8BAC5CtuC,KAAKg0G,MAAM5uE,YAAYplC,KAAK41G,qBAE5B/9F,EAAQy2B,aAAa,IAAKl0C,QAAQ6M,EAAQhI,MAAQmO,GAAQ,IAC1DyK,EAAQy2B,aAAa,IAAKl0C,QAAQ6M,EAAQsqB,OAASnkB,GAAQ,IAC3DyK,EAAQy2B,aAAa,QAASl0C,OAAOgT,IACrCyK,EAAQy2B,aAAa,SAAUl0C,OAAOgT,IACtCyK,EAAQy2B,aAAa,KAAMl0C,OAAQgT,EAAO,EAAKnG,EAAQuuG,kBAAkB/mG,QAEzEzO,KAAK41G,oBAAoBxwE,YAAYvtB,EAAA,IAK3ClT,EAAAzT,UAAAmkH,SAAA,SAAS1wG,GAAT,QAAAwJ,EAAA,KACE,IAAKnO,KAAKs0G,IACR,KAAM,yBAGR,IAAMrtG,EAAUjH,KAAKi0G,SACf1+G,EAAQyK,KAAKs0G,IAAI3D,iBAEvB,GAAIp7G,EAAQ0R,EAAQhI,OAAS1J,EAAQ0R,EAAQsqB,OAC3C,KAAM,2BAGR,IAAM1tB,EAAU3R,KAAK6O,IAAIkG,EAAQhI,MAAOgI,EAAQsqB,QAA2B,EAAjBtqB,EAAQ+nF,OAC5D5hF,EAAanG,EAAQ03C,QAAUhpD,EAAoBkO,EAAU3R,KAAKojB,KAAK,GAAKzR,EAC5EgU,EAAU3lB,KAAKC,MAAMib,EAAa7X,GAClC4a,EAAaje,KAAKC,OAAO8U,EAAQhI,MAAQ1J,EAAQsiB,GAAW,GAC5DpX,EAAavO,KAAKC,OAAO8U,EAAQsqB,OAASh8B,EAAQsiB,GAAW,GAC7DY,EAAM,IAAI/L,EAAM,CAAEq0E,IAAK/gF,KAAKwzG,SAAUh2F,KAAMvW,EAAQ4uG,YAAYr4F,OAEtExd,KAAK81G,cAAgBjjF,SAASoJ,gBAAgB,6BAA8B,YAC5Ej8B,KAAK81G,cAAcxnE,aAAa,KAAM,uBACtCtuC,KAAKg0G,MAAM5uE,YAAYplC,KAAK81G,eAE5B91G,KAAK01G,aAAa,CAChB1qF,QAA4B,QAArB70B,EAAE8Q,EAAQ4uG,mBAAA,IAAW1/G,OAAA,EAAAA,EAAEs/G,SAC9Bz6E,MAAO/zB,EAAQ4uG,YAAY76E,MAC3B26E,mBAAoB,EACpB36G,EAAG,EACHsR,EAAG,EACHilB,OAAQtqB,EAAQsqB,OAChBtyB,MAAOgI,EAAQhI,MACf1N,KAAM,cAGR,IAAK,IAALk5B,EAAA,SAASt0B,GACP,IAAK,IAAL,WAAS8Q,GACP,OAAItC,IAAWA,EAAOxO,EAAG8Q,GAAA,YAGZ,QAATrG,EAAC2R,EAAK+hG,WAAA,IAAG1zG,OAAA,EAAAA,EAAE8vG,OAAOv6G,EAAG8Q,KAIzBwR,EAAIs6F,KACF5iG,EAAaha,EAAI0hB,EACjBpX,EAAawG,EAAI4Q,EACjBA,GACA,SAACjX,EAAiBiD,GAChB,QAAI1N,EAAIyK,EAAU,GAAKqG,EAAIpD,EAAU,GAAK1N,EAAIyK,GAAWrL,GAAS0R,EAAIpD,GAAWtO,MAC7EoP,IAAWA,EAAOxO,EAAIyK,EAASqG,EAAIpD,OAC9BsK,EAAKmmG,KAAOnmG,EAAKmmG,IAAI5D,OAAOv6G,EAAIyK,EAASqG,EAAIpD,EAAA,SAItD4U,EAAI+6F,UAAYjhG,EAAKujG,eACvBvjG,EAAKujG,cAAc1wE,YAAY3sB,EAAI+6F,YAAA,YApB9B3vG,EAAI,EAAGA,EAAItO,EAAOsO,IAAA,EAAlBA,EAAA,SADF6J,EAAI,EAAGA,EAAInY,EAAOmY,IAAA,EAAlBA,GA0BT,GAAIzG,EAAQ03C,QAAUhpD,EAAmB,CACvC,IAAMiM,EAAiB1P,KAAKC,OAAO0R,EAAUgU,EAAUtiB,GAAS,GAC1D+W,EAAY/W,EAAyB,EAAjBqM,EACpBwM,EAAiB+B,EAAavO,EAAiBiW,EAC/CloB,EAAiB8Q,EAAamB,EAAiBiW,EAC/C/I,EAAyB,GACzB9T,EAAS9I,KAAKC,MAAMma,EAAY,GAEtC,IAASoB,EAAI,EAAGA,EAAIpB,EAAWoB,IAAK,CAClCoB,EAAWpB,GAAK,GAChB,IAAK,IAAI0kF,EAAI,EAAGA,EAAI9lF,EAAW8lF,IAE3B1kF,GAAK9L,EAAiB,GACtB8L,GAAKpB,EAAY1K,GACjBwwF,GAAKxwF,EAAiB,GACtBwwF,GAAK9lF,EAAY1K,GAMf1P,KAAKojB,MAAM5H,EAAI1S,IAAW0S,EAAI1S,IAAWo3F,EAAIp3F,IAAWo3F,EAAIp3F,IAAWA,EAJzE8T,EAAWpB,GAAG0kF,GAAK,EAUrBtjF,EAAWpB,GAAG0kF,GAAKpyF,KAAKs0G,IAAI5D,OAC1Bte,EAAI,EAAIxwF,EAAiB,EAAIwwF,EAAIA,GAAK78F,EAAQ68F,EAAI,EAAIxwF,EAAiBwwF,EAAIxwF,EAC3E8L,EAAI,EAAI9L,EAAiB,EAAI8L,EAAIA,GAAKnY,EAAQmY,EAAI,EAAI9L,EAAiB8L,EAAI9L,GAEzE,EACA,iBAIC+C,GACP,IAAK,IAAL,WAASxO,GACP,IAAK2Y,EAAWnK,GAAGxO,GAAA,iBAEnBsiB,EAAIs6F,KACF3kG,EAAiBzJ,EAAIkT,EACrBloB,EAAiBwG,EAAI0hB,EACrBA,GACA,SAACjX,EAAiBuN,SAChB,SAAgC,QAAxBlH,EAAC6H,EAAWnK,EAAI/D,UAAA,IAAQqG,OAAA,EAAAA,EAAG9Q,EAAIgY,GAAA,IAGvCsK,EAAI+6F,UAAYnhG,EAAKyjG,eACvBzjG,EAAKyjG,cAAc1wE,YAAY3sB,EAAI+6F,SAAA,EAZ9B5yG,EAAI,EAAGA,EAAI0L,EAAW1L,IAAA,EAAtBA,EAAA,SADX,IAAS8M,EAAI,EAAGA,EAAIpB,EAAWoB,IAAA,EAAtBA,EAAA,GAoBb/I,EAAAzT,UAAAqkH,YAAA,eAAA5wG,EAAA,KACE,IAAK3E,KAAKs0G,IACR,KAAM,yBAGR,IAAMn+G,EAAU6J,KAAKwzG,SACf5yG,EAAUZ,KAAKi0G,SAErB,IAAK99G,EACH,KAAM,8BAGR,IAAMgY,EAAQnO,KAAKs0G,IAAI3D,iBACjB1pG,EAAU/U,KAAK6O,IAAIH,EAAQ3B,MAAO2B,EAAQ2wB,QAA2B,EAAjB3wB,EAAQouF,OAC5Dz5F,EAAaqL,EAAQ+9C,QAAUhpD,EAAoBsR,EAAU/U,KAAKojB,KAAK,GAAKrO,EAC5EpD,EAAU3R,KAAKC,MAAMoD,EAAa4Y,GAClCf,EAA8B,EAAVvJ,EACpBgU,EAA2B,EAAVhU,EACjBsM,EAAaje,KAAKC,OAAOyO,EAAQ3B,MAAQkP,EAAQtK,GAAW,GAC5DpD,EAAavO,KAAKC,OAAOyO,EAAQ2wB,OAASpjB,EAAQtK,GAAW,GAEnE,CACE,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG3R,KAAKqb,GAAK,GACjB,CAAC,EAAG,GAAIrb,KAAKqb,GAAK,IAClBkQ,SAAQ,SAACtnB,+BAACgc,EAAMhc,EAAA,GAAE2N,EAAG3N,EAAA,GAAE4/G,EAAQ5/G,EAAA,GACzBmc,EAAInC,EAAagC,EAAStO,GAAWsK,EAAQ,GAC7C6nG,EAAIv1G,EAAaqD,EAAMD,GAAWsK,EAAQ,GAC5CoJ,EAAwB5S,EAAKmxG,cAC7B1jG,EAAqBzN,EAAKmxG,cAoB9B,KAlBgC,QAA5B7uG,EAAArG,EAAQq1G,4BAAA,IAAoBhvG,OAAA,EAAAA,EAAEwuG,YAAwC,QAAhClgH,EAAIqL,EAAQq1G,4BAAA,IAAoB1gH,OAAA,EAAAA,EAAEylC,WAC1EzjB,EAAwBsb,SAASoJ,gBAAgB,6BAA8B,aACzDqS,aAAa,KAAM,kCAAkCn8B,EAAM,IAAIrO,GACrFa,EAAKqvG,MAAM5uE,YAAY7tB,GACvB5S,EAAKuxG,uBAAyBvxG,EAAKwxG,oBAAsB/jG,EAAqBmF,EAE9E5S,EAAK+wG,aAAa,CAChB1qF,QAAqC,QAA9BvS,EAAE7X,EAAQq1G,4BAAA,IAAoBx9F,OAAA,EAAAA,EAAEg9F,SACvCz6E,MAAmC,QAA9BzoB,EAAE3R,EAAQq1G,4BAAA,IAAoB1jG,OAAA,EAAAA,EAAEyoB,MACrC26E,mBAAoBI,EACpB/6G,EAACsX,EACDhG,EAAC0pG,EACDzkF,OAAQnkB,EACRnO,MAAOmO,EACP7b,KAAM,wBAAwB4gB,EAAM,IAAIrO,KAIZ,QAAhCnO,EAAIiL,EAAQq1G,4BAAA,IAAoBtgH,OAAA,EAAAA,EAAE6nB,KAAM,CACtC,IAAM7N,EAAgB,IAAI8a,EAAe,CAAEs2D,IAAKp8E,EAAK6uG,SAAUh2F,KAAM5c,EAAQq1G,qBAAqBz4F,OAElG7N,EAAcojG,KAAKzgG,EAAG0jG,EAAG5oG,EAAmB2oG,GAExCpmG,EAAc6jG,UAAYj8F,GAC5BA,EAAsB6tB,YAAYz1B,EAAc6jG,SAAA,MAKlD,IAFA,IAAM4C,EAAM,IAAI1pG,EAAM,CAAEq0E,IAAKp8E,EAAK6uG,SAAUh2F,KAAM5c,EAAQi1G,YAAYr4F,OAAA,WAE7D7Y,GACP,IAAK,IAAL,WAASxO,GACP,KAAkB,QAAdyL,EAACwM,EAAWzJ,UAAA,IAAE/C,OAAA,EAAAA,EAAGzL,IAAA,iBAIrBigH,EAAIrD,KACFzgG,EAAI3N,EAAId,EACRmyG,EAAI7/G,EAAI0N,EACRA,GACA,SAACjD,EAAiBuN,GAAe,IAAAlH,EAAc,SAAyB,QAAxBA,EAACmH,EAAWzJ,EAAI/D,UAAA,IAAQqG,OAAA,EAAAA,EAAG9Q,EAAIgY,GAAA,IAG7EioG,EAAI5C,UAAYj8F,GAClBA,EAAsB6tB,YAAYgxE,EAAI5C,SAAA,EAbjC5yG,EAAI,EAAGA,EAAIwN,EAAWzJ,GAAGxU,OAAQyQ,IAAA,EAAjCA,EAAA,EADF8wG,EAAI,EAAGA,EAAItjG,EAAWje,OAAQuhH,IAAA,EAA9BA,GAsCX,KAlB6B,QAAzBplG,EAAA1L,EAAQy1G,yBAAA,IAAiB/pG,OAAA,EAAAA,EAAEmpG,YAAqC,QAA7B3mG,EAAIlO,EAAQy1G,yBAAA,IAAiBvnG,OAAA,EAAAA,EAAEksB,WACpE5oB,EAAqBygB,SAASoJ,gBAAgB,6BAA8B,aACzDqS,aAAa,KAAM,+BAA+Bn8B,EAAM,IAAIrO,GAC/Ea,EAAKqvG,MAAM5uE,YAAYhzB,GACvBzN,EAAKwxG,oBAAsB/jG,EAE3BzN,EAAK+wG,aAAa,CAChB1qF,QAAkC,QAA3BhwB,EAAE4F,EAAQy1G,yBAAA,IAAiBr7G,OAAA,EAAAA,EAAEy6G,SACpCz6E,MAAgC,QAA3Bo3D,EAAExxF,EAAQy1G,yBAAA,IAAiBjkB,OAAA,EAAAA,EAAEp3D,MAClC26E,mBAAoBI,EACpB/6G,EAAGsX,EAAc,EAAVzO,EACPyI,EAAG0pG,EAAc,EAAVnyG,EACP0tB,OAAQ1Z,EACR5Y,MAAO4Y,EACPtmB,KAAM,qBAAqB4gB,EAAM,IAAIrO,KAIZ,QAA7B2rG,EAAI7uG,EAAQy1G,yBAAA,IAAiB5G,OAAA,EAAAA,EAAEjyF,KAAM,CACnC,IAAM84F,EAAa,IAAI5oG,EAAY,CAAEqzE,IAAKp8E,EAAK6uG,SAAUh2F,KAAM5c,EAAQy1G,kBAAkB74F,OAEzF84F,EAAWvD,KAAKzgG,EAAc,EAAVzO,EAAamyG,EAAc,EAAVnyG,EAAagU,EAAgBk+F,GAE9DO,EAAW9C,UAAYphG,GACzBA,EAAmBgzB,YAAYkxE,EAAW9C,SAAA,KAG5C,CAAM4C,EAAM,IAAI1pG,EAAM,CAAEq0E,IAAKp8E,EAAK6uG,SAAUh2F,KAAM5c,EAAQi1G,YAAYr4F,OAAtE,eAES7Y,GACP,IAAK,IAAL,WAASxO,GACP,KAAe,QAAXkc,EAAC1iB,EAAQgV,UAAA,IAAE0N,OAAA,EAAAA,EAAGlc,IAAA,iBAIlBigH,EAAIrD,KACFzgG,EAAI3N,EAAId,EACRmyG,EAAI7/G,EAAI0N,EACRA,GACA,SAACjD,EAAiBuN,GAAe,IAAAlH,EAAc,SAAsB,QAArBA,EAACtX,EAAQgV,EAAI/D,UAAA,IAAQqG,OAAA,EAAAA,EAAG9Q,EAAIgY,GAAA,IAG1EioG,EAAI5C,UAAYphG,GAClBA,EAAmBgzB,YAAYgxE,EAAI5C,SAAA,EAb9B5yG,EAAI,EAAGA,EAAIjR,EAAQgV,GAAGxU,OAAQyQ,IAAA,EAA9BA,EAAA,EADX,IAAS8wG,EAAI,EAAGA,EAAI/hH,EAAQQ,OAAQuhH,IAAA,EAA3BA,EAAA,MAsBf/sG,EAAAzT,UAAAsjH,UAAA,eAAA7vG,EAAA,KACE,OAAO,IAAI8tG,SAAQ,SAACt8G,EAASyK,GAC3B,IAAMuN,EAAUxJ,EAAKsvG,SACfhtG,EAAQ,IAAI+oF,MAElB,IAAK7hF,EAAQomG,MACX,OAAO3zG,EAAO,wBAGgC,iBAArCuN,EAAQwmG,aAAa5vE,cAC9B99B,EAAM89B,YAAc52B,EAAQwmG,aAAa5vE,aAG3CpgC,EAAK+vG,OAASztG,EACdA,EAAMyrG,OAAS,WACbv8G,GAAA,EAEF8Q,EAAM5U,IAAM8b,EAAQomG,KAAA,KAIlB5vG,EAAAzT,UAAAs2F,UAAN,SAAgB7iF,OACdxO,EAAKwO,EAAA1F,MACL2B,EAAM+D,EAAA4sB,OACNpjB,EAAKxJ,EAAAtP,MACL4R,EAAOtC,EAAAwwG,wHAqBU,OAdXxwG,EAAU3E,KAAKi0G,SACf1+G,EAAarD,KAAKC,OAAOwS,EAAQ1F,MAAQkP,EAAQlH,GAAW,GAC5DpD,EAAa3R,KAAKC,OAAOwS,EAAQ4sB,OAASpjB,EAAQlH,GAAW,GAC7DmG,EAAK7X,EAAaoP,EAAQgwG,aAAa3lB,QAAU7gF,EAAQlH,EAAU9Q,GAAS,EAC5Ega,EAAKtM,EAAac,EAAQgwG,aAAa3lB,QAAU7gF,EAAQlH,EAAUrG,GAAU,EAC7EH,EAAKtK,EAAsC,EAA9BwO,EAAQgwG,aAAa3lB,OAClCtiF,EAAK9L,EAAuC,EAA9B+D,EAAQgwG,aAAa3lB,QAEnCv2E,EAAQoa,SAASoJ,gBAAgB,6BAA8B,UAC/DqS,aAAa,IAAKl0C,OAAOgT,IAC/BqL,EAAM61B,aAAa,IAAKl0C,OAAO+V,IAC/BsI,EAAM61B,aAAa,QAAY7tC,EAAE,MACjCgY,EAAM61B,aAAa,SAAa5hC,EAAE,MAEjB,GAAMmL,EAAUlT,EAAQ4vG,OAAS,mBAA5C9pF,EAAWlY,EAAAkiG,OAEjBh8F,EAAM61B,aAAa,OAAQ7jB,GAAY,IAEvCzqB,KAAKwzG,SAASpuE,YAAY3sB,GAAA,YAG5B9T,EAAAzT,UAAAwkH,aAAA,SAAa/wG,OACXxO,EAAOwO,EAAAqmB,QACPpqB,EAAK+D,EAAAq2B,MACL7sB,EAAkBxJ,EAAAgxG,mBAClB1uG,EAACtC,EAAA3J,EACDzF,EAACoP,EAAA2H,EACDzI,EAAMc,EAAA4sB,OACNnkB,EAAKzI,EAAA1F,MACL4Y,EAAIlT,EAAApT,KAWE4e,EAAO/C,EAAQvJ,EAASuJ,EAAQvJ,EAChCpD,EAAOoyB,SAASoJ,gBAAgB,6BAA8B,QAOpE,GANAx7B,EAAK6tC,aAAa,IAAKl0C,OAAO6M,IAC9BxG,EAAK6tC,aAAa,IAAKl0C,OAAO7E,IAC9BkL,EAAK6tC,aAAa,SAAUl0C,OAAOyJ,IACnCpD,EAAK6tC,aAAa,QAASl0C,OAAOgT,IAClC3M,EAAK6tC,aAAa,YAAa,mBAAmBz2B,EAAI,MAElD1hB,EAAS,CACX,IAAIuW,EACJ,GE3eI,WF2eAvW,EAAQqnB,MACV9Q,EAAWmmB,SAASoJ,gBAAgB,6BAA8B,mBACzDqS,aAAa,KAAMz2B,GAC5BnL,EAAS4hC,aAAa,gBAAiB,kBACvC5hC,EAAS4hC,aAAa,KAAMl0C,OAAO6M,EAAImG,EAAQ,IAC/CV,EAAS4hC,aAAa,KAAMl0C,OAAO7E,EAAIsO,EAAS,IAChD6I,EAAS4hC,aAAa,KAAMl0C,OAAO6M,EAAImG,EAAQ,IAC/CV,EAAS4hC,aAAa,KAAMl0C,OAAO7E,EAAIsO,EAAS,IAChD6I,EAAS4hC,aAAa,IAAKl0C,OAAO+V,EAAO,QACpC,CACL,IAAMsI,IAAatiB,EAAQkiG,UAAY,GAAKlqF,IAAuB,EAAIjc,KAAKqb,IACtEkd,GAAoBhS,EAAW,EAAIvmB,KAAKqb,KAAO,EAAIrb,KAAKqb,IAC1DgF,EAAKtL,EAAImG,EAAQ,EACjBM,EAAKnY,EAAIsO,EAAS,EAClBlO,EAAKsR,EAAImG,EAAQ,EACjBxL,EAAKrM,EAAIsO,EAAS,EAGnB4mB,GAAoB,GAAKA,GAAoB,IAAOv4B,KAAKqb,IACzDkd,EAAmB,KAAOv4B,KAAKqb,IAAMkd,GAAoB,EAAIv4B,KAAKqb,IAEnEgF,GAAUnF,EAAQ,EAClBM,GAAW7J,EAAS,EAAK3R,KAAK4wD,IAAIrqC,GAClC9iB,GAAUyX,EAAQ,EAClBxL,GAAWiC,EAAS,EAAK3R,KAAK4wD,IAAIrqC,IACzBgS,EAAmB,IAAOv4B,KAAKqb,IAAMkd,GAAoB,IAAOv4B,KAAKqb,IAC9EG,GAAU7J,EAAS,EACnB0O,GAAUnF,EAAQ,EAAIlb,KAAK4wD,IAAIrqC,GAC/B7W,GAAUiC,EAAS,EACnBlO,GAAUyX,EAAQ,EAAIlb,KAAK4wD,IAAIrqC,IACtBgS,EAAmB,IAAOv4B,KAAKqb,IAAMkd,GAAoB,KAAOv4B,KAAKqb,IAC9EgF,GAAUnF,EAAQ,EAClBM,GAAW7J,EAAS,EAAK3R,KAAK4wD,IAAIrqC,GAClC9iB,GAAUyX,EAAQ,EAClBxL,GAAWiC,EAAS,EAAK3R,KAAK4wD,IAAIrqC,IACzBgS,EAAmB,KAAOv4B,KAAKqb,IAAMkd,GAAoB,KAAOv4B,KAAKqb,KAC9EG,GAAU7J,EAAS,EACnB0O,GAAUnF,EAAQ,EAAIlb,KAAK4wD,IAAIrqC,GAC/B7W,GAAUiC,EAAS,EACnBlO,GAAUyX,EAAQ,EAAIlb,KAAK4wD,IAAIrqC,KAGjC/L,EAAWmmB,SAASoJ,gBAAgB,6BAA8B,mBACzDqS,aAAa,KAAMz2B,GAC5BnL,EAAS4hC,aAAa,gBAAiB,kBACvC5hC,EAAS4hC,aAAa,KAAMl0C,OAAOlI,KAAKuc,MAAM8D,KAC9C7F,EAAS4hC,aAAa,KAAMl0C,OAAOlI,KAAKuc,MAAMf,KAC9ChB,EAAS4hC,aAAa,KAAMl0C,OAAOlI,KAAKuc,MAAM9Y,KAC9C+W,EAAS4hC,aAAa,KAAMl0C,OAAOlI,KAAKuc,MAAM7M,IAAA,CAGhDzL,EAAQogH,WAAW94F,SAAQ,SAAC9Y,OAAExO,EAAMwO,EAAA/T,OAAEgQ,EAAK+D,EAAAq2B,MACnC7sB,EAAO0kB,SAASoJ,gBAAgB,6BAA8B,QACpE9tB,EAAKmgC,aAAa,SAAa,IAAMn4C,EAAM,KAC3CgY,EAAKmgC,aAAa,aAAc1tC,GAChC8L,EAAS04B,YAAYj3B,EAAA,IAGvB1N,EAAK6tC,aAAa,OAAQ,SAASz2B,EAAI,MACvC7X,KAAKg0G,MAAM5uE,YAAY14B,EAAA,MACd9L,GACTH,EAAK6tC,aAAa,OAAQ1tC,GAG5BZ,KAAKwzG,SAASpuE,YAAY3kC,EAAA,EAE9BkE,CAAA,CAjhBA,GG7BA3J,EACU,SCKV,IAFA,IAAMo3F,EAAoB,CAAC,EAElBqd,EAAO,EAAGA,GAAQ,GAAIA,IAC7Brd,EAAQqd,GAAQA,ECuDlB,MAAAp9F,EA5BwC,CACtCmL,KAAMxiB,EACN2jD,MNnCQ,SMoCR1/C,MAAO,IACPsyB,OAAQ,IACRrR,KAAM,GACN8uE,OAAQ,EACR4lB,UAAW,CACT4B,WDvBJpkB,ECuBgB,GACZjhF,UAAA,EACA2jG,qBCrCC,KDuCHH,aAAc,CACZW,oBAAA,EACAT,UAAW,GACX9vE,iBAAA,EACAiqD,OAAQ,GAEV6mB,YAAa,CACXr4F,KAAM,SACNwd,MAAO,QAETw6E,kBAAmB,CACjB/mG,MAAO,EACPusB,MAAO,4NEzDX,SAASl3B,EAAiBa,GACxB,IAAMxO,EAAcgc,EAAA,GAAKxN,GAEzB,IAAKxO,EAAYogH,aAAepgH,EAAYogH,WAAWpmH,OACrD,KAAM,6CAcR,OAXIgG,EAAYkiG,SACdliG,EAAYkiG,SAAW7nG,OAAO2F,EAAYkiG,UAE1CliG,EAAYkiG,SAAW,EAGzBliG,EAAYogH,WAAapgH,EAAYogH,WAAWx4F,KAAI,SAACpZ,GAAiD,OAAAwN,EAACA,EAAA,GAClGxN,GAAS,CACZ/T,OAAQJ,OAAOmU,EAAU/T,SAAA,IAGpBuF,CAAA,CAGM,SAAS4/G,EAAgBpxG,GACtC,IAAMxO,EAAagc,EAAA,GAAKxN,GAkDxB,OAhDAxO,EAAW8I,MAAQzO,OAAO2F,EAAW8I,OACrC9I,EAAWo7B,OAAS/gC,OAAO2F,EAAWo7B,QACtCp7B,EAAW64F,OAASx+F,OAAO2F,EAAW64F,QACtC74F,EAAWw+G,aAAexiG,EAAAA,EAAA,GACrBhc,EAAWw+G,cAAY,CAC1BW,mBAAoBl8G,QAAQjD,EAAWw+G,aAAaW,oBACpDT,UAAWrkH,OAAO2F,EAAWw+G,aAAaE,WAC1C7lB,OAAQx+F,OAAO2F,EAAWw+G,aAAa3lB,UAGrC74F,EAAW64F,OAAS98F,KAAK6O,IAAI5K,EAAW8I,MAAO9I,EAAWo7B,UAC5Dp7B,EAAW64F,OAAS98F,KAAK6O,IAAI5K,EAAW8I,MAAO9I,EAAWo7B,SAG5Dp7B,EAAW0/G,YAAc1jG,EAAA,GACpBhc,EAAW0/G,aAEZ1/G,EAAW0/G,YAAYJ,WACzBt/G,EAAW0/G,YAAYJ,SAAW3xG,EAAiB3N,EAAW0/G,YAAYJ,WAGxEt/G,EAAW8/G,uBACb9/G,EAAW8/G,qBAAuB9jG,EAAA,GAC7Bhc,EAAW8/G,sBAEZ9/G,EAAW8/G,qBAAqBR,WAClCt/G,EAAW8/G,qBAAqBR,SAAW3xG,EAAiB3N,EAAW8/G,qBAAqBR,YAI5Ft/G,EAAWkgH,oBACblgH,EAAWkgH,kBAAoBlkG,EAAA,GAC1Bhc,EAAWkgH,mBAEZlgH,EAAWkgH,kBAAkBZ,WAC/Bt/G,EAAWkgH,kBAAkBZ,SAAW3xG,EAAiB3N,EAAWkgH,kBAAkBZ,YAItFt/G,EAAWq/G,oBACbr/G,EAAWq/G,kBAAoBrjG,EAAA,GAC1Bhc,EAAWq/G,mBAEZr/G,EAAWq/G,kBAAkBC,WAC/Bt/G,EAAWq/G,kBAAkBC,SAAW3xG,EAAiB3N,EAAWq/G,kBAAkBC,YAInFt/G,CAAA,02CChDTwZ,EChBA,WAUE,SAAAhL,EAAYA,GACV3E,KAAKi0G,SAAWtvG,EAAUoxG,EAAgBlyG,EAAUwO,EAAgB1N,IAA+B0N,EACnGrS,KAAKq0E,QAAA,CAuLT,OApLS1vE,EAAA8xG,gBAAP,SAAuB9xG,GACjBA,IACFA,EAAU+xG,UAAY,KAI1B/xG,EAAAzT,UAAAylH,UAAA,eAAAhyG,EAAA,KACE,GAAK3E,KAAKs0G,IAAV,CAGA,IAAMn+G,EAAQ,IAAI2Y,EAAM9O,KAAKi0G,UAE7Bj0G,KAAKihF,KAAO9qF,EAAM+9G,aAClBl0G,KAAK42G,mBAAqBzgH,EAAMg+G,OAAOn0G,KAAKs0G,KAAKuC,MAAK,iBAC/ClyG,EAAKs8E,OACK,QAAfrgF,EAAA+D,EAAKmyG,kBAAA,IAAUl2G,GAAAA,EAAA9I,KAAf6M,EAAkBxO,EAAM+9G,aAAcvvG,EAAKsvG,UAAA,MAI/CtvG,EAAAzT,UAAA6lH,aAAA,iBAAA5gH,EAAA,KACO6J,KAAKs0G,MAIVt0G,KAAKg3G,QAAUnkF,SAAS9B,cAAc,UACtC/wB,KAAKg3G,QAAQ/3G,MAAQe,KAAKi0G,SAASh1G,MACnCe,KAAKg3G,QAAQzlF,OAASvxB,KAAKi0G,SAAS1iF,OAEpCvxB,KAAK22G,YACL32G,KAAKi3G,sBAA+C,QAA1BtyG,EAAG3E,KAAK42G,0BAAA,IAAkBjyG,OAAA,EAAAA,EAAEkyG,MAAK,WACzD,GAAK1gH,EAAK8qF,KAAV,CAEA,IAAMt8E,EAAMxO,EAAK8qF,KACXrgF,GAAM,IAAIs2G,eAAgBC,kBAAkBxyG,GAE5CwJ,EAAU,6BADFipG,KAAKx2G,GAEbqG,EAAQ,IAAI+oF,MAElB,OAAO,IAAIyiB,SAAQ,SAAC9tG,GAClBsC,EAAMyrG,OAAS,mBACgB,QAA7BvkG,EAAY,QAAZvN,EAAAzK,EAAK6gH,eAAA,IAAOp2G,OAAA,EAAAA,EAAE+hC,WAAW,iBAAIx0B,GAAAA,EAAGq5E,UAAUvgF,EAAO,EAAG,GACpDtC,GAAA,EAGFsC,EAAM5U,IAAM8b,CAAA,UAKZxJ,EAAAzT,UAAAmmH,YAAN,SAAkB1yG,mBAAAA,IAAAA,EAAA,0FAChB,IAAK3E,KAAKs0G,IAAK,KAAM,yBAEW,QAA5B3vG,EAAU+b,cAAV,OACG1gB,KAAKihF,MAASjhF,KAAK42G,oBACtB52G,KAAK22G,YAEP,GAAM32G,KAAK42G,4BACX,OADAzgH,EAAAs+G,OACO,CAAP,EAAOz0G,KAAKihF,aAKZ,OAHKjhF,KAAKg3G,SAAYh3G,KAAKi3G,uBACzBj3G,KAAK+2G,eAEP,GAAM/2G,KAAKi3G,8BACX,OADA9gH,EAAAs+G,OACO,CAAP,EAAOz0G,KAAKg3G,SAAA,QAIhBryG,EAAAzT,UAAAmjF,OAAA,SAAOl+E,GACLwO,EAAc8xG,gBAAgBz2G,KAAKs3G,YACnCt3G,KAAKi0G,SAAW99G,EAAU4/G,EAAgBlyG,EAAU7D,KAAKi0G,SAAU99G,IAA+B6J,KAAKi0G,SAElGj0G,KAAKi0G,SAAS/zF,OAInBlgB,KAAKs0G,IAAM0B,IAAOh2G,KAAKi0G,SAASW,UAAU4B,WAAYx2G,KAAKi0G,SAASW,UAAUE,sBAC9E90G,KAAKs0G,IAAI7D,QAAQzwG,KAAKi0G,SAAS/zF,KAAMlgB,KAAKi0G,SAASW,UAAUzjG,MCnGlD,SAAiBxM,GAC9B,QAAQ,GACN,IAAK,WAAWqzB,KAAKrzB,GACnB,MCCK,UDAP,IAAK,wBAAwBqzB,KAAKrzB,GAChC,MCAU,eDCZ,QACE,MCDE,QDNO,CDmGkE3E,KAAKi0G,SAAS/zF,OAC3FlgB,KAAKs0G,IAAI1D,OAEL5wG,KAAKi0G,SAASz2F,OAASxiB,EACzBgF,KAAK+2G,eAEL/2G,KAAK22G,YAGP32G,KAAKmlC,OAAOnlC,KAAKs3G,YAAA,EAGnB3yG,EAAAzT,UAAAi0C,OAAA,SAAOxgC,GACL,GAAKA,EAAL,CAIA,GAAqC,mBAA1BA,EAAUygC,YACnB,KAAM,wCAGJplC,KAAKi0G,SAASz2F,OAASxiB,EACrBgF,KAAKg3G,SACPryG,EAAUygC,YAAYplC,KAAKg3G,SAGzBh3G,KAAKihF,MACPt8E,EAAUygC,YAAYplC,KAAKihF,MAI/BjhF,KAAKs3G,WAAa3yG,CAAA,GAGpBA,EAAAzT,UAAAqmH,eAAA,SAAe5yG,GACb,IAAKA,EACH,KAAM,wCAGR3E,KAAK82G,WAAanyG,EAClB3E,KAAKq0E,QAAA,EAGP1vE,EAAAzT,UAAAsmH,gBAAA,WACEx3G,KAAK82G,gBAAA,EACL92G,KAAKq0E,QAAA,EAGD1vE,EAAAzT,UAAAumH,WAAN,SAAiB9yG,mBAAAA,IAAAA,EAAA,oGACf,IAAK3E,KAAKs0G,IAAK,KAAM,mBACL,SAAMt0G,KAAKq3G,YAAY1yG,WAEvC,OAFMxO,EAAU8Q,EAAAwtG,QAMgB,QAA5B9vG,EAAU+b,eACN9f,EAAa,IAAIs2G,cACjB/oG,EAASvN,EAAWu2G,kBAAkBhhH,GAErC,CAAP,EAAO,IAAI2D,KAAK,CAAC,4CAA8CqU,GAAS,CAAEqP,KAAM,oBAEzE,CAAP,EAAO,IAAIi1F,SAAQ,SAAC7xG,GAAY,OAACzK,EAA8BuhH,OAAO92G,EAAS,SAAS+D,EAAa,OAT9F,CAAP,EAAO,cAaLA,EAAAzT,UAAAqhH,SAAN,SAAe5tG,2GACb,IAAK3E,KAAKs0G,IAAK,KAAM,mBAmBL,OAlBZn+G,EAAY,MACZyK,EAAO,KAGoB,iBAApB+D,GACTxO,EAAYwO,EACZkf,QAAQ04C,KACN,gIAEkC,iBAApB53D,GAAoD,OAApBA,IAC5CA,EAAgBpT,OAClBqP,EAAO+D,EAAgBpT,MAErBoT,EAAgBgzG,YAClBxhH,EAAYwO,EAAgBgzG,YAIhB,GAAM33G,KAAKq3G,YAAYlhH,WAEvC,OAFMgY,EAAUtK,EAAA4wG,SAMgB,QAA5Bt+G,EAAUuqB,eACNzZ,EAAa,IAAIiwG,cAGvB3hH,EAAS,6CAFLA,EAAS0R,EAAWkwG,kBAAkBhpG,IAI1Cf,EADY,oCAAsCwqG,mBAAmBriH,GACjDqL,EAAI,SAGxBwM,EADae,EAA8B0pG,UAAU,SAAS1hH,GAC1CyK,EAAI,IAAIzK,GAAA,KAZ5B,YAeNwO,CAAA,CAnMA,KGVIxO,EAA2B,CAAC,EAGhC,SAASyK,EAAoBuN,GAE5B,GAAGhY,EAAyBgY,GAC3B,OAAOhY,EAAyBgY,GAAUzT,QAG3C,IAAIuM,EAAS9Q,EAAyBgY,GAAY,CAGjDzT,QAAS,CAAC,GAOX,OAHAiK,EAAoBwJ,GAAUlH,EAAQA,EAAOvM,QAASkG,GAG/CqG,EAAOvM,OAAA,CCjBf,OCFAkG,EAAoBuN,EAAKxJ,IACxB,IAAIxO,EAASwO,GAAUA,EAAOmU,WAC7B,IAAMnU,EAAgBoV,QACtB,IAAMpV,EAEP,OADA/D,EAAoB6X,EAAEtiB,EAAQ,CAAE0N,EAAG1N,IAC5BA,CAAA,ECLRyK,EAAoB6X,EAAI,CAAC9T,EAASxO,KACjC,IAAI,IAAIgY,KAAOhY,EACXyK,EAAoBqG,EAAE9Q,EAAYgY,KAASvN,EAAoBqG,EAAEtC,EAASwJ,IAC5End,OAAOgnB,eAAerT,EAASwJ,EAAK,CAAE8J,YAAA,EAAkBC,IAAK/hB,EAAWgY,IAAA,ECJ3EvN,EAAoBqG,EAAI,CAACtC,EAAKxO,IAASnF,OAAOE,UAAU2G,eAAeC,KAAK6M,EAAKxO,GHG1EyK,EAAoB,M1BOpB,G0BPoB,qCIHd5P,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQo9G,kBAAa,EAAO,IAAIC,EAAQtoH,EAAQ,MAAWiL,EAAQo9G,aAAa,CAACE,YAAY,EAAEC,kBAAkB,IAAIC,wBAAwB,OAAOC,cAAcJ,EAAQK,cAAcC,MAAMC,YAAW,EAAGC,WAAU,EAAGC,UAAS,EAAGC,kBAAiB,EAAGC,kBAAkBX,EAAQY,kBAAkBC,IAAIC,iBAAiB,IAAIC,iBAAiBf,EAAQgB,iBAAiBC,QAAQxqB,cAAS,EAAOyqB,iBAAiBlB,EAAQmB,iBAAiBF,QAAQG,wBAAuB,EAAGC,qBAAoB,EAAGC,kBAAiB,EAAGC,UAAS,EAAGC,gBAAW,EAAOxkD,WAAM,EAAOykD,oBAAmB,EAAGC,eAAc,EAAGC,wBAAuB,EAAGnoH,KAAK,GAAGooH,YAAY,EAAEC,aAAa,EAAEC,gBAAW,EAAOC,WAAW,GAAGC,kBAAkB,IAAIC,eAAc,EAAGC,eAAc,EAAGC,wBAAuB,EAAGC,cAAc,WAAW,EAAEC,UAAU,WAAW,EAAEC,UAAU,WAAW,EAAEC,mBAAc,EAAOC,cAAc,WAAW,EAAEC,eAAe,WAAW,gCCAp8B,IAAIC,EAAU,WAAW,IAAItsG,EAAE,SAASxJ,EAAExO,GAAG,OAAOgY,EAAEnd,OAAOiuB,iBAAiB,CAACy7F,UAAU,cAAc3kH,MAAM,SAAS4O,EAAExO,GAAGwO,EAAE+1G,UAAUvkH,CAAC,EAAE,SAASwO,EAAExO,GAAG,IAAI,IAAIZ,KAAKY,EAAEnF,OAAOE,UAAU2G,eAAeC,KAAK3B,EAAEZ,KAAKoP,EAAEpP,GAAGY,EAAEZ,GAAG,IAAIoP,EAAExO,EAAE,EAAE,OAAO,SAASwO,EAAExO,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAItG,UAAU,uBAAuBuK,OAAOjE,GAAG,iCAAiC,SAASZ,IAAIyK,KAAK3P,YAAYsU,CAAC,CAACwJ,EAAExJ,EAAExO,GAAGwO,EAAEzT,UAAU,OAAOiF,EAAEnF,OAAOC,OAAOkF,IAAIZ,EAAErE,UAAUiF,EAAEjF,UAAU,IAAIqE,EAAE,CAAC,CAAnd,GAAudolH,EAAS,WAAW,OAAOA,EAAS3pH,OAAOG,QAAQ,SAASwT,GAAG,IAAI,IAAIxO,EAAEZ,EAAE,EAAE4Y,EAAErc,UAAU3B,OAAOoF,EAAE4Y,EAAE5Y,IAAI,IAAI,IAAI0R,KAAK9Q,EAAErE,UAAUyD,GAAGvE,OAAOE,UAAU2G,eAAeC,KAAK3B,EAAE8Q,KAAKtC,EAAEsC,GAAG9Q,EAAE8Q,IAAI,OAAOtC,CAAC,GAAGuX,MAAMlc,KAAKlO,UAAU,EAAEgmB,EAAgB9mB,OAAOC,OAAO,SAAS0T,EAAExO,EAAEZ,EAAE4Y,QAAG,IAASA,IAAIA,EAAE5Y,GAAG,IAAI0R,EAAEjW,OAAO0nB,yBAAyBviB,EAAEZ,GAAG0R,IAAI,QAAQA,EAAE9Q,EAAE2iB,YAAY7R,EAAEwhB,WAAWxhB,EAAEyhB,gBAAgBzhB,EAAE,CAACgR,YAAW,EAAGC,IAAI,WAAW,OAAO/hB,EAAEZ,EAAE,IAAIvE,OAAOgnB,eAAerT,EAAEwJ,EAAElH,EAAE,EAAE,SAAStC,EAAExO,EAAEZ,EAAE4Y,GAAGxJ,EAAEwJ,OAAE,IAASA,EAAE5Y,EAAE4Y,GAAGhY,EAAEZ,EAAE,EAAE4iB,EAAmBnnB,OAAOC,OAAO,SAAS0T,EAAExO,GAAGnF,OAAOgnB,eAAerT,EAAE,UAAU,CAACsT,YAAW,EAAGrf,MAAMzC,GAAG,EAAE,SAASwO,EAAExO,GAAGwO,EAAEoV,QAAQ5jB,CAAC,EAAE0iB,EAAa,SAASlU,GAAG,GAAGA,GAAGA,EAAEmU,WAAW,OAAOnU,EAAE,IAAIxO,EAAE,CAAC,EAAE,GAAG,MAAMwO,EAAE,IAAI,IAAIpP,KAAKoP,EAAE,YAAYpP,GAAGvE,OAAOE,UAAU2G,eAAeC,KAAK6M,EAAEpP,IAAIuiB,EAAgB3hB,EAAEwO,EAAEpP,GAAG,OAAO4iB,EAAmBhiB,EAAEwO,GAAGxO,CAAC,EAA8HykH,EAAU,SAASj2G,EAAEd,EAAEjD,EAAE8L,GAAG,OAAO,IAAI9L,EAAEA,GAAG6xG,UAAS,SAASl9G,EAAEY,GAAG,SAASgY,EAAExJ,GAAG,IAAIyI,EAAEV,EAAEwK,KAAKvS,GAAG,CAAC,MAAMA,GAAGxO,EAAEwO,EAAE,CAAC,CAAC,SAASsC,EAAEtC,GAAG,IAAIyI,EAAEV,EAAEmuG,MAAMl2G,GAAG,CAAC,MAAMA,GAAGxO,EAAEwO,EAAE,CAAC,CAAC,SAASyI,EAAEzI,GAAG,IAAIxO,EAAEwO,EAAEm2G,KAAKvlH,EAAEoP,EAAE/L,SAASzC,EAAEwO,EAAE/L,iBAAiBgI,EAAEzK,EAAE,IAAIyK,GAAE,SAAS+D,GAAGA,EAAExO,EAAE,KAAI0gH,KAAK1oG,EAAElH,EAAE,CAACmG,GAAGV,EAAEA,EAAEwP,MAAMvX,EAAEd,GAAG,KAAKqT,OAAO,GAAE,EAAE6jG,EAAY,SAAS5sG,EAAElH,GAAG,IAAImG,EAAEvJ,EAAEjD,EAAE8L,EAAE,CAACsuG,MAAM,EAAEvG,KAAK,WAAW,GAAG,EAAE7zG,EAAE,GAAG,MAAMA,EAAE,GAAG,OAAOA,EAAE,EAAE,EAAEq6G,KAAK,GAAGC,IAAI,IAAIv2G,EAAE,CAACuS,KAAK/gB,EAAE,GAAG0kH,MAAM1kH,EAAE,GAAGglH,OAAOhlH,EAAE,IAAI,MAAM,mBAAmBsM,SAASkC,EAAElC,OAAOi1B,UAAU,WAAW,OAAO13B,IAAI,GAAG2E,EAAE,SAASxO,EAAEZ,GAAG,OAAO,SAASoP,GAAG,IAAIxO,EAAE,CAACZ,EAAEoP,GAAG,GAAGyI,EAAE,MAAM,IAAIvd,UAAU,mCAAmC,KAAK6c,GAAG,IAAI,GAAGU,EAAE,EAAEvJ,IAAIjD,EAAE,EAAEzK,EAAE,GAAG0N,EAAEs3G,OAAOhlH,EAAE,GAAG0N,EAAEg3G,SAASj6G,EAAEiD,EAAEs3G,SAASv6G,EAAE9I,KAAK+L,GAAG,GAAGA,EAAEqT,SAAStW,EAAEA,EAAE9I,KAAK+L,EAAE1N,EAAE,KAAK2kH,KAAK,OAAOl6G,EAAE,OAAOiD,EAAE,GAAG1N,EAAEyK,EAAE,CAAC,EAAEzK,EAAE,GAAGyK,EAAEhI,OAAOzC,GAAG,IAAI,KAAK,EAAE,KAAK,EAAEyK,EAAEzK,EAAE,MAAM,KAAK,EAAE,OAAOuW,EAAEsuG,QAAQ,CAACpiH,MAAMzC,EAAE,GAAG2kH,MAAK,GAAI,KAAK,EAAEpuG,EAAEsuG,QAAQn3G,EAAE1N,EAAE,GAAGA,EAAE,CAAC,GAAG,SAAS,KAAK,EAAEA,EAAEuW,EAAEwuG,IAAInwD,MAAMr+C,EAAEuuG,KAAKlwD,MAAM,SAAS,QAAQ,KAAKnqD,EAAE,GAAGA,EAAE8L,EAAEuuG,MAAM9qH,QAAQyQ,EAAEA,EAAEzQ,OAAO,MAAM,IAAIgG,EAAE,IAAI,IAAIA,EAAE,IAAI,CAACuW,EAAE,EAAE,QAAQ,CAAC,GAAG,IAAIvW,EAAE,MAAMyK,GAAGzK,EAAE,GAAGyK,EAAE,IAAIzK,EAAE,GAAGyK,EAAE,IAAI8L,EAAEsuG,MAAM7kH,EAAE,QAAQ,GAAG,IAAIA,EAAE,IAAIuW,EAAEsuG,MAAMp6G,EAAE,GAAG8L,EAAEsuG,MAAMp6G,EAAE,GAAGA,EAAEzK,MAAM,CAAC,KAAKyK,GAAG8L,EAAEsuG,MAAMp6G,EAAE,IAAI,CAACA,EAAE,IAAI8L,EAAEwuG,IAAInwD,MAAMr+C,EAAEuuG,KAAKlwD,MAAM,QAAQ,CAACr+C,EAAEsuG,MAAMp6G,EAAE,GAAG8L,EAAEwuG,IAAI1lH,KAAKW,EAAE,EAAEA,EAAE8Q,EAAEnP,KAAKqW,EAAEzB,EAAE,CAAC,MAAM/H,GAAGxO,EAAE,CAAC,EAAEwO,GAAGd,EAAE,CAAC,CAAC,QAAQuJ,EAAExM,EAAE,CAAC,CAAC,GAAG,EAAEzK,EAAE,GAAG,MAAMA,EAAE,GAAG,MAAM,CAACyC,MAAMzC,EAAE,GAAGA,EAAE,QAAG,EAAO2kH,MAAK,EAAG,CAAC,CAAC,EAAE9hG,EAAgB,SAASrU,GAAG,OAAOA,GAAGA,EAAEmU,WAAWnU,EAAE,CAACoV,QAAQpV,EAAE,EAAEy2G,GAASpqH,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQ2gH,UAAK,EAAOriG,EAAgBvpB,EAAQ,QAAW6rH,EAAgBtiG,EAAgBvpB,EAAQ,OAAkB8rH,EAAe9rH,EAAQ,MAAkB+rH,EAAOxiG,EAAgBvpB,EAAQ,OAAiBgsH,GAAO/gH,EAAQ2gH,KAAKG,EAAOzhG,QAAQlB,EAAappB,EAAQ,QAAaisH,EAAM7iG,EAAappB,EAAQ,OAAYsoH,EAAQtoH,EAAQ,MAAWksH,GAAj4D,SAASh3G,EAAExO,GAAG,IAAI,IAAIZ,KAAKoP,EAAE,YAAYpP,GAAGvE,OAAOE,UAAU2G,eAAeC,KAAK3B,EAAEZ,IAAIuiB,EAAgB3hB,EAAEwO,EAAEpP,EAAE,CAAmyDqmH,CAAansH,EAAQ,MAAWiL,GAAS,SAASvE,GAAG,SAASwO,EAAEA,GAAG,IAAIyI,EAAEjX,EAAE2B,KAAKkI,KAAK2E,IAAI3E,KAAK,OAAOoN,EAAEyuG,cAAc,KAAKzuG,EAAE0uG,sBAAsB,SAASn3G,GAAG,OAAOA,EAAEpG,MAAM,IAAI,QAAQ,OAAO6O,EAAEqf,MAAM+rF,UAAUprG,EAAE2uG,yBAAyB,IAAI,YAAY,OAAO3uG,EAAE4uG,UAAUr3G,GAAG,IAAI,aAAa,OAAOyI,EAAE6uG,UAAUt3G,GAAG,EAAEyI,EAAE8uG,sBAAsB,SAASj1G,GAAG,OAAO2zG,EAAUxtG,OAAE,OAAO,GAAO,WAAW,IAAIjX,EAAEZ,EAAE4Y,EAAE,OAAO4sG,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAOzlH,EAAEyK,KAAK4zF,MAAMzlF,EAAE5Y,EAAEyiH,YAAY7hH,EAAEZ,EAAE4mH,WAAW5mH,EAAEA,EAAE6mH,2BAA2BV,EAAMW,4BAA4BluG,EAAEhY,IAAKgY,EAAEutG,EAAMY,4BAA4BnuG,EAAEhY,GAAG,CAAC,EAAE6J,KAAKu8G,2BAA2BpuG,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,OAAOxJ,EAAE8vG,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,OAAOl/G,EAAE,CAAC,EAAEyK,KAAKw8G,SAAS,CAACC,sBAAsB,KAAKC,yBAAyB,KAAKN,4BAA2B,KAAM,CAAC,EAAE,GAAG,KAAK,EAAEz3G,EAAE8vG,OAAO9vG,EAAEq2G,MAAM,EAAE,KAAK,EAAE,OAAOh7G,KAAK28G,oBAAoB11G,GAAG,CAAC,GAAG,GAAE,GAAE,EAAEmG,EAAEwvG,kBAAkB,WAAW,IAAIj4G,EAAEyI,EAAEqf,MAAMqsF,iBAAiB4C,EAAMmB,4BAA4Bl4G,IAAIyI,EAAEwmF,MAAMkpB,gBAAgB1vG,EAAE2vG,WAAU,EAAG3vG,EAAE4vG,eAAe,EAAE5vG,EAAE6vG,kBAAkB,WAAW7vG,EAAEwmF,MAAMkpB,gBAAgB1vG,EAAE2vG,WAAU,EAAG3vG,EAAE8vG,cAAc,EAAE9vG,EAAE4vG,aAAa,WAAW5vG,EAAE+vG,uBAAuB,EAAE/vG,EAAE2uG,uBAAuB,WAAW,OAAOnB,EAAUxtG,OAAE,OAAO,GAAO,WAAW,IAAIjX,EAAE,OAAO4kH,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAO7kH,EAAE6J,KAAK4zF,MAAMkpB,cAAc98G,KAAKo9G,eAAc,EAAG,CAAC,EAAEp9G,KAAKw8G,SAAS,CAACM,eAAe3mH,EAAEknH,4BAA2B,KAAM,KAAK,EAAE,OAAO14G,EAAE8vG,OAAOt+G,EAAE6J,KAAKg9G,eAAeh9G,KAAKk9G,cAAc,CAAC,GAAG,GAAE,GAAE,EAAE9vG,EAAEkwG,qBAAqB,SAAS34G,GAAG,OAAOyI,EAAEmwG,YAAY54G,CAAC,EAAEyI,EAAEowG,sBAAsB,SAAS74G,GAAG,OAAOyI,EAAEqwG,eAAe94G,CAAC,EAAEyI,EAAEswG,iBAAiB,SAAS/4G,EAAExO,GAAG,IAAIZ,EAAEmmH,EAAMiC,yBAAyBxnH,EAAEiX,EAAEwmF,OAAOzlF,EAAEutG,EAAMkC,0BAA0BznH,EAAEiX,EAAEwmF,OAAO,OAAOwnB,EAAQrhG,QAAQgX,cAAc0qF,EAAMoC,UAAU,CAACzqD,OAAO79D,EAAEwoF,UAAU5vE,EAAEoK,IAAI,cAAckC,OAAOtkB,GAAGmnB,KAAK3Y,GAAG,EAAEyI,EAAE0wG,iBAAiB,WAAW,IAAIn5G,EAAEyI,EAAEqf,MAAMsxF,gBAA0BxoH,GAAVY,EAAEiX,EAAEwmF,OAAUokB,YAAY7hH,EAAEA,EAAEgmH,WAAW,OAAOf,EAAQrhG,QAAQgX,cAAc0qF,EAAMuC,UAAU,CAAC7B,WAAWhmH,EAAE6hH,YAAYziH,EAAEwoH,gBAAgBp5G,GAAG,EAAEyI,EAAEwmF,MAAM8nB,EAAMuC,sBAAsBt5G,EAAE,MAAMyI,EAAE2vG,WAAU,EAAG3vG,EAAE8wG,qBAAoB,EAAG9wG,EAAE+wG,2BAA0B,EAAG/wG,EAAEgxG,uBAAsB,EAAGhxG,EAAEgwG,eAAc,EAAGhwG,EAAEmwG,YAAY,KAAKnwG,EAAEixG,wBAAwB,CAAC,EAAEjxG,EAAEqwG,eAAe,KAAKrwG,EAAEkxG,4BAAuB,EAAOlxG,EAAEmxG,QAAQnxG,EAAEmxG,QAAQhnH,KAAK6V,GAAGA,EAAE4uG,UAAU5uG,EAAE4uG,UAAUzkH,KAAK6V,GAAGA,EAAE6uG,UAAU7uG,EAAE6uG,UAAU1kH,KAAK6V,GAAGA,EAAEoxG,iBAAiBpxG,EAAEoxG,iBAAiBjnH,KAAK6V,GAAGA,EAAEqxG,gBAAgBrxG,EAAEqxG,gBAAgBlnH,KAAK6V,GAAGA,EAAEsxG,gBAAgBtxG,EAAEsxG,gBAAgBnnH,KAAK6V,GAAGA,EAAEuxG,cAAcvxG,EAAEuxG,cAAcpnH,KAAK6V,GAAGzI,EAAE+2G,EAAMkD,SAASxxG,EAAEuxG,cAAc,KAAKvxG,EAAEyxG,uBAAuBl6G,EAAE,GAAGyI,EAAE0xG,uBAAuBn6G,EAAE,GAAGyI,CAAC,CAAC,OAAOqtG,EAAU91G,EAAExO,GAAGwO,EAAEzT,UAAU6tH,kBAAkB,WAAW,OAAOnE,EAAU56G,UAAK,OAAO,GAAO,WAAW,OAAO+6G,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,MAAM,CAAC,EAAEh7G,KAAKg/G,oBAAoB,KAAK,EAAE,OAAOr6G,EAAE8vG,OAAOz0G,KAAKi/G,qBAAqBj/G,KAAKk/G,sBAAsBl/G,KAAKysB,MAAM+rF,UAAUx4G,KAAKk9G,cAAc,CAAC,GAAG,GAAE,GAAE,EAAEv4G,EAAEzT,UAAUiuH,mBAAmB,SAASx6G,GAAG,IAAiBpP,GAAbY,EAAE6J,KAAKysB,OAAUurF,YAAY7pG,EAAEhY,EAAE8hH,kBAAkBhxG,EAAE9Q,EAAEoiH,UAAUnrG,EAAEjX,EAAEq4F,SAAS3qF,EAAE1N,EAAEmjH,SAAS14G,EAAEzK,EAAE4+D,MAAMroD,EAAEvW,EAAEwjH,YAAY9hG,EAAE1hB,EAAEyjH,aAAanhG,EAAEtiB,EAAE0jH,WAAWp5G,EAAEtK,EAAE4jH,kBAAkB5pG,EAAEha,EAAEsjH,cAAc/rG,EAAEvX,EAAE2jH,WAAWhrG,EAAE3Y,EAAE8jH,cAAc9jH,EAAEA,EAAE+jH,uBAAuB9sG,GAAGzI,EAAE6pF,WAAWphF,GAAGzI,EAAE4zG,YAAYtxG,GAAGtC,EAAE20G,WAAWz1G,GAAGc,EAAEowD,QAAQn0D,GAAG+D,EAAEg1G,cAAcjtG,GAAG/H,EAAEi1G,eAAe/hG,GAAGlT,EAAEk1G,aAAaphG,GAAG9T,EAAEo1G,oBAAoBt5G,EAAET,KAAKo/G,oBAAoBz6G,EAAEszG,oBAAoB9pG,GAAGnO,KAAKw8G,SAAS,CAACvE,kBAAkB9pG,IAAIxJ,EAAEqzG,cAAcziH,GAAGyK,KAAKu+G,QAAQhpH,EAAEwiH,EAAQsH,UAAUC,SAAS36G,EAAEm1G,aAAapsG,GAAG/I,EAAE80G,gBAAgBtpG,GAAGxL,EAAEs1G,gBAAgBnrG,GAAGnK,EAAEu1G,yBAAyB/jH,GAAG6J,KAAKu/G,oBAAoBv/G,KAAKysB,MAAM+sF,qBAAqB70G,EAAE60G,oBAAoBx5G,KAAKw/G,uBAAuB,EAAE76G,EAAEzT,UAAUuuH,qBAAqB,WAAWz/G,KAAK8+G,yBAAyB9+G,KAAK0/G,2BAA2B1/G,KAAK2/G,uBAAuB,EAAE3uH,OAAOgnB,eAAerT,EAAEzT,UAAU,cAAc,CAACgnB,IAAI,WAAW,IAAiB/hB,GAAbwO,EAAE3E,KAAK4zF,OAAUgsB,aAAaj7G,EAAEA,EAAEqzG,YAAiD7pG,GAArC5Y,EAAEmmH,EAAMmE,iBAAiB7/G,KAAK4zF,QAAWksB,oBAAoBvqH,EAAEA,EAAEwqH,oBAAoB,MAAM,CAACziG,KAAK3Y,EAAEq7G,MAAMtE,EAAMuE,oBAAoB9xG,EAAEnO,KAAK4zF,OAAOgsB,aAAazpH,EAAE2pH,oBAAoB3xG,EAAE4xG,oBAAoBxqH,EAAEioB,KAAKu6F,EAAQsH,UAAUa,OAAO,EAAEjoG,YAAW,EAAGyQ,cAAa,IAAK13B,OAAOgnB,eAAerT,EAAEzT,UAAU,4BAA4B,CAACgnB,IAAI,WAAW,IAAIvT,EAAE3E,KAAK4zF,MAAMgsB,aAA0BrqH,GAAbY,EAAE6J,KAAKysB,OAAU0rF,cAAchqG,EAAEhY,EAAEwjH,YAAY1yG,EAAE9Q,EAAEyjH,aAAazjH,EAAEA,EAAEoiH,UAAU,OAAO,IAAI5zG,GAAGpP,IAAIwiH,EAAQK,cAAc+H,WAAWhyG,GAAGlH,GAAG9Q,EAAE,EAAE8hB,YAAW,EAAGyQ,cAAa,IAAK13B,OAAOgnB,eAAerT,EAAEzT,UAAU,oBAAoB,CAACgnB,IAAI,WAAW,YAAO,IAASlY,KAAKs+G,uBAAuBt+G,KAAKs+G,uBAAuBt+G,KAAK4zF,MAAMwsB,WAAW,EAAEnoG,YAAW,EAAGyQ,cAAa,IAAK/jB,EAAEzT,UAAUqtH,QAAQ,SAAS55G,EAAExO,GAAG,IAAIZ,EAAE4Y,EAAElH,OAAE,IAAStC,IAAIA,EAAE,GAAG3E,KAAKg9G,eAAeh9G,KAAKqgH,2BAA2B9qH,EAAEmmH,EAAMY,4BAA4B33G,EAAE3E,KAAK4zF,MAAMuoB,YAAYhuG,EAAEutG,EAAM4E,4BAA4B/qH,EAAEyK,KAAK4zF,OAAO3sF,EAAEy0G,EAAM6E,yBAAyBvgH,KAAK4zF,OAAO5zF,KAAKwgH,eAAe,CAACxI,YAAYziH,EAAEknH,sBAAsBx1G,EAAEy1G,yBAAyBvuG,EAAEsyG,UAAUtqH,KAAK6J,KAAKwgH,eAAe,CAACxI,YAAYrzG,EAAE87G,UAAUtqH,GAAG,EAAEwO,EAAEzT,UAAU8qH,UAAU,SAASr3G,GAAG3E,KAAKg9G,eAAer4G,GAAGA,EAAE+7G,YAAY1gH,KAAKo9G,eAAc,GAAI,IAAIjnH,EAAEZ,EAAEoP,EAAE3E,KAAK4zF,MAAMokB,YAAY,EAAEh4G,KAAKqgH,2BAA2BlqH,GAAG6J,KAAK4zF,MAAM+sB,WAAWprH,EAAEmmH,EAAM6E,yBAAyBvgH,KAAK4zF,OAAO5zF,KAAKwgH,eAAe,CAACxI,YAAYrzG,EAAE83G,sBAAsBlnH,EAAEmnH,yBAAyBvmH,KAAK6J,KAAKwgH,eAAe,CAACxI,YAAYrzG,GAAG,EAAEA,EAAEzT,UAAU+qH,UAAU,SAASt3G,GAAG3E,KAAKg9G,eAAer4G,GAAGA,EAAE+7G,YAAY1gH,KAAKo9G,eAAc,GAAI,IAAIjnH,EAAEZ,EAAEoP,EAAE3E,KAAK4zF,MAAMokB,YAAY,EAAEh4G,KAAKqgH,2BAA2BlqH,EAAE6J,KAAK4zF,MAAM+sB,WAAWprH,EAAEmmH,EAAM6E,yBAAyBvgH,KAAK4zF,OAAO5zF,KAAKwgH,eAAe,CAACxI,YAAYrzG,EAAE83G,sBAAsBlnH,EAAEmnH,yBAAyBvmH,KAAK6J,KAAKwgH,eAAe,CAACxI,YAAYrzG,GAAG,EAAEA,EAAEzT,UAAU+tH,mBAAmB,WAAW3+G,OAAOowB,iBAAiB,SAAS1wB,KAAK6+G,wBAAwB7+G,KAAKysB,MAAM+sF,oBAAoBl5G,OAAOowB,iBAAiB,QAAQ1wB,KAAK87G,sBAAsB,EAAEn3G,EAAEzT,UAAUyuH,sBAAsB,WAAW3/G,KAAK67G,eAAe77G,KAAK67G,cAAclsF,UAAUrvB,OAAOqwB,oBAAoB,SAAS3wB,KAAK6+G,wBAAwBv+G,OAAOqwB,oBAAoB,QAAQ3wB,KAAK87G,sBAAsB,EAAEn3G,EAAEzT,UAAUsuH,sBAAsB,WAAWx/G,KAAKysB,MAAM+sF,mBAAmBl5G,OAAOowB,iBAAiB,QAAQ1wB,KAAK87G,uBAAuBx7G,OAAOqwB,oBAAoB,QAAQ3wB,KAAK87G,sBAAsB,EAAEn3G,EAAEzT,UAAUytH,cAAc,SAASvxG,GAAG,OAAOwtG,EAAU56G,UAAK,OAAO,GAAO,WAAW,IAAI7J,EAAEZ,EAAE4Y,EAAElH,EAAE,OAAO8zG,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAO7sG,EAAEnO,KAAKysB,MAAM6tF,cAAc/kH,EAAEmmH,EAAMkF,qBAAqB5gH,KAAKu9G,cAAcpvG,GAAGutG,EAAMmF,yBAAyBzzG,EAAEpN,KAAKq+G,wBAAwB9oH,IAAKyK,KAAK0/G,2BAA2B1/G,KAAKq+G,wBAAwB9oH,EAAE4Y,EAAEnO,KAAK4zF,MAAMr+F,EAAE4Y,EAAEguG,WAAWhmH,EAAEgY,EAAE2uG,cAAc3uG,EAAEutG,EAAMY,4BAA4Bt8G,KAAK4zF,MAAMokB,YAAYziH,GAAGA,EAAEmmH,EAAMuC,sBAAsBtD,EAASA,EAAS,CAAC,EAAE36G,KAAKysB,OAAO,CAACurF,YAAY7pG,IAAInO,KAAKy9G,gBAAgBtvG,EAAEutG,EAAMoF,uBAAuBvrH,EAAEyiH,YAAYziH,GAAG0R,EAAE0zG,EAASA,EAAS,CAAC,EAAEplH,GAAG,CAAC6qH,YAAYjyG,EAAE2uG,cAAc3mH,IAAIulH,EAAMqF,QAAQ/gH,KAAKy9G,eAAe,CAACl5G,UAAU4J,IAAI,CAAC,EAAEnO,KAAKw8G,SAASv1G,KAAK,CAAC,EAAE,GAAG,KAAK,EAAEtC,EAAE8vG,OAAOz0G,KAAKghH,eAAe,CAACpB,aAAa34G,EAAE24G,eAAe5/G,KAAKk+G,qBAAoB,EAAG/nH,GAAG6J,KAAKk9G,cAAcv4G,EAAEq2G,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,GAAE,GAAE,EAAEr2G,EAAEzT,UAAUstH,iBAAiB,SAAS75G,EAAExO,GAAG,IAAIZ,EAAEY,EAAE8qH,KAAK9yG,EAAEhY,EAAE+qH,KAAKj6G,EAAE9Q,EAAEgrH,OAA4Ct9G,GAArC1N,EAAE6J,KAAKysB,MAAMqtF,YAAW1sG,EAAEpN,KAAK4zF,OAAUwtB,iBAAgBxgH,EAAEwM,EAAEi0G,cAAc30G,EAAEU,EAAEk0G,cAAczpG,EAAEzK,EAAEksG,SAASlsG,EAAEA,EAAEgvG,2BAA2B,GAAGp8G,KAAKo9G,eAAc,IAAKhwG,IAAIpN,KAAKm+G,2BAA2BzC,EAAM6F,4BAA4BpzG,EAAE5Y,EAAEY,IAAI,CAAC6J,KAAKm+G,4BAA4Bn+G,KAAK0/G,2BAA2B1/G,KAAKwhH,wBAAwBxhH,KAAKk+G,qBAAoB,EAAGl+G,KAAKm+G,2BAA0B,EAAGn+G,KAAKyhH,sBAAsB,IAAIhpG,EAAEijG,EAAMgG,8BAA8Bz6G,EAAEjH,KAAK2hH,mBAAmB,IAAG,IAAK9pG,EAAE,OAAOjX,EAAE6X,GAAGA,GAAG/L,OAAE,OAAYgvG,EAAMqF,QAAQ/gH,KAAKy9G,eAAe,CAACl5G,SAASkU,IAAI,GAAGijG,EAAMkG,+BAA+BnpG,EAAE7X,EAAE8L,GAAG,KAAK,SAAS/H,IAAI+2G,EAAMmG,mBAAmB56G,GAAGwR,GAAG5U,EAAE4U,IAAI5U,EAAE63G,EAAMkG,+BAA+BnpG,EAAE7X,EAAE8L,IAAI/H,GAAG,CAApG,EAAuG,CAAC,MAAMA,GAAG+2G,EAAMoG,MAAMn9G,EAAE,CAAC+2G,EAAMqF,QAAQ/gH,KAAKy9G,eAAe,CAACl5G,SAASkU,GAAG,CAAC,EAAE9T,EAAEzT,UAAUutH,gBAAgB,SAAS95G,EAAExO,GAAG,IAAIZ,EAAE4Y,EAAElH,EAAE9Q,EAAEA,EAAEgrH,OAAOnhH,KAAK+hH,0BAA0B/hH,KAAKm+G,4BAA4Bn+G,KAAKm+G,2BAA0B,EAAG5oH,EAAEyK,KAAK4zF,MAAMqkB,kBAAkB9pG,EAAEnO,KAAKysB,MAAMyrF,wBAAwBjxG,EAAEy0G,EAAMsG,sBAAsBhiH,KAAKy9G,gBAAgBtnH,EAAEulH,EAAMuG,yBAAyBjiH,KAAK4zF,MAAMz9F,EAAE8Q,GAAGy0G,EAAMqF,QAAQ/gH,KAAKy9G,eAAe,CAACl5G,SAASpO,EAAE8hH,kBAAkB1iH,EAAE2iH,wBAAwB/pG,IAAInO,KAAKkiH,sBAAsB/rH,GAAG,EAAEwO,EAAEzT,UAAUgxH,sBAAsB,SAAS90G,GAAG,IAAIzI,EAAE3E,KAAK7J,EAAE6J,KAAK4zF,MAAMqkB,kBAAkBj4G,KAAKmiH,kBAAkB7hH,OAAO2qC,YAAW,WAAW,OAAO2vE,EAAUj2G,OAAE,OAAO,GAAO,WAAW,IAAIxO,EAAEZ,EAAE4Y,EAAElH,EAAEjH,KAAK,OAAO+6G,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAO7kH,EAAEulH,EAAM0G,sBAAsBh1G,EAAEpN,KAAK4zF,OAAOr+F,EAAEmmH,EAAMoF,uBAAuB3qH,EAAE6J,KAAK4zF,OAAO8nB,EAAMqF,QAAQ/gH,KAAKy9G,eAAe,CAACl5G,UAAUhP,IAAI4Y,EAAEutG,EAAM2G,wBAAwB,CAAC,EAAEriH,KAAKw8G,SAAS,CAACxE,YAAY7hH,EAAEiqH,YAAY7qH,EAAE+sH,WAAWn0G,KAAK,KAAK,EAAE,OAAOxJ,EAAE8vG,OAAOzmE,uBAAsB,WAAW,OAAO/mC,EAAE01G,qBAAqB,IAAG,CAAC,GAAG,GAAE,GAAE,GAAExmH,EAAE,EAAEwO,EAAEzT,UAAUsvH,eAAe,SAAS77G,GAAG,IAAmFxO,EAA/D0N,OAAE,KAAlB1N,EAAEwO,EAAEqzG,aAAyB,EAAE7hH,EAA4ByK,OAAE,KAA5BzK,EAAEwO,EAAE83G,uBAAmC,KAAKtmH,EAA+BuW,OAAE,KAA/BvW,EAAEwO,EAAE+3G,0BAAsC,KAAKvmH,EAAE0hB,EAAElT,EAAE87G,UAAU,OAAO7F,EAAU56G,UAAK,OAAO,GAAO,WAAW,IAAI7J,EAAEZ,EAAE4Y,EAAElH,EAAEmG,EAAEpN,KAAK,OAAO+6G,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAOzlH,EAAEyK,KAAKysB,MAAMte,EAAE5Y,EAAE+jH,SAAS/jH,EAAEA,EAAE2iH,wBAAwB/hH,EAAE6J,KAAK4zF,MAAM3sF,EAAE9Q,EAAEgmH,WAAWhmH,EAAEA,EAAE8hH,kBAAkBj4G,KAAKk+G,qBAAqBl+G,KAAK4zF,MAAMokB,cAAcn0G,IAAIsK,GAAGutG,EAAM6G,2BAA2B1+G,EAAEoD,GAAI,CAAC,IAAIjH,KAAKk+G,qBAAoB,EAAGl+G,KAAK0/G,2BAA2B1/G,KAAKyhH,mBAAmB5pG,GAAG1J,GAAE,EAAGlH,EAAEy0G,EAAMoF,uBAAuBj9G,EAAE7D,KAAK4zF,OAAOr+F,EAAE,OAAOqL,GAAG,OAAO8L,GAAGyB,GAAE,EAAGutG,EAAM2G,yBAAyB3G,EAAM2G,sBAAsB,CAACpK,kBAAkB9hH,EAAE+hH,wBAAwB3iH,IAAI,CAAC,EAAEyK,KAAKw8G,SAAS,CAACxE,YAAYn0G,EAAEy+G,WAAW/sH,EAAE6qH,YAAYn5G,EAAEgxG,kBAAkB9hH,EAAEsmH,sBAAsB77G,EAAE87G,yBAAyBhwG,EAAE0vG,2BAA2BjuG,MAAM,KAAK,EAAE,OAAOxJ,EAAE8vG,OAAOz0G,KAAKwiH,kBAAkBliH,OAAO2qC,YAAW,WAAW,OAAO79B,EAAE8uG,sBAAsBrkG,EAAE,GAAE1hB,GAAG,CAAC,GAAG,GAAE,GAAE,EAAEwO,EAAEzT,UAAUqrH,2BAA2B,SAASt1G,GAAG,OAAO2zG,EAAU56G,UAAK,OAAO,GAAO,WAAW,IAAI7J,EAAEZ,EAAE4Y,EAAE,OAAO4sG,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAO7kH,EAAE6J,KAAK4zF,MAAMqkB,kBAAkB1iH,EAAEmmH,EAAMoF,uBAAuB75G,EAAEjH,KAAK4zF,OAAOzlF,EAAEutG,EAAM2G,sBAAsB,CAACpK,kBAAkB,IAAI,CAAC,EAAEj4G,KAAKw8G,SAAS,CAACxE,YAAY/wG,EAAEm5G,YAAY7qH,EAAE+sH,WAAWn0G,EAAE8pG,kBAAkB9hH,EAAEsmH,sBAAsB,KAAKC,yBAAyB,KAAKN,4BAA2B,KAAM,KAAK,EAAE,OAAOz3G,EAAE8vG,OAAO,CAAC,GAAG,GAAE,GAAE,EAAE9vG,EAAEzT,UAAUuxH,eAAe,WAAWziH,KAAKysB,MAAM4tF,WAAWr6G,KAAKysB,MAAM4tF,UAAUM,EAASA,EAAS,CAAC,EAAE36G,KAAK0iH,aAAa,CAACllG,KAAKu6F,EAAQsH,UAAUC,SAAS,EAAE36G,EAAEzT,UAAU8vH,eAAe,SAASr8G,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG3E,KAAKysB,MAAM2tF,WAAWp6G,KAAKysB,MAAM2tF,UAAUO,EAASA,EAASA,EAAS,CAAC,EAAE36G,KAAK0iH,aAAa/9G,GAAG,CAAC6Y,KAAKu6F,EAAQsH,UAAUsD,SAAS,EAAEh+G,EAAEzT,UAAUuwH,mBAAmB,SAAS98G,GAAG3E,KAAKysB,MAAM8tF,gBAAgB51G,EAAEA,EAAEg2G,EAASA,EAAS,CAAC,EAAE36G,KAAK0iH,aAAa,CAACllG,KAAK7Y,IAAI3E,KAAK0iH,YAAY1iH,KAAKysB,MAAM8tF,cAAc51G,GAAG,EAAEA,EAAEzT,UAAUyrH,oBAAoB,SAASvvG,GAAG,OAAOwtG,EAAU56G,UAAK,OAAO,GAAO,WAAW,IAAI7J,EAAEZ,EAAE4Y,EAAElH,EAAE,OAAO8zG,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAOzlH,EAAEyK,KAAK4zF,MAAMz9F,EAAEZ,EAAEunH,cAAcvnH,EAAEA,EAAE8nH,2BAA2BlvG,EAAEnO,KAAKysB,MAAMxlB,EAAEkH,EAAE2qG,iBAAiB3qG,EAAEA,EAAEqsG,eAAekB,EAAMkH,6BAA6B37G,IAAIjH,KAAKo9G,gBAAgB7nH,EAAG,CAAC,EAAEyK,KAAKw8G,SAAS,CAACa,4BAA2B,EAAGP,eAAc,KAAM,CAAC,EAAE,GAAG,KAAK,EAAE,OAAOn4G,EAAE8vG,OAAO,CAAC,EAAE,GAAG,KAAK,EAAEt+G,GAAG6J,KAAKk9G,cAAcv4G,EAAEq2G,MAAM,EAAE,KAAK,EAAE,OAAOh7G,KAAKk+G,qBAAoB,EAAG/vG,IAAIlH,EAAEmG,EAAEutG,EAASA,EAAS,CAAC,EAAE36G,KAAK0iH,aAAa,CAACllG,KAAKpQ,IAAIpN,KAAK0iH,YAAYv0G,EAAElH,IAAImG,IAAI2qG,EAAQsH,UAAUC,QAAQt/G,KAAKyiH,iBAAiB,CAAC,GAAG,GAAE,GAAE,EAAE99G,EAAEzT,UAAUwtH,gBAAgB,SAAS/5G,GAAG3E,KAAKo9G,eAAc,EAAGp9G,KAAKu+G,QAAQ55G,EAAE,EAAEA,EAAEzT,UAAUgsH,YAAY,WAAWl9G,KAAK6iH,sBAAsB,EAAEl+G,EAAEzT,UAAUwuH,yBAAyB,WAAW1/G,KAAKm9G,wBAAwBn9G,KAAK8iH,wBAAwB9iH,KAAK+iH,sBAAsB,EAAEp+G,EAAEzT,UAAUisH,sBAAsB,WAAW78G,OAAO0iH,aAAahjH,KAAKijH,mBAAmBjjH,KAAKijH,uBAAkB,CAAM,EAAEt+G,EAAEzT,UAAU4xH,sBAAsB,WAAWE,aAAahjH,KAAKwiH,mBAAmBxiH,KAAKwiH,uBAAkB,CAAM,EAAE79G,EAAEzT,UAAU6xH,qBAAqB,WAAWC,aAAahjH,KAAKmiH,mBAAmBniH,KAAKmiH,uBAAkB,CAAM,EAAEx9G,EAAEzT,UAAU6wH,wBAAwB,WAAW/hH,KAAKs+G,4BAAuB,CAAM,EAAE35G,EAAEzT,UAAUswH,sBAAsB,WAAW,IAAI78G,EAAE+2G,EAAMsG,sBAAsBhiH,KAAKy9G,gBAAgBz9G,KAAKs+G,wBAAwB35G,CAAC,EAAEA,EAAEzT,UAAU8tH,iBAAiB,WAAW,OAAOpE,EAAU56G,UAAK,OAAO,GAAO,WAAW,IAAI7J,EAAE,OAAO4kH,EAAY/6G,MAAK,SAAS2E,GAAG,OAAOA,EAAEq2G,OAAO,KAAK,EAAE,OAAO7kH,EAAEulH,EAAMuC,sBAAsBj+G,KAAKysB,MAAMzsB,KAAKy9G,gBAAgBz9G,KAAKq+G,wBAAwB3C,EAAMkF,qBAAqB5gH,KAAKu9G,aAAa,CAAC,EAAEv9G,KAAKw8G,SAASrmH,IAAI,KAAK,EAAE,OAAOwO,EAAE8vG,OAAOz0G,KAAKysB,MAAM0tF,eAAen6G,KAAKysB,MAAM0tF,cAAcQ,EAASA,EAAS,CAAC,EAAE36G,KAAK0iH,aAAa,CAACllG,KAAKu6F,EAAQsH,UAAU6D,QAAQ,CAAC,GAAG,GAAE,GAAE,EAAEv+G,EAAEzT,UAAU2xH,qBAAqB,WAAW,IAAIl+G,EAAE3E,KAAkBzK,GAAbY,EAAE6J,KAAKysB,OAAUisF,kBAAkBviH,EAAEA,EAAE0iH,iBAAiB74G,KAAKijH,kBAAkB3iH,OAAO2qC,YAAW,WAAWtmC,EAAEo4G,YAAYxnH,IAAIwiH,EAAQY,kBAAkBwK,IAAIx+G,EAAEq3G,YAAYr3G,EAAEs3G,YAAY,GAAE9lH,EAAE,EAAEwO,EAAEzT,UAAUguH,oBAAoB,WAAWl/G,KAAK67G,cAAc,IAAIP,EAAgBvhG,QAAQ,CAACof,QAAQn5B,KAAKu9G,YAAYrqG,MAAMlT,KAAKysB,MAAMqtF,WAAWsJ,UAAUpjH,KAAKw+G,iBAAiB6E,SAASrjH,KAAKy+G,gBAAgB6E,cAAc,EAAEC,qBAAqBvjH,KAAKysB,MAAMgtF,cAAc+J,qBAAqBxjH,KAAKysB,MAAMwtF,cAAcwJ,8BAA8BzjH,KAAKysB,MAAMytF,uBAAuBwJ,6BAA4B,IAAK1jH,KAAK67G,cAAcrvE,MAAM,EAAE7nC,EAAEzT,UAAUkuH,iBAAiB,WAAW,IAAIz6G,EAAE3E,KAAK7J,GAAG6J,KAAKysB,MAAMitF,uBAAuB15G,KAAK4zF,MAAM5zF,KAAKysB,OAAOurF,YAAYziH,EAAEolH,EAASA,EAAS,CAAC,EAAE36G,KAAKysB,OAAO,CAACurF,YAAY7hH,IAAI6J,KAAK0/G,2BAA2B1/G,KAAKk+G,qBAAoB,EAAGl+G,KAAK4zF,MAAMkpB,eAAe98G,KAAKk9G,cAAcl9G,KAAKw8G,SAAS,CAACmH,OAAOjI,EAAMkI,aAAaruH,KAAKy4C,uBAAsB,WAAWrpC,EAAE63G,SAASd,EAAMuC,sBAAsB1oH,EAAEoP,EAAE84G,iBAAgB,WAAW,OAAO94G,EAAE89G,gBAAgB,GAAE,GAAE,EAAE99G,EAAEzT,UAAUquH,kBAAkB,WAAWv/G,KAAK67G,eAAe77G,KAAK67G,cAAcxnC,OAAO,CAACnhE,MAAMlT,KAAKysB,MAAMqtF,WAAWyJ,qBAAqBvjH,KAAKysB,MAAMgtF,cAAc+J,qBAAqBxjH,KAAKysB,MAAMwtF,cAAcwJ,8BAA8BzjH,KAAKysB,MAAMytF,wBAAwB,EAAEv1G,EAAEzT,UAAU2yH,sBAAsB,WAAW,IAAiB1tH,GAAbwO,EAAE3E,KAAKysB,OAAUq3F,eAAen/G,EAAEA,EAAEs0G,iBAAiB,OAAOmC,EAAQrhG,QAAQgX,cAAc0qF,EAAMsI,eAAe,CAACnwB,MAAM5zF,KAAK4zF,MAAMowB,QAAQhkH,KAAK0+G,gBAAgBoF,eAAe3tH,EAAE8iH,iBAAiBt0G,GAAG,EAAEA,EAAEzT,UAAU+yH,kBAAkB,WAAW,IAAIt/G,EAAE3E,KAAKysB,MAAMy3F,iBAAiB/tH,EAAEulH,EAAMmE,iBAAiB7/G,KAAK4zF,OAAOmsB,oBAAoB,OAAO3E,EAAQrhG,QAAQgX,cAAc0qF,EAAM0I,eAAe,CAAC5yH,KAAK,OAAOyyH,QAAQhkH,KAAKg8G,UAAUoI,WAAWjuH,EAAE+tH,iBAAiBv/G,GAAG,EAAEA,EAAEzT,UAAUmzH,kBAAkB,WAAW,IAAI1/G,EAAE3E,KAAKysB,MAAM63F,iBAAiBnuH,EAAEulH,EAAMmE,iBAAiB7/G,KAAK4zF,OAAOksB,oBAAoB,OAAO1E,EAAQrhG,QAAQgX,cAAc0qF,EAAM0I,eAAe,CAAC5yH,KAAK,OAAOyyH,QAAQhkH,KAAKi8G,UAAUmI,WAAWjuH,EAAEmuH,iBAAiB3/G,GAAG,EAAEA,EAAEzT,UAAUqzH,uBAAuB,WAAW,IAAI5/G,EAAE3E,KAAKysB,MAAM+3F,sBAAsBruH,EAAE6J,KAAK4zF,MAAMkpB,cAAc,OAAO1B,EAAQrhG,QAAQgX,cAAc0qF,EAAMgJ,gBAAgB,CAACjuF,UAAUrgC,EAAE6tH,QAAQhkH,KAAK+7G,uBAAuByI,sBAAsB7/G,GAAG,EAAEA,EAAEzT,UAAU2iF,OAAO,WAAW,IAAiB19E,GAAbwO,EAAE3E,KAAK4zF,OAAUwsB,YAAY7qH,EAAEoP,EAAEg/G,OAAOx1G,EAAExJ,EAAE29G,WAAW39G,EAAEA,EAAE+/G,UAAUz9G,EAAEy0G,EAAMiJ,kBAAkB3kH,KAAKysB,MAAMzsB,KAAK4zF,OAAOxmF,EAAEsuG,EAAMkJ,qBAAqB5kH,KAAKysB,MAAMzsB,KAAK4zF,OAAO/vF,EAAE63G,EAAMmJ,uBAAuB7kH,KAAKysB,MAAMzsB,KAAK4zF,MAAM5zF,KAAKy9G,gBAAgBtnH,EAAEulH,EAAMoJ,qBAAqB,CAAC1E,YAAYjqH,GAAG,CAACmsH,WAAWn0G,IAAIA,EAAEnO,KAAKysB,MAAMutF,eAAer1G,EAAE,GAAGozG,EAAQgN,UAAUC,IAAIrgH,EAAE+2G,EAAMuJ,iBAAiBlN,EAAQmN,WAAWC,KAAKh3G,GAAG,OAAOitG,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUp5E,GAAGy2G,EAAQrhG,QAAQgX,cAAc,MAAM,CAACC,IAAIhxB,KAAKs9G,sBAAsBlC,EAAQrhG,QAAQgX,cAAc,MAAM,CAACrE,MAAM7oB,EAAEk6E,UAAUg6B,EAAQmN,WAAWE,QAAQC,aAAarlH,KAAK48G,kBAAkB0I,aAAatlH,KAAKi9G,mBAAmB7B,EAAQrhG,QAAQgX,cAAc,KAAK,CAACrE,MAAMv2B,EAAE4nF,UAAUg6B,EAAQmN,WAAWK,MAAMv0F,IAAIhxB,KAAKw9G,uBAAuBjoH,EAAEwoB,IAAI/d,KAAK09G,qBAAqBz2G,EAAE,KAAKjH,KAAK6jH,wBAAwBz2G,EAAE,KAAKpN,KAAKikH,oBAAoB72G,EAAE,KAAKpN,KAAKqkH,oBAAoBrkH,KAAKysB,MAAM4sF,iBAAiB,KAAKr5G,KAAK89G,mBAAmB99G,KAAKysB,MAAMgsF,iBAAiBz4G,KAAKukH,yBAAyB,KAAK,EAAE5/G,EAAEmzG,aAAayD,EAAezD,aAAanzG,CAAC,CAAvrhB,CAAyrhBy2G,EAAQrhG,QAAQyrG,gBAAgB9qH,EAAAA,QAAgBihH,6BCAn+nB,IAAqUxlH,EAAhOnF,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQqqH,UAAUrqH,EAAQwqH,WAAWxqH,EAAQi+G,kBAAkBj+G,EAAQw+G,iBAAiBx+G,EAAQq+G,iBAAiBr+G,EAAQ09G,cAAc19G,EAAQ2kH,eAAU,GAAgBlpH,EAAkFuE,EAAQ2kH,YAAY3kH,EAAQ2kH,UAAU,CAAC,IAApHa,OAAO,SAAS/pH,EAAE+sH,KAAK,OAAO/sH,EAAEwsH,OAAO,SAASxsH,EAAEmpH,OAAO,SAA+D,SAASnpH,GAAGA,EAAEgqH,QAAQ,UAAUhqH,EAAEkiH,MAAM,OAAO,CAA/C,CAA+D39G,EAAQ09G,gBAAgB19G,EAAQ09G,cAAc,CAAC,IAAI,SAASjiH,GAAGA,EAAE6iH,QAAQ,UAAU7iH,EAAEsvH,IAAI,MAAMtvH,EAAE+pH,OAAO,SAAS/pH,EAAEuvH,KAAK,MAAM,CAA3E,CAA8FhrH,EAAQq+G,mBAAmBr+G,EAAQq+G,iBAAiB,CAAC,IAAI,SAAS5iH,GAAGA,EAAE6iH,QAAQ,UAAU7iH,EAAEwvH,UAAU,YAAYxvH,EAAEyvH,WAAW,YAAY,CAAjF,CAAoGlrH,EAAQw+G,mBAAmBx+G,EAAQw+G,iBAAiB,CAAC,IAAI,SAAS/iH,GAAGA,EAAEgtH,IAAI,MAAMhtH,EAAEyiH,IAAI,KAAK,CAAnC,CAAuDl+G,EAAQi+G,oBAAoBj+G,EAAQi+G,kBAAkB,CAAC,IAAI,SAASxiH,GAAGA,EAAE0vH,SAAS,gCAAgC1vH,EAAEgvH,KAAK,iBAAiBhvH,EAAEivH,QAAQ,0BAA0BjvH,EAAEovH,MAAM,wBAAwBpvH,EAAE2vH,WAAW,6BAA6B3vH,EAAE4vH,KAAK,uBAAuB5vH,EAAE6vH,UAAU,4BAA4B7vH,EAAE8vH,SAAS,2BAA2B9vH,EAAE+vH,cAAc,gCAAgC/vH,EAAEgwH,iBAAiB,mCAAmChwH,EAAEiwH,WAAW,6BAA6BjwH,EAAEkwH,gBAAgB,kCAAkClwH,EAAEmwH,YAAY,2BAA2BnwH,EAAEowH,oBAAoB,mCAAmCpwH,EAAEqwH,iBAAiB,gCAAgCrwH,EAAEswH,YAAY,2BAA2BtwH,EAAEuwH,oBAAoB,mCAAmCvwH,EAAEwwH,iBAAiB,+BAA+B,CAAtxB,CAAmyBjsH,EAAQwqH,aAAaxqH,EAAQwqH,WAAW,CAAC,IAAI,SAAS/uH,GAAGA,EAAEywH,OAAO,WAAWzwH,EAAE0wH,SAAS,aAAa1wH,EAAE2wH,OAAO,WAAW3wH,EAAE4wH,OAAO,WAAW5wH,EAAE6wH,MAAM,UAAU7wH,EAAE8wH,UAAU,cAAc9wH,EAAE6uH,IAAI,QAAQ7uH,EAAE+wH,OAAO,UAAU,CAA7K,CAAyLxsH,EAAQqqH,YAAYrqH,EAAQqqH,UAAU,CAAC,iCCA1gE/zH,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQysH,aAAazsH,EAAQ0sH,aAAa1sH,EAAQ2sH,aAAa3sH,EAAQkjH,+BAA0B,EAAO,IAAI7F,EAAQtoH,EAAQ,MAAY63H,EAAS73H,EAAQ,MAAY83H,EAAO93H,EAAQ,MAAyY43H,GAAc3sH,EAAQkjH,0BAA3X,SAASznH,EAAEwO,QAAG,IAASxO,IAAIA,EAAE,GAAG,IAAIiX,EAAEzI,EAAE83G,sBAAsBlnH,GAAE,EAAGmF,EAAQ2sH,cAAclxH,EAAEwO,GAAGozG,EAAQgN,UAAU6B,OAAO,GAAGz4G,GAAE,EAAGzT,EAAQysH,cAAchxH,EAAEwO,GAAGozG,EAAQgN,UAAU+B,OAAO,GAAGniH,GAAE,EAAGjK,EAAQ0sH,cAAcjxH,EAAEwO,GAAGozG,EAAQgN,UAAUmC,OAAO,GAAG/wH,EAAEA,IAAIiX,EAAE2qG,EAAQmN,WAAWW,SAAS,GAAG,OAAM,EAAGyB,EAASrC,kBAAkBlN,EAAQmN,WAAWY,WAAWvwH,EAAE4Y,EAAExJ,EAAExO,EAAE,EAA4E,SAASA,EAAEwO,QAAG,IAASxO,IAAIA,EAAE,GAAG,IAAIiX,EAAEzI,EAAEqzG,YAAYziH,EAAEoP,EAAEi7G,aAAazxG,EAAExJ,EAAE6iH,YAAY5mH,EAAE+D,EAAE20G,SAAuBryG,GAAdtC,EAAEA,EAAE4zG,WAAY,EAAGgP,EAAOE,eAAelyH,EAAE4Y,IAAG,OAAOxJ,GAAG/D,EAAEzK,EAAE8Q,IAAImG,EAAEe,GAAGxJ,EAAEyI,EAAEnG,EAAErG,EAAE+D,GAAGxO,GAAGA,EAAEwO,EAAEpP,EAAE6X,GAAGjX,GAAGA,EAAEwO,EAAE,GAAGyiH,GAAc1sH,EAAQ2sH,aAAaA,EAAa,SAASlxH,EAAEwO,QAAG,IAASxO,IAAIA,EAAE,GAAG,IAAIiX,EAAEzI,EAAEqzG,YAAYziH,EAAEoP,EAAEi7G,aAAazxG,EAAExJ,EAAE6iH,YAAY5mH,EAAE+D,EAAE20G,SAAS30G,EAAEA,EAAE4zG,UAAUhjH,GAAE,EAAGgyH,EAAOE,eAAelyH,EAAE4Y,GAAG,OAAOvN,EAAE+D,GAAG/D,EAAEzK,EAAEZ,IAAI6X,EAAEe,EAAEhY,IAAIiX,EAAE7X,EAAEY,IAAIiX,CAAC,GAAG+5G,GAAczsH,EAAQ0sH,aAAaA,EAAa,SAASjxH,EAAEwO,QAAG,IAASxO,IAAIA,EAAE,GAAG,IAAIiX,EAAEzI,EAAEi7G,aAAarqH,EAAEoP,EAAE6iH,YAAYr5G,EAAExJ,EAAEw3G,WAAWv7G,EAAE+D,EAAE20G,SAAS30G,EAAEA,EAAE4zG,UAAU,QAAQ33G,IAAI+D,GAAG/D,EAAEzK,EAAEiX,GAAGe,EAAE,EAAEf,EAAEjX,EAAEA,GAAGwO,GAAE,EAAG4iH,EAAOE,eAAer6G,EAAE7X,KAAK4Y,EAAE,EAAExJ,EAAExO,EAAE,GAAGuE,EAAQysH,aAAaA,+BCAh3Cn2H,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQujH,sBAAsBvjH,EAAQgtH,yBAAyBhtH,EAAQuqH,sBAAiB,EAAO,IAAI0C,EAAWl4H,EAAQ,MAAc83H,EAAO93H,EAAQ,MAAoIi4H,GAA0BhtH,EAAQuqH,iBAA3I,WAAW,IAAI,IAAItgH,EAAE,GAAGxO,EAAE,EAAEA,EAAErE,UAAU3B,OAAOgG,IAAIwO,EAAExO,GAAGrE,UAAUqE,GAAG,OAAOwO,EAAE2nB,OAAOlzB,SAASkF,KAAK,IAAI,EAAsE,SAASqG,EAAExO,EAAEZ,GAAG,YAAO,IAASY,IAAIA,EAAE,QAAG,IAASZ,IAAIA,EAAE,KAAKoP,OAAE,IAASA,GAAGA,IAAIpP,GAAGY,CAAC,GAAG8nH,GAAuBvjH,EAAQgtH,yBAAyBA,EAAyB,SAAS/iH,EAAExO,EAAEZ,QAAG,IAASA,IAAIA,GAAE,EAAGoyH,EAAWC,cAAc,IAAIz5G,EAAEtK,EAAwBoD,OAAE,KAAxBA,EAAEtC,EAAEszG,mBAA+B,EAAEhxG,EAAemG,OAAE,KAAfA,EAAEzI,EAAE20G,WAAuBlsG,EAAeV,OAAE,KAAfA,EAAE/H,EAAE6zG,WAAuB9rG,EAAgB9L,OAAE,KAAhBA,EAAE+D,EAAE4zG,YAAwB33G,EAAEwN,GAAE,EAAGu5G,EAAW/D,cAAcj/G,GAAG8T,GAAE,EAAGkvG,EAAWtF,yBAAyB5hH,GAAE,EAAGknH,EAAWE,eAAeljH,GAAGkT,GAAE,EAAG8vG,EAAWG,gBAAgBnjH,GAAG8lB,GAAE,EAAGk9F,EAAWI,iBAAiBtnH,EAAEkE,GAAG4N,GAAE,EAAGg1G,EAAOS,eAAerjH,EAAEqzG,YAAYv3G,GAAuE2xF,GAApE7/E,GAAE,EAAGg1G,EAAOU,gBAAgB,CAACC,WAAW31G,EAAE4pG,WAAW17G,EAAE64G,SAASlsG,KAAM,EAAGu6G,EAAW/G,sBAAsBzqH,GAAG8I,OAAMm3G,GAAMjgH,GAAGyK,GAAGuN,GAAGhY,GAAE,EAAGwxH,EAAWQ,kCAAkChyH,EAAEi8F,EAAEhlF,IAAIg7G,OAAOvkH,EAAE1N,EAAEmrE,QAAQnrE,IAAIgY,GAAGhY,GAAE,EAAGwxH,EAAWU,gCAAgCj6G,EAAEgkF,EAAE3nE,EAAErd,IAAIg7G,OAAOvkH,EAAE1N,EAAEmrE,QAAQnrE,IAAIw9C,SAAW,EAAG4zE,EAAOe,gBAAgB79F,EAAItc,GAAG5J,UAAUuK,GAAE,EAAGy4G,EAAOgB,kBAAkB,CAACf,YAAY3vG,EAAE2wG,kBAAkBr6G,GAAGxJ,GAAoGwL,GAAjGxL,GAAE,EAAG4iH,EAAOkB,kBAAkB,CAACtM,WAAW17G,EAAE+mH,YAAY3vG,EAAE+nG,aAAan1F,EAAE+9F,kBAAkBr6G,GAAGxJ,IAAK,EAAG4iH,EAAOmB,oBAAoBjoH,EAAE0N,IAAG,MAAM,CAAC6pG,YAAYzlG,EAAEgmG,UAAU33G,EAAEq3G,kBAAkBhxG,EAAE08G,OAAOv1G,EAAEkrG,SAASlsG,EAAE+uG,WAAW17G,EAAEm/G,aAAan1F,EAAE+8F,YAAY3vG,EAAEuoG,aAAY,EAAGuH,EAAW7G,wBAAwBvuG,EAAE,CAACqtG,aAAan1F,EAAE+8F,YAAY3vG,EAAE2wG,kBAAkBr6G,EAAEoqG,UAAU33G,EAAE04G,SAASlsG,IAAIuzG,WAAWvuB,EAAEu2B,kBAAkB9kH,EAAE+kH,mBAAmB,EAAEC,sBAAsB1yH,EAAE2mH,cAAcpwG,EAAE2wG,4BAA2B,EAAGmL,kBAAkBr6G,EAAEm0G,WAAW7pG,EAAEgkG,sBAAsB,KAAKC,yBAAyB,KAAKN,4BAA2B,EAAGiF,cAAcvyG,EAAEwyG,cAAc38G,EAAEmkH,wBAAwB1S,EAAEgL,gBAAgBjxG,EAAEu0G,UAAUnvH,EAAE,GAAGmF,EAAQujH,sBAAsBA,+BCAnmEjtH,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQmiH,4BAA4BniH,EAAQkoH,6BAA6BloH,EAAQquH,6BAA6BruH,EAAQsuH,uBAAuBtuH,EAAQuuH,wBAAwBvuH,EAAQwuH,mBAAmBxuH,EAAQyuH,WAAWzuH,EAAQkqH,qBAAqBlqH,EAAQiqH,kBAAkBjqH,EAAQ0uH,2BAAsB,EAAO,IAAIrR,EAAQtoH,EAAQ,MAAY,SAAS25H,EAAsBzkH,EAAEsC,GAAOtC,GAAGA,GAAG,CAAC,GAAGs0G,iBAAd,IAAuC9iH,GAAR8Q,EAAEA,GAAG,CAAC,GAAM24G,aAAaxyG,EAAEnG,EAAEk1G,WAAWl1G,EAAEA,EAAEsxG,UAAU,IAAG,EAAG79G,EAAQyuH,YAAYxkH,EAAEozG,EAAQmB,iBAAiB0M,YAAY,OAAO3+G,GAAG9Q,IAAIiX,CAAC,CAAsM1S,EAAQ0uH,sBAAsBA,EAAsB1uH,EAAQiqH,kBAAjQ,SAA2BhgH,EAAEsC,GAAG,OAAOtC,EAAEy0G,qBAAqBgQ,EAAsBzkH,EAAEsC,EAAE,EAA6MvM,EAAQkqH,qBAApN,SAA8BjgH,EAAEsC,GAAG,OAAOtC,EAAEw0G,yBAAyBx0G,EAAE20G,UAAU8P,EAAsBzkH,EAAEsC,EAAE,EAAmJ,IAAqGiiH,GAAoBxuH,EAAQyuH,WAAlH,SAASxkH,EAAEsC,GAAG,YAAO,IAAStC,IAAIA,EAAE,SAAI,IAASsC,IAAIA,EAAE,IAAI7N,QAAQuL,GAAGA,EAAEmgB,SAAS7d,GAAG,EAAoD,SAAStC,EAAEsC,GAAG,OAAOtC,IAAG,EAAGjK,EAAQyuH,YAAYliH,EAAE8wG,EAAQmB,iBAAiByM,UAAU,GAAGsD,GAAyBvuH,EAAQwuH,mBAAmBA,EAAmB,SAASvkH,EAAEsC,EAAE9Q,GAAG,YAAO,IAASwO,IAAIA,EAAE,QAAG,IAASsC,IAAIA,EAAE,IAAI9Q,OAAE,IAASA,GAAGA,GAAGwO,EAAE,IAAInU,OAAOyW,IAAI/U,KAAKyP,KAAKgD,EAAEsC,IAAI,CAAC,GAAG+hH,GAAwBtuH,EAAQuuH,wBAAwBA,EAAwB,SAAStkH,EAAEsC,EAAE9Q,GAAG,OAAO8Q,GAAGtC,IAAIxO,EAAE,CAAC,GAAG4yH,GAA8BruH,EAAQsuH,uBAAuBA,EAAuB,SAASrkH,EAAEsC,EAAE9Q,EAAEiX,GAAG,OAAOnG,EAAE9Q,EAAEiX,EAAEzI,EAAEyI,IAAI,CAAC,GAAGw1G,GAA8BloH,EAAQquH,6BAA6BA,EAA6B,SAASpkH,GAAG,OAAOA,OAAE,IAASA,EAAE,GAAGA,KAAKozG,EAAQgB,iBAAiBmH,QAAQv7G,IAAIozG,EAAQgB,iBAAiB0M,GAAG,GAAG5I,GAA6BniH,EAAQkoH,6BAA6BA,EAA6B,SAASj+G,GAAG,OAAOA,OAAE,IAASA,EAAE,GAAGA,KAAKozG,EAAQgB,iBAAiBC,SAASr0G,IAAIozG,EAAQgB,iBAAiB0M,GAAG,GAAG/qH,EAAQmiH,4BAA4BA,6BCAn3D7rH,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQonH,WAAM,EAAOpnH,EAAQonH,MAApO,WAAiB,IAAI,IAAI3rH,EAAE,GAAG8Q,EAAE,EAAEA,EAAEnV,UAAU3B,OAAO8W,IAAI9Q,EAAE8Q,GAAGnV,UAAUmV,EAAuE,+BCA/I,IAAI0zG,EAAS,WAAW,OAAOA,EAAS3pH,OAAOG,QAAQ,SAASwT,GAAG,IAAI,IAAIxO,EAAEgY,EAAE,EAAEvN,EAAE9O,UAAU3B,OAAOge,EAAEvN,EAAEuN,IAAI,IAAI,IAAIlH,KAAK9Q,EAAErE,UAAUqc,GAAGnd,OAAOE,UAAU2G,eAAeC,KAAK3B,EAAE8Q,KAAKtC,EAAEsC,GAAG9Q,EAAE8Q,IAAI,OAAOtC,CAAC,GAAGuX,MAAMlc,KAAKlO,UAAU,EAAEu3H,GAAWr4H,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQqtH,gBAAgBrtH,EAAQktH,UAAUltH,EAAQ4uH,mBAAmB5uH,EAAQsnH,sBAAsBtnH,EAAQgnH,8BAA8BhnH,EAAQomH,uBAAuBpmH,EAAQijH,yBAAyBjjH,EAAQoqH,qBAAqBpqH,EAAQ2nH,sBAAsB3nH,EAAQmqH,uBAAuBnqH,EAAQqmH,QAAQrmH,EAAQmmH,wBAAwBnmH,EAAQ6uH,qBAAqB7uH,EAAQ8uH,iBAAiB9uH,EAAQ+uH,sBAAsB/uH,EAAQkmH,qBAAqBlmH,EAAQgvH,aAAahvH,EAAQ2tH,+BAA+B3tH,EAAQytH,iCAAiCztH,EAAQivH,UAAUjvH,EAAQkpH,aAAalpH,EAAQotH,eAAeptH,EAAQmtH,cAAcntH,EAAQkvH,eAAU,EAAOn6H,EAAQ,OAAc83H,EAAO93H,EAAQ,MAAoGo4H,GAAentH,EAAQkvH,UAAvG,SAASjlH,GAAG,IAAIxO,EAAEwO,EAAE6pF,SAAS7pF,EAAEA,EAAEowD,MAAM,OAAO5+D,EAAEA,EAAEhG,OAAOgG,EAAE,CAACA,QAAG,IAASwO,EAAE,GAAGA,CAAC,EAA6C,SAASA,GAAG,OAAM,EAAGjK,EAAQkvH,WAAWjlH,GAAGxU,MAAM,GAAG23H,GAAgBptH,EAAQmtH,cAAcA,EAAc,SAASljH,GAAG,IAAIxO,EAAEwO,EAAE20G,SAASnrG,EAAExJ,EAAEi1G,aAAaj1G,EAAEA,EAAEg1G,YAAY,OAAOxjH,IAAIwO,GAAGwJ,GAAG,EAAE,CAAC,GAAGy1G,GAAclpH,EAAQotH,eAAeA,EAAe,SAASnjH,GAAG,IAAIxO,EAAEgY,EAAEvN,EAAEqG,EAAE1R,GAAE,EAAGmF,EAAQkvH,WAAWjlH,GAAG,OAAOA,EAAE20G,UAAUnjH,GAAE,EAAGuE,EAAQmtH,eAAeljH,GAAGsC,GAAE,EAAGvM,EAAQotH,gBAAgBnjH,GAAGA,GAAE,EAAGjK,EAAQqtH,iBAAiB5xH,EAAEwO,GAAG/D,EAAE1O,KAAK6O,IAAI4D,EAAExO,GAAG8Q,EAAEkH,EAAE5Y,EAAEwE,MAAM,EAAE6G,GAAGA,EAAErL,EAAEwE,OAAO6G,GAAGqG,GAAGtC,IAAIxO,IAAI8Q,EAAE1R,EAAE,GAAGoP,EAAEpP,EAAEwE,OAAO,GAAG,GAAG6G,EAAE0zD,QAAQ3vD,GAAGwJ,EAAE3Y,KAAKyR,IAAIrG,EAAE6Z,OAAOllB,EAAE4Y,IAAI5Y,CAAC,GAAGo0H,GAAWjvH,EAAQkpH,aAAaA,EAAa,SAASj/G,GAAG,IAAI,OAAOA,aAAaklH,SAASllH,aAAamlH,YAAY,CAAC,MAAMnlH,GAAG,OAAM,CAAE,CAAC,GAAGwjH,GAAkCztH,EAAQivH,UAAUA,EAAU,SAAShlH,EAAEpP,EAAEY,QAAG,IAASZ,IAAIA,EAAE,QAAG,IAASY,IAAIA,GAAE,GAAI,IAAIiX,EAAE,EAAEvJ,GAAE,EAAGsK,EAAE,GAAG,OAAM,EAAGzT,EAAQivH,WAAWhlH,KAAKwJ,EAAEpY,MAAM/F,MAAM,MAAM2U,OAAE,EAAOA,EAAE6pF,WAAW,IAAI94F,QAAO,SAASiP,EAAExO,EAAEgY,GAAG,IAAIvN,EAAE,EAAQqG,EAAEtC,EAARwJ,EAAEA,EAAE,GAAShY,EAAEyqH,EAAqB,MAAMzqH,OAAE,EAAOA,EAAE4zH,YAAY9qH,MAAuB,OAAO4E,GAAGuJ,GAA3BjX,OAAE,IAASA,EAAE,EAAEA,IAAmBZ,EAAE0R,IAAIrG,EAAE,GAAGuN,EAAElH,EAAEhI,MAAMgI,EAAEhI,MAAMgI,EAAE1C,UAAUI,EAAEnP,KAAK,CAAC+O,SAAS3D,EAAE3B,MAAM9I,IAAIwO,CAAC,GAAE,IAAIxO,IAAIgY,EAAEtK,GAAE,EAAGwlH,EAAUW,kBAAkB77G,IAAIxJ,EAAEyI,EAAE7X,GAAE,EAAG8zH,EAAUY,mBAAmB97G,EAAExJ,MAAM,CAACyjH,OAAOj6G,EAAEmzD,QAAQl0D,EAAEumC,QAAQ9vC,EAAE,GAAGwkH,GAAgC3tH,EAAQytH,iCAAiCA,EAAiC,SAASxjH,EAAEsC,EAAE9Q,EAAEgY,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAI5Y,EAAE,EAAE6X,GAAE,EAAGxM,EAAE,GAAGiD,GAAE,EAAGnJ,EAAQgvH,cAAcziH,EAAE9Q,GAAG,OAAOyK,EAAE+D,EAAEjP,QAAO,SAASiP,EAAExO,EAAEgY,GAAG,IAAIvN,EAAE,EAAEuN,EAAExJ,EAAEwJ,EAAE,GAAG,OAAOf,GAAG7X,GAAGsO,IAAIoD,EAAEkH,IAAIvN,EAAEiD,EAAEsK,EAAE5J,UAAU,GAAGI,EAAEnP,KAAK,CAACyJ,MAAM4E,EAAEU,SAAS3D,IAAI+D,CAAC,GAAE,IAAI,CAACyjH,OAAOxnH,EAAEuN,EAAEvN,EAAEwM,GAAE,EAAGi8G,EAAUW,kBAAkBppH,IAAIzK,EAAEZ,EAAE0R,GAAE,EAAGoiH,EAAUY,mBAAmBrpH,EAAEzK,IAAImrE,QAAQ/rE,EAAEo+C,QAAQvmC,EAAE,GAAGs8G,GAAchvH,EAAQ2tH,+BAA+BA,EAA+B,SAAS1jH,EAAExO,GAAG,OAAO,EAAEA,EAAEwO,EAAExO,EAAEwO,CAAC,GAAG,SAASi8G,EAAqBj8G,GAAG,OAAOA,GAAGA,EAAE0sB,sBAAsB,CAACpyB,OAAO0F,EAAEA,EAAE0sB,yBAAyBpyB,MAAMsyB,OAAO5sB,EAAE4sB,QAAQ,CAACtyB,MAAM,EAAEsyB,OAAO,EAAE,CAAC72B,EAAQgvH,aAAaA,EAAahvH,EAAQkmH,qBAAqBA,EAAqB,IAAgR4I,GAAkB9uH,EAAQ+uH,sBAAhR,SAAS9kH,EAAExO,EAAEgY,GAAOhY,GAAE,EAAGuE,EAAQ8uH,kBAAkBrzH,EAAEgY,GAAGA,GAAE,EAAGzT,EAAQ6uH,sBAAsB5kH,EAAExO,GAAG,IAAG,EAAGuE,EAAQivH,WAAWx7G,GAAG,OAAOxJ,EAAErE,OAAO4pH,iBAAiB/7G,GAAGhY,EAAEg0H,WAAWxlH,EAAEylH,WAAWzlH,EAAEwlH,WAAWxlH,EAAE0lH,cAAcn4H,KAAKyP,KAAKwM,EAAEm9E,aAAan1F,EAAEwO,EAAE,EAAwE,SAASA,EAAExO,GAAG,IAAIgY,EAAEhY,EAAE6hH,YAAY7hH,EAAEA,EAAEypH,aAAa,OAAOj7G,EAAE20G,SAASnrG,EAAEhY,GAAE,EAAGuE,EAAQotH,gBAAgBnjH,GAAGwJ,CAAC,GAAGo7G,GAAsB7uH,EAAQ8uH,iBAAiBA,EAAiB,SAAS7kH,EAAExO,GAAuB,OAApBwO,EAAEA,GAAGA,EAAE6pF,UAAU,IAAYr4F,IAAIwO,EAAExO,GAAG4zH,YAAY,IAAI,GAAgarvH,EAAQ6uH,qBAAqBA,EAAqB7uH,EAAQmmH,wBAAvd,SAAiCl8G,EAAExO,EAAEgY,GAAG,OAAOhY,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAG8I,SAASkP,OAAE,IAASA,EAAE,CAAC,EAAEA,GAAGlP,KAAK,EAAoavE,EAAQqmH,QAA3a,SAAiBp8G,EAAExO,GAAG,IAAyBgY,OAAE,KAAfA,GAARhY,EAAEA,GAAG,CAAC,GAAMoO,UAAsB,EAAE4J,EAAwBvN,OAAE,KAAxBA,EAAEzK,EAAE8hH,mBAA+B,EAAEr3G,EAAoD,OAAtBzK,OAAE,KAA9BA,EAAEA,EAAE+hH,yBAAqC,OAAO/hH,EAASwO,IAAG,EAAGjK,EAAQivH,WAAWhlH,KAAKA,EAAE+nB,MAAM41F,WAAW,aAAa7nG,OAAO7Z,EAAE,OAAO6Z,OAAOtkB,EAAE,QAAQwO,EAAE+nB,MAAMvf,UAAU,eAAesN,OAAOtM,EAAE,cAAcxJ,CAAC,EAAmI,IAA6S09G,GAAuB3nH,EAAQmqH,uBAAjT,SAASlgH,EAAExO,EAAEgY,GAAG,IAAYlH,GAARrG,EAAE+D,GAAG,CAAC,GAAMg1G,YAAYpkH,EAAEqL,EAAEg5G,aAAaxsG,EAAExM,EAAE03G,WAAW13G,EAAEA,EAAEq3G,kBAAsE,MAAM,CAAC1mF,OAA3DnkB,EAAEA,GAAE,EAAG1S,EAAQ+uH,uBAAuBt7G,EAAExJ,EAAExO,QAAG,EAAuBmsH,WAAWl1G,EAAE,UAAUqN,OAAO7Z,EAAE,WAAM,EAAO+4G,YAAY,GAAGl/F,OAAOxT,EAAE,MAAM2yG,aAAa,GAAGn/F,OAAOllB,EAAE,MAAM,EAA+E,SAASoP,GAAG,IAAYxO,GAARwO,EAAEA,GAAG,CAAC,GAAMszG,kBAA8CtzG,OAAE,KAA9BA,EAAEA,EAAEuzG,yBAAqC,OAAOvzG,EAAE,MAAM,aAAa8V,YAAO,IAAStkB,EAAE,EAAEA,EAAE,OAAOskB,OAAO9V,EAAE,OAAO,GAAGmgH,GAAsBpqH,EAAQ2nH,sBAAsBA,EAAsB,SAAS19G,EAAExO,GAAgF,OAA7EwO,GAAGA,GAAG,CAAC,GAAGy7G,YAAYz7G,EAAE,eAAe8V,cAAS,IAAS9V,EAAE,EAAEA,GAAG,aAAoBg2G,EAASA,EAAS,CAAC,EAAExkH,GAAG,CAACgX,UAAUxI,GAAG,GAAGg5G,GAA0BjjH,EAAQoqH,qBAAqBA,EAAqB,SAASngH,EAAExO,GAAG,IAAIgY,EAAEhY,EAAEqyH,kBAAkB5nH,EAAEzK,EAAEsmH,sBAAsBx1G,EAAE9Q,EAAEumH,yBAAyBnnH,EAAEY,EAAEimH,2BAA2BjmH,EAAEA,EAAE8hH,kBAAkB9pG,GAAGA,EAAExJ,IAAI,CAAC,GAAG1F,MAAM,OAAO1J,GAAGqL,IAAI+D,EAAE,CAACwI,UAAU,cAAcsN,OAAOxT,EAAE,OAAOgxG,kBAAkB,GAAGx9F,OAAOtkB,EAAE,MAAM8I,MAAM,GAAGwb,OAAOtM,EAAE,OAAO,CAAClP,MAAMkP,EAAE,GAAG2yG,GAAwBpmH,EAAQijH,yBAAyBA,EAAyB,SAASh5G,EAAExO,GAAG,IAAIgY,EAAExJ,EAAE/D,EAAEzK,EAAEmjH,SAASryG,EAAE9Q,EAAEqxH,YAAYjyH,EAAEY,EAAEypH,aAAmC,aAAQ,KAA9BzpH,EAAEA,EAAEqyH,mBAAqC,GAAGryH,GAAGgY,EAAEvN,EAAE+D,GAAE,EAAG4iH,EAAOE,oBAAe,IAASlyH,EAAE,EAAEA,OAAE,IAAS0R,EAAE,EAAEA,GAAGkH,IAAI,CAAC,GAAG5J,UAAU,CAAC,GAAGm9G,GAA+BhnH,EAAQomH,uBAAuBA,EAAuB,SAASn8G,EAAExO,GAAG,QAAQA,EAAEjE,KAAKC,MAAMwS,GAAG,GAA4F,SAAS2kH,EAAmB3kH,GAAG,OAAOA,IAAG,EAAGjK,EAAQivH,WAAWhlH,IAAIrE,OAAO4pH,iBAAiBvlH,GAAGwI,UAAUglG,MAAM,iBAAiB,EAAE,CAACz3G,EAAQgnH,8BAA8BA,EAA8BhnH,EAAQsnH,sBAAvS,SAA+Br9G,GAAyC,OAAdA,GAAxBA,EAAE2kH,EAAmB3kH,KAAQA,EAAE,IAAI,GAAUnU,OAAOmU,EAAE,EAA2PjK,EAAQ4uH,mBAAmBA,EAAmB,IAA8JvB,GAAiBrtH,EAAQktH,UAAzK,WAAW,IAAIjjH,EAAE,IAAI,OAAOvL,QAAQ,OAAOuL,EAAE,OAAOrE,aAAQ,IAASA,YAAO,EAAOA,OAAOuyB,eAAU,EAAOluB,EAAEosB,cAAc,CAAC,MAAMpsB,GAAG,OAAM,CAAE,CAAC,EAA+C,SAASwJ,EAAExJ,GAAG,IAAI/D,EAAEqG,EAAE,EAAE1R,EAAEoP,EAAEk1G,WAAW1jH,EAAEwO,EAAE4zG,UAAUnrG,EAAEzI,EAAE20G,SAAS30G,EAAEA,EAAE40G,WAAW,YAAO,IAASpjH,GAAGA,OAAE,IAASiX,GAAGA,EAAEe,EAAElH,GAAG1R,IAAIY,EAAEnF,OAAOg1C,KAAKzwC,IAAIpF,SAASwU,IAAG,EAAGjK,EAAQktH,gBAAgBhnH,OAAE,IAAS+D,EAAErE,OAAOi5G,WAAW50G,EAAExO,EAAEsnB,SAAQ,SAAS9Y,GAAG,IAAIxO,EAAE3F,OAAOmU,IAAI/D,IAAIzK,GAAGwO,EAAEpP,EAAEoP,IAAIowD,MAAMpwD,EAAEA,EAAE2lH,SAASrjH,EAAE,kBAAa,IAAStC,EAAE,OAAOA,GAAGxO,EAAEjE,KAAK6O,IAAI5K,EAAEgY,GAAG,KAAIlH,GAAG,EAAE,GAAGvM,EAAQqtH,gBAAgBA,+BCA3mN,IAAIjwG,EAAgB9mB,OAAOC,OAAO,SAASkF,EAAEyK,EAAE+D,EAAEsC,QAAG,IAASA,IAAIA,EAAEtC,GAAG,IAAI+I,EAAE1c,OAAO0nB,yBAAyB9X,EAAE+D,GAAG+I,IAAI,QAAQA,EAAE9M,EAAEkY,YAAYpL,EAAE+a,WAAW/a,EAAEgb,gBAAgBhb,EAAE,CAACuK,YAAW,EAAGC,IAAI,WAAW,OAAOtX,EAAE+D,EAAE,IAAI3T,OAAOgnB,eAAe7hB,EAAE8Q,EAAEyG,EAAE,EAAE,SAASvX,EAAEyK,EAAE+D,EAAEsC,GAAG9Q,EAAE8Q,OAAE,IAASA,EAAEtC,EAAEsC,GAAGrG,EAAE+D,EAAE,EAAEi3G,EAAa,SAASzlH,EAAEyK,GAAG,IAAI,IAAI+D,KAAKxO,EAAE,YAAYwO,GAAG3T,OAAOE,UAAU2G,eAAeC,KAAK8I,EAAE+D,IAAImT,EAAgBlX,EAAEzK,EAAEwO,EAAE,EAAE3T,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAKgjH,EAAansH,EAAQ,MAAYiL,GAASkhH,EAAansH,EAAQ,MAAciL,GAASkhH,EAAansH,EAAQ,MAAgBiL,GAASkhH,EAAansH,EAAQ,MAAYiL,GAASkhH,EAAansH,EAAQ,MAAUiL,GAASkhH,EAAansH,EAAQ,MAAWiL,GAASkhH,EAAansH,EAAQ,MAAYiL,GAASkhH,EAAansH,EAAQ,MAAciL,GAASkhH,EAAansH,EAAQ,MAAaiL,8BCA/0B,IAAIigH,EAAS,WAAW,OAAOA,EAAS3pH,OAAOG,QAAQ,SAAS8V,GAAG,IAAI,IAAItC,EAAE/D,EAAE,EAAErL,EAAEzD,UAAU3B,OAAOyQ,EAAErL,EAAEqL,IAAI,IAAI,IAAIwM,KAAKzI,EAAE7S,UAAU8O,GAAG5P,OAAOE,UAAU2G,eAAeC,KAAK6M,EAAEyI,KAAKnG,EAAEmG,GAAGzI,EAAEyI,IAAI,OAAOnG,CAAC,GAAGiV,MAAMlc,KAAKlO,UAAU,EAAEk4H,GAAkBh5H,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQuvH,kBAAkBvvH,EAAQsvH,sBAAiB,EAAO,SAAS/iH,GAAG,OAAOA,EAAE8W,KAAI,SAAS9W,GAAG,MAAM,CAAChI,MAAMgI,EAAEhI,MAAMsF,SAAS,EAAE,GAAE,GAAG0lH,GAAmBvvH,EAAQsvH,iBAAiBA,EAAiB,SAAS/iH,EAAEtC,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAGsC,EAAE8W,KAAI,SAAS9W,GAAG,OAAOA,EAAE1C,SAASI,EAAEg2G,EAASA,EAAS,CAAC,EAAE1zG,GAAG,CAAC1C,SAASI,IAAIsC,CAAC,GAAE,GAAGvM,EAAQuvH,kBAAkBA,6BCA9nBj5H,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQ6mH,4BAA4B7mH,EAAQ4lH,4BAA4B5lH,EAAQ6lH,yBAAyB7lH,EAAQ0nH,sBAAsB1nH,EAAQunH,yBAAyBvnH,EAAQ6vH,6BAA6B7vH,EAAQ8vH,2BAA2B9vH,EAAQguH,mBAAmBhuH,EAAQ4tH,cAAc5tH,EAAQmnH,mBAAmBnnH,EAAQknH,+BAA+BlnH,EAAQ+tH,iBAAiB/tH,EAAQ6tH,iBAAiB7tH,EAAQ6nH,2BAA2B7nH,EAAQ2hH,4BAA4B3hH,EAAQ4hH,4BAA4B5hH,EAAQutH,eAAevtH,EAAQstH,cAActtH,EAAQ+sH,mBAAc,EAAO,IAA6EO,GAAettH,EAAQ+sH,cAAlF,SAAStxH,EAAEwO,GAAG,OAAOxO,OAAE,IAASA,EAAE,EAAEA,SAAM,IAASwO,EAAE,EAAEA,EAAE,EAAqD,SAASxO,EAAEwO,GAAG,QAAG,IAASxO,IAAIA,EAAE,GAAGwO,OAAE,IAASA,EAAE,EAAEA,EAAE,CAAC,GAAGA,GAAGxO,EAAE,OAAOwO,EAAE,EAAE,GAAG,EAAExO,EAAE,OAAOA,CAAC,CAAC,OAAO,CAAC,GAAG8xH,GAAgBvtH,EAAQstH,cAAcA,EAAc,SAAS7xH,GAAG,IAAmBwO,OAAE,KAAjBA,EAAExO,EAAE+xH,YAAwB,EAAEvjH,EAAEpP,EAAEY,EAAEgmH,WAAwB,YAAO,KAApBhmH,EAAEA,EAAEmjH,WAA4BnjH,EAAEwO,GAAE,EAAGjK,EAAQstH,eAAerjH,OAAE,IAASpP,EAAE,EAAEA,EAAE,GAAG+mH,GAA6B5hH,EAAQutH,eAAeA,EAAe,SAAS9xH,EAAEwO,GAAG,OAAOxO,EAAE,EAAEwO,EAAE,EAAEA,GAAGxO,EAAE,EAAEA,CAAC,GAAGkmH,GAA6B3hH,EAAQ4hH,4BAA4BA,EAA4B,SAASnmH,EAAEwO,GAAG,OAAOxO,EAAE,GAAGwO,GAAGxO,CAAC,GAAGosH,GAA4B7nH,EAAQ2hH,4BAA4BA,EAA4B,SAASlmH,EAAEwO,GAAG,OAAOxO,EAAE,GAAGwO,GAAGxO,CAAC,GAAGoyH,GAAkB7tH,EAAQ6nH,2BAA2BA,EAA2B,SAASpsH,EAAEwO,GAAG,IAAIpP,EAAEY,EAAEqxH,YAAoDvgH,GAAlB9Q,OAAE,KAAxBA,EAAEA,EAAEqyH,mBAA+B,GAAGryH,EAAIwO,EAAE20G,UAAS30G,EAAEA,EAAEo1G,kBAAkB,OAAO9yG,GAAG9Q,OAAE,IAASZ,EAAE,EAAEA,IAAI,CAAC,GAAGgP,UAAU0C,GAAG9Q,EAAE,IAAI,CAAC,GAAG8I,MAAM/M,KAAK6O,SAAI,IAAS4D,EAAE,EAAEA,OAAE,IAASsC,EAAE,EAAEA,GAAG,GAAGwhH,GAAkB/tH,EAAQ6tH,iBAAiBA,EAAiB,SAASpyH,EAAEwO,GAAG,IAAIpP,EAAEoP,EAAE20G,SAAgDryG,GAAjBtC,OAAE,KAAxBA,EAAEA,EAAEo1G,mBAA+B,EAAEp1G,EAAIxO,EAAEgmH,YAAWhuG,EAAEhY,EAAEqxH,YAA6B5mH,OAAE,KAAnBA,EAAEzK,EAAEypH,cAA0B,EAAEh/G,EAAwBzK,OAAE,KAAxBA,EAAEA,EAAEqyH,mBAA+B,GAAGryH,EAAE,OAAOZ,GAAGY,QAAG,IAAS8Q,EAAE,EAAEA,IAAG,EAAGvM,EAAQ+sH,eAAe7mH,OAAE,IAASuN,EAAE,EAAEA,KAAK,CAAC,GAAG5J,UAAU,GAAE,EAAG7J,EAAQ4tH,gBAAgB1nH,EAAEzK,GAAGoO,SAASI,CAAC,GAAGi9G,GAAgClnH,EAAQ+tH,iBAAiBA,EAAiB,SAAStyH,EAAEwO,EAAEpP,GAAG,OAAOoP,GAAGxO,GAAGjE,KAAK+S,IAAI9O,IAAIZ,CAAC,GAAGssH,GAAoBnnH,EAAQknH,+BAA+BA,EAA+B,SAASzrH,GAAG,OAAOA,OAAE,IAASA,EAAE,EAAEA,GAAG,CAAC,GAAGmyH,GAAe5tH,EAAQmnH,mBAAmBA,EAAmB,SAAS1rH,EAAEwO,GAAG,OAAOA,OAAE,IAASA,EAAE,GAAGA,GAAG5K,MAAM5D,OAAE,IAASA,EAAE,EAAEA,GAAG,IAAI,CAACoO,SAAS,EAAEtF,MAAM,EAAE,GAAGypH,GAAoBhuH,EAAQ4tH,cAAcA,EAAc,SAASnyH,EAAEwO,GAAG,YAAO,IAASxO,IAAIA,EAAE,QAAG,IAASwO,IAAIA,EAAE,KAAI,EAAGjK,EAAQ4tH,eAAenyH,EAAEwO,GAAGJ,QAAQ,GAAGimH,GAA4B9vH,EAAQguH,mBAAmBA,EAAmB,SAASvyH,EAAEwO,GAAG,YAAO,IAASA,IAAIA,EAAE,IAAIxO,OAAE,IAASA,EAAE,GAAGA,GAAGs0H,WAAU,SAASt0H,GAAG,OAAOA,EAAEoO,UAAUrS,KAAK+S,IAAIN,EAAE,GAAE,GAAG4lH,GAA8B7vH,EAAQ8vH,2BAA2BA,EAA2B,SAASr0H,EAAEwO,EAAEpP,GAAwG,YAArG,IAASY,IAAIA,EAAE,SAAI,IAASwO,IAAIA,EAAE,QAAG,IAASpP,IAAIA,EAAE,GAAGY,GAAE,EAAGuE,EAAQ8vH,4BAA4Br0H,EAAEwO,IAAS,EAAGjK,EAAQmnH,oBAAoBtsH,GAAGY,EAAEA,EAAE,CAAC,GAAG8rH,GAA0BvnH,EAAQ6vH,6BAA6BA,EAA6B,SAASp0H,EAAEwO,EAAEpP,QAAG,IAASA,IAAIA,EAAE,GAAG,IAAI0R,EAAE9Q,EAAEmjH,SAASnrG,EAAEhY,EAAEoiH,UAAU33G,EAAEzK,EAAE0yH,sBAAsBz7G,EAAEjX,EAAE2yH,wBAAwB3yH,EAAEA,EAAEqyH,kBAAkBjzH,GAAE,EAAGmF,EAAQ6vH,8BAA8Bp0H,EAAEZ,EAAEoP,GAAGA,GAAE,EAAGjK,EAAQ4tH,eAAe/yH,EAAEY,GAAGoO,SAAS,IAAI0C,EAAE,CAAC,GAAGkH,GAAGvN,EAAE,OAAO,EAAE,GAAGwM,EAAEzI,EAAE,OAAOyI,CAAC,CAAC,OAAOzI,CAAC,GAAGy9G,GAAuB1nH,EAAQunH,yBAAyBA,EAAyB,SAAS9rH,EAAEwO,GAAG,IAAIpP,EAAEoP,EAAE6jH,kBAAkBvhH,EAAEtC,EAAEi7G,aAAazxG,EAAExJ,EAAE6iH,YAAY5mH,EAAE+D,EAAEw3G,WAAW/uG,EAAEzI,EAAE20G,SAAS7gG,EAAE9T,EAAEkkH,sBAAsBhlH,EAAEc,EAAEqzG,YAAYrzG,EAAEA,EAAEy7G,YAAY,OAAOhzG,IAAIqL,GAAG9T,IAAIzS,KAAK+S,IAAI9O,IAAIsiB,GAAE,EAAG/d,EAAQ8vH,4BAA4Bj1H,EAAEY,GAAGiX,EAAEqL,GAAG9T,GAAE,EAAGjK,EAAQ+sH,eAAexgH,EAAEkH,IAAIvN,EAAEqG,EAAEkH,EAAEsK,EAAE9T,EAAE/D,GAAG6X,EAAEA,GAAG9T,EAAE/D,GAAG6X,EAAE9T,EAAE8T,GAAG5U,CAAC,GAAG08G,GAA0B7lH,EAAQ0nH,sBAAsBA,EAAsB,SAASjsH,GAAG,IAAIwO,EAAExO,EAAEmjH,SAAS/jH,EAAEY,EAAE6hH,YAAY7hH,EAAEA,EAAEypH,aAAa,OAAOj7G,EAAEpP,EAAEY,EAAEZ,CAAC,GAAG+qH,GAA6B5lH,EAAQ6lH,yBAAyBA,EAAyB,SAASpqH,EAAEwO,GAAG,IAAIpP,EAAEoP,EAAEqzG,YAAYrzG,EAAEA,EAAEg8G,WAAW,OAAOxqH,EAAEZ,GAAGA,EAAEY,IAAIwO,GAAG,GAAGxO,EAAEZ,GAAGoP,GAAG,CAAC,GAAG48G,GAA6B7mH,EAAQ4lH,4BAA4BA,EAA4B,SAASnqH,EAAEwO,EAAEpP,GAAG,OAAOY,GAAGZ,OAAE,IAASA,EAAE,EAAEA,IAAIY,EAAE,GAAGwO,CAAC,GAAGjK,EAAQ6mH,4BAA4BA,6BCApxIvwH,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQmlH,iBAAiBnlH,EAAQgwH,aAAahwH,EAAQiwH,8BAA8BjwH,EAAQkwH,iCAAiClwH,EAAQmwH,yBAAyBnwH,EAAQulH,yBAAoB,EAAO,IAA6N4K,GAA0BnwH,EAAQulH,oBAAvO,SAAS9pH,EAAEwO,GAAG,IAAYpP,GAARoP,EAAEA,GAAG,CAAC,GAAMqzG,YAAY/wG,EAAEtC,EAAEi7G,aAAaj7G,EAAEA,EAAEw3G,WAAW5mH,GAAI0R,EAAE,OAAO,IAAIA,GAAE,EAAGvM,EAAQkwH,kCAAkCr1H,EAAE0R,EAAEtC,IAAG,EAAGjK,EAAQiwH,+BAA+Bp1H,EAAE0R,EAAEtC,EAAExO,EAAE,EAA4E,SAASA,EAAEwO,GAAG,IAAIpP,EAAE,YAAO,IAASoP,IAAIA,EAAE,IAAIxO,OAAE,IAASA,EAAE,EAAEA,IAAIwO,GAAGpP,EAAErD,KAAKC,MAAMgE,EAAEwO,GAAGxO,EAAEwO,GAAG,EAAEpP,EAAE,EAAEA,GAAG,CAAC,GAAGq1H,GAAkClwH,EAAQmwH,yBAAyBA,EAAyB,SAAS10H,EAAEwO,EAAEpP,GAAG,OAAOY,EAAEwO,EAAEpP,EAAEoP,EAAEpP,EAAEY,EAAE,EAAEA,EAAE,CAAC,GAAGw0H,GAA+BjwH,EAAQkwH,iCAAiCA,EAAiC,SAASz0H,EAAEwO,EAAEpP,EAAE0R,GAAG,IAAIyF,GAAE,EAAGhS,EAAQmwH,0BAA0Bt1H,EAAEoP,GAAG,OAAOxO,IAAIZ,EAAEoP,EAAE,EAAEsC,GAAG9Q,EAAEwO,GAAG,IAAIxO,EAAEuW,EAAE,IAAIvW,EAAEZ,EAAEoP,GAAG,EAAE+H,EAAEA,EAAE,EAAE,EAAE/H,EAAEzS,KAAKC,MAAMgE,EAAEwO,GAAG,EAAE,CAAC,GAAG+lH,GAAchwH,EAAQiwH,8BAA8BA,EAA8B,SAASx0H,EAAEwO,GAA4C,YAAzC,IAASA,IAAIA,EAAE,IAAGxO,GAAGA,OAAE,IAASA,EAAE,EAAEA,GAAG,GAAW,EAAEA,EAAEwO,EAAEA,EAAExO,IAAIA,EAAE,GAAG,CAACmnB,KAAKnnB,EAAEgmH,WAAWx3G,EAAE,GAAGk7G,GAAkBnlH,EAAQgwH,aAAaA,EAAa,SAASv0H,GAAG,IAAYwO,GAARxO,EAAEA,GAAG,CAAC,GAAMypH,aAAarqH,EAAEY,EAAE6hH,YAAY/wG,EAAE9Q,EAAEmjH,SAAS5sG,EAAEvW,EAAEgmH,WAAW,OAAOhmH,EAAE0yH,sBAAsB,CAAC9I,qBAAoB,EAAGD,qBAAoB,GAAI,CAACC,qBAAoB,IAAK94G,GAAG,IAAI1R,EAAEuqH,qBAAoB,IAAK74G,GAAGyF,EAAE/H,GAAGpP,EAAE,GAAGmF,EAAQmlH,iBAAiBA,6BCAvwC7uH,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQkkH,cAAS,EAAOlkH,EAAQkkH,SAA5U,SAAkBzwG,EAAE5Y,GAAqB,SAASsiB,IAAIY,IAAIuqG,aAAavqG,GAAGA,OAAE,EAAO,MAA5D,IAASljB,IAAIA,EAAE,GAA8C,IAAIkjB,OAAE,EAAO,MAAM,CAAC,WAAW,IAAI,IAAItiB,EAAE6J,KAAKiH,EAAE,GAAGtC,EAAE,EAAEA,EAAE7S,UAAU3B,OAAOwU,IAAIsC,EAAEtC,GAAG7S,UAAU6S,GAAGkT,IAAIY,EAAEnY,OAAO2qC,YAAW,WAAW98B,EAAE+N,MAAM/lB,EAAE8Q,GAAGwR,OAAE,CAAM,GAAEljB,EAAE,EAAEsiB,EAAE,+BCApP,IAA6B1hB,EAAyCilH,GAASpqH,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQqpH,oBAAe,GAAhI5tH,EAAuJ1G,EAAQ,QAAlJ0G,EAAE2iB,WAAW3iB,EAAE,CAAC4jB,QAAQ5jB,IAAqI4hH,EAAQtoH,EAAQ,MAAYq7H,EAAQr7H,EAAQ,MAA89BiL,EAAQqpH,eAA38B,SAAS5tH,GAAG,IAAI0N,EAAE1N,EAAEy9F,MAAMzlF,EAAEhY,EAAE6tH,QAAQpjH,EAAEzK,EAAEkvH,aAAa34G,EAAEvW,EAAEmvH,aAAa3gH,EAAExO,EAAE8iH,iBAAiBphG,EAAE1hB,EAAE2tH,eAAerjH,EAAEoD,EAAEs4G,WAAWrtG,EAAEjL,EAAE+7G,aAAannG,EAAE5U,EAAEy1G,SAAuBlrG,GAAdjY,EAAE0N,EAAE00G,UAAY10G,EAAEm0G,aAAYriH,GAAE,EAAGm1H,EAAQjL,kBAAkBh8G,GAAGi8G,oBAAoBr1F,GAAE,EAAGqgG,EAAQ5B,oBAAoB/yH,EAAEwO,GAAG2N,GAAE,EAAGw4G,EAAQ7B,yBAAyBxoH,EAAEqO,EAAE2b,GAAG,OAAO2wF,EAAQrhG,QAAQgX,cAAc,KAAK,CAACgtD,UAAUg6B,EAAQmN,WAAWa,MAAMhwH,MAAM/F,KAAK,CAACG,OAAOsQ,IAAIsd,KAAI,SAAS5nB,EAAEwO,GAAG,IAAIpP,EAAE6X,EAAEnG,EAAE,GAAGtC,EAAE2N,EAAE,OAAOlF,GAAE,EAAG09G,EAAQ9B,wBAAwBrkH,EAAEvL,QAAQqf,GAAGnG,GAAG/c,GAAE,EAAGu1H,EAAQ/B,8BAA8BpkH,EAAEyI,EAAE3M,EAAEqO,GAAG1B,GAAE,EAAG09G,EAAQ7K,qBAAqBtqH,EAAEkO,GAAG4mB,KAAKrd,EAAEgB,GAAG,EAAEhB,EAAE3M,EAAE,EAAEA,GAAG2N,IAAIhB,EAAE,GAAG7X,EAAEoP,GAAGyI,EAAEA,IAAIzI,EAAEozG,EAAQgN,UAAU6B,OAAO,GAAG3/G,EAAE4Q,EAAEkgG,EAAQgN,UAAUgC,OAAO,GAAG9/G,GAAE,EAAG6jH,EAAQ7F,kBAAkBlN,EAAQmN,WAAWc,UAAU54G,EAAEnG,GAAGm0G,EAAQrhG,QAAQgX,cAAc,KAAK,CAACxY,IAAI,YAAYkC,OAAO9V,GAAG0gH,aAAazkH,EAAE0kH,aAAa54G,EAAEs3G,QAAQ,WAAW,OAAO71G,EAAE5Y,EAAE,EAAEwoF,UAAU92E,GAAG4Q,GAAGA,EAAE,CAACkzG,SAAS3xH,QAAQgU,GAAG4qG,YAAYrzG,IAAI,IAAG,+BCA/sC,IAA0PxO,EAAtPwkH,EAAS,WAAW,OAAOA,EAAS3pH,OAAOG,QAAQ,SAASgF,GAAG,IAAI,IAAIgY,EAAExJ,EAAE,EAAE/D,EAAE9O,UAAU3B,OAAOwU,EAAE/D,EAAE+D,IAAI,IAAI,IAAIkT,KAAK1J,EAAErc,UAAU6S,GAAG3T,OAAOE,UAAU2G,eAAeC,KAAKqW,EAAE0J,KAAK1hB,EAAE0hB,GAAG1J,EAAE0J,IAAI,OAAO1hB,CAAC,GAAG+lB,MAAMlc,KAAKlO,UAAU,EAAoEspH,GAASpqH,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,KAApGzC,EAAyH1G,EAAQ,QAApH0G,EAAE2iB,WAAW3iB,EAAE,CAAC4jB,QAAQ5jB,IAAmZuE,EAAAA,QAA5S,SAAcvE,GAAG,IAAIgY,EAAE,CAAC68G,MAAM,KAAKC,IAAI,MAAM,OAAO7P,EAAQrhG,QAAQgX,cAAc,IAAI4pF,EAAS,CAACqJ,QAAQ,SAAS7tH,GAAGgY,EAAE68G,QAAQ78G,EAAE88G,KAAK90H,EAAE+0H,gBAAgB,EAAEC,YAAY,SAASh1H,GAAGA,EAAE+0H,iBAAiB/8G,EAAE88G,IAAI,KAAK98G,EAAE68G,MAAM70H,EAAEo9B,OAAO,EAAE63F,UAAU,SAASj1H,GAAGA,EAAE+0H,iBAAiB/8G,EAAE88G,IAAI90H,EAAEo9B,OAAO,GAAGp9B,GAAGA,EAAEq4F,SAAS,+BCAjrB,IAA6Br4F,EAAyCilH,GAASpqH,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQ+pH,qBAAgB,GAAjItuH,EAAwJ1G,EAAQ,QAAnJ0G,EAAE2iB,WAAW3iB,EAAE,CAAC4jB,QAAQ5jB,IAAsI4hH,EAAQtoH,EAAQ,MAAYq7H,EAAQr7H,EAAQ,MAAuiBiL,EAAQ+pH,gBAAnhB,SAAStuH,GAAG,IAAIwO,EAAExO,EAAEqgC,UAAU3yB,EAAE1N,EAAE6tH,QAAkC,MAAM,mBAAhC7tH,EAAEA,EAAEquH,uBAAiDpJ,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUg6B,EAAQmN,WAAWe,SAASjC,QAAQngH,GAAG1N,EAAE,CAACqgC,UAAU7xB,MAAMxO,EAAEwO,EAAEozG,EAAQgN,UAAUiC,MAAM,GAAGriH,GAAE,EAAGmmH,EAAQ7F,kBAAkBlN,EAAQmN,WAAWgB,cAAc/vH,GAAGilH,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUg6B,EAAQmN,WAAWe,UAAU7K,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUg6B,EAAQmN,WAAWiB,kBAAkB/K,EAAQrhG,QAAQgX,cAAc,MAAM,CAACizF,QAAQngH,EAAEk6E,UAAUp5E,MAAM,+BCAzxB,IAA6BxO,EAAyCilH,GAASpqH,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQypH,oBAAe,GAAhIhuH,EAAuJ1G,EAAQ,QAAlJ0G,EAAE2iB,WAAW3iB,EAAE,CAAC4jB,QAAQ5jB,IAAqI4hH,EAAQtoH,EAAQ,MAAYq7H,EAAQr7H,EAAQ,MAAm7BiL,EAAQypH,eAAh6B,SAAShuH,GAAG,IAAIwO,EAAEyI,EAAEjX,EAAE5E,KAAKsS,EAAE1N,EAAEiuH,WAAWxjH,EAAEzK,EAAE6tH,QAAQ71G,EAAEhY,EAAE+tH,iBAAiB/tH,EAAEA,EAAEmuH,iBAAiB,MAAM,mBAAmBn2G,EAAEitG,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUg6B,EAAQmN,WAAWoB,YAAYtC,QAAQpjH,GAAGuN,EAAE,CAACi2G,WAAWvgH,KAAK,mBAAmB1N,EAAEilH,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUg6B,EAAQmN,WAAWuB,YAAYzC,QAAQpjH,GAAGzK,EAAE,CAACiuH,WAAWvgH,MAAM1N,GAAGgY,EAAE,SAASf,GAAG,IAAI,IAAIA,EAAEe,EAAE4pG,EAAQmN,WAAWoB,YAAYvO,EAAQmN,WAAWuB,YAAY9hH,EAAEwJ,EAAE4pG,EAAQmN,WAAWqB,oBAAoBxO,EAAQmN,WAAWwB,oBAAoBv4G,EAAEA,EAAE4pG,EAAQmN,WAAWsB,iBAAiBzO,EAAQmN,WAAWyB,iBAAiB9iH,EAAEA,EAAEk0G,EAAQgN,UAAU8B,SAAS,GAAG14G,GAAE,EAAG28G,EAAQ7F,kBAAkB92G,EAAEtK,GAAGu3G,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAU3wE,GAAGguG,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUp5E,GAAGy2G,EAAQrhG,QAAQgX,cAAc,IAAI,CAACgtD,UAAU5vE,EAAE61G,QAAQ,SAAS7tH,GAAG,OAAOyK,EAAEzK,EAAE,GAAGilH,EAAQrhG,QAAQgX,cAAc,OAAO,CAAC,YAAY56B,OAAO,6BCApqC,IAA6BA,EAAyCilH,GAASpqH,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQsjH,eAAU,GAA3H7nH,EAAkJ1G,EAAQ,QAA7I0G,EAAE2iB,WAAW3iB,EAAE,CAAC4jB,QAAQ5jB,IAAgI4hH,EAAQtoH,EAAQ,MAAYq7H,EAAQr7H,EAAQ,MAAwpBiL,EAAQsjH,UAA1oB,SAAS7nH,GAAG,IAAIwO,EAAExO,EAAE6hH,YAAY5qG,EAAEjX,EAAEgmH,WAAWhmH,EAAEA,EAAE4nH,gBAAgBp5G,GAAE,EAAGmmH,EAAQJ,cAAc/lH,EAAEyI,GAAGkQ,KAAK,MAAM,mBAAmBnnB,EAAEilH,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUg6B,EAAQmN,WAAWkB,YAAYjwH,EAAE,CAACmnB,KAAK3Y,EAAEw3G,WAAW/uG,MAAMjX,GAAE,EAAG20H,EAAQ7F,kBAAkBlN,EAAQmN,WAAWmB,gBAAgBtO,EAAQgN,UAAUkC,WAAW7L,EAAQrhG,QAAQgX,cAAc,MAAM,CAACgtD,UAAUg6B,EAAQmN,WAAWkB,YAAYhL,EAAQrhG,QAAQgX,cAAc,OAAO,CAACgtD,UAAUg6B,EAAQmN,WAAWmB,iBAAiB1hH,GAAGy2G,EAAQrhG,QAAQgX,cAAc,OAAO,CAACgtD,UAAU5nF,GAAG,KAAKilH,EAAQrhG,QAAQgX,cAAc,OAAO,CAACgtD,UAAUg6B,EAAQmN,WAAWmB,iBAAiBj5G,IAAI,6BCAp4B,IAA6BjX,EAAyCilH,GAASpqH,OAAOgnB,eAAetd,EAAQ,aAAa,CAAC9B,OAAM,IAAK8B,EAAQmjH,eAAU,GAA3H1nH,EAAkJ1G,EAAQ,QAA7I0G,EAAE2iB,WAAW3iB,EAAE,CAAC4jB,QAAQ5jB,IAAgQuE,EAAQmjH,UAA9H,SAAS1nH,GAAG,IAAIwO,EAAExO,EAAEmnB,KAAK1c,EAAEzK,EAAE4nF,UAAU5nF,EAAEA,EAAEi9D,OAAO,OAAOgoD,EAAQrhG,QAAQgX,cAAc,KAAK,CAACrE,MAAMv2B,EAAE4nF,UAAUn9E,GAAG+D,EAAE,+BCAhU3T,OAAOgnB,eAAetd,EAAtB1J,aAAAA,CAA4C4H,OAAM,IAAK8B,EAAQypH,eAAezpH,EAAQ+pH,gBAAgB/pH,EAAQqpH,eAAerpH,EAAQmjH,UAAUnjH,EAAQsjH,eAAU,EAAO,IAAIqN,EAAY57H,EAAQ,IAAe67H,GAAat6H,OAAOgnB,eAAetd,EAAQ,YAAY,CAACud,YAAW,EAAGC,IAAI,WAAW,OAAOmzG,EAAYrN,SAAS,IAAIvuH,EAAQ,KAAgB87H,GAAkBv6H,OAAOgnB,eAAetd,EAAQ,YAAY,CAACud,YAAW,EAAGC,IAAI,WAAW,OAAOozG,EAAYzN,SAAS,IAAIpuH,EAAQ,OAAqB+7H,GAAmBx6H,OAAOgnB,eAAetd,EAAQ,iBAAiB,CAACud,YAAW,EAAGC,IAAI,WAAW,OAAOqzG,EAAiBxH,cAAc,IAAIt0H,EAAQ,OAAsBg8H,GAAkBz6H,OAAOgnB,eAAetd,EAAQ,kBAAkB,CAACud,YAAW,EAAGC,IAAI,WAAW,OAAOszG,EAAkB/G,eAAe,IAAIh1H,EAAQ,OAAqBuB,OAAOgnB,eAAetd,EAAtB1J,iBAAAA,CAAgDinB,YAAW,EAAGC,IAAI,WAAW,OAAOuzG,EAAiBtH,cAAc,iCCYv7B,IAAIuH,EAAGj8H,EAAQ,MAASk8H,EAAGl8H,EAAQ,MAAa,SAASie,EAAE7J,GAAG,IAAI,IAAIlU,EAAE,yDAAyDkU,EAAEpD,EAAE,EAAEA,EAAE3O,UAAU3B,OAAOsQ,IAAI9Q,GAAG,WAAWioH,mBAAmB9lH,UAAU2O,IAAI,MAAM,yBAAyBoD,EAAE,WAAWlU,EAAE,gHAAgH,CAAC,IAAIu4F,EAAG,IAAI0jC,IAAIC,EAAG,CAAC,EAAE,SAASC,EAAGjoH,EAAElU,GAAGo8H,EAAGloH,EAAElU,GAAGo8H,EAAGloH,EAAE,UAAUlU,EAAE,CACxb,SAASo8H,EAAGloH,EAAElU,GAAW,IAARk8H,EAAGhoH,GAAGlU,EAAMkU,EAAE,EAAEA,EAAElU,EAAEQ,OAAO0T,IAAIqkF,EAAGrhF,IAAIlX,EAAEkU,GAAG,CAC5D,IAAImoH,IAAK,qBAAqB1rH,QAAQ,qBAAqBA,OAAOuyB,UAAU,qBAAqBvyB,OAAOuyB,SAAS9B,eAAek7F,EAAGj7H,OAAOE,UAAU2G,eAAeq0H,EAAG,8VAA8VC,EACpgB,CAAC,EAAEC,EAAG,CAAC,EACiN,SAASz2H,EAAEkO,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,GAAGvS,KAAKqsH,gBAAgB,IAAI18H,GAAG,IAAIA,GAAG,IAAIA,EAAEqQ,KAAKssH,cAAc7zG,EAAEzY,KAAKusH,mBAAmBp2H,EAAE6J,KAAKwsH,gBAAgB/rH,EAAET,KAAK8+F,aAAaj7F,EAAE7D,KAAKwd,KAAK7tB,EAAEqQ,KAAKysH,YAAYhiG,EAAEzqB,KAAK0sH,kBAAkBn6G,CAAC,CAAC,IAAIgF,EAAE,CAAC,EACpb,uIAAuI3jB,MAAM,KAAK6pB,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe4Z,SAAQ,SAAS5Z,GAAG,IAAIlU,EAAEkU,EAAE,GAAG0T,EAAE5nB,GAAG,IAAIgG,EAAEhG,EAAE,GAAE,EAAGkU,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAAS4Z,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE6c,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiBjD,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8OjQ,MAAM,KAAK6pB,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE6c,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAYjD,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAY4Z,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQ4Z,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAAS4Z,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE6c,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIisG,EAAG,gBAAgB,SAAS7sF,EAAGj8B,GAAG,OAAOA,EAAE,GAAGoZ,aAAa,CAIxZ,SAAS2vG,EAAG/oH,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAEohB,EAAE1f,eAAelI,GAAG4nB,EAAE5nB,GAAG,MAAQ,OAAOwG,EAAE,IAAIA,EAAEqnB,KAAK/E,KAAK,EAAE9oB,EAAEQ,SAAS,MAAMR,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAYkU,EAAElU,EAAE8Q,EAAEgY,GAAG,GAAG,OAAO9oB,GAAG,qBAAqBA,GADqE,SAAYkU,EAAElU,EAAE8Q,EAAEgY,GAAG,GAAG,OAAOhY,GAAG,IAAIA,EAAE+c,KAAK,OAAM,EAAG,cAAc7tB,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG8oB,IAAc,OAAOhY,GAASA,EAAE4rH,gBAAmD,WAAnCxoH,EAAEA,EAAE6c,cAAc3mB,MAAM,EAAE,KAAsB,UAAU8J,GAAE,QAAQ,OAAM,EAAG,CAC/TgpH,CAAGhpH,EAAElU,EAAE8Q,EAAEgY,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOhY,EAAE,OAAOA,EAAE+c,MAAM,KAAK,EAAE,OAAO7tB,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAO06B,MAAM16B,GAAG,KAAK,EAAE,OAAO06B,MAAM16B,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOtEm9H,CAAGn9H,EAAE8Q,EAAEtK,EAAEsiB,KAAKhY,EAAE,MAAMgY,GAAG,OAAOtiB,EARxK,SAAY0N,GAAG,QAAGooH,EAAGn0H,KAAKs0H,EAAGvoH,KAAeooH,EAAGn0H,KAAKq0H,EAAGtoH,KAAeqoH,EAAGl0F,KAAKn0B,GAAUuoH,EAAGvoH,IAAG,GAAGsoH,EAAGtoH,IAAG,GAAS,GAAE,CAQwDkpH,CAAGp9H,KAAK,OAAO8Q,EAAEoD,EAAEykG,gBAAgB34G,GAAGkU,EAAEyqC,aAAa3+C,EAAE,GAAG8Q,IAAItK,EAAEq2H,gBAAgB3oH,EAAE1N,EAAE2oG,cAAc,OAAOr+F,EAAE,IAAItK,EAAEqnB,MAAQ,GAAG/c,GAAG9Q,EAAEwG,EAAEm2H,cAAc7zG,EAAEtiB,EAAEo2H,mBAAmB,OAAO9rH,EAAEoD,EAAEykG,gBAAgB34G,IAAa8Q,EAAE,KAAXtK,EAAEA,EAAEqnB,OAAc,IAAIrnB,IAAG,IAAKsK,EAAE,GAAG,GAAGA,EAAEgY,EAAE5U,EAAEohC,eAAexsB,EAAE9oB,EAAE8Q,GAAGoD,EAAEyqC,aAAa3+C,EAAE8Q,KAAI,CAHjd,0jCAA0jC7M,MAAM,KAAK6pB,SAAQ,SAAS5Z,GAAG,IAAIlU,EAAEkU,EAAEtC,QAAQorH,EACzmC7sF,GAAIvoB,EAAE5nB,GAAG,IAAIgG,EAAEhG,EAAE,GAAE,EAAGkU,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2EjQ,MAAM,KAAK6pB,SAAQ,SAAS5Z,GAAG,IAAIlU,EAAEkU,EAAEtC,QAAQorH,EAAG7sF,GAAIvoB,EAAE5nB,GAAG,IAAIgG,EAAEhG,EAAE,GAAE,EAAGkU,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAa4Z,SAAQ,SAAS5Z,GAAG,IAAIlU,EAAEkU,EAAEtC,QAAQorH,EAAG7sF,GAAIvoB,EAAE5nB,GAAG,IAAIgG,EAAEhG,EAAE,GAAE,EAAGkU,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAe4Z,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE6c,cAAc,MAAK,GAAG,EAAG,IACldnJ,EAAEy1G,UAAU,IAAIr3H,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAc8nB,SAAQ,SAAS5Z,GAAG0T,EAAE1T,GAAG,IAAIlO,EAAEkO,EAAE,GAAE,EAAGA,EAAE6c,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIusG,EAAGvB,EAAGwB,mDAAmDC,EAAG1qH,OAAOC,IAAI,iBAAiB0qH,EAAG3qH,OAAOC,IAAI,gBAAgB2qH,EAAG5qH,OAAOC,IAAI,kBAAkB4qH,EAAG7qH,OAAOC,IAAI,qBAAqB6qH,EAAG9qH,OAAOC,IAAI,kBAAkB8qH,EAAG/qH,OAAOC,IAAI,kBAAkB+qH,EAAGhrH,OAAOC,IAAI,iBAAiBgrH,EAAGjrH,OAAOC,IAAI,qBAAqBirH,EAAGlrH,OAAOC,IAAI,kBAAkBkrH,EAAGnrH,OAAOC,IAAI,uBAAuBmrH,EAAGprH,OAAOC,IAAI,cAAcorH,EAAGrrH,OAAOC,IAAI,cAAcD,OAAOC,IAAI,eAAeD,OAAOC,IAAI,0BACje,IAAIqrH,EAAGtrH,OAAOC,IAAI,mBAAmBD,OAAOC,IAAI,uBAAuBD,OAAOC,IAAI,eAAeD,OAAOC,IAAI,wBAAwB,IAAIsrH,EAAGvrH,OAAOi1B,SAAS,SAASu2F,EAAGpqH,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEmqH,GAAInqH,EAAEmqH,IAAKnqH,EAAE,eAA0CA,EAAE,IAAI,CAAC,IAAoBqqH,EAAhB/7G,EAAEnhB,OAAOG,OAAU,SAASg9H,EAAGtqH,GAAG,QAAG,IAASqqH,EAAG,IAAI,MAAMv8H,OAAQ,CAAC,MAAM8O,GAAG,IAAI9Q,EAAE8Q,EAAEkoB,MAAMlE,OAAO0tF,MAAM,gBAAgB+b,EAAGv+H,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAKu+H,EAAGrqH,CAAC,CAAC,IAAIuqH,GAAG,EACzb,SAASC,EAAGxqH,EAAElU,GAAG,IAAIkU,GAAGuqH,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI3tH,EAAE9O,MAAM28H,kBAAkB38H,MAAM28H,uBAAkB,EAAO,IAAI,GAAG3+H,EAAE,GAAGA,EAAE,WAAW,MAAMgC,OAAQ,EAAEX,OAAOgnB,eAAeroB,EAAEuB,UAAU,QAAQ,CAACmtB,IAAI,WAAW,MAAM1sB,OAAQ,IAAI,kBAAkBgnB,SAASA,QAAQ41G,UAAU,CAAC,IAAI51G,QAAQ41G,UAAU5+H,EAAE,GAAG,CAAC,MAAM+c,GAAG,IAAI+L,EAAE/L,CAAC,CAACiM,QAAQ41G,UAAU1qH,EAAE,GAAGlU,EAAE,KAAK,CAAC,IAAIA,EAAEmI,MAAM,CAAC,MAAM4U,GAAG+L,EAAE/L,CAAC,CAAC7I,EAAE/L,KAAKnI,EAAEuB,UAAU,KAAK,CAAC,IAAI,MAAMS,OAAQ,CAAC,MAAM+a,GAAG+L,EAAE/L,CAAC,CAAC7I,GAAG,CAAC,CAAC,MAAM6I,GAAG,GAAGA,GAAG+L,GAAG,kBAAkB/L,EAAEic,MAAM,CAAC,IAAI,IAAIxyB,EAAEuW,EAAEic,MAAM/0B,MAAM,MACnf62B,EAAEhS,EAAEkQ,MAAM/0B,MAAM,MAAM2e,EAAEpc,EAAEhG,OAAO,EAAEggB,EAAEsa,EAAEt6B,OAAO,EAAE,GAAGoiB,GAAG,GAAGpC,GAAGha,EAAEoc,KAAKkY,EAAEta,IAAIA,IAAI,KAAK,GAAGoC,GAAG,GAAGpC,EAAEoC,IAAIpC,IAAI,GAAGha,EAAEoc,KAAKkY,EAAEta,GAAG,CAAC,GAAG,IAAIoC,GAAG,IAAIpC,EAAG,MAAMoC,IAAQ,IAAJpC,GAASha,EAAEoc,KAAKkY,EAAEta,GAAG,CAAC,IAAIrM,EAAE,KAAK3N,EAAEoc,GAAGhR,QAAQ,WAAW,QAA6F,OAArFsC,EAAE2qH,aAAa1qH,EAAEghB,SAAS,iBAAiBhhB,EAAEA,EAAEvC,QAAQ,cAAcsC,EAAE2qH,cAAqB1qH,CAAC,QAAO,GAAGyO,GAAG,GAAGpC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQi+G,GAAG,EAAGz8H,MAAM28H,kBAAkB7tH,CAAC,CAAC,OAAOoD,EAAEA,EAAEA,EAAE2qH,aAAa3qH,EAAEtS,KAAK,IAAI48H,EAAGtqH,GAAG,EAAE,CAC9Z,SAAS4qH,EAAG5qH,GAAG,OAAOA,EAAE9L,KAAK,KAAK,EAAE,OAAOo2H,EAAGtqH,EAAE2Z,MAAM,KAAK,GAAG,OAAO2wG,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAOtqH,EAAEwqH,EAAGxqH,EAAE2Z,MAAK,GAAM,KAAK,GAAG,OAAO3Z,EAAEwqH,EAAGxqH,EAAE2Z,KAAKq2D,QAAO,GAAM,KAAK,EAAE,OAAOhwE,EAAEwqH,EAAGxqH,EAAE2Z,MAAK,GAAM,QAAQ,MAAM,GAAG,CACxR,SAASkxG,EAAG7qH,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE2qH,aAAa3qH,EAAEtS,MAAM,KAAK,GAAG,kBAAkBsS,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKwpH,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkB/pH,EAAE,OAAOA,EAAE8qH,UAAU,KAAKlB,EAAG,OAAO5pH,EAAE2qH,aAAa,WAAW,YAAY,KAAKhB,EAAG,OAAO3pH,EAAE+qH,SAASJ,aAAa,WAAW,YAAY,KAAKd,EAAG,IAAI/9H,EAAEkU,EAAEgwE,OAC7Z,OADoahwE,EAAEA,EAAE2qH,eACnd3qH,EAAE,MADieA,EAAElU,EAAE6+H,aAClf7+H,EAAE4B,MAAM,IAAY,cAAcsS,EAAE,IAAI,cAAqBA,EAAE,KAAKgqH,EAAG,OAA6B,QAAtBl+H,EAAEkU,EAAE2qH,aAAa,MAAc7+H,EAAE++H,EAAG7qH,EAAE2Z,OAAO,OAAO,KAAKswG,EAAGn+H,EAAEkU,EAAEgrH,SAAShrH,EAAEA,EAAEzD,MAAM,IAAI,OAAOsuH,EAAG7qH,EAAElU,GAAG,CAAC,MAAM8Q,GAAG,EAAE,OAAO,IAAI,CAC3M,SAASquH,EAAGjrH,GAAG,IAAIlU,EAAEkU,EAAE2Z,KAAK,OAAO3Z,EAAE9L,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAOpI,EAAE6+H,aAAa,WAAW,YAAY,KAAK,GAAG,OAAO7+H,EAAEi/H,SAASJ,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkB3qH,GAAXA,EAAElU,EAAEkkF,QAAW26C,aAAa3qH,EAAEtS,MAAM,GAAG5B,EAAE6+H,cAAc,KAAK3qH,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAOlU,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAO++H,EAAG/+H,GAAG,KAAK,EAAE,OAAOA,IAAI29H,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoB39H,EAAE,OAAOA,EAAE6+H,aAAa7+H,EAAE4B,MAAM,KAAK,GAAG,kBAAkB5B,EAAE,OAAOA,EAAE,OAAO,IAAI,CAAC,SAASo/H,EAAGlrH,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,GAAG,CACra,SAASmrH,EAAGnrH,GAAG,IAAIlU,EAAEkU,EAAE2Z,KAAK,OAAO3Z,EAAEA,EAAEorH,WAAW,UAAUprH,EAAE6c,gBAAgB,aAAa/wB,GAAG,UAAUA,EAAE,CAEtF,SAASu/H,EAAGrrH,GAAGA,EAAEsrH,gBAAgBtrH,EAAEsrH,cADvD,SAAYtrH,GAAG,IAAIlU,EAAEq/H,EAAGnrH,GAAG,UAAU,QAAQpD,EAAEzP,OAAO0nB,yBAAyB7U,EAAExT,YAAYa,UAAUvB,GAAG8oB,EAAE,GAAG5U,EAAElU,GAAG,IAAIkU,EAAEhM,eAAelI,IAAI,qBAAqB8Q,GAAG,oBAAoBA,EAAEyX,KAAK,oBAAoBzX,EAAE4d,IAAI,CAAC,IAAIloB,EAAEsK,EAAEyX,IAAIuS,EAAEhqB,EAAE4d,IAAiL,OAA7KrtB,OAAOgnB,eAAenU,EAAElU,EAAE,CAAC+4B,cAAa,EAAGxQ,IAAI,WAAW,OAAO/hB,EAAE2B,KAAKkI,KAAK,EAAEqe,IAAI,SAASxa,GAAG4U,EAAE,GAAG5U,EAAE4mB,EAAE3yB,KAAKkI,KAAK6D,EAAE,IAAI7S,OAAOgnB,eAAenU,EAAElU,EAAE,CAACsoB,WAAWxX,EAAEwX,aAAmB,CAACwkC,SAAS,WAAW,OAAOhkC,CAAC,EAAE22G,SAAS,SAASvrH,GAAG4U,EAAE,GAAG5U,CAAC,EAAEwrH,aAAa,WAAWxrH,EAAEsrH,cACxf,YAAYtrH,EAAElU,EAAE,EAAE,CAAC,CAAkD2/H,CAAGzrH,GAAG,CAAC,SAAS0rH,EAAG1rH,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIlU,EAAEkU,EAAEsrH,cAAc,IAAIx/H,EAAE,OAAM,EAAG,IAAI8Q,EAAE9Q,EAAE8sD,WAAehkC,EAAE,GAAqD,OAAlD5U,IAAI4U,EAAEu2G,EAAGnrH,GAAGA,EAAEmc,QAAQ,OAAO,QAAQnc,EAAEjL,QAAOiL,EAAE4U,KAAahY,IAAG9Q,EAAEy/H,SAASvrH,IAAG,EAAM,CAAC,SAAS2rH,EAAG3rH,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBgvB,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOhvB,EAAE4rH,eAAe5rH,EAAE0qC,IAAI,CAAC,MAAM5+C,GAAG,OAAOkU,EAAE0qC,IAAI,CAAC,CACpa,SAASmhF,EAAG7rH,EAAElU,GAAG,IAAI8Q,EAAE9Q,EAAEqwB,QAAQ,OAAO7N,EAAE,CAAC,EAAExiB,EAAE,CAACggI,oBAAe,EAAOC,kBAAa,EAAOh3H,WAAM,EAAOonB,QAAQ,MAAMvf,EAAEA,EAAEoD,EAAEgsH,cAAcC,gBAAgB,CAAC,SAASC,EAAGlsH,EAAElU,GAAG,IAAI8Q,EAAE,MAAM9Q,EAAEigI,aAAa,GAAGjgI,EAAEigI,aAAan3G,EAAE,MAAM9oB,EAAEqwB,QAAQrwB,EAAEqwB,QAAQrwB,EAAEggI,eAAelvH,EAAEsuH,EAAG,MAAMp/H,EAAEiJ,MAAMjJ,EAAEiJ,MAAM6H,GAAGoD,EAAEgsH,cAAc,CAACC,eAAer3G,EAAEu3G,aAAavvH,EAAEwvH,WAAW,aAAatgI,EAAE6tB,MAAM,UAAU7tB,EAAE6tB,KAAK,MAAM7tB,EAAEqwB,QAAQ,MAAMrwB,EAAEiJ,MAAM,CAAC,SAASs3H,EAAGrsH,EAAElU,GAAe,OAAZA,EAAEA,EAAEqwB,UAAiB4sG,EAAG/oH,EAAE,UAAUlU,GAAE,EAAG,CAC9d,SAASwgI,EAAGtsH,EAAElU,GAAGugI,EAAGrsH,EAAElU,GAAG,IAAI8Q,EAAEsuH,EAAGp/H,EAAEiJ,OAAO6f,EAAE9oB,EAAE6tB,KAAK,GAAG,MAAM/c,EAAK,WAAWgY,GAAM,IAAIhY,GAAG,KAAKoD,EAAEjL,OAAOiL,EAAEjL,OAAO6H,KAAEoD,EAAEjL,MAAM,GAAG6H,GAAOoD,EAAEjL,QAAQ,GAAG6H,IAAIoD,EAAEjL,MAAM,GAAG6H,QAAQ,GAAG,WAAWgY,GAAG,UAAUA,EAA8B,YAA3B5U,EAAEykG,gBAAgB,SAAgB34G,EAAEkI,eAAe,SAAS0sC,GAAG1gC,EAAElU,EAAE6tB,KAAK/c,GAAG9Q,EAAEkI,eAAe,iBAAiB0sC,GAAG1gC,EAAElU,EAAE6tB,KAAKuxG,EAAGp/H,EAAEigI,eAAe,MAAMjgI,EAAEqwB,SAAS,MAAMrwB,EAAEggI,iBAAiB9rH,EAAE8rH,iBAAiBhgI,EAAEggI,eAAe,CACla,SAASS,EAAGvsH,EAAElU,EAAE8Q,GAAG,GAAG9Q,EAAEkI,eAAe,UAAUlI,EAAEkI,eAAe,gBAAgB,CAAC,IAAI4gB,EAAE9oB,EAAE6tB,KAAK,KAAK,WAAW/E,GAAG,UAAUA,QAAG,IAAS9oB,EAAEiJ,OAAO,OAAOjJ,EAAEiJ,OAAO,OAAOjJ,EAAE,GAAGkU,EAAEgsH,cAAcG,aAAavvH,GAAG9Q,IAAIkU,EAAEjL,QAAQiL,EAAEjL,MAAMjJ,GAAGkU,EAAE+rH,aAAajgI,CAAC,CAAU,MAAT8Q,EAAEoD,EAAEtS,QAAcsS,EAAEtS,KAAK,IAAIsS,EAAE8rH,iBAAiB9rH,EAAEgsH,cAAcC,eAAe,KAAKrvH,IAAIoD,EAAEtS,KAAKkP,EAAE,CACzV,SAAS8jC,GAAG1gC,EAAElU,EAAE8Q,GAAM,WAAW9Q,GAAG6/H,EAAG3rH,EAAEwsH,iBAAiBxsH,IAAE,MAAMpD,EAAEoD,EAAE+rH,aAAa,GAAG/rH,EAAEgsH,cAAcG,aAAansH,EAAE+rH,eAAe,GAAGnvH,IAAIoD,EAAE+rH,aAAa,GAAGnvH,GAAE,CAAC,IAAI6vH,GAAGv6H,MAAMC,QAC7K,SAAS4gF,GAAG/yE,EAAElU,EAAE8Q,EAAEgY,GAAe,GAAZ5U,EAAEA,EAAEmnB,QAAWr7B,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAIwG,EAAE,EAAEA,EAAEsK,EAAEtQ,OAAOgG,IAAIxG,EAAE,IAAI8Q,EAAEtK,KAAI,EAAG,IAAIsK,EAAE,EAAEA,EAAEoD,EAAE1T,OAAOsQ,IAAItK,EAAExG,EAAEkI,eAAe,IAAIgM,EAAEpD,GAAG7H,OAAOiL,EAAEpD,GAAG8vH,WAAWp6H,IAAI0N,EAAEpD,GAAG8vH,SAASp6H,GAAGA,GAAGsiB,IAAI5U,EAAEpD,GAAG+vH,iBAAgB,EAAG,KAAK,CAAmB,IAAlB/vH,EAAE,GAAGsuH,EAAGtuH,GAAG9Q,EAAE,KAASwG,EAAE,EAAEA,EAAE0N,EAAE1T,OAAOgG,IAAI,CAAC,GAAG0N,EAAE1N,GAAGyC,QAAQ6H,EAAiD,OAA9CoD,EAAE1N,GAAGo6H,UAAS,OAAG93G,IAAI5U,EAAE1N,GAAGq6H,iBAAgB,IAAW,OAAO7gI,GAAGkU,EAAE1N,GAAGs6H,WAAW9gI,EAAEkU,EAAE1N,GAAG,CAAC,OAAOxG,IAAIA,EAAE4gI,UAAS,EAAG,CAAC,CACxY,SAASG,GAAG7sH,EAAElU,GAAG,GAAG,MAAMA,EAAEghI,wBAAwB,MAAMh/H,MAAM+b,EAAE,KAAK,OAAOyE,EAAE,CAAC,EAAExiB,EAAE,CAACiJ,WAAM,EAAOg3H,kBAAa,EAAOphC,SAAS,GAAG3qF,EAAEgsH,cAAcG,cAAc,CAAC,SAASY,GAAG/sH,EAAElU,GAAG,IAAI8Q,EAAE9Q,EAAEiJ,MAAM,GAAG,MAAM6H,EAAE,CAA+B,GAA9BA,EAAE9Q,EAAE6+F,SAAS7+F,EAAEA,EAAEigI,aAAgB,MAAMnvH,EAAE,CAAC,GAAG,MAAM9Q,EAAE,MAAMgC,MAAM+b,EAAE,KAAK,GAAG4iH,GAAG7vH,GAAG,CAAC,GAAG,EAAEA,EAAEtQ,OAAO,MAAMwB,MAAM+b,EAAE,KAAKjN,EAAEA,EAAE,EAAE,CAAC9Q,EAAE8Q,CAAC,CAAC,MAAM9Q,IAAIA,EAAE,IAAI8Q,EAAE9Q,CAAC,CAACkU,EAAEgsH,cAAc,CAACG,aAAajB,EAAGtuH,GAAG,CACnY,SAASowH,GAAGhtH,EAAElU,GAAG,IAAI8Q,EAAEsuH,EAAGp/H,EAAEiJ,OAAO6f,EAAEs2G,EAAGp/H,EAAEigI,cAAc,MAAMnvH,KAAIA,EAAE,GAAGA,KAAMoD,EAAEjL,QAAQiL,EAAEjL,MAAM6H,GAAG,MAAM9Q,EAAEigI,cAAc/rH,EAAE+rH,eAAenvH,IAAIoD,EAAE+rH,aAAanvH,IAAI,MAAMgY,IAAI5U,EAAE+rH,aAAa,GAAGn3G,EAAE,CAAC,SAASq4G,GAAGjtH,GAAG,IAAIlU,EAAEkU,EAAE41D,YAAY9pE,IAAIkU,EAAEgsH,cAAcG,cAAc,KAAKrgI,GAAG,OAAOA,IAAIkU,EAAEjL,MAAMjJ,EAAE,CAAC,SAASohI,GAAGltH,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAC7c,SAASmtH,GAAGntH,EAAElU,GAAG,OAAO,MAAMkU,GAAG,iCAAiCA,EAAEktH,GAAGphI,GAAG,+BAA+BkU,GAAG,kBAAkBlU,EAAE,+BAA+BkU,CAAC,CAChK,IAAIotH,GAAeptH,GAAZqtH,IAAYrtH,GAAsJ,SAASA,EAAElU,GAAG,GAAG,+BAA+BkU,EAAEstH,cAAc,cAActtH,EAAEA,EAAE6yG,UAAU/mH,MAAM,CAA2F,KAA1FshI,GAAGA,IAAIp+F,SAAS9B,cAAc,QAAU2lF,UAAU,QAAQ/mH,EAAEowB,UAAU7lB,WAAW,SAAavK,EAAEshI,GAAGlH,WAAWlmH,EAAEkmH,YAAYlmH,EAAEk5D,YAAYl5D,EAAEkmH,YAAY,KAAKp6H,EAAEo6H,YAAYlmH,EAAEuhC,YAAYz1C,EAAEo6H,WAAW,CAAC,EAAvb,qBAAqBqH,OAAOA,MAAMC,wBAAwB,SAAS1hI,EAAE8Q,EAAEgY,EAAEtiB,GAAGi7H,MAAMC,yBAAwB,WAAW,OAAOxtH,GAAElU,EAAE8Q,EAAM,GAAE,EAAEoD,IACtK,SAASogC,GAAGpgC,EAAElU,GAAG,GAAGA,EAAE,CAAC,IAAI8Q,EAAEoD,EAAEkmH,WAAW,GAAGtpH,GAAGA,IAAIoD,EAAEytH,WAAW,IAAI7wH,EAAE8wH,SAAwB,YAAd9wH,EAAE+wH,UAAU7hI,EAAS,CAACkU,EAAE41D,YAAY9pE,CAAC,CACtH,IAAI8hI,GAAG,CAACC,yBAAwB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGp/D,MAAK,EAAGq/D,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGt6D,YAAW,EAAGu6D,WAAU,EAAG7kC,YAAW,EAAG1nB,SAAQ,EAAGwsD,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAClfC,MAAK,EAAGC,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAG3lC,aAAY,GAAI4lC,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASpnH,GAAG/I,EAAElU,EAAE8Q,GAAG,OAAO,MAAM9Q,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAG8Q,GAAG,kBAAkB9Q,GAAG,IAAIA,GAAG8hI,GAAG55H,eAAegM,IAAI4tH,GAAG5tH,IAAI,GAAGlU,GAAG80B,OAAO90B,EAAE,IAAI,CACzb,SAASskI,GAAGpwH,EAAElU,GAAa,IAAI,IAAI8Q,KAAlBoD,EAAEA,EAAE6oB,MAAmB/8B,EAAE,GAAGA,EAAEkI,eAAe4I,GAAG,CAAC,IAAIgY,EAAE,IAAIhY,EAAEjC,QAAQ,MAAMrI,EAAEyW,GAAGnM,EAAE9Q,EAAE8Q,GAAGgY,GAAG,UAAUhY,IAAIA,EAAE,YAAYgY,EAAE5U,EAAEqwH,YAAYzzH,EAAEtK,GAAG0N,EAAEpD,GAAGtK,CAAC,CAAC,CADYnF,OAAOg1C,KAAKyrF,IAAIh0G,SAAQ,SAAS5Z,GAAGmwH,GAAGv2G,SAAQ,SAAS9tB,GAAGA,EAAEA,EAAEkU,EAAE5I,OAAO,GAAGgiB,cAAcpZ,EAAEo3F,UAAU,GAAGw2B,GAAG9hI,GAAG8hI,GAAG5tH,EAAE,GAAE,IAChI,IAAIswH,GAAGhiH,EAAE,CAACiiH,UAAS,GAAI,CAACC,MAAK,EAAGx0H,MAAK,EAAGy0H,IAAG,EAAG5qB,KAAI,EAAG6qB,OAAM,EAAGC,IAAG,EAAG9wF,KAAI,EAAG3sB,OAAM,EAAG09G,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAGl5H,QAAO,EAAGm5H,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGlxH,EAAElU,GAAG,GAAGA,EAAE,CAAC,GAAGwkI,GAAGtwH,KAAK,MAAMlU,EAAE6+F,UAAU,MAAM7+F,EAAEghI,yBAAyB,MAAMh/H,MAAM+b,EAAE,IAAI7J,IAAI,GAAG,MAAMlU,EAAEghI,wBAAwB,CAAC,GAAG,MAAMhhI,EAAE6+F,SAAS,MAAM78F,MAAM+b,EAAE,KAAK,GAAG,kBAAkB/d,EAAEghI,2BAA2B,WAAWhhI,EAAEghI,yBAAyB,MAAMh/H,MAAM+b,EAAE,IAAK,CAAC,GAAG,MAAM/d,EAAE+8B,OAAO,kBAAkB/8B,EAAE+8B,MAAM,MAAM/6B,MAAM+b,EAAE,IAAK,CAAC,CAClW,SAASpV,GAAGuL,EAAElU,GAAG,IAAI,IAAIkU,EAAErF,QAAQ,KAAK,MAAM,kBAAkB7O,EAAEsxD,GAAG,OAAOp9C,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,IAAImxH,GAAG,KAAK,SAASC,GAAGpxH,GAA6F,OAA1FA,EAAEA,EAAEyU,QAAQzU,EAAEqxH,YAAY50H,QAAS60H,0BAA0BtxH,EAAEA,EAAEsxH,yBAAgC,IAAItxH,EAAE0tH,SAAS1tH,EAAEw0D,WAAWx0D,CAAC,CAAC,IAAIuxH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACpc,SAASC,GAAG1xH,GAAG,GAAGA,EAAE2xH,GAAG3xH,GAAG,CAAC,GAAG,oBAAoBuxH,GAAG,MAAMzjI,MAAM+b,EAAE,MAAM,IAAI/d,EAAEkU,EAAE4xH,UAAU9lI,IAAIA,EAAE+lI,GAAG/lI,GAAGylI,GAAGvxH,EAAE4xH,UAAU5xH,EAAE2Z,KAAK7tB,GAAG,CAAC,CAAC,SAASgmI,GAAG9xH,GAAGwxH,GAAGC,GAAGA,GAAG9/H,KAAKqO,GAAGyxH,GAAG,CAACzxH,GAAGwxH,GAAGxxH,CAAC,CAAC,SAAS+xH,KAAK,GAAGP,GAAG,CAAC,IAAIxxH,EAAEwxH,GAAG1lI,EAAE2lI,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAG1xH,GAAMlU,EAAE,IAAIkU,EAAE,EAAEA,EAAElU,EAAEQ,OAAO0T,IAAI0xH,GAAG5lI,EAAEkU,GAAG,CAAC,CAAC,SAASgyH,GAAGhyH,EAAElU,GAAG,OAAOkU,EAAElU,EAAE,CAAC,SAASmmI,KAAK,CAAC,IAAIC,IAAG,EAAG,SAASC,GAAGnyH,EAAElU,EAAE8Q,GAAG,GAAGs1H,GAAG,OAAOlyH,EAAElU,EAAE8Q,GAAGs1H,IAAG,EAAG,IAAI,OAAOF,GAAGhyH,EAAElU,EAAE8Q,EAAE,CAAC,QAAWs1H,IAAG,GAAG,OAAOV,IAAI,OAAOC,MAAGQ,KAAKF,KAAI,CAAC,CAChb,SAASK,GAAGpyH,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAE4xH,UAAU,GAAG,OAAOh1H,EAAE,OAAO,KAAK,IAAIgY,EAAEi9G,GAAGj1H,GAAG,GAAG,OAAOgY,EAAE,OAAO,KAAKhY,EAAEgY,EAAE9oB,GAAGkU,EAAE,OAAOlU,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgB8oB,GAAGA,EAAEg4G,YAAqBh4G,IAAI,YAAb5U,EAAEA,EAAE2Z,OAAuB,UAAU3Z,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAG4U,EAAE,MAAM5U,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGpD,GAAG,oBACleA,EAAE,MAAM9O,MAAM+b,EAAE,IAAI/d,SAAS8Q,IAAI,OAAOA,CAAC,CAAC,IAAIy1H,IAAG,EAAG,GAAGlK,EAAG,IAAI,IAAImK,GAAG,CAAC,EAAEnlI,OAAOgnB,eAAem+G,GAAG,UAAU,CAACj+G,IAAI,WAAWg+G,IAAG,CAAE,IAAI51H,OAAOowB,iBAAiB,OAAOylG,GAAGA,IAAI71H,OAAOqwB,oBAAoB,OAAOwlG,GAAGA,GAAG,CAAC,MAAMtyH,IAAGqyH,IAAG,CAAE,CAAC,SAASE,GAAGvyH,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,EAAEpC,EAAErM,GAAG,IAAI4I,EAAE3W,MAAM7E,UAAU6I,MAAMjC,KAAKhG,UAAU,GAAG,IAAInC,EAAEusB,MAAMzb,EAAEiM,EAAE,CAAC,MAAM0B,GAAGpO,KAAK+hC,QAAQ3zB,EAAE,CAAC,CAAC,IAAIioH,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAAC10F,QAAQ,SAASl+B,GAAGwyH,IAAG,EAAGC,GAAGzyH,CAAC,GAAG,SAAS6yH,GAAG7yH,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,EAAEpC,EAAErM,GAAGuyH,IAAG,EAAGC,GAAG,KAAKF,GAAGl6G,MAAMu6G,GAAG3kI,UAAU,CACjW,SAAS6kI,GAAG9yH,GAAG,IAAIlU,EAAEkU,EAAEpD,EAAEoD,EAAE,GAAGA,EAAE+yH,UAAU,KAAKjnI,EAAEwrH,QAAQxrH,EAAEA,EAAEwrH,WAAW,CAACt3G,EAAElU,EAAE,GAAO,KAAa,MAAjBA,EAAEkU,GAASgzH,SAAcp2H,EAAE9Q,EAAEwrH,QAAQt3G,EAAElU,EAAEwrH,aAAat3G,EAAE,CAAC,OAAO,IAAIlU,EAAEoI,IAAI0I,EAAE,IAAI,CAAC,SAASq2H,GAAGjzH,GAAG,GAAG,KAAKA,EAAE9L,IAAI,CAAC,IAAIpI,EAAEkU,EAAEkzH,cAAsE,GAAxD,OAAOpnI,IAAkB,QAAdkU,EAAEA,EAAE+yH,aAAqBjnI,EAAEkU,EAAEkzH,gBAAmB,OAAOpnI,EAAE,OAAOA,EAAEqnI,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAGpzH,GAAG,GAAG8yH,GAAG9yH,KAAKA,EAAE,MAAMlS,MAAM+b,EAAE,KAAM,CAE1S,SAASwpH,GAAGrzH,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAIlU,EAAEkU,EAAE+yH,UAAU,IAAIjnI,EAAE,CAAS,GAAG,QAAXA,EAAEgnI,GAAG9yH,IAAe,MAAMlS,MAAM+b,EAAE,MAAM,OAAO/d,IAAIkU,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAIpD,EAAEoD,EAAE4U,EAAE9oB,IAAI,CAAC,IAAIwG,EAAEsK,EAAE06G,OAAO,GAAG,OAAOhlH,EAAE,MAAM,IAAIs0B,EAAEt0B,EAAEygI,UAAU,GAAG,OAAOnsG,EAAE,CAAY,GAAG,QAAdhS,EAAEtiB,EAAEglH,QAAmB,CAAC16G,EAAEgY,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGtiB,EAAEghI,QAAQ1sG,EAAE0sG,MAAM,CAAC,IAAI1sG,EAAEt0B,EAAEghI,MAAM1sG,GAAG,CAAC,GAAGA,IAAIhqB,EAAE,OAAOw2H,GAAG9gI,GAAG0N,EAAE,GAAG4mB,IAAIhS,EAAE,OAAOw+G,GAAG9gI,GAAGxG,EAAE86B,EAAEA,EAAE2sG,OAAO,CAAC,MAAMzlI,MAAM+b,EAAE,KAAM,CAAC,GAAGjN,EAAE06G,SAAS1iG,EAAE0iG,OAAO16G,EAAEtK,EAAEsiB,EAAEgS,MAAM,CAAC,IAAI,IAAIlY,GAAE,EAAGpC,EAAEha,EAAEghI,MAAMhnH,GAAG,CAAC,GAAGA,IAAI1P,EAAE,CAAC8R,GAAE,EAAG9R,EAAEtK,EAAEsiB,EAAEgS,EAAE,KAAK,CAAC,GAAGta,IAAIsI,EAAE,CAAClG,GAAE,EAAGkG,EAAEtiB,EAAEsK,EAAEgqB,EAAE,KAAK,CAACta,EAAEA,EAAEinH,OAAO,CAAC,IAAI7kH,EAAE,CAAC,IAAIpC,EAAEsa,EAAE0sG,MAAMhnH,GAAG,CAAC,GAAGA,IAC5f1P,EAAE,CAAC8R,GAAE,EAAG9R,EAAEgqB,EAAEhS,EAAEtiB,EAAE,KAAK,CAAC,GAAGga,IAAIsI,EAAE,CAAClG,GAAE,EAAGkG,EAAEgS,EAAEhqB,EAAEtK,EAAE,KAAK,CAACga,EAAEA,EAAEinH,OAAO,CAAC,IAAI7kH,EAAE,MAAM5gB,MAAM+b,EAAE,KAAM,CAAC,CAAC,GAAGjN,EAAEm2H,YAAYn+G,EAAE,MAAM9mB,MAAM+b,EAAE,KAAM,CAAC,GAAG,IAAIjN,EAAE1I,IAAI,MAAMpG,MAAM+b,EAAE,MAAM,OAAOjN,EAAEg1H,UAAU/9G,UAAUjX,EAAEoD,EAAElU,CAAC,CAAkB0nI,CAAGxzH,IAAmByzH,GAAGzzH,GAAG,IAAI,CAAC,SAASyzH,GAAGzzH,GAAG,GAAG,IAAIA,EAAE9L,KAAK,IAAI8L,EAAE9L,IAAI,OAAO8L,EAAE,IAAIA,EAAEA,EAAEszH,MAAM,OAAOtzH,GAAG,CAAC,IAAIlU,EAAE2nI,GAAGzzH,GAAG,GAAG,OAAOlU,EAAE,OAAOA,EAAEkU,EAAEA,EAAEuzH,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAIG,GAAG5L,EAAG6L,0BAA0BC,GAAG9L,EAAG+L,wBAAwBC,GAAGhM,EAAGiM,qBAAqBC,GAAGlM,EAAGmM,sBAAsB1lH,GAAEu5G,EAAGoM,aAAaC,GAAGrM,EAAGsM,iCAAiC9mD,GAAGw6C,EAAGuM,2BAA2BC,GAAGxM,EAAGyM,8BAA8BC,GAAG1M,EAAG2M,wBAAwBC,GAAG5M,EAAG6M,qBAAqBC,GAAG9M,EAAG+M,sBAAsBC,GAAG,KAAK7pD,GAAG,KACvV,IAAI8pD,GAAG1mI,KAAKuS,MAAMvS,KAAKuS,MAAiC,SAAYZ,GAAU,OAAPA,KAAK,EAAS,IAAIA,EAAE,GAAG,IAAIg1H,GAAGh1H,GAAGi1H,GAAG,GAAG,CAAC,EAA/ED,GAAG3mI,KAAKqJ,IAAIu9H,GAAG5mI,KAAKo4B,IAA4D,IAAIyuG,GAAG,GAAG38D,GAAG,QAC7H,SAAS48D,GAAGn1H,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,EAAE,CAAC,SAASo1H,GAAGp1H,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAEq1H,aAAa,GAAG,IAAIz4H,EAAE,OAAO,EAAE,IAAIgY,EAAE,EAAEtiB,EAAE0N,EAAEs1H,eAAe1uG,EAAE5mB,EAAEu1H,YAAY7mH,EAAI,UAAF9R,EAAY,GAAG,IAAI8R,EAAE,CAAC,IAAIpC,EAAEoC,GAAGpc,EAAE,IAAIga,EAAEsI,EAAEugH,GAAG7oH,GAAS,KAALsa,GAAGlY,KAAUkG,EAAEugH,GAAGvuG,GAAI,MAAa,KAAPlY,EAAE9R,GAAGtK,GAAQsiB,EAAEugH,GAAGzmH,GAAG,IAAIkY,IAAIhS,EAAEugH,GAAGvuG,IAAI,GAAG,IAAIhS,EAAE,OAAO,EAAE,GAAG,IAAI9oB,GAAGA,IAAI8oB,GAAG,KAAK9oB,EAAEwG,MAAKA,EAAEsiB,GAAGA,KAAEgS,EAAE96B,GAAGA,IAAQ,KAAKwG,GAAG,KAAO,QAAFs0B,IAAY,OAAO96B,EAA0C,GAAxC,KAAO,EAAF8oB,KAAOA,GAAK,GAAFhY,GAA4B,KAAtB9Q,EAAEkU,EAAEw1H,gBAAwB,IAAIx1H,EAAEA,EAAEy1H,cAAc3pI,GAAG8oB,EAAE,EAAE9oB,GAAcwG,EAAE,IAAbsK,EAAE,GAAGm4H,GAAGjpI,IAAU8oB,GAAG5U,EAAEpD,GAAG9Q,IAAIwG,EAAE,OAAOsiB,CAAC,CACvc,SAAS8gH,GAAG11H,EAAElU,GAAG,OAAOkU,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAOlU,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,EAAE,CACrN,SAASuL,GAAG2I,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEq1H,cAAsCr1H,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAAS21H,KAAK,IAAI31H,EAAEk1H,GAAoC,OAA1B,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAWl1H,CAAC,CAAC,SAAS41H,GAAG51H,GAAG,IAAI,IAAIlU,EAAE,GAAG8Q,EAAE,EAAE,GAAGA,EAAEA,IAAI9Q,EAAE6F,KAAKqO,GAAG,OAAOlU,CAAC,CAC3a,SAAS+pI,GAAG71H,EAAElU,EAAE8Q,GAAGoD,EAAEq1H,cAAcvpI,EAAE,YAAYA,IAAIkU,EAAEs1H,eAAe,EAAEt1H,EAAEu1H,YAAY,IAAGv1H,EAAEA,EAAE81H,YAAWhqI,EAAE,GAAGipI,GAAGjpI,IAAQ8Q,CAAC,CACzH,SAASm5H,GAAG/1H,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAEw1H,gBAAgB1pI,EAAE,IAAIkU,EAAEA,EAAEy1H,cAAc74H,GAAG,CAAC,IAAIgY,EAAE,GAAGmgH,GAAGn4H,GAAGtK,EAAE,GAAGsiB,EAAEtiB,EAAExG,EAAEkU,EAAE4U,GAAG9oB,IAAIkU,EAAE4U,IAAI9oB,GAAG8Q,IAAItK,CAAC,CAAC,CAAC,IAAIkc,GAAE,EAAE,SAASwnH,GAAGh2H,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,CAAC,CAAC,IAAIi2H,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIp8G,IAAIq8G,GAAG,IAAIr8G,IAAIs8G,GAAG,GAAGC,GAAG,6PAA6P/mI,MAAM,KAChiB,SAASgnI,GAAG/2H,EAAElU,GAAG,OAAOkU,GAAG,IAAK,UAAU,IAAK,WAAWw2H,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGK,OAAOlrI,EAAEmrI,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBL,GAAGI,OAAOlrI,EAAEmrI,WAAW,CACnT,SAASC,GAAGl3H,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,GAAG,OAAG,OAAO5mB,GAAGA,EAAEm3H,cAAcvwG,GAAS5mB,EAAE,CAACo3H,UAAUtrI,EAAEurI,aAAaz6H,EAAE06H,iBAAiB1iH,EAAEuiH,YAAYvwG,EAAE2wG,iBAAiB,CAACjlI,IAAI,OAAOxG,IAAY,QAARA,EAAE6lI,GAAG7lI,KAAaoqI,GAAGpqI,IAAIkU,IAAEA,EAAEs3H,kBAAkB1iH,EAAE9oB,EAAEkU,EAAEu3H,iBAAiB,OAAOjlI,IAAI,IAAIxG,EAAE6O,QAAQrI,IAAIxG,EAAE6F,KAAKW,GAAU0N,EAAC,CAEpR,SAASw3H,GAAGx3H,GAAG,IAAIlU,EAAE2rI,GAAGz3H,EAAEyU,QAAQ,GAAG,OAAO3oB,EAAE,CAAC,IAAI8Q,EAAEk2H,GAAGhnI,GAAG,GAAG,OAAO8Q,EAAE,GAAW,MAAR9Q,EAAE8Q,EAAE1I,MAAY,GAAW,QAARpI,EAAEmnI,GAAGr2H,IAA4D,OAA/CoD,EAAEo3H,UAAUtrI,OAAEuqI,GAAGr2H,EAAE03H,UAAS,WAAWvB,GAAGv5H,EAAE,SAAgB,GAAG,IAAI9Q,GAAG8Q,EAAEg1H,UAAU/9G,QAAQq/G,cAAcyE,aAAmE,YAArD33H,EAAEo3H,UAAU,IAAIx6H,EAAE1I,IAAI0I,EAAEg1H,UAAUgG,cAAc,KAAY,CAAC53H,EAAEo3H,UAAU,IAAI,CAClT,SAASS,GAAG73H,GAAG,GAAG,OAAOA,EAAEo3H,UAAU,OAAM,EAAG,IAAI,IAAItrI,EAAEkU,EAAEu3H,iBAAiB,EAAEzrI,EAAEQ,QAAQ,CAAC,IAAIsQ,EAAEk7H,GAAG93H,EAAEq3H,aAAar3H,EAAEs3H,iBAAiBxrI,EAAE,GAAGkU,EAAEm3H,aAAa,GAAG,OAAOv6H,EAAiG,OAAe,QAAR9Q,EAAE6lI,GAAG/0H,KAAas5H,GAAGpqI,GAAGkU,EAAEo3H,UAAUx6H,GAAE,EAA3H,IAAIgY,EAAE,IAAtBhY,EAAEoD,EAAEm3H,aAAwB3qI,YAAYoQ,EAAE+c,KAAK/c,GAAGu0H,GAAGv8G,EAAEhY,EAAE6X,OAAOsjH,cAAcnjH,GAAGu8G,GAAG,KAA0DrlI,EAAE+G,OAAO,CAAC,OAAM,CAAE,CAAC,SAASmlI,GAAGh4H,EAAElU,EAAE8Q,GAAGi7H,GAAG73H,IAAIpD,EAAEo6H,OAAOlrI,EAAE,CAAC,SAASmsI,KAAK3B,IAAG,EAAG,OAAOE,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAOC,IAAIoB,GAAGpB,MAAMA,GAAG,MAAM,OAAOC,IAAImB,GAAGnB,MAAMA,GAAG,MAAMC,GAAG/8G,QAAQo+G,IAAIpB,GAAGh9G,QAAQo+G,GAAG,CACnf,SAASE,GAAGl4H,EAAElU,GAAGkU,EAAEo3H,YAAYtrI,IAAIkU,EAAEo3H,UAAU,KAAKd,KAAKA,IAAG,EAAGxO,EAAG6L,0BAA0B7L,EAAG2M,wBAAwBwD,KAAK,CAC5H,SAASE,GAAGn4H,GAAG,SAASlU,EAAEA,GAAG,OAAOosI,GAAGpsI,EAAEkU,EAAE,CAAC,GAAG,EAAEu2H,GAAGjqI,OAAO,CAAC4rI,GAAG3B,GAAG,GAAGv2H,GAAG,IAAI,IAAIpD,EAAE,EAAEA,EAAE25H,GAAGjqI,OAAOsQ,IAAI,CAAC,IAAIgY,EAAE2hH,GAAG35H,GAAGgY,EAAEwiH,YAAYp3H,IAAI4U,EAAEwiH,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOZ,IAAI0B,GAAG1B,GAAGx2H,GAAG,OAAOy2H,IAAIyB,GAAGzB,GAAGz2H,GAAG,OAAO02H,IAAIwB,GAAGxB,GAAG12H,GAAG22H,GAAG/8G,QAAQ9tB,GAAG8qI,GAAGh9G,QAAQ9tB,GAAO8Q,EAAE,EAAEA,EAAEi6H,GAAGvqI,OAAOsQ,KAAIgY,EAAEiiH,GAAGj6H,IAAKw6H,YAAYp3H,IAAI4U,EAAEwiH,UAAU,MAAM,KAAK,EAAEP,GAAGvqI,QAAiB,QAARsQ,EAAEi6H,GAAG,IAAYO,WAAYI,GAAG56H,GAAG,OAAOA,EAAEw6H,WAAWP,GAAGhkI,OAAO,CAAC,IAAIulI,GAAGhP,EAAGiP,wBAAwBC,IAAG,EAC5a,SAASC,GAAGv4H,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAEkc,GAAEoY,EAAEwxG,GAAG3Z,WAAW2Z,GAAG3Z,WAAW,KAAK,IAAIjwG,GAAE,EAAEnc,GAAG2N,EAAElU,EAAE8Q,EAAEgY,EAAE,CAAC,QAAQpG,GAAElc,EAAE8lI,GAAG3Z,WAAW73F,CAAC,CAAC,CAAC,SAAS4xG,GAAGx4H,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAEkc,GAAEoY,EAAEwxG,GAAG3Z,WAAW2Z,GAAG3Z,WAAW,KAAK,IAAIjwG,GAAE,EAAEnc,GAAG2N,EAAElU,EAAE8Q,EAAEgY,EAAE,CAAC,QAAQpG,GAAElc,EAAE8lI,GAAG3Z,WAAW73F,CAAC,CAAC,CACjO,SAASv0B,GAAG2N,EAAElU,EAAE8Q,EAAEgY,GAAG,GAAG0jH,GAAG,CAAC,IAAIhmI,EAAEwlI,GAAG93H,EAAElU,EAAE8Q,EAAEgY,GAAG,GAAG,OAAOtiB,EAAE4zE,GAAGlmE,EAAElU,EAAE8oB,EAAEgT,GAAGhrB,GAAGm6H,GAAG/2H,EAAE4U,QAAQ,GANtF,SAAY5U,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,OAAOxG,GAAG,IAAK,UAAU,OAAO0qI,GAAGU,GAAGV,GAAGx2H,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,IAAG,EAAG,IAAK,YAAY,OAAOmkI,GAAGS,GAAGT,GAAGz2H,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,IAAG,EAAG,IAAK,YAAY,OAAOokI,GAAGQ,GAAGR,GAAG12H,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,IAAG,EAAG,IAAK,cAAc,IAAIs0B,EAAEt0B,EAAE2kI,UAAkD,OAAxCN,GAAGn8G,IAAIoM,EAAEswG,GAAGP,GAAGtiH,IAAIuS,IAAI,KAAK5mB,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,KAAU,EAAG,IAAK,oBAAoB,OAAOs0B,EAAEt0B,EAAE2kI,UAAUL,GAAGp8G,IAAIoM,EAAEswG,GAAGN,GAAGviH,IAAIuS,IAAI,KAAK5mB,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,KAAI,EAAG,OAAM,CAAE,CAM1QmmI,CAAGnmI,EAAE0N,EAAElU,EAAE8Q,EAAEgY,GAAGA,EAAE8jH,uBAAuB,GAAG3B,GAAG/2H,EAAE4U,GAAK,EAAF9oB,IAAM,EAAEgrI,GAAGn8H,QAAQqF,GAAG,CAAC,KAAK,OAAO1N,GAAG,CAAC,IAAIs0B,EAAE+qG,GAAGr/H,GAA0D,GAAvD,OAAOs0B,GAAGqvG,GAAGrvG,GAAiB,QAAdA,EAAEkxG,GAAG93H,EAAElU,EAAE8Q,EAAEgY,KAAasxD,GAAGlmE,EAAElU,EAAE8oB,EAAEgT,GAAGhrB,GAAMgqB,IAAIt0B,EAAE,MAAMA,EAAEs0B,CAAC,CAAC,OAAOt0B,GAAGsiB,EAAE8jH,iBAAiB,MAAMxyD,GAAGlmE,EAAElU,EAAE8oB,EAAE,KAAKhY,EAAE,CAAC,CAAC,IAAIgrB,GAAG,KACpU,SAASkwG,GAAG93H,EAAElU,EAAE8Q,EAAEgY,GAA2B,GAAxBgT,GAAG,KAAwB,QAAX5nB,EAAEy3H,GAAVz3H,EAAEoxH,GAAGx8G,KAAuB,GAAW,QAAR9oB,EAAEgnI,GAAG9yH,IAAYA,EAAE,UAAU,GAAW,MAARpD,EAAE9Q,EAAEoI,KAAW,CAAS,GAAG,QAAX8L,EAAEizH,GAAGnnI,IAAe,OAAOkU,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAIpD,EAAE,CAAC,GAAG9Q,EAAE8lI,UAAU/9G,QAAQq/G,cAAcyE,aAAa,OAAO,IAAI7rI,EAAEoI,IAAIpI,EAAE8lI,UAAUgG,cAAc,KAAK53H,EAAE,IAAI,MAAMlU,IAAIkU,IAAIA,EAAE,MAAW,OAAL4nB,GAAG5nB,EAAS,IAAI,CAC7S,SAAS24H,GAAG34H,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAOm0H,MAAM,KAAK7mD,GAAG,OAAO,EAAE,KAAKgnD,GAAG,OAAO,EAAE,KAAKE,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,GAAG,CAAC,IAAIgE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAI94H,EAAkB4U,EAAhB9oB,EAAE+sI,GAAGj8H,EAAE9Q,EAAEQ,OAASgG,EAAE,UAAUsmI,GAAGA,GAAG7jI,MAAM6jI,GAAGhjE,YAAYhvC,EAAEt0B,EAAEhG,OAAO,IAAI0T,EAAE,EAAEA,EAAEpD,GAAG9Q,EAAEkU,KAAK1N,EAAE0N,GAAGA,KAAK,IAAI0O,EAAE9R,EAAEoD,EAAE,IAAI4U,EAAE,EAAEA,GAAGlG,GAAG5iB,EAAE8Q,EAAEgY,KAAKtiB,EAAEs0B,EAAEhS,GAAGA,KAAK,OAAOkkH,GAAGxmI,EAAE4D,MAAM8J,EAAE,EAAE4U,EAAE,EAAEA,OAAE,EAAO,CACxY,SAASokH,GAAGh5H,GAAG,IAAIlU,EAAEkU,EAAEi5H,QAA+E,MAAvE,aAAaj5H,EAAgB,KAAbA,EAAEA,EAAEm3D,WAAgB,KAAKrrE,IAAIkU,EAAE,IAAKA,EAAElU,EAAE,KAAKkU,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASk5H,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CAC5K,SAAShnE,GAAGnyD,GAAG,SAASlU,EAAEA,EAAE8oB,EAAEtiB,EAAEs0B,EAAElY,GAA6G,IAAI,IAAI9R,KAAlHT,KAAKi9H,WAAWttI,EAAEqQ,KAAKk9H,YAAY/mI,EAAE6J,KAAKwd,KAAK/E,EAAEzY,KAAKg7H,YAAYvwG,EAAEzqB,KAAKsY,OAAO/F,EAAEvS,KAAKm9H,cAAc,KAAkBt5H,EAAEA,EAAEhM,eAAe4I,KAAK9Q,EAAEkU,EAAEpD,GAAGT,KAAKS,GAAG9Q,EAAEA,EAAE86B,GAAGA,EAAEhqB,IAAgI,OAA5HT,KAAKo9H,oBAAoB,MAAM3yG,EAAE4yG,iBAAiB5yG,EAAE4yG,kBAAiB,IAAK5yG,EAAE6yG,aAAaP,GAAGC,GAAGh9H,KAAKu9H,qBAAqBP,GAAUh9H,IAAI,CAC9E,OAD+EmS,EAAExiB,EAAEuB,UAAU,CAACg6H,eAAe,WAAWlrH,KAAKq9H,kBAAiB,EAAG,IAAIx5H,EAAE7D,KAAKg7H,YAAYn3H,IAAIA,EAAEqnH,eAAernH,EAAEqnH,iBAAiB,mBAAmBrnH,EAAEy5H,cAC7ez5H,EAAEy5H,aAAY,GAAIt9H,KAAKo9H,mBAAmBL,GAAG,EAAER,gBAAgB,WAAW,IAAI14H,EAAE7D,KAAKg7H,YAAYn3H,IAAIA,EAAE04H,gBAAgB14H,EAAE04H,kBAAkB,mBAAmB14H,EAAE25H,eAAe35H,EAAE25H,cAAa,GAAIx9H,KAAKu9H,qBAAqBR,GAAG,EAAEU,QAAQ,WAAW,EAAEC,aAAaX,KAAYptI,CAAC,CACjR,IAAoLguI,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAASr6H,GAAG,OAAOA,EAAEq6H,WAAW5jE,KAAKC,KAAK,EAAE8iE,iBAAiB,EAAE3c,UAAU,GAAGh3C,GAAG1T,GAAG8nE,IAAIK,GAAGhsH,EAAE,CAAC,EAAE2rH,GAAG,CAACl+B,KAAK,EAAEw+B,OAAO,IAAIC,GAAGroE,GAAGmoE,IAAaG,GAAGnsH,EAAE,CAAC,EAAEgsH,GAAG,CAACI,QAAQ,EAAEC,QAAQ,EAAEjrG,QAAQ,EAAEC,QAAQ,EAAEirG,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAASt7H,GAAG,YAAO,IAASA,EAAEs7H,cAAct7H,EAAEu7H,cAAcv7H,EAAEqxH,WAAWrxH,EAAEw7H,UAAUx7H,EAAEu7H,YAAYv7H,EAAEs7H,aAAa,EAAEG,UAAU,SAASz7H,GAAG,MAAG,cAC3eA,EAASA,EAAEy7H,WAAUz7H,IAAIg6H,KAAKA,IAAI,cAAch6H,EAAE2Z,MAAMmgH,GAAG95H,EAAE06H,QAAQV,GAAGU,QAAQX,GAAG/5H,EAAE26H,QAAQX,GAAGW,SAASZ,GAAGD,GAAG,EAAEE,GAAGh6H,GAAU85H,GAAE,EAAE4B,UAAU,SAAS17H,GAAG,MAAM,cAAcA,EAAEA,EAAE07H,UAAU3B,EAAE,IAAI4B,GAAGxpE,GAAGsoE,IAAiCmB,GAAGzpE,GAA7B7jD,EAAE,CAAC,EAAEmsH,GAAG,CAACoB,aAAa,KAA4CC,GAAG3pE,GAA9B7jD,EAAE,CAAC,EAAEgsH,GAAG,CAACgB,cAAc,KAA0ES,GAAG5pE,GAA5D7jD,EAAE,CAAC,EAAE2rH,GAAG,CAAC+B,cAAc,EAAE9xF,YAAY,EAAE+xF,cAAc,KAAcC,GAAG5tH,EAAE,CAAC,EAAE2rH,GAAG,CAACkC,cAAc,SAASn8H,GAAG,MAAM,kBAAkBA,EAAEA,EAAEm8H,cAAc1/H,OAAO0/H,aAAa,IAAIC,GAAGjqE,GAAG+pE,IAAyBG,GAAGlqE,GAArB7jD,EAAE,CAAC,EAAE2rH,GAAG,CAAC59G,KAAK,KAAcigH,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGz9H,GAAG,IAAIlU,EAAEqQ,KAAKg7H,YAAY,OAAOrrI,EAAEovI,iBAAiBpvI,EAAEovI,iBAAiBl7H,MAAIA,EAAEo9H,GAAGp9H,OAAMlU,EAAEkU,EAAK,CAAC,SAASm7H,KAAK,OAAOsC,EAAE,CAChS,IAAIC,GAAGpvH,EAAE,CAAC,EAAEgsH,GAAG,CAAC5lH,IAAI,SAAS1U,GAAG,GAAGA,EAAE0U,IAAI,CAAC,IAAI5oB,EAAEwwI,GAAGt8H,EAAE0U,MAAM1U,EAAE0U,IAAI,GAAG,iBAAiB5oB,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAakU,EAAE2Z,KAAc,MAAR3Z,EAAEg5H,GAAGh5H,IAAU,QAAQzJ,OAAOkpB,aAAazf,GAAI,YAAYA,EAAE2Z,MAAM,UAAU3Z,EAAE2Z,KAAKwjH,GAAGn9H,EAAEi5H,UAAU,eAAe,EAAE,EAAEv+H,KAAK,EAAE2jC,SAAS,EAAEy8F,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEjiI,OAAO,EAAE2kI,OAAO,EAAEzC,iBAAiBC,GAAGhkE,SAAS,SAASn3D,GAAG,MAAM,aAAaA,EAAE2Z,KAAKq/G,GAAGh5H,GAAG,CAAC,EAAEi5H,QAAQ,SAASj5H,GAAG,MAAM,YAAYA,EAAE2Z,MAAM,UAAU3Z,EAAE2Z,KAAK3Z,EAAEi5H,QAAQ,CAAC,EAAE2E,MAAM,SAAS59H,GAAG,MAAM,aAC7eA,EAAE2Z,KAAKq/G,GAAGh5H,GAAG,YAAYA,EAAE2Z,MAAM,UAAU3Z,EAAE2Z,KAAK3Z,EAAEi5H,QAAQ,CAAC,IAAI4E,GAAG1rE,GAAGurE,IAAiII,GAAG3rE,GAA7H7jD,EAAE,CAAC,EAAEmsH,GAAG,CAACxD,UAAU,EAAE77H,MAAM,EAAEsyB,OAAO,EAAEqwG,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGnsE,GAArH7jD,EAAE,CAAC,EAAEgsH,GAAG,CAACiE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAEzD,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0EuD,GAAGvsE,GAA3D7jD,EAAE,CAAC,EAAE2rH,GAAG,CAACh/B,aAAa,EAAE/wD,YAAY,EAAE+xF,cAAc,KAAc0C,GAAGrwH,EAAE,CAAC,EAAEmsH,GAAG,CAACnd,OAAO,SAASt9G,GAAG,MAAM,WAAWA,EAAEA,EAAEs9G,OAAO,gBAAgBt9G,GAAGA,EAAE4+H,YAAY,CAAC,EACnfC,OAAO,SAAS7+H,GAAG,MAAM,WAAWA,EAAEA,EAAE6+H,OAAO,gBAAgB7+H,GAAGA,EAAE8+H,YAAY,eAAe9+H,GAAGA,EAAE++H,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAG/sE,GAAGwsE,IAAIQ,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGjX,GAAI,qBAAqB1rH,OAAO4iI,GAAG,KAAKlX,GAAI,iBAAiBn5F,WAAWqwG,GAAGrwG,SAASswG,cAAc,IAAIC,GAAGpX,GAAI,cAAc1rH,SAAS4iI,GAAGG,GAAGrX,KAAMiX,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAGlpI,OAAOkpB,aAAa,IAAIigH,IAAG,EAC1W,SAASC,GAAG3/H,EAAElU,GAAG,OAAOkU,GAAG,IAAK,QAAQ,OAAO,IAAIm/H,GAAGxkI,QAAQ7O,EAAEmtI,SAAS,IAAK,UAAU,OAAO,MAAMntI,EAAEmtI,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAAS2G,GAAG5/H,GAAc,MAAM,kBAAjBA,EAAEA,EAAEu6H,SAAkC,SAASv6H,EAAEA,EAAEqc,KAAK,IAAI,CAAC,IAAIpS,IAAG,EAE9Q,IAAI41H,GAAG,CAAC1oG,OAAM,EAAG2oG,MAAK,EAAGC,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGlkI,QAAO,EAAGmkI,UAAS,EAAGl7G,OAAM,EAAGm7G,QAAO,EAAGC,KAAI,EAAGnqE,MAAK,EAAGxzB,MAAK,EAAGtJ,KAAI,EAAGknG,MAAK,GAAI,SAAS/xC,GAAGtuF,GAAG,IAAIlU,EAAEkU,GAAGA,EAAEorH,UAAUprH,EAAEorH,SAASvuG,cAAc,MAAM,UAAU/wB,IAAI+zI,GAAG7/H,EAAE2Z,MAAM,aAAa7tB,CAAO,CAAC,SAASmoF,GAAGj0E,EAAElU,EAAE8Q,EAAEgY,GAAGk9G,GAAGl9G,GAAsB,GAAnB9oB,EAAEw0I,GAAGx0I,EAAE,aAAgBQ,SAASsQ,EAAE,IAAIipE,GAAG,WAAW,SAAS,KAAKjpE,EAAEgY,GAAG5U,EAAErO,KAAK,CAACqsC,MAAMphC,EAAE6vB,UAAU3gC,IAAI,CAAC,IAAIw2F,GAAG,KAAKi+C,GAAG,KAAK,SAASv2H,GAAGhK,GAAGwgI,GAAGxgI,EAAE,EAAE,CAAC,SAASygI,GAAGzgI,GAAe,GAAG0rH,EAATgV,GAAG1gI,IAAY,OAAOA,CAAC,CACpe,SAAS2gI,GAAG3gI,EAAElU,GAAG,GAAG,WAAWkU,EAAE,OAAOlU,CAAC,CAAC,IAAI80I,IAAG,EAAG,GAAGzY,EAAG,CAAC,IAAIn0C,GAAG,GAAGm0C,EAAG,CAAC,IAAI0Y,GAAG,YAAY7xG,SAAS,IAAI6xG,GAAG,CAAC,IAAIC,GAAG9xG,SAAS9B,cAAc,OAAO4zG,GAAGr2F,aAAa,UAAU,WAAWo2F,GAAG,oBAAoBC,GAAGC,OAAO,CAAC/sD,GAAG6sD,EAAE,MAAM7sD,IAAG,EAAG4sD,GAAG5sD,MAAMhlD,SAASswG,cAAc,EAAEtwG,SAASswG,aAAa,CAAC,SAAS0B,KAAK1+C,KAAKA,GAAG2+C,YAAY,mBAAmBC,IAAIX,GAAGj+C,GAAG,KAAK,CAAC,SAAS4+C,GAAGlhI,GAAG,GAAG,UAAUA,EAAEi7F,cAAcwlC,GAAGF,IAAI,CAAC,IAAIz0I,EAAE,GAAGmoF,GAAGnoF,EAAEy0I,GAAGvgI,EAAEoxH,GAAGpxH,IAAImyH,GAAGnoH,GAAGle,EAAE,CAAC,CAC/b,SAASq1I,GAAGnhI,EAAElU,EAAE8Q,GAAG,YAAYoD,GAAGghI,KAAUT,GAAG3jI,GAAR0lF,GAAGx2F,GAAUs1I,YAAY,mBAAmBF,KAAK,aAAalhI,GAAGghI,IAAI,CAAC,SAASK,GAAGrhI,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOygI,GAAGF,GAAG,CAAC,SAASe,GAAGthI,EAAElU,GAAG,GAAG,UAAUkU,EAAE,OAAOygI,GAAG30I,EAAE,CAAC,SAASy1I,GAAGvhI,EAAElU,GAAG,GAAG,UAAUkU,GAAG,WAAWA,EAAE,OAAOygI,GAAG30I,EAAE,CAAiE,IAAI01I,GAAG,oBAAoBr0I,OAAOiwD,GAAGjwD,OAAOiwD,GAA5G,SAAYp9C,EAAElU,GAAG,OAAOkU,IAAIlU,IAAI,IAAIkU,GAAG,EAAEA,IAAI,EAAElU,IAAIkU,IAAIA,GAAGlU,IAAIA,CAAC,EACtW,SAAS21I,GAAGzhI,EAAElU,GAAG,GAAG01I,GAAGxhI,EAAElU,GAAG,OAAM,EAAG,GAAG,kBAAkBkU,GAAG,OAAOA,GAAG,kBAAkBlU,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI8Q,EAAEzP,OAAOg1C,KAAKniC,GAAG4U,EAAEznB,OAAOg1C,KAAKr2C,GAAG,GAAG8Q,EAAEtQ,SAASsoB,EAAEtoB,OAAO,OAAM,EAAG,IAAIsoB,EAAE,EAAEA,EAAEhY,EAAEtQ,OAAOsoB,IAAI,CAAC,IAAItiB,EAAEsK,EAAEgY,GAAG,IAAIwzG,EAAGn0H,KAAKnI,EAAEwG,KAAKkvI,GAAGxhI,EAAE1N,GAAGxG,EAAEwG,IAAI,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,SAASovI,GAAG1hI,GAAG,KAAKA,GAAGA,EAAEkmH,YAAYlmH,EAAEA,EAAEkmH,WAAW,OAAOlmH,CAAC,CACtU,SAAS2hI,GAAG3hI,EAAElU,GAAG,IAAwB8oB,EAApBhY,EAAE8kI,GAAG1hI,GAAO,IAAJA,EAAE,EAAYpD,GAAG,CAAC,GAAG,IAAIA,EAAE8wH,SAAS,CAA0B,GAAzB94G,EAAE5U,EAAEpD,EAAEg5D,YAAYtpE,OAAU0T,GAAGlU,GAAG8oB,GAAG9oB,EAAE,MAAM,CAAC4oE,KAAK93D,EAAE7P,OAAOjB,EAAEkU,GAAGA,EAAE4U,CAAC,CAAC5U,EAAE,CAAC,KAAKpD,GAAG,CAAC,GAAGA,EAAEglI,YAAY,CAAChlI,EAAEA,EAAEglI,YAAY,MAAM5hI,CAAC,CAACpD,EAAEA,EAAE43D,UAAU,CAAC53D,OAAE,CAAM,CAACA,EAAE8kI,GAAG9kI,EAAE,CAAC,CAAC,SAASilI,GAAG7hI,EAAElU,GAAG,SAAOkU,IAAGlU,KAAEkU,IAAIlU,KAAKkU,GAAG,IAAIA,EAAE0tH,YAAY5hI,GAAG,IAAIA,EAAE4hI,SAASmU,GAAG7hI,EAAElU,EAAE0oE,YAAY,aAAax0D,EAAEA,EAAEyuG,SAAS3iH,KAAGkU,EAAE8hI,4BAAwD,GAA7B9hI,EAAE8hI,wBAAwBh2I,KAAY,CAC9Z,SAASi2I,KAAK,IAAI,IAAI/hI,EAAEvD,OAAO3Q,EAAE6/H,IAAK7/H,aAAakU,EAAEgiI,mBAAmB,CAAC,IAAI,IAAIplI,EAAE,kBAAkB9Q,EAAEm2I,cAAc5jG,SAASwlB,IAAI,CAAC,MAAMjvC,GAAGhY,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAM9Q,EAAE6/H,GAA/B3rH,EAAElU,EAAEm2I,eAAgCjzG,SAAS,CAAC,OAAOljC,CAAC,CAAC,SAASo2I,GAAGliI,GAAG,IAAIlU,EAAEkU,GAAGA,EAAEorH,UAAUprH,EAAEorH,SAASvuG,cAAc,OAAO/wB,IAAI,UAAUA,IAAI,SAASkU,EAAE2Z,MAAM,WAAW3Z,EAAE2Z,MAAM,QAAQ3Z,EAAE2Z,MAAM,QAAQ3Z,EAAE2Z,MAAM,aAAa3Z,EAAE2Z,OAAO,aAAa7tB,GAAG,SAASkU,EAAEmiI,gBAAgB,CACxa,SAASC,GAAGpiI,GAAG,IAAIlU,EAAEi2I,KAAKnlI,EAAEoD,EAAEqiI,YAAYztH,EAAE5U,EAAEsiI,eAAe,GAAGx2I,IAAI8Q,GAAGA,GAAGA,EAAE4vH,eAAeqV,GAAGjlI,EAAE4vH,cAAc+V,gBAAgB3lI,GAAG,CAAC,GAAG,OAAOgY,GAAGstH,GAAGtlI,GAAG,GAAG9Q,EAAE8oB,EAAE9e,WAAc,KAARkK,EAAE4U,EAAEha,OAAiBoF,EAAElU,GAAG,mBAAmB8Q,EAAEA,EAAE4lI,eAAe12I,EAAE8Q,EAAE6lI,aAAap0I,KAAK6O,IAAI8C,EAAEpD,EAAE7H,MAAMzI,aAAa,IAAG0T,GAAGlU,EAAE8Q,EAAE4vH,eAAex9F,WAAWljC,EAAE42I,aAAajmI,QAASkmI,aAAa,CAAC3iI,EAAEA,EAAE2iI,eAAe,IAAIrwI,EAAEsK,EAAEg5D,YAAYtpE,OAAOs6B,EAAEv4B,KAAK6O,IAAI0X,EAAE9e,MAAMxD,GAAGsiB,OAAE,IAASA,EAAEha,IAAIgsB,EAAEv4B,KAAK6O,IAAI0X,EAAEha,IAAItI,IAAI0N,EAAE4iI,QAAQh8G,EAAEhS,IAAItiB,EAAEsiB,EAAEA,EAAEgS,EAAEA,EAAEt0B,GAAGA,EAAEqvI,GAAG/kI,EAAEgqB,GAAG,IAAIlY,EAAEizH,GAAG/kI,EACvfgY,GAAGtiB,GAAGoc,IAAI,IAAI1O,EAAE6iI,YAAY7iI,EAAE8iI,aAAaxwI,EAAEoiE,MAAM10D,EAAE+iI,eAAezwI,EAAEvF,QAAQiT,EAAEgjI,YAAYt0H,EAAEgmD,MAAM10D,EAAEijI,cAAcv0H,EAAE3hB,WAAUjB,EAAEA,EAAEo3I,eAAgBC,SAAS7wI,EAAEoiE,KAAKpiE,EAAEvF,QAAQiT,EAAEojI,kBAAkBx8G,EAAEhS,GAAG5U,EAAEqjI,SAASv3I,GAAGkU,EAAE4iI,OAAOl0H,EAAEgmD,KAAKhmD,EAAE3hB,UAAUjB,EAAEw3I,OAAO50H,EAAEgmD,KAAKhmD,EAAE3hB,QAAQiT,EAAEqjI,SAASv3I,IAAI,CAAM,IAALA,EAAE,GAAOkU,EAAEpD,EAAEoD,EAAEA,EAAEw0D,YAAY,IAAIx0D,EAAE0tH,UAAU5hI,EAAE6F,KAAK,CAAC2jC,QAAQt1B,EAAE3C,KAAK2C,EAAEujI,WAAW91G,IAAIztB,EAAEwjI,YAAmD,IAAvC,oBAAoB5mI,EAAE6mI,OAAO7mI,EAAE6mI,QAAY7mI,EAAE,EAAEA,EAAE9Q,EAAEQ,OAAOsQ,KAAIoD,EAAElU,EAAE8Q,IAAK04B,QAAQiuG,WAAWvjI,EAAE3C,KAAK2C,EAAEs1B,QAAQkuG,UAAUxjI,EAAEytB,GAAG,CAAC,CACzf,IAAIi2G,GAAGvb,GAAI,iBAAiBn5F,UAAU,IAAIA,SAASswG,aAAaqE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAG/jI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAEhY,EAAEH,SAASG,EAAEA,EAAEoyB,SAAS,IAAIpyB,EAAE8wH,SAAS9wH,EAAEA,EAAE4vH,cAAcsX,IAAI,MAAMH,IAAIA,KAAKhY,EAAG/2G,KAAU,mBAALA,EAAE+uH,KAAyBzB,GAAGttH,GAAGA,EAAE,CAAC9e,MAAM8e,EAAE4tH,eAAe5nI,IAAIga,EAAE6tH,cAAuF7tH,EAAE,CAACkuH,YAA3EluH,GAAGA,EAAE43G,eAAe53G,EAAE43G,cAAckW,aAAajmI,QAAQkmI,gBAA+BG,WAAWC,aAAanuH,EAAEmuH,aAAaC,UAAUpuH,EAAEouH,UAAUC,YAAYruH,EAAEquH,aAAcY,IAAIpC,GAAGoC,GAAGjvH,KAAKivH,GAAGjvH,EAAsB,GAApBA,EAAE0rH,GAAGsD,GAAG,aAAgBt3I,SAASR,EAAE,IAAI+5E,GAAG,WAAW,SAAS,KAAK/5E,EAAE8Q,GAAGoD,EAAErO,KAAK,CAACqsC,MAAMlyC,EAAE2gC,UAAU7X,IAAI9oB,EAAE2oB,OAAOkvH,KAAK,CACtf,SAASK,GAAGhkI,EAAElU,GAAG,IAAI8Q,EAAE,CAAC,EAAiF,OAA/EA,EAAEoD,EAAE6c,eAAe/wB,EAAE+wB,cAAcjgB,EAAE,SAASoD,GAAG,SAASlU,EAAE8Q,EAAE,MAAMoD,GAAG,MAAMlU,EAAS8Q,CAAC,CAAC,IAAIqnI,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAGxkI,GAAG,GAAGskI,GAAGtkI,GAAG,OAAOskI,GAAGtkI,GAAG,IAAIikI,GAAGjkI,GAAG,OAAOA,EAAE,IAAYpD,EAAR9Q,EAAEm4I,GAAGjkI,GAAK,IAAIpD,KAAK9Q,EAAE,GAAGA,EAAEkI,eAAe4I,IAAIA,KAAK2nI,GAAG,OAAOD,GAAGtkI,GAAGlU,EAAE8Q,GAAG,OAAOoD,CAAC,CAA/XmoH,IAAKoc,GAAGv1G,SAAS9B,cAAc,OAAOrE,MAAM,mBAAmBpsB,gBAAgBwnI,GAAGC,aAAanmG,iBAAiBkmG,GAAGE,mBAAmBpmG,iBAAiBkmG,GAAGG,eAAermG,WAAW,oBAAoBthC,eAAewnI,GAAGI,cAAc5lB,YAAwJ,IAAIgmB,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBpvI,GAAGovI,GAAG,kBAAkBG,GAAGH,GAAG,iBAAiBI,GAAG,IAAIrqH,IAAI+gD,GAAG,smBAAsmBvrE,MAAM,KAC/lC,SAAS80I,GAAG7kI,EAAElU,GAAG84I,GAAGpqH,IAAIxa,EAAElU,GAAGm8H,EAAGn8H,EAAE,CAACkU,GAAG,CAAC,IAAI,IAAI4qE,GAAG,EAAEA,GAAGtP,GAAGhvE,OAAOs+E,KAAK,CAAC,IAAIk6D,GAAGxpE,GAAGsP,IAA2Di6D,GAApDC,GAAGjoH,cAAuD,MAAtCioH,GAAG,GAAG1rH,cAAc0rH,GAAG5uI,MAAM,IAAiB,CAAC2uI,GAAGJ,GAAG,kBAAkBI,GAAGH,GAAG,wBAAwBG,GAAGzvI,GAAG,oBAAoByvI,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAGF,GAAG,mBAAmBzc,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoEl4H,MAAM,MAAMk4H,EAAG,WAAW,uFAAuFl4H,MAAM,MAAMk4H,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2Dl4H,MAAM,MAAMk4H,EAAG,qBAAqB,6DAA6Dl4H,MAAM,MAC/fk4H,EAAG,sBAAsB,8DAA8Dl4H,MAAM,MAAM,IAAIg1I,GAAG,6NAA6Nh1I,MAAM,KAAKi1I,GAAG,IAAIjd,IAAI,0CAA0Ch4H,MAAM,KAAK6mB,OAAOmuH,KACzZ,SAASE,GAAGjlI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAE2Z,MAAM,gBAAgB3Z,EAAEs5H,cAAc18H,EAlDjE,SAAYoD,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,EAAEpC,EAAErM,GAA4B,GAAzB4yH,GAAGx6G,MAAMlc,KAAKlO,WAAcukI,GAAG,CAAC,IAAGA,GAAgC,MAAM1kI,MAAM+b,EAAE,MAA1C,IAAIhB,EAAE4pH,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAG9pH,EAAE,CAAC,CAkDpEq8H,CAAGtwH,EAAE9oB,OAAE,EAAOkU,GAAGA,EAAEs5H,cAAc,IAAI,CACxG,SAASkH,GAAGxgI,EAAElU,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAI8Q,EAAE,EAAEA,EAAEoD,EAAE1T,OAAOsQ,IAAI,CAAC,IAAIgY,EAAE5U,EAAEpD,GAAGtK,EAAEsiB,EAAEopB,MAAMppB,EAAEA,EAAE6X,UAAUzsB,EAAE,CAAC,IAAI4mB,OAAE,EAAO,GAAG96B,EAAE,IAAI,IAAI4iB,EAAEkG,EAAEtoB,OAAO,EAAE,GAAGoiB,EAAEA,IAAI,CAAC,IAAIpC,EAAEsI,EAAElG,GAAGzO,EAAEqM,EAAE64H,SAASt8H,EAAEyD,EAAEgtH,cAA2B,GAAbhtH,EAAEA,EAAEqgB,SAAY1sB,IAAI2mB,GAAGt0B,EAAEonI,uBAAuB,MAAM15H,EAAEilI,GAAG3yI,EAAEga,EAAEzD,GAAG+d,EAAE3mB,CAAC,MAAM,IAAIyO,EAAE,EAAEA,EAAEkG,EAAEtoB,OAAOoiB,IAAI,CAAoD,GAA5CzO,GAAPqM,EAAEsI,EAAElG,IAAOy2H,SAASt8H,EAAEyD,EAAEgtH,cAAchtH,EAAEA,EAAEqgB,SAAY1sB,IAAI2mB,GAAGt0B,EAAEonI,uBAAuB,MAAM15H,EAAEilI,GAAG3yI,EAAEga,EAAEzD,GAAG+d,EAAE3mB,CAAC,CAAC,CAAC,CAAC,GAAGyyH,GAAG,MAAM1yH,EAAE2yH,GAAGD,IAAG,EAAGC,GAAG,KAAK3yH,CAAE,CAC5a,SAASyO,GAAEzO,EAAElU,GAAG,IAAI8Q,EAAE9Q,EAAEo/E,SAAI,IAAStuE,IAAIA,EAAE9Q,EAAEo/E,IAAI,IAAI68C,KAAK,IAAInzG,EAAE5U,EAAE,WAAWpD,EAAEwoI,IAAIxwH,KAAKywH,GAAGv5I,EAAEkU,EAAE,GAAE,GAAIpD,EAAEoG,IAAI4R,GAAG,CAAC,SAAS0wH,GAAGtlI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE,EAAE9oB,IAAI8oB,GAAG,GAAGywH,GAAGzoI,EAAEoD,EAAE4U,EAAE9oB,EAAE,CAAC,IAAIy5I,GAAG,kBAAkBl3I,KAAKymC,SAASz+B,SAAS,IAAIH,MAAM,GAAG,SAASsvI,GAAGxlI,GAAG,IAAIA,EAAEulI,IAAI,CAACvlI,EAAEulI,KAAI,EAAGlhD,EAAGzqE,SAAQ,SAAS9tB,GAAG,oBAAoBA,IAAIk5I,GAAGI,IAAIt5I,IAAIw5I,GAAGx5I,GAAE,EAAGkU,GAAGslI,GAAGx5I,GAAE,EAAGkU,GAAG,IAAG,IAAIlU,EAAE,IAAIkU,EAAE0tH,SAAS1tH,EAAEA,EAAEwsH,cAAc,OAAO1gI,GAAGA,EAAEy5I,MAAMz5I,EAAEy5I,KAAI,EAAGD,GAAG,mBAAkB,EAAGx5I,GAAG,CAAC,CACjb,SAASu5I,GAAGrlI,EAAElU,EAAE8Q,EAAEgY,GAAG,OAAO+jH,GAAG7sI,IAAI,KAAK,EAAE,IAAIwG,EAAEimI,GAAG,MAAM,KAAK,EAAEjmI,EAAEkmI,GAAG,MAAM,QAAQlmI,EAAED,GAAGuK,EAAEtK,EAAEoB,KAAK,KAAK5H,EAAE8Q,EAAEoD,GAAG1N,OAAE,GAAQ+/H,IAAI,eAAevmI,GAAG,cAAcA,GAAG,UAAUA,IAAIwG,GAAE,GAAIsiB,OAAE,IAAStiB,EAAE0N,EAAE6sB,iBAAiB/gC,EAAE8Q,EAAE,CAAC6oI,SAAQ,EAAGC,QAAQpzI,IAAI0N,EAAE6sB,iBAAiB/gC,EAAE8Q,GAAE,QAAI,IAAStK,EAAE0N,EAAE6sB,iBAAiB/gC,EAAE8Q,EAAE,CAAC8oI,QAAQpzI,IAAI0N,EAAE6sB,iBAAiB/gC,EAAE8Q,GAAE,EAAG,CAClV,SAASspE,GAAGlmE,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,IAAIs0B,EAAEhS,EAAE,GAAG,KAAO,EAAF9oB,IAAM,KAAO,EAAFA,IAAM,OAAO8oB,EAAE5U,EAAE,OAAO,CAAC,GAAG,OAAO4U,EAAE,OAAO,IAAIlG,EAAEkG,EAAE1gB,IAAI,GAAG,IAAIwa,GAAG,IAAIA,EAAE,CAAC,IAAIpC,EAAEsI,EAAEg9G,UAAUgG,cAAc,GAAGtrH,IAAIha,GAAG,IAAIga,EAAEohH,UAAUphH,EAAEkoD,aAAaliE,EAAE,MAAM,GAAG,IAAIoc,EAAE,IAAIA,EAAEkG,EAAE0iG,OAAO,OAAO5oG,GAAG,CAAC,IAAIzO,EAAEyO,EAAExa,IAAI,IAAG,IAAI+L,GAAG,IAAIA,MAAKA,EAAEyO,EAAEkjH,UAAUgG,iBAAkBtlI,GAAG,IAAI2N,EAAEytH,UAAUztH,EAAEu0D,aAAaliE,GAAE,OAAOoc,EAAEA,EAAE4oG,MAAM,CAAC,KAAK,OAAOhrG,GAAG,CAAS,GAAG,QAAXoC,EAAE+oH,GAAGnrH,IAAe,OAAe,GAAG,KAAXrM,EAAEyO,EAAExa,MAAc,IAAI+L,EAAE,CAAC2U,EAAEgS,EAAElY,EAAE,SAAS1O,CAAC,CAACsM,EAAEA,EAAEkoD,UAAU,CAAC,CAAC5/C,EAAEA,EAAE0iG,MAAM,CAAC6a,IAAG,WAAW,IAAIv9G,EAAEgS,EAAEt0B,EAAE8+H,GAAGx0H,GAAG8R,EAAE,GACpf1O,EAAE,CAAC,IAAIsM,EAAEs4H,GAAGvwH,IAAIrU,GAAG,QAAG,IAASsM,EAAE,CAAC,IAAIrM,EAAE4lE,GAAGv7D,EAAEtK,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIg5H,GAAGp8H,GAAG,MAAMoD,EAAE,IAAK,UAAU,IAAK,QAAQC,EAAE49H,GAAG,MAAM,IAAK,UAAUvzH,EAAE,QAAQrK,EAAE67H,GAAG,MAAM,IAAK,WAAWxxH,EAAE,OAAOrK,EAAE67H,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY77H,EAAE67H,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIl/H,EAAEw+H,OAAO,MAAMp7H,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcC,EAAE07H,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO17H,EAC1iB27H,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa37H,EAAEq+H,GAAG,MAAM,KAAKmG,GAAG,KAAKC,GAAG,KAAKtvI,GAAG6K,EAAE87H,GAAG,MAAM,KAAK4I,GAAG1kI,EAAEy+H,GAAG,MAAM,IAAK,SAASz+H,EAAEu6H,GAAG,MAAM,IAAK,QAAQv6H,EAAEi/H,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQj/H,EAAEm8H,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYn8H,EAAE69H,GAAG,IAAIh9H,EAAE,KAAO,EAAFhV,GAAK65I,GAAG7kI,GAAG,WAAWd,EAAE7I,EAAE2J,EAAE,OAAOwL,EAAEA,EAAE,UAAU,KAAKA,EAAExL,EAAE,GAAG,IAAI,IAAQkT,EAAJjW,EAAE6W,EAAI,OAC/e7W,GAAG,CAAK,IAAI6nI,GAAR5xH,EAAEjW,GAAU6zH,UAAsF,GAA5E,IAAI59G,EAAE9f,KAAK,OAAO0xI,IAAI5xH,EAAE4xH,EAAE,OAAOzuI,IAAc,OAAVyuI,EAAExT,GAAGr0H,EAAE5G,KAAY2J,EAAEnP,KAAKk0I,GAAG9nI,EAAE6nI,EAAE5xH,MAAS2xH,EAAE,MAAM5nI,EAAEA,EAAEu5G,MAAM,CAAC,EAAEx2G,EAAExU,SAASggB,EAAE,IAAIrM,EAAEqM,EAAEhC,EAAE,KAAK1N,EAAEtK,GAAGoc,EAAE/c,KAAK,CAACqsC,MAAM1xB,EAAEmgB,UAAU3rB,IAAI,CAAC,CAAC,GAAG,KAAO,EAAFhV,GAAK,CAA4E,GAAnCmU,EAAE,aAAaD,GAAG,eAAeA,KAAtEsM,EAAE,cAActM,GAAG,gBAAgBA,IAA2CpD,IAAIu0H,MAAK7mH,EAAE1N,EAAE0+H,eAAe1+H,EAAE2+H,eAAe9D,GAAGntH,KAAIA,EAAEw7H,OAAgB7lI,GAAGqM,KAAGA,EAAEha,EAAEmK,SAASnK,EAAEA,GAAGga,EAAEha,EAAEk6H,eAAelgH,EAAEo2H,aAAap2H,EAAEy5H,aAAatpI,OAAUwD,GAAqCA,EAAE2U,EAAiB,QAAftK,GAAnCA,EAAE1N,EAAE0+H,eAAe1+H,EAAE4+H,WAAkB/D,GAAGntH,GAAG,QAC9dA,KAARq7H,EAAE7S,GAAGxoH,KAAU,IAAIA,EAAEpW,KAAK,IAAIoW,EAAEpW,OAAKoW,EAAE,QAAUrK,EAAE,KAAKqK,EAAEsK,GAAK3U,IAAIqK,GAAE,CAAgU,GAA/TxJ,EAAE66H,GAAGiK,EAAE,eAAezuI,EAAE,eAAe4G,EAAE,QAAW,eAAeiC,GAAG,gBAAgBA,IAAEc,EAAEg9H,GAAG8H,EAAE,iBAAiBzuI,EAAE,iBAAiB4G,EAAE,WAAU4nI,EAAE,MAAM1lI,EAAEqM,EAAEo0H,GAAGzgI,GAAG+T,EAAE,MAAM1J,EAAEgC,EAAEo0H,GAAGp2H,IAAGgC,EAAE,IAAIxL,EAAE8kI,EAAE7nI,EAAE,QAAQkC,EAAErD,EAAEtK,IAAKmiB,OAAOkxH,EAAEr5H,EAAEgvH,cAActnH,EAAE4xH,EAAE,KAAKnO,GAAGnlI,KAAKsiB,KAAI9T,EAAE,IAAIA,EAAE3J,EAAE4G,EAAE,QAAQuM,EAAE1N,EAAEtK,IAAKmiB,OAAOT,EAAElT,EAAEw6H,cAAcqK,EAAEC,EAAE9kI,GAAG6kI,EAAEC,EAAK3lI,GAAGqK,EAAExe,EAAE,CAAa,IAARqL,EAAEmT,EAAEvM,EAAE,EAAMiW,EAAhBlT,EAAEb,EAAkB+T,EAAEA,EAAEgyH,GAAGhyH,GAAGjW,IAAQ,IAAJiW,EAAE,EAAM4xH,EAAEzuI,EAAEyuI,EAAEA,EAAEI,GAAGJ,GAAG5xH,IAAI,KAAK,EAAEjW,EAAEiW,GAAGlT,EAAEklI,GAAGllI,GAAG/C,IAAI,KAAK,EAAEiW,EAAEjW,GAAG5G,EACpf6uI,GAAG7uI,GAAG6c,IAAI,KAAKjW,KAAK,CAAC,GAAG+C,IAAI3J,GAAG,OAAOA,GAAG2J,IAAI3J,EAAE47H,UAAU,MAAMjnI,EAAEgV,EAAEklI,GAAGllI,GAAG3J,EAAE6uI,GAAG7uI,EAAE,CAAC2J,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAOb,GAAGgmI,GAAGv3H,EAAEpC,EAAErM,EAAEa,GAAE,GAAI,OAAOwJ,GAAG,OAAOq7H,GAAGM,GAAGv3H,EAAEi3H,EAAEr7H,EAAExJ,GAAE,EAAG,CAA8D,GAAG,YAA1Cb,GAAjBqM,EAAEsI,EAAE8rH,GAAG9rH,GAAGnY,QAAW2uH,UAAU9+G,EAAE8+G,SAASvuG,gBAA+B,UAAU5c,GAAG,SAASqM,EAAEqN,KAAK,IAAIusH,EAAGvF,QAAQ,GAAGryC,GAAGhiF,GAAG,GAAGs0H,GAAGsF,EAAG3E,OAAO,CAAC2E,EAAG7E,GAAG,IAAI8E,EAAGhF,EAAE,MAAMlhI,EAAEqM,EAAE8+G,WAAW,UAAUnrH,EAAE4c,gBAAgB,aAAavQ,EAAEqN,MAAM,UAAUrN,EAAEqN,QAAQusH,EAAG5E,IACrV,OAD4V4E,IAAKA,EAAGA,EAAGlmI,EAAE4U,IAAKq/D,GAAGvlE,EAAEw3H,EAAGtpI,EAAEtK,IAAW6zI,GAAIA,EAAGnmI,EAAEsM,EAAEsI,GAAG,aAAa5U,IAAImmI,EAAG75H,EAAE0/G,gBAClfma,EAAG/Z,YAAY,WAAW9/G,EAAEqN,MAAM+mB,GAAGp0B,EAAE,SAASA,EAAEvX,QAAOoxI,EAAGvxH,EAAE8rH,GAAG9rH,GAAGnY,OAAcuD,GAAG,IAAK,WAAasuF,GAAG63C,IAAK,SAASA,EAAGhE,mBAAgBwB,GAAGwC,EAAGvC,GAAGhvH,EAAEivH,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGr1H,EAAE9R,EAAEtK,GAAG,MAAM,IAAK,kBAAkB,GAAGoxI,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGr1H,EAAE9R,EAAEtK,GAAG,IAAI8zI,EAAG,GAAGhH,GAAGtzI,EAAE,CAAC,OAAOkU,GAAG,IAAK,mBAAmB,IAAIqmI,EAAG,qBAAqB,MAAMv6I,EAAE,IAAK,iBAAiBu6I,EAAG,mBACpe,MAAMv6I,EAAE,IAAK,oBAAoBu6I,EAAG,sBAAsB,MAAMv6I,EAAEu6I,OAAG,CAAM,MAAMp8H,GAAG01H,GAAG3/H,EAAEpD,KAAKypI,EAAG,oBAAoB,YAAYrmI,GAAG,MAAMpD,EAAEq8H,UAAUoN,EAAG,sBAAsBA,IAAK7G,IAAI,OAAO5iI,EAAE+gI,SAAS1zH,IAAI,uBAAuBo8H,EAAG,qBAAqBA,GAAIp8H,KAAKm8H,EAAGrN,OAAYF,GAAG,UAARD,GAAGtmI,GAAkBsmI,GAAG7jI,MAAM6jI,GAAGhjE,YAAY3rD,IAAG,IAAiB,GAAZk8H,EAAG7F,GAAG1rH,EAAEyxH,IAAS/5I,SAAS+5I,EAAG,IAAIhK,GAAGgK,EAAGrmI,EAAE,KAAKpD,EAAEtK,GAAGoc,EAAE/c,KAAK,CAACqsC,MAAMqoG,EAAG55G,UAAU05G,IAAKC,EAAGC,EAAGhqH,KAAK+pH,EAAa,QAATA,EAAGxG,GAAGhjI,MAAeypI,EAAGhqH,KAAK+pH,MAAUA,EAAG7G,GA5BhM,SAAYv/H,EAAElU,GAAG,OAAOkU,GAAG,IAAK,iBAAiB,OAAO4/H,GAAG9zI,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAE8xI,MAAa,MAAK8B,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAOz/H,EAAElU,EAAEuwB,QAASojH,IAAIC,GAAG,KAAK1/H,EAAE,QAAQ,OAAO,KAAK,CA4BEsmI,CAAGtmI,EAAEpD,GA3Bzd,SAAYoD,EAAElU,GAAG,GAAGme,GAAG,MAAM,mBAAmBjK,IAAIo/H,IAAIO,GAAG3/H,EAAElU,IAAIkU,EAAE+4H,KAAKD,GAAGD,GAAGD,GAAG,KAAK3uH,IAAG,EAAGjK,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKlU,EAAEgvI,SAAShvI,EAAEkvI,QAAQlvI,EAAEmvI,UAAUnvI,EAAEgvI,SAAShvI,EAAEkvI,OAAO,CAAC,GAAGlvI,EAAEy6I,MAAM,EAAEz6I,EAAEy6I,KAAKj6I,OAAO,OAAOR,EAAEy6I,KAAK,GAAGz6I,EAAE8xI,MAAM,OAAOrnI,OAAOkpB,aAAa3zB,EAAE8xI,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO4B,IAAI,OAAO1zI,EAAE6xI,OAAO,KAAK7xI,EAAEuwB,KAAyB,CA2BqFmqH,CAAGxmI,EAAEpD,MACje,GADoegY,EAAE0rH,GAAG1rH,EAAE,kBACvetoB,SAASgG,EAAE,IAAI+pI,GAAG,gBAAgB,cAAc,KAAKz/H,EAAEtK,GAAGoc,EAAE/c,KAAK,CAACqsC,MAAM1rC,EAAEm6B,UAAU7X,IAAItiB,EAAE+pB,KAAK+pH,GAAG,CAAC5F,GAAG9xH,EAAE5iB,EAAE,GAAE,CAAC,SAAS+5I,GAAG7lI,EAAElU,EAAE8Q,GAAG,MAAM,CAACuoI,SAASnlI,EAAE2sB,SAAS7gC,EAAEwtI,cAAc18H,EAAE,CAAC,SAAS0jI,GAAGtgI,EAAElU,GAAG,IAAI,IAAI8Q,EAAE9Q,EAAE,UAAU8oB,EAAE,GAAG,OAAO5U,GAAG,CAAC,IAAI1N,EAAE0N,EAAE4mB,EAAEt0B,EAAEs/H,UAAU,IAAIt/H,EAAE4B,KAAK,OAAO0yB,IAAIt0B,EAAEs0B,EAAY,OAAVA,EAAEwrG,GAAGpyH,EAAEpD,KAAYgY,EAAE67C,QAAQo1E,GAAG7lI,EAAE4mB,EAAEt0B,IAAc,OAAVs0B,EAAEwrG,GAAGpyH,EAAElU,KAAY8oB,EAAEjjB,KAAKk0I,GAAG7lI,EAAE4mB,EAAEt0B,KAAK0N,EAAEA,EAAEs3G,MAAM,CAAC,OAAO1iG,CAAC,CAAC,SAASoxH,GAAGhmI,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEs3G,aAAat3G,GAAG,IAAIA,EAAE9L,KAAK,OAAO8L,GAAI,IAAI,CACnd,SAASimI,GAAGjmI,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,IAAI,IAAIs0B,EAAE96B,EAAEstI,WAAW1qH,EAAE,GAAG,OAAO9R,GAAGA,IAAIgY,GAAG,CAAC,IAAItI,EAAE1P,EAAEqD,EAAEqM,EAAEymH,UAAUlqH,EAAEyD,EAAEslH,UAAU,GAAG,OAAO3xH,GAAGA,IAAI2U,EAAE,MAAM,IAAItI,EAAEpY,KAAK,OAAO2U,IAAIyD,EAAEzD,EAAEvW,EAAa,OAAV2N,EAAEmyH,GAAGx1H,EAAEgqB,KAAYlY,EAAE+hD,QAAQo1E,GAAGjpI,EAAEqD,EAAEqM,IAAKha,GAAc,OAAV2N,EAAEmyH,GAAGx1H,EAAEgqB,KAAYlY,EAAE/c,KAAKk0I,GAAGjpI,EAAEqD,EAAEqM,KAAM1P,EAAEA,EAAE06G,MAAM,CAAC,IAAI5oG,EAAEpiB,QAAQ0T,EAAErO,KAAK,CAACqsC,MAAMlyC,EAAE2gC,UAAU/d,GAAG,CAAC,IAAI+3H,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAG3mI,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAGtC,QAAQ+oI,GAAG,MAAM/oI,QAAQgpI,GAAG,GAAG,CAAC,SAASE,GAAG5mI,EAAElU,EAAE8Q,GAAW,GAAR9Q,EAAE66I,GAAG76I,GAAM66I,GAAG3mI,KAAKlU,GAAG8Q,EAAE,MAAM9O,MAAM+b,EAAE,KAAM,CAAC,SAASg9H,KAAK,CAC9e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGhnI,EAAElU,GAAG,MAAM,aAAakU,GAAG,aAAaA,GAAG,kBAAkBlU,EAAE6+F,UAAU,kBAAkB7+F,EAAE6+F,UAAU,kBAAkB7+F,EAAEghI,yBAAyB,OAAOhhI,EAAEghI,yBAAyB,MAAMhhI,EAAEghI,wBAAwBma,MAAM,CAC5P,IAAIC,GAAG,oBAAoB9/F,WAAWA,gBAAW,EAAO+/F,GAAG,oBAAoBhoB,aAAaA,kBAAa,EAAOioB,GAAG,oBAAoBx4B,QAAQA,aAAQ,EAAOy4B,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBF,GAAG,SAASpnI,GAAG,OAAOonI,GAAGG,QAAQ,MAAMv0B,KAAKhzG,GAAGwnI,MAAMC,GAAG,EAAEP,GAAG,SAASO,GAAGznI,GAAGonC,YAAW,WAAW,MAAMpnC,CAAE,GAAE,CACpV,SAAS0nI,GAAG1nI,EAAElU,GAAG,IAAI8Q,EAAE9Q,EAAE8oB,EAAE,EAAE,EAAE,CAAC,IAAItiB,EAAEsK,EAAEglI,YAA6B,GAAjB5hI,EAAEk5D,YAAYt8D,GAAMtK,GAAG,IAAIA,EAAEo7H,SAAS,GAAY,QAAT9wH,EAAEtK,EAAE+pB,MAAc,CAAC,GAAG,IAAIzH,EAA0B,OAAvB5U,EAAEk5D,YAAY5mE,QAAG6lI,GAAGrsI,GAAU8oB,GAAG,KAAK,MAAMhY,GAAG,OAAOA,GAAG,OAAOA,GAAGgY,IAAIhY,EAAEtK,CAAC,OAAOsK,GAAGu7H,GAAGrsI,EAAE,CAAC,SAAS67I,GAAG3nI,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE4hI,YAAY,CAAC,IAAI91I,EAAEkU,EAAE0tH,SAAS,GAAG,IAAI5hI,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAEkU,EAAEqc,OAAiB,OAAOvwB,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,IAAI,CAAC,CAAC,OAAOkU,CAAC,CACjY,SAAS4nI,GAAG5nI,GAAGA,EAAEA,EAAE6nI,gBAAgB,IAAI,IAAI/7I,EAAE,EAAEkU,GAAG,CAAC,GAAG,IAAIA,EAAE0tH,SAAS,CAAC,IAAI9wH,EAAEoD,EAAEqc,KAAK,GAAG,MAAMzf,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAI9Q,EAAE,OAAOkU,EAAElU,GAAG,KAAK,OAAO8Q,GAAG9Q,GAAG,CAACkU,EAAEA,EAAE6nI,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAGz5I,KAAKymC,SAASz+B,SAAS,IAAIH,MAAM,GAAG6xI,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGhC,GAAG,oBAAoBgC,GAAG58D,GAAG,iBAAiB48D,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAASrQ,GAAGz3H,GAAG,IAAIlU,EAAEkU,EAAE+nI,IAAI,GAAGj8I,EAAE,OAAOA,EAAE,IAAI,IAAI8Q,EAAEoD,EAAEw0D,WAAW53D,GAAG,CAAC,GAAG9Q,EAAE8Q,EAAEkpI,KAAKlpI,EAAEmrI,IAAI,CAAe,GAAdnrI,EAAE9Q,EAAEinI,UAAa,OAAOjnI,EAAEwnI,OAAO,OAAO12H,GAAG,OAAOA,EAAE02H,MAAM,IAAItzH,EAAE4nI,GAAG5nI,GAAG,OAAOA,GAAG,CAAC,GAAGpD,EAAEoD,EAAE+nI,IAAI,OAAOnrI,EAAEoD,EAAE4nI,GAAG5nI,EAAE,CAAC,OAAOlU,CAAC,CAAK8Q,GAAJoD,EAAEpD,GAAM43D,UAAU,CAAC,OAAO,IAAI,CAAC,SAASm9D,GAAG3xH,GAAkB,QAAfA,EAAEA,EAAE+nI,KAAK/nI,EAAE8lI,MAAc,IAAI9lI,EAAE9L,KAAK,IAAI8L,EAAE9L,KAAK,KAAK8L,EAAE9L,KAAK,IAAI8L,EAAE9L,IAAI,KAAK8L,CAAC,CAAC,SAAS0gI,GAAG1gI,GAAG,GAAG,IAAIA,EAAE9L,KAAK,IAAI8L,EAAE9L,IAAI,OAAO8L,EAAE4xH,UAAU,MAAM9jI,MAAM+b,EAAE,IAAK,CAAC,SAASgoH,GAAG7xH,GAAG,OAAOA,EAAEgoI,KAAK,IAAI,CAAC,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGroI,GAAG,MAAM,CAAC6T,QAAQ7T,EAAE,CACve,SAASwkB,GAAExkB,GAAG,EAAEooI,KAAKpoI,EAAE6T,QAAQs0H,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAASE,GAAEtoI,EAAElU,GAAGs8I,KAAKD,GAAGC,IAAIpoI,EAAE6T,QAAQ7T,EAAE6T,QAAQ/nB,CAAC,CAAC,IAAIy8I,GAAG,CAAC,EAAEx6B,GAAEs6B,GAAGE,IAAIC,GAAGH,IAAG,GAAII,GAAGF,GAAG,SAASG,GAAG1oI,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAE2Z,KAAKgvH,aAAa,IAAI/rI,EAAE,OAAO2rI,GAAG,IAAI3zH,EAAE5U,EAAE4xH,UAAU,GAAGh9G,GAAGA,EAAEg0H,8CAA8C98I,EAAE,OAAO8oB,EAAEi0H,0CAA0C,IAASjiH,EAALt0B,EAAE,CAAC,EAAI,IAAIs0B,KAAKhqB,EAAEtK,EAAEs0B,GAAG96B,EAAE86B,GAAoH,OAAjHhS,KAAI5U,EAAEA,EAAE4xH,WAAYgX,4CAA4C98I,EAAEkU,EAAE6oI,0CAA0Cv2I,GAAUA,CAAC,CAC9d,SAASw2I,GAAG9oI,GAAyB,OAAO,QAA7BA,EAAEA,EAAE+oI,yBAAmC,IAAS/oI,CAAC,CAAC,SAASgpI,KAAKxkH,GAAEgkH,IAAIhkH,GAAEupF,GAAE,CAAC,SAASk7B,GAAGjpI,EAAElU,EAAE8Q,GAAG,GAAGmxG,GAAEl6F,UAAU00H,GAAG,MAAMz6I,MAAM+b,EAAE,MAAMy+H,GAAEv6B,GAAEjiH,GAAGw8I,GAAEE,GAAG5rI,EAAE,CAAC,SAASssI,GAAGlpI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAE4xH,UAAgC,GAAtB9lI,EAAEA,EAAEi9I,kBAAqB,oBAAoBn0H,EAAEu0H,gBAAgB,OAAOvsI,EAAwB,IAAI,IAAItK,KAA9BsiB,EAAEA,EAAEu0H,kBAAiC,KAAK72I,KAAKxG,GAAG,MAAMgC,MAAM+b,EAAE,IAAIohH,EAAGjrH,IAAI,UAAU1N,IAAI,OAAOgc,EAAE,CAAC,EAAE1R,EAAEgY,EAAE,CACxX,SAASw0H,GAAGppI,GAA2G,OAAxGA,GAAGA,EAAEA,EAAE4xH,YAAY5xH,EAAEqpI,2CAA2Cd,GAAGE,GAAG16B,GAAEl6F,QAAQy0H,GAAEv6B,GAAE/tG,GAAGsoI,GAAEE,GAAGA,GAAG30H,UAAe,CAAE,CAAC,SAASy1H,GAAGtpI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAE4xH,UAAU,IAAIh9G,EAAE,MAAM9mB,MAAM+b,EAAE,MAAMjN,GAAGoD,EAAEkpI,GAAGlpI,EAAElU,EAAE28I,IAAI7zH,EAAEy0H,0CAA0CrpI,EAAEwkB,GAAEgkH,IAAIhkH,GAAEupF,IAAGu6B,GAAEv6B,GAAE/tG,IAAIwkB,GAAEgkH,IAAIF,GAAEE,GAAG5rI,EAAE,CAAC,IAAI2sI,GAAG,KAAKC,IAAG,EAAGzjE,IAAG,EAAG,SAAS0jE,GAAGzpI,GAAG,OAAOupI,GAAGA,GAAG,CAACvpI,GAAGupI,GAAG53I,KAAKqO,EAAE,CAChW,SAAS0pI,KAAK,IAAI3jE,IAAI,OAAOwjE,GAAG,CAACxjE,IAAG,EAAG,IAAI/lE,EAAE,EAAElU,EAAE0iB,GAAE,IAAI,IAAI5R,EAAE2sI,GAAG,IAAI/6H,GAAE,EAAExO,EAAEpD,EAAEtQ,OAAO0T,IAAI,CAAC,IAAI4U,EAAEhY,EAAEoD,GAAG,GAAG4U,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAAC20H,GAAG,KAAKC,IAAG,CAAE,CAAC,MAAMl3I,GAAG,MAAM,OAAOi3I,KAAKA,GAAGA,GAAGrzI,MAAM8J,EAAE,IAAI0zH,GAAGpmD,GAAGo8D,IAAIp3I,CAAE,CAAC,QAAQkc,GAAE1iB,EAAEi6E,IAAG,CAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI4jE,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAAS7hD,GAAGtoF,EAAElU,GAAG69I,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAG7pI,EAAE8pI,GAAGh+I,CAAC,CACjV,SAASs+I,GAAGpqI,EAAElU,EAAE8Q,GAAGmtI,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGA,GAAGjqI,EAAE,IAAI4U,EAAEs1H,GAAGlqI,EAAEmqI,GAAG,IAAI73I,EAAE,GAAGyiI,GAAGngH,GAAG,EAAEA,KAAK,GAAGtiB,GAAGsK,GAAG,EAAE,IAAIgqB,EAAE,GAAGmuG,GAAGjpI,GAAGwG,EAAE,GAAG,GAAGs0B,EAAE,CAAC,IAAIlY,EAAEpc,EAAEA,EAAE,EAAEs0B,GAAGhS,GAAG,GAAGlG,GAAG,GAAGrY,SAAS,IAAIue,IAAIlG,EAAEpc,GAAGoc,EAAEw7H,GAAG,GAAG,GAAGnV,GAAGjpI,GAAGwG,EAAEsK,GAAGtK,EAAEsiB,EAAEu1H,GAAGvjH,EAAE5mB,CAAC,MAAMkqI,GAAG,GAAGtjH,EAAEhqB,GAAGtK,EAAEsiB,EAAEu1H,GAAGnqI,CAAC,CAAC,SAASqqI,GAAGrqI,GAAG,OAAOA,EAAEs3G,SAAShvB,GAAGtoF,EAAE,GAAGoqI,GAAGpqI,EAAE,EAAE,GAAG,CAAC,SAASsqI,GAAGtqI,GAAG,KAAKA,IAAI6pI,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,KAAK5pI,IAAIiqI,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKG,GAAGJ,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,IAAI,CAAC,IAAIO,GAAG,KAAKC,GAAG,KAAKj4B,IAAE,EAAGk4B,GAAG,KACje,SAASC,GAAG1qI,EAAElU,GAAG,IAAI8Q,EAAE+tI,GAAG,EAAE,KAAK,KAAK,GAAG/tI,EAAEwuG,YAAY,UAAUxuG,EAAEg1H,UAAU9lI,EAAE8Q,EAAE06G,OAAOt3G,EAAgB,QAAdlU,EAAEkU,EAAE4qI,YAAoB5qI,EAAE4qI,UAAU,CAAChuI,GAAGoD,EAAEgzH,OAAO,IAAIlnI,EAAE6F,KAAKiL,EAAE,CACxJ,SAASiuI,GAAG7qI,EAAElU,GAAG,OAAOkU,EAAE9L,KAAK,KAAK,EAAE,IAAI0I,EAAEoD,EAAE2Z,KAAyE,OAAO,QAA3E7tB,EAAE,IAAIA,EAAE4hI,UAAU9wH,EAAEigB,gBAAgB/wB,EAAEs/H,SAASvuG,cAAc,KAAK/wB,KAAmBkU,EAAE4xH,UAAU9lI,EAAEy+I,GAAGvqI,EAAEwqI,GAAG7C,GAAG77I,EAAEo6H,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7Cp6H,EAAE,KAAKkU,EAAE8qI,cAAc,IAAIh/I,EAAE4hI,SAAS,KAAK5hI,KAAYkU,EAAE4xH,UAAU9lI,EAAEy+I,GAAGvqI,EAAEwqI,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxB1+I,EAAE,IAAIA,EAAE4hI,SAAS,KAAK5hI,KAAY8Q,EAAE,OAAOqtI,GAAG,CAACriH,GAAGsiH,GAAG/8C,SAASg9C,IAAI,KAAKnqI,EAAEkzH,cAAc,CAACC,WAAWrnI,EAAEi/I,YAAYnuI,EAAEouI,UAAU,aAAYpuI,EAAE+tI,GAAG,GAAG,KAAK,KAAK,IAAK/Y,UAAU9lI,EAAE8Q,EAAE06G,OAAOt3G,EAAEA,EAAEszH,MAAM12H,EAAE2tI,GAAGvqI,EAAEwqI,GAClf,MAAK,GAAO,QAAQ,OAAM,EAAG,CAAC,SAASS,GAAGjrI,GAAG,OAAO,KAAY,EAAPA,EAAEsN,OAAS,KAAa,IAARtN,EAAEgzH,MAAU,CAAC,SAASkY,GAAGlrI,GAAG,GAAGuyG,GAAE,CAAC,IAAIzmH,EAAE0+I,GAAG,GAAG1+I,EAAE,CAAC,IAAI8Q,EAAE9Q,EAAE,IAAI++I,GAAG7qI,EAAElU,GAAG,CAAC,GAAGm/I,GAAGjrI,GAAG,MAAMlS,MAAM+b,EAAE,MAAM/d,EAAE67I,GAAG/qI,EAAEglI,aAAa,IAAIhtH,EAAE21H,GAAGz+I,GAAG++I,GAAG7qI,EAAElU,GAAG4+I,GAAG91H,EAAEhY,IAAIoD,EAAEgzH,OAAe,KAAThzH,EAAEgzH,MAAY,EAAEzgB,IAAE,EAAGg4B,GAAGvqI,EAAE,CAAC,KAAK,CAAC,GAAGirI,GAAGjrI,GAAG,MAAMlS,MAAM+b,EAAE,MAAM7J,EAAEgzH,OAAe,KAAThzH,EAAEgzH,MAAY,EAAEzgB,IAAE,EAAGg4B,GAAGvqI,CAAC,CAAC,CAAC,CAAC,SAASmrI,GAAGnrI,GAAG,IAAIA,EAAEA,EAAEs3G,OAAO,OAAOt3G,GAAG,IAAIA,EAAE9L,KAAK,IAAI8L,EAAE9L,KAAK,KAAK8L,EAAE9L,KAAK8L,EAAEA,EAAEs3G,OAAOizB,GAAGvqI,CAAC,CACha,SAASorI,GAAGprI,GAAG,GAAGA,IAAIuqI,GAAG,OAAM,EAAG,IAAIh4B,GAAE,OAAO44B,GAAGnrI,GAAGuyG,IAAE,GAAG,EAAG,IAAIzmH,EAAkG,IAA/FA,EAAE,IAAIkU,EAAE9L,QAAQpI,EAAE,IAAIkU,EAAE9L,OAAgBpI,EAAE,UAAXA,EAAEkU,EAAE2Z,OAAmB,SAAS7tB,IAAIk7I,GAAGhnI,EAAE2Z,KAAK3Z,EAAEqrI,gBAAmBv/I,IAAIA,EAAE0+I,IAAI,CAAC,GAAGS,GAAGjrI,GAAG,MAAMsrI,KAAKx9I,MAAM+b,EAAE,MAAM,KAAK/d,GAAG4+I,GAAG1qI,EAAElU,GAAGA,EAAE67I,GAAG77I,EAAE81I,YAAY,CAAO,GAANuJ,GAAGnrI,GAAM,KAAKA,EAAE9L,IAAI,CAAgD,KAA7B8L,EAAE,QAApBA,EAAEA,EAAEkzH,eAAyBlzH,EAAEmzH,WAAW,MAAW,MAAMrlI,MAAM+b,EAAE,MAAM7J,EAAE,CAAiB,IAAhBA,EAAEA,EAAE4hI,YAAgB91I,EAAE,EAAEkU,GAAG,CAAC,GAAG,IAAIA,EAAE0tH,SAAS,CAAC,IAAI9wH,EAAEoD,EAAEqc,KAAK,GAAG,OAAOzf,EAAE,CAAC,GAAG,IAAI9Q,EAAE,CAAC0+I,GAAG7C,GAAG3nI,EAAE4hI,aAAa,MAAM5hI,CAAC,CAAClU,GAAG,KAAK,MAAM8Q,GAAG,OAAOA,GAAG,OAAOA,GAAG9Q,GAAG,CAACkU,EAAEA,EAAE4hI,WAAW,CAAC4I,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAG5C,GAAG3nI,EAAE4xH,UAAUgQ,aAAa,KAAK,OAAM,CAAE,CAAC,SAAS0J,KAAK,IAAI,IAAItrI,EAAEwqI,GAAGxqI,GAAGA,EAAE2nI,GAAG3nI,EAAE4hI,YAAY,CAAC,SAAS2J,KAAKf,GAAGD,GAAG,KAAKh4B,IAAE,CAAE,CAAC,SAASi5B,GAAGxrI,GAAG,OAAOyqI,GAAGA,GAAG,CAACzqI,GAAGyqI,GAAG94I,KAAKqO,EAAE,CAAC,IAAIyrI,GAAGriB,EAAGiP,wBAChM,SAASqT,GAAG1rI,EAAElU,EAAE8Q,GAAW,GAAG,QAAXoD,EAAEpD,EAAEuwB,MAAiB,oBAAoBntB,GAAG,kBAAkBA,EAAE,CAAC,GAAGpD,EAAE+uI,OAAO,CAAY,GAAX/uI,EAAEA,EAAE+uI,OAAY,CAAC,GAAG,IAAI/uI,EAAE1I,IAAI,MAAMpG,MAAM+b,EAAE,MAAM,IAAI+K,EAAEhY,EAAEg1H,SAAS,CAAC,IAAIh9G,EAAE,MAAM9mB,MAAM+b,EAAE,IAAI7J,IAAI,IAAI1N,EAAEsiB,EAAEgS,EAAE,GAAG5mB,EAAE,OAAG,OAAOlU,GAAG,OAAOA,EAAEqhC,KAAK,oBAAoBrhC,EAAEqhC,KAAKrhC,EAAEqhC,IAAIy+G,aAAahlH,EAAS96B,EAAEqhC,KAAIrhC,EAAE,SAASkU,GAAG,IAAIlU,EAAEwG,EAAEu5I,KAAK,OAAO7rI,SAASlU,EAAE86B,GAAG96B,EAAE86B,GAAG5mB,CAAC,EAAElU,EAAE8/I,WAAWhlH,EAAS96B,EAAC,CAAC,GAAG,kBAAkBkU,EAAE,MAAMlS,MAAM+b,EAAE,MAAM,IAAIjN,EAAE+uI,OAAO,MAAM79I,MAAM+b,EAAE,IAAI7J,GAAI,CAAC,OAAOA,CAAC,CAC/c,SAAS8rI,GAAG9rI,EAAElU,GAAuC,MAApCkU,EAAE7S,OAAOE,UAAUgJ,SAASpC,KAAKnI,GAASgC,MAAM+b,EAAE,GAAG,oBAAoB7J,EAAE,qBAAqB7S,OAAOg1C,KAAKr2C,GAAG2O,KAAK,MAAM,IAAIuF,GAAI,CAAC,SAAS+rI,GAAG/rI,GAAiB,OAAOlU,EAAfkU,EAAEzD,OAAeyD,EAAEgrH,SAAS,CACrM,SAASghB,GAAGhsI,GAAG,SAASlU,EAAEA,EAAE8Q,GAAG,GAAGoD,EAAE,CAAC,IAAI4U,EAAE9oB,EAAE8+I,UAAU,OAAOh2H,GAAG9oB,EAAE8+I,UAAU,CAAChuI,GAAG9Q,EAAEknI,OAAO,IAAIp+G,EAAEjjB,KAAKiL,EAAE,CAAC,CAAC,SAASA,EAAEA,EAAEgY,GAAG,IAAI5U,EAAE,OAAO,KAAK,KAAK,OAAO4U,GAAG9oB,EAAE8Q,EAAEgY,GAAGA,EAAEA,EAAE2+G,QAAQ,OAAO,IAAI,CAAC,SAAS3+G,EAAE5U,EAAElU,GAAG,IAAIkU,EAAE,IAAIua,IAAI,OAAOzuB,GAAG,OAAOA,EAAE4oB,IAAI1U,EAAEwa,IAAI1uB,EAAE4oB,IAAI5oB,GAAGkU,EAAEwa,IAAI1uB,EAAE6Q,MAAM7Q,GAAGA,EAAEA,EAAEynI,QAAQ,OAAOvzH,CAAC,CAAC,SAAS1N,EAAE0N,EAAElU,GAAsC,OAAnCkU,EAAEisI,GAAGjsI,EAAElU,IAAK6Q,MAAM,EAAEqD,EAAEuzH,QAAQ,KAAYvzH,CAAC,CAAC,SAAS4mB,EAAE96B,EAAE8Q,EAAEgY,GAAa,OAAV9oB,EAAE6Q,MAAMiY,EAAM5U,EAA6C,QAAjB4U,EAAE9oB,EAAEinI,YAA6Bn+G,EAAEA,EAAEjY,OAAQC,GAAG9Q,EAAEknI,OAAO,EAAEp2H,GAAGgY,GAAE9oB,EAAEknI,OAAO,EAASp2H,IAArG9Q,EAAEknI,OAAO,QAAQp2H,EAAqF,CAAC,SAAS8R,EAAE5iB,GACzd,OAD4dkU,GAC7f,OAAOlU,EAAEinI,YAAYjnI,EAAEknI,OAAO,GAAUlnI,CAAC,CAAC,SAASwgB,EAAEtM,EAAElU,EAAE8Q,EAAEgY,GAAG,OAAG,OAAO9oB,GAAG,IAAIA,EAAEoI,MAAWpI,EAAEogJ,GAAGtvI,EAAEoD,EAAEsN,KAAKsH,IAAK0iG,OAAOt3G,EAAElU,KAAEA,EAAEwG,EAAExG,EAAE8Q,IAAK06G,OAAOt3G,EAASlU,EAAC,CAAC,SAASmU,EAAED,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAIgS,EAAEhqB,EAAE+c,KAAK,OAAGiN,IAAI4iG,EAAUj/G,EAAEvK,EAAElU,EAAE8Q,EAAEgsB,MAAM+hE,SAAS/1E,EAAEhY,EAAE8X,KAAQ,OAAO5oB,IAAIA,EAAEs/G,cAAcxkF,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEkkG,WAAWb,GAAI8hB,GAAGnlH,KAAK96B,EAAE6tB,QAAa/E,EAAEtiB,EAAExG,EAAE8Q,EAAEgsB,QAASuE,IAAIu+G,GAAG1rI,EAAElU,EAAE8Q,GAAGgY,EAAE0iG,OAAOt3G,EAAE4U,KAAEA,EAAEu3H,GAAGvvI,EAAE+c,KAAK/c,EAAE8X,IAAI9X,EAAEgsB,MAAM,KAAK5oB,EAAEsN,KAAKsH,IAAKuY,IAAIu+G,GAAG1rI,EAAElU,EAAE8Q,GAAGgY,EAAE0iG,OAAOt3G,EAAS4U,EAAC,CAAC,SAAS/L,EAAE7I,EAAElU,EAAE8Q,EAAEgY,GAAG,OAAG,OAAO9oB,GAAG,IAAIA,EAAEoI,KACjfpI,EAAE8lI,UAAUgG,gBAAgBh7H,EAAEg7H,eAAe9rI,EAAE8lI,UAAUwa,iBAAiBxvI,EAAEwvI,iBAAsBtgJ,EAAEugJ,GAAGzvI,EAAEoD,EAAEsN,KAAKsH,IAAK0iG,OAAOt3G,EAAElU,KAAEA,EAAEwG,EAAExG,EAAE8Q,EAAE+tF,UAAU,KAAM2sB,OAAOt3G,EAASlU,EAAC,CAAC,SAASye,EAAEvK,EAAElU,EAAE8Q,EAAEgY,EAAEgS,GAAG,OAAG,OAAO96B,GAAG,IAAIA,EAAEoI,MAAWpI,EAAEwgJ,GAAG1vI,EAAEoD,EAAEsN,KAAKsH,EAAEgS,IAAK0wF,OAAOt3G,EAAElU,KAAEA,EAAEwG,EAAExG,EAAE8Q,IAAK06G,OAAOt3G,EAASlU,EAAC,CAAC,SAASggB,EAAE9L,EAAElU,EAAE8Q,GAAG,GAAG,kBAAkB9Q,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAEogJ,GAAG,GAAGpgJ,EAAEkU,EAAEsN,KAAK1Q,IAAK06G,OAAOt3G,EAAElU,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEg/H,UAAU,KAAKxB,EAAG,OAAO1sH,EAAEuvI,GAAGrgJ,EAAE6tB,KAAK7tB,EAAE4oB,IAAI5oB,EAAE88B,MAAM,KAAK5oB,EAAEsN,KAAK1Q,IACjfuwB,IAAIu+G,GAAG1rI,EAAE,KAAKlU,GAAG8Q,EAAE06G,OAAOt3G,EAAEpD,EAAE,KAAK2sH,EAAG,OAAOz9H,EAAEugJ,GAAGvgJ,EAAEkU,EAAEsN,KAAK1Q,IAAK06G,OAAOt3G,EAAElU,EAAE,KAAKm+H,EAAiB,OAAOn+G,EAAE9L,GAAE4U,EAAnB9oB,EAAEyQ,OAAmBzQ,EAAEk/H,UAAUpuH,GAAG,GAAG6vH,GAAG3gI,IAAIs+H,EAAGt+H,GAAG,OAAOA,EAAEwgJ,GAAGxgJ,EAAEkU,EAAEsN,KAAK1Q,EAAE,OAAQ06G,OAAOt3G,EAAElU,EAAEggJ,GAAG9rI,EAAElU,EAAE,CAAC,OAAO,IAAI,CAAC,SAASiR,EAAEiD,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAE,OAAOxG,EAAEA,EAAE4oB,IAAI,KAAK,GAAG,kBAAkB9X,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAOtK,EAAE,KAAKga,EAAEtM,EAAElU,EAAE,GAAG8Q,EAAEgY,GAAG,GAAG,kBAAkBhY,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEkuH,UAAU,KAAKxB,EAAG,OAAO1sH,EAAE8X,MAAMpiB,EAAE2N,EAAED,EAAElU,EAAE8Q,EAAEgY,GAAG,KAAK,KAAK20G,EAAG,OAAO3sH,EAAE8X,MAAMpiB,EAAEuW,EAAE7I,EAAElU,EAAE8Q,EAAEgY,GAAG,KAAK,KAAKq1G,EAAG,OAAiBltH,EAAEiD,EACpflU,GADwewG,EAAEsK,EAAEL,OACxeK,EAAEouH,UAAUp2G,GAAG,GAAG63G,GAAG7vH,IAAIwtH,EAAGxtH,GAAG,OAAO,OAAOtK,EAAE,KAAKiY,EAAEvK,EAAElU,EAAE8Q,EAAEgY,EAAE,MAAMk3H,GAAG9rI,EAAEpD,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS6L,EAAEzI,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,GAAG,kBAAkBsiB,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwBtI,EAAExgB,EAAnBkU,EAAEA,EAAEqU,IAAIzX,IAAI,KAAW,GAAGgY,EAAEtiB,GAAG,GAAG,kBAAkBsiB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEk2G,UAAU,KAAKxB,EAAG,OAA2CrpH,EAAEnU,EAAtCkU,EAAEA,EAAEqU,IAAI,OAAOO,EAAEF,IAAI9X,EAAEgY,EAAEF,MAAM,KAAWE,EAAEtiB,GAAG,KAAKi3H,EAAG,OAA2C1gH,EAAE/c,EAAtCkU,EAAEA,EAAEqU,IAAI,OAAOO,EAAEF,IAAI9X,EAAEgY,EAAEF,MAAM,KAAWE,EAAEtiB,GAAG,KAAK23H,EAAiB,OAAOxhH,EAAEzI,EAAElU,EAAE8Q,GAAEgqB,EAAvBhS,EAAErY,OAAuBqY,EAAEo2G,UAAU14H,GAAG,GAAGm6H,GAAG73G,IAAIw1G,EAAGx1G,GAAG,OAAwBrK,EAAEze,EAAnBkU,EAAEA,EAAEqU,IAAIzX,IAAI,KAAWgY,EAAEtiB,EAAE,MAAMw5I,GAAGhgJ,EAAE8oB,EAAE,CAAC,OAAO,IAAI,CAC9f,SAAStK,EAAEhY,EAAEoc,EAAEpC,EAAErM,GAAG,IAAI,IAAI4I,EAAE,KAAK0B,EAAE,KAAKyJ,EAAEtF,EAAE3Q,EAAE2Q,EAAE,EAAEvX,EAAE,KAAK,OAAO6c,GAAGjW,EAAEuO,EAAEhgB,OAAOyR,IAAI,CAACiW,EAAErX,MAAMoB,GAAG5G,EAAE6c,EAAEA,EAAE,MAAM7c,EAAE6c,EAAEu/G,QAAQ,IAAIjpH,EAAEvN,EAAEzK,EAAE0hB,EAAE1H,EAAEvO,GAAGkC,GAAG,GAAG,OAAOqK,EAAE,CAAC,OAAO0J,IAAIA,EAAE7c,GAAG,KAAK,CAAC6I,GAAGgU,GAAG,OAAO1J,EAAEyoH,WAAWjnI,EAAEwG,EAAE0hB,GAAGtF,EAAEkY,EAAEtc,EAAEoE,EAAE3Q,GAAG,OAAOwM,EAAE1B,EAAEyB,EAAEC,EAAEgpH,QAAQjpH,EAAEC,EAAED,EAAE0J,EAAE7c,CAAC,CAAC,GAAG4G,IAAIuO,EAAEhgB,OAAO,OAAOsQ,EAAEtK,EAAE0hB,GAAGu+F,IAAGjqB,GAAGh2F,EAAEyL,GAAG8K,EAAE,GAAG,OAAOmL,EAAE,CAAC,KAAKjW,EAAEuO,EAAEhgB,OAAOyR,IAAkB,QAAdiW,EAAElI,EAAExZ,EAAEga,EAAEvO,GAAGkC,MAAcyO,EAAEkY,EAAE5S,EAAEtF,EAAE3Q,GAAG,OAAOwM,EAAE1B,EAAEmL,EAAEzJ,EAAEgpH,QAAQv/G,EAAEzJ,EAAEyJ,GAAc,OAAXu+F,IAAGjqB,GAAGh2F,EAAEyL,GAAU8K,CAAC,CAAC,IAAImL,EAAEY,EAAEtiB,EAAE0hB,GAAGjW,EAAEuO,EAAEhgB,OAAOyR,IAAsB,QAAlB5G,EAAEsR,EAAEuL,EAAE1hB,EAAEyL,EAAEuO,EAAEvO,GAAGkC,MAAcD,GAAG,OAAO7I,EAAE47H,WAAW/+G,EAAEgjH,OAAO,OACvf7/H,EAAEud,IAAI3W,EAAE5G,EAAEud,KAAKhG,EAAEkY,EAAEzvB,EAAEuX,EAAE3Q,GAAG,OAAOwM,EAAE1B,EAAE1R,EAAEoT,EAAEgpH,QAAQp8H,EAAEoT,EAAEpT,GAAuD,OAApD6I,GAAGgU,EAAE4F,SAAQ,SAAS5Z,GAAG,OAAOlU,EAAEwG,EAAE0N,EAAE,IAAGuyG,IAAGjqB,GAAGh2F,EAAEyL,GAAU8K,CAAC,CAAC,SAAS/H,EAAExO,EAAEoc,EAAEpC,EAAErM,GAAG,IAAI4I,EAAEuhH,EAAG99G,GAAG,GAAG,oBAAoBzD,EAAE,MAAM/a,MAAM+b,EAAE,MAAkB,GAAG,OAAfyC,EAAEzD,EAAE5U,KAAKqY,IAAc,MAAMxe,MAAM+b,EAAE,MAAM,IAAI,IAAImK,EAAEnL,EAAE,KAAK0B,EAAEmE,EAAE3Q,EAAE2Q,EAAE,EAAEvX,EAAE,KAAKmT,EAAEgC,EAAE+G,OAAO,OAAO9I,IAAID,EAAE2sG,KAAKl5G,IAAIuM,EAAEgC,EAAE+G,OAAO,CAAC9I,EAAE5N,MAAMoB,GAAG5G,EAAEoT,EAAEA,EAAE,MAAMpT,EAAEoT,EAAEgpH,QAAQ,IAAIzyH,EAAE/D,EAAEzK,EAAEiY,EAAED,EAAEvV,MAAMkL,GAAG,GAAG,OAAOa,EAAE,CAAC,OAAOyJ,IAAIA,EAAEpT,GAAG,KAAK,CAAC6I,GAAGuK,GAAG,OAAOzJ,EAAEiyH,WAAWjnI,EAAEwG,EAAEiY,GAAGmE,EAAEkY,EAAE9lB,EAAE4N,EAAE3Q,GAAG,OAAOiW,EAAEnL,EAAE/H,EAAEkT,EAAEu/G,QAAQzyH,EAAEkT,EAAElT,EAAEyJ,EAAEpT,CAAC,CAAC,GAAGmT,EAAE2sG,KAAK,OAAOr6G,EAAEtK,EACzfiY,GAAGgoG,IAAGjqB,GAAGh2F,EAAEyL,GAAG8K,EAAE,GAAG,OAAO0B,EAAE,CAAC,MAAMD,EAAE2sG,KAAKl5G,IAAIuM,EAAEgC,EAAE+G,OAAwB,QAAjB/I,EAAEwB,EAAExZ,EAAEgY,EAAEvV,MAAMkL,MAAcyO,EAAEkY,EAAEtc,EAAEoE,EAAE3Q,GAAG,OAAOiW,EAAEnL,EAAEyB,EAAE0J,EAAEu/G,QAAQjpH,EAAE0J,EAAE1J,GAAc,OAAXioG,IAAGjqB,GAAGh2F,EAAEyL,GAAU8K,CAAC,CAAC,IAAI0B,EAAEqK,EAAEtiB,EAAEiY,IAAID,EAAE2sG,KAAKl5G,IAAIuM,EAAEgC,EAAE+G,OAA4B,QAArB/I,EAAE7B,EAAE8B,EAAEjY,EAAEyL,EAAEuM,EAAEvV,MAAMkL,MAAcD,GAAG,OAAOsK,EAAEyoH,WAAWxoH,EAAEysH,OAAO,OAAO1sH,EAAEoK,IAAI3W,EAAEuM,EAAEoK,KAAKhG,EAAEkY,EAAEtc,EAAEoE,EAAE3Q,GAAG,OAAOiW,EAAEnL,EAAEyB,EAAE0J,EAAEu/G,QAAQjpH,EAAE0J,EAAE1J,GAAuD,OAApDtK,GAAGuK,EAAEqP,SAAQ,SAAS5Z,GAAG,OAAOlU,EAAEwG,EAAE0N,EAAE,IAAGuyG,IAAGjqB,GAAGh2F,EAAEyL,GAAU8K,CAAC,CAG3T,OAH4T,SAAS88H,EAAE3lI,EAAE4U,EAAEgS,EAAEta,GAAkF,GAA/E,kBAAkBsa,GAAG,OAAOA,GAAGA,EAAEjN,OAAO6vG,GAAI,OAAO5iG,EAAElS,MAAMkS,EAAEA,EAAEgC,MAAM+hE,UAAa,kBAAkB/jE,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEkkG,UAAU,KAAKxB,EAAGtpH,EAAE,CAAC,IAAI,IAAIC,EAC7hB2mB,EAAElS,IAAI7L,EAAE+L,EAAE,OAAO/L,GAAG,CAAC,GAAGA,EAAE6L,MAAMzU,EAAE,CAAU,IAATA,EAAE2mB,EAAEjN,QAAY6vG,GAAI,GAAG,IAAI3gH,EAAE3U,IAAI,CAAC0I,EAAEoD,EAAE6I,EAAE0qH,UAAS3+G,EAAEtiB,EAAEuW,EAAE+d,EAAEgC,MAAM+hE,WAAY2sB,OAAOt3G,EAAEA,EAAE4U,EAAE,MAAM5U,CAAC,OAAO,GAAG6I,EAAEuiG,cAAcnrG,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE6qH,WAAWb,GAAI8hB,GAAG9rI,KAAK4I,EAAE8Q,KAAK,CAAC/c,EAAEoD,EAAE6I,EAAE0qH,UAAS3+G,EAAEtiB,EAAEuW,EAAE+d,EAAEgC,QAASuE,IAAIu+G,GAAG1rI,EAAE6I,EAAE+d,GAAGhS,EAAE0iG,OAAOt3G,EAAEA,EAAE4U,EAAE,MAAM5U,CAAC,CAACpD,EAAEoD,EAAE6I,GAAG,KAAK,CAAM/c,EAAEkU,EAAE6I,GAAGA,EAAEA,EAAE0qH,OAAO,CAAC3sG,EAAEjN,OAAO6vG,IAAI50G,EAAE03H,GAAG1lH,EAAEgC,MAAM+hE,SAAS3qF,EAAEsN,KAAKhB,EAAEsa,EAAElS,MAAO4iG,OAAOt3G,EAAEA,EAAE4U,KAAItI,EAAE6/H,GAAGvlH,EAAEjN,KAAKiN,EAAElS,IAAIkS,EAAEgC,MAAM,KAAK5oB,EAAEsN,KAAKhB,IAAK6gB,IAAIu+G,GAAG1rI,EAAE4U,EAAEgS,GAAGta,EAAEgrG,OAAOt3G,EAAEA,EAAEsM,EAAE,CAAC,OAAOoC,EAAE1O,GAAG,KAAKupH,EAAGvpH,EAAE,CAAC,IAAI6I,EAAE+d,EAAElS,IAAI,OACzfE,GAAG,CAAC,GAAGA,EAAEF,MAAM7L,EAAC,CAAC,GAAG,IAAI+L,EAAE1gB,KAAK0gB,EAAEg9G,UAAUgG,gBAAgBhxG,EAAEgxG,eAAehjH,EAAEg9G,UAAUwa,iBAAiBxlH,EAAEwlH,eAAe,CAACxvI,EAAEoD,EAAE4U,EAAE2+G,UAAS3+G,EAAEtiB,EAAEsiB,EAAEgS,EAAE+jE,UAAU,KAAM2sB,OAAOt3G,EAAEA,EAAE4U,EAAE,MAAM5U,CAAC,CAAMpD,EAAEoD,EAAE4U,GAAG,KAAM,CAAK9oB,EAAEkU,EAAE4U,GAAGA,EAAEA,EAAE2+G,OAAO,EAAC3+G,EAAEy3H,GAAGzlH,EAAE5mB,EAAEsN,KAAKhB,IAAKgrG,OAAOt3G,EAAEA,EAAE4U,CAAC,CAAC,OAAOlG,EAAE1O,GAAG,KAAKiqH,EAAG,OAAiB0b,EAAE3lI,EAAE4U,GAAd/L,EAAE+d,EAAErqB,OAAcqqB,EAAEokG,UAAU1+G,GAAG,GAAGmgH,GAAG7lG,GAAG,OAAOtc,EAAEtK,EAAE4U,EAAEgS,EAAEta,GAAG,GAAG89G,EAAGxjG,GAAG,OAAO9lB,EAAEd,EAAE4U,EAAEgS,EAAEta,GAAGw/H,GAAG9rI,EAAE4mB,EAAE,CAAC,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOhS,GAAG,IAAIA,EAAE1gB,KAAK0I,EAAEoD,EAAE4U,EAAE2+G,UAAS3+G,EAAEtiB,EAAEsiB,EAAEgS,IAAK0wF,OAAOt3G,EAAEA,EAAE4U,IACnfhY,EAAEoD,EAAE4U,IAAGA,EAAEs3H,GAAGtlH,EAAE5mB,EAAEsN,KAAKhB,IAAKgrG,OAAOt3G,EAAEA,EAAE4U,GAAGlG,EAAE1O,IAAIpD,EAAEoD,EAAE4U,EAAE,CAAS,CAAC,IAAI23H,GAAGP,IAAG,GAAIQ,GAAGR,IAAG,GAAIS,GAAGpE,GAAG,MAAMqE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASI,GAAG9sI,GAAG,IAAIlU,EAAE2gJ,GAAG54H,QAAQ2Q,GAAEioH,IAAIzsI,EAAE+sI,cAAcjhJ,CAAC,CAAC,SAASkhJ,GAAGhtI,EAAElU,EAAE8Q,GAAG,KAAK,OAAOoD,GAAG,CAAC,IAAI4U,EAAE5U,EAAE+yH,UAA+H,IAApH/yH,EAAEitI,WAAWnhJ,KAAKA,GAAGkU,EAAEitI,YAAYnhJ,EAAE,OAAO8oB,IAAIA,EAAEq4H,YAAYnhJ,IAAI,OAAO8oB,IAAIA,EAAEq4H,WAAWnhJ,KAAKA,IAAI8oB,EAAEq4H,YAAYnhJ,GAAMkU,IAAIpD,EAAE,MAAMoD,EAAEA,EAAEs3G,MAAM,CAAC,CACnZ,SAAS5/C,GAAG13D,EAAElU,GAAG4gJ,GAAG1sI,EAAE4sI,GAAGD,GAAG,KAAsB,QAAjB3sI,EAAEA,EAAEktI,eAAuB,OAAOltI,EAAEmtI,eAAe,KAAKntI,EAAEotI,MAAMthJ,KAAKuhJ,IAAG,GAAIrtI,EAAEmtI,aAAa,KAAK,CAAC,SAASG,GAAGttI,GAAG,IAAIlU,EAAEkU,EAAE+sI,cAAc,GAAGH,KAAK5sI,EAAE,GAAGA,EAAE,CAAC6gF,QAAQ7gF,EAAEutI,cAAczhJ,EAAEunB,KAAK,MAAM,OAAOs5H,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM5+I,MAAM+b,EAAE,MAAM8iI,GAAG3sI,EAAE0sI,GAAGQ,aAAa,CAACE,MAAM,EAAED,aAAantI,EAAE,MAAM2sI,GAAGA,GAAGt5H,KAAKrT,EAAE,OAAOlU,CAAC,CAAC,IAAI+mF,GAAG,KAAK,SAAS26D,GAAGxtI,GAAG,OAAO6yE,GAAGA,GAAG,CAAC7yE,GAAG6yE,GAAGlhF,KAAKqO,EAAE,CACvY,SAASytI,GAAGztI,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAExG,EAAE4hJ,YAA+E,OAAnE,OAAOp7I,GAAGsK,EAAEyW,KAAKzW,EAAE4wI,GAAG1hJ,KAAK8Q,EAAEyW,KAAK/gB,EAAE+gB,KAAK/gB,EAAE+gB,KAAKzW,GAAG9Q,EAAE4hJ,YAAY9wI,EAAS+wI,GAAG3tI,EAAE4U,EAAE,CAAC,SAAS+4H,GAAG3tI,EAAElU,GAAGkU,EAAEotI,OAAOthJ,EAAE,IAAI8Q,EAAEoD,EAAE+yH,UAAqC,IAA3B,OAAOn2H,IAAIA,EAAEwwI,OAAOthJ,GAAG8Q,EAAEoD,EAAMA,EAAEA,EAAEs3G,OAAO,OAAOt3G,GAAGA,EAAEitI,YAAYnhJ,EAAgB,QAAd8Q,EAAEoD,EAAE+yH,aAAqBn2H,EAAEqwI,YAAYnhJ,GAAG8Q,EAAEoD,EAAEA,EAAEA,EAAEs3G,OAAO,OAAO,IAAI16G,EAAE1I,IAAI0I,EAAEg1H,UAAU,IAAI,CAAC,IAAIgc,IAAG,EAAG,SAASC,GAAG7tI,GAAGA,EAAE8tI,YAAY,CAACC,UAAU/tI,EAAEkzH,cAAc8a,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,KAAKT,YAAY,KAAKN,MAAM,GAAG/xE,QAAQ,KAAK,CAC/e,SAAS4S,GAAGjuE,EAAElU,GAAGkU,EAAEA,EAAE8tI,YAAYhiJ,EAAEgiJ,cAAc9tI,IAAIlU,EAAEgiJ,YAAY,CAACC,UAAU/tI,EAAE+tI,UAAUC,gBAAgBhuI,EAAEguI,gBAAgBC,eAAejuI,EAAEiuI,eAAeC,OAAOluI,EAAEkuI,OAAO7yE,QAAQr7D,EAAEq7D,SAAS,CAAC,SAAS+yE,GAAGpuI,EAAElU,GAAG,MAAM,CAACuiJ,UAAUruI,EAAEsuI,KAAKxiJ,EAAEoI,IAAI,EAAE4pC,QAAQ,KAAKjW,SAAS,KAAKxU,KAAK,KAAK,CACtR,SAASk7H,GAAGvuI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAE8tI,YAAY,GAAG,OAAOl5H,EAAE,OAAO,KAAgB,GAAXA,EAAEA,EAAEs5H,OAAU,KAAO,EAAFM,IAAK,CAAC,IAAIl8I,EAAEsiB,EAAEu5H,QAA+D,OAAvD,OAAO77I,EAAExG,EAAEunB,KAAKvnB,GAAGA,EAAEunB,KAAK/gB,EAAE+gB,KAAK/gB,EAAE+gB,KAAKvnB,GAAG8oB,EAAEu5H,QAAQriJ,EAAS6hJ,GAAG3tI,EAAEpD,EAAE,CAAoF,OAAnE,QAAhBtK,EAAEsiB,EAAE84H,cAAsB5hJ,EAAEunB,KAAKvnB,EAAE0hJ,GAAG54H,KAAK9oB,EAAEunB,KAAK/gB,EAAE+gB,KAAK/gB,EAAE+gB,KAAKvnB,GAAG8oB,EAAE84H,YAAY5hJ,EAAS6hJ,GAAG3tI,EAAEpD,EAAE,CAAC,SAAS6xI,GAAGzuI,EAAElU,EAAE8Q,GAAmB,GAAG,QAAnB9Q,EAAEA,EAAEgiJ,eAA0BhiJ,EAAEA,EAAEoiJ,OAAO,KAAO,QAAFtxI,IAAY,CAAC,IAAIgY,EAAE9oB,EAAEshJ,MAAwBxwI,GAAlBgY,GAAG5U,EAAEq1H,aAAkBvpI,EAAEshJ,MAAMxwI,EAAEm5H,GAAG/1H,EAAEpD,EAAE,CAAC,CACrZ,SAASmO,GAAG/K,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAE8tI,YAAYl5H,EAAE5U,EAAE+yH,UAAU,GAAG,OAAOn+G,GAAoBhY,KAAhBgY,EAAEA,EAAEk5H,aAAmB,CAAC,IAAIx7I,EAAE,KAAKs0B,EAAE,KAAyB,GAAG,QAAvBhqB,EAAEA,EAAEoxI,iBAA4B,CAAC,EAAE,CAAC,IAAIt/H,EAAE,CAAC2/H,UAAUzxI,EAAEyxI,UAAUC,KAAK1xI,EAAE0xI,KAAKp6I,IAAI0I,EAAE1I,IAAI4pC,QAAQlhC,EAAEkhC,QAAQjW,SAASjrB,EAAEirB,SAASxU,KAAK,MAAM,OAAOuT,EAAEt0B,EAAEs0B,EAAElY,EAAEkY,EAAEA,EAAEvT,KAAK3E,EAAE9R,EAAEA,EAAEyW,IAAI,OAAO,OAAOzW,GAAG,OAAOgqB,EAAEt0B,EAAEs0B,EAAE96B,EAAE86B,EAAEA,EAAEvT,KAAKvnB,CAAC,MAAMwG,EAAEs0B,EAAE96B,EAAiH,OAA/G8Q,EAAE,CAACmxI,UAAUn5H,EAAEm5H,UAAUC,gBAAgB17I,EAAE27I,eAAernH,EAAEsnH,OAAOt5H,EAAEs5H,OAAO7yE,QAAQzmD,EAAEymD,cAASr7D,EAAE8tI,YAAYlxI,EAAQ,CAAoB,QAAnBoD,EAAEpD,EAAEqxI,gBAAwBrxI,EAAEoxI,gBAAgBliJ,EAAEkU,EAAEqT,KACnfvnB,EAAE8Q,EAAEqxI,eAAeniJ,CAAC,CACpB,SAAS4iJ,GAAG1uI,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAE0N,EAAE8tI,YAAYF,IAAG,EAAG,IAAIhnH,EAAEt0B,EAAE07I,gBAAgBt/H,EAAEpc,EAAE27I,eAAe3hI,EAAEha,EAAE47I,OAAOC,QAAQ,GAAG,OAAO7hI,EAAE,CAACha,EAAE47I,OAAOC,QAAQ,KAAK,IAAIluI,EAAEqM,EAAEzD,EAAE5I,EAAEoT,KAAKpT,EAAEoT,KAAK,KAAK,OAAO3E,EAAEkY,EAAE/d,EAAE6F,EAAE2E,KAAKxK,EAAE6F,EAAEzO,EAAE,IAAIsK,EAAEvK,EAAE+yH,UAAU,OAAOxoH,KAAoB+B,GAAhB/B,EAAEA,EAAEujI,aAAgBG,kBAAmBv/H,IAAI,OAAOpC,EAAE/B,EAAEyjI,gBAAgBnlI,EAAEyD,EAAE+G,KAAKxK,EAAE0B,EAAE0jI,eAAehuI,GAAG,CAAC,GAAG,OAAO2mB,EAAE,CAAC,IAAI9a,EAAExZ,EAAEy7I,UAA6B,IAAnBr/H,EAAE,EAAEnE,EAAE1B,EAAE5I,EAAE,KAAKqM,EAAEsa,IAAI,CAAC,IAAI7pB,EAAEuP,EAAEgiI,KAAK7lI,EAAE6D,EAAE+hI,UAAU,IAAIz5H,EAAE7X,KAAKA,EAAE,CAAC,OAAOwN,IAAIA,EAAEA,EAAE8I,KAAK,CAACg7H,UAAU5lI,EAAE6lI,KAAK,EAAEp6I,IAAIoY,EAAEpY,IAAI4pC,QAAQxxB,EAAEwxB,QAAQjW,SAASvb,EAAEub,SACvfxU,KAAK,OAAOrT,EAAE,CAAC,IAAIsK,EAAEtK,EAAEc,EAAEwL,EAAU,OAARvP,EAAEjR,EAAE2c,EAAE7L,EAASkE,EAAE5M,KAAK,KAAK,EAAc,GAAG,oBAAfoW,EAAExJ,EAAEg9B,SAAiC,CAAChyB,EAAExB,EAAErW,KAAKwU,EAAEqD,EAAE/O,GAAG,MAAMiD,CAAC,CAAC8L,EAAExB,EAAE,MAAMtK,EAAE,KAAK,EAAEsK,EAAE0oH,OAAe,MAAT1oH,EAAE0oH,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3Cj2H,EAAE,oBAAduN,EAAExJ,EAAEg9B,SAAgCxzB,EAAErW,KAAKwU,EAAEqD,EAAE/O,GAAGuN,SAAe,IAASvN,EAAE,MAAMiD,EAAE8L,EAAEwC,EAAE,CAAC,EAAExC,EAAE/O,GAAG,MAAMiD,EAAE,KAAK,EAAE4tI,IAAG,EAAG,CAAC,OAAOthI,EAAEub,UAAU,IAAIvb,EAAEgiI,OAAOtuI,EAAEgzH,OAAO,GAAe,QAAZj2H,EAAEzK,EAAE+oE,SAAiB/oE,EAAE+oE,QAAQ,CAAC/uD,GAAGvP,EAAEpL,KAAK2a,GAAG,MAAM7D,EAAE,CAAC4lI,UAAU5lI,EAAE6lI,KAAKvxI,EAAE7I,IAAIoY,EAAEpY,IAAI4pC,QAAQxxB,EAAEwxB,QAAQjW,SAASvb,EAAEub,SAASxU,KAAK,MAAM,OAAO9I,GAAG1B,EAAE0B,EAAE9B,EAAExI,EAAE6L,GAAGvB,EAAEA,EAAE8I,KAAK5K,EAAEiG,GAAG3R,EAC3e,GAAG,QAAZuP,EAAEA,EAAE+G,MAAiB,IAAsB,QAAnB/G,EAAEha,EAAE47I,OAAOC,SAAiB,MAAe7hI,GAAJvP,EAAEuP,GAAM+G,KAAKtW,EAAEsW,KAAK,KAAK/gB,EAAE27I,eAAelxI,EAAEzK,EAAE47I,OAAOC,QAAQ,IAAI,EAAsG,GAA5F,OAAO5jI,IAAItK,EAAE6L,GAAGxZ,EAAEy7I,UAAU9tI,EAAE3N,EAAE07I,gBAAgBnlI,EAAEvW,EAAE27I,eAAe1jI,EAA4B,QAA1Bze,EAAEwG,EAAE47I,OAAOR,aAAwB,CAACp7I,EAAExG,EAAE,GAAG4iB,GAAGpc,EAAEg8I,KAAKh8I,EAAEA,EAAE+gB,WAAW/gB,IAAIxG,EAAE,MAAM,OAAO86B,IAAIt0B,EAAE47I,OAAOd,MAAM,GAAGuB,IAAIjgI,EAAE1O,EAAEotI,MAAM1+H,EAAE1O,EAAEkzH,cAAcpnH,CAAC,CAAC,CAC9V,SAASupC,GAAGr1C,EAAElU,EAAE8Q,GAA8B,GAA3BoD,EAAElU,EAAEuvE,QAAQvvE,EAAEuvE,QAAQ,KAAQ,OAAOr7D,EAAE,IAAIlU,EAAE,EAAEA,EAAEkU,EAAE1T,OAAOR,IAAI,CAAC,IAAI8oB,EAAE5U,EAAElU,GAAGwG,EAAEsiB,EAAEiT,SAAS,GAAG,OAAOv1B,EAAE,CAAqB,GAApBsiB,EAAEiT,SAAS,KAAKjT,EAAEhY,EAAK,oBAAoBtK,EAAE,MAAMxE,MAAM+b,EAAE,IAAIvX,IAAIA,EAAE2B,KAAK2gB,EAAE,CAAC,CAAC,CAAC,IAAIg6H,GAAG,CAAC,EAAEC,GAAGxG,GAAGuG,IAAIE,GAAGzG,GAAGuG,IAAIG,GAAG1G,GAAGuG,IAAI,SAASI,GAAGhvI,GAAG,GAAGA,IAAI4uI,GAAG,MAAM9gJ,MAAM+b,EAAE,MAAM,OAAO7J,CAAC,CACnS,SAASivI,GAAGjvI,EAAElU,GAAyC,OAAtCw8I,GAAEyG,GAAGjjJ,GAAGw8I,GAAEwG,GAAG9uI,GAAGsoI,GAAEuG,GAAGD,IAAI5uI,EAAElU,EAAE4hI,UAAmB,KAAK,EAAE,KAAK,GAAG5hI,GAAGA,EAAEA,EAAEy2I,iBAAiBz2I,EAAEwhI,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkErhI,EAAEqhI,GAArCrhI,GAAvBkU,EAAE,IAAIA,EAAElU,EAAE0oE,WAAW1oE,GAAMwhI,cAAc,KAAKttH,EAAEA,EAAEkvI,SAAkB1qH,GAAEqqH,IAAIvG,GAAEuG,GAAG/iJ,EAAE,CAAC,SAASqjJ,KAAK3qH,GAAEqqH,IAAIrqH,GAAEsqH,IAAItqH,GAAEuqH,GAAG,CAAC,SAASK,GAAGpvI,GAAGgvI,GAAGD,GAAGl7H,SAAS,IAAI/nB,EAAEkjJ,GAAGH,GAAGh7H,SAAajX,EAAEuwH,GAAGrhI,EAAEkU,EAAE2Z,MAAM7tB,IAAI8Q,IAAI0rI,GAAEwG,GAAG9uI,GAAGsoI,GAAEuG,GAAGjyI,GAAG,CAAC,SAASyyI,GAAGrvI,GAAG8uI,GAAGj7H,UAAU7T,IAAIwkB,GAAEqqH,IAAIrqH,GAAEsqH,IAAI,CAAC,IAAIjhC,GAAEw6B,GAAG,GACxZ,SAASiH,GAAGtvI,GAAG,IAAI,IAAIlU,EAAEkU,EAAE,OAAOlU,GAAG,CAAC,GAAG,KAAKA,EAAEoI,IAAI,CAAC,IAAI0I,EAAE9Q,EAAEonI,cAAc,GAAG,OAAOt2H,IAAmB,QAAfA,EAAEA,EAAEu2H,aAAqB,OAAOv2H,EAAEyf,MAAM,OAAOzf,EAAEyf,MAAM,OAAOvwB,CAAC,MAAM,GAAG,KAAKA,EAAEoI,UAAK,IAASpI,EAAEu/I,cAAckE,aAAa,GAAG,KAAa,IAARzjJ,EAAEknI,OAAW,OAAOlnI,OAAO,GAAG,OAAOA,EAAEwnI,MAAM,CAACxnI,EAAEwnI,MAAMhc,OAAOxrH,EAAEA,EAAEA,EAAEwnI,MAAM,QAAQ,CAAC,GAAGxnI,IAAIkU,EAAE,MAAM,KAAK,OAAOlU,EAAEynI,SAAS,CAAC,GAAG,OAAOznI,EAAEwrH,QAAQxrH,EAAEwrH,SAASt3G,EAAE,OAAO,KAAKlU,EAAEA,EAAEwrH,MAAM,CAACxrH,EAAEynI,QAAQjc,OAAOxrH,EAAEwrH,OAAOxrH,EAAEA,EAAEynI,OAAO,CAAC,OAAO,IAAI,CAAC,IAAIic,GAAG,GACrc,SAASC,KAAK,IAAI,IAAIzvI,EAAE,EAAEA,EAAEwvI,GAAGljJ,OAAO0T,IAAIwvI,GAAGxvI,GAAG0vI,8BAA8B,KAAKF,GAAGljJ,OAAO,CAAC,CAAC,IAAIqjJ,GAAGvmB,EAAGwmB,uBAAuBC,GAAGzmB,EAAGiP,wBAAwByX,GAAG,EAAElkC,GAAE,KAAKhjG,GAAE,KAAKspG,GAAE,KAAK69B,IAAG,EAAGC,IAAG,EAAGC,GAAG,EAAEC,GAAG,EAAE,SAAS/9B,KAAI,MAAMrkH,MAAM+b,EAAE,KAAM,CAAC,SAASsmI,GAAGnwI,EAAElU,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAI8Q,EAAE,EAAEA,EAAE9Q,EAAEQ,QAAQsQ,EAAEoD,EAAE1T,OAAOsQ,IAAI,IAAI4kI,GAAGxhI,EAAEpD,GAAG9Q,EAAE8Q,IAAI,OAAM,EAAG,OAAM,CAAE,CAChW,SAASwzI,GAAGpwI,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,GAAyH,GAAtHkpH,GAAGlpH,EAAEglF,GAAE9/G,EAAEA,EAAEonI,cAAc,KAAKpnI,EAAEgiJ,YAAY,KAAKhiJ,EAAEshJ,MAAM,EAAEuC,GAAG97H,QAAQ,OAAO7T,GAAG,OAAOA,EAAEkzH,cAAcmd,GAAGC,GAAGtwI,EAAEpD,EAAEgY,EAAEtiB,GAAM09I,GAAG,CAACppH,EAAE,EAAE,EAAE,CAAY,GAAXopH,IAAG,EAAGC,GAAG,EAAK,IAAIrpH,EAAE,MAAM94B,MAAM+b,EAAE,MAAM+c,GAAG,EAAEsrF,GAAEtpG,GAAE,KAAK9c,EAAEgiJ,YAAY,KAAK6B,GAAG97H,QAAQ08H,GAAGvwI,EAAEpD,EAAEgY,EAAEtiB,EAAE,OAAO09I,GAAG,CAA+D,GAA9DL,GAAG97H,QAAQ28H,GAAG1kJ,EAAE,OAAO8c,IAAG,OAAOA,GAAEyK,KAAKy8H,GAAG,EAAE59B,GAAEtpG,GAAEgjG,GAAE,KAAKmkC,IAAG,EAAMjkJ,EAAE,MAAMgC,MAAM+b,EAAE,MAAM,OAAO7J,CAAC,CAAC,SAASywI,KAAK,IAAIzwI,EAAE,IAAIiwI,GAAQ,OAALA,GAAG,EAASjwI,CAAC,CAC/Y,SAAS0wI,KAAK,IAAI1wI,EAAE,CAACkzH,cAAc,KAAK6a,UAAU,KAAK4C,UAAU,KAAKC,MAAM,KAAKv9H,KAAK,MAA8C,OAAxC,OAAO6+F,GAAEtG,GAAEsnB,cAAchhB,GAAElyG,EAAEkyG,GAAEA,GAAE7+F,KAAKrT,EAASkyG,EAAC,CAAC,SAAS2+B,KAAK,GAAG,OAAOjoI,GAAE,CAAC,IAAI5I,EAAE4rG,GAAEmnB,UAAU/yH,EAAE,OAAOA,EAAEA,EAAEkzH,cAAc,IAAI,MAAMlzH,EAAE4I,GAAEyK,KAAK,IAAIvnB,EAAE,OAAOomH,GAAEtG,GAAEsnB,cAAchhB,GAAE7+F,KAAK,GAAG,OAAOvnB,EAAEomH,GAAEpmH,EAAE8c,GAAE5I,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMlS,MAAM+b,EAAE,MAAU7J,EAAE,CAACkzH,eAAPtqH,GAAE5I,GAAqBkzH,cAAc6a,UAAUnlI,GAAEmlI,UAAU4C,UAAU/nI,GAAE+nI,UAAUC,MAAMhoI,GAAEgoI,MAAMv9H,KAAK,MAAM,OAAO6+F,GAAEtG,GAAEsnB,cAAchhB,GAAElyG,EAAEkyG,GAAEA,GAAE7+F,KAAKrT,CAAC,CAAC,OAAOkyG,EAAC,CACje,SAAS4+B,GAAG9wI,EAAElU,GAAG,MAAM,oBAAoBA,EAAEA,EAAEkU,GAAGlU,CAAC,CACnD,SAASilJ,GAAG/wI,GAAG,IAAIlU,EAAE+kJ,KAAKj0I,EAAE9Q,EAAE8kJ,MAAM,GAAG,OAAOh0I,EAAE,MAAM9O,MAAM+b,EAAE,MAAMjN,EAAEo0I,oBAAoBhxI,EAAE,IAAI4U,EAAEhM,GAAEtW,EAAEsiB,EAAE+7H,UAAU/pH,EAAEhqB,EAAEuxI,QAAQ,GAAG,OAAOvnH,EAAE,CAAC,GAAG,OAAOt0B,EAAE,CAAC,IAAIoc,EAAEpc,EAAE+gB,KAAK/gB,EAAE+gB,KAAKuT,EAAEvT,KAAKuT,EAAEvT,KAAK3E,CAAC,CAACkG,EAAE+7H,UAAUr+I,EAAEs0B,EAAEhqB,EAAEuxI,QAAQ,IAAI,CAAC,GAAG,OAAO77I,EAAE,CAACs0B,EAAEt0B,EAAE+gB,KAAKuB,EAAEA,EAAEm5H,UAAU,IAAIzhI,EAAEoC,EAAE,KAAKzO,EAAE,KAAK4I,EAAE+d,EAAE,EAAE,CAAC,IAAIrc,EAAE1B,EAAEylI,KAAK,IAAIwB,GAAGvlI,KAAKA,EAAE,OAAOtK,IAAIA,EAAEA,EAAEoT,KAAK,CAACi7H,KAAK,EAAE9/G,OAAO3lB,EAAE2lB,OAAOyiH,cAAcpoI,EAAEooI,cAAcC,WAAWroI,EAAEqoI,WAAW79H,KAAK,OAAOuB,EAAE/L,EAAEooI,cAAcpoI,EAAEqoI,WAAWlxI,EAAE4U,EAAE/L,EAAE2lB,YAAY,CAAC,IAAI1iB,EAAE,CAACwiI,KAAK/jI,EAAEikB,OAAO3lB,EAAE2lB,OAAOyiH,cAAcpoI,EAAEooI,cACngBC,WAAWroI,EAAEqoI,WAAW79H,KAAK,MAAM,OAAOpT,GAAGqM,EAAErM,EAAE6L,EAAE4C,EAAEkG,GAAG3U,EAAEA,EAAEoT,KAAKvH,EAAE8/F,GAAEwhC,OAAO7iI,EAAEokI,IAAIpkI,CAAC,CAAC1B,EAAEA,EAAEwK,IAAI,OAAO,OAAOxK,GAAGA,IAAI+d,GAAG,OAAO3mB,EAAEyO,EAAEkG,EAAE3U,EAAEoT,KAAK/G,EAAEk1H,GAAG5sH,EAAE9oB,EAAEonI,iBAAiBma,IAAG,GAAIvhJ,EAAEonI,cAAct+G,EAAE9oB,EAAEiiJ,UAAUr/H,EAAE5iB,EAAE6kJ,UAAU1wI,EAAErD,EAAEu0I,kBAAkBv8H,CAAC,CAAiB,GAAG,QAAnB5U,EAAEpD,EAAE8wI,aAAwB,CAACp7I,EAAE0N,EAAE,GAAG4mB,EAAEt0B,EAAEg8I,KAAK1iC,GAAEwhC,OAAOxmH,EAAE+nH,IAAI/nH,EAAEt0B,EAAEA,EAAE+gB,WAAW/gB,IAAI0N,EAAE,MAAM,OAAO1N,IAAIsK,EAAEwwI,MAAM,GAAG,MAAM,CAACthJ,EAAEonI,cAAct2H,EAAEw0I,SAAS,CAC9X,SAASC,GAAGrxI,GAAG,IAAIlU,EAAE+kJ,KAAKj0I,EAAE9Q,EAAE8kJ,MAAM,GAAG,OAAOh0I,EAAE,MAAM9O,MAAM+b,EAAE,MAAMjN,EAAEo0I,oBAAoBhxI,EAAE,IAAI4U,EAAEhY,EAAEw0I,SAAS9+I,EAAEsK,EAAEuxI,QAAQvnH,EAAE96B,EAAEonI,cAAc,GAAG,OAAO5gI,EAAE,CAACsK,EAAEuxI,QAAQ,KAAK,IAAIz/H,EAAEpc,EAAEA,EAAE+gB,KAAK,GAAGuT,EAAE5mB,EAAE4mB,EAAElY,EAAE8f,QAAQ9f,EAAEA,EAAE2E,WAAW3E,IAAIpc,GAAGkvI,GAAG56G,EAAE96B,EAAEonI,iBAAiBma,IAAG,GAAIvhJ,EAAEonI,cAActsG,EAAE,OAAO96B,EAAE6kJ,YAAY7kJ,EAAEiiJ,UAAUnnH,GAAGhqB,EAAEu0I,kBAAkBvqH,CAAC,CAAC,MAAM,CAACA,EAAEhS,EAAE,CAAC,SAAS08H,KAAK,CACpW,SAASC,GAAGvxI,EAAElU,GAAG,IAAI8Q,EAAEgvG,GAAEh3F,EAAEi8H,KAAKv+I,EAAExG,IAAI86B,GAAG46G,GAAG5sH,EAAEs+G,cAAc5gI,GAAsE,GAAnEs0B,IAAIhS,EAAEs+G,cAAc5gI,EAAE+6I,IAAG,GAAIz4H,EAAEA,EAAEg8H,MAAMY,GAAGC,GAAG/9I,KAAK,KAAKkJ,EAAEgY,EAAE5U,GAAG,CAACA,IAAO4U,EAAE88H,cAAc5lJ,GAAG86B,GAAG,OAAOsrF,IAAuB,EAApBA,GAAEghB,cAAch/H,IAAM,CAAuD,GAAtD0I,EAAEo2H,OAAO,KAAK2e,GAAG,EAAEC,GAAGl+I,KAAK,KAAKkJ,EAAEgY,EAAEtiB,EAAExG,QAAG,EAAO,MAAS,OAAOgiH,GAAE,MAAMhgH,MAAM+b,EAAE,MAAM,KAAQ,GAAHimI,KAAQ+B,GAAGj1I,EAAE9Q,EAAEwG,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASu/I,GAAG7xI,EAAElU,EAAE8Q,GAAGoD,EAAEgzH,OAAO,MAAMhzH,EAAE,CAAC0xI,YAAY5lJ,EAAEiJ,MAAM6H,GAAmB,QAAhB9Q,EAAE8/G,GAAEkiC,cAAsBhiJ,EAAE,CAACgmJ,WAAW,KAAKC,OAAO,MAAMnmC,GAAEkiC,YAAYhiJ,EAAEA,EAAEimJ,OAAO,CAAC/xI,IAAgB,QAAXpD,EAAE9Q,EAAEimJ,QAAgBjmJ,EAAEimJ,OAAO,CAAC/xI,GAAGpD,EAAEjL,KAAKqO,EAAG,CAClf,SAAS4xI,GAAG5xI,EAAElU,EAAE8Q,EAAEgY,GAAG9oB,EAAEiJ,MAAM6H,EAAE9Q,EAAE4lJ,YAAY98H,EAAEo9H,GAAGlmJ,IAAImmJ,GAAGjyI,EAAE,CAAC,SAASyxI,GAAGzxI,EAAElU,EAAE8Q,GAAG,OAAOA,GAAE,WAAWo1I,GAAGlmJ,IAAImmJ,GAAGjyI,EAAE,GAAE,CAAC,SAASgyI,GAAGhyI,GAAG,IAAIlU,EAAEkU,EAAE0xI,YAAY1xI,EAAEA,EAAEjL,MAAM,IAAI,IAAI6H,EAAE9Q,IAAI,OAAO01I,GAAGxhI,EAAEpD,EAAE,CAAC,MAAMgY,GAAG,OAAM,CAAE,CAAC,CAAC,SAASq9H,GAAGjyI,GAAG,IAAIlU,EAAE6hJ,GAAG3tI,EAAE,GAAG,OAAOlU,GAAGomJ,GAAGpmJ,EAAEkU,EAAE,GAAG,EAAE,CAClQ,SAASiB,GAAGjB,GAAG,IAAIlU,EAAE4kJ,KAA8M,MAAzM,oBAAoB1wI,IAAIA,EAAEA,KAAKlU,EAAEonI,cAAcpnI,EAAEiiJ,UAAU/tI,EAAEA,EAAE,CAACmuI,QAAQ,KAAKT,YAAY,KAAKN,MAAM,EAAEgE,SAAS,KAAKJ,oBAAoBF,GAAGK,kBAAkBnxI,GAAGlU,EAAE8kJ,MAAM5wI,EAAEA,EAAEA,EAAEoxI,SAASvoC,GAAGn1G,KAAK,KAAKk4G,GAAE5rG,GAAS,CAAClU,EAAEonI,cAAclzH,EAAE,CAC5P,SAAS2xI,GAAG3xI,EAAElU,EAAE8Q,EAAEgY,GAA8O,OAA3O5U,EAAE,CAAC9L,IAAI8L,EAAE5S,OAAOtB,EAAEggC,QAAQlvB,EAAEu1I,KAAKv9H,EAAEvB,KAAK,MAAsB,QAAhBvnB,EAAE8/G,GAAEkiC,cAAsBhiJ,EAAE,CAACgmJ,WAAW,KAAKC,OAAO,MAAMnmC,GAAEkiC,YAAYhiJ,EAAEA,EAAEgmJ,WAAW9xI,EAAEqT,KAAKrT,GAAmB,QAAfpD,EAAE9Q,EAAEgmJ,YAAoBhmJ,EAAEgmJ,WAAW9xI,EAAEqT,KAAKrT,GAAG4U,EAAEhY,EAAEyW,KAAKzW,EAAEyW,KAAKrT,EAAEA,EAAEqT,KAAKuB,EAAE9oB,EAAEgmJ,WAAW9xI,GAAWA,CAAC,CAAC,SAASoyI,KAAK,OAAOvB,KAAK3d,aAAa,CAAC,SAASmf,GAAGryI,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAEo+I,KAAK9kC,GAAEonB,OAAOhzH,EAAE1N,EAAE4gI,cAAcye,GAAG,EAAE7lJ,EAAE8Q,OAAE,OAAO,IAASgY,EAAE,KAAKA,EAAE,CAC9Y,SAAS09H,GAAGtyI,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAEu+I,KAAKj8H,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIgS,OAAE,EAAO,GAAG,OAAOhe,GAAE,CAAC,IAAI8F,EAAE9F,GAAEsqH,cAA0B,GAAZtsG,EAAElY,EAAEod,QAAW,OAAOlX,GAAGu7H,GAAGv7H,EAAElG,EAAEyjI,MAAmC,YAA5B7/I,EAAE4gI,cAAcye,GAAG7lJ,EAAE8Q,EAAEgqB,EAAEhS,GAAU,CAACg3F,GAAEonB,OAAOhzH,EAAE1N,EAAE4gI,cAAcye,GAAG,EAAE7lJ,EAAE8Q,EAAEgqB,EAAEhS,EAAE,CAAC,SAAS29H,GAAGvyI,EAAElU,GAAG,OAAOumJ,GAAG,QAAQ,EAAEryI,EAAElU,EAAE,CAAC,SAAS0lJ,GAAGxxI,EAAElU,GAAG,OAAOwmJ,GAAG,KAAK,EAAEtyI,EAAElU,EAAE,CAAC,SAAS0mJ,GAAGxyI,EAAElU,GAAG,OAAOwmJ,GAAG,EAAE,EAAEtyI,EAAElU,EAAE,CAAC,SAAS2mJ,GAAGzyI,EAAElU,GAAG,OAAOwmJ,GAAG,EAAE,EAAEtyI,EAAElU,EAAE,CAChX,SAAS4qF,GAAG12E,EAAElU,GAAG,MAAG,oBAAoBA,GAASkU,EAAEA,IAAIlU,EAAEkU,GAAG,WAAWlU,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAASkU,EAAEA,IAAIlU,EAAE+nB,QAAQ7T,EAAE,WAAWlU,EAAE+nB,QAAQ,IAAI,QAA1E,CAA2E,CAAC,SAAS6+H,GAAG1yI,EAAElU,EAAE8Q,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEga,OAAO,CAAC5W,IAAI,KAAYsyI,GAAG,EAAE,EAAE57D,GAAGhjF,KAAK,KAAK5H,EAAEkU,GAAGpD,EAAE,CAAC,SAAS+1I,KAAK,CAAC,SAASC,GAAG5yI,EAAElU,GAAG,IAAI8Q,EAAEi0I,KAAK/kJ,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI8oB,EAAEhY,EAAEs2H,cAAc,OAAG,OAAOt+G,GAAG,OAAO9oB,GAAGqkJ,GAAGrkJ,EAAE8oB,EAAE,IAAWA,EAAE,IAAGhY,EAAEs2H,cAAc,CAAClzH,EAAElU,GAAUkU,EAAC,CAC7Z,SAASs0C,GAAGt0C,EAAElU,GAAG,IAAI8Q,EAAEi0I,KAAK/kJ,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI8oB,EAAEhY,EAAEs2H,cAAc,OAAG,OAAOt+G,GAAG,OAAO9oB,GAAGqkJ,GAAGrkJ,EAAE8oB,EAAE,IAAWA,EAAE,IAAG5U,EAAEA,IAAIpD,EAAEs2H,cAAc,CAAClzH,EAAElU,GAAUkU,EAAC,CAAC,SAAS6yI,GAAG7yI,EAAElU,EAAE8Q,GAAG,OAAG,KAAQ,GAAHkzI,KAAc9vI,EAAE+tI,YAAY/tI,EAAE+tI,WAAU,EAAGV,IAAG,GAAIrtI,EAAEkzH,cAAct2H,IAAE4kI,GAAG5kI,EAAE9Q,KAAK8Q,EAAE+4H,KAAK/pB,GAAEwhC,OAAOxwI,EAAE+xI,IAAI/xI,EAAEoD,EAAE+tI,WAAU,GAAWjiJ,EAAC,CAAC,SAASgnJ,GAAG9yI,EAAElU,GAAG,IAAI8Q,EAAE4R,GAAEA,GAAE,IAAI5R,GAAG,EAAEA,EAAEA,EAAE,EAAEoD,GAAE,GAAI,IAAI4U,EAAEi7H,GAAGpxB,WAAWoxB,GAAGpxB,WAAW,CAAC,EAAE,IAAIz+G,GAAE,GAAIlU,GAAG,CAAC,QAAQ0iB,GAAE5R,EAAEizI,GAAGpxB,WAAW7pG,CAAC,CAAC,CAAC,SAASwvE,KAAK,OAAOysD,KAAK3d,aAAa,CAC1d,SAAS6f,GAAG/yI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAEo+H,GAAGhzI,GAAkE,GAA/DpD,EAAE,CAAC0xI,KAAK15H,EAAE4Z,OAAO5xB,EAAEq0I,eAAc,EAAGC,WAAW,KAAK79H,KAAK,MAAS4/H,GAAGjzI,GAAGkzI,GAAGpnJ,EAAE8Q,QAAQ,GAAiB,QAAdA,EAAE6wI,GAAGztI,EAAElU,EAAE8Q,EAAEgY,IAAY,CAAWs9H,GAAGt1I,EAAEoD,EAAE4U,EAAX69F,MAAgB0gC,GAAGv2I,EAAE9Q,EAAE8oB,EAAE,CAAC,CAC/K,SAASi0F,GAAG7oG,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAEo+H,GAAGhzI,GAAG1N,EAAE,CAACg8I,KAAK15H,EAAE4Z,OAAO5xB,EAAEq0I,eAAc,EAAGC,WAAW,KAAK79H,KAAK,MAAM,GAAG4/H,GAAGjzI,GAAGkzI,GAAGpnJ,EAAEwG,OAAO,CAAC,IAAIs0B,EAAE5mB,EAAE+yH,UAAU,GAAG,IAAI/yH,EAAEotI,QAAQ,OAAOxmH,GAAG,IAAIA,EAAEwmH,QAAiC,QAAxBxmH,EAAE96B,EAAEklJ,qBAA8B,IAAI,IAAItiI,EAAE5iB,EAAEqlJ,kBAAkB7kI,EAAEsa,EAAElY,EAAE9R,GAAqC,GAAlCtK,EAAE2+I,eAAc,EAAG3+I,EAAE4+I,WAAW5kI,EAAKk1H,GAAGl1H,EAAEoC,GAAG,CAAC,IAAIzO,EAAEnU,EAAE4hJ,YAA+E,OAAnE,OAAOztI,GAAG3N,EAAE+gB,KAAK/gB,EAAEk7I,GAAG1hJ,KAAKwG,EAAE+gB,KAAKpT,EAAEoT,KAAKpT,EAAEoT,KAAK/gB,QAAGxG,EAAE4hJ,YAAYp7I,EAAQ,CAAC,CAAC,MAAMuW,GAAG,CAAwB,QAAdjM,EAAE6wI,GAAGztI,EAAElU,EAAEwG,EAAEsiB,MAAoBs9H,GAAGt1I,EAAEoD,EAAE4U,EAAbtiB,EAAEmgH,MAAgB0gC,GAAGv2I,EAAE9Q,EAAE8oB,GAAG,CAAC,CAC/c,SAASq+H,GAAGjzI,GAAG,IAAIlU,EAAEkU,EAAE+yH,UAAU,OAAO/yH,IAAI4rG,IAAG,OAAO9/G,GAAGA,IAAI8/G,EAAC,CAAC,SAASsnC,GAAGlzI,EAAElU,GAAGkkJ,GAAGD,IAAG,EAAG,IAAInzI,EAAEoD,EAAEmuI,QAAQ,OAAOvxI,EAAE9Q,EAAEunB,KAAKvnB,GAAGA,EAAEunB,KAAKzW,EAAEyW,KAAKzW,EAAEyW,KAAKvnB,GAAGkU,EAAEmuI,QAAQriJ,CAAC,CAAC,SAASqnJ,GAAGnzI,EAAElU,EAAE8Q,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAIgY,EAAE9oB,EAAEshJ,MAAwBxwI,GAAlBgY,GAAG5U,EAAEq1H,aAAkBvpI,EAAEshJ,MAAMxwI,EAAEm5H,GAAG/1H,EAAEpD,EAAE,CAAC,CAC9P,IAAI4zI,GAAG,CAAC4C,YAAY9F,GAAG+F,YAAYlhC,GAAEmhC,WAAWnhC,GAAE/lF,UAAU+lF,GAAEohC,oBAAoBphC,GAAEqhC,mBAAmBrhC,GAAEshC,gBAAgBthC,GAAEuhC,QAAQvhC,GAAEwhC,WAAWxhC,GAAEznF,OAAOynF,GAAE7nF,SAAS6nF,GAAEyhC,cAAczhC,GAAE0hC,iBAAiB1hC,GAAE2hC,cAAc3hC,GAAE4hC,iBAAiB5hC,GAAE6hC,qBAAqB7hC,GAAE8hC,MAAM9hC,GAAE+hC,0BAAyB,GAAI7D,GAAG,CAAC+C,YAAY9F,GAAG+F,YAAY,SAASrzI,EAAElU,GAA4C,OAAzC4kJ,KAAKxd,cAAc,CAAClzH,OAAE,IAASlU,EAAE,KAAKA,GAAUkU,CAAC,EAAEszI,WAAWhG,GAAGlhH,UAAUmmH,GAAGgB,oBAAoB,SAASvzI,EAAElU,EAAE8Q,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEga,OAAO,CAAC5W,IAAI,KAAYqyI,GAAG,QAC3f,EAAE37D,GAAGhjF,KAAK,KAAK5H,EAAEkU,GAAGpD,EAAE,EAAE62I,gBAAgB,SAASzzI,EAAElU,GAAG,OAAOumJ,GAAG,QAAQ,EAAEryI,EAAElU,EAAE,EAAE0nJ,mBAAmB,SAASxzI,EAAElU,GAAG,OAAOumJ,GAAG,EAAE,EAAEryI,EAAElU,EAAE,EAAE4nJ,QAAQ,SAAS1zI,EAAElU,GAAG,IAAI8Q,EAAE8zI,KAAqD,OAAhD5kJ,OAAE,IAASA,EAAE,KAAKA,EAAEkU,EAAEA,IAAIpD,EAAEs2H,cAAc,CAAClzH,EAAElU,GAAUkU,CAAC,EAAE2zI,WAAW,SAAS3zI,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE87H,KAAkM,OAA7L5kJ,OAAE,IAAS8Q,EAAEA,EAAE9Q,GAAGA,EAAE8oB,EAAEs+G,cAAct+G,EAAEm5H,UAAUjiJ,EAAEkU,EAAE,CAACmuI,QAAQ,KAAKT,YAAY,KAAKN,MAAM,EAAEgE,SAAS,KAAKJ,oBAAoBhxI,EAAEmxI,kBAAkBrlJ,GAAG8oB,EAAEg8H,MAAM5wI,EAAEA,EAAEA,EAAEoxI,SAAS2B,GAAGr/I,KAAK,KAAKk4G,GAAE5rG,GAAS,CAAC4U,EAAEs+G,cAAclzH,EAAE,EAAE0qB,OAAO,SAAS1qB,GAC3d,OAAdA,EAAE,CAAC6T,QAAQ7T,GAAhB0wI,KAA4Bxd,cAAclzH,CAAC,EAAEsqB,SAASrpB,GAAG2yI,cAAcjB,GAAGkB,iBAAiB,SAAS7zI,GAAG,OAAO0wI,KAAKxd,cAAclzH,CAAC,EAAE8zI,cAAc,WAAW,IAAI9zI,EAAEiB,IAAG,GAAInV,EAAEkU,EAAE,GAA6C,OAA1CA,EAAE8yI,GAAGp/I,KAAK,KAAKsM,EAAE,IAAI0wI,KAAKxd,cAAclzH,EAAQ,CAAClU,EAAEkU,EAAE,EAAE+zI,iBAAiB,WAAW,EAAEC,qBAAqB,SAASh0I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAEg3F,GAAEt5G,EAAEo+I,KAAK,GAAGn+B,GAAE,CAAC,QAAG,IAAS31G,EAAE,MAAM9O,MAAM+b,EAAE,MAAMjN,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAE9Q,IAAO,OAAOgiH,GAAE,MAAMhgH,MAAM+b,EAAE,MAAM,KAAQ,GAAHimI,KAAQ+B,GAAGj9H,EAAE9oB,EAAE8Q,EAAE,CAACtK,EAAE4gI,cAAct2H,EAAE,IAAIgqB,EAAE,CAAC7xB,MAAM6H,EAAE80I,YAAY5lJ,GACvZ,OAD0ZwG,EAAEs+I,MAAMhqH,EAAE2rH,GAAGd,GAAG/9I,KAAK,KAAKkhB,EACpfgS,EAAE5mB,GAAG,CAACA,IAAI4U,EAAEo+G,OAAO,KAAK2e,GAAG,EAAEC,GAAGl+I,KAAK,KAAKkhB,EAAEgS,EAAEhqB,EAAE9Q,QAAG,EAAO,MAAa8Q,CAAC,EAAEq3I,MAAM,WAAW,IAAIj0I,EAAE0wI,KAAK5kJ,EAAEgiH,GAAEqmC,iBAAiB,GAAG5hC,GAAE,CAAC,IAAI31G,EAAEutI,GAAkDr+I,EAAE,IAAIA,EAAE,KAA9C8Q,GAAHstI,KAAU,GAAG,GAAGnV,GAAhBmV,IAAsB,IAAI7zI,SAAS,IAAIuG,GAAuB,GAAPA,EAAEqzI,QAAWnkJ,GAAG,IAAI8Q,EAAEvG,SAAS,KAAKvK,GAAG,GAAG,MAAaA,EAAE,IAAIA,EAAE,KAAf8Q,EAAEszI,MAAmB75I,SAAS,IAAI,IAAI,OAAO2J,EAAEkzH,cAAcpnI,CAAC,EAAEooJ,0BAAyB,GAAI5D,GAAG,CAAC8C,YAAY9F,GAAG+F,YAAYT,GAAGU,WAAWhG,GAAGlhH,UAAUolH,GAAG+B,oBAAoBb,GAAGc,mBAAmBhB,GAAGiB,gBAAgBhB,GAAGiB,QAAQp/F,GAAGq/F,WAAW5C,GAAGrmH,OAAO0nH,GAAG9nH,SAAS,WAAW,OAAOymH,GAAGD,GAAG,EACrhB8C,cAAcjB,GAAGkB,iBAAiB,SAAS7zI,GAAc,OAAO6yI,GAAZhC,KAAiBjoI,GAAEsqH,cAAclzH,EAAE,EAAE8zI,cAAc,WAAgD,MAAM,CAArC/C,GAAGD,IAAI,GAAKD,KAAK3d,cAAyB,EAAE6gB,iBAAiBzC,GAAG0C,qBAAqBzC,GAAG0C,MAAM7vD,GAAG8vD,0BAAyB,GAAI3D,GAAG,CAAC6C,YAAY9F,GAAG+F,YAAYT,GAAGU,WAAWhG,GAAGlhH,UAAUolH,GAAG+B,oBAAoBb,GAAGc,mBAAmBhB,GAAGiB,gBAAgBhB,GAAGiB,QAAQp/F,GAAGq/F,WAAWtC,GAAG3mH,OAAO0nH,GAAG9nH,SAAS,WAAW,OAAO+mH,GAAGP,GAAG,EAAE8C,cAAcjB,GAAGkB,iBAAiB,SAAS7zI,GAAG,IAAIlU,EAAE+kJ,KAAK,OAAO,OACzfjoI,GAAE9c,EAAEonI,cAAclzH,EAAE6yI,GAAG/mJ,EAAE8c,GAAEsqH,cAAclzH,EAAE,EAAE8zI,cAAc,WAAgD,MAAM,CAArCzC,GAAGP,IAAI,GAAKD,KAAK3d,cAAyB,EAAE6gB,iBAAiBzC,GAAG0C,qBAAqBzC,GAAG0C,MAAM7vD,GAAG8vD,0BAAyB,GAAI,SAASE,GAAGp0I,EAAElU,GAAG,GAAGkU,GAAGA,EAAEi0G,aAAa,CAA4B,IAAI,IAAIr3G,KAAnC9Q,EAAEwiB,EAAE,CAAC,EAAExiB,GAAGkU,EAAEA,EAAEi0G,kBAA4B,IAASnoH,EAAE8Q,KAAK9Q,EAAE8Q,GAAGoD,EAAEpD,IAAI,OAAO9Q,CAAC,CAAC,OAAOA,CAAC,CAAC,SAASuoJ,GAAGr0I,EAAElU,EAAE8Q,EAAEgY,GAA8BhY,EAAE,QAAXA,EAAEA,EAAEgY,EAAtB9oB,EAAEkU,EAAEkzH,sBAAmC,IAASt2H,EAAE9Q,EAAEwiB,EAAE,CAAC,EAAExiB,EAAE8Q,GAAGoD,EAAEkzH,cAAct2H,EAAE,IAAIoD,EAAEotI,QAAQptI,EAAE8tI,YAAYC,UAAUnxI,EAAE,CACrd,IAAI03I,GAAG,CAACC,UAAU,SAASv0I,GAAG,SAAOA,EAAEA,EAAEw0I,kBAAiB1hB,GAAG9yH,KAAKA,CAAI,EAAEy0I,gBAAgB,SAASz0I,EAAElU,EAAE8Q,GAAGoD,EAAEA,EAAEw0I,gBAAgB,IAAI5/H,EAAE69F,KAAIngH,EAAE0gJ,GAAGhzI,GAAG4mB,EAAEwnH,GAAGx5H,EAAEtiB,GAAGs0B,EAAEkX,QAAQhyC,OAAE,IAAS8Q,GAAG,OAAOA,IAAIgqB,EAAEiB,SAASjrB,GAAe,QAAZ9Q,EAAEyiJ,GAAGvuI,EAAE4mB,EAAEt0B,MAAc4/I,GAAGpmJ,EAAEkU,EAAE1N,EAAEsiB,GAAG65H,GAAG3iJ,EAAEkU,EAAE1N,GAAG,EAAEoiJ,oBAAoB,SAAS10I,EAAElU,EAAE8Q,GAAGoD,EAAEA,EAAEw0I,gBAAgB,IAAI5/H,EAAE69F,KAAIngH,EAAE0gJ,GAAGhzI,GAAG4mB,EAAEwnH,GAAGx5H,EAAEtiB,GAAGs0B,EAAE1yB,IAAI,EAAE0yB,EAAEkX,QAAQhyC,OAAE,IAAS8Q,GAAG,OAAOA,IAAIgqB,EAAEiB,SAASjrB,GAAe,QAAZ9Q,EAAEyiJ,GAAGvuI,EAAE4mB,EAAEt0B,MAAc4/I,GAAGpmJ,EAAEkU,EAAE1N,EAAEsiB,GAAG65H,GAAG3iJ,EAAEkU,EAAE1N,GAAG,EAAEqiJ,mBAAmB,SAAS30I,EAAElU,GAAGkU,EAAEA,EAAEw0I,gBAAgB,IAAI53I,EAAE61G,KAAI79F,EACnfo+H,GAAGhzI,GAAG1N,EAAE87I,GAAGxxI,EAAEgY,GAAGtiB,EAAE4B,IAAI,OAAE,IAASpI,GAAG,OAAOA,IAAIwG,EAAEu1B,SAAS/7B,GAAe,QAAZA,EAAEyiJ,GAAGvuI,EAAE1N,EAAEsiB,MAAcs9H,GAAGpmJ,EAAEkU,EAAE4U,EAAEhY,GAAG6xI,GAAG3iJ,EAAEkU,EAAE4U,GAAG,GAAG,SAASggI,GAAG50I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,GAAiB,MAAM,oBAApB1O,EAAEA,EAAE4xH,WAAsCijB,sBAAsB70I,EAAE60I,sBAAsBjgI,EAAEgS,EAAElY,IAAG5iB,EAAEuB,YAAWvB,EAAEuB,UAAUynJ,wBAAsBrT,GAAG7kI,EAAEgY,KAAK6sH,GAAGnvI,EAAEs0B,GAAK,CAC1S,SAASmuH,GAAG/0I,EAAElU,EAAE8Q,GAAG,IAAIgY,GAAE,EAAGtiB,EAAEi2I,GAAO3hH,EAAE96B,EAAEkpJ,YAA2W,MAA/V,kBAAkBpuH,GAAG,OAAOA,EAAEA,EAAE0mH,GAAG1mH,IAAIt0B,EAAEw2I,GAAGh9I,GAAG28I,GAAG16B,GAAEl6F,QAAyB+S,GAAGhS,EAAE,QAAtBA,EAAE9oB,EAAE68I,oBAA4B,IAAS/zH,GAAG8zH,GAAG1oI,EAAE1N,GAAGi2I,IAAIz8I,EAAE,IAAIA,EAAE8Q,EAAEgqB,GAAG5mB,EAAEkzH,cAAc,OAAOpnI,EAAEikG,YAAO,IAASjkG,EAAEikG,MAAMjkG,EAAEikG,MAAM,KAAKjkG,EAAEmpJ,QAAQX,GAAGt0I,EAAE4xH,UAAU9lI,EAAEA,EAAE0oJ,gBAAgBx0I,EAAE4U,KAAI5U,EAAEA,EAAE4xH,WAAYgX,4CAA4Ct2I,EAAE0N,EAAE6oI,0CAA0CjiH,GAAU96B,CAAC,CAC5Z,SAASopJ,GAAGl1I,EAAElU,EAAE8Q,EAAEgY,GAAG5U,EAAElU,EAAEikG,MAAM,oBAAoBjkG,EAAEqpJ,2BAA2BrpJ,EAAEqpJ,0BAA0Bv4I,EAAEgY,GAAG,oBAAoB9oB,EAAEspJ,kCAAkCtpJ,EAAEspJ,iCAAiCx4I,EAAEgY,GAAG9oB,EAAEikG,QAAQ/vF,GAAGs0I,GAAGI,oBAAoB5oJ,EAAEA,EAAEikG,MAAM,KAAK,CACpQ,SAASslD,GAAGr1I,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAE0N,EAAE4xH,UAAUt/H,EAAEs2B,MAAMhsB,EAAEtK,EAAEy9F,MAAM/vF,EAAEkzH,cAAc5gI,EAAEu5I,KAAK,CAAC,EAAEgC,GAAG7tI,GAAG,IAAI4mB,EAAE96B,EAAEkpJ,YAAY,kBAAkBpuH,GAAG,OAAOA,EAAEt0B,EAAEuuF,QAAQysD,GAAG1mH,IAAIA,EAAEkiH,GAAGh9I,GAAG28I,GAAG16B,GAAEl6F,QAAQvhB,EAAEuuF,QAAQ6nD,GAAG1oI,EAAE4mB,IAAIt0B,EAAEy9F,MAAM/vF,EAAEkzH,cAA2C,oBAA7BtsG,EAAE96B,EAAEwpJ,4BAAiDjB,GAAGr0I,EAAElU,EAAE86B,EAAEhqB,GAAGtK,EAAEy9F,MAAM/vF,EAAEkzH,eAAe,oBAAoBpnI,EAAEwpJ,0BAA0B,oBAAoBhjJ,EAAEijJ,yBAAyB,oBAAoBjjJ,EAAEkjJ,2BAA2B,oBAAoBljJ,EAAEmjJ,qBAAqB3pJ,EAAEwG,EAAEy9F,MACrf,oBAAoBz9F,EAAEmjJ,oBAAoBnjJ,EAAEmjJ,qBAAqB,oBAAoBnjJ,EAAEkjJ,2BAA2BljJ,EAAEkjJ,4BAA4B1pJ,IAAIwG,EAAEy9F,OAAOukD,GAAGI,oBAAoBpiJ,EAAEA,EAAEy9F,MAAM,MAAM2+C,GAAG1uI,EAAEpD,EAAEtK,EAAEsiB,GAAGtiB,EAAEy9F,MAAM/vF,EAAEkzH,eAAe,oBAAoB5gI,EAAE4oH,oBAAoBl7G,EAAEgzH,OAAO,QAAQ,CAAC,SAAS0iB,GAAG11I,EAAElU,GAAG,IAAI,IAAI8Q,EAAE,GAAGgY,EAAE9oB,EAAE,GAAG8Q,GAAGguH,EAAGh2G,GAAGA,EAAEA,EAAE0iG,aAAa1iG,GAAG,IAAItiB,EAAEsK,CAAC,CAAC,MAAMgqB,GAAGt0B,EAAE,6BAA6Bs0B,EAAExQ,QAAQ,KAAKwQ,EAAE9B,KAAK,CAAC,MAAM,CAAC/vB,MAAMiL,EAAEnI,OAAO/L,EAAEg5B,MAAMxyB,EAAEqjJ,OAAO,KAAK,CAC1d,SAASC,GAAG51I,EAAElU,EAAE8Q,GAAG,MAAM,CAAC7H,MAAMiL,EAAEnI,OAAO,KAAKitB,MAAM,MAAMloB,EAAEA,EAAE,KAAK+4I,OAAO,MAAM7pJ,EAAEA,EAAE,KAAK,CAAC,SAAS+pJ,GAAG71I,EAAElU,GAAG,IAAIk0B,QAAQlG,MAAMhuB,EAAEiJ,MAAM,CAAC,MAAM6H,GAAGwqC,YAAW,WAAW,MAAMxqC,CAAE,GAAE,CAAC,CAAC,IAAIk5I,GAAG,oBAAoBC,QAAQA,QAAQx7H,IAAI,SAASy7H,GAAGh2I,EAAElU,EAAE8Q,IAAGA,EAAEwxI,IAAI,EAAExxI,IAAK1I,IAAI,EAAE0I,EAAEkhC,QAAQ,CAACxI,QAAQ,MAAM,IAAI1gB,EAAE9oB,EAAEiJ,MAAsD,OAAhD6H,EAAEirB,SAAS,WAAWouH,KAAKA,IAAG,EAAGC,GAAGthI,GAAGihI,GAAG71I,EAAElU,EAAE,EAAS8Q,CAAC,CACrW,SAASu5I,GAAGn2I,EAAElU,EAAE8Q,IAAGA,EAAEwxI,IAAI,EAAExxI,IAAK1I,IAAI,EAAE,IAAI0gB,EAAE5U,EAAE2Z,KAAKy8H,yBAAyB,GAAG,oBAAoBxhI,EAAE,CAAC,IAAItiB,EAAExG,EAAEiJ,MAAM6H,EAAEkhC,QAAQ,WAAW,OAAOlpB,EAAEtiB,EAAE,EAAEsK,EAAEirB,SAAS,WAAWguH,GAAG71I,EAAElU,EAAE,CAAC,CAAC,IAAI86B,EAAE5mB,EAAE4xH,UAA8O,OAApO,OAAOhrG,GAAG,oBAAoBA,EAAEyvH,oBAAoBz5I,EAAEirB,SAAS,WAAWguH,GAAG71I,EAAElU,GAAG,oBAAoB8oB,IAAI,OAAO0hI,GAAGA,GAAG,IAAIvuB,IAAI,CAAC5rH,OAAOm6I,GAAGtzI,IAAI7G,OAAO,IAAIS,EAAE9Q,EAAEg5B,MAAM3oB,KAAKk6I,kBAAkBvqJ,EAAEiJ,MAAM,CAACwhJ,eAAe,OAAO35I,EAAEA,EAAE,IAAI,GAAUA,CAAC,CACnb,SAAS45I,GAAGx2I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAEy2I,UAAU,GAAG,OAAO7hI,EAAE,CAACA,EAAE5U,EAAEy2I,UAAU,IAAIX,GAAG,IAAIxjJ,EAAE,IAAIy1H,IAAInzG,EAAE4F,IAAI1uB,EAAEwG,EAAE,WAAiB,KAAXA,EAAEsiB,EAAEP,IAAIvoB,MAAgBwG,EAAE,IAAIy1H,IAAInzG,EAAE4F,IAAI1uB,EAAEwG,IAAIA,EAAE8yI,IAAIxoI,KAAKtK,EAAE0Q,IAAIpG,GAAGoD,EAAE02I,GAAGhjJ,KAAK,KAAKsM,EAAElU,EAAE8Q,GAAG9Q,EAAEknH,KAAKhzG,EAAEA,GAAG,CAAC,SAAS22I,GAAG32I,GAAG,EAAE,CAAC,IAAIlU,EAA4E,IAAvEA,EAAE,KAAKkU,EAAE9L,OAAsBpI,EAAE,QAApBA,EAAEkU,EAAEkzH,gBAAyB,OAAOpnI,EAAEqnI,YAAuBrnI,EAAE,OAAOkU,EAAEA,EAAEA,EAAEs3G,MAAM,OAAO,OAAOt3G,GAAG,OAAO,IAAI,CAChW,SAAS42I,GAAG52I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,OAAG,KAAY,EAAP0N,EAAEsN,OAAetN,IAAIlU,EAAEkU,EAAEgzH,OAAO,OAAOhzH,EAAEgzH,OAAO,IAAIp2H,EAAEo2H,OAAO,OAAOp2H,EAAEo2H,QAAQ,MAAM,IAAIp2H,EAAE1I,MAAM,OAAO0I,EAAEm2H,UAAUn2H,EAAE1I,IAAI,KAAIpI,EAAEsiJ,IAAI,EAAE,IAAKl6I,IAAI,EAAEq6I,GAAG3xI,EAAE9Q,EAAE,KAAK8Q,EAAEwwI,OAAO,GAAGptI,IAAEA,EAAEgzH,OAAO,MAAMhzH,EAAEotI,MAAM96I,EAAS0N,EAAC,CAAC,IAAI62I,GAAGztB,EAAG0tB,kBAAkBzJ,IAAG,EAAG,SAAS0J,GAAG/2I,EAAElU,EAAE8Q,EAAEgY,GAAG9oB,EAAEwnI,MAAM,OAAOtzH,EAAEwsI,GAAG1gJ,EAAE,KAAK8Q,EAAEgY,GAAG23H,GAAGzgJ,EAAEkU,EAAEszH,MAAM12H,EAAEgY,EAAE,CACnV,SAASoiI,GAAGh3I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAGsK,EAAEA,EAAEozE,OAAO,IAAIppD,EAAE96B,EAAEqhC,IAAqC,OAAjCuqC,GAAG5rE,EAAEwG,GAAGsiB,EAAEw7H,GAAGpwI,EAAElU,EAAE8Q,EAAEgY,EAAEgS,EAAEt0B,GAAGsK,EAAE6zI,KAAQ,OAAOzwI,GAAIqtI,IAA2E96B,IAAG31G,GAAGytI,GAAGv+I,GAAGA,EAAEknI,OAAO,EAAE+jB,GAAG/2I,EAAElU,EAAE8oB,EAAEtiB,GAAUxG,EAAEwnI,QAA7GxnI,EAAEgiJ,YAAY9tI,EAAE8tI,YAAYhiJ,EAAEknI,QAAQ,KAAKhzH,EAAEotI,QAAQ96I,EAAE2kJ,GAAGj3I,EAAElU,EAAEwG,GAAoD,CACzN,SAAS4kJ,GAAGl3I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,GAAG,OAAO0N,EAAE,CAAC,IAAI4mB,EAAEhqB,EAAE+c,KAAK,MAAG,oBAAoBiN,GAAIuwH,GAAGvwH,SAAI,IAASA,EAAEqtF,cAAc,OAAOr3G,EAAEwjB,cAAS,IAASxjB,EAAEq3G,eAAoDj0G,EAAEmsI,GAAGvvI,EAAE+c,KAAK,KAAK/E,EAAE9oB,EAAEA,EAAEwhB,KAAKhb,IAAK66B,IAAIrhC,EAAEqhC,IAAIntB,EAAEs3G,OAAOxrH,EAASA,EAAEwnI,MAAMtzH,IAArGlU,EAAEoI,IAAI,GAAGpI,EAAE6tB,KAAKiN,EAAEwwH,GAAGp3I,EAAElU,EAAE86B,EAAEhS,EAAEtiB,GAAyE,CAAW,GAAVs0B,EAAE5mB,EAAEszH,MAAS,KAAKtzH,EAAEotI,MAAM96I,GAAG,CAAC,IAAIoc,EAAEkY,EAAEykH,cAA0C,IAAhBzuI,EAAE,QAAdA,EAAEA,EAAEwjB,SAAmBxjB,EAAE6kI,IAAQ/yH,EAAEkG,IAAI5U,EAAEmtB,MAAMrhC,EAAEqhC,IAAI,OAAO8pH,GAAGj3I,EAAElU,EAAEwG,EAAE,CAA6C,OAA5CxG,EAAEknI,OAAO,GAAEhzH,EAAEisI,GAAGrlH,EAAEhS,IAAKuY,IAAIrhC,EAAEqhC,IAAIntB,EAAEs3G,OAAOxrH,EAASA,EAAEwnI,MAAMtzH,CAAC,CAC1b,SAASo3I,GAAGp3I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,GAAG,OAAO0N,EAAE,CAAC,IAAI4mB,EAAE5mB,EAAEqrI,cAAc,GAAG5J,GAAG76G,EAAEhS,IAAI5U,EAAEmtB,MAAMrhC,EAAEqhC,IAAI,IAAGkgH,IAAG,EAAGvhJ,EAAEg/I,aAAal2H,EAAEgS,EAAE,KAAK5mB,EAAEotI,MAAM96I,GAAsC,OAAOxG,EAAEshJ,MAAMptI,EAAEotI,MAAM6J,GAAGj3I,EAAElU,EAAEwG,GAAjE,KAAa,OAAR0N,EAAEgzH,SAAgBqa,IAAG,EAAyC,EAAC,OAAOgK,GAAGr3I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAE,CACxN,SAASglJ,GAAGt3I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE9oB,EAAEg/I,aAAax4I,EAAEsiB,EAAE+1E,SAAS/jE,EAAE,OAAO5mB,EAAEA,EAAEkzH,cAAc,KAAK,GAAG,WAAWt+G,EAAEtH,KAAK,GAAG,KAAY,EAAPxhB,EAAEwhB,MAAQxhB,EAAEonI,cAAc,CAACqkB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAMnP,GAAEoP,GAAGC,IAAIA,IAAI/6I,MAAM,CAAC,GAAG,KAAO,WAAFA,GAAc,OAAOoD,EAAE,OAAO4mB,EAAEA,EAAE2wH,UAAU36I,EAAEA,EAAE9Q,EAAEshJ,MAAMthJ,EAAEmhJ,WAAW,WAAWnhJ,EAAEonI,cAAc,CAACqkB,UAAUv3I,EAAEw3I,UAAU,KAAKC,YAAY,MAAM3rJ,EAAEgiJ,YAAY,KAAKxF,GAAEoP,GAAGC,IAAIA,IAAI33I,EAAE,KAAKlU,EAAEonI,cAAc,CAACqkB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAM7iI,EAAE,OAAOgS,EAAEA,EAAE2wH,UAAU36I,EAAE0rI,GAAEoP,GAAGC,IAAIA,IAAI/iI,CAAC,MAAM,OACtfgS,GAAGhS,EAAEgS,EAAE2wH,UAAU36I,EAAE9Q,EAAEonI,cAAc,MAAMt+G,EAAEhY,EAAE0rI,GAAEoP,GAAGC,IAAIA,IAAI/iI,EAAc,OAAZmiI,GAAG/2I,EAAElU,EAAEwG,EAAEsK,GAAU9Q,EAAEwnI,KAAK,CAAC,SAASskB,GAAG53I,EAAElU,GAAG,IAAI8Q,EAAE9Q,EAAEqhC,KAAO,OAAOntB,GAAG,OAAOpD,GAAG,OAAOoD,GAAGA,EAAEmtB,MAAMvwB,KAAE9Q,EAAEknI,OAAO,IAAIlnI,EAAEknI,OAAO,QAAO,CAAC,SAASqkB,GAAGr3I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,IAAIs0B,EAAEkiH,GAAGlsI,GAAG6rI,GAAG16B,GAAEl6F,QAAmD,OAA3C+S,EAAE8hH,GAAG58I,EAAE86B,GAAG8wC,GAAG5rE,EAAEwG,GAAGsK,EAAEwzI,GAAGpwI,EAAElU,EAAE8Q,EAAEgY,EAAEgS,EAAEt0B,GAAGsiB,EAAE67H,KAAQ,OAAOzwI,GAAIqtI,IAA2E96B,IAAG39F,GAAGy1H,GAAGv+I,GAAGA,EAAEknI,OAAO,EAAE+jB,GAAG/2I,EAAElU,EAAE8Q,EAAEtK,GAAUxG,EAAEwnI,QAA7GxnI,EAAEgiJ,YAAY9tI,EAAE8tI,YAAYhiJ,EAAEknI,QAAQ,KAAKhzH,EAAEotI,QAAQ96I,EAAE2kJ,GAAGj3I,EAAElU,EAAEwG,GAAoD,CACla,SAASulJ,GAAG73I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,GAAGw2I,GAAGlsI,GAAG,CAAC,IAAIgqB,GAAE,EAAGwiH,GAAGt9I,EAAE,MAAM86B,GAAE,EAAW,GAAR8wC,GAAG5rE,EAAEwG,GAAM,OAAOxG,EAAE8lI,UAAUkmB,GAAG93I,EAAElU,GAAGipJ,GAAGjpJ,EAAE8Q,EAAEgY,GAAGygI,GAAGvpJ,EAAE8Q,EAAEgY,EAAEtiB,GAAGsiB,GAAE,OAAQ,GAAG,OAAO5U,EAAE,CAAC,IAAI0O,EAAE5iB,EAAE8lI,UAAUtlH,EAAExgB,EAAEu/I,cAAc38H,EAAEka,MAAMtc,EAAE,IAAIrM,EAAEyO,EAAEmyE,QAAQh4E,EAAEjM,EAAEo4I,YAAY,kBAAkBnsI,GAAG,OAAOA,EAAEA,EAAEykI,GAAGzkI,GAAyBA,EAAE6/H,GAAG58I,EAA1B+c,EAAEigI,GAAGlsI,GAAG6rI,GAAG16B,GAAEl6F,SAAmB,IAAItJ,EAAE3N,EAAE04I,yBAAyBxpI,EAAE,oBAAoBvB,GAAG,oBAAoBmE,EAAE6mI,wBAAwBzpI,GAAG,oBAAoB4C,EAAE0mI,kCAAkC,oBAAoB1mI,EAAEymI,4BAC1d7oI,IAAIsI,GAAG3U,IAAI4I,IAAIqsI,GAAGppJ,EAAE4iB,EAAEkG,EAAE/L,GAAG+kI,IAAG,EAAG,IAAI7wI,EAAEjR,EAAEonI,cAAcxkH,EAAEqhF,MAAMhzF,EAAE2xI,GAAG5iJ,EAAE8oB,EAAElG,EAAEpc,GAAG2N,EAAEnU,EAAEonI,cAAc5mH,IAAIsI,GAAG7X,IAAIkD,GAAGuoI,GAAG30H,SAAS+5H,IAAI,oBAAoBrjI,IAAI8pI,GAAGvoJ,EAAE8Q,EAAE2N,EAAEqK,GAAG3U,EAAEnU,EAAEonI,gBAAgB5mH,EAAEshI,IAAIgH,GAAG9oJ,EAAE8Q,EAAE0P,EAAEsI,EAAE7X,EAAEkD,EAAE4I,KAAKiD,GAAG,oBAAoB4C,EAAE8mI,2BAA2B,oBAAoB9mI,EAAE+mI,qBAAqB,oBAAoB/mI,EAAE+mI,oBAAoB/mI,EAAE+mI,qBAAqB,oBAAoB/mI,EAAE8mI,2BAA2B9mI,EAAE8mI,6BAA6B,oBAAoB9mI,EAAEwsG,oBAAoBpvH,EAAEknI,OAAO,WAClf,oBAAoBtkH,EAAEwsG,oBAAoBpvH,EAAEknI,OAAO,SAASlnI,EAAEu/I,cAAcz2H,EAAE9oB,EAAEonI,cAAcjzH,GAAGyO,EAAEka,MAAMhU,EAAElG,EAAEqhF,MAAM9vF,EAAEyO,EAAEmyE,QAAQh4E,EAAE+L,EAAEtI,IAAI,oBAAoBoC,EAAEwsG,oBAAoBpvH,EAAEknI,OAAO,SAASp+G,GAAE,EAAG,KAAK,CAAClG,EAAE5iB,EAAE8lI,UAAU3jD,GAAGjuE,EAAElU,GAAGwgB,EAAExgB,EAAEu/I,cAAcxiI,EAAE/c,EAAE6tB,OAAO7tB,EAAEs/G,YAAY9+F,EAAE8nI,GAAGtoJ,EAAE6tB,KAAKrN,GAAGoC,EAAEka,MAAM/f,EAAEiD,EAAEhgB,EAAEg/I,aAAa/tI,EAAE2R,EAAEmyE,QAAwB,kBAAhB5gF,EAAErD,EAAEo4I,cAAiC,OAAO/0I,EAAEA,EAAEqtI,GAAGrtI,GAAyBA,EAAEyoI,GAAG58I,EAA1BmU,EAAE6oI,GAAGlsI,GAAG6rI,GAAG16B,GAAEl6F,SAAmB,IAAIpL,EAAE7L,EAAE04I,0BAA0B/qI,EAAE,oBAAoB9B,GAAG,oBAAoBiG,EAAE6mI,0BAC9e,oBAAoB7mI,EAAE0mI,kCAAkC,oBAAoB1mI,EAAEymI,4BAA4B7oI,IAAIR,GAAG/O,IAAIkD,IAAIi1I,GAAGppJ,EAAE4iB,EAAEkG,EAAE3U,GAAG2tI,IAAG,EAAG7wI,EAAEjR,EAAEonI,cAAcxkH,EAAEqhF,MAAMhzF,EAAE2xI,GAAG5iJ,EAAE8oB,EAAElG,EAAEpc,GAAG,IAAIgY,EAAExe,EAAEonI,cAAc5mH,IAAIR,GAAG/O,IAAIuN,GAAGk+H,GAAG30H,SAAS+5H,IAAI,oBAAoBnlI,IAAI4rI,GAAGvoJ,EAAE8Q,EAAE6L,EAAEmM,GAAGtK,EAAExe,EAAEonI,gBAAgBrqH,EAAE+kI,IAAIgH,GAAG9oJ,EAAE8Q,EAAEiM,EAAE+L,EAAE7X,EAAEuN,EAAErK,KAAI,IAAKsK,GAAG,oBAAoBmE,EAAEqpI,4BAA4B,oBAAoBrpI,EAAEspI,sBAAsB,oBAAoBtpI,EAAEspI,qBAAqBtpI,EAAEspI,oBAAoBpjI,EAAEtK,EAAErK,GAAG,oBAAoByO,EAAEqpI,4BAC5frpI,EAAEqpI,2BAA2BnjI,EAAEtK,EAAErK,IAAI,oBAAoByO,EAAE4sG,qBAAqBxvH,EAAEknI,OAAO,GAAG,oBAAoBtkH,EAAE6mI,0BAA0BzpJ,EAAEknI,OAAO,QAAQ,oBAAoBtkH,EAAE4sG,oBAAoBhvG,IAAItM,EAAEqrI,eAAetuI,IAAIiD,EAAEkzH,gBAAgBpnI,EAAEknI,OAAO,GAAG,oBAAoBtkH,EAAE6mI,yBAAyBjpI,IAAItM,EAAEqrI,eAAetuI,IAAIiD,EAAEkzH,gBAAgBpnI,EAAEknI,OAAO,MAAMlnI,EAAEu/I,cAAcz2H,EAAE9oB,EAAEonI,cAAc5oH,GAAGoE,EAAEka,MAAMhU,EAAElG,EAAEqhF,MAAMzlF,EAAEoE,EAAEmyE,QAAQ5gF,EAAE2U,EAAE/L,IAAI,oBAAoB6F,EAAE4sG,oBAAoBhvG,IAAItM,EAAEqrI,eAAetuI,IACjfiD,EAAEkzH,gBAAgBpnI,EAAEknI,OAAO,GAAG,oBAAoBtkH,EAAE6mI,yBAAyBjpI,IAAItM,EAAEqrI,eAAetuI,IAAIiD,EAAEkzH,gBAAgBpnI,EAAEknI,OAAO,MAAMp+G,GAAE,EAAG,CAAC,OAAOqjI,GAAGj4I,EAAElU,EAAE8Q,EAAEgY,EAAEgS,EAAEt0B,EAAE,CACnK,SAAS2lJ,GAAGj4I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,GAAGgxH,GAAG53I,EAAElU,GAAG,IAAI4iB,EAAE,KAAa,IAAR5iB,EAAEknI,OAAW,IAAIp+G,IAAIlG,EAAE,OAAOpc,GAAGg3I,GAAGx9I,EAAE8Q,GAAE,GAAIq6I,GAAGj3I,EAAElU,EAAE86B,GAAGhS,EAAE9oB,EAAE8lI,UAAUilB,GAAGhjI,QAAQ/nB,EAAE,IAAIwgB,EAAEoC,GAAG,oBAAoB9R,EAAEw5I,yBAAyB,KAAKxhI,EAAEo7D,SAAwI,OAA/HlkF,EAAEknI,OAAO,EAAE,OAAOhzH,GAAG0O,GAAG5iB,EAAEwnI,MAAMiZ,GAAGzgJ,EAAEkU,EAAEszH,MAAM,KAAK1sG,GAAG96B,EAAEwnI,MAAMiZ,GAAGzgJ,EAAE,KAAKwgB,EAAEsa,IAAImwH,GAAG/2I,EAAElU,EAAEwgB,EAAEsa,GAAG96B,EAAEonI,cAAct+G,EAAEm7E,MAAMz9F,GAAGg3I,GAAGx9I,EAAE8Q,GAAE,GAAW9Q,EAAEwnI,KAAK,CAAC,SAAS4kB,GAAGl4I,GAAG,IAAIlU,EAAEkU,EAAE4xH,UAAU9lI,EAAEqsJ,eAAelP,GAAGjpI,EAAElU,EAAEqsJ,eAAersJ,EAAEqsJ,iBAAiBrsJ,EAAE+0F,SAAS/0F,EAAE+0F,SAASooD,GAAGjpI,EAAElU,EAAE+0F,SAAQ,GAAIouD,GAAGjvI,EAAElU,EAAE8rI,cAAc,CAC5e,SAASnkE,GAAGzzD,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAuC,OAApCi5I,KAAKC,GAAGl5I,GAAGxG,EAAEknI,OAAO,IAAI+jB,GAAG/2I,EAAElU,EAAE8Q,EAAEgY,GAAU9oB,EAAEwnI,KAAK,CAAC,IAaqL8kB,GAAGC,GAAGC,GAAGC,GAb1LC,GAAG,CAACrlB,WAAW,KAAK4X,YAAY,KAAKC,UAAU,GAAG,SAASyN,GAAGz4I,GAAG,MAAM,CAACu3I,UAAUv3I,EAAEw3I,UAAU,KAAKC,YAAY,KAAK,CAClM,SAASiB,GAAG14I,EAAElU,EAAE8Q,GAAG,IAA0D0P,EAAtDsI,EAAE9oB,EAAEg/I,aAAax4I,EAAEu7G,GAAEh6F,QAAQ+S,GAAE,EAAGlY,EAAE,KAAa,IAAR5iB,EAAEknI,OAAqJ,IAAvI1mH,EAAEoC,KAAKpC,GAAE,OAAOtM,GAAG,OAAOA,EAAEkzH,gBAAiB,KAAO,EAAF5gI,IAASga,GAAEsa,GAAE,EAAG96B,EAAEknI,QAAQ,KAAY,OAAOhzH,GAAG,OAAOA,EAAEkzH,gBAAc5gI,GAAG,GAAEg2I,GAAEz6B,GAAI,EAAFv7G,GAAQ,OAAO0N,EAA2B,OAAxBkrI,GAAGp/I,GAAwB,QAArBkU,EAAElU,EAAEonI,gBAA2C,QAAflzH,EAAEA,EAAEmzH,aAA4B,KAAY,EAAPrnI,EAAEwhB,MAAQxhB,EAAEshJ,MAAM,EAAE,OAAOptI,EAAEqc,KAAKvwB,EAAEshJ,MAAM,EAAEthJ,EAAEshJ,MAAM,WAAW,OAAK1+H,EAAEkG,EAAE+1E,SAAS3qF,EAAE4U,EAAE+jI,SAAgB/xH,GAAGhS,EAAE9oB,EAAEwhB,KAAKsZ,EAAE96B,EAAEwnI,MAAM5kH,EAAE,CAACpB,KAAK,SAASq9E,SAASj8E,GAAG,KAAO,EAAFkG,IAAM,OAAOgS,GAAGA,EAAEqmH,WAAW,EAAErmH,EAAEkkH,aAC7ep8H,GAAGkY,EAAEgyH,GAAGlqI,EAAEkG,EAAE,EAAE,MAAM5U,EAAEssI,GAAGtsI,EAAE4U,EAAEhY,EAAE,MAAMgqB,EAAE0wF,OAAOxrH,EAAEkU,EAAEs3G,OAAOxrH,EAAE86B,EAAE2sG,QAAQvzH,EAAElU,EAAEwnI,MAAM1sG,EAAE96B,EAAEwnI,MAAMJ,cAAculB,GAAG77I,GAAG9Q,EAAEonI,cAAcslB,GAAGx4I,GAAGyN,GAAG3hB,EAAE4iB,IAAqB,GAAG,QAArBpc,EAAE0N,EAAEkzH,gBAA2C,QAAf5mH,EAAEha,EAAE6gI,YAAqB,OAGpM,SAAYnzH,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,GAAG,GAAG9R,EAAG,OAAW,IAAR9Q,EAAEknI,OAAiBlnI,EAAEknI,QAAQ,IAAwB6lB,GAAG74I,EAAElU,EAAE4iB,EAA3BkG,EAAEghI,GAAG9nJ,MAAM+b,EAAE,SAAsB,OAAO/d,EAAEonI,eAAqBpnI,EAAEwnI,MAAMtzH,EAAEszH,MAAMxnI,EAAEknI,OAAO,IAAI,OAAKpsG,EAAEhS,EAAE+jI,SAASrmJ,EAAExG,EAAEwhB,KAAKsH,EAAEgkI,GAAG,CAACtrI,KAAK,UAAUq9E,SAAS/1E,EAAE+1E,UAAUr4F,EAAE,EAAE,OAAMs0B,EAAE0lH,GAAG1lH,EAAEt0B,EAAEoc,EAAE,OAAQskH,OAAO,EAAEp+G,EAAE0iG,OAAOxrH,EAAE86B,EAAE0wF,OAAOxrH,EAAE8oB,EAAE2+G,QAAQ3sG,EAAE96B,EAAEwnI,MAAM1+G,EAAE,KAAY,EAAP9oB,EAAEwhB,OAASi/H,GAAGzgJ,EAAEkU,EAAEszH,MAAM,KAAK5kH,GAAG5iB,EAAEwnI,MAAMJ,cAAculB,GAAG/pI,GAAG5iB,EAAEonI,cAAcslB,GAAU5xH,GAAE,GAAG,KAAY,EAAP96B,EAAEwhB,MAAQ,OAAOurI,GAAG74I,EAAElU,EAAE4iB,EAAE,MAAM,GAAG,OAAOpc,EAAE+pB,KAAK,CAChd,GADidzH,EAAEtiB,EAAEsvI,aAAatvI,EAAEsvI,YAAYkX,QAC3e,IAAIxsI,EAAEsI,EAAEmkI,KAA0C,OAArCnkI,EAAEtI,EAA0CusI,GAAG74I,EAAElU,EAAE4iB,EAA/BkG,EAAEghI,GAAlBhvH,EAAE94B,MAAM+b,EAAE,MAAa+K,OAAE,GAA0B,CAAwB,GAAvBtI,EAAE,KAAKoC,EAAE1O,EAAEitI,YAAeI,IAAI/gI,EAAE,CAAK,GAAG,QAAPsI,EAAEk5F,IAAc,CAAC,OAAOp/F,GAAGA,GAAG,KAAK,EAAEpc,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,EAChd,KADkdA,EAAE,KAAKA,GAAGsiB,EAAE0gH,eAAe5mH,IAAI,EAAEpc,IAC5eA,IAAIs0B,EAAEokH,YAAYpkH,EAAEokH,UAAU14I,EAAEq7I,GAAG3tI,EAAE1N,GAAG4/I,GAAGt9H,EAAE5U,EAAE1N,GAAG,GAAG,CAA0B,OAAzB0mJ,KAAgCH,GAAG74I,EAAElU,EAAE4iB,EAAlCkG,EAAEghI,GAAG9nJ,MAAM+b,EAAE,OAAyB,CAAC,MAAG,OAAOvX,EAAE+pB,MAAYvwB,EAAEknI,OAAO,IAAIlnI,EAAEwnI,MAAMtzH,EAAEszH,MAAMxnI,EAAEmtJ,GAAGvlJ,KAAK,KAAKsM,GAAG1N,EAAE4mJ,YAAYptJ,EAAE,OAAKkU,EAAE4mB,EAAEmkH,YAAYP,GAAG7C,GAAGr1I,EAAEsvI,aAAa2I,GAAGz+I,EAAEymH,IAAE,EAAGk4B,GAAG,KAAK,OAAOzqI,IAAI+pI,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGC,GAAGlqI,EAAE4nB,GAAGuiH,GAAGnqI,EAAEmtF,SAAS88C,GAAGn+I,GAAGA,EAAE2hB,GAAG3hB,EAAE8oB,EAAE+1E,UAAU7+F,EAAEknI,OAAO,KAAYlnI,EAAC,CALrKqtJ,CAAGn5I,EAAElU,EAAE4iB,EAAEkG,EAAEtI,EAAEha,EAAEsK,GAAG,GAAGgqB,EAAE,CAACA,EAAEhS,EAAE+jI,SAASjqI,EAAE5iB,EAAEwhB,KAAehB,GAAVha,EAAE0N,EAAEszH,OAAUC,QAAQ,IAAItzH,EAAE,CAACqN,KAAK,SAASq9E,SAAS/1E,EAAE+1E,UAChF,OAD0F,KAAO,EAAFj8E,IAAM5iB,EAAEwnI,QAAQhhI,IAAGsiB,EAAE9oB,EAAEwnI,OAAQ2Z,WAAW,EAAEr4H,EAAEk2H,aAAa7qI,EAAEnU,EAAE8+I,UAAU,OAAOh2H,EAAEq3H,GAAG35I,EAAE2N,IAAKm5I,aAA4B,SAAf9mJ,EAAE8mJ,aAAuB,OAAO9sI,EAAEsa,EAAEqlH,GAAG3/H,EAAEsa,IAAIA,EAAE0lH,GAAG1lH,EAAElY,EAAE9R,EAAE,OAAQo2H,OAAO,EAAGpsG,EAAE0wF,OACnfxrH,EAAE8oB,EAAE0iG,OAAOxrH,EAAE8oB,EAAE2+G,QAAQ3sG,EAAE96B,EAAEwnI,MAAM1+G,EAAEA,EAAEgS,EAAEA,EAAE96B,EAAEwnI,MAA8B5kH,EAAE,QAA1BA,EAAE1O,EAAEszH,MAAMJ,eAAyBulB,GAAG77I,GAAG,CAAC26I,UAAU7oI,EAAE6oI,UAAU36I,EAAE46I,UAAU,KAAKC,YAAY/oI,EAAE+oI,aAAa7wH,EAAEssG,cAAcxkH,EAAEkY,EAAEqmH,WAAWjtI,EAAEitI,YAAYrwI,EAAE9Q,EAAEonI,cAAcslB,GAAU5jI,CAAC,CAAoO,OAAzN5U,GAAV4mB,EAAE5mB,EAAEszH,OAAUC,QAAQ3+G,EAAEq3H,GAAGrlH,EAAE,CAACtZ,KAAK,UAAUq9E,SAAS/1E,EAAE+1E,WAAW,KAAY,EAAP7+F,EAAEwhB,QAAUsH,EAAEw4H,MAAMxwI,GAAGgY,EAAE0iG,OAAOxrH,EAAE8oB,EAAE2+G,QAAQ,KAAK,OAAOvzH,IAAkB,QAAdpD,EAAE9Q,EAAE8+I,YAAoB9+I,EAAE8+I,UAAU,CAAC5qI,GAAGlU,EAAEknI,OAAO,IAAIp2H,EAAEjL,KAAKqO,IAAIlU,EAAEwnI,MAAM1+G,EAAE9oB,EAAEonI,cAAc,KAAYt+G,CAAC,CACnd,SAASnH,GAAGzN,EAAElU,GAA8D,OAA3DA,EAAE8sJ,GAAG,CAACtrI,KAAK,UAAUq9E,SAAS7+F,GAAGkU,EAAEsN,KAAK,EAAE,OAAQgqG,OAAOt3G,EAASA,EAAEszH,MAAMxnI,CAAC,CAAC,SAAS+sJ,GAAG74I,EAAElU,EAAE8Q,EAAEgY,GAAwG,OAArG,OAAOA,GAAG42H,GAAG52H,GAAG23H,GAAGzgJ,EAAEkU,EAAEszH,MAAM,KAAK12H,IAAGoD,EAAEyN,GAAG3hB,EAAEA,EAAEg/I,aAAangD,WAAYqoC,OAAO,EAAElnI,EAAEonI,cAAc,KAAYlzH,CAAC,CAGkJ,SAASq5I,GAAGr5I,EAAElU,EAAE8Q,GAAGoD,EAAEotI,OAAOthJ,EAAE,IAAI8oB,EAAE5U,EAAE+yH,UAAU,OAAOn+G,IAAIA,EAAEw4H,OAAOthJ,GAAGkhJ,GAAGhtI,EAAEs3G,OAAOxrH,EAAE8Q,EAAE,CACxc,SAAS08I,GAAGt5I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,IAAIs0B,EAAE5mB,EAAEkzH,cAAc,OAAOtsG,EAAE5mB,EAAEkzH,cAAc,CAACqmB,YAAYztJ,EAAE0tJ,UAAU,KAAKC,mBAAmB,EAAE52H,KAAKjO,EAAE8kI,KAAK98I,EAAE+8I,SAASrnJ,IAAIs0B,EAAE2yH,YAAYztJ,EAAE86B,EAAE4yH,UAAU,KAAK5yH,EAAE6yH,mBAAmB,EAAE7yH,EAAE/D,KAAKjO,EAAEgS,EAAE8yH,KAAK98I,EAAEgqB,EAAE+yH,SAASrnJ,EAAE,CAC3O,SAASsnJ,GAAG55I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE9oB,EAAEg/I,aAAax4I,EAAEsiB,EAAE26H,YAAY3oH,EAAEhS,EAAE8kI,KAAsC,GAAjC3C,GAAG/2I,EAAElU,EAAE8oB,EAAE+1E,SAAS/tF,GAAkB,KAAO,GAAtBgY,EAAEi5F,GAAEh6F,UAAqBe,EAAI,EAAFA,EAAI,EAAE9oB,EAAEknI,OAAO,QAAQ,CAAC,GAAG,OAAOhzH,GAAG,KAAa,IAARA,EAAEgzH,OAAWhzH,EAAE,IAAIA,EAAElU,EAAEwnI,MAAM,OAAOtzH,GAAG,CAAC,GAAG,KAAKA,EAAE9L,IAAI,OAAO8L,EAAEkzH,eAAemmB,GAAGr5I,EAAEpD,EAAE9Q,QAAQ,GAAG,KAAKkU,EAAE9L,IAAImlJ,GAAGr5I,EAAEpD,EAAE9Q,QAAQ,GAAG,OAAOkU,EAAEszH,MAAM,CAACtzH,EAAEszH,MAAMhc,OAAOt3G,EAAEA,EAAEA,EAAEszH,MAAM,QAAQ,CAAC,GAAGtzH,IAAIlU,EAAE,MAAMkU,EAAE,KAAK,OAAOA,EAAEuzH,SAAS,CAAC,GAAG,OAAOvzH,EAAEs3G,QAAQt3G,EAAEs3G,SAASxrH,EAAE,MAAMkU,EAAEA,EAAEA,EAAEs3G,MAAM,CAACt3G,EAAEuzH,QAAQjc,OAAOt3G,EAAEs3G,OAAOt3G,EAAEA,EAAEuzH,OAAO,CAAC3+G,GAAG,CAAC,CAAQ,GAAP0zH,GAAEz6B,GAAEj5F,GAAM,KAAY,EAAP9oB,EAAEwhB,MAAQxhB,EAAEonI,cAC/e,UAAU,OAAO5gI,GAAG,IAAK,WAAqB,IAAVsK,EAAE9Q,EAAEwnI,MAAUhhI,EAAE,KAAK,OAAOsK,GAAiB,QAAdoD,EAAEpD,EAAEm2H,YAAoB,OAAOuc,GAAGtvI,KAAK1N,EAAEsK,GAAGA,EAAEA,EAAE22H,QAAY,QAAJ32H,EAAEtK,IAAYA,EAAExG,EAAEwnI,MAAMxnI,EAAEwnI,MAAM,OAAOhhI,EAAEsK,EAAE22H,QAAQ32H,EAAE22H,QAAQ,MAAM+lB,GAAGxtJ,GAAE,EAAGwG,EAAEsK,EAAEgqB,GAAG,MAAM,IAAK,YAA6B,IAAjBhqB,EAAE,KAAKtK,EAAExG,EAAEwnI,MAAUxnI,EAAEwnI,MAAM,KAAK,OAAOhhI,GAAG,CAAe,GAAG,QAAjB0N,EAAE1N,EAAEygI,YAAuB,OAAOuc,GAAGtvI,GAAG,CAAClU,EAAEwnI,MAAMhhI,EAAE,KAAK,CAAC0N,EAAE1N,EAAEihI,QAAQjhI,EAAEihI,QAAQ32H,EAAEA,EAAEtK,EAAEA,EAAE0N,CAAC,CAACs5I,GAAGxtJ,GAAE,EAAG8Q,EAAE,KAAKgqB,GAAG,MAAM,IAAK,WAAW0yH,GAAGxtJ,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAEonI,cAAc,KAAK,OAAOpnI,EAAEwnI,KAAK,CAC7d,SAASwkB,GAAG93I,EAAElU,GAAG,KAAY,EAAPA,EAAEwhB,OAAS,OAAOtN,IAAIA,EAAE+yH,UAAU,KAAKjnI,EAAEinI,UAAU,KAAKjnI,EAAEknI,OAAO,EAAE,CAAC,SAASikB,GAAGj3I,EAAElU,EAAE8Q,GAAyD,GAAtD,OAAOoD,IAAIlU,EAAEohJ,aAAaltI,EAAEktI,cAAcyB,IAAI7iJ,EAAEshJ,MAAS,KAAKxwI,EAAE9Q,EAAEmhJ,YAAY,OAAO,KAAK,GAAG,OAAOjtI,GAAGlU,EAAEwnI,QAAQtzH,EAAEszH,MAAM,MAAMxlI,MAAM+b,EAAE,MAAM,GAAG,OAAO/d,EAAEwnI,MAAM,CAA4C,IAAjC12H,EAAEqvI,GAAZjsI,EAAElU,EAAEwnI,MAAatzH,EAAE8qI,cAAch/I,EAAEwnI,MAAM12H,EAAMA,EAAE06G,OAAOxrH,EAAE,OAAOkU,EAAEuzH,SAASvzH,EAAEA,EAAEuzH,SAAQ32H,EAAEA,EAAE22H,QAAQ0Y,GAAGjsI,EAAEA,EAAE8qI,eAAgBxzB,OAAOxrH,EAAE8Q,EAAE22H,QAAQ,IAAI,CAAC,OAAOznI,EAAEwnI,KAAK,CAO9a,SAASumB,GAAG75I,EAAElU,GAAG,IAAIymH,GAAE,OAAOvyG,EAAE25I,UAAU,IAAK,SAAS7tJ,EAAEkU,EAAE05I,KAAK,IAAI,IAAI98I,EAAE,KAAK,OAAO9Q,GAAG,OAAOA,EAAEinI,YAAYn2H,EAAE9Q,GAAGA,EAAEA,EAAEynI,QAAQ,OAAO32H,EAAEoD,EAAE05I,KAAK,KAAK98I,EAAE22H,QAAQ,KAAK,MAAM,IAAK,YAAY32H,EAAEoD,EAAE05I,KAAK,IAAI,IAAI9kI,EAAE,KAAK,OAAOhY,GAAG,OAAOA,EAAEm2H,YAAYn+G,EAAEhY,GAAGA,EAAEA,EAAE22H,QAAQ,OAAO3+G,EAAE9oB,GAAG,OAAOkU,EAAE05I,KAAK15I,EAAE05I,KAAK,KAAK15I,EAAE05I,KAAKnmB,QAAQ,KAAK3+G,EAAE2+G,QAAQ,KAAK,CAC5U,SAAShlC,GAAEvuF,GAAG,IAAIlU,EAAE,OAAOkU,EAAE+yH,WAAW/yH,EAAE+yH,UAAUO,QAAQtzH,EAAEszH,MAAM12H,EAAE,EAAEgY,EAAE,EAAE,GAAG9oB,EAAE,IAAI,IAAIwG,EAAE0N,EAAEszH,MAAM,OAAOhhI,GAAGsK,GAAGtK,EAAE86I,MAAM96I,EAAE26I,WAAWr4H,GAAkB,SAAftiB,EAAE8mJ,aAAsBxkI,GAAW,SAARtiB,EAAE0gI,MAAe1gI,EAAEglH,OAAOt3G,EAAE1N,EAAEA,EAAEihI,aAAa,IAAIjhI,EAAE0N,EAAEszH,MAAM,OAAOhhI,GAAGsK,GAAGtK,EAAE86I,MAAM96I,EAAE26I,WAAWr4H,GAAGtiB,EAAE8mJ,aAAaxkI,GAAGtiB,EAAE0gI,MAAM1gI,EAAEglH,OAAOt3G,EAAE1N,EAAEA,EAAEihI,QAAyC,OAAjCvzH,EAAEo5I,cAAcxkI,EAAE5U,EAAEitI,WAAWrwI,EAAS9Q,CAAC,CAC7V,SAASguJ,GAAG95I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE9oB,EAAEg/I,aAAmB,OAANR,GAAGx+I,GAAUA,EAAEoI,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAOq6F,GAAEziG,GAAG,KAAK,KAAK,EAUtD,KAAK,GAAG,OAAOg9I,GAAGh9I,EAAE6tB,OAAOqvH,KAAKz6C,GAAEziG,GAAG,KAVqD,KAAK,EAA2Q,OAAzQ8oB,EAAE9oB,EAAE8lI,UAAUud,KAAK3qH,GAAEgkH,IAAIhkH,GAAEupF,IAAG0hC,KAAK76H,EAAEujI,iBAAiBvjI,EAAEisE,QAAQjsE,EAAEujI,eAAevjI,EAAEujI,eAAe,MAAS,OAAOn4I,GAAG,OAAOA,EAAEszH,QAAM8X,GAAGt/I,GAAGA,EAAEknI,OAAO,EAAE,OAAOhzH,GAAGA,EAAEkzH,cAAcyE,cAAc,KAAa,IAAR7rI,EAAEknI,SAAalnI,EAAEknI,OAAO,KAAK,OAAOyX,KAAKsP,GAAGtP,IAAIA,GAAG,QAAO4N,GAAGr4I,EAAElU,GAAGyiG,GAAEziG,GAAU,KAAK,KAAK,EAAEujJ,GAAGvjJ,GAAG,IAAIwG,EAAE08I,GAAGD,GAAGl7H,SAC7e,GAATjX,EAAE9Q,EAAE6tB,KAAQ,OAAO3Z,GAAG,MAAMlU,EAAE8lI,UAAU0mB,GAAGt4I,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG0N,EAAEmtB,MAAMrhC,EAAEqhC,MAAMrhC,EAAEknI,OAAO,IAAIlnI,EAAEknI,OAAO,aAAa,CAAC,IAAIp+G,EAAE,CAAC,GAAG,OAAO9oB,EAAE8lI,UAAU,MAAM9jI,MAAM+b,EAAE,MAAW,OAAL0kF,GAAEziG,GAAU,IAAI,CAAkB,GAAjBkU,EAAEgvI,GAAGH,GAAGh7H,SAAYu3H,GAAGt/I,GAAG,CAAC8oB,EAAE9oB,EAAE8lI,UAAUh1H,EAAE9Q,EAAE6tB,KAAK,IAAIiN,EAAE96B,EAAEu/I,cAA+C,OAAjCz2H,EAAEmzH,IAAIj8I,EAAE8oB,EAAEozH,IAAIphH,EAAE5mB,EAAE,KAAY,EAAPlU,EAAEwhB,MAAe1Q,GAAG,IAAK,SAAS6R,GAAE,SAASmG,GAAGnG,GAAE,QAAQmG,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQnG,GAAE,OAAOmG,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAItiB,EAAE,EAAEA,EAAEyyI,GAAGz4I,OAAOgG,IAAImc,GAAEs2H,GAAGzyI,GAAGsiB,GAAG,MAAM,IAAK,SAASnG,GAAE,QAAQmG,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOnG,GAAE,QACnhBmG,GAAGnG,GAAE,OAAOmG,GAAG,MAAM,IAAK,UAAUnG,GAAE,SAASmG,GAAG,MAAM,IAAK,QAAQs3G,EAAGt3G,EAAEgS,GAAGnY,GAAE,UAAUmG,GAAG,MAAM,IAAK,SAASA,EAAEo3G,cAAc,CAACguB,cAAcpzH,EAAEqzH,UAAUxrI,GAAE,UAAUmG,GAAG,MAAM,IAAK,WAAWm4G,GAAGn4G,EAAEgS,GAAGnY,GAAE,UAAUmG,GAAkB,IAAI,IAAIlG,KAAvBwiH,GAAGt0H,EAAEgqB,GAAGt0B,EAAE,KAAkBs0B,EAAE,GAAGA,EAAE5yB,eAAe0a,GAAG,CAAC,IAAIpC,EAAEsa,EAAElY,GAAG,aAAaA,EAAE,kBAAkBpC,EAAEsI,EAAEghD,cAActpD,KAAI,IAAKsa,EAAEszH,0BAA0BtT,GAAGhyH,EAAEghD,YAAYtpD,EAAEtM,GAAG1N,EAAE,CAAC,WAAWga,IAAI,kBAAkBA,GAAGsI,EAAEghD,cAAc,GAAGtpD,KAAI,IAAKsa,EAAEszH,0BAA0BtT,GAAGhyH,EAAEghD,YAC1etpD,EAAEtM,GAAG1N,EAAE,CAAC,WAAW,GAAGga,IAAI07G,EAAGh0H,eAAe0a,IAAI,MAAMpC,GAAG,aAAaoC,GAAGD,GAAE,SAASmG,EAAE,CAAC,OAAOhY,GAAG,IAAK,QAAQyuH,EAAGz2G,GAAG23G,EAAG33G,EAAEgS,GAAE,GAAI,MAAM,IAAK,WAAWykG,EAAGz2G,GAAGq4G,GAAGr4G,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBgS,EAAEu5F,UAAUvrG,EAAEulI,QAAQtT,IAAIjyH,EAAEtiB,EAAExG,EAAEgiJ,YAAYl5H,EAAE,OAAOA,IAAI9oB,EAAEknI,OAAO,EAAE,KAAK,CAACtkH,EAAE,IAAIpc,EAAEo7H,SAASp7H,EAAEA,EAAEk6H,cAAc,iCAAiCxsH,IAAIA,EAAEktH,GAAGtwH,IAAI,iCAAiCoD,EAAE,WAAWpD,IAAGoD,EAAE0O,EAAEwe,cAAc,QAAS2lF,UAAU,qBAAuB7yG,EAAEA,EAAEk5D,YAAYl5D,EAAEkmH,aAC/f,kBAAkBtxG,EAAEwoC,GAAGp9C,EAAE0O,EAAEwe,cAActwB,EAAE,CAACwgD,GAAGxoC,EAAEwoC,MAAMp9C,EAAE0O,EAAEwe,cAActwB,GAAG,WAAWA,IAAI8R,EAAE1O,EAAE4U,EAAEqlI,SAASvrI,EAAEurI,UAAS,EAAGrlI,EAAE3c,OAAOyW,EAAEzW,KAAK2c,EAAE3c,QAAQ+H,EAAE0O,EAAE0pB,gBAAgBp4B,EAAEpD,GAAGoD,EAAE+nI,IAAIj8I,EAAEkU,EAAEgoI,IAAIpzH,EAAEwjI,GAAGp4I,EAAElU,GAAE,GAAG,GAAIA,EAAE8lI,UAAU5xH,EAAEA,EAAE,CAAW,OAAV0O,EAAEja,GAAGmI,EAAEgY,GAAUhY,GAAG,IAAK,SAAS6R,GAAE,SAASzO,GAAGyO,GAAE,QAAQzO,GAAG1N,EAAEsiB,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQnG,GAAE,OAAOzO,GAAG1N,EAAEsiB,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAItiB,EAAE,EAAEA,EAAEyyI,GAAGz4I,OAAOgG,IAAImc,GAAEs2H,GAAGzyI,GAAG0N,GAAG1N,EAAEsiB,EAAE,MAAM,IAAK,SAASnG,GAAE,QAAQzO,GAAG1N,EAAEsiB,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOnG,GAAE,QAClfzO,GAAGyO,GAAE,OAAOzO,GAAG1N,EAAEsiB,EAAE,MAAM,IAAK,UAAUnG,GAAE,SAASzO,GAAG1N,EAAEsiB,EAAE,MAAM,IAAK,QAAQs3G,EAAGlsH,EAAE4U,GAAGtiB,EAAEu5H,EAAG7rH,EAAE4U,GAAGnG,GAAE,UAAUzO,GAAG,MAAM,IAAK,SAAiL,QAAQ1N,EAAEsiB,QAAxK,IAAK,SAAS5U,EAAEgsH,cAAc,CAACguB,cAAcplI,EAAEqlI,UAAU3nJ,EAAEgc,EAAE,CAAC,EAAEsG,EAAE,CAAC7f,WAAM,IAAS0Z,GAAE,UAAUzO,GAAG,MAAM,IAAK,WAAW+sH,GAAG/sH,EAAE4U,GAAGtiB,EAAEu6H,GAAG7sH,EAAE4U,GAAGnG,GAAE,UAAUzO,GAAiC,IAAI4mB,KAAhBsqG,GAAGt0H,EAAEtK,GAAGga,EAAEha,EAAa,GAAGga,EAAEtY,eAAe4yB,GAAG,CAAC,IAAI3mB,EAAEqM,EAAEsa,GAAG,UAAUA,EAAEwpG,GAAGpwH,EAAEC,GAAG,4BAA4B2mB,EAAuB,OAApB3mB,EAAEA,EAAEA,EAAEgnI,YAAO,IAAgB5Z,GAAGrtH,EAAEC,GAAI,aAAa2mB,EAAE,kBAAkB3mB,GAAG,aAC7erD,GAAG,KAAKqD,IAAImgC,GAAGpgC,EAAEC,GAAG,kBAAkBA,GAAGmgC,GAAGpgC,EAAE,GAAGC,GAAG,mCAAmC2mB,GAAG,6BAA6BA,GAAG,cAAcA,IAAIohG,EAAGh0H,eAAe4yB,GAAG,MAAM3mB,GAAG,aAAa2mB,GAAGnY,GAAE,SAASzO,GAAG,MAAMC,GAAG8oH,EAAG/oH,EAAE4mB,EAAE3mB,EAAEyO,GAAG,CAAC,OAAO9R,GAAG,IAAK,QAAQyuH,EAAGrrH,GAAGusH,EAAGvsH,EAAE4U,GAAE,GAAI,MAAM,IAAK,WAAWy2G,EAAGrrH,GAAGitH,GAAGjtH,GAAG,MAAM,IAAK,SAAS,MAAM4U,EAAE7f,OAAOiL,EAAEyqC,aAAa,QAAQ,GAAGygF,EAAGt2G,EAAE7f,QAAQ,MAAM,IAAK,SAASiL,EAAEi6I,WAAWrlI,EAAEqlI,SAAmB,OAAVrzH,EAAEhS,EAAE7f,OAAcg+E,GAAG/yE,IAAI4U,EAAEqlI,SAASrzH,GAAE,GAAI,MAAMhS,EAAEm3G,cAAch5C,GAAG/yE,IAAI4U,EAAEqlI,SAASrlI,EAAEm3G,cAClf,GAAI,MAAM,QAAQ,oBAAoBz5H,EAAE6tH,UAAUngH,EAAEm6I,QAAQtT,IAAI,OAAOjqI,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWgY,IAAIA,EAAEwlI,UAAU,MAAMp6I,EAAE,IAAK,MAAM4U,GAAE,EAAG,MAAM5U,EAAE,QAAQ4U,GAAE,EAAG,CAACA,IAAI9oB,EAAEknI,OAAO,EAAE,CAAC,OAAOlnI,EAAEqhC,MAAMrhC,EAAEknI,OAAO,IAAIlnI,EAAEknI,OAAO,QAAQ,CAAM,OAALzkC,GAAEziG,GAAU,KAAK,KAAK,EAAE,GAAGkU,GAAG,MAAMlU,EAAE8lI,UAAU2mB,GAAGv4I,EAAElU,EAAEkU,EAAEqrI,cAAcz2H,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAO9oB,EAAE8lI,UAAU,MAAM9jI,MAAM+b,EAAE,MAAsC,GAAhCjN,EAAEoyI,GAAGD,GAAGl7H,SAASm7H,GAAGH,GAAGh7H,SAAYu3H,GAAGt/I,GAAG,CAAyC,GAAxC8oB,EAAE9oB,EAAE8lI,UAAUh1H,EAAE9Q,EAAEu/I,cAAcz2H,EAAEmzH,IAAIj8I,GAAK86B,EAAEhS,EAAE+4G,YAAY/wH,IAC/e,QADofoD,EACvfuqI,IAAY,OAAOvqI,EAAE9L,KAAK,KAAK,EAAE0yI,GAAGhyH,EAAE+4G,UAAU/wH,EAAE,KAAY,EAAPoD,EAAEsN,OAAS,MAAM,KAAK,GAAE,IAAKtN,EAAEqrI,cAAc6O,0BAA0BtT,GAAGhyH,EAAE+4G,UAAU/wH,EAAE,KAAY,EAAPoD,EAAEsN,OAASsZ,IAAI96B,EAAEknI,OAAO,EAAE,MAAMp+G,GAAG,IAAIhY,EAAE8wH,SAAS9wH,EAAEA,EAAE4vH,eAAe6tB,eAAezlI,IAAKmzH,IAAIj8I,EAAEA,EAAE8lI,UAAUh9G,CAAC,CAAM,OAAL25E,GAAEziG,GAAU,KAAK,KAAK,GAA0B,GAAvB04B,GAAEqpF,IAAGj5F,EAAE9oB,EAAEonI,cAAiB,OAAOlzH,GAAG,OAAOA,EAAEkzH,eAAe,OAAOlzH,EAAEkzH,cAAcC,WAAW,CAAC,GAAG5gB,IAAG,OAAOi4B,IAAI,KAAY,EAAP1+I,EAAEwhB,OAAS,KAAa,IAARxhB,EAAEknI,OAAWsY,KAAKC,KAAKz/I,EAAEknI,OAAO,MAAMpsG,GAAE,OAAQ,GAAGA,EAAEwkH,GAAGt/I,GAAG,OAAO8oB,GAAG,OAAOA,EAAEu+G,WAAW,CAAC,GAAG,OAC5fnzH,EAAE,CAAC,IAAI4mB,EAAE,MAAM94B,MAAM+b,EAAE,MAAqD,KAA7B+c,EAAE,QAApBA,EAAE96B,EAAEonI,eAAyBtsG,EAAEusG,WAAW,MAAW,MAAMrlI,MAAM+b,EAAE,MAAM+c,EAAEmhH,IAAIj8I,CAAC,MAAMy/I,KAAK,KAAa,IAARz/I,EAAEknI,SAAalnI,EAAEonI,cAAc,MAAMpnI,EAAEknI,OAAO,EAAEzkC,GAAEziG,GAAG86B,GAAE,CAAE,MAAM,OAAO6jH,KAAKsP,GAAGtP,IAAIA,GAAG,MAAM7jH,GAAE,EAAG,IAAIA,EAAE,OAAe,MAAR96B,EAAEknI,MAAYlnI,EAAE,IAAI,CAAC,OAAG,KAAa,IAARA,EAAEknI,QAAkBlnI,EAAEshJ,MAAMxwI,EAAE9Q,KAAE8oB,EAAE,OAAOA,MAAO,OAAO5U,GAAG,OAAOA,EAAEkzH,gBAAgBt+G,IAAI9oB,EAAEwnI,MAAMN,OAAO,KAAK,KAAY,EAAPlnI,EAAEwhB,QAAU,OAAOtN,GAAG,KAAe,EAAV6tG,GAAEh6F,SAAW,IAAIymI,KAAIA,GAAE,GAAGtB,OAAO,OAAOltJ,EAAEgiJ,cAAchiJ,EAAEknI,OAAO,GAAGzkC,GAAEziG,GAAU,MAAK,KAAK,EAAE,OAAOqjJ,KACrfkJ,GAAGr4I,EAAElU,GAAG,OAAOkU,GAAGwlI,GAAG15I,EAAE8lI,UAAUgG,eAAerpC,GAAEziG,GAAG,KAAK,KAAK,GAAG,OAAOghJ,GAAGhhJ,EAAE6tB,KAAKoxG,UAAUx8B,GAAEziG,GAAG,KAA+C,KAAK,GAA0B,GAAvB04B,GAAEqpF,IAAwB,QAArBjnF,EAAE96B,EAAEonI,eAA0B,OAAO3kC,GAAEziG,GAAG,KAAuC,GAAlC8oB,EAAE,KAAa,IAAR9oB,EAAEknI,OAA4B,QAAjBtkH,EAAEkY,EAAE4yH,WAAsB,GAAG5kI,EAAEilI,GAAGjzH,GAAE,OAAQ,CAAC,GAAG,IAAI0zH,IAAG,OAAOt6I,GAAG,KAAa,IAARA,EAAEgzH,OAAW,IAAIhzH,EAAElU,EAAEwnI,MAAM,OAAOtzH,GAAG,CAAS,GAAG,QAAX0O,EAAE4gI,GAAGtvI,IAAe,CAAmG,IAAlGlU,EAAEknI,OAAO,IAAI6mB,GAAGjzH,GAAE,GAAoB,QAAhBhS,EAAElG,EAAEo/H,eAAuBhiJ,EAAEgiJ,YAAYl5H,EAAE9oB,EAAEknI,OAAO,GAAGlnI,EAAEstJ,aAAa,EAAExkI,EAAEhY,EAAMA,EAAE9Q,EAAEwnI,MAAM,OAAO12H,GAAOoD,EAAE4U,GAANgS,EAAEhqB,GAAQo2H,OAAO,SAC/d,QAAdtkH,EAAEkY,EAAEmsG,YAAoBnsG,EAAEqmH,WAAW,EAAErmH,EAAEwmH,MAAMptI,EAAE4mB,EAAE0sG,MAAM,KAAK1sG,EAAEwyH,aAAa,EAAExyH,EAAEykH,cAAc,KAAKzkH,EAAEssG,cAAc,KAAKtsG,EAAEknH,YAAY,KAAKlnH,EAAEsmH,aAAa,KAAKtmH,EAAEgrG,UAAU,OAAOhrG,EAAEqmH,WAAWv+H,EAAEu+H,WAAWrmH,EAAEwmH,MAAM1+H,EAAE0+H,MAAMxmH,EAAE0sG,MAAM5kH,EAAE4kH,MAAM1sG,EAAEwyH,aAAa,EAAExyH,EAAEgkH,UAAU,KAAKhkH,EAAEykH,cAAc38H,EAAE28H,cAAczkH,EAAEssG,cAAcxkH,EAAEwkH,cAActsG,EAAEknH,YAAYp/H,EAAEo/H,YAAYlnH,EAAEjN,KAAKjL,EAAEiL,KAAK3Z,EAAE0O,EAAEw+H,aAAatmH,EAAEsmH,aAAa,OAAOltI,EAAE,KAAK,CAACotI,MAAMptI,EAAEotI,MAAMD,aAAantI,EAAEmtI,eAAevwI,EAAEA,EAAE22H,QAA2B,OAAnB+U,GAAEz6B,GAAY,EAAVA,GAAEh6F,QAAU,GAAU/nB,EAAEwnI,KAAK,CAACtzH,EAClgBA,EAAEuzH,OAAO,CAAC,OAAO3sG,EAAE8yH,MAAMnrI,KAAIgsI,KAAKzuJ,EAAEknI,OAAO,IAAIp+G,GAAE,EAAGilI,GAAGjzH,GAAE,GAAI96B,EAAEshJ,MAAM,QAAQ,KAAK,CAAC,IAAIx4H,EAAE,GAAW,QAAR5U,EAAEsvI,GAAG5gI,KAAa,GAAG5iB,EAAEknI,OAAO,IAAIp+G,GAAE,EAAmB,QAAhBhY,EAAEoD,EAAE8tI,eAAuBhiJ,EAAEgiJ,YAAYlxI,EAAE9Q,EAAEknI,OAAO,GAAG6mB,GAAGjzH,GAAE,GAAI,OAAOA,EAAE8yH,MAAM,WAAW9yH,EAAE+yH,WAAWjrI,EAAEqkH,YAAYxgB,GAAE,OAAOhkB,GAAEziG,GAAG,UAAU,EAAEyiB,KAAIqY,EAAE6yH,mBAAmBc,IAAI,aAAa39I,IAAI9Q,EAAEknI,OAAO,IAAIp+G,GAAE,EAAGilI,GAAGjzH,GAAE,GAAI96B,EAAEshJ,MAAM,SAASxmH,EAAE2yH,aAAa7qI,EAAE6kH,QAAQznI,EAAEwnI,MAAMxnI,EAAEwnI,MAAM5kH,IAAa,QAAT9R,EAAEgqB,EAAE/D,MAAcjmB,EAAE22H,QAAQ7kH,EAAE5iB,EAAEwnI,MAAM5kH,EAAEkY,EAAE/D,KAAKnU,EAAE,CAAC,OAAG,OAAOkY,EAAE8yH,MAAY5tJ,EAAE86B,EAAE8yH,KAAK9yH,EAAE4yH,UAC9e1tJ,EAAE86B,EAAE8yH,KAAK5tJ,EAAEynI,QAAQ3sG,EAAE6yH,mBAAmBlrI,KAAIziB,EAAEynI,QAAQ,KAAK32H,EAAEixG,GAAEh6F,QAAQy0H,GAAEz6B,GAAEj5F,EAAI,EAAFhY,EAAI,EAAI,EAAFA,GAAK9Q,IAAEyiG,GAAEziG,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAO0uJ,KAAK5lI,EAAE,OAAO9oB,EAAEonI,cAAc,OAAOlzH,GAAG,OAAOA,EAAEkzH,gBAAgBt+G,IAAI9oB,EAAEknI,OAAO,MAAMp+G,GAAG,KAAY,EAAP9oB,EAAEwhB,MAAQ,KAAQ,WAAHqqI,MAAiBppD,GAAEziG,GAAkB,EAAfA,EAAEstJ,eAAiBttJ,EAAEknI,OAAO,OAAOzkC,GAAEziG,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAMgC,MAAM+b,EAAE,IAAI/d,EAAEoI,KAAM,CAClX,SAASumJ,GAAGz6I,EAAElU,GAAS,OAANw+I,GAAGx+I,GAAUA,EAAEoI,KAAK,KAAK,EAAE,OAAO40I,GAAGh9I,EAAE6tB,OAAOqvH,KAAiB,OAAZhpI,EAAElU,EAAEknI,QAAelnI,EAAEknI,OAAS,MAAHhzH,EAAS,IAAIlU,GAAG,KAAK,KAAK,EAAE,OAAOqjJ,KAAK3qH,GAAEgkH,IAAIhkH,GAAEupF,IAAG0hC,KAAe,KAAO,OAAjBzvI,EAAElU,EAAEknI,SAAqB,KAAO,IAAFhzH,IAAQlU,EAAEknI,OAAS,MAAHhzH,EAAS,IAAIlU,GAAG,KAAK,KAAK,EAAE,OAAOujJ,GAAGvjJ,GAAG,KAAK,KAAK,GAA0B,GAAvB04B,GAAEqpF,IAAwB,QAArB7tG,EAAElU,EAAEonI,gBAA2B,OAAOlzH,EAAEmzH,WAAW,CAAC,GAAG,OAAOrnI,EAAEinI,UAAU,MAAMjlI,MAAM+b,EAAE,MAAM0hI,IAAI,CAAW,OAAS,OAAnBvrI,EAAElU,EAAEknI,QAAsBlnI,EAAEknI,OAAS,MAAHhzH,EAAS,IAAIlU,GAAG,KAAK,KAAK,GAAG,OAAO04B,GAAEqpF,IAAG,KAAK,KAAK,EAAE,OAAOshC,KAAK,KAAK,KAAK,GAAG,OAAOrC,GAAGhhJ,EAAE6tB,KAAKoxG,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOyvB,KAC1gB,KAAyB,QAAQ,OAAO,KAAK,CArB7CpC,GAAG,SAASp4I,EAAElU,GAAG,IAAI,IAAI8Q,EAAE9Q,EAAEwnI,MAAM,OAAO12H,GAAG,CAAC,GAAG,IAAIA,EAAE1I,KAAK,IAAI0I,EAAE1I,IAAI8L,EAAEuhC,YAAY3kC,EAAEg1H,gBAAgB,GAAG,IAAIh1H,EAAE1I,KAAK,OAAO0I,EAAE02H,MAAM,CAAC12H,EAAE02H,MAAMhc,OAAO16G,EAAEA,EAAEA,EAAE02H,MAAM,QAAQ,CAAC,GAAG12H,IAAI9Q,EAAE,MAAM,KAAK,OAAO8Q,EAAE22H,SAAS,CAAC,GAAG,OAAO32H,EAAE06G,QAAQ16G,EAAE06G,SAASxrH,EAAE,OAAO8Q,EAAEA,EAAE06G,MAAM,CAAC16G,EAAE22H,QAAQjc,OAAO16G,EAAE06G,OAAO16G,EAAEA,EAAE22H,OAAO,CAAC,EAAE8kB,GAAG,WAAW,EACxTC,GAAG,SAASt4I,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAE0N,EAAEqrI,cAAc,GAAG/4I,IAAIsiB,EAAE,CAAC5U,EAAElU,EAAE8lI,UAAUod,GAAGH,GAAGh7H,SAAS,IAA4RnF,EAAxRkY,EAAE,KAAK,OAAOhqB,GAAG,IAAK,QAAQtK,EAAEu5H,EAAG7rH,EAAE1N,GAAGsiB,EAAEi3G,EAAG7rH,EAAE4U,GAAGgS,EAAE,GAAG,MAAM,IAAK,SAASt0B,EAAEgc,EAAE,CAAC,EAAEhc,EAAE,CAACyC,WAAM,IAAS6f,EAAEtG,EAAE,CAAC,EAAEsG,EAAE,CAAC7f,WAAM,IAAS6xB,EAAE,GAAG,MAAM,IAAK,WAAWt0B,EAAEu6H,GAAG7sH,EAAE1N,GAAGsiB,EAAEi4G,GAAG7sH,EAAE4U,GAAGgS,EAAE,GAAG,MAAM,QAAQ,oBAAoBt0B,EAAE6tH,SAAS,oBAAoBvrG,EAAEurG,UAAUngH,EAAEm6I,QAAQtT,IAAyB,IAAIh+H,KAAzBqoH,GAAGt0H,EAAEgY,GAAShY,EAAE,KAActK,EAAE,IAAIsiB,EAAE5gB,eAAe6U,IAAIvW,EAAE0B,eAAe6U,IAAI,MAAMvW,EAAEuW,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAIyD,EAAEha,EAAEuW,GAAG,IAAI6F,KAAKpC,EAAEA,EAAEtY,eAAe0a,KACjf9R,IAAIA,EAAE,CAAC,GAAGA,EAAE8R,GAAG,GAAG,KAAK,4BAA4B7F,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIm/G,EAAGh0H,eAAe6U,GAAG+d,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIj1B,KAAKkX,EAAE,OAAO,IAAIA,KAAK+L,EAAE,CAAC,IAAI3U,EAAE2U,EAAE/L,GAAyB,GAAtByD,EAAE,MAAMha,EAAEA,EAAEuW,QAAG,EAAU+L,EAAE5gB,eAAe6U,IAAI5I,IAAIqM,IAAI,MAAMrM,GAAG,MAAMqM,GAAG,GAAG,UAAUzD,EAAE,GAAGyD,EAAE,CAAC,IAAIoC,KAAKpC,GAAGA,EAAEtY,eAAe0a,IAAIzO,GAAGA,EAAEjM,eAAe0a,KAAK9R,IAAIA,EAAE,CAAC,GAAGA,EAAE8R,GAAG,IAAI,IAAIA,KAAKzO,EAAEA,EAAEjM,eAAe0a,IAAIpC,EAAEoC,KAAKzO,EAAEyO,KAAK9R,IAAIA,EAAE,CAAC,GAAGA,EAAE8R,GAAGzO,EAAEyO,GAAG,MAAM9R,IAAIgqB,IAAIA,EAAE,IAAIA,EAAEj1B,KAAKkX,EACpfjM,IAAIA,EAAEqD,MAAM,4BAA4B4I,GAAG5I,EAAEA,EAAEA,EAAEgnI,YAAO,EAAO36H,EAAEA,EAAEA,EAAE26H,YAAO,EAAO,MAAMhnI,GAAGqM,IAAIrM,IAAI2mB,EAAEA,GAAG,IAAIj1B,KAAKkX,EAAE5I,IAAI,aAAa4I,EAAE,kBAAkB5I,GAAG,kBAAkBA,IAAI2mB,EAAEA,GAAG,IAAIj1B,KAAKkX,EAAE,GAAG5I,GAAG,mCAAmC4I,GAAG,6BAA6BA,IAAIm/G,EAAGh0H,eAAe6U,IAAI,MAAM5I,GAAG,aAAa4I,GAAG4F,GAAE,SAASzO,GAAG4mB,GAAGta,IAAIrM,IAAI2mB,EAAE,MAAMA,EAAEA,GAAG,IAAIj1B,KAAKkX,EAAE5I,GAAG,CAACrD,IAAIgqB,EAAEA,GAAG,IAAIj1B,KAAK,QAAQiL,GAAG,IAAIiM,EAAE+d,GAAK96B,EAAEgiJ,YAAYjlI,KAAE/c,EAAEknI,OAAO,EAAC,CAAC,EAAEulB,GAAG,SAASv4I,EAAElU,EAAE8Q,EAAEgY,GAAGhY,IAAIgY,IAAI9oB,EAAEknI,OAAO,EAAE,EAkBlb,IAAI0nB,IAAG,EAAGC,IAAE,EAAGC,GAAG,oBAAoBC,QAAQA,QAAQ9yB,IAAI+yB,GAAE,KAAK,SAASC,GAAG/6I,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAEmtB,IAAI,GAAG,OAAOvwB,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAMgY,GAAGomI,GAAEh7I,EAAElU,EAAE8oB,EAAE,MAAMhY,EAAEiX,QAAQ,IAAI,CAAC,SAASonI,GAAGj7I,EAAElU,EAAE8Q,GAAG,IAAIA,GAAG,CAAC,MAAMgY,GAAGomI,GAAEh7I,EAAElU,EAAE8oB,EAAE,CAAC,CAAC,IAAIsmI,IAAG,EAIxR,SAASC,GAAGn7I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE9oB,EAAEgiJ,YAAyC,GAAG,QAAhCl5H,EAAE,OAAOA,EAAEA,EAAEk9H,WAAW,MAAiB,CAAC,IAAIx/I,EAAEsiB,EAAEA,EAAEvB,KAAK,EAAE,CAAC,IAAI/gB,EAAE4B,IAAI8L,KAAKA,EAAE,CAAC,IAAI4mB,EAAEt0B,EAAEw5B,QAAQx5B,EAAEw5B,aAAQ,OAAO,IAASlF,GAAGq0H,GAAGnvJ,EAAE8Q,EAAEgqB,EAAE,CAACt0B,EAAEA,EAAE+gB,IAAI,OAAO/gB,IAAIsiB,EAAE,CAAC,CAAC,SAASwmI,GAAGp7I,EAAElU,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEgiJ,aAAuBhiJ,EAAEgmJ,WAAW,MAAiB,CAAC,IAAIl1I,EAAE9Q,EAAEA,EAAEunB,KAAK,EAAE,CAAC,IAAIzW,EAAE1I,IAAI8L,KAAKA,EAAE,CAAC,IAAI4U,EAAEhY,EAAExP,OAAOwP,EAAEkvB,QAAQlX,GAAG,CAAChY,EAAEA,EAAEyW,IAAI,OAAOzW,IAAI9Q,EAAE,CAAC,CAAC,SAASuvJ,GAAGr7I,GAAG,IAAIlU,EAAEkU,EAAEmtB,IAAI,GAAG,OAAOrhC,EAAE,CAAC,IAAI8Q,EAAEoD,EAAE4xH,UAAiB5xH,EAAE9L,IAA8B8L,EAAEpD,EAAE,oBAAoB9Q,EAAEA,EAAEkU,GAAGlU,EAAE+nB,QAAQ7T,CAAC,CAAC,CAClf,SAASs7I,GAAGt7I,GAAG,IAAIlU,EAAEkU,EAAE+yH,UAAU,OAAOjnI,IAAIkU,EAAE+yH,UAAU,KAAKuoB,GAAGxvJ,IAAIkU,EAAEszH,MAAM,KAAKtzH,EAAE4qI,UAAU,KAAK5qI,EAAEuzH,QAAQ,KAAK,IAAIvzH,EAAE9L,MAAoB,QAAdpI,EAAEkU,EAAE4xH,oBAA4B9lI,EAAEi8I,WAAWj8I,EAAEk8I,WAAWl8I,EAAEo/E,WAAWp/E,EAAEm8I,WAAWn8I,EAAEo8I,MAAMloI,EAAE4xH,UAAU,KAAK5xH,EAAEs3G,OAAO,KAAKt3G,EAAEktI,aAAa,KAAKltI,EAAEqrI,cAAc,KAAKrrI,EAAEkzH,cAAc,KAAKlzH,EAAE8qI,aAAa,KAAK9qI,EAAE4xH,UAAU,KAAK5xH,EAAE8tI,YAAY,IAAI,CAAC,SAASyN,GAAGv7I,GAAG,OAAO,IAAIA,EAAE9L,KAAK,IAAI8L,EAAE9L,KAAK,IAAI8L,EAAE9L,GAAG,CACna,SAASsnJ,GAAGx7I,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAEuzH,SAAS,CAAC,GAAG,OAAOvzH,EAAEs3G,QAAQikC,GAAGv7I,EAAEs3G,QAAQ,OAAO,KAAKt3G,EAAEA,EAAEs3G,MAAM,CAA2B,IAA1Bt3G,EAAEuzH,QAAQjc,OAAOt3G,EAAEs3G,OAAWt3G,EAAEA,EAAEuzH,QAAQ,IAAIvzH,EAAE9L,KAAK,IAAI8L,EAAE9L,KAAK,KAAK8L,EAAE9L,KAAK,CAAC,GAAW,EAAR8L,EAAEgzH,MAAQ,SAAShzH,EAAE,GAAG,OAAOA,EAAEszH,OAAO,IAAItzH,EAAE9L,IAAI,SAAS8L,EAAOA,EAAEszH,MAAMhc,OAAOt3G,EAAEA,EAAEA,EAAEszH,KAAK,CAAC,KAAa,EAARtzH,EAAEgzH,OAAS,OAAOhzH,EAAE4xH,SAAS,CAAC,CACzT,SAAS6pB,GAAGz7I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAE9L,IAAI,GAAG,IAAI0gB,GAAG,IAAIA,EAAE5U,EAAEA,EAAE4xH,UAAU9lI,EAAE,IAAI8Q,EAAE8wH,SAAS9wH,EAAE43D,WAAW8nB,aAAat8E,EAAElU,GAAG8Q,EAAE0/E,aAAat8E,EAAElU,IAAI,IAAI8Q,EAAE8wH,UAAU5hI,EAAE8Q,EAAE43D,YAAa8nB,aAAat8E,EAAEpD,IAAK9Q,EAAE8Q,GAAI2kC,YAAYvhC,GAA4B,QAAxBpD,EAAEA,EAAE8+I,2BAA8B,IAAS9+I,GAAG,OAAO9Q,EAAEquJ,UAAUruJ,EAAEquJ,QAAQtT,UAAU,GAAG,IAAIjyH,GAAc,QAAV5U,EAAEA,EAAEszH,OAAgB,IAAImoB,GAAGz7I,EAAElU,EAAE8Q,GAAGoD,EAAEA,EAAEuzH,QAAQ,OAAOvzH,GAAGy7I,GAAGz7I,EAAElU,EAAE8Q,GAAGoD,EAAEA,EAAEuzH,OAAO,CAC1X,SAASooB,GAAG37I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAE9L,IAAI,GAAG,IAAI0gB,GAAG,IAAIA,EAAE5U,EAAEA,EAAE4xH,UAAU9lI,EAAE8Q,EAAE0/E,aAAat8E,EAAElU,GAAG8Q,EAAE2kC,YAAYvhC,QAAQ,GAAG,IAAI4U,GAAc,QAAV5U,EAAEA,EAAEszH,OAAgB,IAAIqoB,GAAG37I,EAAElU,EAAE8Q,GAAGoD,EAAEA,EAAEuzH,QAAQ,OAAOvzH,GAAG27I,GAAG37I,EAAElU,EAAE8Q,GAAGoD,EAAEA,EAAEuzH,OAAO,CAAC,IAAIqoB,GAAE,KAAKC,IAAG,EAAG,SAASC,GAAG97I,EAAElU,EAAE8Q,GAAG,IAAIA,EAAEA,EAAE02H,MAAM,OAAO12H,GAAGm/I,GAAG/7I,EAAElU,EAAE8Q,GAAGA,EAAEA,EAAE22H,OAAO,CACnR,SAASwoB,GAAG/7I,EAAElU,EAAE8Q,GAAG,GAAGquE,IAAI,oBAAoBA,GAAG+wE,qBAAqB,IAAI/wE,GAAG+wE,qBAAqBlnB,GAAGl4H,EAAE,CAAC,MAAM0P,GAAG,CAAC,OAAO1P,EAAE1I,KAAK,KAAK,EAAEymJ,IAAGI,GAAGn+I,EAAE9Q,GAAG,KAAK,EAAE,IAAI8oB,EAAEgnI,GAAEtpJ,EAAEupJ,GAAGD,GAAE,KAAKE,GAAG97I,EAAElU,EAAE8Q,GAAOi/I,GAAGvpJ,EAAE,QAATspJ,GAAEhnI,KAAkBinI,IAAI77I,EAAE47I,GAAEh/I,EAAEA,EAAEg1H,UAAU,IAAI5xH,EAAE0tH,SAAS1tH,EAAEw0D,WAAW0E,YAAYt8D,GAAGoD,EAAEk5D,YAAYt8D,IAAIg/I,GAAE1iF,YAAYt8D,EAAEg1H,YAAY,MAAM,KAAK,GAAG,OAAOgqB,KAAIC,IAAI77I,EAAE47I,GAAEh/I,EAAEA,EAAEg1H,UAAU,IAAI5xH,EAAE0tH,SAASga,GAAG1nI,EAAEw0D,WAAW53D,GAAG,IAAIoD,EAAE0tH,UAAUga,GAAG1nI,EAAEpD,GAAGu7H,GAAGn4H,IAAI0nI,GAAGkU,GAAEh/I,EAAEg1H,YAAY,MAAM,KAAK,EAAEh9G,EAAEgnI,GAAEtpJ,EAAEupJ,GAAGD,GAAEh/I,EAAEg1H,UAAUgG,cAAcikB,IAAG,EAClfC,GAAG97I,EAAElU,EAAE8Q,GAAGg/I,GAAEhnI,EAAEinI,GAAGvpJ,EAAE,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIqoJ,KAAoB,QAAhB/lI,EAAEhY,EAAEkxI,cAAsC,QAAfl5H,EAAEA,EAAEk9H,aAAsB,CAACx/I,EAAEsiB,EAAEA,EAAEvB,KAAK,EAAE,CAAC,IAAIuT,EAAEt0B,EAAEoc,EAAEkY,EAAEkF,QAAQlF,EAAEA,EAAE1yB,SAAI,IAASwa,IAAI,KAAO,EAAFkY,IAAe,KAAO,EAAFA,KAAfq0H,GAAGr+I,EAAE9Q,EAAE4iB,GAAyBpc,EAAEA,EAAE+gB,IAAI,OAAO/gB,IAAIsiB,EAAE,CAACknI,GAAG97I,EAAElU,EAAE8Q,GAAG,MAAM,KAAK,EAAE,IAAI+9I,KAAII,GAAGn+I,EAAE9Q,GAAiB,oBAAd8oB,EAAEhY,EAAEg1H,WAAgChW,sBAAsB,IAAIhnG,EAAEgU,MAAMhsB,EAAEyuI,cAAcz2H,EAAEm7E,MAAMnzF,EAAEs2H,cAAct+G,EAAEgnG,sBAAsB,CAAC,MAAMtvG,GAAG0uI,GAAEp+I,EAAE9Q,EAAEwgB,EAAE,CAACwvI,GAAG97I,EAAElU,EAAE8Q,GAAG,MAAM,KAAK,GAAGk/I,GAAG97I,EAAElU,EAAE8Q,GAAG,MAAM,KAAK,GAAU,EAAPA,EAAE0Q,MAAQqtI,IAAG/lI,EAAE+lI,KAAI,OAChf/9I,EAAEs2H,cAAc4oB,GAAG97I,EAAElU,EAAE8Q,GAAG+9I,GAAE/lI,GAAGknI,GAAG97I,EAAElU,EAAE8Q,GAAG,MAAM,QAAQk/I,GAAG97I,EAAElU,EAAE8Q,GAAG,CAAC,SAASq/I,GAAGj8I,GAAG,IAAIlU,EAAEkU,EAAE8tI,YAAY,GAAG,OAAOhiJ,EAAE,CAACkU,EAAE8tI,YAAY,KAAK,IAAIlxI,EAAEoD,EAAE4xH,UAAU,OAAOh1H,IAAIA,EAAEoD,EAAE4xH,UAAU,IAAIgpB,IAAI9uJ,EAAE8tB,SAAQ,SAAS9tB,GAAG,IAAI8oB,EAAEsnI,GAAGxoJ,KAAK,KAAKsM,EAAElU,GAAG8Q,EAAEwoI,IAAIt5I,KAAK8Q,EAAEoG,IAAIlX,GAAGA,EAAEknH,KAAKp+F,EAAEA,GAAG,GAAE,CAAC,CACzQ,SAASunI,GAAGn8I,EAAElU,GAAG,IAAI8Q,EAAE9Q,EAAE8+I,UAAU,GAAG,OAAOhuI,EAAE,IAAI,IAAIgY,EAAE,EAAEA,EAAEhY,EAAEtQ,OAAOsoB,IAAI,CAAC,IAAItiB,EAAEsK,EAAEgY,GAAG,IAAI,IAAIgS,EAAE5mB,EAAE0O,EAAE5iB,EAAEwgB,EAAEoC,EAAE1O,EAAE,KAAK,OAAOsM,GAAG,CAAC,OAAOA,EAAEpY,KAAK,KAAK,EAAE0nJ,GAAEtvI,EAAEslH,UAAUiqB,IAAG,EAAG,MAAM77I,EAAE,KAAK,EAA4C,KAAK,EAAE47I,GAAEtvI,EAAEslH,UAAUgG,cAAcikB,IAAG,EAAG,MAAM77I,EAAEsM,EAAEA,EAAEgrG,MAAM,CAAC,GAAG,OAAOskC,GAAE,MAAM9tJ,MAAM+b,EAAE,MAAMkyI,GAAGn1H,EAAElY,EAAEpc,GAAGspJ,GAAE,KAAKC,IAAG,EAAG,IAAI57I,EAAE3N,EAAEygI,UAAU,OAAO9yH,IAAIA,EAAEq3G,OAAO,MAAMhlH,EAAEglH,OAAO,IAAI,CAAC,MAAMzuG,GAAGmyI,GAAE1oJ,EAAExG,EAAE+c,EAAE,CAAC,CAAC,GAAkB,MAAf/c,EAAEstJ,aAAmB,IAAIttJ,EAAEA,EAAEwnI,MAAM,OAAOxnI,GAAGswJ,GAAGtwJ,EAAEkU,GAAGlU,EAAEA,EAAEynI,OAAO,CACje,SAAS6oB,GAAGp8I,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAE+yH,UAAUn+G,EAAE5U,EAAEgzH,MAAM,OAAOhzH,EAAE9L,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAiB,GAAdioJ,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAQ,EAAF4U,EAAI,CAAC,IAAIumI,GAAG,EAAEn7I,EAAEA,EAAEs3G,QAAQ8jC,GAAG,EAAEp7I,EAAE,CAAC,MAAMc,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,CAAC,IAAIq6I,GAAG,EAAEn7I,EAAEA,EAAEs3G,OAAO,CAAC,MAAMx2G,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEq7I,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAK,IAAF4U,GAAO,OAAOhY,GAAGm+I,GAAGn+I,EAAEA,EAAE06G,QAAQ,MAAM,KAAK,EAAgD,GAA9C6kC,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAK,IAAF4U,GAAO,OAAOhY,GAAGm+I,GAAGn+I,EAAEA,EAAE06G,QAAmB,GAARt3G,EAAEgzH,MAAS,CAAC,IAAI1gI,EAAE0N,EAAE4xH,UAAU,IAAIxxF,GAAG9tC,EAAE,GAAG,CAAC,MAAMwO,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,CAAC,CAAC,GAAK,EAAF8T,GAAoB,OAAdtiB,EAAE0N,EAAE4xH,WAAmB,CAAC,IAAIhrG,EAAE5mB,EAAEqrI,cAAc38H,EAAE,OAAO9R,EAAEA,EAAEyuI,cAAczkH,EAAEta,EAAEtM,EAAE2Z,KAAK1Z,EAAED,EAAE8tI,YACje,GAAnB9tI,EAAE8tI,YAAY,KAAQ,OAAO7tI,EAAE,IAAI,UAAUqM,GAAG,UAAUsa,EAAEjN,MAAM,MAAMiN,EAAEl5B,MAAM2+H,EAAG/5H,EAAEs0B,GAAGnyB,GAAG6X,EAAEoC,GAAG,IAAI7F,EAAEpU,GAAG6X,EAAEsa,GAAG,IAAIlY,EAAE,EAAEA,EAAEzO,EAAE3T,OAAOoiB,GAAG,EAAE,CAAC,IAAInE,EAAEtK,EAAEyO,GAAG5C,EAAE7L,EAAEyO,EAAE,GAAG,UAAUnE,EAAE6lH,GAAG99H,EAAEwZ,GAAG,4BAA4BvB,EAAE8iH,GAAG/6H,EAAEwZ,GAAG,aAAavB,EAAE61B,GAAG9tC,EAAEwZ,GAAGi9G,EAAGz2H,EAAEiY,EAAEuB,EAAEjD,EAAE,CAAC,OAAOyD,GAAG,IAAK,QAAQggH,EAAGh6H,EAAEs0B,GAAG,MAAM,IAAK,WAAWomG,GAAG16H,EAAEs0B,GAAG,MAAM,IAAK,SAAS,IAAI7pB,EAAEzK,EAAE05H,cAAcguB,YAAY1nJ,EAAE05H,cAAcguB,cAAcpzH,EAAEqzH,SAAS,IAAIxxI,EAAEme,EAAE7xB,MAAM,MAAM0T,EAAEsqE,GAAGzgF,IAAIs0B,EAAEqzH,SAASxxI,GAAE,GAAI1L,MAAM6pB,EAAEqzH,WAAW,MAAMrzH,EAAEmlG,aAAah5C,GAAGzgF,IAAIs0B,EAAEqzH,SACnfrzH,EAAEmlG,cAAa,GAAIh5C,GAAGzgF,IAAIs0B,EAAEqzH,SAASrzH,EAAEqzH,SAAS,GAAG,IAAG,IAAK3nJ,EAAE01I,IAAIphH,CAAC,CAAC,MAAM9lB,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdq7I,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAQ,EAAF4U,EAAI,CAAC,GAAG,OAAO5U,EAAE4xH,UAAU,MAAM9jI,MAAM+b,EAAE,MAAMvX,EAAE0N,EAAE4xH,UAAUhrG,EAAE5mB,EAAEqrI,cAAc,IAAI/4I,EAAEq7H,UAAU/mG,CAAC,CAAC,MAAM9lB,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdq7I,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAQ,EAAF4U,GAAK,OAAOhY,GAAGA,EAAEs2H,cAAcyE,aAAa,IAAIQ,GAAGrsI,EAAE8rI,cAAc,CAAC,MAAM92H,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,CAAC,MAAM,KAAK,EAG4G,QAAQq7I,GAAGrwJ,EACnfkU,GAAGq8I,GAAGr8I,SAJ4Y,KAAK,GAAGm8I,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAqB,MAAlB1N,EAAE0N,EAAEszH,OAAQN,QAAapsG,EAAE,OAAOt0B,EAAE4gI,cAAc5gI,EAAEs/H,UAAU0qB,SAAS11H,GAAGA,GAClf,OAAOt0B,EAAEygI,WAAW,OAAOzgI,EAAEygI,UAAUG,gBAAgBqpB,GAAGhuI,OAAQ,EAAFqG,GAAKqnI,GAAGj8I,GAAG,MAAM,KAAK,GAAsF,GAAnFuK,EAAE,OAAO3N,GAAG,OAAOA,EAAEs2H,cAAqB,EAAPlzH,EAAEsN,MAAQqtI,IAAG9xI,EAAE8xI,KAAIpwI,EAAE4xI,GAAGrwJ,EAAEkU,GAAG26I,GAAE9xI,GAAGszI,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAQ,KAAF4U,EAAO,CAA0B,GAAzB/L,EAAE,OAAO7I,EAAEkzH,eAAkBlzH,EAAE4xH,UAAU0qB,SAASzzI,KAAK0B,GAAG,KAAY,EAAPvK,EAAEsN,MAAQ,IAAIwtI,GAAE96I,EAAEuK,EAAEvK,EAAEszH,MAAM,OAAO/oH,GAAG,CAAC,IAAIuB,EAAEgvI,GAAEvwI,EAAE,OAAOuwI,IAAG,CAAe,OAAVryI,GAAJ1L,EAAE+9I,IAAMxnB,MAAav2H,EAAE7I,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAGinJ,GAAG,EAAEp+I,EAAEA,EAAEu6G,QAAQ,MAAM,KAAK,EAAEyjC,GAAGh+I,EAAEA,EAAEu6G,QAAQ,IAAIhtG,EAAEvN,EAAE60H,UAAU,GAAG,oBAAoBtnH,EAAEsxG,qBAAqB,CAAChnG,EAAE7X,EAAEH,EAAEG,EAAEu6G,OAAO,IAAIxrH,EAAE8oB,EAAEtK,EAAEse,MACpf98B,EAAEu/I,cAAc/gI,EAAEylF,MAAMjkG,EAAEonI,cAAc5oH,EAAEsxG,sBAAsB,CAAC,MAAM96G,GAAGk6I,GAAEpmI,EAAEhY,EAAEkE,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEi6I,GAAGh+I,EAAEA,EAAEu6G,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAOv6G,EAAEm2H,cAAc,CAACspB,GAAG1wI,GAAG,QAAQ,EAAE,OAAOrD,GAAGA,EAAE6uG,OAAOv6G,EAAE+9I,GAAEryI,GAAG+zI,GAAG1wI,EAAE,CAACvB,EAAEA,EAAEgpH,OAAO,CAACvzH,EAAE,IAAIuK,EAAE,KAAKuB,EAAE9L,IAAI,CAAC,GAAG,IAAI8L,EAAE5X,KAAK,GAAG,OAAOqW,EAAE,CAACA,EAAEuB,EAAE,IAAIxZ,EAAEwZ,EAAE8lH,UAAU/oH,EAAa,oBAAV+d,EAAEt0B,EAAEu2B,OAA4BwnG,YAAYzpG,EAAEypG,YAAY,UAAU,OAAO,aAAazpG,EAAE2O,QAAQ,QAASjpB,EAAER,EAAE8lH,UAAkCljH,OAAE,KAA1BzO,EAAE6L,EAAEu/H,cAAcxiH,QAAoB,OAAO5oB,GAAGA,EAAEjM,eAAe,WAAWiM,EAAEs1B,QAAQ,KAAKjpB,EAAEuc,MAAM0M,QACzfxsB,GAAG,UAAU2F,GAAG,CAAC,MAAM5N,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,CAAC,OAAO,GAAG,IAAIgL,EAAE5X,KAAK,GAAG,OAAOqW,EAAE,IAAIuB,EAAE8lH,UAAUjE,UAAU9kH,EAAE,GAAGiD,EAAEu/H,aAAa,CAAC,MAAMvqI,GAAGk6I,GAAEh7I,EAAEA,EAAEs3G,OAAOx2G,EAAE,OAAO,IAAI,KAAKgL,EAAE5X,KAAK,KAAK4X,EAAE5X,KAAK,OAAO4X,EAAEonH,eAAepnH,IAAI9L,IAAI,OAAO8L,EAAEwnH,MAAM,CAACxnH,EAAEwnH,MAAMhc,OAAOxrG,EAAEA,EAAEA,EAAEwnH,MAAM,QAAQ,CAAC,GAAGxnH,IAAI9L,EAAE,MAAMA,EAAE,KAAK,OAAO8L,EAAEynH,SAAS,CAAC,GAAG,OAAOznH,EAAEwrG,QAAQxrG,EAAEwrG,SAASt3G,EAAE,MAAMA,EAAEuK,IAAIuB,IAAIvB,EAAE,MAAMuB,EAAEA,EAAEwrG,MAAM,CAAC/sG,IAAIuB,IAAIvB,EAAE,MAAMuB,EAAEynH,QAAQjc,OAAOxrG,EAAEwrG,OAAOxrG,EAAEA,EAAEynH,OAAO,CAAC,CAAC,MAAM,KAAK,GAAG4oB,GAAGrwJ,EAAEkU,GAAGq8I,GAAGr8I,GAAK,EAAF4U,GAAKqnI,GAAGj8I,GAAS,KAAK,IACtd,CAAC,SAASq8I,GAAGr8I,GAAG,IAAIlU,EAAEkU,EAAEgzH,MAAM,GAAK,EAAFlnI,EAAI,CAAC,IAAIkU,EAAE,CAAC,IAAI,IAAIpD,EAAEoD,EAAEs3G,OAAO,OAAO16G,GAAG,CAAC,GAAG2+I,GAAG3+I,GAAG,CAAC,IAAIgY,EAAEhY,EAAE,MAAMoD,CAAC,CAACpD,EAAEA,EAAE06G,MAAM,CAAC,MAAMxpH,MAAM+b,EAAE,KAAM,CAAC,OAAO+K,EAAE1gB,KAAK,KAAK,EAAE,IAAI5B,EAAEsiB,EAAEg9G,UAAkB,GAARh9G,EAAEo+G,QAAW5yF,GAAG9tC,EAAE,IAAIsiB,EAAEo+G,QAAQ,IAAgB2oB,GAAG37I,EAATw7I,GAAGx7I,GAAU1N,GAAG,MAAM,KAAK,EAAE,KAAK,EAAE,IAAIoc,EAAEkG,EAAEg9G,UAAUgG,cAAsB6jB,GAAGz7I,EAATw7I,GAAGx7I,GAAU0O,GAAG,MAAM,QAAQ,MAAM5gB,MAAM+b,EAAE,MAAO,CAAC,MAAM5J,GAAG+6I,GAAEh7I,EAAEA,EAAEs3G,OAAOr3G,EAAE,CAACD,EAAEgzH,QAAQ,CAAC,CAAG,KAAFlnI,IAASkU,EAAEgzH,QAAQ,KAAK,CAAC,SAASypB,GAAGz8I,EAAElU,EAAE8Q,GAAGk+I,GAAE96I,EAAE08I,GAAG18I,EAAElU,EAAE8Q,EAAE,CACvb,SAAS8/I,GAAG18I,EAAElU,EAAE8Q,GAAG,IAAI,IAAIgY,EAAE,KAAY,EAAP5U,EAAEsN,MAAQ,OAAOwtI,IAAG,CAAC,IAAIxoJ,EAAEwoJ,GAAEl0H,EAAEt0B,EAAEghI,MAAM,GAAG,KAAKhhI,EAAE4B,KAAK0gB,EAAE,CAAC,IAAIlG,EAAE,OAAOpc,EAAE4gI,eAAewnB,GAAG,IAAIhsI,EAAE,CAAC,IAAIpC,EAAEha,EAAEygI,UAAU9yH,EAAE,OAAOqM,GAAG,OAAOA,EAAE4mH,eAAeynB,GAAEruI,EAAEouI,GAAG,IAAI7xI,EAAE8xI,GAAO,GAALD,GAAGhsI,GAAMisI,GAAE16I,KAAK4I,EAAE,IAAIiyI,GAAExoJ,EAAE,OAAOwoJ,IAAO76I,GAAJyO,EAAEosI,IAAMxnB,MAAM,KAAK5kH,EAAExa,KAAK,OAAOwa,EAAEwkH,cAAcypB,GAAGrqJ,GAAG,OAAO2N,GAAGA,EAAEq3G,OAAO5oG,EAAEosI,GAAE76I,GAAG08I,GAAGrqJ,GAAG,KAAK,OAAOs0B,GAAGk0H,GAAEl0H,EAAE81H,GAAG91H,EAAE96B,EAAE8Q,GAAGgqB,EAAEA,EAAE2sG,QAAQunB,GAAExoJ,EAAEooJ,GAAGpuI,EAAEquI,GAAE9xI,CAAC,CAAC+zI,GAAG58I,EAAM,MAAM,KAAoB,KAAf1N,EAAE8mJ,eAAoB,OAAOxyH,GAAGA,EAAE0wF,OAAOhlH,EAAEwoJ,GAAEl0H,GAAGg2H,GAAG58I,EAAM,CAAC,CACvc,SAAS48I,GAAG58I,GAAG,KAAK,OAAO86I,IAAG,CAAC,IAAIhvJ,EAAEgvJ,GAAE,GAAG,KAAa,KAARhvJ,EAAEknI,OAAY,CAAC,IAAIp2H,EAAE9Q,EAAEinI,UAAU,IAAI,GAAG,KAAa,KAARjnI,EAAEknI,OAAY,OAAOlnI,EAAEoI,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGymJ,IAAGS,GAAG,EAAEtvJ,GAAG,MAAM,KAAK,EAAE,IAAI8oB,EAAE9oB,EAAE8lI,UAAU,GAAW,EAAR9lI,EAAEknI,QAAU2nB,GAAE,GAAG,OAAO/9I,EAAEgY,EAAEsmG,wBAAwB,CAAC,IAAI5oH,EAAExG,EAAEs/G,cAAct/G,EAAE6tB,KAAK/c,EAAEyuI,cAAc+I,GAAGtoJ,EAAE6tB,KAAK/c,EAAEyuI,eAAez2H,EAAE0mG,mBAAmBhpH,EAAEsK,EAAEs2H,cAAct+G,EAAEioI,oCAAoC,CAAC,IAAIj2H,EAAE96B,EAAEgiJ,YAAY,OAAOlnH,GAAGyuB,GAAGvpD,EAAE86B,EAAEhS,GAAG,MAAM,KAAK,EAAE,IAAIlG,EAAE5iB,EAAEgiJ,YAAY,GAAG,OAAOp/H,EAAE,CAAQ,GAAP9R,EAAE,KAAQ,OAAO9Q,EAAEwnI,MAAM,OAAOxnI,EAAEwnI,MAAMp/H,KAAK,KAAK,EACvf,KAAK,EAAE0I,EAAE9Q,EAAEwnI,MAAM1B,UAAUv8E,GAAGvpD,EAAE4iB,EAAE9R,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI0P,EAAExgB,EAAE8lI,UAAU,GAAG,OAAOh1H,GAAW,EAAR9Q,EAAEknI,MAAQ,CAACp2H,EAAE0P,EAAE,IAAIrM,EAAEnU,EAAEu/I,cAAc,OAAOv/I,EAAE6tB,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW1Z,EAAEm6I,WAAWx9I,EAAE6mI,QAAQ,MAAM,IAAK,MAAMxjI,EAAEzR,MAAMoO,EAAEpO,IAAIyR,EAAEzR,KAAK,CAAC,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAhM,KAAK,GAAG,GAAG,OAAO1C,EAAEonI,cAAc,CAAC,IAAIrqH,EAAE/c,EAAEinI,UAAU,GAAG,OAAOlqH,EAAE,CAAC,IAAI0B,EAAE1B,EAAEqqH,cAAc,GAAG,OAAO3oH,EAAE,CAAC,IAAIuB,EAAEvB,EAAE4oH,WAAW,OAAOrnH,GAAGqsH,GAAGrsH,EAAE,CAAC,CAAC,CAAC,MAC5c,QAAQ,MAAMhe,MAAM+b,EAAE,MAAO8wI,IAAW,IAAR7uJ,EAAEknI,OAAWqoB,GAAGvvJ,EAAE,CAAC,MAAMiR,GAAGi+I,GAAElvJ,EAAEA,EAAEwrH,OAAOv6G,EAAE,CAAC,CAAC,GAAGjR,IAAIkU,EAAE,CAAC86I,GAAE,KAAK,KAAK,CAAa,GAAG,QAAfl+I,EAAE9Q,EAAEynI,SAAoB,CAAC32H,EAAE06G,OAAOxrH,EAAEwrH,OAAOwjC,GAAEl+I,EAAE,KAAK,CAACk+I,GAAEhvJ,EAAEwrH,MAAM,CAAC,CAAC,SAASklC,GAAGx8I,GAAG,KAAK,OAAO86I,IAAG,CAAC,IAAIhvJ,EAAEgvJ,GAAE,GAAGhvJ,IAAIkU,EAAE,CAAC86I,GAAE,KAAK,KAAK,CAAC,IAAIl+I,EAAE9Q,EAAEynI,QAAQ,GAAG,OAAO32H,EAAE,CAACA,EAAE06G,OAAOxrH,EAAEwrH,OAAOwjC,GAAEl+I,EAAE,KAAK,CAACk+I,GAAEhvJ,EAAEwrH,MAAM,CAAC,CACvS,SAASqlC,GAAG38I,GAAG,KAAK,OAAO86I,IAAG,CAAC,IAAIhvJ,EAAEgvJ,GAAE,IAAI,OAAOhvJ,EAAEoI,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI0I,EAAE9Q,EAAEwrH,OAAO,IAAI8jC,GAAG,EAAEtvJ,EAAE,CAAC,MAAMmU,GAAG+6I,GAAElvJ,EAAE8Q,EAAEqD,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI2U,EAAE9oB,EAAE8lI,UAAU,GAAG,oBAAoBh9G,EAAEsmG,kBAAkB,CAAC,IAAI5oH,EAAExG,EAAEwrH,OAAO,IAAI1iG,EAAEsmG,mBAAmB,CAAC,MAAMj7G,GAAG+6I,GAAElvJ,EAAEwG,EAAE2N,EAAE,CAAC,CAAC,IAAI2mB,EAAE96B,EAAEwrH,OAAO,IAAI+jC,GAAGvvJ,EAAE,CAAC,MAAMmU,GAAG+6I,GAAElvJ,EAAE86B,EAAE3mB,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIyO,EAAE5iB,EAAEwrH,OAAO,IAAI+jC,GAAGvvJ,EAAE,CAAC,MAAMmU,GAAG+6I,GAAElvJ,EAAE4iB,EAAEzO,EAAE,EAAE,CAAC,MAAMA,GAAG+6I,GAAElvJ,EAAEA,EAAEwrH,OAAOr3G,EAAE,CAAC,GAAGnU,IAAIkU,EAAE,CAAC86I,GAAE,KAAK,KAAK,CAAC,IAAIxuI,EAAExgB,EAAEynI,QAAQ,GAAG,OAAOjnH,EAAE,CAACA,EAAEgrG,OAAOxrH,EAAEwrH,OAAOwjC,GAAExuI,EAAE,KAAK,CAACwuI,GAAEhvJ,EAAEwrH,MAAM,CAAC,CAC7d,IAwBkNwlC,GAxB9MC,GAAG1uJ,KAAKyP,KAAKk/I,GAAG5zB,EAAGwmB,uBAAuBqN,GAAG7zB,EAAG0tB,kBAAkBoG,GAAG9zB,EAAGiP,wBAAwBmW,GAAE,EAAE1gC,GAAE,KAAKqvC,GAAE,KAAKC,GAAE,EAAEzF,GAAG,EAAED,GAAGrP,GAAG,GAAGiS,GAAE,EAAE+C,GAAG,KAAK1O,GAAG,EAAE2O,GAAG,EAAEC,GAAG,EAAEvhH,GAAG,KAAKwhH,GAAG,KAAKjB,GAAG,EAAEhC,GAAGh1H,IAASk4H,GAAG,KAAKxH,IAAG,EAAGC,GAAG,KAAKI,GAAG,KAAKoH,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAE,SAASvrC,KAAI,OAAO,KAAO,EAAF+7B,IAAKjgI,MAAK,IAAIwvI,GAAGA,GAAGA,GAAGxvI,IAAG,CAChU,SAASykI,GAAGhzI,GAAG,OAAG,KAAY,EAAPA,EAAEsN,MAAe,EAAK,KAAO,EAAFkhI,KAAM,IAAI4O,GAASA,IAAGA,GAAK,OAAO3R,GAAGhtB,YAAkB,IAAIu/B,KAAKA,GAAGroB,MAAMqoB,IAAU,KAAPh+I,EAAEwO,IAAkBxO,EAAiBA,OAAE,KAAjBA,EAAEvD,OAAOuhC,OAAmB,GAAG26F,GAAG34H,EAAE2Z,KAAc,CAAC,SAASu4H,GAAGlyI,EAAElU,EAAE8Q,EAAEgY,GAAG,GAAG,GAAGipI,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKhwJ,MAAM+b,EAAE,MAAMgsH,GAAG71H,EAAEpD,EAAEgY,GAAM,KAAO,EAAF45H,KAAMxuI,IAAI8tG,KAAE9tG,IAAI8tG,KAAI,KAAO,EAAF0gC,MAAO8O,IAAI1gJ,GAAG,IAAI09I,IAAG2D,GAAGj+I,EAAEo9I,KAAIc,GAAGl+I,EAAE4U,GAAG,IAAIhY,GAAG,IAAI4xI,IAAG,KAAY,EAAP1iJ,EAAEwhB,QAAUitI,GAAGhsI,KAAI,IAAIi7H,IAAIE,MAAK,CAC1Y,SAASwU,GAAGl+I,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAEm+I,cA3MzB,SAAYn+I,EAAElU,GAAG,IAAI,IAAI8Q,EAAEoD,EAAEs1H,eAAe1gH,EAAE5U,EAAEu1H,YAAYjjI,EAAE0N,EAAEo+I,gBAAgBx3H,EAAE5mB,EAAEq1H,aAAa,EAAEzuG,GAAG,CAAC,IAAIlY,EAAE,GAAGqmH,GAAGnuG,GAAGta,EAAE,GAAGoC,EAAEzO,EAAE3N,EAAEoc,IAAO,IAAIzO,EAAM,KAAKqM,EAAE1P,IAAI,KAAK0P,EAAEsI,KAAGtiB,EAAEoc,GAAGgnH,GAAGppH,EAAExgB,IAAQmU,GAAGnU,IAAIkU,EAAEq+I,cAAc/xI,GAAGsa,IAAIta,CAAC,CAAC,CA2MnLgyI,CAAGt+I,EAAElU,GAAG,IAAI8oB,EAAEwgH,GAAGp1H,EAAEA,IAAI8tG,GAAEsvC,GAAE,GAAG,GAAG,IAAIxoI,EAAE,OAAOhY,GAAGg3H,GAAGh3H,GAAGoD,EAAEm+I,aAAa,KAAKn+I,EAAEu+I,iBAAiB,OAAO,GAAGzyJ,EAAE8oB,GAAGA,EAAE5U,EAAEu+I,mBAAmBzyJ,EAAE,CAAgB,GAAf,MAAM8Q,GAAGg3H,GAAGh3H,GAAM,IAAI9Q,EAAE,IAAIkU,EAAE9L,IA5IsJ,SAAY8L,GAAGwpI,IAAG,EAAGC,GAAGzpI,EAAE,CA4I5Kw+I,CAAGC,GAAG/qJ,KAAK,KAAKsM,IAAIypI,GAAGgV,GAAG/qJ,KAAK,KAAKsM,IAAIqnI,IAAG,WAAW,KAAO,EAAFmH,KAAM9E,IAAI,IAAG9sI,EAAE,SAAS,CAAC,OAAOo5H,GAAGphH,IAAI,KAAK,EAAEhY,EAAE0wE,GAAG,MAAM,KAAK,EAAE1wE,EAAE03H,GAAG,MAAM,KAAK,GAAwC,QAAQ13H,EAAE43H,SAApC,KAAK,UAAU53H,EAAEg4H,GAAsBh4H,EAAE8hJ,GAAG9hJ,EAAE+hJ,GAAGjrJ,KAAK,KAAKsM,GAAG,CAACA,EAAEu+I,iBAAiBzyJ,EAAEkU,EAAEm+I,aAAavhJ,CAAC,CAAC,CAC7c,SAAS+hJ,GAAG3+I,EAAElU,GAAc,GAAXiyJ,IAAI,EAAEC,GAAG,EAAK,KAAO,EAAFxP,IAAK,MAAM1gJ,MAAM+b,EAAE,MAAM,IAAIjN,EAAEoD,EAAEm+I,aAAa,GAAGS,MAAM5+I,EAAEm+I,eAAevhJ,EAAE,OAAO,KAAK,IAAIgY,EAAEwgH,GAAGp1H,EAAEA,IAAI8tG,GAAEsvC,GAAE,GAAG,GAAG,IAAIxoI,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAE5U,EAAEq+I,eAAevyJ,EAAEA,EAAE+yJ,GAAG7+I,EAAE4U,OAAO,CAAC9oB,EAAE8oB,EAAE,IAAItiB,EAAEk8I,GAAEA,IAAG,EAAE,IAAI5nH,EAAEk4H,KAAgD,IAAxChxC,KAAI9tG,GAAGo9I,KAAItxJ,IAAE2xJ,GAAG,KAAKlD,GAAGhsI,KAAI,IAAIwwI,GAAG/+I,EAAElU,UAAUkzJ,KAAK,KAAK,CAAC,MAAM1yI,GAAG2yI,GAAGj/I,EAAEsM,EAAE,CAAUugI,KAAKmQ,GAAGnpI,QAAQ+S,EAAE4nH,GAAEl8I,EAAE,OAAO6qJ,GAAErxJ,EAAE,GAAGgiH,GAAE,KAAKsvC,GAAE,EAAEtxJ,EAAEwuJ,GAAE,CAAC,GAAG,IAAIxuJ,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAARwG,EAAE+E,GAAG2I,MAAW4U,EAAEtiB,EAAExG,EAAEozJ,GAAGl/I,EAAE1N,KAAQ,IAAIxG,EAAE,MAAM8Q,EAAEygJ,GAAG0B,GAAG/+I,EAAE,GAAGi+I,GAAGj+I,EAAE4U,GAAGspI,GAAGl+I,EAAEuO,MAAK3R,EAAE,GAAG,IAAI9Q,EAAEmyJ,GAAGj+I,EAAE4U,OAChf,CAAuB,GAAtBtiB,EAAE0N,EAAE6T,QAAQk/G,UAAa,KAAO,GAAFn+G,KAGnC,SAAY5U,GAAG,IAAI,IAAIlU,EAAEkU,IAAI,CAAC,GAAW,MAARlU,EAAEknI,MAAY,CAAC,IAAIp2H,EAAE9Q,EAAEgiJ,YAAY,GAAG,OAAOlxI,GAAe,QAAXA,EAAEA,EAAEm1I,QAAiB,IAAI,IAAIn9H,EAAE,EAAEA,EAAEhY,EAAEtQ,OAAOsoB,IAAI,CAAC,IAAItiB,EAAEsK,EAAEgY,GAAGgS,EAAEt0B,EAAEo/I,YAAYp/I,EAAEA,EAAEyC,MAAM,IAAI,IAAIysI,GAAG56G,IAAIt0B,GAAG,OAAM,CAAE,CAAC,MAAMoc,GAAG,OAAM,CAAE,CAAC,CAAC,CAAW,GAAV9R,EAAE9Q,EAAEwnI,MAAwB,MAAfxnI,EAAEstJ,cAAoB,OAAOx8I,EAAEA,EAAE06G,OAAOxrH,EAAEA,EAAE8Q,MAAM,CAAC,GAAG9Q,IAAIkU,EAAE,MAAM,KAAK,OAAOlU,EAAEynI,SAAS,CAAC,GAAG,OAAOznI,EAAEwrH,QAAQxrH,EAAEwrH,SAASt3G,EAAE,OAAM,EAAGlU,EAAEA,EAAEwrH,MAAM,CAACxrH,EAAEynI,QAAQjc,OAAOxrH,EAAEwrH,OAAOxrH,EAAEA,EAAEynI,OAAO,CAAC,CAAC,OAAM,CAAE,CAHvX4rB,CAAG7sJ,KAAe,KAAVxG,EAAE+yJ,GAAG7+I,EAAE4U,MAAmB,KAARgS,EAAEvvB,GAAG2I,MAAW4U,EAAEgS,EAAE96B,EAAEozJ,GAAGl/I,EAAE4mB,KAAK,IAAI96B,GAAG,MAAM8Q,EAAEygJ,GAAG0B,GAAG/+I,EAAE,GAAGi+I,GAAGj+I,EAAE4U,GAAGspI,GAAGl+I,EAAEuO,MAAK3R,EAAqC,OAAnCoD,EAAEo/I,aAAa9sJ,EAAE0N,EAAEq/I,cAAczqI,EAAS9oB,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMgC,MAAM+b,EAAE,MAAM,KAAK,EAC8B,KAAK,EAAEy1I,GAAGt/I,EAAEw9I,GAAGC,IAAI,MAD7B,KAAK,EAAU,GAARQ,GAAGj+I,EAAE4U,IAAS,UAAFA,KAAeA,GAAiB,IAAb9oB,EAAEywJ,GAAG,IAAIhuI,MAAU,CAAC,GAAG,IAAI6mH,GAAGp1H,EAAE,GAAG,MAAyB,KAAnB1N,EAAE0N,EAAEs1H,gBAAqB1gH,KAAKA,EAAE,CAAC69F,KAAIzyG,EAAEu1H,aAAav1H,EAAEs1H,eAAehjI,EAAE,KAAK,CAAC0N,EAAEu/I,cAAcrY,GAAGoY,GAAG5rJ,KAAK,KAAKsM,EAAEw9I,GAAGC,IAAI3xJ,GAAG,KAAK,CAACwzJ,GAAGt/I,EAAEw9I,GAAGC,IAAI,MAAM,KAAK,EAAU,GAARQ,GAAGj+I,EAAE4U,IAAS,QAAFA,KAC9eA,EAAE,MAAqB,IAAf9oB,EAAEkU,EAAE81H,WAAexjI,GAAG,EAAE,EAAEsiB,GAAG,CAAC,IAAIlG,EAAE,GAAGqmH,GAAGngH,GAAGgS,EAAE,GAAGlY,GAAEA,EAAE5iB,EAAE4iB,IAAKpc,IAAIA,EAAEoc,GAAGkG,IAAIgS,CAAC,CAAqG,GAApGhS,EAAEtiB,EAAqG,IAA3FsiB,GAAG,KAAXA,EAAErG,KAAIqG,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKmoI,GAAGnoI,EAAE,OAAOA,GAAU,CAAC5U,EAAEu/I,cAAcrY,GAAGoY,GAAG5rJ,KAAK,KAAKsM,EAAEw9I,GAAGC,IAAI7oI,GAAG,KAAK,CAAC0qI,GAAGt/I,EAAEw9I,GAAGC,IAAI,MAA+B,QAAQ,MAAM3vJ,MAAM+b,EAAE,MAAO,CAAC,CAAW,OAAVq0I,GAAGl+I,EAAEuO,MAAYvO,EAAEm+I,eAAevhJ,EAAE+hJ,GAAGjrJ,KAAK,KAAKsM,GAAG,IAAI,CACrX,SAASk/I,GAAGl/I,EAAElU,GAAG,IAAI8Q,EAAEo/B,GAA2G,OAAxGh8B,EAAE6T,QAAQq/G,cAAcyE,eAAeonB,GAAG/+I,EAAElU,GAAGknI,OAAO,KAAe,KAAVhzH,EAAE6+I,GAAG7+I,EAAElU,MAAWA,EAAE0xJ,GAAGA,GAAG5gJ,EAAE,OAAO9Q,GAAGiuJ,GAAGjuJ,IAAWkU,CAAC,CAAC,SAAS+5I,GAAG/5I,GAAG,OAAOw9I,GAAGA,GAAGx9I,EAAEw9I,GAAG7rJ,KAAK0mB,MAAMmlI,GAAGx9I,EAAE,CAE5L,SAASi+I,GAAGj+I,EAAElU,GAAuD,IAApDA,IAAIyxJ,GAAGzxJ,IAAIwxJ,GAAGt9I,EAAEs1H,gBAAgBxpI,EAAEkU,EAAEu1H,cAAczpI,EAAMkU,EAAEA,EAAEo+I,gBAAgB,EAAEtyJ,GAAG,CAAC,IAAI8Q,EAAE,GAAGm4H,GAAGjpI,GAAG8oB,EAAE,GAAGhY,EAAEoD,EAAEpD,IAAI,EAAE9Q,IAAI8oB,CAAC,CAAC,CAAC,SAAS6pI,GAAGz+I,GAAG,GAAG,KAAO,EAAFwuI,IAAK,MAAM1gJ,MAAM+b,EAAE,MAAM+0I,KAAK,IAAI9yJ,EAAEspI,GAAGp1H,EAAE,GAAG,GAAG,KAAO,EAAFlU,GAAK,OAAOoyJ,GAAGl+I,EAAEuO,MAAK,KAAK,IAAI3R,EAAEiiJ,GAAG7+I,EAAElU,GAAG,GAAG,IAAIkU,EAAE9L,KAAK,IAAI0I,EAAE,CAAC,IAAIgY,EAAEvd,GAAG2I,GAAG,IAAI4U,IAAI9oB,EAAE8oB,EAAEhY,EAAEsiJ,GAAGl/I,EAAE4U,GAAG,CAAC,GAAG,IAAIhY,EAAE,MAAMA,EAAEygJ,GAAG0B,GAAG/+I,EAAE,GAAGi+I,GAAGj+I,EAAElU,GAAGoyJ,GAAGl+I,EAAEuO,MAAK3R,EAAE,GAAG,IAAIA,EAAE,MAAM9O,MAAM+b,EAAE,MAAiF,OAA3E7J,EAAEo/I,aAAap/I,EAAE6T,QAAQk/G,UAAU/yH,EAAEq/I,cAAcvzJ,EAAEwzJ,GAAGt/I,EAAEw9I,GAAGC,IAAIS,GAAGl+I,EAAEuO,MAAY,IAAI,CACvd,SAASixI,GAAGx/I,EAAElU,GAAG,IAAI8Q,EAAE4xI,GAAEA,IAAG,EAAE,IAAI,OAAOxuI,EAAElU,EAAE,CAAC,QAAY,KAAJ0iJ,GAAE5xI,KAAU29I,GAAGhsI,KAAI,IAAIi7H,IAAIE,KAAK,CAAC,CAAC,SAAS+V,GAAGz/I,GAAG,OAAO29I,IAAI,IAAIA,GAAGzpJ,KAAK,KAAO,EAAFs6I,KAAMoQ,KAAK,IAAI9yJ,EAAE0iJ,GAAEA,IAAG,EAAE,IAAI5xI,EAAEsgJ,GAAGz+B,WAAW7pG,EAAEpG,GAAE,IAAI,GAAG0uI,GAAGz+B,WAAW,KAAKjwG,GAAE,EAAExO,EAAE,OAAOA,GAAG,CAAC,QAAQwO,GAAEoG,EAAEsoI,GAAGz+B,WAAW7hH,EAAM,KAAO,GAAX4xI,GAAE1iJ,KAAa49I,IAAI,CAAC,CAAC,SAAS8Q,KAAK7C,GAAGD,GAAG7jI,QAAQ2Q,GAAEkzH,GAAG,CAChT,SAASqH,GAAG/+I,EAAElU,GAAGkU,EAAEo/I,aAAa,KAAKp/I,EAAEq/I,cAAc,EAAE,IAAIziJ,EAAEoD,EAAEu/I,cAAiD,IAAlC,IAAI3iJ,IAAIoD,EAAEu/I,eAAe,EAAEpY,GAAGvqI,IAAO,OAAOugJ,GAAE,IAAIvgJ,EAAEugJ,GAAE7lC,OAAO,OAAO16G,GAAG,CAAC,IAAIgY,EAAEhY,EAAQ,OAAN0tI,GAAG11H,GAAUA,EAAE1gB,KAAK,KAAK,EAA6B,QAA3B0gB,EAAEA,EAAE+E,KAAKovH,yBAA4B,IAASn0H,GAAGo0H,KAAK,MAAM,KAAK,EAAEmG,KAAK3qH,GAAEgkH,IAAIhkH,GAAEupF,IAAG0hC,KAAK,MAAM,KAAK,EAAEJ,GAAGz6H,GAAG,MAAM,KAAK,EAAEu6H,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG3qH,GAAEqpF,IAAG,MAAM,KAAK,GAAGi/B,GAAGl4H,EAAE+E,KAAKoxG,UAAU,MAAM,KAAK,GAAG,KAAK,GAAGyvB,KAAK59I,EAAEA,EAAE06G,MAAM,CAAqE,GAApExJ,GAAE9tG,EAAEm9I,GAAEn9I,EAAEisI,GAAGjsI,EAAE6T,QAAQ,MAAMupI,GAAEzF,GAAG7rJ,EAAEwuJ,GAAE,EAAE+C,GAAG,KAAKE,GAAGD,GAAG3O,GAAG,EAAE6O,GAAGxhH,GAAG,KAAQ,OAAO62C,GAAG,CAAC,IAAI/mF,EAC1f,EAAEA,EAAE+mF,GAAGvmF,OAAOR,IAAI,GAA2B,QAAhB8oB,GAARhY,EAAEi2E,GAAG/mF,IAAO4hJ,aAAqB,CAAC9wI,EAAE8wI,YAAY,KAAK,IAAIp7I,EAAEsiB,EAAEvB,KAAKuT,EAAEhqB,EAAEuxI,QAAQ,GAAG,OAAOvnH,EAAE,CAAC,IAAIlY,EAAEkY,EAAEvT,KAAKuT,EAAEvT,KAAK/gB,EAAEsiB,EAAEvB,KAAK3E,CAAC,CAAC9R,EAAEuxI,QAAQv5H,CAAC,CAACi+D,GAAG,IAAI,CAAC,OAAO7yE,CAAC,CAC3K,SAASi/I,GAAGj/I,EAAElU,GAAG,OAAE,CAAC,IAAI8Q,EAAEugJ,GAAE,IAAuB,GAAnBtQ,KAAK8C,GAAG97H,QAAQ28H,GAAMT,GAAG,CAAC,IAAI,IAAIn7H,EAAEg3F,GAAEsnB,cAAc,OAAOt+G,GAAG,CAAC,IAAItiB,EAAEsiB,EAAEg8H,MAAM,OAAOt+I,IAAIA,EAAE67I,QAAQ,MAAMv5H,EAAEA,EAAEvB,IAAI,CAAC08H,IAAG,CAAE,CAA4C,GAA3CD,GAAG,EAAE59B,GAAEtpG,GAAEgjG,GAAE,KAAKokC,IAAG,EAAGC,GAAG,EAAEgN,GAAGppI,QAAQ,KAAQ,OAAOjX,GAAG,OAAOA,EAAE06G,OAAO,CAACgjC,GAAE,EAAE+C,GAAGvxJ,EAAEqxJ,GAAE,KAAK,KAAK,CAACn9I,EAAE,CAAC,IAAI4mB,EAAE5mB,EAAE0O,EAAE9R,EAAE06G,OAAOhrG,EAAE1P,EAAEqD,EAAEnU,EAAqB,GAAnBA,EAAEsxJ,GAAE9wI,EAAE0mH,OAAO,MAAS,OAAO/yH,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE+yG,KAAK,CAAC,IAAInqG,EAAE5I,EAAEsK,EAAE+B,EAAER,EAAEvB,EAAErW,IAAI,GAAG,KAAY,EAAPqW,EAAE+C,QAAU,IAAIxB,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAI/O,EAAEwN,EAAEwoH,UAAUh2H,GAAGwN,EAAEujI,YAAY/wI,EAAE+wI,YAAYvjI,EAAE2oH,cAAcn2H,EAAEm2H,cACxe3oH,EAAE6iI,MAAMrwI,EAAEqwI,QAAQ7iI,EAAEujI,YAAY,KAAKvjI,EAAE2oH,cAAc,KAAK,CAAC,IAAIzqH,EAAEkuI,GAAGjoI,GAAG,GAAG,OAAOjG,EAAE,CAACA,EAAEuqH,QAAQ,IAAI4jB,GAAGnuI,EAAEiG,EAAEpC,EAAEsa,EAAE96B,GAAU,EAAP2c,EAAE6E,MAAQkpI,GAAG5vH,EAAE/d,EAAE/c,GAAOmU,EAAE4I,EAAE,IAAIyB,GAAZxe,EAAE2c,GAAcqlI,YAAY,GAAG,OAAOxjI,EAAE,CAAC,IAAIxJ,EAAE,IAAIinH,IAAIjnH,EAAEkC,IAAI/C,GAAGnU,EAAEgiJ,YAAYhtI,CAAC,MAAMwJ,EAAEtH,IAAI/C,GAAG,MAAMD,CAAC,CAAM,GAAG,KAAO,EAAFlU,GAAK,CAAC0qJ,GAAG5vH,EAAE/d,EAAE/c,GAAGktJ,KAAK,MAAMh5I,CAAC,CAACC,EAAEnS,MAAM+b,EAAE,KAAM,MAAM,GAAG0oG,IAAU,EAAPjmG,EAAEgB,KAAO,CAAC,IAAIq4H,EAAEgR,GAAGjoI,GAAG,GAAG,OAAOi3H,EAAE,CAAC,KAAa,MAARA,EAAE3S,SAAe2S,EAAE3S,OAAO,KAAK4jB,GAAGjR,EAAEj3H,EAAEpC,EAAEsa,EAAE96B,GAAG0/I,GAAGkK,GAAGz1I,EAAEqM,IAAI,MAAMtM,CAAC,CAAC,CAAC4mB,EAAE3mB,EAAEy1I,GAAGz1I,EAAEqM,GAAG,IAAIguI,KAAIA,GAAE,GAAG,OAAOt+G,GAAGA,GAAG,CAACpV,GAAGoV,GAAGrqC,KAAKi1B,GAAGA,EAAElY,EAAE,EAAE,CAAC,OAAOkY,EAAE1yB,KAAK,KAAK,EAAE0yB,EAAEosG,OAAO,MACpflnI,IAAIA,EAAE86B,EAAEwmH,OAAOthJ,EAAkBif,GAAG6b,EAAbovH,GAAGpvH,EAAE3mB,EAAEnU,IAAW,MAAMkU,EAAE,KAAK,EAAEsM,EAAErM,EAAE,IAAIlC,EAAE6oB,EAAEjN,KAAK3F,EAAE4S,EAAEgrG,UAAU,GAAG,KAAa,IAARhrG,EAAEosG,SAAa,oBAAoBj1H,EAAEq4I,0BAA0B,OAAOpiI,GAAG,oBAAoBA,EAAEqiI,oBAAoB,OAAOC,KAAKA,GAAGlR,IAAIpxH,KAAK,CAAC4S,EAAEosG,OAAO,MAAMlnI,IAAIA,EAAE86B,EAAEwmH,OAAOthJ,EAAkBif,GAAG6b,EAAbuvH,GAAGvvH,EAAEta,EAAExgB,IAAW,MAAMkU,CAAC,EAAE4mB,EAAEA,EAAE0wF,MAAM,OAAO,OAAO1wF,EAAE,CAAC84H,GAAG9iJ,EAAE,CAAC,MAAMspI,GAAIp6I,EAAEo6I,EAAGiX,KAAIvgJ,GAAG,OAAOA,IAAIugJ,GAAEvgJ,EAAEA,EAAE06G,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAAC,SAASwnC,KAAK,IAAI9+I,EAAEg9I,GAAGnpI,QAAsB,OAAdmpI,GAAGnpI,QAAQ28H,GAAU,OAAOxwI,EAAEwwI,GAAGxwI,CAAC,CACrd,SAASg5I,KAAQ,IAAIsB,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAOxsC,IAAG,KAAQ,UAAH6gC,KAAe,KAAQ,UAAH2O,KAAeW,GAAGnwC,GAAEsvC,GAAE,CAAC,SAASyB,GAAG7+I,EAAElU,GAAG,IAAI8Q,EAAE4xI,GAAEA,IAAG,EAAE,IAAI55H,EAAEkqI,KAAqC,IAA7BhxC,KAAI9tG,GAAGo9I,KAAItxJ,IAAE2xJ,GAAG,KAAKsB,GAAG/+I,EAAElU,UAAU6zJ,KAAK,KAAK,CAAC,MAAMrtJ,GAAG2sJ,GAAGj/I,EAAE1N,EAAE,CAAgC,GAAtBu6I,KAAK2B,GAAE5xI,EAAEogJ,GAAGnpI,QAAQe,EAAK,OAAOuoI,GAAE,MAAMrvJ,MAAM+b,EAAE,MAAiB,OAAXikG,GAAE,KAAKsvC,GAAE,EAAS9C,EAAC,CAAC,SAASqF,KAAK,KAAK,OAAOxC,IAAGyC,GAAGzC,GAAE,CAAC,SAAS6B,KAAK,KAAK,OAAO7B,KAAIrpB,MAAM8rB,GAAGzC,GAAE,CAAC,SAASyC,GAAG5/I,GAAG,IAAIlU,EAAEgxJ,GAAG98I,EAAE+yH,UAAU/yH,EAAE23I,IAAI33I,EAAEqrI,cAAcrrI,EAAE8qI,aAAa,OAAOh/I,EAAE4zJ,GAAG1/I,GAAGm9I,GAAErxJ,EAAEmxJ,GAAGppI,QAAQ,IAAI,CAC1d,SAAS6rI,GAAG1/I,GAAG,IAAIlU,EAAEkU,EAAE,EAAE,CAAC,IAAIpD,EAAE9Q,EAAEinI,UAAqB,GAAX/yH,EAAElU,EAAEwrH,OAAU,KAAa,MAARxrH,EAAEknI,QAAc,GAAgB,QAAbp2H,EAAEk9I,GAAGl9I,EAAE9Q,EAAE6rJ,KAAkB,YAAJwF,GAAEvgJ,OAAc,CAAW,GAAG,QAAbA,EAAE69I,GAAG79I,EAAE9Q,IAAmC,OAAnB8Q,EAAEo2H,OAAO,WAAMmqB,GAAEvgJ,GAAS,GAAG,OAAOoD,EAAmE,OAAXs6I,GAAE,OAAE6C,GAAE,MAA5Dn9I,EAAEgzH,OAAO,MAAMhzH,EAAEo5I,aAAa,EAAEp5I,EAAE4qI,UAAU,IAA4B,CAAa,GAAG,QAAf9+I,EAAEA,EAAEynI,SAAyB,YAAJ4pB,GAAErxJ,GAASqxJ,GAAErxJ,EAAEkU,CAAC,OAAO,OAAOlU,GAAG,IAAIwuJ,KAAIA,GAAE,EAAE,CAAC,SAASgF,GAAGt/I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAEpG,GAAElc,EAAE4qJ,GAAGz+B,WAAW,IAAIy+B,GAAGz+B,WAAW,KAAKjwG,GAAE,EAC3Y,SAAYxO,EAAElU,EAAE8Q,EAAEgY,GAAG,GAAGgqI,WAAW,OAAOjB,IAAI,GAAG,KAAO,EAAFnP,IAAK,MAAM1gJ,MAAM+b,EAAE,MAAMjN,EAAEoD,EAAEo/I,aAAa,IAAI9sJ,EAAE0N,EAAEq/I,cAAc,GAAG,OAAOziJ,EAAE,OAAO,KAA2C,GAAtCoD,EAAEo/I,aAAa,KAAKp/I,EAAEq/I,cAAc,EAAKziJ,IAAIoD,EAAE6T,QAAQ,MAAM/lB,MAAM+b,EAAE,MAAM7J,EAAEm+I,aAAa,KAAKn+I,EAAEu+I,iBAAiB,EAAE,IAAI33H,EAAEhqB,EAAEwwI,MAAMxwI,EAAEqwI,WAA8J,GAzNtT,SAAYjtI,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAEq1H,cAAcvpI,EAAEkU,EAAEq1H,aAAavpI,EAAEkU,EAAEs1H,eAAe,EAAEt1H,EAAEu1H,YAAY,EAAEv1H,EAAEq+I,cAAcvyJ,EAAEkU,EAAE6/I,kBAAkB/zJ,EAAEkU,EAAEw1H,gBAAgB1pI,EAAEA,EAAEkU,EAAEy1H,cAAc,IAAI7gH,EAAE5U,EAAE81H,WAAW,IAAI91H,EAAEA,EAAEo+I,gBAAgB,EAAExhJ,GAAG,CAAC,IAAItK,EAAE,GAAGyiI,GAAGn4H,GAAGgqB,EAAE,GAAGt0B,EAAExG,EAAEwG,GAAG,EAAEsiB,EAAEtiB,IAAI,EAAE0N,EAAE1N,IAAI,EAAEsK,IAAIgqB,CAAC,CAAC,CAyN5Gk5H,CAAG9/I,EAAE4mB,GAAG5mB,IAAI8tG,KAAIqvC,GAAErvC,GAAE,KAAKsvC,GAAE,GAAG,KAAoB,KAAfxgJ,EAAEw8I,eAAoB,KAAa,KAARx8I,EAAEo2H,QAAa0qB,KAAKA,IAAG,EAAGgB,GAAGlqB,IAAG,WAAgB,OAALoqB,KAAY,IAAI,KAAIh4H,EAAE,KAAa,MAARhqB,EAAEo2H,OAAgB,KAAoB,MAAfp2H,EAAEw8I,eAAqBxyH,EAAE,CAACA,EAAEs2H,GAAGz+B,WAAWy+B,GAAGz+B,WAAW,KAChf,IAAI/vG,EAAEF,GAAEA,GAAE,EAAE,IAAIlC,EAAEkiI,GAAEA,IAAG,EAAEyO,GAAGppI,QAAQ,KA1CpC,SAAY7T,EAAElU,GAAgB,GAAbg7I,GAAGxO,GAAa4J,GAAVliI,EAAE+hI,MAAc,CAAC,GAAG,mBAAmB/hI,EAAE,IAAIpD,EAAE,CAAC9G,MAAMkK,EAAEwiI,eAAe5nI,IAAIoF,EAAEyiI,mBAAmBziI,EAAE,CAA8C,IAAI4U,GAAjDhY,GAAGA,EAAEoD,EAAEwsH,gBAAgB5vH,EAAE8lI,aAAajmI,QAAekmI,cAAc/lI,EAAE+lI,eAAe,GAAG/tH,GAAG,IAAIA,EAAEiuH,WAAW,CAACjmI,EAAEgY,EAAEkuH,WAAW,IAAIxwI,EAAEsiB,EAAEmuH,aAAan8G,EAAEhS,EAAEouH,UAAUpuH,EAAEA,EAAEquH,YAAY,IAAIrmI,EAAE8wH,SAAS9mG,EAAE8mG,QAAQ,CAAC,MAAMkY,GAAGhpI,EAAE,KAAK,MAAMoD,CAAC,CAAC,IAAI0O,EAAE,EAAEpC,GAAG,EAAErM,GAAG,EAAE4I,EAAE,EAAE0B,EAAE,EAAEuB,EAAE9L,EAAEjD,EAAE,KAAKjR,EAAE,OAAO,CAAC,IAAI,IAAI2c,EAAKqD,IAAIlP,GAAG,IAAItK,GAAG,IAAIwZ,EAAE4hH,WAAWphH,EAAEoC,EAAEpc,GAAGwZ,IAAI8a,GAAG,IAAIhS,GAAG,IAAI9I,EAAE4hH,WAAWztH,EAAEyO,EAAEkG,GAAG,IAAI9I,EAAE4hH,WAAWh/G,GACnf5C,EAAE6hH,UAAUrhI,QAAW,QAAQmc,EAAEqD,EAAEo6G,aAAkBnpH,EAAE+O,EAAEA,EAAErD,EAAE,OAAO,CAAC,GAAGqD,IAAI9L,EAAE,MAAMlU,EAA8C,GAA5CiR,IAAIH,KAAKiM,IAAIvW,IAAIga,EAAEoC,GAAG3R,IAAI6pB,KAAKrc,IAAIqK,IAAI3U,EAAEyO,GAAM,QAAQjG,EAAEqD,EAAE81H,aAAa,MAAU7kI,GAAJ+O,EAAE/O,GAAMy3D,UAAU,CAAC1oD,EAAErD,CAAC,CAAC7L,GAAG,IAAI0P,IAAI,IAAIrM,EAAE,KAAK,CAACnK,MAAMwW,EAAE1R,IAAIqF,EAAE,MAAMrD,EAAE,IAAI,CAACA,EAAEA,GAAG,CAAC9G,MAAM,EAAE8E,IAAI,EAAE,MAAMgC,EAAE,KAA+C,IAA1CmqI,GAAG,CAAC1E,YAAYriI,EAAEsiI,eAAe1lI,GAAG07H,IAAG,EAAOwiB,GAAEhvJ,EAAE,OAAOgvJ,IAAG,GAAO96I,GAAJlU,EAAEgvJ,IAAMxnB,MAAM,KAAoB,KAAfxnI,EAAEstJ,eAAoB,OAAOp5I,EAAEA,EAAEs3G,OAAOxrH,EAAEgvJ,GAAE96I,OAAO,KAAK,OAAO86I,IAAG,CAAChvJ,EAAEgvJ,GAAE,IAAI,IAAIxwI,EAAExe,EAAEinI,UAAU,GAAG,KAAa,KAARjnI,EAAEknI,OAAY,OAAOlnI,EAAEoI,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GACvK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAA3W,KAAK,EAAE,GAAG,OAAOoW,EAAE,CAAC,IAAIxJ,EAAEwJ,EAAE+gI,cAAc1F,EAAEr7H,EAAE4oH,cAAc/7H,EAAErL,EAAE8lI,UAAU7zH,EAAE5G,EAAEo+I,wBAAwBzpJ,EAAEs/G,cAAct/G,EAAE6tB,KAAK7Y,EAAEszI,GAAGtoJ,EAAE6tB,KAAK7Y,GAAG6kI,GAAGxuI,EAAE0lJ,oCAAoC9+I,CAAC,CAAC,MAAM,KAAK,EAAE,IAAIiW,EAAEloB,EAAE8lI,UAAUgG,cAAc,IAAI5jH,EAAE05G,SAAS15G,EAAE4hD,YAAY,GAAG,IAAI5hD,EAAE05G,UAAU15G,EAAEuuH,iBAAiBvuH,EAAEklD,YAAYllD,EAAEuuH,iBAAiB,MAAyC,QAAQ,MAAMz0I,MAAM+b,EAAE,MAAO,CAAC,MAAM+7H,GAAGoV,GAAElvJ,EAAEA,EAAEwrH,OAAOsuB,EAAE,CAAa,GAAG,QAAf5lI,EAAElU,EAAEynI,SAAoB,CAACvzH,EAAEs3G,OAAOxrH,EAAEwrH,OAAOwjC,GAAE96I,EAAE,KAAK,CAAC86I,GAAEhvJ,EAAEwrH,MAAM,CAAChtG,EAAE4wI,GAAGA,IAAG,CAAW,CAwCld6E,CAAG//I,EAAEpD,GAAGw/I,GAAGx/I,EAAEoD,GAAGoiI,GAAG2E,IAAIzO,KAAKwO,GAAGC,GAAGD,GAAG,KAAK9mI,EAAE6T,QAAQjX,EAAE6/I,GAAG7/I,EAAEoD,EAAE1N,GAAG0hI,KAAKwa,GAAEliI,EAAEkC,GAAEE,EAAEwuI,GAAGz+B,WAAW73F,CAAC,MAAM5mB,EAAE6T,QAAQjX,EAAsF,GAApF8gJ,KAAKA,IAAG,EAAGC,GAAG39I,EAAE49I,GAAGtrJ,GAAGs0B,EAAE5mB,EAAEq1H,aAAa,IAAIzuG,IAAI0vH,GAAG,MAhOmJ,SAAYt2I,GAAG,GAAGirE,IAAI,oBAAoBA,GAAG+0E,kBAAkB,IAAI/0E,GAAG+0E,kBAAkBlrB,GAAG90H,OAAE,EAAO,OAAuB,IAAhBA,EAAE6T,QAAQm/G,OAAW,CAAC,MAAMlnI,GAAG,CAAC,CAgOxRm0J,CAAGrjJ,EAAEg1H,WAAassB,GAAGl+I,EAAEuO,MAAQ,OAAOziB,EAAE,IAAI8oB,EAAE5U,EAAEkgJ,mBAAmBtjJ,EAAE,EAAEA,EAAE9Q,EAAEQ,OAAOsQ,IAAItK,EAAExG,EAAE8Q,GAAGgY,EAAEtiB,EAAEyC,MAAM,CAACwhJ,eAAejkJ,EAAEwyB,MAAM6wH,OAAOrjJ,EAAEqjJ,SAAS,GAAGM,GAAG,MAAMA,IAAG,EAAGj2I,EAAEk2I,GAAGA,GAAG,KAAKl2I,EAAE,KAAQ,EAAH49I,KAAO,IAAI59I,EAAE9L,KAAK0qJ,KAAKh4H,EAAE5mB,EAAEq1H,aAAa,KAAO,EAAFzuG,GAAK5mB,IAAI89I,GAAGD,MAAMA,GAAG,EAAEC,GAAG99I,GAAG69I,GAAG,EAAEnU,IAAgB,CAFxFyW,CAAGngJ,EAAElU,EAAE8Q,EAAEgY,EAAE,CAAC,QAAQsoI,GAAGz+B,WAAWnsH,EAAEkc,GAAEoG,CAAC,CAAC,OAAO,IAAI,CAGhc,SAASgqI,KAAK,GAAG,OAAOjB,GAAG,CAAC,IAAI39I,EAAEg2H,GAAG4nB,IAAI9xJ,EAAEoxJ,GAAGz+B,WAAW7hH,EAAE4R,GAAE,IAAmC,GAA/B0uI,GAAGz+B,WAAW,KAAKjwG,GAAE,GAAGxO,EAAE,GAAGA,EAAK,OAAO29I,GAAG,IAAI/oI,GAAE,MAAO,CAAmB,GAAlB5U,EAAE29I,GAAGA,GAAG,KAAKC,GAAG,EAAK,KAAO,EAAFpP,IAAK,MAAM1gJ,MAAM+b,EAAE,MAAM,IAAIvX,EAAEk8I,GAAO,IAALA,IAAG,EAAMsM,GAAE96I,EAAE6T,QAAQ,OAAOinI,IAAG,CAAC,IAAIl0H,EAAEk0H,GAAEpsI,EAAEkY,EAAE0sG,MAAM,GAAG,KAAa,GAARwnB,GAAE9nB,OAAU,CAAC,IAAI1mH,EAAEsa,EAAEgkH,UAAU,GAAG,OAAOt+H,EAAE,CAAC,IAAI,IAAIrM,EAAE,EAAEA,EAAEqM,EAAEhgB,OAAO2T,IAAI,CAAC,IAAI4I,EAAEyD,EAAErM,GAAG,IAAI66I,GAAEjyI,EAAE,OAAOiyI,IAAG,CAAC,IAAIvwI,EAAEuwI,GAAE,OAAOvwI,EAAErW,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGinJ,GAAG,EAAE5wI,EAAEqc,GAAG,IAAI9a,EAAEvB,EAAE+oH,MAAM,GAAG,OAAOxnH,EAAEA,EAAEwrG,OAAO/sG,EAAEuwI,GAAEhvI,OAAO,KAAK,OAAOgvI,IAAG,CAAK,IAAI/9I,GAARwN,EAAEuwI,IAAUvnB,QAAQ9qH,EAAE8B,EAAE+sG,OAAa,GAANgkC,GAAG/wI,GAAMA,IACnf1B,EAAE,CAACiyI,GAAE,KAAK,KAAK,CAAC,GAAG,OAAO/9I,EAAE,CAACA,EAAEu6G,OAAO7uG,EAAEqyI,GAAE/9I,EAAE,KAAK,CAAC+9I,GAAEryI,CAAC,CAAC,CAAC,CAAC,IAAI6B,EAAEsc,EAAEmsG,UAAU,GAAG,OAAOzoH,EAAE,CAAC,IAAIxJ,EAAEwJ,EAAEgpH,MAAM,GAAG,OAAOxyH,EAAE,CAACwJ,EAAEgpH,MAAM,KAAK,EAAE,CAAC,IAAIqS,EAAE7kI,EAAEyyH,QAAQzyH,EAAEyyH,QAAQ,KAAKzyH,EAAE6kI,CAAC,OAAO,OAAO7kI,EAAE,CAAC,CAACg6I,GAAEl0H,CAAC,CAAC,CAAC,GAAG,KAAoB,KAAfA,EAAEwyH,eAAoB,OAAO1qI,EAAEA,EAAE4oG,OAAO1wF,EAAEk0H,GAAEpsI,OAAO5iB,EAAE,KAAK,OAAOgvJ,IAAG,CAAK,GAAG,KAAa,MAApBl0H,EAAEk0H,IAAY9nB,OAAY,OAAOpsG,EAAE1yB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGinJ,GAAG,EAAEv0H,EAAEA,EAAE0wF,QAAQ,IAAIngH,EAAEyvB,EAAE2sG,QAAQ,GAAG,OAAOp8H,EAAE,CAACA,EAAEmgH,OAAO1wF,EAAE0wF,OAAOwjC,GAAE3jJ,EAAE,MAAMrL,CAAC,CAACgvJ,GAAEl0H,EAAE0wF,MAAM,CAAC,CAAC,IAAIv5G,EAAEiC,EAAE6T,QAAQ,IAAIinI,GAAE/8I,EAAE,OAAO+8I,IAAG,CAAK,IAAI9mI,GAARtF,EAAEosI,IAAUxnB,MAAM,GAAG,KAAoB,KAAf5kH,EAAE0qI,eAAoB,OAClfplI,EAAEA,EAAEsjG,OAAO5oG,EAAEosI,GAAE9mI,OAAOloB,EAAE,IAAI4iB,EAAE3Q,EAAE,OAAO+8I,IAAG,CAAK,GAAG,KAAa,MAApBxuI,EAAEwuI,IAAY9nB,OAAY,IAAI,OAAO1mH,EAAEpY,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGknJ,GAAG,EAAE9uI,GAAG,CAAC,MAAM45H,GAAI8U,GAAE1uI,EAAEA,EAAEgrG,OAAO4uB,EAAG,CAAC,GAAG55H,IAAIoC,EAAE,CAACosI,GAAE,KAAK,MAAMhvJ,CAAC,CAAC,IAAI85I,EAAEt5H,EAAEinH,QAAQ,GAAG,OAAOqS,EAAE,CAACA,EAAEtuB,OAAOhrG,EAAEgrG,OAAOwjC,GAAElV,EAAE,MAAM95I,CAAC,CAACgvJ,GAAExuI,EAAEgrG,MAAM,CAAC,CAAU,GAATk3B,GAAEl8I,EAAEo3I,KAAQz+D,IAAI,oBAAoBA,GAAGm1E,sBAAsB,IAAIn1E,GAAGm1E,sBAAsBtrB,GAAG90H,EAAE,CAAC,MAAMkmI,GAAI,CAACtxH,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQpG,GAAE5R,EAAEsgJ,GAAGz+B,WAAW3yH,CAAC,CAAC,CAAC,OAAM,CAAE,CAAC,SAASu0J,GAAGrgJ,EAAElU,EAAE8Q,GAAyBoD,EAAEuuI,GAAGvuI,EAAjBlU,EAAEkqJ,GAAGh2I,EAAflU,EAAE4pJ,GAAG94I,EAAE9Q,GAAY,GAAY,GAAGA,EAAE2mH,KAAI,OAAOzyG,IAAI61H,GAAG71H,EAAE,EAAElU,GAAGoyJ,GAAGl+I,EAAElU,GAAG,CACze,SAASkvJ,GAAEh7I,EAAElU,EAAE8Q,GAAG,GAAG,IAAIoD,EAAE9L,IAAImsJ,GAAGrgJ,EAAEA,EAAEpD,QAAQ,KAAK,OAAO9Q,GAAG,CAAC,GAAG,IAAIA,EAAEoI,IAAI,CAACmsJ,GAAGv0J,EAAEkU,EAAEpD,GAAG,KAAK,CAAM,GAAG,IAAI9Q,EAAEoI,IAAI,CAAC,IAAI0gB,EAAE9oB,EAAE8lI,UAAU,GAAG,oBAAoB9lI,EAAE6tB,KAAKy8H,0BAA0B,oBAAoBxhI,EAAEyhI,oBAAoB,OAAOC,KAAKA,GAAGlR,IAAIxwH,IAAI,CAAuB9oB,EAAEyiJ,GAAGziJ,EAAjBkU,EAAEm2I,GAAGrqJ,EAAfkU,EAAE01I,GAAG94I,EAAEoD,GAAY,GAAY,GAAGA,EAAEyyG,KAAI,OAAO3mH,IAAI+pI,GAAG/pI,EAAE,EAAEkU,GAAGk+I,GAAGpyJ,EAAEkU,IAAI,KAAK,CAAC,CAAClU,EAAEA,EAAEwrH,MAAM,CAAC,CACnV,SAASo/B,GAAG12I,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE5U,EAAEy2I,UAAU,OAAO7hI,GAAGA,EAAEoiH,OAAOlrI,GAAGA,EAAE2mH,KAAIzyG,EAAEu1H,aAAav1H,EAAEs1H,eAAe14H,EAAEkxG,KAAI9tG,IAAIo9I,GAAExgJ,KAAKA,IAAI,IAAI09I,IAAG,IAAIA,KAAM,UAAF8C,MAAeA,IAAG,IAAI7uI,KAAIguI,GAAGwC,GAAG/+I,EAAE,GAAGu9I,IAAI3gJ,GAAGshJ,GAAGl+I,EAAElU,EAAE,CAAC,SAASw0J,GAAGtgJ,EAAElU,GAAG,IAAIA,IAAI,KAAY,EAAPkU,EAAEsN,MAAQxhB,EAAE,GAAGA,EAAEysE,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAI37D,EAAE61G,KAAc,QAAVzyG,EAAE2tI,GAAG3tI,EAAElU,MAAc+pI,GAAG71H,EAAElU,EAAE8Q,GAAGshJ,GAAGl+I,EAAEpD,GAAG,CAAC,SAASq8I,GAAGj5I,GAAG,IAAIlU,EAAEkU,EAAEkzH,cAAct2H,EAAE,EAAE,OAAO9Q,IAAI8Q,EAAE9Q,EAAEk/I,WAAWsV,GAAGtgJ,EAAEpD,EAAE,CACjZ,SAASs/I,GAAGl8I,EAAElU,GAAG,IAAI8Q,EAAE,EAAE,OAAOoD,EAAE9L,KAAK,KAAK,GAAG,IAAI0gB,EAAE5U,EAAE4xH,UAAct/H,EAAE0N,EAAEkzH,cAAc,OAAO5gI,IAAIsK,EAAEtK,EAAE04I,WAAW,MAAM,KAAK,GAAGp2H,EAAE5U,EAAE4xH,UAAU,MAAM,QAAQ,MAAM9jI,MAAM+b,EAAE,MAAO,OAAO+K,GAAGA,EAAEoiH,OAAOlrI,GAAGw0J,GAAGtgJ,EAAEpD,EAAE,CAQqK,SAAS8hJ,GAAG1+I,EAAElU,GAAG,OAAO4nI,GAAG1zH,EAAElU,EAAE,CACjZ,SAASy0J,GAAGvgJ,EAAElU,EAAE8Q,EAAEgY,GAAGzY,KAAKjI,IAAI8L,EAAE7D,KAAKuY,IAAI9X,EAAET,KAAKo3H,QAAQp3H,KAAKm3H,MAAMn3H,KAAKm7G,OAAOn7G,KAAKy1H,UAAUz1H,KAAKwd,KAAKxd,KAAKivG,YAAY,KAAKjvG,KAAKQ,MAAM,EAAER,KAAKgxB,IAAI,KAAKhxB,KAAK2uI,aAAah/I,EAAEqQ,KAAK+wI,aAAa/wI,KAAK+2H,cAAc/2H,KAAK2xI,YAAY3xI,KAAKkvI,cAAc,KAAKlvI,KAAKmR,KAAKsH,EAAEzY,KAAKi9I,aAAaj9I,KAAK62H,MAAM,EAAE72H,KAAKyuI,UAAU,KAAKzuI,KAAK8wI,WAAW9wI,KAAKixI,MAAM,EAAEjxI,KAAK42H,UAAU,IAAI,CAAC,SAAS4X,GAAG3qI,EAAElU,EAAE8Q,EAAEgY,GAAG,OAAO,IAAI2rI,GAAGvgJ,EAAElU,EAAE8Q,EAAEgY,EAAE,CAAC,SAASuiI,GAAGn3I,GAAiB,UAAdA,EAAEA,EAAE3S,aAAuB2S,EAAEwgJ,iBAAiB,CAEpd,SAASvU,GAAGjsI,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAE+yH,UACuB,OADb,OAAOn2H,IAAGA,EAAE+tI,GAAG3qI,EAAE9L,IAAIpI,EAAEkU,EAAE0U,IAAI1U,EAAEsN,OAAQ89F,YAAYprG,EAAEorG,YAAYxuG,EAAE+c,KAAK3Z,EAAE2Z,KAAK/c,EAAEg1H,UAAU5xH,EAAE4xH,UAAUh1H,EAAEm2H,UAAU/yH,EAAEA,EAAE+yH,UAAUn2H,IAAIA,EAAEkuI,aAAah/I,EAAE8Q,EAAE+c,KAAK3Z,EAAE2Z,KAAK/c,EAAEo2H,MAAM,EAAEp2H,EAAEw8I,aAAa,EAAEx8I,EAAEguI,UAAU,MAAMhuI,EAAEo2H,MAAc,SAARhzH,EAAEgzH,MAAep2H,EAAEqwI,WAAWjtI,EAAEitI,WAAWrwI,EAAEwwI,MAAMptI,EAAEotI,MAAMxwI,EAAE02H,MAAMtzH,EAAEszH,MAAM12H,EAAEyuI,cAAcrrI,EAAEqrI,cAAczuI,EAAEs2H,cAAclzH,EAAEkzH,cAAct2H,EAAEkxI,YAAY9tI,EAAE8tI,YAAYhiJ,EAAEkU,EAAEktI,aAAatwI,EAAEswI,aAAa,OAAOphJ,EAAE,KAAK,CAACshJ,MAAMthJ,EAAEshJ,MAAMD,aAAarhJ,EAAEqhJ,cAC/evwI,EAAE22H,QAAQvzH,EAAEuzH,QAAQ32H,EAAED,MAAMqD,EAAErD,MAAMC,EAAEuwB,IAAIntB,EAAEmtB,IAAWvwB,CAAC,CACxD,SAASuvI,GAAGnsI,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,GAAG,IAAIlY,EAAE,EAAM,GAAJkG,EAAE5U,EAAK,oBAAoBA,EAAEm3I,GAAGn3I,KAAK0O,EAAE,QAAQ,GAAG,kBAAkB1O,EAAE0O,EAAE,OAAO1O,EAAE,OAAOA,GAAG,KAAKwpH,EAAG,OAAO8iB,GAAG1vI,EAAE+tF,SAASr4F,EAAEs0B,EAAE96B,GAAG,KAAK29H,EAAG/6G,EAAE,EAAEpc,GAAG,EAAE,MAAM,KAAKo3H,EAAG,OAAO1pH,EAAE2qI,GAAG,GAAG/tI,EAAE9Q,EAAI,EAAFwG,IAAO84G,YAAYse,EAAG1pH,EAAEotI,MAAMxmH,EAAE5mB,EAAE,KAAK8pH,EAAG,OAAO9pH,EAAE2qI,GAAG,GAAG/tI,EAAE9Q,EAAEwG,IAAK84G,YAAY0e,EAAG9pH,EAAEotI,MAAMxmH,EAAE5mB,EAAE,KAAK+pH,EAAG,OAAO/pH,EAAE2qI,GAAG,GAAG/tI,EAAE9Q,EAAEwG,IAAK84G,YAAY2e,EAAG/pH,EAAEotI,MAAMxmH,EAAE5mB,EAAE,KAAKkqH,EAAG,OAAO0uB,GAAGh8I,EAAEtK,EAAEs0B,EAAE96B,GAAG,QAAQ,GAAG,kBAAkBkU,GAAG,OAAOA,EAAE,OAAOA,EAAE8qH,UAAU,KAAKnB,EAAGj7G,EAAE,GAAG,MAAM1O,EAAE,KAAK4pH,EAAGl7G,EAAE,EAAE,MAAM1O,EAAE,KAAK6pH,EAAGn7G,EAAE,GACpf,MAAM1O,EAAE,KAAKgqH,EAAGt7G,EAAE,GAAG,MAAM1O,EAAE,KAAKiqH,EAAGv7G,EAAE,GAAGkG,EAAE,KAAK,MAAM5U,EAAE,MAAMlS,MAAM+b,EAAE,IAAI,MAAM7J,EAAEA,SAASA,EAAE,KAAuD,OAAjDlU,EAAE6+I,GAAGj8H,EAAE9R,EAAE9Q,EAAEwG,IAAK84G,YAAYprG,EAAElU,EAAE6tB,KAAK/E,EAAE9oB,EAAEshJ,MAAMxmH,EAAS96B,CAAC,CAAC,SAASwgJ,GAAGtsI,EAAElU,EAAE8Q,EAAEgY,GAA2B,OAAxB5U,EAAE2qI,GAAG,EAAE3qI,EAAE4U,EAAE9oB,IAAKshJ,MAAMxwI,EAASoD,CAAC,CAAC,SAAS44I,GAAG54I,EAAElU,EAAE8Q,EAAEgY,GAAuE,OAApE5U,EAAE2qI,GAAG,GAAG3qI,EAAE4U,EAAE9oB,IAAKs/G,YAAY8e,EAAGlqH,EAAEotI,MAAMxwI,EAAEoD,EAAE4xH,UAAU,CAAC0qB,UAAS,GAAWt8I,CAAC,CAAC,SAASksI,GAAGlsI,EAAElU,EAAE8Q,GAA8B,OAA3BoD,EAAE2qI,GAAG,EAAE3qI,EAAE,KAAKlU,IAAKshJ,MAAMxwI,EAASoD,CAAC,CAC5W,SAASqsI,GAAGrsI,EAAElU,EAAE8Q,GAA8J,OAA3J9Q,EAAE6+I,GAAG,EAAE,OAAO3qI,EAAE2qF,SAAS3qF,EAAE2qF,SAAS,GAAG3qF,EAAE0U,IAAI5oB,IAAKshJ,MAAMxwI,EAAE9Q,EAAE8lI,UAAU,CAACgG,cAAc53H,EAAE43H,cAAc6oB,gBAAgB,KAAKrU,eAAepsI,EAAEosI,gBAAuBtgJ,CAAC,CACtL,SAAS40J,GAAG1gJ,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG6J,KAAKjI,IAAIpI,EAAEqQ,KAAKy7H,cAAc53H,EAAE7D,KAAKijJ,aAAajjJ,KAAKs6I,UAAUt6I,KAAK0X,QAAQ1X,KAAKskJ,gBAAgB,KAAKtkJ,KAAKojJ,eAAe,EAAEpjJ,KAAKgiJ,aAAahiJ,KAAKg8I,eAAeh8I,KAAK0kF,QAAQ,KAAK1kF,KAAKoiJ,iBAAiB,EAAEpiJ,KAAK25H,WAAWF,GAAG,GAAGz5H,KAAKiiJ,gBAAgBxoB,IAAI,GAAGz5H,KAAKq5H,eAAer5H,KAAKkjJ,cAAcljJ,KAAK0jJ,iBAAiB1jJ,KAAKkiJ,aAAaliJ,KAAKo5H,YAAYp5H,KAAKm5H,eAAen5H,KAAKk5H,aAAa,EAAEl5H,KAAKs5H,cAAcG,GAAG,GAAGz5H,KAAKg4I,iBAAiBv/H,EAAEzY,KAAK+jJ,mBAAmB5tJ,EAAE6J,KAAKwkJ,gCAC/e,IAAI,CAAC,SAASC,GAAG5gJ,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,EAAEpC,EAAErM,GAAgN,OAA7MD,EAAE,IAAI0gJ,GAAG1gJ,EAAElU,EAAE8Q,EAAE0P,EAAErM,GAAG,IAAInU,GAAGA,EAAE,GAAE,IAAK86B,IAAI96B,GAAG,IAAIA,EAAE,EAAE86B,EAAE+jH,GAAG,EAAE,KAAK,KAAK7+I,GAAGkU,EAAE6T,QAAQ+S,EAAEA,EAAEgrG,UAAU5xH,EAAE4mB,EAAEssG,cAAc,CAAC59F,QAAQ1gB,EAAE+iH,aAAa/6H,EAAE+6D,MAAM,KAAK8/E,YAAY,KAAKoJ,0BAA0B,MAAMhT,GAAGjnH,GAAU5mB,CAAC,CACzP,SAAS8gJ,GAAG9gJ,GAAG,IAAIA,EAAE,OAAOuoI,GAAuBvoI,EAAE,CAAC,GAAG8yH,GAA1B9yH,EAAEA,EAAEw0I,mBAA8Bx0I,GAAG,IAAIA,EAAE9L,IAAI,MAAMpG,MAAM+b,EAAE,MAAM,IAAI/d,EAAEkU,EAAE,EAAE,CAAC,OAAOlU,EAAEoI,KAAK,KAAK,EAAEpI,EAAEA,EAAE8lI,UAAU/wC,QAAQ,MAAM7gF,EAAE,KAAK,EAAE,GAAG8oI,GAAGh9I,EAAE6tB,MAAM,CAAC7tB,EAAEA,EAAE8lI,UAAUyX,0CAA0C,MAAMrpI,CAAC,EAAElU,EAAEA,EAAEwrH,MAAM,OAAO,OAAOxrH,GAAG,MAAMgC,MAAM+b,EAAE,KAAM,CAAC,GAAG,IAAI7J,EAAE9L,IAAI,CAAC,IAAI0I,EAAEoD,EAAE2Z,KAAK,GAAGmvH,GAAGlsI,GAAG,OAAOssI,GAAGlpI,EAAEpD,EAAE9Q,EAAE,CAAC,OAAOA,CAAC,CACpW,SAASi1J,GAAG/gJ,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,EAAEs0B,EAAElY,EAAEpC,EAAErM,GAAwK,OAArKD,EAAE4gJ,GAAGhkJ,EAAEgY,GAAE,EAAG5U,EAAE1N,EAAEs0B,EAAElY,EAAEpC,EAAErM,IAAK4gF,QAAQigE,GAAG,MAAMlkJ,EAAEoD,EAAE6T,SAAsB+S,EAAEwnH,GAAhBx5H,EAAE69F,KAAIngH,EAAE0gJ,GAAGp2I,KAAeirB,cAAS,IAAS/7B,GAAG,OAAOA,EAAEA,EAAE,KAAKyiJ,GAAG3xI,EAAEgqB,EAAEt0B,GAAG0N,EAAE6T,QAAQu5H,MAAM96I,EAAEujI,GAAG71H,EAAE1N,EAAEsiB,GAAGspI,GAAGl+I,EAAE4U,GAAU5U,CAAC,CAAC,SAASghJ,GAAGhhJ,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAItiB,EAAExG,EAAE+nB,QAAQ+S,EAAE6rF,KAAI/jG,EAAEskI,GAAG1gJ,GAAsL,OAAnLsK,EAAEkkJ,GAAGlkJ,GAAG,OAAO9Q,EAAE+0F,QAAQ/0F,EAAE+0F,QAAQjkF,EAAE9Q,EAAEqsJ,eAAev7I,GAAE9Q,EAAEsiJ,GAAGxnH,EAAElY,IAAKovB,QAAQ,CAACxI,QAAQt1B,GAAuB,QAApB4U,OAAE,IAASA,EAAE,KAAKA,KAAa9oB,EAAE+7B,SAASjT,GAAe,QAAZ5U,EAAEuuI,GAAGj8I,EAAExG,EAAE4iB,MAAcwjI,GAAGlyI,EAAE1N,EAAEoc,EAAEkY,GAAG6nH,GAAGzuI,EAAE1N,EAAEoc,IAAWA,CAAC,CAC3b,SAASuyI,GAAGjhJ,GAAe,OAAZA,EAAEA,EAAE6T,SAAcy/G,OAAyBtzH,EAAEszH,MAAMp/H,IAAoD8L,EAAEszH,MAAM1B,WAAhF,IAA0F,CAAC,SAASsvB,GAAGlhJ,EAAElU,GAAqB,GAAG,QAArBkU,EAAEA,EAAEkzH,gBAA2B,OAAOlzH,EAAEmzH,WAAW,CAAC,IAAIv2H,EAAEoD,EAAEgrI,UAAUhrI,EAAEgrI,UAAU,IAAIpuI,GAAGA,EAAE9Q,EAAE8Q,EAAE9Q,CAAC,CAAC,CAAC,SAASq1J,GAAGnhJ,EAAElU,GAAGo1J,GAAGlhJ,EAAElU,IAAIkU,EAAEA,EAAE+yH,YAAYmuB,GAAGlhJ,EAAElU,EAAE,CAnB7SgxJ,GAAG,SAAS98I,EAAElU,EAAE8Q,GAAG,GAAG,OAAOoD,EAAE,GAAGA,EAAEqrI,gBAAgBv/I,EAAEg/I,cAActC,GAAG30H,QAAQw5H,IAAG,MAAO,CAAC,GAAG,KAAKrtI,EAAEotI,MAAMxwI,IAAI,KAAa,IAAR9Q,EAAEknI,OAAW,OAAOqa,IAAG,EAzE1I,SAAYrtI,EAAElU,EAAE8Q,GAAG,OAAO9Q,EAAEoI,KAAK,KAAK,EAAEgkJ,GAAGpsJ,GAAGy/I,KAAK,MAAM,KAAK,EAAE6D,GAAGtjJ,GAAG,MAAM,KAAK,EAAEg9I,GAAGh9I,EAAE6tB,OAAOyvH,GAAGt9I,GAAG,MAAM,KAAK,EAAEmjJ,GAAGnjJ,EAAEA,EAAE8lI,UAAUgG,eAAe,MAAM,KAAK,GAAG,IAAIhjH,EAAE9oB,EAAE6tB,KAAKoxG,SAASz4H,EAAExG,EAAEu/I,cAAct2I,MAAMuzI,GAAEmE,GAAG73H,EAAEm4H,eAAen4H,EAAEm4H,cAAcz6I,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArBsiB,EAAE9oB,EAAEonI,eAA2B,OAAG,OAAOt+G,EAAEu+G,YAAkBmV,GAAEz6B,GAAY,EAAVA,GAAEh6F,SAAW/nB,EAAEknI,OAAO,IAAI,MAAQ,KAAKp2H,EAAE9Q,EAAEwnI,MAAM2Z,YAAmByL,GAAG14I,EAAElU,EAAE8Q,IAAG0rI,GAAEz6B,GAAY,EAAVA,GAAEh6F,SAA8B,QAAnB7T,EAAEi3I,GAAGj3I,EAAElU,EAAE8Q,IAAmBoD,EAAEuzH,QAAQ,MAAK+U,GAAEz6B,GAAY,EAAVA,GAAEh6F,SAAW,MAAM,KAAK,GAC7d,GADgee,EAAE,KAAKhY,EACrf9Q,EAAEmhJ,YAAe,KAAa,IAARjtI,EAAEgzH,OAAW,CAAC,GAAGp+G,EAAE,OAAOglI,GAAG55I,EAAElU,EAAE8Q,GAAG9Q,EAAEknI,OAAO,GAAG,CAA6F,GAA1E,QAAlB1gI,EAAExG,EAAEonI,iBAAyB5gI,EAAEknJ,UAAU,KAAKlnJ,EAAEonJ,KAAK,KAAKpnJ,EAAEw/I,WAAW,MAAMxJ,GAAEz6B,GAAEA,GAAEh6F,SAAYe,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO9oB,EAAEshJ,MAAM,EAAEkK,GAAGt3I,EAAElU,EAAE8Q,GAAG,OAAOq6I,GAAGj3I,EAAElU,EAAE8Q,EAAE,CAwE7GwkJ,CAAGphJ,EAAElU,EAAE8Q,GAAGywI,GAAG,KAAa,OAARrtI,EAAEgzH,MAAmB,MAAMqa,IAAG,EAAG96B,IAAG,KAAa,QAARzmH,EAAEknI,QAAgBoX,GAAGt+I,EAAEg+I,GAAGh+I,EAAE6Q,OAAiB,OAAV7Q,EAAEshJ,MAAM,EAASthJ,EAAEoI,KAAK,KAAK,EAAE,IAAI0gB,EAAE9oB,EAAE6tB,KAAKm+H,GAAG93I,EAAElU,GAAGkU,EAAElU,EAAEg/I,aAAa,IAAIx4I,EAAEo2I,GAAG58I,EAAEiiH,GAAEl6F,SAAS6jD,GAAG5rE,EAAE8Q,GAAGtK,EAAE89I,GAAG,KAAKtkJ,EAAE8oB,EAAE5U,EAAE1N,EAAEsK,GAAG,IAAIgqB,EAAE6pH,KACvI,OAD4I3kJ,EAAEknI,OAAO,EAAE,kBAAkB1gI,GAAG,OAAOA,GAAG,oBAAoBA,EAAE09E,aAAQ,IAAS19E,EAAEw4H,UAAUh/H,EAAEoI,IAAI,EAAEpI,EAAEonI,cAAc,KAAKpnI,EAAEgiJ,YAC1e,KAAKhF,GAAGl0H,IAAIgS,GAAE,EAAGwiH,GAAGt9I,IAAI86B,GAAE,EAAG96B,EAAEonI,cAAc,OAAO5gI,EAAEy9F,YAAO,IAASz9F,EAAEy9F,MAAMz9F,EAAEy9F,MAAM,KAAK89C,GAAG/hJ,GAAGwG,EAAE2iJ,QAAQX,GAAGxoJ,EAAE8lI,UAAUt/H,EAAEA,EAAEkiJ,gBAAgB1oJ,EAAEupJ,GAAGvpJ,EAAE8oB,EAAE5U,EAAEpD,GAAG9Q,EAAEmsJ,GAAG,KAAKnsJ,EAAE8oB,GAAE,EAAGgS,EAAEhqB,KAAK9Q,EAAEoI,IAAI,EAAEq+G,IAAG3rF,GAAGyjH,GAAGv+I,GAAGirJ,GAAG,KAAKjrJ,EAAEwG,EAAEsK,GAAG9Q,EAAEA,EAAEwnI,OAAcxnI,EAAE,KAAK,GAAG8oB,EAAE9oB,EAAEs/G,YAAYprG,EAAE,CAAqF,OAApF83I,GAAG93I,EAAElU,GAAGkU,EAAElU,EAAEg/I,aAAuBl2H,GAAVtiB,EAAEsiB,EAAErY,OAAUqY,EAAEo2G,UAAUl/H,EAAE6tB,KAAK/E,EAAEtiB,EAAExG,EAAEoI,IAQtU,SAAY8L,GAAG,GAAG,oBAAoBA,EAAE,OAAOm3I,GAAGn3I,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAE8qH,YAAgBjB,EAAG,OAAO,GAAG,GAAG7pH,IAAIgqH,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAR2Lq3B,CAAGzsI,GAAG5U,EAAEo0I,GAAGx/H,EAAE5U,GAAU1N,GAAG,KAAK,EAAExG,EAAEurJ,GAAG,KAAKvrJ,EAAE8oB,EAAE5U,EAAEpD,GAAG,MAAMoD,EAAE,KAAK,EAAElU,EAAE+rJ,GAAG,KAAK/rJ,EAAE8oB,EAAE5U,EAAEpD,GAAG,MAAMoD,EAAE,KAAK,GAAGlU,EAAEkrJ,GAAG,KAAKlrJ,EAAE8oB,EAAE5U,EAAEpD,GAAG,MAAMoD,EAAE,KAAK,GAAGlU,EAAEorJ,GAAG,KAAKprJ,EAAE8oB,EAAEw/H,GAAGx/H,EAAE+E,KAAK3Z,GAAGpD,GAAG,MAAMoD,EAAE,MAAMlS,MAAM+b,EAAE,IACvgB+K,EAAE,IAAK,CAAC,OAAO9oB,EAAE,KAAK,EAAE,OAAO8oB,EAAE9oB,EAAE6tB,KAAKrnB,EAAExG,EAAEg/I,aAA2CuM,GAAGr3I,EAAElU,EAAE8oB,EAArCtiB,EAAExG,EAAEs/G,cAAcx2F,EAAEtiB,EAAE8hJ,GAAGx/H,EAAEtiB,GAAcsK,GAAG,KAAK,EAAE,OAAOgY,EAAE9oB,EAAE6tB,KAAKrnB,EAAExG,EAAEg/I,aAA2C+M,GAAG73I,EAAElU,EAAE8oB,EAArCtiB,EAAExG,EAAEs/G,cAAcx2F,EAAEtiB,EAAE8hJ,GAAGx/H,EAAEtiB,GAAcsK,GAAG,KAAK,EAAEoD,EAAE,CAAO,GAANk4I,GAAGpsJ,GAAM,OAAOkU,EAAE,MAAMlS,MAAM+b,EAAE,MAAM+K,EAAE9oB,EAAEg/I,aAA+Bx4I,GAAlBs0B,EAAE96B,EAAEonI,eAAkB59F,QAAQ24C,GAAGjuE,EAAElU,GAAG4iJ,GAAG5iJ,EAAE8oB,EAAE,KAAKhY,GAAG,IAAI8R,EAAE5iB,EAAEonI,cAA0B,GAAZt+G,EAAElG,EAAE4mB,QAAW1O,EAAE+wG,aAAY,CAAC,GAAG/wG,EAAE,CAAC0O,QAAQ1gB,EAAE+iH,cAAa,EAAGhgE,MAAMjpD,EAAEipD,MAAMkpF,0BAA0BnyI,EAAEmyI,0BAA0BpJ,YAAY/oI,EAAE+oI,aAAa3rJ,EAAEgiJ,YAAYC,UAChfnnH,EAAE96B,EAAEonI,cAActsG,EAAU,IAAR96B,EAAEknI,MAAU,CAAuBlnI,EAAE2nE,GAAGzzD,EAAElU,EAAE8oB,EAAEhY,EAAjCtK,EAAEojJ,GAAG5nJ,MAAM+b,EAAE,MAAM/d,IAAmB,MAAMkU,CAAC,CAAM,GAAG4U,IAAItiB,EAAE,CAAuBxG,EAAE2nE,GAAGzzD,EAAElU,EAAE8oB,EAAEhY,EAAjCtK,EAAEojJ,GAAG5nJ,MAAM+b,EAAE,MAAM/d,IAAmB,MAAMkU,CAAC,CAAM,IAAIwqI,GAAG7C,GAAG77I,EAAE8lI,UAAUgG,cAAc1R,YAAYqkB,GAAGz+I,EAAEymH,IAAE,EAAGk4B,GAAG,KAAK7tI,EAAE4vI,GAAG1gJ,EAAE,KAAK8oB,EAAEhY,GAAG9Q,EAAEwnI,MAAM12H,EAAEA,GAAGA,EAAEo2H,OAAe,EAATp2H,EAAEo2H,MAAS,KAAKp2H,EAAEA,EAAE22H,OAAQ,KAAI,CAAM,GAALgY,KAAQ32H,IAAItiB,EAAE,CAACxG,EAAEmrJ,GAAGj3I,EAAElU,EAAE8Q,GAAG,MAAMoD,CAAC,CAAC+2I,GAAG/2I,EAAElU,EAAE8oB,EAAEhY,EAAE,CAAC9Q,EAAEA,EAAEwnI,KAAK,CAAC,OAAOxnI,EAAE,KAAK,EAAE,OAAOsjJ,GAAGtjJ,GAAG,OAAOkU,GAAGkrI,GAAGp/I,GAAG8oB,EAAE9oB,EAAE6tB,KAAKrnB,EAAExG,EAAEg/I,aAAalkH,EAAE,OAAO5mB,EAAEA,EAAEqrI,cAAc,KAAK38H,EAAEpc,EAAEq4F,SAASq8C,GAAGpyH,EAAEtiB,GAAGoc,EAAE,KAAK,OAAOkY,GAAGogH,GAAGpyH,EAAEgS,KAAK96B,EAAEknI,OAAO,IACnf4kB,GAAG53I,EAAElU,GAAGirJ,GAAG/2I,EAAElU,EAAE4iB,EAAE9R,GAAG9Q,EAAEwnI,MAAM,KAAK,EAAE,OAAO,OAAOtzH,GAAGkrI,GAAGp/I,GAAG,KAAK,KAAK,GAAG,OAAO4sJ,GAAG14I,EAAElU,EAAE8Q,GAAG,KAAK,EAAE,OAAOqyI,GAAGnjJ,EAAEA,EAAE8lI,UAAUgG,eAAehjH,EAAE9oB,EAAEg/I,aAAa,OAAO9qI,EAAElU,EAAEwnI,MAAMiZ,GAAGzgJ,EAAE,KAAK8oB,EAAEhY,GAAGm6I,GAAG/2I,EAAElU,EAAE8oB,EAAEhY,GAAG9Q,EAAEwnI,MAAM,KAAK,GAAG,OAAO1+G,EAAE9oB,EAAE6tB,KAAKrnB,EAAExG,EAAEg/I,aAA2CkM,GAAGh3I,EAAElU,EAAE8oB,EAArCtiB,EAAExG,EAAEs/G,cAAcx2F,EAAEtiB,EAAE8hJ,GAAGx/H,EAAEtiB,GAAcsK,GAAG,KAAK,EAAE,OAAOm6I,GAAG/2I,EAAElU,EAAEA,EAAEg/I,aAAaluI,GAAG9Q,EAAEwnI,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAOyjB,GAAG/2I,EAAElU,EAAEA,EAAEg/I,aAAangD,SAAS/tF,GAAG9Q,EAAEwnI,MAAM,KAAK,GAAGtzH,EAAE,CACxZ,GADyZ4U,EAAE9oB,EAAE6tB,KAAKoxG,SAASz4H,EAAExG,EAAEg/I,aAAalkH,EAAE96B,EAAEu/I,cAClf38H,EAAEpc,EAAEyC,MAAMuzI,GAAEmE,GAAG73H,EAAEm4H,eAAen4H,EAAEm4H,cAAcr+H,EAAK,OAAOkY,EAAE,GAAG46G,GAAG56G,EAAE7xB,MAAM2Z,IAAI,GAAGkY,EAAE+jE,WAAWr4F,EAAEq4F,WAAW69C,GAAG30H,QAAQ,CAAC/nB,EAAEmrJ,GAAGj3I,EAAElU,EAAE8Q,GAAG,MAAMoD,CAAC,OAAO,IAAc,QAAV4mB,EAAE96B,EAAEwnI,SAAiB1sG,EAAE0wF,OAAOxrH,GAAG,OAAO86B,GAAG,CAAC,IAAIta,EAAEsa,EAAEsmH,aAAa,GAAG,OAAO5gI,EAAE,CAACoC,EAAEkY,EAAE0sG,MAAM,IAAI,IAAIrzH,EAAEqM,EAAE6gI,aAAa,OAAOltI,GAAG,CAAC,GAAGA,EAAE4gF,UAAUjsE,EAAE,CAAC,GAAG,IAAIgS,EAAE1yB,IAAI,EAAC+L,EAAEmuI,IAAI,EAAExxI,GAAGA,IAAK1I,IAAI,EAAE,IAAI2U,EAAE+d,EAAEknH,YAAY,GAAG,OAAOjlI,EAAE,CAAY,IAAI0B,GAAf1B,EAAEA,EAAEqlI,QAAeC,QAAQ,OAAO5jI,EAAEtK,EAAEoT,KAAKpT,GAAGA,EAAEoT,KAAK9I,EAAE8I,KAAK9I,EAAE8I,KAAKpT,GAAG4I,EAAEslI,QAAQluI,CAAC,CAAC,CAAC2mB,EAAEwmH,OAAOxwI,EAAgB,QAAdqD,EAAE2mB,EAAEmsG,aAAqB9yH,EAAEmtI,OAAOxwI,GAAGowI,GAAGpmH,EAAE0wF,OAClf16G,EAAE9Q,GAAGwgB,EAAE8gI,OAAOxwI,EAAE,KAAK,CAACqD,EAAEA,EAAEoT,IAAI,CAAC,MAAM,GAAG,KAAKuT,EAAE1yB,IAAIwa,EAAEkY,EAAEjN,OAAO7tB,EAAE6tB,KAAK,KAAKiN,EAAE0sG,WAAW,GAAG,KAAK1sG,EAAE1yB,IAAI,CAAY,GAAG,QAAdwa,EAAEkY,EAAE0wF,QAAmB,MAAMxpH,MAAM+b,EAAE,MAAM6E,EAAE0+H,OAAOxwI,EAAgB,QAAd0P,EAAEoC,EAAEqkH,aAAqBzmH,EAAE8gI,OAAOxwI,GAAGowI,GAAGt+H,EAAE9R,EAAE9Q,GAAG4iB,EAAEkY,EAAE2sG,OAAO,MAAM7kH,EAAEkY,EAAE0sG,MAAM,GAAG,OAAO5kH,EAAEA,EAAE4oG,OAAO1wF,OAAO,IAAIlY,EAAEkY,EAAE,OAAOlY,GAAG,CAAC,GAAGA,IAAI5iB,EAAE,CAAC4iB,EAAE,KAAK,KAAK,CAAa,GAAG,QAAfkY,EAAElY,EAAE6kH,SAAoB,CAAC3sG,EAAE0wF,OAAO5oG,EAAE4oG,OAAO5oG,EAAEkY,EAAE,KAAK,CAAClY,EAAEA,EAAE4oG,MAAM,CAAC1wF,EAAElY,CAAC,CAACqoI,GAAG/2I,EAAElU,EAAEwG,EAAEq4F,SAAS/tF,GAAG9Q,EAAEA,EAAEwnI,KAAK,CAAC,OAAOxnI,EAAE,KAAK,EAAE,OAAOwG,EAAExG,EAAE6tB,KAAK/E,EAAE9oB,EAAEg/I,aAAangD,SAASjzB,GAAG5rE,EAAE8Q,GAAWgY,EAAEA,EAAVtiB,EAAEg7I,GAAGh7I,IAAUxG,EAAEknI,OAAO,EAAE+jB,GAAG/2I,EAAElU,EAAE8oB,EAAEhY,GACpf9Q,EAAEwnI,MAAM,KAAK,GAAG,OAAgBhhI,EAAE8hJ,GAAXx/H,EAAE9oB,EAAE6tB,KAAY7tB,EAAEg/I,cAA6BoM,GAAGl3I,EAAElU,EAAE8oB,EAAtBtiB,EAAE8hJ,GAAGx/H,EAAE+E,KAAKrnB,GAAcsK,GAAG,KAAK,GAAG,OAAOw6I,GAAGp3I,EAAElU,EAAEA,EAAE6tB,KAAK7tB,EAAEg/I,aAAaluI,GAAG,KAAK,GAAG,OAAOgY,EAAE9oB,EAAE6tB,KAAKrnB,EAAExG,EAAEg/I,aAAax4I,EAAExG,EAAEs/G,cAAcx2F,EAAEtiB,EAAE8hJ,GAAGx/H,EAAEtiB,GAAGwlJ,GAAG93I,EAAElU,GAAGA,EAAEoI,IAAI,EAAE40I,GAAGl0H,IAAI5U,GAAE,EAAGopI,GAAGt9I,IAAIkU,GAAE,EAAG03D,GAAG5rE,EAAE8Q,GAAGm4I,GAAGjpJ,EAAE8oB,EAAEtiB,GAAG+iJ,GAAGvpJ,EAAE8oB,EAAEtiB,EAAEsK,GAAGq7I,GAAG,KAAKnsJ,EAAE8oB,GAAE,EAAG5U,EAAEpD,GAAG,KAAK,GAAG,OAAOg9I,GAAG55I,EAAElU,EAAE8Q,GAAG,KAAK,GAAG,OAAO06I,GAAGt3I,EAAElU,EAAE8Q,GAAG,MAAM9O,MAAM+b,EAAE,IAAI/d,EAAEoI,KAAM,EAYxC,IAAIotJ,GAAG,oBAAoBC,YAAYA,YAAY,SAASvhJ,GAAGggB,QAAQlG,MAAM9Z,EAAE,EAAE,SAASwhJ,GAAGxhJ,GAAG7D,KAAKslJ,cAAczhJ,CAAC,CACjI,SAASwzD,GAAGxzD,GAAG7D,KAAKslJ,cAAczhJ,CAAC,CAC5J,SAAS0hJ,GAAG1hJ,GAAG,SAASA,GAAG,IAAIA,EAAE0tH,UAAU,IAAI1tH,EAAE0tH,UAAU,KAAK1tH,EAAE0tH,SAAS,CAAC,SAASi0B,GAAG3hJ,GAAG,SAASA,GAAG,IAAIA,EAAE0tH,UAAU,IAAI1tH,EAAE0tH,UAAU,KAAK1tH,EAAE0tH,WAAW,IAAI1tH,EAAE0tH,UAAU,iCAAiC1tH,EAAE2tH,WAAW,CAAC,SAASi0B,KAAK,CAExa,SAASC,GAAG7hJ,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,IAAIs0B,EAAEhqB,EAAE8+I,oBAAoB,GAAG90H,EAAE,CAAC,IAAIlY,EAAEkY,EAAE,GAAG,oBAAoBt0B,EAAE,CAAC,IAAIga,EAAEha,EAAEA,EAAE,WAAW,IAAI0N,EAAEihJ,GAAGvyI,GAAGpC,EAAErY,KAAK+L,EAAE,CAAC,CAACghJ,GAAGl1J,EAAE4iB,EAAE1O,EAAE1N,EAAE,MAAMoc,EADxJ,SAAY1O,EAAElU,EAAE8Q,EAAEgY,EAAEtiB,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoBsiB,EAAE,CAAC,IAAIgS,EAAEhS,EAAEA,EAAE,WAAW,IAAI5U,EAAEihJ,GAAGvyI,GAAGkY,EAAE3yB,KAAK+L,EAAE,CAAC,CAAC,IAAI0O,EAAEqyI,GAAGj1J,EAAE8oB,EAAE5U,EAAE,EAAE,MAAK,EAAG,EAAG,GAAG4hJ,IAAmF,OAA/E5hJ,EAAE07I,oBAAoBhtI,EAAE1O,EAAE8lI,IAAIp3H,EAAEmF,QAAQ2xH,GAAG,IAAIxlI,EAAE0tH,SAAS1tH,EAAEw0D,WAAWx0D,GAAGy/I,KAAY/wI,CAAC,CAAC,KAAKpc,EAAE0N,EAAEytH,WAAWztH,EAAEk5D,YAAY5mE,GAAG,GAAG,oBAAoBsiB,EAAE,CAAC,IAAItI,EAAEsI,EAAEA,EAAE,WAAW,IAAI5U,EAAEihJ,GAAGhhJ,GAAGqM,EAAErY,KAAK+L,EAAE,CAAC,CAAC,IAAIC,EAAE2gJ,GAAG5gJ,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAG4hJ,IAA0G,OAAtG5hJ,EAAE07I,oBAAoBz7I,EAAED,EAAE8lI,IAAI7lI,EAAE4T,QAAQ2xH,GAAG,IAAIxlI,EAAE0tH,SAAS1tH,EAAEw0D,WAAWx0D,GAAGy/I,IAAG,WAAWuB,GAAGl1J,EAAEmU,EAAErD,EAAEgY,EAAE,IAAU3U,CAAC,CACpU6hJ,CAAGllJ,EAAE9Q,EAAEkU,EAAE1N,EAAEsiB,GAAG,OAAOqsI,GAAGvyI,EAAE,CAHpL8kD,GAAGnmE,UAAU2iF,OAAOwxE,GAAGn0J,UAAU2iF,OAAO,SAAShwE,GAAG,IAAIlU,EAAEqQ,KAAKslJ,cAAc,GAAG,OAAO31J,EAAE,MAAMgC,MAAM+b,EAAE,MAAMm3I,GAAGhhJ,EAAElU,EAAE,KAAK,KAAK,EAAE0nE,GAAGnmE,UAAU00J,QAAQP,GAAGn0J,UAAU00J,QAAQ,WAAW,IAAI/hJ,EAAE7D,KAAKslJ,cAAc,GAAG,OAAOzhJ,EAAE,CAAC7D,KAAKslJ,cAAc,KAAK,IAAI31J,EAAEkU,EAAE43H,cAAc6nB,IAAG,WAAWuB,GAAG,KAAKhhJ,EAAE,KAAK,KAAK,IAAGlU,EAAEg6I,IAAI,IAAI,CAAC,EACzTtyE,GAAGnmE,UAAU20J,2BAA2B,SAAShiJ,GAAG,GAAGA,EAAE,CAAC,IAAIlU,EAAEsqI,KAAKp2H,EAAE,CAACo3H,UAAU,KAAK3iH,OAAOzU,EAAE03H,SAAS5rI,GAAG,IAAI,IAAI8Q,EAAE,EAAEA,EAAEi6H,GAAGvqI,QAAQ,IAAIR,GAAGA,EAAE+qI,GAAGj6H,GAAG86H,SAAS96H,KAAKi6H,GAAGngH,OAAO9Z,EAAE,EAAEoD,GAAG,IAAIpD,GAAG46H,GAAGx3H,EAAE,CAAC,EAEXi2H,GAAG,SAASj2H,GAAG,OAAOA,EAAE9L,KAAK,KAAK,EAAE,IAAIpI,EAAEkU,EAAE4xH,UAAU,GAAG9lI,EAAE+nB,QAAQq/G,cAAcyE,aAAa,CAAC,IAAI/6H,EAAEu4H,GAAGrpI,EAAEupI,cAAc,IAAIz4H,IAAIm5H,GAAGjqI,EAAI,EAAF8Q,GAAKshJ,GAAGpyJ,EAAEyiB,MAAK,KAAO,EAAFigI,MAAO+L,GAAGhsI,KAAI,IAAIm7H,MAAM,CAAC,MAAM,KAAK,GAAG+V,IAAG,WAAW,IAAI3zJ,EAAE6hJ,GAAG3tI,EAAE,GAAG,GAAG,OAAOlU,EAAE,CAAC,IAAI8Q,EAAE61G,KAAIy/B,GAAGpmJ,EAAEkU,EAAE,EAAEpD,EAAE,CAAC,IAAGukJ,GAAGnhJ,EAAE,GAAG,EAC/bk2H,GAAG,SAASl2H,GAAG,GAAG,KAAKA,EAAE9L,IAAI,CAAC,IAAIpI,EAAE6hJ,GAAG3tI,EAAE,WAAW,GAAG,OAAOlU,EAAaomJ,GAAGpmJ,EAAEkU,EAAE,UAAXyyG,MAAwB0uC,GAAGnhJ,EAAE,UAAU,CAAC,EAAEm2H,GAAG,SAASn2H,GAAG,GAAG,KAAKA,EAAE9L,IAAI,CAAC,IAAIpI,EAAEknJ,GAAGhzI,GAAGpD,EAAE+wI,GAAG3tI,EAAElU,GAAG,GAAG,OAAO8Q,EAAas1I,GAAGt1I,EAAEoD,EAAElU,EAAX2mH,MAAgB0uC,GAAGnhJ,EAAElU,EAAE,CAAC,EAAEsqI,GAAG,WAAW,OAAO5nH,EAAC,EAAE6nH,GAAG,SAASr2H,EAAElU,GAAG,IAAI8Q,EAAE4R,GAAE,IAAI,OAAOA,GAAExO,EAAElU,GAAG,CAAC,QAAQ0iB,GAAE5R,CAAC,CAAC,EAClS20H,GAAG,SAASvxH,EAAElU,EAAE8Q,GAAG,OAAO9Q,GAAG,IAAK,QAAyB,GAAjBwgI,EAAGtsH,EAAEpD,GAAG9Q,EAAE8Q,EAAElP,KAAQ,UAAUkP,EAAE+c,MAAM,MAAM7tB,EAAE,CAAC,IAAI8Q,EAAEoD,EAAEpD,EAAE43D,YAAY53D,EAAEA,EAAE43D,WAAsF,IAA3E53D,EAAEA,EAAEy7D,iBAAiB,cAAcpwC,KAAKC,UAAU,GAAGp8B,GAAG,mBAAuBA,EAAE,EAAEA,EAAE8Q,EAAEtQ,OAAOR,IAAI,CAAC,IAAI8oB,EAAEhY,EAAE9Q,GAAG,GAAG8oB,IAAI5U,GAAG4U,EAAEqtI,OAAOjiJ,EAAEiiJ,KAAK,CAAC,IAAI3vJ,EAAEu/H,GAAGj9G,GAAG,IAAItiB,EAAE,MAAMxE,MAAM+b,EAAE,KAAK6hH,EAAG92G,GAAG03G,EAAG13G,EAAEtiB,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAW06H,GAAGhtH,EAAEpD,GAAG,MAAM,IAAK,SAAmB,OAAV9Q,EAAE8Q,EAAE7H,QAAeg+E,GAAG/yE,IAAIpD,EAAEq9I,SAASnuJ,GAAE,GAAI,EAAEkmI,GAAGwtB,GAAGvtB,GAAGwtB,GACpa,IAAIyC,GAAG,CAACC,uBAAsB,EAAGC,OAAO,CAACzwB,GAAG+O,GAAG7O,GAAGC,GAAGC,GAAGytB,KAAK6C,GAAG,CAACC,wBAAwB7qB,GAAG8qB,WAAW,EAAEh7H,QAAQ,SAASi7H,oBAAoB,aAC1IC,GAAG,CAACF,WAAWF,GAAGE,WAAWh7H,QAAQ86H,GAAG96H,QAAQi7H,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBh6B,EAAGwmB,uBAAuByT,wBAAwB,SAASrjJ,GAAW,OAAO,QAAfA,EAAEqzH,GAAGrzH,IAAmB,KAAKA,EAAE4xH,SAAS,EAAE0wB,wBAAwBD,GAAGC,yBARjN,WAAc,OAAO,IAAI,EASpUgB,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,mCAAmC,GAAG,qBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAGtjC,YAAYsjC,GAAGC,cAAc,IAAIhvB,GAAG+uB,GAAGE,OAAOtB,IAAIx3E,GAAG44E,EAAE,CAAC,MAAM7jJ,IAAG,CAAC,CAACnJ,EAAQwyH,mDAAmD64B,GAC/YrrJ,EAAQmtJ,aAAa,SAAShkJ,EAAElU,GAAG,IAAI8Q,EAAE,EAAE3O,UAAU3B,aAAQ,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIyzJ,GAAG51J,GAAG,MAAMgC,MAAM+b,EAAE,MAAM,OAbuH,SAAY7J,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE,EAAE3mB,UAAU3B,aAAQ,IAAS2B,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAAC68H,SAASvB,EAAG70G,IAAI,MAAME,EAAE,KAAK,GAAGA,EAAE+1E,SAAS3qF,EAAE43H,cAAc9rI,EAAEsgJ,eAAexvI,EAAE,CAa1R6/B,CAAGz8B,EAAElU,EAAE,KAAK8Q,EAAE,EAAE/F,EAAQotJ,WAAW,SAASjkJ,EAAElU,GAAG,IAAI41J,GAAG1hJ,GAAG,MAAMlS,MAAM+b,EAAE,MAAM,IAAIjN,GAAE,EAAGgY,EAAE,GAAGtiB,EAAEgvJ,GAA4P,OAAzP,OAAOx1J,QAAG,IAASA,KAAI,IAAKA,EAAEo4J,sBAAsBtnJ,GAAE,QAAI,IAAS9Q,EAAEqoJ,mBAAmBv/H,EAAE9oB,EAAEqoJ,uBAAkB,IAASroJ,EAAEo0J,qBAAqB5tJ,EAAExG,EAAEo0J,qBAAqBp0J,EAAE80J,GAAG5gJ,EAAE,GAAE,EAAG,KAAK,EAAKpD,EAAE,EAAGgY,EAAEtiB,GAAG0N,EAAE8lI,IAAIh6I,EAAE+nB,QAAQ2xH,GAAG,IAAIxlI,EAAE0tH,SAAS1tH,EAAEw0D,WAAWx0D,GAAU,IAAIwhJ,GAAG11J,EAAE,EACrf+K,EAAQstJ,YAAY,SAASnkJ,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE0tH,SAAS,OAAO1tH,EAAE,IAAIlU,EAAEkU,EAAEw0I,gBAAgB,QAAG,IAAS1oJ,EAAE,CAAC,GAAG,oBAAoBkU,EAAEgwE,OAAO,MAAMliF,MAAM+b,EAAE,MAAiC,MAA3B7J,EAAE7S,OAAOg1C,KAAKniC,GAAGvF,KAAK,KAAW3M,MAAM+b,EAAE,IAAI7J,GAAI,CAAqC,OAA5BA,EAAE,QAAVA,EAAEqzH,GAAGvnI,IAAc,KAAKkU,EAAE4xH,SAAkB,EAAE/6H,EAAQutJ,UAAU,SAASpkJ,GAAG,OAAOy/I,GAAGz/I,EAAE,EAAEnJ,EAAQwtJ,QAAQ,SAASrkJ,EAAElU,EAAE8Q,GAAG,IAAI+kJ,GAAG71J,GAAG,MAAMgC,MAAM+b,EAAE,MAAM,OAAOg4I,GAAG,KAAK7hJ,EAAElU,GAAE,EAAG8Q,EAAE,EAC/Y/F,EAAQytJ,YAAY,SAAStkJ,EAAElU,EAAE8Q,GAAG,IAAI8kJ,GAAG1hJ,GAAG,MAAMlS,MAAM+b,EAAE,MAAM,IAAI+K,EAAE,MAAMhY,GAAGA,EAAE2nJ,iBAAiB,KAAKjyJ,GAAE,EAAGs0B,EAAE,GAAGlY,EAAE4yI,GAAyO,GAAtO,OAAO1kJ,QAAG,IAASA,KAAI,IAAKA,EAAEsnJ,sBAAsB5xJ,GAAE,QAAI,IAASsK,EAAEu3I,mBAAmBvtH,EAAEhqB,EAAEu3I,uBAAkB,IAASv3I,EAAEsjJ,qBAAqBxxI,EAAE9R,EAAEsjJ,qBAAqBp0J,EAAEi1J,GAAGj1J,EAAE,KAAKkU,EAAE,EAAE,MAAMpD,EAAEA,EAAE,KAAKtK,EAAE,EAAGs0B,EAAElY,GAAG1O,EAAE8lI,IAAIh6I,EAAE+nB,QAAQ2xH,GAAGxlI,GAAM4U,EAAE,IAAI5U,EAAE,EAAEA,EAAE4U,EAAEtoB,OAAO0T,IAA2B1N,GAAhBA,GAAPsK,EAAEgY,EAAE5U,IAAOwkJ,aAAgB5nJ,EAAE6nJ,SAAS,MAAM34J,EAAE60J,gCAAgC70J,EAAE60J,gCAAgC,CAAC/jJ,EAAEtK,GAAGxG,EAAE60J,gCAAgChvJ,KAAKiL,EACvhBtK,GAAG,OAAO,IAAIkhE,GAAG1nE,EAAE,EAAE+K,EAAQm5E,OAAO,SAAShwE,EAAElU,EAAE8Q,GAAG,IAAI+kJ,GAAG71J,GAAG,MAAMgC,MAAM+b,EAAE,MAAM,OAAOg4I,GAAG,KAAK7hJ,EAAElU,GAAE,EAAG8Q,EAAE,EAAE/F,EAAQ6tJ,uBAAuB,SAAS1kJ,GAAG,IAAI2hJ,GAAG3hJ,GAAG,MAAMlS,MAAM+b,EAAE,KAAK,QAAO7J,EAAE07I,sBAAqB+D,IAAG,WAAWoC,GAAG,KAAK,KAAK7hJ,GAAE,GAAG,WAAWA,EAAE07I,oBAAoB,KAAK17I,EAAE8lI,IAAI,IAAI,GAAE,KAAG,EAAM,EAAEjvI,EAAQ8tJ,wBAAwBnF,GAC/U3oJ,EAAQ+tJ,oCAAoC,SAAS5kJ,EAAElU,EAAE8Q,EAAEgY,GAAG,IAAI+sI,GAAG/kJ,GAAG,MAAM9O,MAAM+b,EAAE,MAAM,GAAG,MAAM7J,QAAG,IAASA,EAAEw0I,gBAAgB,MAAM1mJ,MAAM+b,EAAE,KAAK,OAAOg4I,GAAG7hJ,EAAElU,EAAE8Q,GAAE,EAAGgY,EAAE,EAAE/d,EAAQ0wB,QAAQ,+DC/T7L,IAAIhd,EAAI3e,EAAQ,MAEdiL,EAAQotJ,WAAa15I,EAAE05I,WACvBptJ,EAAQytJ,YAAc/5I,EAAE+5I,0CCH1B,SAASO,IAEP,GAC4C,qBAAnCjB,gCAC4C,oBAA5CA,+BAA+BiB,SAcxC,IAEEjB,+BAA+BiB,SAASA,EAC1C,CAAE,MAAO78H,GAGPhI,QAAQlG,MAAMkO,EAChB,CACF,CAKE68H,GACA9tJ,EAAOF,QAAU,EAAjBE,gBChCF,IAAI+tJ,EAAoC,qBAAZ9+B,QACxB++B,EAAwB,oBAARxqI,IAChByqI,EAAwB,oBAARj9B,IAChBk9B,EAAwC,oBAAhBvpI,eAAgCA,YAAYC,OAIxE,SAASupI,EAAMllJ,EAAGlU,GAEhB,GAAIkU,IAAMlU,EAAG,OAAO,EAEpB,GAAIkU,GAAKlU,GAAiB,iBAALkU,GAA6B,iBAALlU,EAAe,CAC1D,GAAIkU,EAAExT,cAAgBV,EAAEU,YAAa,OAAO,EAE5C,IAAIF,EAAQoF,EAAGywC,EA6BXtH,EA5BJ,GAAI3oC,MAAMC,QAAQ6N,GAAI,CAEpB,IADA1T,EAAS0T,EAAE1T,SACGR,EAAEQ,OAAQ,OAAO,EAC/B,IAAKoF,EAAIpF,EAAgB,IAARoF,KACf,IAAKwzJ,EAAMllJ,EAAEtO,GAAI5F,EAAE4F,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAIqzJ,GAAW/kJ,aAAaua,KAASzuB,aAAayuB,IAAM,CACtD,GAAIva,EAAE/H,OAASnM,EAAEmM,KAAM,OAAO,EAE9B,IADA4iC,EAAK76B,EAAEmlJ,YACEzzJ,EAAImpC,EAAGxnB,QAAQ4jG,UACjBnrH,EAAEs5I,IAAI1zI,EAAEqD,MAAM,IAAK,OAAO,EAEjC,IADA8lC,EAAK76B,EAAEmlJ,YACEzzJ,EAAImpC,EAAGxnB,QAAQ4jG,UACjBiuC,EAAMxzJ,EAAEqD,MAAM,GAAIjJ,EAAEuoB,IAAI3iB,EAAEqD,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAIiwJ,GAAWhlJ,aAAa+nH,KAASj8H,aAAai8H,IAAM,CACtD,GAAI/nH,EAAE/H,OAASnM,EAAEmM,KAAM,OAAO,EAE9B,IADA4iC,EAAK76B,EAAEmlJ,YACEzzJ,EAAImpC,EAAGxnB,QAAQ4jG,UACjBnrH,EAAEs5I,IAAI1zI,EAAEqD,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAIkwJ,GAAkBvpI,YAAYC,OAAO3b,IAAM0b,YAAYC,OAAO7vB,GAAI,CAEpE,IADAQ,EAAS0T,EAAE1T,SACGR,EAAEQ,OAAQ,OAAO,EAC/B,IAAKoF,EAAIpF,EAAgB,IAARoF,KACf,GAAIsO,EAAEtO,KAAO5F,EAAE4F,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAIsO,EAAExT,cAAgB44J,OAAQ,OAAOplJ,EAAEnI,SAAW/L,EAAE+L,QAAUmI,EAAEgzH,QAAUlnI,EAAEknI,MAK5E,GAAIhzH,EAAEkc,UAAY/uB,OAAOE,UAAU6uB,SAAgC,oBAAdlc,EAAEkc,SAA+C,oBAAdpwB,EAAEowB,QAAwB,OAAOlc,EAAEkc,YAAcpwB,EAAEowB,UAC3I,GAAIlc,EAAE3J,WAAalJ,OAAOE,UAAUgJ,UAAkC,oBAAf2J,EAAE3J,UAAiD,oBAAfvK,EAAEuK,SAAyB,OAAO2J,EAAE3J,aAAevK,EAAEuK,WAKhJ,IADA/J,GADA61C,EAAOh1C,OAAOg1C,KAAKniC,IACL1T,UACCa,OAAOg1C,KAAKr2C,GAAGQ,OAAQ,OAAO,EAE7C,IAAKoF,EAAIpF,EAAgB,IAARoF,KACf,IAAKvE,OAAOE,UAAU2G,eAAeC,KAAKnI,EAAGq2C,EAAKzwC,IAAK,OAAO,EAKhE,GAAIozJ,GAAkB9kJ,aAAagmH,QAAS,OAAO,EAGnD,IAAKt0H,EAAIpF,EAAgB,IAARoF,KACf,IAAiB,WAAZywC,EAAKzwC,IAA+B,QAAZywC,EAAKzwC,IAA4B,QAAZywC,EAAKzwC,KAAiBsO,EAAE8qH,YAarEo6B,EAAMllJ,EAAEmiC,EAAKzwC,IAAK5F,EAAEq2C,EAAKzwC,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAOsO,IAAMA,GAAKlU,IAAMA,CAC1B,CAGAiL,EAAOF,QAAU,SAAiBmJ,EAAGlU,GACnC,IACE,OAAOo5J,EAAMllJ,EAAGlU,EAClB,CAAE,MAAOguB,GACP,IAAMA,EAAM1D,SAAW,IAAIk4F,MAAM,oBAO/B,OADAtuF,QAAQ04C,KAAK,mDACN,EAGT,MAAM5+C,CACR,CACF,kBCzIA,MAAM,IAAIxnB,EAAE,CAAC,IAAI,CAACA,EAAEgY,KAAK,IAAIxJ,GAAG,WAAW,aAAa,IAAI/D,EAAE,CAAC,EAAE/I,eAAe,SAASoP,IAAI,IAAI,IAAI9Q,EAAE,GAAGgY,EAAE,EAAEA,EAAErc,UAAU3B,OAAOge,IAAI,CAAC,IAAIxJ,EAAE7S,UAAUqc,GAAG,GAAGxJ,EAAE,CAAC,IAAId,SAASc,EAAE,GAAG,WAAWd,GAAG,WAAWA,EAAE1N,EAAEX,KAAKmP,QAAQ,GAAG5O,MAAMC,QAAQ2O,IAAI,GAAGA,EAAExU,OAAO,CAAC,IAAIsQ,EAAEwG,EAAEiV,MAAM,KAAKvX,GAAGlE,GAAGtK,EAAEX,KAAKiL,EAAE,OAAO,GAAG,WAAWoD,EAAE,CAAC,GAAGc,EAAEzK,WAAWlJ,OAAOE,UAAUgJ,WAAWyK,EAAEzK,SAASA,WAAW4qB,SAAS,iBAAiB,CAAC3uB,EAAEX,KAAKmP,EAAEzK,YAAY,QAAQ,CAAC,IAAI,IAAI3E,KAAKoP,EAAE/D,EAAE9I,KAAK6M,EAAEpP,IAAIoP,EAAEpP,IAAIY,EAAEX,KAAKD,EAAE,CAAC,CAAC,CAAC,OAAOY,EAAEmI,KAAK,IAAI,CAACnI,EAAEuE,SAASuM,EAAE8S,QAAQ9S,EAAE9Q,EAAEuE,QAAQuM,QAAG,KAAUtC,EAAE,WAAW,OAAOsC,CAAC,EAAEiV,MAAM/N,EAAE,OAAOhY,EAAEuE,QAAQiK,EAAE,CAAnjB,EAAsjB,EAAE,GAAG,CAACxO,EAAEgY,EAAExJ,KAAK,aAAaA,EAAE8T,EAAEtK,EAAE,CAAC8yI,EAAEA,IAAI1rJ,IAAI,IAAIqL,EAAE+D,EAAE,IAAIsC,EAAEtC,EAAEwJ,EAAEvN,GAAGiD,EAAEc,EAAE,KAAKlE,EAAEkE,EAAEwJ,EAAEtK,EAAJc,GAASsC,KAAKxG,EAAEjL,KAAK,CAACW,EAAEs1B,GAAG,2gCAA2gC,KAAK,MAAMl2B,EAAEkL,CAAC,EAAE,IAAItK,IAAI,aAAaA,EAAEuE,QAAQ,SAASvE,GAAG,IAAIgY,EAAE,GAAG,OAAOA,EAAEjU,SAAS,WAAW,OAAO8F,KAAK+d,KAAK,SAAS5P,GAAG,IAAIxJ,EAAE,GAAG/D,OAAE,IAASuN,EAAE,GAAG,OAAOA,EAAE,KAAKxJ,GAAG,cAAc8V,OAAOtM,EAAE,GAAG,QAAQA,EAAE,KAAKxJ,GAAG,UAAU8V,OAAOtM,EAAE,GAAG,OAAOvN,IAAI+D,GAAG,SAAS8V,OAAOtM,EAAE,GAAGhe,OAAO,EAAE,IAAIsqB,OAAOtM,EAAE,IAAI,GAAG,OAAOxJ,GAAGxO,EAAEgY,GAAGvN,IAAI+D,GAAG,KAAKwJ,EAAE,KAAKxJ,GAAG,KAAKwJ,EAAE,KAAKxJ,GAAG,KAAKA,CAAC,IAAIrG,KAAK,GAAG,EAAE6P,EAAE5Y,EAAE,SAASY,EAAEwO,EAAE/D,EAAEqG,EAAEpD,GAAG,iBAAiB1N,IAAIA,EAAE,CAAC,CAAC,KAAKA,OAAE,KAAU,IAAIsK,EAAE,CAAC,EAAE,GAAGG,EAAE,IAAI,IAAIrL,EAAE,EAAEA,EAAEyK,KAAK7P,OAAOoF,IAAI,CAAC,IAAImX,EAAE1M,KAAKzK,GAAG,GAAG,MAAMmX,IAAIjM,EAAEiM,IAAG,EAAG,CAAC,IAAI,IAAIU,EAAE,EAAEA,EAAEjX,EAAEhG,OAAOid,IAAI,CAAC,IAAIyK,EAAE,GAAG4C,OAAOtkB,EAAEiX,IAAIxM,GAAGH,EAAEoX,EAAE,WAAM,IAAShU,SAAI,IAASgU,EAAE,KAAKA,EAAE,GAAG,SAAS4C,OAAO5C,EAAE,GAAG1nB,OAAO,EAAE,IAAIsqB,OAAO5C,EAAE,IAAI,GAAG,MAAM4C,OAAO5C,EAAE,GAAG,MAAMA,EAAE,GAAGhU,GAAGc,IAAIkT,EAAE,IAAIA,EAAE,GAAG,UAAU4C,OAAO5C,EAAE,GAAG,MAAM4C,OAAO5C,EAAE,GAAG,KAAKA,EAAE,GAAGlT,GAAGkT,EAAE,GAAGlT,GAAGsC,IAAI4Q,EAAE,IAAIA,EAAE,GAAG,cAAc4C,OAAO5C,EAAE,GAAG,OAAO4C,OAAO5C,EAAE,GAAG,KAAKA,EAAE,GAAG5Q,GAAG4Q,EAAE,GAAG,GAAG4C,OAAOxT,IAAIkH,EAAE3Y,KAAKqiB,GAAG,CAAC,EAAE1J,CAAC,CAAC,EAAE,GAAGhY,IAAI,aAAaA,EAAEuE,QAAQ,SAASvE,GAAG,OAAOA,EAAE,EAAE,CAAC,EAAE,IAAI,CAACA,EAAEgY,EAAExJ,KAAK,aAAa,IAAI/D,EAAE+D,EAAE,KAAK,SAASsC,IAAI,CAAC,SAASpD,IAAI,CAACA,EAAEsqG,kBAAkBlnG,EAAE9Q,EAAEuE,QAAQ,WAAW,SAASvE,EAAEA,EAAEgY,EAAExJ,EAAEsC,EAAEpD,EAAEpD,GAAG,GAAGA,IAAIG,EAAE,CAAC,IAAIrL,EAAE,IAAI5D,MAAM,mLAAmL,MAAM4D,EAAEhE,KAAK,sBAAsBgE,CAAC,CAAC,CAAC,SAAS4Y,IAAI,OAAOhY,CAAC,CAACA,EAAEu4G,WAAWv4G,EAAE,IAAIwO,EAAE,CAAC4W,MAAMplB,EAAEy4G,OAAOz4G,EAAE04G,KAAK14G,EAAE24G,KAAK34G,EAAEyJ,OAAOzJ,EAAEm/B,OAAOn/B,EAAE2G,OAAO3G,EAAEq0G,OAAOr0G,EAAE44G,IAAI54G,EAAE64G,QAAQ7gG,EAAEgrB,QAAQhjC,EAAE84G,YAAY94G,EAAE+4G,WAAW/gG,EAAEoqD,KAAKpiE,EAAEg5G,SAAShhG,EAAEihG,MAAMjhG,EAAEkhG,UAAUlhG,EAAEwwC,MAAMxwC,EAAEmhG,MAAMnhG,EAAEohG,eAAe1rG,EAAEsqG,kBAAkBlnG,GAAG,OAAOtC,EAAE6qG,UAAU7qG,EAAEA,CAAC,CAAC,EAAE,IAAI,CAACxO,EAAEgY,EAAExJ,KAAKxO,EAAEuE,QAAQiK,EAAE,IAAFA,EAAQ,EAAE,IAAIxO,IAAI,aAAaA,EAAEuE,QAAQ,8CAA8C,GAAGyT,EAAE,CAAC,EAAE,SAASxJ,EAAE/D,GAAG,IAAIqG,EAAEkH,EAAEvN,GAAG,QAAG,IAASqG,EAAE,OAAOA,EAAEvM,QAAQ,IAAImJ,EAAEsK,EAAEvN,GAAG,CAAC6qB,GAAG7qB,EAAElG,QAAQ,CAAC,GAAG,OAAOvE,EAAEyK,GAAGiD,EAAEA,EAAEnJ,QAAQiK,GAAGd,EAAEnJ,OAAO,CAACiK,EAAEwJ,EAAEhY,IAAI,IAAIgY,EAAEhY,GAAGA,EAAE2iB,WAAW,IAAI3iB,EAAE4jB,QAAQ,IAAI5jB,EAAE,OAAOwO,EAAE8T,EAAEtK,EAAE,CAACtK,EAAEsK,IAAIA,CAAC,EAAExJ,EAAE8T,EAAE,CAACtiB,EAAEgY,KAAK,IAAI,IAAIvN,KAAKuN,EAAExJ,EAAEsC,EAAEkH,EAAEvN,KAAK+D,EAAEsC,EAAE9Q,EAAEyK,IAAI5P,OAAOgnB,eAAe7hB,EAAEyK,EAAE,CAACqX,YAAW,EAAGC,IAAI/J,EAAEvN,IAAI,EAAE+D,EAAEsC,EAAE,CAAC9Q,EAAEgY,IAAInd,OAAOE,UAAU2G,eAAeC,KAAK3B,EAAEgY,GAAGxJ,EAAE/D,EAAEzK,IAAI,oBAAoBsM,QAAQA,OAAOymJ,aAAal4J,OAAOgnB,eAAe7hB,EAAEsM,OAAOymJ,YAAY,CAACtwJ,MAAM,WAAW5H,OAAOgnB,eAAe7hB,EAAE,aAAa,CAACyC,OAAM,GAAI,EAAE,IAAIgI,EAAE,CAAC,EAAE,MAAM,aAAa+D,EAAE/D,EAAEA,GAAG+D,EAAE8T,EAAE7X,EAAE,CAACmZ,QAAQA,IAAIxH,IAAI,MAAMpc,EAAE1G,EAAQ,MAAS,IAAI0e,EAAExJ,EAAEwJ,EAAEhY,GAAG8Q,EAAEtC,EAAE,KAAKd,EAAEc,EAAEwJ,EAAElH,GAAGxG,EAAEkE,EAAE,KAAKpP,EAAEoP,EAAEwJ,EAAE1N,GAAGiM,EAAE/H,EAAE,IAAIyI,EAAE,CAAC,YAAY,QAAQyK,EAAE,CAAC,aAAa,SAASnK,IAAI,OAAOA,EAAE1c,OAAOG,OAAOH,OAAOG,OAAOoG,OAAO,SAASpB,GAAG,IAAI,IAAIgY,EAAE,EAAEA,EAAErc,UAAU3B,OAAOge,IAAI,CAAC,IAAIxJ,EAAE7S,UAAUqc,GAAG,IAAI,IAAIvN,KAAK+D,EAAE3T,OAAOE,UAAU2G,eAAeC,KAAK6M,EAAE/D,KAAKzK,EAAEyK,GAAG+D,EAAE/D,GAAG,CAAC,OAAOzK,CAAC,EAAEuX,EAAEwO,MAAMlc,KAAKlO,UAAU,CAAC,SAAS24B,EAAEt0B,EAAEgY,GAAG,GAAG,MAAMhY,EAAE,MAAM,CAAC,EAAE,IAAIwO,EAAE/D,EAAEqG,EAAE,SAAS9Q,EAAEgY,GAAG,GAAG,MAAMhY,EAAE,MAAM,CAAC,EAAE,IAAIwO,EAAE/D,EAAEqG,EAAE,CAAC,EAAEpD,EAAE7S,OAAOg1C,KAAK7vC,GAAG,IAAIyK,EAAE,EAAEA,EAAEiD,EAAE1T,OAAOyQ,IAAI+D,EAAEd,EAAEjD,GAAGuN,EAAE3P,QAAQmG,IAAI,IAAIsC,EAAEtC,GAAGxO,EAAEwO,IAAI,OAAOsC,CAAC,CAAnI,CAAqI9Q,EAAEgY,GAAG,GAAGnd,OAAOm4J,sBAAsB,CAAC,IAAItlJ,EAAE7S,OAAOm4J,sBAAsBhzJ,GAAG,IAAIyK,EAAE,EAAEA,EAAEiD,EAAE1T,OAAOyQ,IAAI+D,EAAEd,EAAEjD,GAAGuN,EAAE3P,QAAQmG,IAAI,GAAG3T,OAAOE,UAAUk4J,qBAAqBtxJ,KAAK3B,EAAEwO,KAAKsC,EAAEtC,GAAGxO,EAAEwO,GAAG,CAAC,OAAOsC,CAAC,CAAC,SAASwR,EAAEtiB,EAAEgY,GAAG,OAAO,SAAShY,GAAG,GAAGJ,MAAMC,QAAQG,GAAG,OAAOA,CAAC,CAAxC,CAA0CA,IAAI,SAASA,EAAEgY,GAAG,IAAIxJ,EAAE,MAAMxO,EAAE,KAAK,oBAAoBsM,QAAQtM,EAAEsM,OAAOi1B,WAAWvhC,EAAE,cAAc,GAAG,MAAMwO,EAAE,CAAC,IAAI/D,EAAEqG,EAAEpD,EAAEpD,EAAElL,EAAE,GAAGmX,GAAE,EAAGU,GAAE,EAAG,IAAI,GAAGvJ,GAAGc,EAAEA,EAAE7M,KAAK3B,IAAI+gB,KAAK,IAAI/I,EAAE,CAAC,GAAGnd,OAAO2T,KAAKA,EAAE,OAAO+H,GAAE,CAAE,MAAM,OAAOA,GAAG9L,EAAEiD,EAAE/L,KAAK6M,IAAIm2G,QAAQvlH,EAAEC,KAAKoL,EAAEhI,OAAOrD,EAAEpF,SAASge,GAAGzB,GAAE,GAAI,CAAC,MAAMvW,GAAGiX,GAAE,EAAGnG,EAAE9Q,CAAC,CAAC,QAAQ,IAAI,IAAIuW,GAAG,MAAM/H,EAAEw2G,SAAS16G,EAAEkE,EAAEw2G,SAASnqH,OAAOyP,KAAKA,GAAG,MAAM,CAAC,QAAQ,GAAG2M,EAAE,MAAMnG,CAAC,CAAC,CAAC,OAAO1R,CAAC,CAAC,CAAzY,CAA2YY,EAAEgY,IAAIgC,EAAEha,EAAEgY,IAAI,WAAW,MAAM,IAAIte,UAAU,4IAA4I,CAA3K,EAA8K,CAAC,SAASsgB,EAAEha,EAAEgY,GAAG,GAAGhY,EAAE,CAAC,GAAG,iBAAiBA,EAAE,OAAOR,EAAEQ,EAAEgY,GAAG,IAAIxJ,EAAE3T,OAAOE,UAAUgJ,SAASpC,KAAK3B,GAAG4D,MAAM,GAAG,GAAG,MAAM,WAAW4K,GAAGxO,EAAE9F,cAAcsU,EAAExO,EAAE9F,YAAYkB,MAAM,QAAQoT,GAAG,QAAQA,EAAE5O,MAAM/F,KAAKmG,GAAG,cAAcwO,GAAG,2CAA2CqzB,KAAKrzB,GAAGhP,EAAEQ,EAAEgY,QAAG,CAAM,CAAC,CAAC,SAASxY,EAAEQ,EAAEgY,IAAI,MAAMA,GAAGA,EAAEhY,EAAEhG,UAAUge,EAAEhY,EAAEhG,QAAQ,IAAI,IAAIwU,EAAE,EAAE/D,EAAE,IAAI7K,MAAMoY,GAAGxJ,EAAEwJ,EAAExJ,IAAI/D,EAAE+D,GAAGxO,EAAEwO,GAAG,OAAO/D,CAAC,CAAC,IAAI0L,GAAE,EAAGnW,EAAEkzJ,aAAa,SAAS1kJ,EAAE/D,GAAG,IAAIqG,EAAEtC,EAAE/L,MAAM6H,EAAEkE,EAAExU,OAAOoF,EAAEoP,EAAE2kJ,WAAWh9I,EAAE3H,EAAE4kJ,YAAYh3I,EAAE5N,EAAEs5I,UAAUtuJ,EAAEgV,EAAE6kJ,aAAap7I,EAAEzJ,EAAE8kJ,WAAW36I,EAAEnK,EAAE+kJ,eAAe9nJ,EAAE+C,EAAEglJ,WAAW3uJ,EAAE2J,EAAEilJ,SAAS7zC,EAAEpxG,EAAEklJ,QAAQz3D,EAAEztF,EAAEmlJ,OAAO/uJ,EAAE4J,EAAEooB,WAAWipF,EAAEv9F,GAAE,EAAGtiB,EAAEg4B,UAAU,IAAI,GAAGhc,EAAE6jG,EAAE,GAAGlyG,EAAEkyG,EAAE,GAAG3jG,EAAEoG,GAAE,EAAGtiB,EAAEg4B,WAAU,GAAI,GAAG9F,EAAEhW,EAAE,GAAG8rI,EAAE9rI,EAAE,GAAG+jG,GAAE,EAAGjgH,EAAEo4B,QAAQ,OAAM,EAAGp4B,EAAE85B,YAAY,WAAW1d,GAAG6jG,EAAE1+F,QAAQ4vH,OAAO,GAAG,CAAC/0H,KAAI,EAAGpc,EAAE85B,YAAY,WAAW7hB,EAAEqiH,UAAU0tB,GAAE,EAAG,GAAG,CAAC/vI,EAAEqiH,WAAW,IAAIhkH,EAAEg9H,EAAE,WAAWrzB,EAAE1+F,QAAQ4vH,OAAO,EAAEhxB,EAAE,WAAW,OAAO,MAAMrvG,EAAEA,EAAEkL,CAAC,EAAEs9F,EAAE,SAASt5G,GAAG,IAAIgY,EAAEmoG,IAAI,OAAOnoG,EAAEhe,SAASgG,GAAGgY,EAAEhe,SAASgG,EAAE,GAAGsK,IAAItK,EAAE,IAAIkyB,CAAC,EAAE/V,EAAE,SAASnc,GAAG,OAAOmgH,IAAInmH,OAAOgG,CAAC,EAAEohB,EAAE,SAASphB,GAAG,OAAOmgH,IAAInmH,OAAOgG,CAAC,EAAEic,EAAEhE,EAAE2vE,UAAU2zB,EAAEtjG,EAAEoP,KAAKghI,EAAE/zH,EAAErc,EAAEhB,GAAGyxI,EAAE/vI,EAAEivE,UAAUkjE,EAAEx2H,EAAE3b,EAAE+I,GAAG,OAAO1J,IAAI4iB,cAAc5iB,IAAI47I,SAAS,KAAK57I,IAAI4iB,cAAc,MAAMrjB,EAAE,CAAC,cAAc,YAAYqwE,UAAUl6E,IAAI,gBAAgBjC,EAAEtI,UAAUulJ,GAAG76B,QAAQ,WAAW,OAAO5N,EAAE1+F,QAAQ4vH,OAAO,GAAG2Z,GAAG9yI,IAAI4iB,cAAc,QAAQrjB,EAAE,CAAC,aAAa,qBAAqBs8I,YAAW,EAAGpxJ,MAAM09G,IAAIszC,SAAS,SAASzzJ,GAAG,IAAIgY,EAAEhY,EAAEmiB,OAAO1f,MAAM2I,QAAQ,MAAM,IAAI0nJ,OAAO,KAAKxuI,OAAOllB,EAAE,QAAQklB,OAAOha,EAAE,OAAOu3B,KAAK7pB,KAAKnT,IAAI,MAAMA,GAAGA,EAAEmT,IAAIrK,EAAEqK,GAAGA,EAAEhe,SAASsQ,IAAI,MAAM1F,GAAGA,EAAEoT,IAAI,EAAE6iB,IAAI,SAAS76B,GAAGigH,EAAE1+F,QAAQvhB,EAAE,mBAAmByK,EAAEA,EAAEzK,GAAGyK,IAAIA,EAAE8W,QAAQvhB,EAAE,EAAE4nF,UAAUl6E,IAAI,KAAKuO,GAAG63I,UAAU,SAAS9zJ,GAAG,CAAC,YAAY,aAAa,UAAU,aAAa2uB,SAAS3uB,EAAEoiB,MAAMpiB,EAAE+0H,gBAAgB,EAAE2+B,QAAQ,WAAW1L,GAAE,GAAI,MAAMpoC,GAAGA,GAAG,EAAE+zC,OAAO,WAAW3L,GAAE,GAAI,MAAM/rD,GAAGA,GAAG,EAAE83D,SAAS,SAAS/zJ,GAAG,IAAIgY,EAAEhY,EAAEmiB,OAAO1f,MAAMzC,EAAEmiB,OAAO6xI,kBAAkBh8I,EAAEhe,OAAOge,EAAEhe,OAAO,EAAEqtB,KAAK7tB,EAAE,WAAW+hH,GAAG8sC,KAAK/xI,EAAE1W,MAAM0K,GAAG,SAAStK,GAAG,GAAGJ,MAAMC,QAAQG,GAAG,OAAOR,EAAEQ,EAAE,CAA3C,CAA6CsW,IAAI,SAAStW,GAAG,GAAG,oBAAoBsM,QAAQ,MAAMtM,EAAEsM,OAAOi1B,WAAW,MAAMvhC,EAAE,cAAc,OAAOJ,MAAM/F,KAAKmG,EAAE,CAA/G,CAAiHsW,IAAI0D,EAAE1D,IAAI,WAAW,MAAM,IAAI5c,UAAU,uIAAuI,CAAtK,IAA2KkuB,KAAK,SAAS5nB,EAAEwO,GAAG,OAAOwJ,IAAI4iB,cAAc,MAAM,CAACgtD,UAAUl6E,IAAI,gBAAgBjC,EAAE2pG,UAAU,CAAC,0BAA0BkE,EAAE9qG,GAAG,0BAA0B2N,EAAE3N,GAAG,wBAAwB4S,EAAE5S,IAAI8qG,EAAE9qG,IAAI/C,EAAEwoJ,kBAAkB93I,EAAE3N,IAAI/C,EAAEyoJ,kBAAkB9yI,EAAE5S,IAAI/C,EAAE0oJ,iBAAiBtmC,QAAQylB,EAAEh+G,GAAG,SAAShR,OAAO9V,GAAG,cAAc,aAAa8V,OAAO9V,GAAG4T,IAAI5T,GAAGhV,GAAG2mH,IAAI3xG,GAAG,IAAI2xG,IAAI3xG,IAAI2H,EAAE,KAAK6B,IAAI4iB,cAAc,QAAQ,CAAC4/F,wBAAwB,CAACma,OAAOp+H,EAAEu0I,KAAK,IAAI30I,EAAEkiH,YAAY,oBAAoBliH,EAAEwnF,UAAU,CAACl7F,MAAMrD,IAAIuH,OAAO3M,OAAOoF,IAAIqK,OAAO0pJ,WAAW/zJ,IAAIuH,OAAOysJ,YAAYh0J,IAAIuH,OAAOmhJ,UAAU1oJ,IAAIs5G,KAAK26C,aAAaj0J,IAAIs5G,KAAK46C,WAAWl0J,IAAI+/B,OAAOo0H,eAAen0J,IAAI+/B,OAAOq0H,WAAWp0J,IAAIopD,MAAM,CAACrlD,UAAU/D,IAAIuH,OAAOyuG,UAAUh2G,IAAIuH,OAAOutJ,kBAAkB90J,IAAIuH,OAAOstJ,kBAAkB70J,IAAIuH,OAAOwtJ,gBAAgB/0J,IAAIuH,SAAS8sJ,SAASr0J,IAAIu5G,KAAK+6C,QAAQt0J,IAAIu5G,KAAKg7C,OAAOv0J,IAAIu5G,KAAK/hF,WAAWx3B,IAAIu5G,MAAMxiG,EAAEwrG,aAAa,CAAC3nH,OAAO,EAAEm5J,WAAW,YAAYC,YAAY,OAAItL,WAAU,EAAGwL,WAAW,CAAC,EAAEC,eAAe,CAAC,EAAEC,WAAW,CAAC,GAAG,MAAMp3I,EAAEjG,CAAE,EAAhoJ,GAAooJ,IAAIrF,EAAEvM,EAAQ,IAAI,IAAImJ,KAAKjD,EAAEqG,EAAEpD,GAAGjD,EAAEiD,GAAGjD,EAAEkY,YAAY9nB,OAAOgnB,eAAe/Q,EAAE,aAAa,CAACrO,OAAM,GAAK,EAAnnR,gCCQa,IAAI6xB,EAAEh7B,EAAQ,MAASqU,EAAErB,OAAOC,IAAI,iBAAiBgK,EAAEjK,OAAOC,IAAI,kBAAkB0L,EAAEpd,OAAOE,UAAU2G,eAAesW,EAAEsc,EAAEyiG,mDAAmDytB,kBAAkBjtI,EAAE,CAAC6K,KAAI,EAAGyY,KAAI,EAAGu5H,QAAO,EAAGC,UAAS,GAChP,SAAS76I,EAAElP,EAAEoD,EAAE0O,GAAG,IAAI5iB,EAAE8oB,EAAE,CAAC,EAAEtiB,EAAE,KAAKga,EAAE,KAAiF,IAAIxgB,UAAhF,IAAS4iB,IAAIpc,EAAE,GAAGoc,QAAG,IAAS1O,EAAE0U,MAAMpiB,EAAE,GAAG0N,EAAE0U,UAAK,IAAS1U,EAAEmtB,MAAM7gB,EAAEtM,EAAEmtB,KAAcntB,EAAEuK,EAAEtW,KAAK+L,EAAElU,KAAK+d,EAAE7V,eAAelI,KAAK8oB,EAAE9oB,GAAGkU,EAAElU,IAAI,GAAG8Q,GAAGA,EAAEq3G,aAAa,IAAInoH,KAAKkU,EAAEpD,EAAEq3G,kBAAe,IAASr/F,EAAE9oB,KAAK8oB,EAAE9oB,GAAGkU,EAAElU,IAAI,MAAM,CAACg/H,SAAS7qH,EAAE0Z,KAAK/c,EAAE8X,IAAIpiB,EAAE66B,IAAI7gB,EAAEsc,MAAMhU,EAAE+2H,OAAOrhI,EAAEuJ,QAAQ,CAAChd,EAAQqvJ,SAASr9I,EAAEhS,EAAQ+vJ,IAAI96I,EAAEjV,EAAQgwJ,KAAK/6I,6BCD7V,IAAIjD,EAAEjK,OAAOC,IAAI,iBAAiByL,EAAE1L,OAAOC,IAAI,gBAAgBgL,EAAEjL,OAAOC,IAAI,kBAAkBiN,EAAElN,OAAOC,IAAI,qBAAqB9B,EAAE6B,OAAOC,IAAI,kBAAkBiC,EAAElC,OAAOC,IAAI,kBAAkBmV,EAAEpV,OAAOC,IAAI,iBAAiB/M,EAAE8M,OAAOC,IAAI,qBAAqBd,EAAEa,OAAOC,IAAI,kBAAkB1H,EAAEyH,OAAOC,IAAI,cAAc4J,EAAE7J,OAAOC,IAAI,cAAc6U,EAAE9U,OAAOi1B,SACzW,IAAItlB,EAAE,CAACgmI,UAAU,WAAW,OAAM,CAAE,EAAEI,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAED,gBAAgB,WAAW,GAAGjmI,EAAErhB,OAAOG,OAAOmhB,EAAE,CAAC,EAAE,SAAS+V,EAAExkB,EAAElU,EAAEwG,GAAG6J,KAAKysB,MAAM5oB,EAAE7D,KAAK0kF,QAAQ/0F,EAAEqQ,KAAK0vI,KAAKp9H,EAAEtS,KAAK84I,QAAQ3iJ,GAAGic,CAAC,CACwI,SAASq3H,IAAI,CAAyB,SAAS0C,EAAEtoI,EAAElU,EAAEwG,GAAG6J,KAAKysB,MAAM5oB,EAAE7D,KAAK0kF,QAAQ/0F,EAAEqQ,KAAK0vI,KAAKp9H,EAAEtS,KAAK84I,QAAQ3iJ,GAAGic,CAAC,CADxPiW,EAAEn3B,UAAUmzJ,iBAAiB,CAAC,EACpQh8H,EAAEn3B,UAAUsrH,SAAS,SAAS34G,EAAElU,GAAG,GAAG,kBAAkBkU,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMlS,MAAM,yHAAyHqO,KAAK84I,QAAQR,gBAAgBt4I,KAAK6D,EAAElU,EAAE,WAAW,EAAE04B,EAAEn3B,UAAUy5J,YAAY,SAAS9mJ,GAAG7D,KAAK84I,QAAQN,mBAAmBx4I,KAAK6D,EAAE,cAAc,EAAgB4lI,EAAEv4I,UAAUm3B,EAAEn3B,UAAsF,IAAI0gH,EAAEu6B,EAAEj7I,UAAU,IAAIu4I,EACrf73B,EAAEvhH,YAAY87I,EAAE95H,EAAEu/F,EAAEvpF,EAAEn3B,WAAW0gH,EAAE+mC,sBAAqB,EAAG,IAAIviC,EAAErgH,MAAMC,QAAQwzI,EAAEx4I,OAAOE,UAAU2G,eAAew6I,EAAE,CAAC36H,QAAQ,MAAMg6F,EAAE,CAACn5F,KAAI,EAAGyY,KAAI,EAAGu5H,QAAO,EAAGC,UAAS,GACtK,SAAS/6C,EAAE5rG,EAAElU,EAAEwG,GAAG,IAAIsiB,EAAEhY,EAAE,CAAC,EAAEqD,EAAE,KAAKqM,EAAE,KAAK,GAAG,MAAMxgB,EAAE,IAAI8oB,UAAK,IAAS9oB,EAAEqhC,MAAM7gB,EAAExgB,EAAEqhC,UAAK,IAASrhC,EAAE4oB,MAAMzU,EAAE,GAAGnU,EAAE4oB,KAAK5oB,EAAE65I,EAAE1xI,KAAKnI,EAAE8oB,KAAKi5F,EAAE75G,eAAe4gB,KAAKhY,EAAEgY,GAAG9oB,EAAE8oB,IAAI,IAAIlG,EAAEzgB,UAAU3B,OAAO,EAAE,GAAG,IAAIoiB,EAAE9R,EAAE+tF,SAASr4F,OAAO,GAAG,EAAEoc,EAAE,CAAC,IAAI,IAAIkY,EAAE10B,MAAMwc,GAAGnE,EAAE,EAAEA,EAAEmE,EAAEnE,IAAIqc,EAAErc,GAAGtc,UAAUsc,EAAE,GAAG3N,EAAE+tF,SAAS/jE,CAAC,CAAC,GAAG5mB,GAAGA,EAAEi0G,aAAa,IAAIr/F,KAAKlG,EAAE1O,EAAEi0G,kBAAe,IAASr3G,EAAEgY,KAAKhY,EAAEgY,GAAGlG,EAAEkG,IAAI,MAAM,CAACk2G,SAASjiH,EAAE8Q,KAAK3Z,EAAE0U,IAAIzU,EAAEktB,IAAI7gB,EAAEsc,MAAMhsB,EAAE+uI,OAAO6C,EAAE36H,QAAQ,CAChV,SAASq+F,EAAElyG,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE8qH,WAAWjiH,CAAC,CAAoG,IAAIspG,EAAE,OAAO,SAASrE,EAAE9tG,EAAElU,GAAG,MAAM,kBAAkBkU,GAAG,OAAOA,GAAG,MAAMA,EAAE0U,IAA7K,SAAgB1U,GAAG,IAAIlU,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAIkU,EAAEtC,QAAQ,SAAQ,SAASsC,GAAG,OAAOlU,EAAEkU,EAAE,GAAE,CAA+E+mJ,CAAO,GAAG/mJ,EAAE0U,KAAK5oB,EAAEuK,SAAS,GAAG,CAC/W,SAASo8G,EAAEzyG,EAAElU,EAAEwG,EAAEsiB,EAAEhY,GAAG,IAAIqD,SAASD,EAAK,cAAcC,GAAG,YAAYA,IAAED,EAAE,MAAK,IAAIsM,GAAE,EAAG,GAAG,OAAOtM,EAAEsM,GAAE,OAAQ,OAAOrM,GAAG,IAAK,SAAS,IAAK,SAASqM,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOtM,EAAE8qH,UAAU,KAAKjiH,EAAE,KAAKyB,EAAEgC,GAAE,GAAI,GAAGA,EAAE,OAAW1P,EAAEA,EAAN0P,EAAEtM,GAASA,EAAE,KAAK4U,EAAE,IAAIk5F,EAAExhG,EAAE,GAAGsI,EAAE29F,EAAE31G,IAAItK,EAAE,GAAG,MAAM0N,IAAI1N,EAAE0N,EAAEtC,QAAQy0G,EAAE,OAAO,KAAKM,EAAE71G,EAAE9Q,EAAEwG,EAAE,IAAG,SAAS0N,GAAG,OAAOA,CAAC,KAAI,MAAMpD,IAAIs1G,EAAEt1G,KAAKA,EADnW,SAAWoD,EAAElU,GAAG,MAAM,CAACg/H,SAASjiH,EAAE8Q,KAAK3Z,EAAE2Z,KAAKjF,IAAI5oB,EAAEqhC,IAAIntB,EAAEmtB,IAAIvE,MAAM5oB,EAAE4oB,MAAM+iH,OAAO3rI,EAAE2rI,OAAO,CACyQ/iI,CAAEhM,EAAEtK,IAAIsK,EAAE8X,KAAKpI,GAAGA,EAAEoI,MAAM9X,EAAE8X,IAAI,IAAI,GAAG9X,EAAE8X,KAAKhX,QAAQy0G,EAAE,OAAO,KAAKnyG,IAAIlU,EAAE6F,KAAKiL,IAAI,EAAyB,GAAvB0P,EAAE,EAAEsI,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAO29F,EAAEvyG,GAAG,IAAI,IAAI0O,EAAE,EAAEA,EAAE1O,EAAE1T,OAAOoiB,IAAI,CAC/e,IAAIkY,EAAEhS,EAAEk5F,EADwe7tG,EACrfD,EAAE0O,GAAeA,GAAGpC,GAAGmmG,EAAExyG,EAAEnU,EAAEwG,EAAEs0B,EAAEhqB,EAAE,MAAM,GAAGgqB,EAPsU,SAAW5mB,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAE0T,GAAG1T,EAAE0T,IAAI1T,EAAE,eAA0CA,EAAE,IAAI,CAO5bsO,CAAEtO,GAAG,oBAAoB4mB,EAAE,IAAI5mB,EAAE4mB,EAAE3yB,KAAK+L,GAAG0O,EAAE,IAAIzO,EAAED,EAAEqT,QAAQ4jG,MAA6B3qG,GAAGmmG,EAA1BxyG,EAAEA,EAAElL,MAA0BjJ,EAAEwG,EAAtBs0B,EAAEhS,EAAEk5F,EAAE7tG,EAAEyO,KAAkB9R,QAAQ,GAAG,WAAWqD,EAAE,MAAMnU,EAAEyK,OAAOyJ,GAAGlS,MAAM,mDAAmD,oBAAoBhC,EAAE,qBAAqBqB,OAAOg1C,KAAKniC,GAAGvF,KAAK,MAAM,IAAI3O,GAAG,6EAA6E,OAAOwgB,CAAC,CACzZ,SAASiiF,EAAEvuF,EAAElU,EAAEwG,GAAG,GAAG,MAAM0N,EAAE,OAAOA,EAAE,IAAI4U,EAAE,GAAGhY,EAAE,EAAmD,OAAjD61G,EAAEzyG,EAAE4U,EAAE,GAAG,IAAG,SAAS5U,GAAG,OAAOlU,EAAEmI,KAAK3B,EAAE0N,EAAEpD,IAAI,IAAUgY,CAAC,CAAC,SAAS0lI,EAAEt6I,GAAG,IAAI,IAAIA,EAAEgnJ,QAAQ,CAAC,IAAIl7J,EAAEkU,EAAEinJ,SAAQn7J,EAAEA,KAAMknH,MAAK,SAASlnH,GAAM,IAAIkU,EAAEgnJ,UAAU,IAAIhnJ,EAAEgnJ,UAAQhnJ,EAAEgnJ,QAAQ,EAAEhnJ,EAAEinJ,QAAQn7J,EAAC,IAAE,SAASA,GAAM,IAAIkU,EAAEgnJ,UAAU,IAAIhnJ,EAAEgnJ,UAAQhnJ,EAAEgnJ,QAAQ,EAAEhnJ,EAAEinJ,QAAQn7J,EAAC,KAAI,IAAIkU,EAAEgnJ,UAAUhnJ,EAAEgnJ,QAAQ,EAAEhnJ,EAAEinJ,QAAQn7J,EAAE,CAAC,GAAG,IAAIkU,EAAEgnJ,QAAQ,OAAOhnJ,EAAEinJ,QAAQ/wI,QAAQ,MAAMlW,EAAEinJ,OAAQ,CAC5Z,IAAItM,EAAE,CAAC9mI,QAAQ,MAAMinI,EAAE,CAACr8B,WAAW,MAAMu8B,EAAE,CAACpL,uBAAuB+K,EAAEtiB,wBAAwByiB,EAAEhE,kBAAkBtI,GAAG,SAASoN,IAAI,MAAM9tJ,MAAM,2DAA4D,CACzM+I,EAAQqwJ,SAAS,CAAChtI,IAAIq0E,EAAE30E,QAAQ,SAAS5Z,EAAElU,EAAEwG,GAAGi8F,EAAEvuF,GAAE,WAAWlU,EAAEusB,MAAMlc,KAAKlO,UAAU,GAAEqE,EAAE,EAAEd,MAAM,SAASwO,GAAG,IAAIlU,EAAE,EAAuB,OAArByiG,EAAEvuF,GAAE,WAAWlU,GAAG,IAAUA,CAAC,EAAE+R,QAAQ,SAASmC,GAAG,OAAOuuF,EAAEvuF,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAEmnJ,KAAK,SAASnnJ,GAAG,IAAIkyG,EAAElyG,GAAG,MAAMlS,MAAM,yEAAyE,OAAOkS,CAAC,GAAGnJ,EAAQuwJ,UAAU5iI,EAAE3tB,EAAQqvJ,SAASr8I,EAAEhT,EAAQwwJ,SAAStqJ,EAAElG,EAAQ8qH,cAAc2mB,EAAEzxI,EAAQywJ,WAAWx7I,EAAEjV,EAAQ0wJ,SAASxpJ,EAClclH,EAAQwyH,mDAAmD2xB,EAAEnkJ,EAAQ2wJ,IAAI5L,EACzE/kJ,EAAQ4wJ,aAAa,SAASznJ,EAAElU,EAAEwG,GAAG,GAAG,OAAO0N,QAAG,IAASA,EAAE,MAAMlS,MAAM,iFAAiFkS,EAAE,KAAK,IAAI4U,EAAEpG,EAAE,CAAC,EAAExO,EAAE4oB,OAAOhsB,EAAEoD,EAAE0U,IAAIzU,EAAED,EAAEmtB,IAAI7gB,EAAEtM,EAAE2rI,OAAO,GAAG,MAAM7/I,EAAE,CAAoE,QAAnE,IAASA,EAAEqhC,MAAMltB,EAAEnU,EAAEqhC,IAAI7gB,EAAEkiI,EAAE36H,cAAS,IAAS/nB,EAAE4oB,MAAM9X,EAAE,GAAG9Q,EAAE4oB,KAAQ1U,EAAE2Z,MAAM3Z,EAAE2Z,KAAKs6F,aAAa,IAAIvlG,EAAE1O,EAAE2Z,KAAKs6F,aAAa,IAAIrtF,KAAK96B,EAAE65I,EAAE1xI,KAAKnI,EAAE86B,KAAKinF,EAAE75G,eAAe4yB,KAAKhS,EAAEgS,QAAG,IAAS96B,EAAE86B,SAAI,IAASlY,EAAEA,EAAEkY,GAAG96B,EAAE86B,GAAG,CAAC,IAAIA,EAAE34B,UAAU3B,OAAO,EAAE,GAAG,IAAIs6B,EAAEhS,EAAE+1E,SAASr4F,OAAO,GAAG,EAAEs0B,EAAE,CAAClY,EAAExc,MAAM00B,GACrf,IAAI,IAAIrc,EAAE,EAAEA,EAAEqc,EAAErc,IAAImE,EAAEnE,GAAGtc,UAAUsc,EAAE,GAAGqK,EAAE+1E,SAASj8E,CAAC,CAAC,MAAM,CAACo8G,SAASjiH,EAAE8Q,KAAK3Z,EAAE2Z,KAAKjF,IAAI9X,EAAEuwB,IAAIltB,EAAE2oB,MAAMhU,EAAE+2H,OAAOr/H,EAAE,EAAEzV,EAAQ6wJ,cAAc,SAAS1nJ,GAAqK,OAAlKA,EAAE,CAAC8qH,SAAS92G,EAAE+4H,cAAc/sI,EAAE2nJ,eAAe3nJ,EAAE4nJ,aAAa,EAAEC,SAAS,KAAKC,SAAS,KAAKC,cAAc,KAAKC,YAAY,OAAQH,SAAS,CAAC/8B,SAAShqH,EAAEiqH,SAAS/qH,GAAUA,EAAE8nJ,SAAS9nJ,CAAC,EAAEnJ,EAAQq2B,cAAc0+E,EAAE/0G,EAAQoxJ,cAAc,SAASjoJ,GAAG,IAAIlU,EAAE8/G,EAAEl4G,KAAK,KAAKsM,GAAY,OAATlU,EAAE6tB,KAAK3Z,EAASlU,CAAC,EAAE+K,EAAQqxJ,UAAU,WAAW,MAAM,CAACr0I,QAAQ,KAAK,EAC9dhd,EAAQ2uJ,WAAW,SAASxlJ,GAAG,MAAM,CAAC8qH,SAASh5H,EAAEk+E,OAAOhwE,EAAE,EAAEnJ,EAAQsxJ,eAAej2C,EAAEr7G,EAAQuxJ,KAAK,SAASpoJ,GAAG,MAAM,CAAC8qH,SAASriH,EAAEuiH,SAAS,CAACg8B,SAAS,EAAEC,QAAQjnJ,GAAGzD,MAAM+9I,EAAE,EAAEzjJ,EAAQwxJ,KAAK,SAASroJ,EAAElU,GAAG,MAAM,CAACg/H,SAAS3zH,EAAEwiB,KAAK3Z,EAAEogB,aAAQ,IAASt0B,EAAE,KAAKA,EAAE,EAAE+K,EAAQyxJ,gBAAgB,SAAStoJ,GAAG,IAAIlU,EAAEgvJ,EAAEr8B,WAAWq8B,EAAEr8B,WAAW,CAAC,EAAE,IAAIz+G,GAAG,CAAC,QAAQ86I,EAAEr8B,WAAW3yH,CAAC,CAAC,EAAE+K,EAAQ0xJ,aAAa3M,EAAE/kJ,EAAQw8I,YAAY,SAASrzI,EAAElU,GAAG,OAAO6uJ,EAAE9mI,QAAQw/H,YAAYrzI,EAAElU,EAAE,EAAE+K,EAAQy8I,WAAW,SAAStzI,GAAG,OAAO26I,EAAE9mI,QAAQy/H,WAAWtzI,EAAE,EAC3fnJ,EAAQ+8I,cAAc,WAAW,EAAE/8I,EAAQg9I,iBAAiB,SAAS7zI,GAAG,OAAO26I,EAAE9mI,QAAQggI,iBAAiB7zI,EAAE,EAAEnJ,EAAQu1B,UAAU,SAASpsB,EAAElU,GAAG,OAAO6uJ,EAAE9mI,QAAQuY,UAAUpsB,EAAElU,EAAE,EAAE+K,EAAQo9I,MAAM,WAAW,OAAO0G,EAAE9mI,QAAQogI,OAAO,EAAEp9I,EAAQ08I,oBAAoB,SAASvzI,EAAElU,EAAEwG,GAAG,OAAOqoJ,EAAE9mI,QAAQ0/H,oBAAoBvzI,EAAElU,EAAEwG,EAAE,EAAEuE,EAAQ28I,mBAAmB,SAASxzI,EAAElU,GAAG,OAAO6uJ,EAAE9mI,QAAQ2/H,mBAAmBxzI,EAAElU,EAAE,EAAE+K,EAAQ48I,gBAAgB,SAASzzI,EAAElU,GAAG,OAAO6uJ,EAAE9mI,QAAQ4/H,gBAAgBzzI,EAAElU,EAAE,EACzd+K,EAAQ68I,QAAQ,SAAS1zI,EAAElU,GAAG,OAAO6uJ,EAAE9mI,QAAQ6/H,QAAQ1zI,EAAElU,EAAE,EAAE+K,EAAQ88I,WAAW,SAAS3zI,EAAElU,EAAEwG,GAAG,OAAOqoJ,EAAE9mI,QAAQ8/H,WAAW3zI,EAAElU,EAAEwG,EAAE,EAAEuE,EAAQ6zB,OAAO,SAAS1qB,GAAG,OAAO26I,EAAE9mI,QAAQ6W,OAAO1qB,EAAE,EAAEnJ,EAAQyzB,SAAS,SAAStqB,GAAG,OAAO26I,EAAE9mI,QAAQyW,SAAStqB,EAAE,EAAEnJ,EAAQm9I,qBAAqB,SAASh0I,EAAElU,EAAEwG,GAAG,OAAOqoJ,EAAE9mI,QAAQmgI,qBAAqBh0I,EAAElU,EAAEwG,EAAE,EAAEuE,EAAQi9I,cAAc,WAAW,OAAO6G,EAAE9mI,QAAQigI,eAAe,EAAEj9I,EAAQ0wB,QAAQ,sCCtBlaxwB,EAAOF,QAAU,EAAjBE,kCCAAA,EAAOF,QAAU,EAAjBE,6BCDF,IAAIquI,EAAMj4I,OAAOE,UAAU2G,eACvBgwD,EAAS,IASb,SAASo+F,IAAU,CA4BnB,SAASoG,EAAG5wI,EAAIipE,EAAS4nE,GACvBtsJ,KAAKyb,GAAKA,EACVzb,KAAK0kF,QAAUA,EACf1kF,KAAKssJ,KAAOA,IAAQ,CACtB,CAaA,SAASC,EAAYC,EAAS3qH,EAAOpmB,EAAIipE,EAAS4nE,GAChD,GAAkB,oBAAP7wI,EACT,MAAM,IAAI5rB,UAAU,mCAGtB,IAAI2gC,EAAW,IAAI67H,EAAG5wI,EAAIipE,GAAW8nE,EAASF,GAC1CG,EAAM5kG,EAASA,EAAShmB,EAAQA,EAMpC,OAJK2qH,EAAQE,QAAQD,GACXD,EAAQE,QAAQD,GAAKhxI,GAC1B+wI,EAAQE,QAAQD,GAAO,CAACD,EAAQE,QAAQD,GAAMj8H,GADhBg8H,EAAQE,QAAQD,GAAKj3J,KAAKg7B,IADlCg8H,EAAQE,QAAQD,GAAOj8H,EAAUg8H,EAAQG,gBAI7DH,CACT,CASA,SAASI,EAAWJ,EAASC,GACI,MAAzBD,EAAQG,aAAoBH,EAAQE,QAAU,IAAIzG,SAC5CuG,EAAQE,QAAQD,EAC9B,CASA,SAASI,IACP7sJ,KAAK0sJ,QAAU,IAAIzG,EACnBjmJ,KAAK2sJ,aAAe,CACtB,CAzEI37J,OAAOC,SACTg1J,EAAO/0J,UAAYF,OAAOC,OAAO,OAM5B,IAAIg1J,GAASvrC,YAAW7yD,GAAS,IA2ExCglG,EAAa37J,UAAU47J,WAAa,WAClC,IACIC,EACAx7J,EAFAy7J,EAAQ,GAIZ,GAA0B,IAAtBhtJ,KAAK2sJ,aAAoB,OAAOK,EAEpC,IAAKz7J,KAASw7J,EAAS/sJ,KAAK0sJ,QACtBzjB,EAAInxI,KAAKi1J,EAAQx7J,IAAOy7J,EAAMx3J,KAAKqyD,EAASt2D,EAAKwI,MAAM,GAAKxI,GAGlE,OAAIP,OAAOm4J,sBACF6D,EAAMvyI,OAAOzpB,OAAOm4J,sBAAsB4D,IAG5CC,CACT,EASAH,EAAa37J,UAAUo/B,UAAY,SAAmBuR,GACpD,IAAI4qH,EAAM5kG,EAASA,EAAShmB,EAAQA,EAChCorH,EAAWjtJ,KAAK0sJ,QAAQD,GAE5B,IAAKQ,EAAU,MAAO,GACtB,GAAIA,EAASxxI,GAAI,MAAO,CAACwxI,EAASxxI,IAElC,IAAK,IAAIlmB,EAAI,EAAGmX,EAAIugJ,EAAS98J,OAAQmzI,EAAK,IAAIvtI,MAAM2W,GAAInX,EAAImX,EAAGnX,IAC7D+tI,EAAG/tI,GAAK03J,EAAS13J,GAAGkmB,GAGtB,OAAO6nH,CACT,EASAupB,EAAa37J,UAAUg8J,cAAgB,SAAuBrrH,GAC5D,IAAI4qH,EAAM5kG,EAASA,EAAShmB,EAAQA,EAChCvR,EAAYtwB,KAAK0sJ,QAAQD,GAE7B,OAAKn8H,EACDA,EAAU7U,GAAW,EAClB6U,EAAUngC,OAFM,CAGzB,EASA08J,EAAa37J,UAAUi8J,KAAO,SAActrH,EAAOx6B,EAAIG,EAAIG,EAAIG,EAAIG,GACjE,IAAIwkJ,EAAM5kG,EAASA,EAAShmB,EAAQA,EAEpC,IAAK7hC,KAAK0sJ,QAAQD,GAAM,OAAO,EAE/B,IAEIzwI,EACAzmB,EAHA+6B,EAAYtwB,KAAK0sJ,QAAQD,GACzB7uJ,EAAM9L,UAAU3B,OAIpB,GAAImgC,EAAU7U,GAAI,CAGhB,OAFI6U,EAAUg8H,MAAMtsJ,KAAKotJ,eAAevrH,EAAOvR,EAAU7U,QAAI1pB,GAAW,GAEhE6L,GACN,KAAK,EAAG,OAAO0yB,EAAU7U,GAAG3jB,KAAKw4B,EAAUo0D,UAAU,EACrD,KAAK,EAAG,OAAOp0D,EAAU7U,GAAG3jB,KAAKw4B,EAAUo0D,QAASr9E,IAAK,EACzD,KAAK,EAAG,OAAOipB,EAAU7U,GAAG3jB,KAAKw4B,EAAUo0D,QAASr9E,EAAIG,IAAK,EAC7D,KAAK,EAAG,OAAO8oB,EAAU7U,GAAG3jB,KAAKw4B,EAAUo0D,QAASr9E,EAAIG,EAAIG,IAAK,EACjE,KAAK,EAAG,OAAO2oB,EAAU7U,GAAG3jB,KAAKw4B,EAAUo0D,QAASr9E,EAAIG,EAAIG,EAAIG,IAAK,EACrE,KAAK,EAAG,OAAOwoB,EAAU7U,GAAG3jB,KAAKw4B,EAAUo0D,QAASr9E,EAAIG,EAAIG,EAAIG,EAAIG,IAAK,EAG3E,IAAK1S,EAAI,EAAGymB,EAAO,IAAIjmB,MAAM6H,EAAK,GAAIrI,EAAIqI,EAAKrI,IAC7CymB,EAAKzmB,EAAI,GAAKzD,UAAUyD,GAG1B+6B,EAAU7U,GAAGS,MAAMoU,EAAUo0D,QAAS1oE,EACxC,KAAO,CACL,IACIjhB,EADA5K,EAASmgC,EAAUngC,OAGvB,IAAKoF,EAAI,EAAGA,EAAIpF,EAAQoF,IAGtB,OAFI+6B,EAAU/6B,GAAG+2J,MAAMtsJ,KAAKotJ,eAAevrH,EAAOvR,EAAU/6B,GAAGkmB,QAAI1pB,GAAW,GAEtE6L,GACN,KAAK,EAAG0yB,EAAU/6B,GAAGkmB,GAAG3jB,KAAKw4B,EAAU/6B,GAAGmvF,SAAU,MACpD,KAAK,EAAGp0D,EAAU/6B,GAAGkmB,GAAG3jB,KAAKw4B,EAAU/6B,GAAGmvF,QAASr9E,GAAK,MACxD,KAAK,EAAGipB,EAAU/6B,GAAGkmB,GAAG3jB,KAAKw4B,EAAU/6B,GAAGmvF,QAASr9E,EAAIG,GAAK,MAC5D,KAAK,EAAG8oB,EAAU/6B,GAAGkmB,GAAG3jB,KAAKw4B,EAAU/6B,GAAGmvF,QAASr9E,EAAIG,EAAIG,GAAK,MAChE,QACE,IAAKqU,EAAM,IAAKjhB,EAAI,EAAGihB,EAAO,IAAIjmB,MAAM6H,EAAK,GAAI7C,EAAI6C,EAAK7C,IACxDihB,EAAKjhB,EAAI,GAAKjJ,UAAUiJ,GAG1Bu1B,EAAU/6B,GAAGkmB,GAAGS,MAAMoU,EAAU/6B,GAAGmvF,QAAS1oE,GAGpD,CAEA,OAAO,CACT,EAWA6wI,EAAa37J,UAAUm8J,GAAK,SAAYxrH,EAAOpmB,EAAIipE,GACjD,OAAO6nE,EAAYvsJ,KAAM6hC,EAAOpmB,EAAIipE,GAAS,EAC/C,EAWAmoE,EAAa37J,UAAUo7J,KAAO,SAAczqH,EAAOpmB,EAAIipE,GACrD,OAAO6nE,EAAYvsJ,KAAM6hC,EAAOpmB,EAAIipE,GAAS,EAC/C,EAYAmoE,EAAa37J,UAAUk8J,eAAiB,SAAwBvrH,EAAOpmB,EAAIipE,EAAS4nE,GAClF,IAAIG,EAAM5kG,EAASA,EAAShmB,EAAQA,EAEpC,IAAK7hC,KAAK0sJ,QAAQD,GAAM,OAAOzsJ,KAC/B,IAAKyb,EAEH,OADAmxI,EAAW5sJ,KAAMysJ,GACVzsJ,KAGT,IAAIswB,EAAYtwB,KAAK0sJ,QAAQD,GAE7B,GAAIn8H,EAAU7U,GAEV6U,EAAU7U,KAAOA,GACf6wI,IAAQh8H,EAAUg8H,MAClB5nE,GAAWp0D,EAAUo0D,UAAYA,GAEnCkoE,EAAW5sJ,KAAMysJ,OAEd,CACL,IAAK,IAAIl3J,EAAI,EAAGw3J,EAAS,GAAI58J,EAASmgC,EAAUngC,OAAQoF,EAAIpF,EAAQoF,KAEhE+6B,EAAU/6B,GAAGkmB,KAAOA,GACnB6wI,IAASh8H,EAAU/6B,GAAG+2J,MACtB5nE,GAAWp0D,EAAU/6B,GAAGmvF,UAAYA,IAErCqoE,EAAOv3J,KAAK86B,EAAU/6B,IAOtBw3J,EAAO58J,OAAQ6P,KAAK0sJ,QAAQD,GAAyB,IAAlBM,EAAO58J,OAAe48J,EAAO,GAAKA,EACpEH,EAAW5sJ,KAAMysJ,EACxB,CAEA,OAAOzsJ,IACT,EASA6sJ,EAAa37J,UAAUo8J,mBAAqB,SAA4BzrH,GACtE,IAAI4qH,EAUJ,OARI5qH,GACF4qH,EAAM5kG,EAASA,EAAShmB,EAAQA,EAC5B7hC,KAAK0sJ,QAAQD,IAAMG,EAAW5sJ,KAAMysJ,KAExCzsJ,KAAK0sJ,QAAU,IAAIzG,EACnBjmJ,KAAK2sJ,aAAe,GAGf3sJ,IACT,EAKA6sJ,EAAa37J,UAAU2Q,IAAMgrJ,EAAa37J,UAAUk8J,eACpDP,EAAa37J,UAAUq7J,YAAcM,EAAa37J,UAAUm8J,GAK5DR,EAAaU,SAAW1lG,EAKxBglG,EAAaA,aAAeA,EAM1BjyJ,EAAOF,QAAUmyJ,kBC5UnB,IAAI58J,EAASR,EAAQ,MACjBM,EAASE,EAAOF,OAGpB,SAASy9J,EAAWn7J,EAAKk3B,GACvB,IAAK,IAAIhR,KAAOlmB,EACdk3B,EAAIhR,GAAOlmB,EAAIkmB,EAEnB,CASA,SAASk1I,EAAYvuI,EAAKC,EAAkBhvB,GAC1C,OAAOJ,EAAOmvB,EAAKC,EAAkBhvB,EACvC,CAVIJ,EAAOC,MAAQD,EAAO4L,OAAS5L,EAAOqM,aAAerM,EAAOg0B,gBAC9DnpB,EAAOF,QAAUzK,GAGjBu9J,EAAUv9J,EAAQyK,GAClBA,EAAQ3K,OAAS09J,GAOnBA,EAAWv8J,UAAYF,OAAOC,OAAOlB,EAAOmB,WAG5Cs8J,EAAUz9J,EAAQ09J,GAElBA,EAAWz9J,KAAO,SAAUkvB,EAAKC,EAAkBhvB,GACjD,GAAmB,kBAAR+uB,EACT,MAAM,IAAIrvB,UAAU,iCAEtB,OAAOE,EAAOmvB,EAAKC,EAAkBhvB,EACvC,EAEAs9J,EAAW9xJ,MAAQ,SAAUG,EAAMO,EAAMsd,GACvC,GAAoB,kBAAT7d,EACT,MAAM,IAAIjM,UAAU,6BAEtB,IAAI+O,EAAM7O,EAAO+L,GAUjB,YATa/J,IAATsK,EACsB,kBAAbsd,EACT/a,EAAIvC,KAAKA,EAAMsd,GAEf/a,EAAIvC,KAAKA,GAGXuC,EAAIvC,KAAK,GAEJuC,CACT,EAEA6uJ,EAAWrxJ,YAAc,SAAUN,GACjC,GAAoB,kBAATA,EACT,MAAM,IAAIjM,UAAU,6BAEtB,OAAOE,EAAO+L,EAChB,EAEA2xJ,EAAW1pI,gBAAkB,SAAUjoB,GACrC,GAAoB,kBAATA,EACT,MAAM,IAAIjM,UAAU,6BAEtB,OAAOI,EAAO4uB,WAAW/iB,EAC3B,6BCvDa,SAAS2uB,EAAE5mB,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAE1T,OAAO0T,EAAErO,KAAK7F,GAAGkU,EAAE,KAAK,EAAEpD,GAAG,CAAC,IAAIgY,EAAEhY,EAAE,IAAI,EAAEtK,EAAE0N,EAAE4U,GAAG,KAAG,EAAElG,EAAEpc,EAAExG,IAA0B,MAAMkU,EAA7BA,EAAE4U,GAAG9oB,EAAEkU,EAAEpD,GAAGtK,EAAEsK,EAAEgY,CAAc,CAAC,CAAC,SAAStI,EAAEtM,GAAG,OAAO,IAAIA,EAAE1T,OAAO,KAAK0T,EAAE,EAAE,CAAC,SAASC,EAAED,GAAG,GAAG,IAAIA,EAAE1T,OAAO,OAAO,KAAK,IAAIR,EAAEkU,EAAE,GAAGpD,EAAEoD,EAAEknD,MAAM,GAAGtqD,IAAI9Q,EAAE,CAACkU,EAAE,GAAGpD,EAAEoD,EAAE,IAAI,IAAI4U,EAAE,EAAEtiB,EAAE0N,EAAE1T,OAAOyR,EAAEzL,IAAI,EAAEsiB,EAAE7W,GAAG,CAAC,IAAIwM,EAAE,GAAGqK,EAAE,GAAG,EAAEpG,EAAExO,EAAEuK,GAAGD,EAAEC,EAAE,EAAEpT,EAAE6I,EAAEsK,GAAG,GAAG,EAAEoE,EAAEF,EAAE5R,GAAG0N,EAAEhY,GAAG,EAAEoc,EAAEvX,EAAEqX,IAAIxO,EAAE4U,GAAGzd,EAAE6I,EAAEsK,GAAG1N,EAAEgY,EAAEtK,IAAItK,EAAE4U,GAAGpG,EAAExO,EAAEuK,GAAG3N,EAAEgY,EAAErK,OAAQ,MAAGD,EAAEhY,GAAG,EAAEoc,EAAEvX,EAAEyF,IAA0B,MAAMoD,EAA7BA,EAAE4U,GAAGzd,EAAE6I,EAAEsK,GAAG1N,EAAEgY,EAAEtK,CAAc,EAAC,CAAC,OAAOxe,CAAC,CAC3c,SAAS4iB,EAAE1O,EAAElU,GAAG,IAAI8Q,EAAEoD,EAAE6pJ,UAAU/9J,EAAE+9J,UAAU,OAAO,IAAIjtJ,EAAEA,EAAEoD,EAAE4nB,GAAG97B,EAAE87B,EAAE,CAAC,GAAG,kBAAkBkiI,aAAa,oBAAoBA,YAAYpzF,IAAI,CAAC,IAAI7tD,EAAEihJ,YAAYjzJ,EAAQq9H,aAAa,WAAW,OAAOrrH,EAAE6tD,KAAK,CAAC,KAAK,CAAC,IAAI7sD,EAAE4sD,KAAK3qD,EAAEjC,EAAE6sD,MAAM7/D,EAAQq9H,aAAa,WAAW,OAAOrqH,EAAE6sD,MAAM5qD,CAAC,CAAC,CAAC,IAAI/O,EAAE,GAAG+D,EAAE,GAAGkT,EAAE,EAAEliB,EAAE,KAAK2W,EAAE,EAAEiL,GAAE,EAAGpF,GAAE,EAAGC,GAAE,EAAGE,EAAE,oBAAoB24B,WAAWA,WAAW,KAAK5iB,EAAE,oBAAoB26F,aAAaA,aAAa,KAAKymB,EAAE,qBAAqBmkB,aAAaA,aAAa,KACnT,SAASzhB,EAAEtoI,GAAG,IAAI,IAAIlU,EAAEwgB,EAAExL,GAAG,OAAOhV,GAAG,CAAC,GAAG,OAAOA,EAAE+7B,SAAS5nB,EAAEa,OAAQ,MAAGhV,EAAE6uG,WAAW36F,GAAgD,MAA9CC,EAAEa,GAAGhV,EAAE+9J,UAAU/9J,EAAEk+J,eAAepjI,EAAE7pB,EAAEjR,EAAa,CAACA,EAAEwgB,EAAExL,EAAE,CAAC,CAAC,SAASitG,EAAE/tG,GAAa,GAAVuO,GAAE,EAAG+5H,EAAEtoI,IAAOsO,EAAE,GAAG,OAAOhC,EAAEvP,GAAGuR,GAAE,EAAGikG,EAAEozB,OAAO,CAAC,IAAI75I,EAAEwgB,EAAExL,GAAG,OAAOhV,GAAG0iJ,EAAEzgC,EAAEjiH,EAAE6uG,UAAU36F,EAAE,CAAC,CACra,SAAS2lI,EAAE3lI,EAAElU,GAAGwiB,GAAE,EAAGC,IAAIA,GAAE,EAAGiW,EAAEqpF,GAAGA,GAAG,GAAGn6F,GAAE,EAAG,IAAI9W,EAAE6L,EAAE,IAAS,IAAL6/H,EAAEx8I,GAAOgG,EAAEwa,EAAEvP,GAAG,OAAOjL,MAAMA,EAAEk4J,eAAel+J,IAAIkU,IAAI4rG,MAAM,CAAC,IAAIh3F,EAAE9iB,EAAE+1B,SAAS,GAAG,oBAAoBjT,EAAE,CAAC9iB,EAAE+1B,SAAS,KAAKpf,EAAE3W,EAAEm4J,cAAc,IAAI33J,EAAEsiB,EAAE9iB,EAAEk4J,gBAAgBl+J,GAAGA,EAAE+K,EAAQq9H,eAAe,oBAAoB5hI,EAAER,EAAE+1B,SAASv1B,EAAER,IAAIwa,EAAEvP,IAAIkD,EAAElD,GAAGurI,EAAEx8I,EAAE,MAAMmU,EAAElD,GAAGjL,EAAEwa,EAAEvP,EAAE,CAAC,GAAG,OAAOjL,EAAE,IAAIiM,GAAE,MAAO,CAAC,IAAIwM,EAAE+B,EAAExL,GAAG,OAAOyJ,GAAGikI,EAAEzgC,EAAExjG,EAAEowF,UAAU7uG,GAAGiS,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQjM,EAAE,KAAK2W,EAAE7L,EAAE8W,GAAE,CAAE,CAAC,CAD1a,qBAAqB8c,gBAAW,IAASA,UAAU05H,iBAAY,IAAS15H,UAAU05H,WAAWC,gBAAgB35H,UAAU05H,WAAWC,eAAez2J,KAAK88B,UAAU05H,YAC2Q,IACzP37D,EAD6P3lF,GAAE,EAAGspG,EAAE,KAAKrE,GAAG,EAAEsE,EAAE,EAAErE,GAAG,EACvc,SAASlC,IAAI,QAAO/0G,EAAQq9H,eAAepmB,EAAEqE,EAAO,CAAC,SAASM,IAAI,GAAG,OAAOP,EAAE,CAAC,IAAIlyG,EAAEnJ,EAAQq9H,eAAepmB,EAAE9tG,EAAE,IAAIlU,GAAE,EAAG,IAAIA,EAAEomH,GAAE,EAAGlyG,EAAE,CAAC,QAAQlU,EAAEyiG,KAAK3lF,GAAE,EAAGspG,EAAE,KAAK,CAAC,MAAMtpG,GAAE,CAAE,CAAO,GAAG,oBAAoBg9H,EAAEr3C,EAAE,WAAWq3C,EAAEnzB,EAAE,OAAO,GAAG,qBAAqB23C,eAAe,CAAC,IAAI9P,EAAE,IAAI8P,eAAezP,EAAEL,EAAE+P,MAAM/P,EAAEgQ,MAAM1xH,UAAU65E,EAAElkB,EAAE,WAAWosD,EAAE9hH,YAAY,KAAK,CAAC,MAAM01D,EAAE,WAAW9/E,EAAEgkG,EAAE,EAAE,EAAE,SAASF,EAAEvyG,GAAGkyG,EAAElyG,EAAE4I,IAAIA,GAAE,EAAG2lF,IAAI,CAAC,SAASigD,EAAExuI,EAAElU,GAAG+hH,EAAEp/F,GAAE,WAAWzO,EAAEnJ,EAAQq9H,eAAe,GAAEpoI,EAAE,CAC5d+K,EAAQg+H,sBAAsB,EAAEh+H,EAAQw9H,2BAA2B,EAAEx9H,EAAQ89H,qBAAqB,EAAE99H,EAAQ49H,wBAAwB,EAAE59H,EAAQ0zJ,mBAAmB,KAAK1zJ,EAAQ09H,8BAA8B,EAAE19H,EAAQg9H,wBAAwB,SAAS7zH,GAAGA,EAAE6nB,SAAS,IAAI,EAAEhxB,EAAQ2zJ,2BAA2B,WAAWl8I,GAAGoF,IAAIpF,GAAE,EAAGikG,EAAEozB,GAAG,EAC1U9uI,EAAQ4zJ,wBAAwB,SAASzqJ,GAAG,EAAEA,GAAG,IAAIA,EAAEggB,QAAQlG,MAAM,mHAAmHq4F,EAAE,EAAEnyG,EAAE3R,KAAKC,MAAM,IAAI0R,GAAG,CAAC,EAAEnJ,EAAQu9H,iCAAiC,WAAW,OAAO3rH,CAAC,EAAE5R,EAAQ6zJ,8BAA8B,WAAW,OAAOp+I,EAAEvP,EAAE,EAAElG,EAAQ8zJ,cAAc,SAAS3qJ,GAAG,OAAOyI,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI3c,EAAE,EAAE,MAAM,QAAQA,EAAE2c,EAAE,IAAI7L,EAAE6L,EAAEA,EAAE3c,EAAE,IAAI,OAAOkU,GAAG,CAAC,QAAQyI,EAAE7L,CAAC,CAAC,EAAE/F,EAAQ+zJ,wBAAwB,WAAW,EAC9f/zJ,EAAQo9H,sBAAsB,WAAW,EAAEp9H,EAAQg0J,yBAAyB,SAAS7qJ,EAAElU,GAAG,OAAOkU,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIpD,EAAE6L,EAAEA,EAAEzI,EAAE,IAAI,OAAOlU,GAAG,CAAC,QAAQ2c,EAAE7L,CAAC,CAAC,EAChM/F,EAAQ88H,0BAA0B,SAAS3zH,EAAElU,EAAE8Q,GAAG,IAAIgY,EAAE/d,EAAQq9H,eAA8F,OAA/E,kBAAkBt3H,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEkuJ,QAA6B,EAAEluJ,EAAEgY,EAAEhY,EAAEgY,EAAGhY,EAAEgY,EAAS5U,GAAG,KAAK,EAAE,IAAI1N,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzM0N,EAAE,CAAC4nB,GAAG5T,IAAI6T,SAAS/7B,EAAEm+J,cAAcjqJ,EAAE26F,UAAU/9F,EAAEotJ,eAAvD13J,EAAEsK,EAAEtK,EAAoEu3J,WAAW,GAAGjtJ,EAAEgY,GAAG5U,EAAE6pJ,UAAUjtJ,EAAEgqB,EAAE9lB,EAAEd,GAAG,OAAOsM,EAAEvP,IAAIiD,IAAIsM,EAAExL,KAAKyN,GAAGiW,EAAEqpF,GAAGA,GAAG,GAAGt/F,GAAE,EAAGigI,EAAEzgC,EAAEnxG,EAAEgY,MAAM5U,EAAE6pJ,UAAUv3J,EAAEs0B,EAAE7pB,EAAEiD,GAAGsO,GAAGoF,IAAIpF,GAAE,EAAGikG,EAAEozB,KAAY3lI,CAAC,EACnenJ,EAAQk9H,qBAAqBnoB,EAAE/0G,EAAQk0J,sBAAsB,SAAS/qJ,GAAG,IAAIlU,EAAE2c,EAAE,OAAO,WAAW,IAAI7L,EAAE6L,EAAEA,EAAE3c,EAAE,IAAI,OAAOkU,EAAEqY,MAAMlc,KAAKlO,UAAU,CAAC,QAAQwa,EAAE7L,CAAC,CAAC,CAAC,+BCf7J7F,EAAOF,QAAU,EAAjBE,gBCDFA,EAAOF,QAAU,SAAsBm0J,EAAMC,EAAM7qI,EAAS8qI,GAC1D,IAAIxrJ,EAAM0gB,EAAUA,EAAQnsB,KAAKi3J,EAAgBF,EAAMC,QAAQ,EAE/D,QAAY,IAARvrJ,EACF,QAASA,EAGX,GAAIsrJ,IAASC,EACX,OAAO,EAGT,GAAoB,kBAATD,IAAsBA,GAAwB,kBAATC,IAAsBA,EACpE,OAAO,EAGT,IAAIE,EAAQh+J,OAAOg1C,KAAK6oH,GACpBI,EAAQj+J,OAAOg1C,KAAK8oH,GAExB,GAAIE,EAAM7+J,SAAW8+J,EAAM9+J,OACzB,OAAO,EAMT,IAHA,IAAI++J,EAAkBl+J,OAAOE,UAAU2G,eAAeN,KAAKu3J,GAGlDx5J,EAAM,EAAGA,EAAM05J,EAAM7+J,OAAQmF,IAAO,CAC3C,IAAIijB,EAAMy2I,EAAM15J,GAEhB,IAAK45J,EAAgB32I,GACnB,OAAO,EAGT,IAAI42I,EAASN,EAAKt2I,GACd62I,EAASN,EAAKv2I,GAIlB,IAAY,KAFZhV,EAAM0gB,EAAUA,EAAQnsB,KAAKi3J,EAAgBI,EAAQC,EAAQ72I,QAAO,SAEtC,IAARhV,GAAkB4rJ,IAAWC,EACjD,OAAO,CAEX,CAEA,OAAO,CACT,wBC7CA,OAUA,SAAW9uJ,EAAQvO,GAEf,aAOA,IAGIs9J,EAAc,WACdC,EAAc,YACdC,EAAc,SACdC,EAAc,SACdC,EAAc,QACdC,EAAc,QACdC,EAAc,OACdC,EAAc,OACdC,EAAc,SACdC,EAAc,UACdC,EAAc,eACdC,EAAc,UACdC,EAAc,SACdC,EAAc,SACdC,EAAc,UACdC,EAAc,WACdC,EAAc,WAGdC,EAAU,SACVC,EAAU,QACVC,EAAU,OACVC,EAAa,aACbC,EAAU,UACVC,EAAU,SAEVC,EAAU,UACVC,EAAU,SACVC,EAAU,SACVC,EAAU,KACVC,EAAY,YACZC,EAAY,WACZC,EAAU,QACVC,EAAU,UACVC,EAAU,QACVC,EAAU,OACVC,EAAU,SACVC,EAAU,QACVC,EAAc,WACdC,EAAc,cACdC,EAAU,SAiBVC,EAAY,SAAUn0J,GAElB,IADA,IAAIo0J,EAAQ,CAAC,EACJr8J,EAAE,EAAGA,EAAEiI,EAAIrN,OAAQoF,IACxBq8J,EAAMp0J,EAAIjI,GAAG0nB,eAAiBzf,EAAIjI,GAEtC,OAAOq8J,CACX,EACA3oB,EAAM,SAAU4oB,EAAMC,GAClB,cAAcD,IAASrC,IAAuD,IAA5CuC,EAASD,GAAMtzJ,QAAQuzJ,EAASF,GACtE,EACAE,EAAW,SAAUn1J,GACjB,OAAOA,EAAI8jB,aACf,EAIA+D,EAAO,SAAU7nB,EAAKgB,GAClB,UAAWhB,IAAS4yJ,EAEhB,OADA5yJ,EAAMA,EAAI2E,QAAQ,SA7EZ,WA8EQ3D,IAAS0xJ,EAAa1yJ,EAAMA,EAAIq+F,UAAU,EA3DhD,IA6DpB,EAMI+2D,EAAY,SAAU/kC,EAAIglC,GAKtB,IAHA,IAAWl3J,EAAG+I,EAAG4J,EAAGiC,EAAGuiJ,EAAS//C,EAA5B58G,EAAI,EAGDA,EAAI08J,EAAO9hK,SAAW+hK,GAAS,CAElC,IAAIC,EAAQF,EAAO18J,GACfk3B,EAAQwlI,EAAO18J,EAAI,GAIvB,IAHAwF,EAAI+I,EAAI,EAGD/I,EAAIo3J,EAAMhiK,SAAW+hK,GAEnBC,EAAMp3J,IAGX,GAFAm3J,EAAUC,EAAMp3J,KAAKq3J,KAAKnlC,GAGtB,IAAKv/G,EAAI,EAAGA,EAAI+e,EAAMt8B,OAAQud,IAC1BykG,EAAQ+/C,IAAUpuJ,UAClB6L,EAAI8c,EAAM/e,MAEO6hJ,GAAY5/I,EAAExf,OAAS,EACnB,IAAbwf,EAAExf,cACSwf,EAAE,IAAM0/I,EAEfrvJ,KAAK2P,EAAE,IAAMA,EAAE,GAAG7X,KAAKkI,KAAMmyG,GAG7BnyG,KAAK2P,EAAE,IAAMA,EAAE,GAEC,IAAbA,EAAExf,cAEEwf,EAAE,KAAO0/I,GAAe1/I,EAAE,GAAGyiJ,MAAQziJ,EAAE,GAAGqoB,KAKjDh4B,KAAK2P,EAAE,IAAMwiG,EAAQA,EAAM5wG,QAAQoO,EAAE,GAAIA,EAAE,IAAM5d,EAHjDiO,KAAK2P,EAAE,IAAMwiG,EAAQxiG,EAAE,GAAG7X,KAAKkI,KAAMmyG,EAAOxiG,EAAE,IAAM5d,EAKpC,IAAb4d,EAAExf,SACL6P,KAAK2P,EAAE,IAAMwiG,EAAQxiG,EAAE,GAAG7X,KAAKkI,KAAMmyG,EAAM5wG,QAAQoO,EAAE,GAAIA,EAAE,KAAO5d,GAG1EiO,KAAK2P,GAAKwiG,GAAgBpgH,EAK1CwD,GAAK,CACT,CACJ,EAEA88J,EAAY,SAAUz1J,EAAKmhB,GAEvB,IAAK,IAAIxoB,KAAKwoB,EAEV,UAAWA,EAAIxoB,KAAOg6J,GAAYxxI,EAAIxoB,GAAGpF,OAAS,GAC9C,IAAK,IAAI4K,EAAI,EAAGA,EAAIgjB,EAAIxoB,GAAGpF,OAAQ4K,IAC/B,GAAIkuI,EAAIlrH,EAAIxoB,GAAGwF,GAAI6B,GACf,MAjJN,MAiJcrH,EAAiBxD,EAAYwD,OAG1C,GAAI0zI,EAAIlrH,EAAIxoB,GAAIqH,GACnB,MArJE,MAqJMrH,EAAiBxD,EAAYwD,EAG7C,OAAOqH,CACf,EAiBI01J,EAAoB,CAChB,GAAc,OACd,UAAc,SACd,SAAc,QACd,IAAc,SACd,GAAc,CAAC,SAAU,UACzB,MAAc,SACd,EAAc,SACd,EAAc,SACd,IAAc,SACd,GAAc,CAAC,SAAU,WACzB,GAAc,OAOlBC,EAAU,CAEVr/D,QAAU,CAAC,CAEP,gCACG,CAAC48D,EAAS,CAACH,EAAM,WAAY,CAChC,+BACG,CAACG,EAAS,CAACH,EAAM,SAAU,CAG9B,4BACA,mDACA,2CACG,CAACA,EAAMG,GAAU,CACpB,yBACG,CAACA,EAAS,CAACH,EAAMuB,EAAM,UAAW,CACrC,4BACG,CAACpB,EAAS,CAACH,EAAMuB,EAAM,QAAS,CACnC,qBACG,CAACpB,EAAS,CAACH,EAAMuB,IAAS,CAG7B,0DACG,CAACpB,EAAS,CAACH,EAAM,UAAW,CAC/B,uBACA,8DAEA,uDACA,2BAGA,+LAEA,kCACA,uBACG,CAACA,EAAMG,GAAU,CACpB,qBACG,CAACA,EAAS,CAACH,EAAM,eAAgB,CACpC,qDACG,CAACG,EAAS,CAACH,EAAM,KAAKe,IAAW,CACpC,+BACA,+BACA,8BACG,CAACZ,EAAS,CAACH,EAAM,WAAY,CAChC,yBACG,CAACG,EAAS,CAACH,EAAM,cAAe,CACnC,+CACG,CAACG,EAAS,CAACH,EAAM,OAAQ,CAC5B,oCACG,CAACG,EAAS,CAACH,EAAM,WAAY,CAChC,yBACG,CAACG,EAAS,CAACH,EAAM,gBAAgBe,IAAW,CAC/C,2BACG,CAAC,CAACf,EAAM,OAAQ,aAAae,GAAUZ,GAAU,CACpD,uBACG,CAACA,EAAS,CAACH,EAAMiB,EAAQ,WAAY,CACxC,qBACG,CAACd,EAAS,CAACH,EAAMuB,EAAM,WAAY,CACtC,0BACG,CAACpB,EAAS,CAACH,EAAM,YAAa,CACjC,sBACG,CAACG,EAAS,CAACH,EAAM,YAAa,CACjC,qBACG,CAACG,EAAS,CAACH,EAAMuB,EAAM,WAAY,CACtC,2BACG,CAACpB,EAAS,CAACH,EAAM,QAAQe,IAAW,CACvC,sBACG,CAACZ,EAAS,CAACH,EAAMiB,IAAW,CAC/B,iCACG,CAAC,CAACjB,EAAM,OAASe,IAAW,CAC/B,oDACG,CAAC,CAACf,EAAM,OAAQ,MAAQe,GAAUZ,GAAU,CAC/C,8BACG,CAACA,EAAS,CAACH,EAAMwB,EAAU,cAAe,CAC7C,+BACG,CAAC,CAACxB,EAAM,KAAM,KAAMG,GAAU,CACjC,0BACG,CAACA,EAAS,CAACH,EAAM,mBAAoB,CACxC,4BACG,CAAC,CAACA,EAAM,gBAAiBG,GAAU,CACtC,gCACA,iDACA,8CACG,CAACH,EAAMG,GAAU,CACpB,eACA,sBACG,CAACH,GAAO,CAGX,+DACG,CAAC,CAACA,EAAM6B,GAAW1B,GAAU,CAChC,uBACA,uCACA,kCACA,4BACA,4BACA,6BACA,qCACA,iDACG,CAACH,EAAMG,GAAU,CACpB,gCACG,CAACA,EAAS,CAACH,EAAM,QAAS,CAC7B,8CACG,CAACG,EAAS,CAACH,EAAM,WAAY,CAEhC,oCACG,CAACG,EAAS,CAACH,EAAMgB,EAAO,cAAe,CAE1C,+BACG,CAAC,CAAChB,EAAMgB,EAAO,YAAab,GAAU,CAEzC,2DACG,CAACA,EAAS,CAACH,EAAM,WAAWe,IAAW,CAE1C,+DACG,CAACf,EAAMG,GAAU,CAEpB,gDACG,CAACA,EAAS,CAACH,EAAM,kBAAmB,CACvC,sDACG,CAACG,EAASH,GAAO,CACpB,gDACG,CAACA,EAAM,CAACG,EAASuC,EAtJT,CACX,MAAU,KACV,IAAU,KACV,IAAU,KACV,MAAU,OACV,QAAU,OACV,QAAU,OACV,QAAU,OACV,IAAU,OA8IqC,CAE/C,8BACG,CAAC1C,EAAMG,GAAU,CAGpB,wCACG,CAAC,CAACH,EAAM,YAAaG,GAAU,CAClC,uCACG,CAACA,EAAS,CAACH,EAAMiB,EAAQ,aAAc,CAC1C,6BACA,cACA,mGAEA,+FAEA,wBACA,2CAGA,wHAEA,uBACA,sBACG,CAACjB,EAAMG,GAAU,CAEpB,wBACG,CAACH,EAAM,CAACG,EAAS,eAAgB,MAGxC0C,IAAM,CAAC,CAEH,iDACG,CAAC,CAACzC,EAAc,UAAW,CAE9B,gBACG,CAAC,CAACA,EAAcgC,IAAY,CAE/B,0BACG,CAAC,CAAChC,EAAc,SAAU,CAE7B,oCACG,CAAC,CAACA,EAAc,UAAW,CAE9B,mCACG,CAAC,CAACA,EAAc,UAAW,CAG9B,8BACG,CAAC,CAACA,EAAc,QAAS,CAE5B,0CACG,CAAC,CAACA,EAAc,OA3WT,GA2WwBgC,IAAY,CAE9C,kBACG,CAAC,CAAChC,EAAc,UAAW,CAE9B,2HAEG,CAAC,CAACA,EAAcgC,KAGvBU,OAAS,CAAC,CAON,mFACG,CAAC/C,EAAO,CAACG,EAAQsB,GAAU,CAACvB,EAAMM,IAAU,CAC/C,yDACA,uBACA,iBACG,CAACR,EAAO,CAACG,EAAQsB,GAAU,CAACvB,EAAMK,IAAU,CAG/C,4CACG,CAACP,EAAO,CAACG,EAAQU,GAAQ,CAACX,EAAMK,IAAU,CAC7C,6BACA,oCACA,kCACG,CAACP,EAAO,CAACG,EAAQU,GAAQ,CAACX,EAAMM,IAAU,CAC7C,iBACG,CAACR,EAAO,CAACG,EAAQU,IAAS,CAG7B,iCACG,CAACb,EAAO,CAACG,EAAQuB,GAAQ,CAACxB,EAAMK,IAAU,CAG7C,+DACG,CAACP,EAAO,CAACG,EAAQiB,GAAS,CAAClB,EAAMM,IAAU,CAC9C,kCACA,sEACG,CAACR,EAAO,CAACG,EAAQiB,GAAS,CAAClB,EAAMK,IAAU,CAG9C,kDACA,yBACA,uCACA,iDACA,4DACA,yGACG,CAAC,CAACP,EAAO,KAAM,KAAM,CAACG,EAAQyB,GAAS,CAAC1B,EAAMK,IAAU,CAC3D,+CACA,8CACE,CAAC,CAACP,EAAO,KAAM,KAAM,CAACG,EAAQyB,GAAS,CAAC1B,EAAMM,IAAU,CAG1D,sBACA,mEACG,CAACR,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMK,IAAU,CAC9C,wBACG,CAACP,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMM,IAAU,CAG9C,yBACA,oCACG,CAACR,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMK,IAAU,CAG9C,mCACG,CAACP,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMK,IAAU,CAGhD,iFACA,4BACA,sDACG,CAACP,EAAO,CAACG,EAAQoB,GAAW,CAACrB,EAAMK,IAAU,CAChD,qCACG,CAACP,EAAO,CAACG,EAAQoB,GAAW,CAACrB,EAAMM,IAAU,CAGhD,iEACG,CAACR,EAAO,CAACG,EAAQkB,GAAK,CAACnB,EAAMM,IAAU,CAC1C,sDACA,oDACA,wBACG,CAACR,EAAO,CAACG,EAAQkB,GAAK,CAACnB,EAAMK,IAAU,CAG1C,oBACA,qEACG,CAACP,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMM,IAAU,CAGhD,qCACA,0BACG,CAAC,CAACR,EAAO,KAAM,KAAM,CAACG,EAAQ,SAAU,CAACD,EAAMK,IAAU,CAG5D,gBACG,CAACP,EAAO,CAACG,EAAQgB,GAAS,CAACjB,EAAMM,IAAU,CAC9C,6CACG,CAACR,EAAO,CAACG,EAAQgB,GAAS,CAACjB,EAAMK,IAAU,CAG9C,0GACG,CAACP,EAAO,CAACG,EAAQwB,GAAO,CAACzB,EAAMK,IAAU,CAC5C,oBACA,iCACG,CAAC,CAACP,EAAO,iBAAkB,CAACG,EAAQwB,GAAO,CAACzB,EAAMM,IAAU,CAG/D,sCACA,0CACG,CAACR,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMK,IAAU,CAGjD,eACA,uCACA,gCACG,CAACP,EAAO,CAACG,EAAQS,GAAS,CAACV,EAAMM,IAAU,CAC9C,iDACG,CAAC,CAACR,EAAO,QAAS,iBAAkB,CAACG,EAAQS,GAAS,CAACV,EAAMK,IAAU,CAG1E,gCACG,CAACP,EAAOG,EAAQ,CAACD,EAAMM,IAAU,CACpC,gCACA,kBACG,CAACR,EAAO,CAACG,EAAQY,GAAa,CAACb,EAAMK,IAAU,CAGlD,qFACG,CAACP,EAAO,CAACG,EAAQW,GAAO,CAACZ,EAAMM,IAAU,CAC5C,iDACG,CAACR,EAAO,CAACG,EAAQW,GAAO,CAACZ,EAAMK,IAAU,CAG5C,cACG,CAACP,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMM,IAAU,CAC7C,2CAGA,oCACA,iFACG,CAACL,EAAQ,CAACH,EAAO,KAAM,KAAM,CAACE,EAAMK,IAAU,CAGjD,uCACG,CAACP,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMM,IAAU,CAG9C,8BACA,qBACG,CAACR,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMK,IAAU,CAG/C,kDACG,CAACP,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMK,IAAU,CAGjD,gHAEA,mBACA,iBACA,8BACA,0BACA,WACA,yBACG,CAACJ,EAAQH,EAAO,CAACE,EAAMK,IAAU,CAEpC,2BACA,wBACA,uCACA,uBACA,4BACA,iCACA,kCACA,8BACA,gCACA,mCACG,CAACJ,EAAQH,EAAO,CAACE,EAAMM,IAAU,CAEpC,kBACG,CAACR,EAAO,CAACG,EAAQmB,GAAY,CAACpB,EAAMM,IAAU,CACjD,qCACG,CAACR,EAAO,CAACG,EAAQ,aAAc,CAACD,EAAMK,IAAU,CACnD,aACG,CAACP,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMK,IAAU,CAC9C,gBACG,CAACP,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMK,IAAU,CACjD,iBACG,CAACP,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMM,IAAU,CAC7C,0BACG,CAACR,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMM,IAAU,CAC9C,wBACG,CAACR,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMM,IAAU,CACjD,+CACG,CAACR,EAAO,CAACG,EAAQ,kBAAmB,CAACD,EAAMM,IAAU,CACxD,qBACG,CAACR,EAAO,CAACG,EAAQ,YAAa,CAACD,EAAMM,IAAU,CAClD,cACG,CAACR,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMM,IAAU,CAC7C,mBACG,CAACR,EAAO,CAACG,EAAQ,OAAQ,CAACD,EAAMK,IAAU,CAC7C,wBACG,CAACP,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMK,IAAU,CAC/C,mBACG,CAACP,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMM,IAAU,CAC/C,wBACG,CAACR,EAAO,CAACG,EAAQ,QAAS,CAACD,EAAMM,IAAU,CAC9C,mBACA,sCACG,CAAC,CAACL,EAAQ,gBAAiBH,EAAO,CAACE,EAAMM,IAAU,CACtD,sBACG,CAACR,EAAO,CAACG,EAAQ,YAAa,CAACD,EAAMM,IAAU,CAClD,8BACG,CAACR,EAAO,CAACG,EAAQ,YAAa,CAACD,EAAMM,IAAU,CAClD,oDACG,CAAC,CAACL,EAAQ,SAAUH,EAAO,CAACE,EAAMK,IAAU,CAC/C,2BACG,CAAC,CAACJ,EAAQ,SAAUH,EAAO,CAACE,EAAMK,IAAU,CAC/C,cACG,CAACP,EAAO,CAACG,EAAQ,aAAc,CAACD,EAAMK,IAAU,CACnD,uCACG,CAACP,EAAO,CAACG,EAAQ,WAAY,CAACD,EAAMM,IAAU,CACjD,wBACG,CAACR,EAAO,CAACG,EAAQ,aAAc,CAACD,EAAMM,IAAU,CACnD,kBACG,CAACR,EAAO,CAACG,EAAQ,SAAU,CAACD,EAAMM,IAAU,CAC/C,qBACG,CAACR,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMM,IAAU,CAChD,mBACG,CAACL,EAAQH,EAAO,CAACE,EAAMK,IAAU,CACpC,sBACG,CAAC,CAACP,EAAO,MAAO,KAAM,CAACG,EAAQmB,GAAY,CAACpB,EAAMK,IAAU,CAC/D,yDACG,CAACP,EAAO,CAACG,EAAQ0B,GAAQ,CAAC3B,EAAMM,IAAU,CAC7C,yCACG,CAACR,EAAO,CAACG,EAAQ0B,GAAQ,CAAC3B,EAAMK,IAAU,CAM7C,wBACG,CAACJ,EAAQ,CAACD,EAAMO,IAAW,CAC9B,uBACG,CAAC,CAACT,EAAO,IAAK,WAAY,CAACG,EAAQsB,GAAU,CAACvB,EAAMO,IAAW,CAClE,8DACG,CAAC,CAACN,EAAQkB,GAAK,CAACnB,EAAMO,IAAW,CACpC,gBACG,CAACN,EAAQ,CAACH,EAAOa,EAAM,OAAQ,CAACX,EAAMO,IAAW,CACpD,UACG,CAAC,CAACT,EAAOiB,EAAO,QAAS,CAACd,EAAQgB,GAAS,CAACjB,EAAMO,IAAW,CAChE,6BACG,CAACT,EAAO,CAACG,EAAQS,GAAS,CAACV,EAAMO,IAAW,CAC/C,uBACA,uBACG,CAACT,EAAO,CAACG,EAAQuB,GAAQ,CAACxB,EAAMO,IAAU,CAC7C,4BACG,CAACT,EAAO,CAACG,EAAQwB,GAAO,CAACzB,EAAMO,IAAW,CAC7C,qBACG,CAACT,EAAO,CAACG,EAAQyB,GAAS,CAAC1B,EAAMO,IAAW,CAC/C,6BACG,CAACN,EAAQH,EAAO,CAACE,EAAMO,IAAW,CACrC,0CACA,6DACG,CAAC,CAACN,EAAQprI,GAAO,CAACirI,EAAOjrI,GAAO,CAACmrI,EAAMO,IAAW,CACrD,mDACG,CAAC,CAACP,EAAMO,IAAW,CAMtB,UACA,8BACG,CAACN,EAAQH,EAAO,CAACE,EAAMI,IAAW,CACrC,0BACG,CAACN,EAAO,CAACG,EAAQ,UAAW,CAACD,EAAMI,IAAW,CACjD,mCACG,CAACN,EAAO,CAACG,EAAQwB,GAAO,CAACzB,EAAMI,IAAW,CAC7C,sCACG,CAACN,EAAO,CAACG,EAAQmB,GAAY,CAACpB,EAAMI,IAAW,CAMlD,kBACG,CAACH,EAAQH,EAAO,CAACE,EAAMQ,IAAY,CACtC,wCACG,CAACV,EAAO,CAACG,EAAQU,GAAQ,CAACX,EAAMQ,IAAY,CAC/C,wBACG,CAACV,EAAO,CAACG,EAAQgB,GAAS,CAACjB,EAAMQ,IAAY,CAChD,6BACG,CAACV,EAAO,CAACG,EAAQ0B,GAAQ,CAAC3B,EAAMQ,IAAY,CAC/C,uBACG,CAACV,EAAO,CAACG,EAAQ2B,GAAW,CAAC5B,EAAMQ,IAAY,CAMlD,wCACG,CAACP,EAAQ,CAACD,EAAMS,IAAY,CAC/B,cACG,CAACX,EAAO,CAACG,EAAQS,GAAS,CAACV,EAAMS,IAAY,CAMhD,kEACG,CAACX,EAAO,CAACE,EAAMK,IAAU,CAC5B,+DACG,CAACP,EAAO,CAACE,EAAMM,IAAU,CAC5B,gDACG,CAAC,CAACN,EAAMM,IAAU,CACrB,kEACG,CAAC,CAACN,EAAMK,IAAU,CACrB,kCACG,CAACP,EAAO,CAACG,EAAQ,aAGxBx2F,OAAS,CAAC,CAEN,8BACG,CAACy2F,EAAS,CAACH,EAAM+C,aAAe,CAEnC,6CACG,CAAC5C,EAAS,CAACH,EAAM,UAAW,CAE/B,uBACA,sEACA,0BACA,yCACA,8BACA,eACG,CAACA,EAAMG,GAAU,CAEpB,iCACG,CAACA,EAASH,IAGjBtuG,GAAK,CAAC,CAGF,mCACG,CAACsuG,EAAMG,GAAU,CACpB,yDACG,CAACH,EAAM,CAACG,EAASuC,EAAWC,IAAqB,CACpD,0BACA,2CACA,wCACG,CAAC,CAACxC,EAASuC,EAAWC,GAAoB,CAAC3C,EAAM,YAAa,CAGjE,sDACA,4CACA,wBACG,CAAC,CAACG,EAAS,KAAM,KAAM,CAACH,EAAM,QAAS,CAC1C,0BACA,yCACG,CAAC,CAACA,EAAM+B,GAAS,CAAC5B,EAAS,KAAM,MAAO,CAG3C,kDACG,CAACA,EAASH,GAAO,CACpB,+EACA,8BACA,+BACA,kBACG,CAACA,EAAMG,GAAU,CACpB,cACG,CAACA,EAAS,CAACH,EAAMc,IAAc,CAClC,6DACG,CAACX,EAAS,CAACH,EAAM,YAAa,CACjC,mFACG,CAACG,EAAS,CAACH,EAAMiB,EAAQ,QAAS,CACrC,kBACA,wCACG,CAACd,EAAS,CAACH,EAAM,UAAW,CAC/B,wCACG,CAACG,EAAS,CAACH,EAAM,YAAa,CAGjC,qBACG,CAACG,EAAS,CAACH,EAAMgB,EAAO,SAAU,CACrC,oCACG,CAAC,CAAChB,EAAM8B,GAAc3B,GAAS,CAGlC,qBACA,iBACA,2BAGA,mDACA,2BAGA,wCACA,yBACA,4BACA,8SAEA,2BACA,oBACA,6EACA,kBACG,CAACH,EAAMG,GAAU,CACpB,yBACG,CAAC,CAACH,EAAM,WAAYG,GAAU,CACjC,sCACA,kCACA,mEACA,sBACG,CAACH,EAAMG,KAQd6C,EAAW,SAAU1lC,EAAI2lC,GAOzB,UALW3lC,IAAOsiC,IACdqD,EAAa3lC,EACbA,EAAKl7H,KAGHiO,gBAAgB2yJ,GAClB,OAAO,IAAIA,EAAS1lC,EAAI2lC,GAAYC,YAGxC,IAAIC,SAAqBxyJ,IAAWgvJ,GAAchvJ,EAAO+zB,UAAa/zB,EAAO+zB,UAAYtiC,EACrFghK,EAAM9lC,IAAQ6lC,GAAcA,EAAW76H,UAAa66H,EAAW76H,UAnyBrD,IAoyBV+6H,EAASF,GAAcA,EAAWG,cAAiBH,EAAWG,cAAgBlhK,EAC9EmhK,EAAUN,EArvBL,SAAUL,EAASK,GACxB,IAAIO,EAAgB,CAAC,EACrB,IAAK,IAAI59J,KAAKg9J,EACNK,EAAWr9J,IAAMq9J,EAAWr9J,GAAGpF,OAAS,IAAM,EAC9CgjK,EAAc59J,GAAKq9J,EAAWr9J,GAAGklB,OAAO83I,EAAQh9J,IAEhD49J,EAAc59J,GAAKg9J,EAAQh9J,GAGnC,OAAO49J,CACX,CA2uB2B1sB,CAAO8rB,EAASK,GAAcL,EACrDa,EAAaN,GAAcA,EAAW76H,WAAa86H,EAyEvD,OAvEA/yJ,KAAKqzJ,WAAa,WACd,IAjuBiBjoI,EAiuBbkoI,EAAW,CAAC,EAShB,OARAA,EAAS3D,GAAQ59J,EACjBuhK,EAASxD,GAAW/9J,EACpBigK,EAAUl6J,KAAKw7J,EAAUP,EAAKG,EAAQhgE,SACtCogE,EAAS7D,UAruBQrkI,EAquBUkoI,EAASxD,MApuBTN,EAAWpkI,EAAQ7pB,QAAQ,WAzE5C,IAyE+D3N,MAAM,KAAK,GAAK7B,EAsuBrFqhK,GAAcN,GAAcA,EAAWS,cAAgBT,EAAWS,MAAMC,SAAWnE,IACnFiE,EAAS3D,GAAQ,SAEd2D,CACX,EACAtzJ,KAAKyzJ,OAAS,WACV,IAAIC,EAAO,CAAC,EAGZ,OAFAA,EAAK3D,GAAgBh+J,EACrBigK,EAAUl6J,KAAK47J,EAAMX,EAAKG,EAAQV,KAC3BkB,CACX,EACA1zJ,KAAK2zJ,UAAY,WACb,IAAIC,EAAU,CAAC,EAaf,OAZAA,EAAQ/D,GAAU99J,EAClB6hK,EAAQlE,GAAS39J,EACjB6hK,EAAQhE,GAAQ79J,EAChBigK,EAAUl6J,KAAK87J,EAASb,EAAKG,EAAQT,QACjCW,IAAeQ,EAAQhE,IAASoD,GAASA,EAAMa,SAC/CD,EAAQhE,GAAQK,GAGhBmD,GAAgC,aAAlBQ,EAAQlE,IAAyBoD,UAAqBA,EAAW5kH,aAAeohH,GAAcwD,EAAWgB,gBAAkBhB,EAAWgB,eAAiB,IACrKF,EAAQlE,GAAS,OACjBkE,EAAQhE,GAAQM,GAEb0D,CACX,EACA5zJ,KAAK+zJ,UAAY,WACb,IAAIC,EAAU,CAAC,EAIf,OAHAA,EAAQrE,GAAQ59J,EAChBiiK,EAAQlE,GAAW/9J,EACnBigK,EAAUl6J,KAAKk8J,EAASjB,EAAKG,EAAQ75F,QAC9B26F,CACX,EACAh0J,KAAKi0J,MAAQ,WACT,IAAIC,EAAM,CAAC,EASX,OARAA,EAAIvE,GAAQ59J,EACZmiK,EAAIpE,GAAW/9J,EACfigK,EAAUl6J,KAAKo8J,EAAKnB,EAAKG,EAAQ7xG,IAC7B+xG,IAAec,EAAIvE,IAASqD,GAASA,EAAMmB,UAA8B,WAAlBnB,EAAMmB,WAC7DD,EAAIvE,GAAQqD,EAAMmB,SACG5yJ,QAAQ,aAAckwJ,GACtBlwJ,QAAQ,SAAUmwJ,IAEpCwC,CACX,EACAl0J,KAAK6yJ,UAAY,WACb,MAAO,CACH5lC,GAAUjtH,KAAKo0J,QACflhE,QAAUlzF,KAAKqzJ,aACfh6F,OAAUr5D,KAAK+zJ,YACf1yG,GAAUrhD,KAAKi0J,QACfxB,OAAUzyJ,KAAK2zJ,YACfnB,IAAUxyJ,KAAKyzJ,SAEvB,EACAzzJ,KAAKo0J,MAAQ,WACT,OAAOrB,CACX,EACA/yJ,KAAKq0J,MAAQ,SAAUpnC,GAEnB,OADA8lC,SAAc9lC,IAAOuiC,GAAYviC,EAAG98H,OAx1BxB,IAw1BkDs0B,EAAKwoG,EAx1BvD,KAw1B4EA,EACjFjtH,IACX,EACAA,KAAKq0J,MAAMtB,GACJ/yJ,IACX,EAEA2yJ,EAAS7C,QAn3BS,SAo3BlB6C,EAASjC,QAAWiB,EAAU,CAAChC,EAAMG,EAASL,IAC9CkD,EAAS2B,IAAM3C,EAAU,CAAC5B,IAC1B4C,EAAS4B,OAAS5C,EAAU,CAACjC,EAAOG,EAAQD,EAAMI,EAASC,EAAQE,EAASD,EAAQE,EAAUC,IAC9FsC,EAAS6B,OAAS7B,EAAS8B,GAAK9C,EAAU,CAAChC,EAAMG,WAOtCp1J,IAAa40J,GAEgB10J,EAAOF,UACvCA,EAAUE,EAAOF,QAAUi4J,GAE/Bj4J,EAAQi4J,SAAWA,GAGiB3pG,EAAAA,MAChCA,EAAAA,WACI,OAAO2pG,CACV,2CACaryJ,IAAWgvJ,IAEzBhvJ,EAAOqyJ,SAAWA,GAS1B,IAAI+B,SAAWp0J,IAAWgvJ,IAAehvJ,EAAOq0J,QAAUr0J,EAAOs0J,OACjE,GAAIF,IAAMA,EAAEznC,GAAI,CACZ,IAAI4nC,GAAS,IAAIlC,EACjB+B,EAAEznC,GAAK4nC,GAAOhC,YACd6B,EAAEznC,GAAG/0G,IAAM,WACP,OAAO28I,GAAOT,OAClB,EACAM,EAAEznC,GAAG5uG,IAAM,SAAU4uG,GACjB4nC,GAAOR,MAAMpnC,GACb,IAAIl0G,EAAS87I,GAAOhC,YACpB,IAAK,IAAIt9H,KAAQxc,EACb27I,EAAEznC,GAAG13F,GAAQxc,EAAOwc,EAE5B,CACJ,CAEH,CA96BD,CA86BqB,kBAAXj1B,OAAsBA,OAASN,mCCr7BzC,IAAIizF,oBACJ,IAAI6hE,EAAQ,IAAIllK,WAAW,IACZ,SAASmlK,IAEtB,IAAK9hE,KAGHA,EAAoC,qBAAXF,QAA0BA,OAAOE,iBAAmBF,OAAOE,gBAAgB17F,KAAKw7F,SAA+B,qBAAbC,UAAgE,oBAA7BA,SAASC,iBAAkCD,SAASC,gBAAgB17F,KAAKy7F,WAGrO,MAAM,IAAIrhG,MAAM,4GAIpB,OAAOshG,EAAgB6hE,EACzB,CClBA,8HCMA,QAJA,SAAkBlqI,GAChB,MAAuB,kBAATA,GAAqBoqI,EAAMh9H,KAAKpN,EAChD,ECIA,IAFA,IAAIqqI,EAAY,GAEP1/J,EAAI,EAAGA,EAAI,MAAOA,EACzB0/J,EAAUz/J,MAAMD,EAAI,KAAO2E,SAAS,IAAIioB,OAAO,IAoBjD,QAjBA,SAAmB3kB,GACjB,IAAI5M,EAASkB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAG7E84B,GAAQqqI,EAAUz3J,EAAI5M,EAAS,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAM,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAM,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAM,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAMqkK,EAAUz3J,EAAI5M,EAAS,IAAM,IAAMqkK,EAAUz3J,EAAI5M,EAAS,KAAOqkK,EAAUz3J,EAAI5M,EAAS,KAAOqkK,EAAUz3J,EAAI5M,EAAS,KAAOqkK,EAAUz3J,EAAI5M,EAAS,KAAOqkK,EAAUz3J,EAAI5M,EAAS,KAAOqkK,EAAUz3J,EAAI5M,EAAS,MAAM8vB,cAMzf,IAAKw0I,EAAStqI,GACZ,MAAM/6B,UAAU,+BAGlB,OAAO+6B,CACT,ECJA,QApBA,SAAYI,EAASpsB,EAAKhO,GAExB,IAAIukK,GADJnqI,EAAUA,GAAW,CAAC,GACH2N,SAAW3N,EAAQ+pI,KAAOA,KAK7C,GAHAI,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBv2J,EAAK,CACPhO,EAASA,GAAU,EAEnB,IAAK,IAAI2E,EAAI,EAAGA,EAAI,KAAMA,EACxBqJ,EAAIhO,EAAS2E,GAAK4/J,EAAK5/J,GAGzB,OAAOqJ,CACT,CAEA,OAAOmtB,EAAUopI,EACnB,+BCnBA,SAAStzD,EAAQjkF,GAAkC,OAAOikF,EAAU,mBAAqBp/F,QAAU,iBAAmBA,OAAOi1B,SAAW,SAAU9Z,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBnb,QAAUmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAGikF,EAAQjkF,EAAM,CAE/U5sB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET,IAAIw8J,EAAe,CAAC,EACpB16J,EAAiB,aAAI,EAErB,IAAIghH,EAkBJ,SAAiC99F,EAAKy3I,GAAe,IAAKA,GAAez3I,GAAOA,EAAI9E,WAAc,OAAO8E,EAAO,GAAY,OAARA,GAAiC,WAAjBikF,EAAQjkF,IAAoC,oBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAI49C,EAAQ85F,EAAyBD,GAAc,GAAI75F,GAASA,EAAMytE,IAAIrrH,GAAQ,OAAO49C,EAAMtjD,IAAI0F,GAAQ,IAAI23I,EAAS,CAAC,EAAOC,EAAwBxkK,OAAOgnB,gBAAkBhnB,OAAO0nB,yBAA0B,IAAK,IAAIH,KAAOqF,EAAO,GAAY,YAARrF,GAAqBvnB,OAAOE,UAAU2G,eAAeC,KAAK8lB,EAAKrF,GAAM,CAAE,IAAIC,EAAOg9I,EAAwBxkK,OAAO0nB,yBAAyBkF,EAAKrF,GAAO,KAAUC,IAASA,EAAKN,KAAOM,EAAK6F,KAAQrtB,OAAOgnB,eAAeu9I,EAAQh9I,EAAKC,GAAgB+8I,EAAOh9I,GAAOqF,EAAIrF,EAAQ,CAAIg9I,EAAgB,QAAI33I,EAAS49C,GAASA,EAAMn9C,IAAIT,EAAK23I,GAAW,OAAOA,CAAQ,CAlB9xBE,CAAwBhmK,EAAQ,OAExCimK,EAASjmK,EAAQ,IAcrB,SAAS6lK,EAAyBD,GAAe,GAAuB,oBAAZzb,QAAwB,OAAO,KAAM,IAAI+b,EAAoB,IAAI/b,QAAegc,EAAmB,IAAIhc,QAAW,OAAQ0b,EAA2B,SAAkCD,GAAe,OAAOA,EAAcO,EAAmBD,CAAmB,GAAGN,EAAc,CAM9U,SAASQ,EAAkBv9I,EAAQmU,GAAS,IAAK,IAAIl3B,EAAI,EAAGA,EAAIk3B,EAAMt8B,OAAQoF,IAAK,CAAE,IAAIugK,EAAarpI,EAAMl3B,GAAIugK,EAAW79I,WAAa69I,EAAW79I,aAAc,EAAO69I,EAAWptI,cAAe,EAAU,UAAWotI,IAAYA,EAAWrtI,UAAW,GAAMz3B,OAAOgnB,eAAeM,EAAQw9I,EAAWv9I,IAAKu9I,EAAa,CAAE,CAI5T,SAASC,EAAgBn4I,EAAKrF,EAAK3f,GAAiK,OAApJ2f,KAAOqF,EAAO5sB,OAAOgnB,eAAe4F,EAAKrF,EAAK,CAAE3f,MAAOA,EAAOqf,YAAY,EAAMyQ,cAAc,EAAMD,UAAU,IAAkB7K,EAAIrF,GAAO3f,EAAgBglB,CAAK,CAtBhN5sB,OAAOg1C,KAAK0vH,GAAQj4I,SAAQ,SAAUlF,GACxB,YAARA,GAA6B,eAARA,IACrBvnB,OAAOE,UAAU2G,eAAeC,KAAKs9J,EAAc78I,IACnDA,KAAO7d,GAAWA,EAAQ6d,KAASm9I,EAAOn9I,IAC9CvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOw9I,EAAOn9I,EAChB,IAEJ,IAcA,IAAIy9I,EAA4B,WAC9B,SAASA,EAAavpI,IATxB,SAAyBu8G,EAAUitB,GAAe,KAAMjtB,aAAoBitB,GAAgB,MAAM,IAAIpmK,UAAU,oCAAwC,CAUpJqmK,CAAgBl2J,KAAMg2J,GAEtBD,EAAgB/1J,KAAM,aAAS,GAE/B+1J,EAAgB/1J,KAAM,aAAS,GAE/BA,KAAK4zF,MAAQ8nB,EAAMy6C,kBACnBn2J,KAAKysB,MAAQivF,EAAM06C,gBAAgB3pI,GACnCzsB,KAAKq2J,iBAAmBr2J,KAAKq2J,iBAAiB9+J,KAAKyI,MACnDA,KAAKs2J,gBAAkBt2J,KAAKs2J,gBAAgB/+J,KAAKyI,MACjDA,KAAKu2J,eAAiBv2J,KAAKu2J,eAAeh/J,KAAKyI,MAC/CA,KAAKw2J,gBAAkBx2J,KAAKw2J,gBAAgBj/J,KAAKyI,MACjDA,KAAKy2J,gBAAkBz2J,KAAKy2J,gBAAgBl/J,KAAKyI,MACjDA,KAAK02J,cAAgB12J,KAAK02J,cAAcn/J,KAAKyI,MAC7CA,KAAK22J,iBAAmB32J,KAAK22J,iBAAiBp/J,KAAKyI,KACrD,CArBF,IAAsBi2J,EAAaW,EAAYC,EA2R7C,OA3RoBZ,EAuBPD,EAvBoBY,EAuBN,CAAC,CAC1Br+I,IAAK,OACL3f,MAAO,WACLoH,KAAK82J,sBACL92J,KAAK+2J,qBACP,GACC,CACDx+I,IAAK,SACL3f,MAAO,SAAgB6zB,GACrB,IAAIuqI,EAAYh3J,KAAKysB,MACjBwqI,EAAYjmK,OAAOG,OAAO,CAAC,EAAG6lK,EAAWvqI,GAE7C,GAAIuqI,EAAU79H,UAAY89H,EAAU99H,SAAW69H,EAAU1+I,SAAW2+I,EAAU3+I,OAI5E,OAHAtY,KAAK2vB,UACL3vB,KAAKysB,MAAQwqI,OACbj3J,KAAKwsC,OAIPxsC,KAAKysB,MAAQwqI,EAETD,EAAUzzC,uBAAyB0zC,EAAU1zC,sBAAwByzC,EAAUtzC,8BAAgCuzC,EAAUvzC,8BAC3H1jH,KAAKk3J,wBACLD,EAAU1zC,qBAAuBvjH,KAAK+2J,sBAAwB/2J,KAAKk3J,yBAGjEF,EAAUxzC,uBAAyByzC,EAAUzzC,uBAC/CxjH,KAAKm3J,wBACLF,EAAUzzC,qBAAuBxjH,KAAK82J,sBAAwB92J,KAAKm3J,wBAEvE,GACC,CACD5+I,IAAK,UACL3f,MAAO,WACLoH,KAAKk3J,wBACLl3J,KAAKm3J,wBACLn3J,KAAK4zF,MAAQ8nB,EAAMy6C,kBACnBn2J,KAAKysB,MAAQivF,EAAM06C,iBACrB,GACC,CACD79I,IAAK,sBACL3f,MAAO,WACL,IAAIw+J,EAAcp3J,KAAKysB,MACnB0M,EAAUi+H,EAAYj+H,QACtB7gB,EAAS8+I,EAAY9+I,OACrBkrG,EAAuB4zC,EAAY5zC,qBAEvC,GAAIrqF,GAAWqqF,EAAsB,CACnC,IAAIhzF,EAAWlY,GAAU6gB,EACrBk+H,EAAqB37C,EAAM47C,0BAC3BtsI,EAAU0wF,EAAM67C,WAAWF,GAC/B7mI,EAASE,iBAAiB,aAAc1wB,KAAKq2J,iBAAkBrrI,GAC/DwF,EAASE,iBAAiB,YAAa1wB,KAAKs2J,gBAAiBtrI,GAC7DwF,EAASE,iBAAiB,WAAY1wB,KAAKu2J,eAAgBvrI,EAC7D,CACF,GACC,CACDzS,IAAK,wBACL3f,MAAO,WACL,IAAI4+J,EAAex3J,KAAKysB,MACpB0M,EAAUq+H,EAAar+H,QAEvB3I,EADSgnI,EAAal/I,QACD6gB,EAErB3I,IACFA,EAASG,oBAAoB,aAAc3wB,KAAKq2J,kBAChD7lI,EAASG,oBAAoB,YAAa3wB,KAAKs2J,iBAC/C9lI,EAASG,oBAAoB,WAAY3wB,KAAKu2J,gBAElD,GACC,CACDh+I,IAAK,sBACL3f,MAAO,WACL,IAAI6+J,EAAez3J,KAAKysB,MACpB0M,EAAUs+H,EAAat+H,QACvBoqF,EAAuBk0C,EAAal0C,qBACpCG,EAA8B+zC,EAAa/zC,4BAE3CH,GAAwBpqF,IAC1BA,EAAQzI,iBAAiB,YAAa1wB,KAAKw2J,iBAC3Cr9H,EAAQzI,iBAAiB,YAAa1wB,KAAKy2J,iBAC3Ct9H,EAAQzI,iBAAiB,UAAW1wB,KAAK02J,eAErChzC,GACFvqF,EAAQzI,iBAAiB,aAAc1wB,KAAK22J,kBAGlD,GACC,CACDp+I,IAAK,wBACL3f,MAAO,WACL,IAAIugC,EAAUn5B,KAAKysB,MAAM0M,QAErBA,IACFA,EAAQxI,oBAAoB,YAAa3wB,KAAKw2J,iBAC9Cr9H,EAAQxI,oBAAoB,YAAa3wB,KAAKy2J,iBAC9Ct9H,EAAQxI,oBAAoB,UAAW3wB,KAAK02J,eAC5Cv9H,EAAQxI,oBAAoB,aAAc3wB,KAAK22J,kBAEnD,GACC,CACDp+I,IAAK,eACL3f,MAAO,SAAsBzC,GAC3B,IAAI60B,EAAUl5B,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAChF4lK,eAAgB,GAEdp0C,EAAgBtjH,KAAKysB,MAAM62F,cAC3Bo0C,EAAiB1sI,EAAQ0sI,eACzBC,EAAiBj8C,EAAMk8C,wBAAwBzhK,GAC/C0hK,EAAiBn8C,EAAMo8C,cAAcH,EAAgBr0C,GACzD,OAAO5H,EAAMq8C,kBAAkB/3J,KAAK4zF,MAAO,CACzCikE,eAAgBA,EAChBH,eAAgBA,GAEpB,GACC,CACDn/I,IAAK,mBACL3f,MAAO,SAA0BzC,GAC/B,IAAIulH,EAAMs8C,6BAA6B7hK,GAAvC,CACA,IAAImtH,EAAgBtjH,KAAKysB,MAAM62F,cAC3Bq0C,EAAiBj8C,EAAMk8C,wBAAwBzhK,GAE/C8hK,EAAuBv8C,EAAMo8C,cAAcH,EAAgBr0C,GAC3DtoH,EAAIi9J,EAAqBj9J,EACzBsR,EAAI2rJ,EAAqB3rJ,EAE7BtM,KAAK4zF,MAAQ8nB,EAAMy6C,gBAAgB,CACjC+B,WAAW,EACXv+J,MAAO2gE,KAAKC,MACZv/D,EAAGA,EACHsR,EAAGA,GAZ4C,CAcnD,GACC,CACDiM,IAAK,kBACL3f,MAAO,SAAyBzC,GAC9B,IAAIgiK,EAAcn4J,KAAK4zF,MACnB54F,EAAIm9J,EAAYn9J,EAChBsR,EAAI6rJ,EAAY7rJ,EAChB4rJ,EAAYC,EAAYD,UAC5B,GAAKl9J,GAAMsR,IAAKovG,EAAMs8C,6BAA6B7hK,GAAnD,CACA,IAAIuhK,EAAiB13J,KAAKysB,MAAMirI,gBAAkB,EAE9CU,EAAqBp4J,KAAKq4J,aAAaliK,EAAG,CAC5CuhK,eAAgBA,IAEdx2C,EAAOk3C,EAAmBl3C,KAC1BD,EAAOm3C,EAAmBn3C,KAC1BE,EAASi3C,EAAmBj3C,OAC5BuhB,EAAS01B,EAAmB11B,OAC5B41B,EAAaF,EAAmBE,WAChCC,EAAaH,EAAmBG,WAChC/xH,EAAW4xH,EAAmB5xH,SAC9BizD,EAAW2+D,EAAmB3+D,SAE9B++D,EAAex4J,KAAKysB,MACpBvZ,EAAQslJ,EAAatlJ,MACrBuwG,EAA+B+0C,EAAa/0C,6BAC5Cg1C,EAAeD,EAAaC,aAC5Br1C,EAAYo1C,EAAap1C,UACzBjtH,EAAE8nI,YAAcxa,GAA8BttH,EAAE+0H,iBAChDhK,EAAO1wH,OAAO0iB,IAAU+tG,EAAOzwH,OAAO0iB,KAAWglJ,IAEjDO,IAAiBP,GACnBO,EAAatiK,EAAG,CACdgrH,OAAQA,EACRuhB,OAAQA,EACRxhB,KAAMA,EACND,KAAMA,EACNq3C,WAAYA,EACZC,WAAYA,EACZ/xH,SAAUA,EACVizD,SAAUA,IAIdz5F,KAAK4zF,MAAMskE,WAAY,EAEnB90C,GACFA,EAAUjtH,EAAG,CACXgrH,OAAQA,EACRuhB,OAAQA,EACRxhB,KAAMA,EACND,KAAMA,EACNq3C,WAAYA,EACZC,WAAYA,EACZ/xH,SAAUA,EACVizD,SAAUA,IA/C+C,CAkD/D,GACC,CACDlhF,IAAK,iBACL3f,MAAO,SAAwBzC,GAC7B,IAAIuiK,EAAe14J,KAAKysB,MACpB42F,EAAWq1C,EAAar1C,SACxBs1C,EAAQD,EAAaC,MAEzB,GAAI34J,KAAK4zF,MAAMskE,UAAW,CACxB,IAAIR,EAAiB13J,KAAKysB,MAAMirI,gBAAkB,EAC9CnzJ,EAAWvE,KAAKq4J,aAAaliK,EAAG,CAClCuhK,eAAgBA,IAElBr0C,GAAYA,EAASltH,EAAGoO,EAC1B,KAAO,CACL,IAAIq0J,EAAY54J,KAAKq4J,aAAaliK,GAElCwiK,GAASA,EAAMxiK,EAAGyiK,EACpB,CAEA54J,KAAK4zF,MAAQ8nB,EAAMy6C,iBACrB,GACC,CACD59I,IAAK,kBACL3f,MAAO,SAAyBzC,GAC9B,IAAImiB,EAAStY,KAAKysB,MAAMnU,OAEpBA,EACEA,IAAWniB,EAAEmiB,QACftY,KAAKq2J,iBAAiBlgK,GAGxB6J,KAAKq2J,iBAAiBlgK,EAE1B,GACC,CACDoiB,IAAK,kBACL3f,MAAO,SAAyBzC,GAC9B6J,KAAKs2J,gBAAgBngK,EACvB,GACC,CACDoiB,IAAK,gBACL3f,MAAO,SAAuBzC,GAC5B,IAAI+hK,EAAYl4J,KAAK4zF,MAAMskE,UACvB5/I,EAAStY,KAAKysB,MAAMnU,OAEpBA,GACEA,IAAWniB,EAAEmiB,QAAU4/I,IACzBl4J,KAAKu2J,eAAepgK,GAGtB6J,KAAKu2J,eAAepgK,EAExB,GACC,CACDoiB,IAAK,mBACL3f,MAAO,SAA0BzC,GACf6J,KAAK4zF,MAAMskE,WAGzBl4J,KAAKu2J,eAAepgK,EAExB,IAnR2C0gK,EAoRzC,CAAC,CACHt+I,IAAK,yBACL3f,MAAO,WACL,OAAO8iH,EAAMm9C,6BACf,IAxR8DjC,GAAYf,EAAkBI,EAAY/kK,UAAW0lK,GAAiBC,GAAahB,EAAkBI,EAAaY,GAAc7lK,OAAOgnB,eAAei+I,EAAa,YAAa,CAAExtI,UAAU,IA2RrPutI,CACT,CAxRgC,GA0RhCt7J,EAAiB,QAAIs7J,2BC1TrB,IAAI8C,EASAC,EAWAC,EAxBJhoK,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQo+J,kBAAoBp+J,EAAQq+J,UAAYr+J,EAAQs+J,UAAO,EAE/Dt+J,EAAQo+J,kBAAoBA,EAE5B,SAAWA,GACTA,EAA4B,SAAI,WAChCA,EAA4B,SAAI,WAChCA,EAAwB,KAAI,MAC7B,CAJD,CAIGA,IAAsBp+J,EAAQo+J,kBAAoBA,EAAoB,CAAC,IAG1Ep+J,EAAQq+J,UAAYA,EAEpB,SAAWA,GACTA,EAAe,IAAI,MACnBA,EAAgB,KAAI,OACpBA,EAAiB,MAAI,QACrBA,EAAkB,OAAI,SACtBA,EAAgB,KAAI,MACrB,CAND,CAMGA,IAAcr+J,EAAQq+J,UAAYA,EAAY,CAAC,IAGlDr+J,EAAQs+J,KAAOA,EAEf,SAAWA,GACTA,EAAQ,EAAI,IACZA,EAAQ,EAAI,GACb,CAHD,CAGGA,IAASt+J,EAAQs+J,KAAOA,EAAO,CAAC,iCC9BnChoK,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQu+J,mBAIR,SAA4BC,GAC1B,IAAI/pI,EACAlvB,EAAWy1J,EAAOoD,kBAAkBK,SACpC1nJ,EAAWikJ,EAAOoD,kBAAkBM,SACpC1hJ,EAAUwhJ,EAAMA,EAAM/oK,OAAS,GAC/BkpK,EAAWH,EAAMA,EAAM/oK,OAAS,IAAM,EAE1C,GAAI+oK,EAAMI,OAAM,SAAU/jK,GACxB,OAAa,IAANA,CACT,IACE,OAAOmgK,EAAOoD,kBAAkBpzC,KAGlCv2F,EAAYzX,EAAU2hJ,EAAW5nJ,EAAWxR,EAE5B,IAAZyX,IACFyX,EAAYkqI,EAAW,EAAI5nJ,EAAWxR,GAGxC,OAAOkvB,CACT,EAtBA,IAAIumI,EAASjmK,EAAQ,iCCLrBuB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQ6+J,wBAMR,SAAiCC,GAM/B,IALA,IAAItmJ,EAAQphB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAE5EyD,EADSikK,EAAgBrpK,OACZ,EACbg/B,EAAYumI,EAAOoD,kBAAkBpzC,KAElCnwH,GAAK,EAAGA,IAAK,CAClB,IAAImiB,EAAU8hJ,EAAgBjkK,GAC1BkkK,GAAa,EAAIC,EAAQC,iBAAiBjiJ,GAC1Ci9D,GAAe,EAAI+kF,EAAQE,mBAAmBliJ,EAAQ+hJ,IACtDxiJ,EAAOuiJ,EAAgBjkK,EAAI,IAAM,CAAC,EAClCskK,GAAU,EAAIH,EAAQC,iBAAiB1iJ,GACvC6iJ,GAAY,EAAIJ,EAAQE,mBAAmB3iJ,EAAK4iJ,IAGpD,IAFiB,EAAIH,EAAQK,eAAeplF,EAAcmlF,IAExC5mJ,EAAO,CACvBic,EAAYsqI,EACZ,KACF,CACEtqI,EAAY0qI,CAEhB,CAEA,OAAO1qI,CACT,EA5BA,IAAIumI,EAASjmK,EAAQ,IAEjBiqK,EAAUjqK,EAAQ,iCCPtBuB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQs/J,kBAER,WACE,IAAIC,EAAWnoK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC/EooK,EAAWpoK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EACnF,OAAOmoK,EAAWC,EAAWD,EAAW,CAC1C,6BCTAjpK,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQk9J,wBAER,SAAiCzhK,GAC/B,GAAI,mBAAoBA,EAAG,CACzB,IAAIisI,EAAUjsI,EAAEmsI,gBAAkBnsI,EAAEmsI,eAAe,GACnD,MAAO,CACLtnI,EAAGonI,GAAWA,EAAQ7uG,QACtBjnB,EAAG81H,GAAWA,EAAQ5uG,QAE1B,CAEA,MAAO,CACLx4B,EAAG7E,EAAEo9B,QACLjnB,EAAGnW,EAAEq9B,QAET,+BClBAxiC,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQq9J,kBAYR,SAA2BnkE,EAAO5oE,GAChC,IAAIrxB,EAAQi6F,EAAMj6F,MACdqB,EAAI44F,EAAM54F,EACVsR,EAAIsnF,EAAMtnF,EACV6tJ,EAASvmE,EAAMumE,OACfC,EAASxmE,EAAMwmE,OACfvC,EAAiB7sI,EAAQ6sI,eACzBH,EAAiB1sI,EAAQ0sI,eACzBv2C,EAAS02C,EAAe78J,EAAIA,EAC5B0nI,EAASp2H,EAAIurJ,EAAevrJ,EAC5B40G,EAAOhvH,KAAK+S,IAAIk8G,GAChBF,EAAO/uH,KAAK+S,IAAIy9H,IACpB,EAAI23B,EAAaC,aAAaH,EAAQh5C,IACtC,EAAIk5C,EAAaC,aAAaF,EAAQ13B,GACtC,IAAI41B,GAAa,EAAIiC,EAAkBC,kBAAkBL,EAAQzE,EAAOsD,KAAKvZ,EAAGiY,GAC5Ea,GAAa,EAAIgC,EAAkBC,kBAAkBJ,EAAQ1E,EAAOsD,KAAKhY,EAAG0W,GAC5ElxH,GAAW,EAAIi0H,EAAmBT,mBAAmBrgK,EAAO2gE,KAAKC,OACjEk/B,GAAW,EAAIihE,EAAmBC,mBAAmBz5C,EAAMD,EAAMz6E,GACrE,MAAO,CACL06E,KAAMA,EACND,KAAMA,EACNE,OAAQA,EACRuhB,OAAQA,EACR41B,WAAYA,EACZC,WAAYA,EACZ/xH,SAAUA,EACVy9D,UAAW4zD,EAAe78J,EAC1BkpG,UAAW2zD,EAAevrJ,EAC1BmtF,SAAUA,EAEd,EAxCA,IAAI4gE,EAAe5qK,EAAQ,MAEvB8qK,EAAoB9qK,EAAQ,MAE5BgrK,EAAqBhrK,EAAQ,MAE7BirK,EAAqBjrK,EAAQ,MAE7BimK,EAASjmK,EAAQ,iCCbrBuB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQkgK,yBAMR,WASE,IARA,IAAI1B,EAAQpnK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC5E+oK,EAAQ,GACRppJ,EAAWikJ,EAAOoD,kBAAkBM,SACpCn5J,EAAWy1J,EAAOoD,kBAAkBK,SACpC5jK,EAAI,EACJulK,EAAO,GACP3rI,EAAYumI,EAAOoD,kBAAkBpzC,KAElCnwH,EAAI2jK,EAAM/oK,OAAQoF,IAAK,CAC5B,IAAImiB,EAAUwhJ,EAAM3jK,GAChB0hB,EAAOiiJ,EAAM3jK,EAAI,GAErB,GAAIulK,EAAK3qK,OAAQ,CACf,IAAI4qK,EAAmBrjJ,EAAUT,EAAOxF,EAAWxR,EAE/CkvB,IAAcumI,EAAOoD,kBAAkBpzC,OACzCv2F,EAAY4rI,GAGVA,IAAqB5rI,EACvB2rI,EAAKtlK,KAAKkiB,IAEVmjJ,EAAMrlK,KAAKugK,EAAgB,CAAC,EAAG5mI,EAAW2rI,EAAK/gK,WAC/C+gK,EAAO,IACFtlK,KAAKkiB,GACVyX,EAAY4rI,EAEhB,MACkB,IAAZrjJ,IACFyX,EAAYzX,EAAU,EAAIjG,EAAWxR,GAGvC66J,EAAKtlK,KAAKkiB,EAEd,CAEIojJ,EAAK3qK,QACP0qK,EAAMrlK,KAAKugK,EAAgB,CAAC,EAAG5mI,EAAW2rI,IAG5C,OAAOD,CACT,EA9CA,IAAInF,EAASjmK,EAAQ,IAErB,SAASsmK,EAAgBn4I,EAAKrF,EAAK3f,GAAiK,OAApJ2f,KAAOqF,EAAO5sB,OAAOgnB,eAAe4F,EAAKrF,EAAK,CAAE3f,MAAOA,EAAOqf,YAAY,EAAMyQ,cAAc,EAAMD,UAAU,IAAkB7K,EAAIrF,GAAO3f,EAAgBglB,CAAK,6BCPhN5sB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQigK,kBAER,SAA2B3/J,EAAGsR,EAAGg6B,GAE/B,OADgBp0C,KAAKojB,KAAKta,EAAIA,EAAIsR,EAAIA,IAClBg6B,GAAQ,EAC9B,6BCRAt1C,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQs9J,kCAA+B,EAMvCt9J,EAAQs9J,6BAJ2B,SAAsC7hK,GACvE,OAAOiD,QAAQjD,EAAEisI,SAAWjsI,EAAEisI,QAAQjyI,OAAS,EACjD,+BCPAa,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQ48J,wBAKR,SAAiCD,GAC/B,GAAkC,mBAAvBA,EACT,OAAOA,EAGT,IAAI2D,EAAQ,CACV3D,mBAAoBA,GAGtB,IACE,IAAIrsI,GAAU,EAAIiwI,EAAeC,eAAeF,GAChD16J,OAAOowB,iBAAiB,0BAA2ByqI,EAAMnwI,GACzD1qB,OAAOqwB,oBAAoB,0BAA2BwqI,EAAMnwI,EAC9D,CAAE,MAAOa,GAAM,CAEf,OAAOmvI,EAAM3D,kBACf,EApBA38J,EAAQygK,UAAO,EAEf,IAAIF,EAAiBxrK,EAAQ,MAoB7B,IAAI0rK,EAAO,WAAiB,EAE5BzgK,EAAQygK,KAAOA,6BCvBf,SAASt5D,EAAQjkF,GAAkC,OAAOikF,EAAU,mBAAqBp/F,QAAU,iBAAmBA,OAAOi1B,SAAW,SAAU9Z,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBnb,QAAUmb,EAAIvtB,cAAgBoS,QAAUmb,IAAQnb,OAAOvR,UAAY,gBAAkB0sB,CAAK,EAAGikF,EAAQjkF,EAAM,CAL/U5sB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQm+J,iCAA8B,EAQtCn+J,EAAQm+J,4BAJ0B,WAChC,MAA2E,YAAjD,qBAAXv4J,OAAyB,YAAcuhG,EAAQvhG,WAA0B,iBAAkBA,QAAUlH,QAAQkH,OAAO+zB,UAAUy/H,gBAC/I,+BCTA9iK,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQ0gK,qBAAuB1gK,EAAQk/J,kBAAoBl/J,EAAQi/J,gBAAkBj/J,EAAQq/J,mBAAgB,EAE7G,IAAIrE,EAASjmK,EAAQ,IAkBrBiL,EAAQi/J,gBAhBc,WACpB,IAAIrkI,EAASxjC,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAGlF,OAFUd,OAAOg1C,KAAK1Q,GAAQp7B,YAG5B,KAAKw7J,EAAOoD,kBAAkBM,SAC5B,OAAO1D,EAAOoD,kBAAkBM,SAElC,KAAK1D,EAAOoD,kBAAkBK,SAC5B,OAAOzD,EAAOoD,kBAAkBK,SAElC,QACE,OAAOzD,EAAOoD,kBAAkBpzC,KAEtC,EASAhrH,EAAQk/J,kBALgB,WACtB,IAAIvoK,EAASS,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAOT,EAAOA,EAAOlB,OAAS,IAAM,CACtC,EAUAuK,EAAQq/J,cANY,WAClB,IAAI/+J,EAAIlJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EACxEwa,EAAIxa,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5E,OAAOI,KAAK+S,IAAIjK,EAAIsR,EACtB,EAyBA5R,EAAQ0gK,qBArBmB,SAA8BC,EAAM9iJ,GAC7D,IAAItY,EAAWy1J,EAAOqD,UAAUuC,KAC5B7pJ,EAAWikJ,EAAOqD,UAAUwC,MAC5BpsI,EAAYumI,EAAOqD,UAAUrzC,KAejC,OAbI21C,IAAS3F,EAAOsD,KAAKhY,IACvB/gJ,EAAWy1J,EAAOqD,UAAUyC,OAC5B/pJ,EAAWikJ,EAAOqD,UAAU0C,KAG1BljJ,IAAQm9I,EAAOoD,kBAAkBK,WACnChqI,EAAYlvB,GAGVsY,IAAQm9I,EAAOoD,kBAAkBM,WACnCjqI,EAAY1d,GAGP0d,CACT,6BC3DAn+B,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQwgK,cAER,WACE,IAAIF,EAAQlpK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAQjF,OAPAd,OAAOgnB,eAAegjJ,EAAO,UAAW,CACtC9iJ,IAAK,WAEH,OADAlY,KAAKq3J,oBAAqB,GACnB,CACT,EACAp/I,YAAY,IAEP+iJ,CACT,6BCVA,SAASU,EAAQpmI,EAAQqmI,GAAkB,IAAI31H,EAAOh1C,OAAOg1C,KAAK1Q,GAAS,GAAItkC,OAAOm4J,sBAAuB,CAAE,IAAIyS,EAAU5qK,OAAOm4J,sBAAsB7zH,GAASqmI,IAAmBC,EAAUA,EAAQtvI,QAAO,SAAUhE,GAAO,OAAOt3B,OAAO0nB,yBAAyB4c,EAAQhN,GAAKrQ,UAAY,KAAK+tB,EAAKxwC,KAAK0mB,MAAM8pB,EAAM41H,EAAU,CAAE,OAAO51H,CAAM,CAIpV,SAAS+vH,EAAgBn4I,EAAKrF,EAAK3f,GAAiK,OAApJ2f,KAAOqF,EAAO5sB,OAAOgnB,eAAe4F,EAAKrF,EAAK,CAAE3f,MAAOA,EAAOqf,YAAY,EAAMyQ,cAAc,EAAMD,UAAU,IAAkB7K,EAAIrF,GAAO3f,EAAgBglB,CAAK,CAThN5sB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQ07J,qBAAkB,EAuB1B17J,EAAQ07J,gBAfc,WAEpB,OANF,SAAuB99I,GAAU,IAAK,IAAI/iB,EAAI,EAAGA,EAAIzD,UAAU3B,OAAQoF,IAAK,CAAE,IAAImG,EAAS,MAAQ5J,UAAUyD,GAAKzD,UAAUyD,GAAK,CAAC,EAAGA,EAAI,EAAImmK,EAAQ1qK,OAAO0K,IAAS,GAAI+hB,SAAQ,SAAUlF,GAAOw9I,EAAgBz9I,EAAQC,EAAK7c,EAAO6c,GAAO,IAAKvnB,OAAO6qK,0BAA4B7qK,OAAOstG,iBAAiBhmF,EAAQtnB,OAAO6qK,0BAA0BngK,IAAWggK,EAAQ1qK,OAAO0K,IAAS+hB,SAAQ,SAAUlF,GAAOvnB,OAAOgnB,eAAeM,EAAQC,EAAKvnB,OAAO0nB,yBAAyBhd,EAAQ6c,GAAO,GAAI,CAAE,OAAOD,CAAQ,CAMhfwjJ,CAAc,CACnB3iI,QAAS,KACT7gB,OAAQ,KACRpF,MAAO,GACPwkJ,eAAgB,EAChBp0C,cAAe,EACfC,sBAAsB,EACtBC,sBAAsB,EACtBC,8BAA8B,EAC9BC,6BAA6B,GAVnB5xH,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAYnF,6BCnBA,SAAS4pK,EAAQpmI,EAAQqmI,GAAkB,IAAI31H,EAAOh1C,OAAOg1C,KAAK1Q,GAAS,GAAItkC,OAAOm4J,sBAAuB,CAAE,IAAIyS,EAAU5qK,OAAOm4J,sBAAsB7zH,GAASqmI,IAAmBC,EAAUA,EAAQtvI,QAAO,SAAUhE,GAAO,OAAOt3B,OAAO0nB,yBAAyB4c,EAAQhN,GAAKrQ,UAAY,KAAK+tB,EAAKxwC,KAAK0mB,MAAM8pB,EAAM41H,EAAU,CAAE,OAAO51H,CAAM,CAIpV,SAAS+vH,EAAgBn4I,EAAKrF,EAAK3f,GAAiK,OAApJ2f,KAAOqF,EAAO5sB,OAAOgnB,eAAe4F,EAAKrF,EAAK,CAAE3f,MAAOA,EAAOqf,YAAY,EAAMyQ,cAAc,EAAMD,UAAU,IAAkB7K,EAAIrF,GAAO3f,EAAgBglB,CAAK,CAThN5sB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQy7J,qBAAkB,EAoB1Bz7J,EAAQy7J,gBAZc,WAEpB,OANF,SAAuB79I,GAAU,IAAK,IAAI/iB,EAAI,EAAGA,EAAIzD,UAAU3B,OAAQoF,IAAK,CAAE,IAAImG,EAAS,MAAQ5J,UAAUyD,GAAKzD,UAAUyD,GAAK,CAAC,EAAGA,EAAI,EAAImmK,EAAQ1qK,OAAO0K,IAAS,GAAI+hB,SAAQ,SAAUlF,GAAOw9I,EAAgBz9I,EAAQC,EAAK7c,EAAO6c,GAAO,IAAKvnB,OAAO6qK,0BAA4B7qK,OAAOstG,iBAAiBhmF,EAAQtnB,OAAO6qK,0BAA0BngK,IAAWggK,EAAQ1qK,OAAO0K,IAAS+hB,SAAQ,SAAUlF,GAAOvnB,OAAOgnB,eAAeM,EAAQC,EAAKvnB,OAAO0nB,yBAAyBhd,EAAQ6c,GAAO,GAAI,CAAE,OAAOD,CAAQ,CAMhfwjJ,CAAc,CACnB9gK,EAAG,EACHsR,EAAG,EACH3S,MAAO,EACPu+J,WAAW,EACXiC,OAAQ,GACRC,OAAQ,IAPItoK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAAC,EASrF,6BCrBAd,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQ68J,WAER,WAGE,GAFyBzlK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,IAAmBA,UAAU,GAGtF,MAAO,CACLy3I,SAAS,GAIb,MAAO,CAAC,CACV,+BCfAv4I,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAGT,IAAImjK,EAAsBtsK,EAAQ,MAElCuB,OAAOg1C,KAAK+1H,GAAqBt+I,SAAQ,SAAUlF,GACrC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASwjJ,EAAoBxjJ,IAC3DvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAO6jJ,EAAoBxjJ,EAC7B,IAEJ,IAEA,IAAIyjJ,EAA2BvsK,EAAQ,MAEvCuB,OAAOg1C,KAAKg2H,GAA0Bv+I,SAAQ,SAAUlF,GAC1C,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASyjJ,EAAyBzjJ,IAChEvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAO8jJ,EAAyBzjJ,EAClC,IAEJ,IAEA,IAAIkiJ,EAAqBhrK,EAAQ,MAEjCuB,OAAOg1C,KAAKy0H,GAAoBh9I,SAAQ,SAAUlF,GACpC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASkiJ,EAAmBliJ,IAC1DvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOuiJ,EAAmBliJ,EAC5B,IAEJ,IAEA,IAAI0jJ,EAA2BxsK,EAAQ,MAEvCuB,OAAOg1C,KAAKi2H,GAA0Bx+I,SAAQ,SAAUlF,GAC1C,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS0jJ,EAAyB1jJ,IAChEvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAO+jJ,EAAyB1jJ,EAClC,IAEJ,IAEA,IAAI2jJ,EAAqBzsK,EAAQ,MAEjCuB,OAAOg1C,KAAKk2H,GAAoBz+I,SAAQ,SAAUlF,GACpC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS2jJ,EAAmB3jJ,IAC1DvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOgkJ,EAAmB3jJ,EAC5B,IAEJ,IAEA,IAAI4jJ,EAA4B1sK,EAAQ,MAExCuB,OAAOg1C,KAAKm2H,GAA2B1+I,SAAQ,SAAUlF,GAC3C,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS4jJ,EAA0B5jJ,IACjEvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOikJ,EAA0B5jJ,EACnC,IAEJ,IAEA,IAAImiJ,EAAqBjrK,EAAQ,MAEjCuB,OAAOg1C,KAAK00H,GAAoBj9I,SAAQ,SAAUlF,GACpC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASmiJ,EAAmBniJ,IAC1DvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOwiJ,EAAmBniJ,EAC5B,IAEJ,IAEA,IAAI6jJ,EAAgC3sK,EAAQ,MAE5CuB,OAAOg1C,KAAKo2H,GAA+B3+I,SAAQ,SAAUlF,GAC/C,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS6jJ,EAA8B7jJ,IACrEvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOkkJ,EAA8B7jJ,EACvC,IAEJ,IAEA,IAAI8jJ,EAA2B5sK,EAAQ,MAEvCuB,OAAOg1C,KAAKq2H,GAA0B5+I,SAAQ,SAAUlF,GAC1C,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS8jJ,EAAyB9jJ,IAChEvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOmkJ,EAAyB9jJ,EAClC,IAEJ,IAEA,IAAI+jJ,EAA+B7sK,EAAQ,MAE3CuB,OAAOg1C,KAAKs2H,GAA8B7+I,SAAQ,SAAUlF,GAC9C,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS+jJ,EAA6B/jJ,IACpEvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOokJ,EAA6B/jJ,EACtC,IAEJ,IAEA,IAAImhJ,EAAUjqK,EAAQ,MAEtBuB,OAAOg1C,KAAK0zH,GAASj8I,SAAQ,SAAUlF,GACzB,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASmhJ,EAAQnhJ,IAC/CvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOwhJ,EAAQnhJ,EACjB,IAEJ,IAEA,IAAI0iJ,EAAiBxrK,EAAQ,MAE7BuB,OAAOg1C,KAAKi1H,GAAgBx9I,SAAQ,SAAUlF,GAChC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS0iJ,EAAe1iJ,IACtDvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAO+iJ,EAAe1iJ,EACxB,IAEJ,IAEA,IAAIgkJ,EAAmB9sK,EAAQ,MAE/BuB,OAAOg1C,KAAKu2H,GAAkB9+I,SAAQ,SAAUlF,GAClC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASgkJ,EAAiBhkJ,IACxDvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOqkJ,EAAiBhkJ,EAC1B,IAEJ,IAEA,IAAIikJ,EAAmB/sK,EAAQ,MAE/BuB,OAAOg1C,KAAKw2H,GAAkB/+I,SAAQ,SAAUlF,GAClC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASikJ,EAAiBjkJ,IACxDvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOskJ,EAAiBjkJ,EAC1B,IAEJ,IAEA,IAAIkkJ,EAAchtK,EAAQ,MAE1BuB,OAAOg1C,KAAKy2H,GAAah/I,SAAQ,SAAUlF,GAC7B,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASkkJ,EAAYlkJ,IACnDvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOukJ,EAAYlkJ,EACrB,IAEJ,IAEA,IAAIgiJ,EAAoB9qK,EAAQ,MAEhCuB,OAAOg1C,KAAKu0H,GAAmB98I,SAAQ,SAAUlF,GACnC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASgiJ,EAAkBhiJ,IACzDvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOqiJ,EAAkBhiJ,EAC3B,IAEJ,IAEA,IAAImkJ,EAAiBjtK,EAAQ,MAE7BuB,OAAOg1C,KAAK02H,GAAgBj/I,SAAQ,SAAUlF,GAChC,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAASmkJ,EAAenkJ,IACtDvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOwkJ,EAAenkJ,EACxB,IAEJ,IAEA,IAAI8hJ,EAAe5qK,EAAQ,MAE3BuB,OAAOg1C,KAAKq0H,GAAc58I,SAAQ,SAAUlF,GAC9B,YAARA,GAA6B,eAARA,IACrBA,KAAO7d,GAAWA,EAAQ6d,KAAS8hJ,EAAa9hJ,IACpDvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAClCN,YAAY,EACZC,IAAK,WACH,OAAOmiJ,EAAa9hJ,EACtB,IAEJ,iCC5OAvnB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQ8/J,iBAYR,SAA0BtB,GACxB,IAAImC,EAAOvpK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK4jK,EAAOsD,KAAKvZ,EACvFiY,EAAiB5lK,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAEzF,GAAI4lK,EAAgB,CAClB,IAAIiF,GAAa,EAAIR,EAA0BvB,0BAA0B1B,GAErE0D,GAAa,EAAIZ,EAAyBzC,yBAAyBoD,EAAYjF,GAEnF,OAAO,EAAIgC,EAAQ0B,sBAAsBC,EAAMuB,EACjD,CAEA,IAAIztI,GAAY,EAAI4sI,EAAoB9C,oBAAoBC,GAC5D,OAAO,EAAIQ,EAAQ0B,sBAAsBC,EAAMlsI,EACjD,EAxBA,IAAI4sI,EAAsBtsK,EAAQ,MAE9B0sK,EAA4B1sK,EAAQ,MAEpCusK,EAA2BvsK,EAAQ,MAEnCiqK,EAAUjqK,EAAQ,MAElBimK,EAASjmK,EAAQ,+BCbrBuB,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQo9J,cAER,SAAuBvzJ,GACrB,IAAIm9C,EAAQ5vD,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAEhF,GAAc,IAAV4vD,EACF,OAAOn9C,EAGT,IAAIvJ,EAAIuJ,EAASvJ,EACbsR,EAAI/H,EAAS+H,EACbuwJ,EAAiB3qK,KAAKqb,GAAK,IAAMm0C,EACjCo7G,EAAW9hK,EAAI9I,KAAKob,IAAIuvJ,GAAkBvwJ,EAAIpa,KAAKub,IAAIovJ,GACvDE,EAAWzwJ,EAAIpa,KAAKob,IAAIuvJ,GAAkB7hK,EAAI9I,KAAKub,IAAIovJ,GAC3D,MAAO,CACL7hK,EAAG8hK,EACHxwJ,EAAGywJ,EAEP,6BCrBA/rK,OAAOgnB,eAAetd,EAAS,aAAc,CAC3C9B,OAAO,IAET8B,EAAQ4/J,YAER,SAAqBpB,EAAOtgK,GACfsgK,EAAMA,EAAM/oK,OAAS,KAEnByI,GACXsgK,EAAM1jK,KAAKoD,GAGb,OAAOsgK,CACT,yBCCA,IAEI8D,EAAU,WAAY,EA2C1BpiK,EAAOF,QAAUsiK,4BC7DjB,OAOC,WACA,aAEA,IAAIC,EAAS,CAAC,EAAEplK,eAEhB,SAAS8xJ,IAGR,IAFA,IAAIuT,EAAU,GAEL3nK,EAAI,EAAGA,EAAIzD,UAAU3B,OAAQoF,IAAK,CAC1C,IAAI2pB,EAAMptB,UAAUyD,GAChB2pB,IACHg+I,EAAUC,EAAYD,EAASE,EAAWl+I,IAE5C,CAEA,OAAOg+I,CACR,CAEA,SAASE,EAAYl+I,GACpB,GAAmB,kBAARA,GAAmC,kBAARA,EACrC,OAAOA,EAGR,GAAmB,kBAARA,EACV,MAAO,GAGR,GAAInpB,MAAMC,QAAQkpB,GACjB,OAAOyqI,EAAWztI,MAAM,KAAMgD,GAG/B,GAAIA,EAAIhlB,WAAalJ,OAAOE,UAAUgJ,WAAaglB,EAAIhlB,SAASA,WAAW4qB,SAAS,iBACnF,OAAO5F,EAAIhlB,WAGZ,IAAIgjK,EAAU,GAEd,IAAK,IAAI3kJ,KAAO2G,EACX+9I,EAAOnlK,KAAKonB,EAAK3G,IAAQ2G,EAAI3G,KAChC2kJ,EAAUC,EAAYD,EAAS3kJ,IAIjC,OAAO2kJ,CACR,CAEA,SAASC,EAAavkK,EAAOykK,GAC5B,OAAKA,EAIDzkK,EACIA,EAAQ,IAAMykK,EAGfzkK,EAAQykK,EAPPzkK,CAQT,CAEqCgC,EAAOF,SAC3CivJ,EAAW5vI,QAAU4vI,EACrB/uJ,EAAOF,QAAUivJ,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIF,CArEA,gCCQD,SAAS2T,EAAQz5J,EAAG9C,EAAKE,GACvB,OAAOF,GAAO8C,GAAKA,GAAK5C,CAC1B,CAMA,SAASs8J,EAAat2J,GACpB,QAAUlV,IAANkV,EAAiB,MAAO,CAAC,EAC7B,GAAIA,IAAMjW,OAAOiW,GAAI,OAAOA,EAC5B,MAAMpX,UAAU,2CAClB,qDA+HA,SAAS2tK,EAAOC,GAEdz9J,KAAKy9J,OAAS,GAAG1jK,MAAMjC,KAAK2lK,EAC9B,CAEAD,EAAOtsK,UAAY,CAIjBwsK,YAAa,WACX,OAAQ19J,KAAKy9J,OAAOttK,MACtB,EAUCuxB,KAAM,WACL,OAAK1hB,KAAKy9J,OAAOttK,OAET6P,KAAKy9J,OAAO/mK,SAjCA,CAkCrB,EASDinK,QAAS,SAASC,GAChB,GAAI7nK,MAAMC,QAAQ4nK,GAEhB,IADA,IAAIH,EAAsCG,EACnCH,EAAOttK,QACZ6P,KAAKy9J,OAAOnpG,QAAQmpG,EAAO1yG,YAE7B/qD,KAAKy9J,OAAOnpG,QAAQspG,EAExB,EASApoK,KAAM,SAASooK,GACb,GAAI7nK,MAAMC,QAAQ4nK,GAEhB,IADA,IAAIH,EAAsCG,EACnCH,EAAOttK,QACZ6P,KAAKy9J,OAAOjoK,KAAKioK,EAAO/mK,cAE1BsJ,KAAKy9J,OAAOjoK,KAAKooK,EAErB,GAUF,IAAIC,GAAY,EAOhB,SAASC,EAAahkJ,EAAOikJ,GAC3B,GAAIjkJ,EACF,MAAMjqB,UAAU,iBAClB,OAAOkuK,GAAkB,KAC3B,CA8Bc,IAAIC,EAAmB,QAUrC,SAASnkJ,EAAYF,EAAUqR,GAC7B,KAAMhrB,gBAAgB6Z,GACpB,OAAO,IAAIA,EAAYF,EAAUqR,GAGnC,IADArR,OAAwB5nB,IAAb4nB,EAAyBvf,OAAOuf,GAAU+G,cAAgBs9I,KACpDA,EACf,MAAM,IAAIrsK,MAAM,mDAElBq5B,EAAUuyI,EAAavyI,GAGvBhrB,KAAKi+J,YAAa,EAElBj+J,KAAKk+J,UAAW,EAEhBl+J,KAAKm+J,SAAW,KAEhBn+J,KAAKo+J,OAAShlK,QAAQ4xB,EAAe,OAErChrB,KAAKq+J,WAAajlK,QAAQ4xB,EAAmB,WAE7Ch6B,OAAOgnB,eAAehY,KAAM,WAAY,CAACpH,MAAO,UAChD5H,OAAOgnB,eAAehY,KAAM,QAAS,CAACpH,MAAOoH,KAAKo+J,SAClDptK,OAAOgnB,eAAehY,KAAM,YAAa,CAACpH,MAAOoH,KAAKq+J,YACxD,CA4FA,SAASC,EAAY3kJ,EAAUqR,GAC7B,KAAMhrB,gBAAgBs+J,GACpB,OAAO,IAAIA,EAAY3kJ,EAAUqR,GAEnC,IADArR,OAAwB5nB,IAAb4nB,EAAyBvf,OAAOuf,GAAU+G,cAAgBs9I,KACpDA,EACf,MAAM,IAAIrsK,MAAM,mDAElBq5B,EAAUuyI,EAAavyI,GAGvBhrB,KAAKi+J,YAAa,EAElBj+J,KAAKu+J,SAAW,KAEhBv+J,KAAKi0G,SAAW,CAACn6F,MAAO1gB,QAAQ4xB,EAAe,QAE/Ch6B,OAAOgnB,eAAehY,KAAM,WAAY,CAACpH,MAAO,SAClD,CA2DA,SAAS4lK,EAAYxzI,GACnB,IAAIlR,EAAQkR,EAAQlR,MAMM2kJ,EAAkB,EAClBC,EAAkB,EAClBC,EAAoB,EACpBC,EAAsB,IACtBC,EAAsB,IAShD7+J,KAAKuwB,QAAU,SAASuuI,EAAQC,GAG9B,IAxVoB,IAwVhBA,GAAgD,IAAtBJ,EAE5B,OADAA,EAAoB,EACbb,EAAahkJ,GAItB,IA9VoB,IA8VhBilJ,EACF,OAAOlB,EAGT,GAA0B,IAAtBc,EAAyB,CAG3B,GAAIrB,EAAQyB,EAAM,EAAM,KAEtB,OAAOA,EAIT,GAAIzB,EAAQyB,EAAM,IAAM,KAGtBJ,EAAoB,EACpBF,EAAkBM,EAAO,SAItB,GAAIzB,EAAQyB,EAAM,IAAM,KAEd,MAATA,IACFH,EAAsB,KAEX,MAATG,IACFF,EAAsB,KAGxBF,EAAoB,EACpBF,EAAkBM,EAAO,QAItB,KAAIzB,EAAQyB,EAAM,IAAM,KAgB3B,OAAOjB,EAAahkJ,GAdP,MAATilJ,IACFH,EAAsB,KAEX,MAATG,IACFF,EAAsB,KAGxBF,EAAoB,EACpBF,EAAkBM,EAAO,GAO3B,CAMA,OADAN,IAAsC,EAAIE,EACnC,IACT,CAIA,IAAKrB,EAAQyB,EAAMH,EAAqBC,GAatC,OARAJ,EAAkBE,EAAoBD,EAAkB,EACxDE,EAAsB,IACtBC,EAAsB,IAGtBC,EAAOnB,QAAQoB,GAGRjB,EAAahkJ,GAgBtB,GAXA8kJ,EAAsB,IACtBC,EAAsB,IAMtBJ,GAAoBM,EAAO,KAAU,GAAKJ,GAD1CD,GAAmB,IAKfA,IAAoBC,EACtB,OAAO,KAGT,IAAIK,EAAaP,EAOjB,OAHAA,EAAkBE,EAAoBD,EAAkB,EAGjDM,CACT,CACF,CAOA,SAASC,EAAYj0I,GACPA,EAAQlR,MAMpB9Z,KAAKuwB,QAAU,SAASuuI,EAAQE,GAE9B,IAvdoB,IAudhBA,EACF,OAAOnB,EAIT,GAAIP,EAAQ0B,EAAY,EAAQ,KAC9B,OAAOA,EAGT,IAAI3pK,EAAOzE,EAEP0sK,EAAQ0B,EAAY,IAAQ,OAC9B3pK,EAAQ,EACRzE,EAAS,KAGF0sK,EAAQ0B,EAAY,KAAQ,QACnC3pK,EAAQ,EACRzE,EAAS,KAGF0sK,EAAQ0B,EAAY,MAAS,WACpC3pK,EAAQ,EACRzE,EAAS,KAQX,IAHA,IAAIs0B,EAAQ,EAAE85I,GAAe,EAAI3pK,GAAUzE,GAGpCyE,EAAQ,GAAG,CAGhB,IAAI6pK,EAAOF,GAAe,GAAK3pK,EAAQ,GAGvC6vB,EAAM1vB,KAAK,IAAe,GAAP0pK,GAGnB7pK,GAAS,CACX,CAGA,OAAO6vB,CACT,CACF,CA1WArL,EAAY3oB,UAAY,CAMtBc,OAAQ,SAAgB+kB,EAAOiU,GAC7B,IAAI9F,EAEFA,EADmB,kBAAVnO,GAAsBA,aAAiBwI,YACxC,IAAI3vB,WAAWmnB,GACG,kBAAVA,GAAsB,WAAYA,GACzCA,EAAM9mB,kBAAkBsvB,YACzB,IAAI3vB,WAAWmnB,EAAM9mB,OACN8mB,EAAM7mB,WACN6mB,EAAM/Z,YAErB,IAAIpN,WAAW,GAGzBo7B,EAAUuyI,EAAavyI,GAElBhrB,KAAKi+J,aACRj+J,KAAKm+J,SAAW,IAAIK,EAAY,CAAC1kJ,MAAO9Z,KAAKo+J,SAC7Cp+J,KAAKk+J,UAAW,GAElBl+J,KAAKi+J,WAAa7kK,QAAQ4xB,EAAgB,QAS1C,IAPA,IAKIjS,EALAomJ,EAAe,IAAI3B,EAAOt4I,GAE1Bk6I,EAAc,IAKVD,EAAazB,gBACnB3kJ,EAAS/Y,KAAKm+J,SAAS5tI,QAAQ4uI,EAAcA,EAAaz9I,WAC3Cm8I,GAEA,OAAX9kJ,IAEAhjB,MAAMC,QAAQ+iB,GAChBqmJ,EAAY5pK,KAAK0mB,MAAMkjJ,EAA0CrmJ,GAEjEqmJ,EAAY5pK,KAAKujB,IAErB,IAAK/Y,KAAKi+J,WAAY,CACpB,EAAG,CAED,IADAllJ,EAAS/Y,KAAKm+J,SAAS5tI,QAAQ4uI,EAAcA,EAAaz9I,WAC3Cm8I,EACb,MACa,OAAX9kJ,IAEAhjB,MAAMC,QAAQ+iB,GAChBqmJ,EAAY5pK,KAAK0mB,MAAMkjJ,EAA0CrmJ,GAEjEqmJ,EAAY5pK,KAAKujB,GACrB,QAAUomJ,EAAazB,eACvB19J,KAAKm+J,SAAW,IAClB,CAoBA,OAlBIiB,EAAYjvK,UAI4B,IAAtC,CAAC,SAASqO,QAAQwB,KAAK2Z,WACtB3Z,KAAKq+J,YAAer+J,KAAKk+J,WAEL,QAAnBkB,EAAY,IACdp/J,KAAKk+J,UAAW,EAChBkB,EAAY1oK,SAIZsJ,KAAKk+J,UAAW,IAjQ1B,SAA4BkB,GAE1B,IADA,IAAIhyJ,EAAI,GACC7X,EAAI,EAAGA,EAAI6pK,EAAYjvK,SAAUoF,EAAG,CAC3C,IAAIy0E,EAAKo1F,EAAY7pK,GACjBy0E,GAAM,MACR58D,GAAKhT,OAAOkpB,aAAa0mD,IAEzBA,GAAM,MACN58D,GAAKhT,OAAOkpB,aAA0B,OAAZ0mD,GAAM,IACQ,OAAT,KAALA,IAE9B,CACA,OAAO58D,CACT,CAyPWiyJ,CAAmBD,EAC5B,GA8BFd,EAAYptK,UAAY,CAMtBkB,OAAQ,SAAgBktK,EAAYt0I,GAClCs0I,EAAaA,EAAallK,OAAOklK,GAAc,GAC/Ct0I,EAAUuyI,EAAavyI,GAKlBhrB,KAAKi+J,aACRj+J,KAAKu+J,SAAW,IAAIU,EAAYj/J,KAAKi0G,WACvCj0G,KAAKi+J,WAAa7kK,QAAQ4xB,EAAgB,QAM1C,IAJA,IAGIjS,EAHAmM,EAAQ,GACRi6I,EAAe,IAAI3B,EA1Y3B,SAA4B1gK,GAgB1B,IAZA,IAAIsQ,EAAIhT,OAAO0C,GAGXqR,EAAIf,EAAEjd,OAGNoF,EAAI,EAGJsiB,EAAI,GAGDtiB,EAAI4Y,GAAG,CAGZ,IAAI1N,EAAI2M,EAAEjS,WAAW5F,GAKrB,GAAIkL,EAAI,OAAUA,EAAI,MAEpBoX,EAAEriB,KAAKiL,QAIJ,GAAI,OAAUA,GAAKA,GAAK,MAE3BoX,EAAEriB,KAAK,YAIJ,GAAI,OAAUiL,GAAKA,GAAK,MAG3B,GAAIlL,IAAM4Y,EAAI,EACZ0J,EAAEriB,KAAK,WAGJ,CAEH,IAAIijB,EAAI3b,EAAO3B,WAAW5F,EAAI,GAG9B,GAAI,OAAUkjB,GAAKA,GAAK,MAAQ,CAE9B,IAAI5U,EAAQ,KAAJpD,EAGJ9Q,EAAQ,KAAJ8oB,EAIRZ,EAAEriB,KAAK,OAAWqO,GAAK,IAAMlU,GAG7B4F,GAAK,CACP,MAKEsiB,EAAEriB,KAAK,MAEX,CAIFD,GAAK,CACP,CAGA,OAAOsiB,CACT,CA6TkC0nJ,CAAmBD,KAGzCH,EAAazB,gBACnB3kJ,EAAS/Y,KAAKu+J,SAAShuI,QAAQ4uI,EAAcA,EAAaz9I,WAC3Cm8I,GAEX9nK,MAAMC,QAAQ+iB,GAChBmM,EAAM1vB,KAAK0mB,MAAMgJ,EAAoCnM,GAErDmM,EAAM1vB,KAAKujB,GAEf,IAAK/Y,KAAKi+J,WAAY,CACpB,MACEllJ,EAAS/Y,KAAKu+J,SAAShuI,QAAQ4uI,EAAcA,EAAaz9I,WAC3Cm8I,GAEX9nK,MAAMC,QAAQ+iB,GAChBmM,EAAM1vB,KAAK0mB,MAAMgJ,EAAoCnM,GAErDmM,EAAM1vB,KAAKujB,GAEf/Y,KAAKu+J,SAAW,IAClB,CACA,OAAO,IAAI3uK,WAAWs1B,EACxB,KCncEs6I,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,yBAAyBE,GAC5C,QAAqB3tK,IAAjB4tK,EACH,OAAOA,EAAajlK,QAGrB,IAAIE,EAAS4kK,yBAAyBE,GAAY,CACjDj0I,GAAIi0I,EACJ7jG,QAAQ,EACRnhE,QAAS,CAAC,GAUX,OANAklK,oBAAoBF,GAAU5nK,KAAK8C,EAAOF,QAASE,EAAQA,EAAOF,QAAS+kK,qBAG3E7kK,EAAOihE,QAAS,EAGTjhE,EAAOF,OACf,CAGA+kK,oBAAoBrxJ,EAAIwxJ,oBC5BxBH,oBAAoBI,KAAO,CAAC,ECC5BJ,oBAAoBtxJ,EAAKvT,IACxB,IAAIklK,EAASllK,GAAUA,EAAOke,WAC7B,IAAOle,EAAiB,QACxB,IAAM,EAEP,OADA6kK,oBAAoBhnJ,EAAEqnJ,EAAQ,CAAEj8J,EAAGi8J,IAC5BA,CAAM,QCNd,IACIC,EADAC,EAAWhvK,OAAOivK,eAAkBriJ,GAAS5sB,OAAOivK,eAAeriJ,GAASA,GAASA,EAAa,UAQtG6hJ,oBAAoB96J,EAAI,SAAS/L,EAAOuY,GAEvC,GADU,EAAPA,IAAUvY,EAAQoH,KAAKpH,IAChB,EAAPuY,EAAU,OAAOvY,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPuY,GAAavY,EAAMkgB,WAAY,OAAOlgB,EAC1C,GAAW,GAAPuY,GAAoC,oBAAfvY,EAAMi+G,KAAqB,OAAOj+G,CAC5D,CACA,IAAIsnK,EAAKlvK,OAAOC,OAAO,MACvBwuK,oBAAoB7+J,EAAEs/J,GACtB,IAAI/mG,EAAM,CAAC,EACX4mG,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAItoJ,EAAiB,EAAPvG,GAAYvY,EAAyB,iBAAX8e,KAAyBqoJ,EAAevhK,QAAQkZ,GAAUA,EAAUsoJ,EAAStoJ,GACxH1mB,OAAOmvK,oBAAoBzoJ,GAAS+F,SAASlF,GAAS4gD,EAAI5gD,GAAO,IAAO3f,EAAM2f,KAI/E,OAFA4gD,EAAa,QAAI,IAAM,EACvBsmG,oBAAoBhnJ,EAAEynJ,EAAI/mG,GACnB+mG,CACR,MCxBAT,oBAAoBhnJ,EAAI,CAAC/d,EAAS0lK,KACjC,IAAI,IAAI7nJ,KAAO6nJ,EACXX,oBAAoBx4J,EAAEm5J,EAAY7nJ,KAASknJ,oBAAoBx4J,EAAEvM,EAAS6d,IAC5EvnB,OAAOgnB,eAAetd,EAAS6d,EAAK,CAAEN,YAAY,EAAMC,IAAKkoJ,EAAW7nJ,IAE1E,ECNDknJ,oBAAoBh1I,EAAI,CAAC,EAGzBg1I,oBAAoBtpK,EAAKkqK,GACjB5tD,QAAQ6tD,IAAItvK,OAAOg1C,KAAKy5H,oBAAoBh1I,GAAG/0B,QAAO,CAAC6qK,EAAUhoJ,KACvEknJ,oBAAoBh1I,EAAElS,GAAK8nJ,EAASE,GAC7BA,IACL,KCNJd,oBAAoB5nJ,EAAKwoJ,GAEjB,aAAeA,EAAf,qBCFRZ,oBAAoBe,SAAYH,IAEf,ECHjBZ,oBAAoBltJ,EAAI,WACvB,GAA0B,kBAAfkuJ,WAAyB,OAAOA,WAC3C,IACC,OAAOzgK,MAAQ,IAAI0gK,SAAS,cAAb,EAChB,CAAE,MAAOvqK,GACR,GAAsB,kBAAXmK,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBm/J,oBAAoBx4J,EAAI,CAAC2W,EAAK2X,IAAUvkC,OAAOE,UAAU2G,eAAeC,KAAK8lB,EAAK2X,SCAlF,IAAIorI,EAAa,CAAC,EACdC,EAAoB,iBAExBnB,oBAAoB/yJ,EAAI,CAACswB,EAAK89E,EAAMviG,EAAK8nJ,KACxC,GAAGM,EAAW3jI,GAAQ2jI,EAAW3jI,GAAKxnC,KAAKslH,OAA3C,CACA,IAAI+lD,EAAQC,EACZ,QAAW/uK,IAARwmB,EAEF,IADA,IAAIuwC,EAAUj2B,SAAS2b,qBAAqB,UACpCj5C,EAAI,EAAGA,EAAIuzD,EAAQ34D,OAAQoF,IAAK,CACvC,IAAI6X,EAAI07C,EAAQvzD,GAChB,GAAG6X,EAAE2zJ,aAAa,QAAU/jI,GAAO5vB,EAAE2zJ,aAAa,iBAAmBH,EAAoBroJ,EAAK,CAAEsoJ,EAASzzJ,EAAG,KAAO,CACpH,CAEGyzJ,IACHC,GAAa,GACbD,EAAShuI,SAAS9B,cAAc,WAEzBiwI,QAAU,QACjBH,EAAOI,QAAU,IACbxB,oBAAoByB,IACvBL,EAAOvyH,aAAa,QAASmxH,oBAAoByB,IAElDL,EAAOvyH,aAAa,eAAgBsyH,EAAoBroJ,GAExDsoJ,EAAOxuK,IAAM2qC,GAEd2jI,EAAW3jI,GAAO,CAAC89E,GACnB,IAAIqmD,EAAmB,CAAClqJ,EAAM4qB,KAE7Bg/H,EAAOO,QAAUP,EAAOnuD,OAAS,KACjCsQ,aAAai+C,GACb,IAAII,EAAUV,EAAW3jI,GAIzB,UAHO2jI,EAAW3jI,GAClB6jI,EAAOxoG,YAAcwoG,EAAOxoG,WAAW0E,YAAY8jG,GACnDQ,GAAWA,EAAQ5jJ,SAAShC,GAAQA,EAAGomB,KACpC5qB,EAAM,OAAOA,EAAK4qB,EAAM,EAExBo/H,EAAUh2H,WAAWk2H,EAAiB5pK,KAAK,UAAMxF,EAAW,CAAEyrB,KAAM,UAAWlF,OAAQuoJ,IAAW,MACtGA,EAAOO,QAAUD,EAAiB5pK,KAAK,KAAMspK,EAAOO,SACpDP,EAAOnuD,OAASyuD,EAAiB5pK,KAAK,KAAMspK,EAAOnuD,QACnDouD,GAAcjuI,SAASyuI,KAAKl8H,YAAYy7H,EApCkB,CAoCX,MCvChDpB,oBAAoB7+J,EAAKlG,IACH,qBAAX+H,QAA0BA,OAAOymJ,aAC1Cl4J,OAAOgnB,eAAetd,EAAS+H,OAAOymJ,YAAa,CAAEtwJ,MAAO,WAE7D5H,OAAOgnB,eAAetd,EAAS,aAAc,CAAE9B,OAAO,GAAO,ECL9D6mK,oBAAoB8B,IAAO3mK,IAC1BA,EAAOglD,MAAQ,GACVhlD,EAAO4zF,WAAU5zF,EAAO4zF,SAAW,IACjC5zF,GCHR6kK,oBAAoB/xJ,EAAI,UCKxB,IAAI8zJ,EAAkB,CACrB,IAAK,GAGN/B,oBAAoBh1I,EAAE1vB,EAAI,CAACslK,EAASE,KAElC,IAAIkB,EAAqBhC,oBAAoBx4J,EAAEu6J,EAAiBnB,GAAWmB,EAAgBnB,QAAWtuK,EACtG,GAA0B,IAAvB0vK,EAGF,GAAGA,EACFlB,EAAS/qK,KAAKisK,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIjvD,SAAQ,CAAC24B,EAASu2B,IAAYF,EAAqBD,EAAgBnB,GAAW,CAACj1B,EAASu2B,KAC1GpB,EAAS/qK,KAAKisK,EAAmB,GAAKC,GAGtC,IAAI1kI,EAAMyiI,oBAAoB/xJ,EAAI+xJ,oBAAoB5nJ,EAAEwoJ,GAEpD1iJ,EAAQ,IAAIhsB,MAgBhB8tK,oBAAoB/yJ,EAAEswB,GAfF6E,IACnB,GAAG49H,oBAAoBx4J,EAAEu6J,EAAiBnB,KAEf,KAD1BoB,EAAqBD,EAAgBnB,MACRmB,EAAgBnB,QAAWtuK,GACrD0vK,GAAoB,CACtB,IAAIG,EAAY//H,IAAyB,SAAfA,EAAMrkB,KAAkB,UAAYqkB,EAAMrkB,MAChEqkJ,EAAUhgI,GAASA,EAAMvpB,QAAUupB,EAAMvpB,OAAOjmB,IACpDsrB,EAAM1D,QAAU,iBAAmBomJ,EAAU,cAAgBuB,EAAY,KAAOC,EAAU,IAC1FlkJ,EAAMpsB,KAAO,iBACbosB,EAAMH,KAAOokJ,EACbjkJ,EAAM2N,QAAUu2I,EAChBJ,EAAmB,GAAG9jJ,EACvB,CACD,GAEwC,SAAW0iJ,EAASA,EAE/D,CACD,EAcF,IAAIyB,EAAuB,CAACC,EAA4B7hJ,KACvD,IAKIw/I,EAAUW,EALV2B,EAAW9hJ,EAAK,GAChB+hJ,EAAc/hJ,EAAK,GACnBgiJ,EAAUhiJ,EAAK,GAGI3qB,EAAI,EAC3B,GAAGysK,EAASG,MAAM12I,GAAgC,IAAxB+1I,EAAgB/1I,KAAa,CACtD,IAAIi0I,KAAYuC,EACZxC,oBAAoBx4J,EAAEg7J,EAAavC,KACrCD,oBAAoBrxJ,EAAEsxJ,GAAYuC,EAAYvC,IAGhD,GAAGwC,EAAsBA,EAAQzC,oBAClC,CAEA,IADGsC,GAA4BA,EAA2B7hJ,GACrD3qB,EAAIysK,EAAS7xK,OAAQoF,IACzB8qK,EAAU2B,EAASzsK,GAChBkqK,oBAAoBx4J,EAAEu6J,EAAiBnB,IAAYmB,EAAgBnB,IACrEmB,EAAgBnB,GAAS,KAE1BmB,EAAgBnB,GAAW,CAC5B,EAIG+B,EAAqBx+J,KAAgC,0BAAIA,KAAgC,2BAAK,GAClGw+J,EAAmB3kJ,QAAQqkJ,EAAqBvqK,KAAK,KAAM,IAC3D6qK,EAAmB5sK,KAAOssK,EAAqBvqK,KAAK,KAAM6qK,EAAmB5sK,KAAK+B,KAAK6qK,20GCvF1E,IAmBA11J,EAAY,CACvBtR,KAAM,OACNinK,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,SAAU,WACVC,OAAQ,SACRC,MAAO,QACPC,MAAO,QACPC,SAAU,0BAGCp1J,EACL,CAAEyuD,IAAK,CAAC,UAAW,YAAa,cAD3B1xC,EAEH,CAAEjN,KAAM,CAAC,wBAFN/E,EAGL,CACJuoJ,QAAS,GACTzvK,KAAM,CAAC,SAAU,eACjBhB,SAAU,CACR,UACA,WACA,SACA,WACA,eACA,iBACA,cACA,gBACA,sBACA,gBACA,oBACA,eACA,iBAKO4f,EAAkBnf,OAAOg1C,KAAKt5B,GAAWqR,KAAI,SAAApZ,GAAQ,OAAA+H,EAAU/H,EAAA,IAE/DyJ,EAAgB,CAC3B20J,UAAW,YACX/B,QAAS,UACTgC,MAAO,YACPC,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,YAGC92J,EAAetb,OAAOg1C,KAAK53B,GAAe1Y,QAAO,SAACiP,EAAKxO,GAElE,OADAwO,EAAIyJ,EAAcjY,IAAQA,EACnBwO,CAAA,GACN,CAAC,GC9DEw5I,EAAuB,SAACx5I,EAAWxO,GACvC,IAAK,IAAIyK,EAAI+D,EAAUxU,OAAS,EAAGyQ,GAAK,EAAGA,GAAK,EAAG,CACjD,IAAMuN,EAAQxJ,EAAU/D,GAExB,GAAI5P,OAAOE,UAAU2G,eAAeC,KAAKqW,EAAOhY,GAC9C,OAAOgY,EAAMhY,EAAA,CAIjB,OAAO,MAGHoc,EAAwB,SAAA5N,GAC5B,IAAIxO,EAAiBgoJ,EAAqBx5I,EAAW+H,EAAUm2J,OACzDjiK,EAAoBu9I,EAAqBx5I,EAlB/B,iBAsBhB,GAHI5O,MAAMC,QAAQG,KAChBA,EAAiBA,EAAemI,KAAK,KAEnCsC,GAAqBzK,EAEvB,OAAOyK,EAAkBW,QAAQ,OAAO,kBAAMpL,CAAA,IAGhD,IAAMgY,EAAwBgwI,EAAqBx5I,EA/BpC,gBAiCf,OAAOxO,GAAkBgY,QAAA,CAAyB,EAG9Cxe,EAAyB,SAAAgV,GAC7B,OAAAw5I,EAAqBx5I,EAlCG,wBAkCiD,cAErEhP,EAA6B,SAACgP,EAASxO,GAC3C,OAAAA,EACGm2B,QAAO,SAAAn2B,GAAS,gBAAOA,EAAMwO,EAAA,IAC7BoZ,KAAI,SAAA5nB,GAAA,OAASA,EAAMwO,EAAA,IACnBjP,QAAO,SAACiP,EAAUxO,GAAkB,OAAA0N,EAAA,GAAAc,EAAaxO,EAAA,GAAY,CAAC,EAAD,EAE5Dgc,EAA0B,SAACxN,EAAmBxO,GAApB,OAC9BA,EACGm2B,QAAO,SAAA3nB,GAAA,gBAAgBA,EAAM+H,EAAUtR,KAAA,IACvC2iB,KAAI,SAAApZ,GAAS,OAAAA,EAAM+H,EAAUtR,KAAA,IAC7B0D,UACApJ,QAAO,SAACS,EAAkByK,GACzB,IAAKzK,EAAiBhG,OAGpB,IAFA,IAAMge,EAAOnd,OAAOg1C,KAAKplC,GAEhBrL,EAAI,EAAGA,EAAI4Y,EAAKhe,OAAQoF,GAAK,EAAG,CACvC,IACM0R,EADekH,EAAK5Y,GACiBmrB,cAE3C,IACwD,IAAtD/b,EAAkBnG,QAAQyI,IAC1BrG,EAAIqG,GAEJ,OAAO9Q,EAAiBskB,OAAO7Z,EAAA,CAKrC,OAAOzK,CAAA,GACN,KAKDkc,EAAuB,SAAC1N,EAASxO,EAAmByK,GAExD,IAAMuN,EAAmB,CAAC,EAE1B,OAAOvN,EACJ0rB,QAAO,SAAAn2B,GACN,QAAIJ,MAAMC,QAAQG,EAAMwO,WAAA,IAGbxO,EAAMwO,IAXHkf,SAAmC,mBAAjBA,QAAQ04C,MAAuB14C,QAAQ04C,KAYjE,WACS53D,EAA0D,0DAAOxO,EAC1EwO,GAAA,YAMPoZ,KAAI,SAAA5nB,GAAK,OAAIA,EAAMwO,EAAA,IACnB7F,UACApJ,QAAO,SAACiP,EAAc/D,GACrB,IAAMrL,EAAmB,CAAC,EAE1BqL,EACG0rB,QAAO,SAAA3nB,GAGN,IAFA,IAAI/D,EACEqG,EAAOjW,OAAOg1C,KAAKrhC,GAChBd,EAAI,EAAGA,EAAIoD,EAAK9W,OAAQ0T,GAAK,EAAG,CACvC,IAAMuJ,EAAenG,EAAKpD,GACpBpD,EAAwB2M,EAAasT,eAIa,IAAtDvqB,EAAkBqI,QAAQiC,IDpGjC,QCsGSG,GAC2C,cAA3C+D,EAAI/D,GAAqB8f,eDvGlC,QC0GSjgB,GAC6C,eAA7CkE,EAAIlE,GAAuBigB,gBAG7B9f,EAAsBH,IAIuB,IAA7CtK,EAAkBqI,QAAQ4O,IDtH1B,cCuHCA,GD1HH,YC2HIA,GDvHH,aCwHGA,IAEFxM,EAAsBwM,EAAA,CAI1B,IAAKxM,IAAwB+D,EAAI/D,GAC/B,OAAO,EAGT,IAAMiX,EAAQlT,EAAI/D,GAAqB8f,cAUvC,OARKvS,EAAiBvN,KACpBuN,EAAiBvN,GAAuB,CAAC,GAGtCrL,EAAiBqL,KACpBrL,EAAiBqL,GAAuB,CAAC,IAGtCuN,EAAiBvN,GAAqBiX,KACzCtiB,EAAiBqL,GAAqBiX,IAAA,GAAS,EAEhD,IAIF/Y,UACA2e,SAAQ,SAAAtnB,GAAG,OAAIwO,EAAanP,KAAKW,EAAA,IAIpC,IADA,IAAM8Q,EAAOjW,OAAOg1C,KAAKzwC,GAChB6X,EAAI,EAAGA,EAAInG,EAAK9W,OAAQid,GAAK,EAAG,CACvC,IAAM3M,EAAewG,EAAKmG,GACpByK,EACDhU,EAAA,GAAAsK,EAAiB1N,GACjBlL,EAAiBkL,IAGtB0N,EAAiB1N,GAAgBoX,CAAA,CAGnC,OAAOlT,CAAA,GACN,IACF7F,SAAA,EAGCi3G,EAA0B,SAACpxG,EAAWxO,GAC1C,GAAIJ,MAAMC,QAAQ2O,IAAcA,EAAUxU,OACxC,IAAK,IAAIyQ,EAAQ,EAAGA,EAAQ+D,EAAUxU,OAAQyQ,GAAS,EAErD,GADa+D,EAAU/D,GACdzK,GACP,OAAO,EAIb,OAAO,GAsCIi8F,EAAe,SAAAztF,GAC1B,OAAA5O,MAAMC,QAAQ2O,GAAiBA,EAAcrG,KAAK,IAAMqG,CAAA,EAe7C0jB,EAAc,SAAC1jB,EAAcxO,GACxC,OAAIJ,MAAMC,QAAQ2O,GACTA,EAAajP,QAClB,SAACiP,EAAK/D,GAMJ,OApBkB,SAAC+D,EAAOxO,GAEhC,IADA,IAAMyK,EAAO5P,OAAOg1C,KAAKrhC,GAChBwJ,EAAI,EAAGA,EAAIvN,EAAKzQ,OAAQge,GAAK,EAEpC,GAAIhY,EAAQyK,EAAKuN,KAAOhY,EAAQyK,EAAKuN,IAAI2W,SAASngB,EAAM/D,EAAKuN,KAC3D,OAAO,EAGX,OAAO,CACR,CATyB,CAeIvN,EAAczK,GAClCwO,EAAI42H,SAAS/lI,KAAKoL,GAElB+D,EAAAoV,QAAYvkB,KAAKoL,GAEZ+D,CAAA,GAET,CAAE42H,SAAU,GAAIxhH,QAAS,KAGtB,CAAEA,QAASpV,EAAA,EAGPyxG,EAAU,SAACzxG,EAAKxO,GAAQ,IAAAyK,EACnC,OAAAiD,EAAA,GACKc,IADL/D,EAAA,IAEGzK,QAAA,EAAMyK,GAAA,ECrPLo1G,EAAoB,CAACtpG,EAAUg2J,SAAUh2J,EAAUi2J,OAAQj2J,EAAUk2J,OAErEhhK,EAA0B,SAAC+C,EAAKxO,GACpC,gBADoCA,IAAAA,GAAA,IAAS,IACzCA,EACKiE,OAAOuK,GAGTvK,OAAOuK,GACXpD,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,WAGbvG,EAAoC,SAAA2J,GAAU,OAClD3T,OAAOg1C,KAAKrhC,GAAYjP,QAAO,SAACS,EAAKyK,GACnC,IAAMuN,OAAA,IAAcxJ,EAAW/D,GAA0BA,EAA5C,KAAoD+D,EAAW/D,GAA/D,OAA4EA,EACzF,OAAOzK,EAASA,EAAN,IAAagY,EAASA,CAAA,GAC/B,KAwCCujG,EAAuC,SAAC/sG,EAAYxO,GAAb,gBAAaA,IAAAA,EAAY,CAAC,GACrEnF,OAAOg1C,KAAKrhC,GAAYjP,QAAO,SAACS,EAAKyK,GAEnC,OADAzK,EAAIiY,EAAcxN,IAAQA,GAAO+D,EAAW/D,GACrCzK,CAAA,GACNA,EAAA,EAaC4E,EAA+B,SAAC5E,EAAMyK,GAAP,OACnCA,EAAKmd,KAAI,SAACnd,EAAKuN,GACb,IAAA5Y,EAAM0R,IAAA1R,EAAA,CACJgjB,IAAKpK,IFfqB,cEc5B5Y,GAmBA,OAdAvE,OAAOg1C,KAAKplC,GAAK6c,SAAQ,SAAA9Y,GACvB,IAAMxO,EAAkBiY,EAAczJ,IAAcA,EF1F5C,cE6FNxO,GFhGI,YEiGJA,EAGA8Q,EAAU0pH,wBAA0B,CAAEma,OADtBlqI,EAAI81G,WAAa91G,EAAIyiK,SAGrCp8J,EAAU9Q,GAAmByK,EAAI+D,EAAA,IAI9BA,EAAAA,cAAoBxO,EAAM8Q,EAAA,KAG/BwoG,EAAmB,SAACt5G,EAAMyK,EAAMuN,GACpC,OAAQhY,GACN,KAAKuW,EAAUm2J,MACb,MAAO,CACLS,YAAa,WACX,OAxC0Cn1J,EAwCMvN,EAAK2iK,iBArC3DhuK,EAAA,CAAAgjB,IAHyCpiB,EAwCCyK,EAAKy8E,QFzCnB,cEOxBp2E,EAAQyqG,EAAqCvjG,EAJnD5Y,GAMO,CAACoP,EAAAA,cAAoB+H,EAAUm2J,MAAO57J,EAAO9Q,IARhB,IAAOA,EAAOgY,EAElD5Y,EAIM0R,CAAA,EAmCA/M,SAAU,kBArFY,SAACyK,EAAMxO,EAAOyK,EAAYuN,GACtD,IAAM5Y,EAAkByF,EAAkC4F,GACpDqG,EAAiBmrF,EAAaj8F,GACpC,OAAOZ,EACC,IAAAoP,EAAA,mBAAmCpP,EADrB,IACwCqM,EACxDqF,EACAkH,GAHgB,KAIZxJ,EAJY,QAKdA,EALc,mBAKqB/C,EACrCqF,EACAkH,GAAA,KACIxJ,EARY,IAHM,CAqFgBxO,EAAMyK,EAAKy8E,MAAOz8E,EAAK2iK,gBAAiBp1J,EAAA,GAElF,IFzGI,iBE0GJ,IFzGI,iBE0GF,MAAO,CACLm1J,YAAa,WAAM,OAAA5xD,EAAqC9wG,EAAA,EACxD1G,SAAU,kBAAMc,EAAkC4F,EAAA,GAEtD,QACE,MAAO,CACL0iK,YAAa,kBAAMvoK,EAA6B5E,EAAMyK,EAAA,EACtD1G,SAAU,WAAM,OAlFK,SAACyK,EAAMxO,EAAMyK,GAAb,OAC3BzK,EAAKT,QAAO,SAACS,EAAKgY,GAChB,IAAM5Y,EAAgBvE,OAAOg1C,KAAK73B,GAC/Bme,QACC,SAAA3nB,GAAS,QF7CH,cE8CFA,GFjDA,YEiD2CA,EAAA,IAEhDjP,QAAO,SAACiP,EAAQxO,GACf,IAAMZ,OAAA,IACG4Y,EAAIhY,GACPA,EACGA,EAFP,KAEqByL,EAAwBuM,EAAIhY,GAAYyK,GAF7D,IAGF,OAAO+D,EAAYA,EAAN,IAAgBpP,EAASA,CAAA,GACrC,IAEC0R,EAAakH,EAAIuoG,WAAavoG,EAAIk1J,SAAW,GAE7Cx/J,GAAqD,IAArCmyG,EAAkBx3G,QAAQmG,GAEhD,OAAUxO,EAAO,IAAAwO,EAAP,mBAA0CpP,GAClDsO,EAA2B,SAAAoD,EAAe,KAAAtC,EAAA,OAE3C,IAtBwB,CAkFgBxO,EAAMyK,EAAMuN,EAAA,KAkCnDrK,EAAmB,SAAAa,GACvB,IACExO,EASEwO,EATF6+J,QACA5iK,EAQE+D,EARF8+J,eACAt1J,EAOExJ,EAPFvS,OACAmD,EAMEoP,EANF++J,eACAz8J,EAKEtC,EALFg/J,aACA9/J,EAIEc,EAJFi/J,UANFx2J,EAUIzI,EAHF04E,MAAA58E,OAAA,IAAQ2M,EAAA,GAAAA,EACRyK,EAEElT,EAFF4+J,gBAGIpzJ,EAAmCxL,EAAnCk/J,SAAUz1J,EAAyBzJ,EAAzBm/J,SAAUx3J,EAAe3H,EAAfo/J,WACtB5lB,EAAkB,CACpBmlB,YAAa,aACbppK,SAAU,iBAAM,KAElB,GANIyK,EADFq/J,kBAOqB,KAAAzxJ,EA9CE,SAAgD5N,GAAA,IAAnCxO,EAAmCwO,EAAnCk/J,SAAUjjK,EAAA+D,EAAAo/J,WAAY51J,EAAaxJ,EAAbvS,OACtDmD,EAAO8yB,EAAA1jB,EADem/J,SACOrrJ,GAC7BxR,EAAOohB,EAAYlyB,EAAUuX,GAC7B7J,EAASwkB,EAAYznB,EAAY6pB,GAkBvC,MAAO,CACLw5I,gBAhBsB,CACtBX,YAAa,oBAAA7oJ,OACR1f,EAA6B2R,EAAU+1J,KAAMltK,EAAKgmI,UAClDxgI,EAA6B2R,EAAU81J,KAAMv7J,EAAKs0H,UAClDxgI,EAA6B2R,EAAUi2J,OAAQ9+J,EAAO03H,UAAA,EAE3DrhI,SAAU,WAEL,OAAAu1G,EAAiB/iG,EAAU+1J,KAAMltK,EAAKgmI,SAAUptH,GAF3C,IAEsDshG,EAC5D/iG,EAAU81J,KACVv7J,EAAKs0H,SACLptH,GAAA,IACGshG,EAAiB/iG,EAAUi2J,OAAQ9+J,EAAO03H,SAAUptH,EAAA,GAK3D21J,SAAUvuK,EAAIwkB,QACd8pJ,SAAU58J,EAAI8S,QACdgqJ,WAAYlgK,EAAMkW,QAAA,CAzBK,CA+CmDpV,GAAvEw5I,EADkB5rI,EAClB0xJ,gBAAiB9zJ,EADCoC,EACDsxJ,SAAUz1J,EAAAmE,EAAAuxJ,SAAUx3J,EADnBiG,EACmBwxJ,UAAA,CAE1C,MAAO,CACLxoC,SAAU4iB,EACVt+I,KAAM4vG,EAAiB/iG,EAAUtR,KAAMjF,EAASgY,GAChDs1J,eAAgBh0D,EF3KZ,iBE2KmD7uG,EAAgBuN,GACvEu1J,eAAgBj0D,EF3KZ,iBE2KmDl6G,EAAgB4Y,GACvEumH,KAAMjlB,EAAiB/iG,EAAU81J,KAAMryJ,EAAUhC,GACjDwmH,KAAMllB,EAAiB/iG,EAAU+1J,KAAMr0J,EAAUD,GACjD+1J,SAAUz0D,EAAiB/iG,EAAUg2J,SAAUz7J,EAAckH,GAC7D0yJ,OAAQpxD,EAAiB/iG,EAAUi2J,OAAQr2J,EAAY6B,GACvDue,MAAO+iF,EAAiB/iG,EAAUk2J,MAAO/+J,EAAWsK,GACpDkvE,MAAOoyB,EAAiB/iG,EAAUm2J,MAAO,CAAExlF,MAAA58E,EAAO8iK,gBAAA1rJ,GAAmB1J,GAAA,EC9LnEyjG,EAAY,GAMGnlG,EAmBnB,SAAY9H,EAASxO,GAA6C,IAAAyK,EAAA,cAA7CzK,IAAAA,EAAgC,oBAAb08B,UAA0B,KAlBlEsxI,UAAY,GAkBsD,KAhBlEvrK,MAAQ,CACNwrK,UAAW,SAAAz/J,GACT/D,EAAK8jF,QAAQ2/E,OAAS1/J,CAAA,EAExB2/J,gBAAiB,CACfpsJ,IAAK,kBAAOtX,EAAKgnH,UAAYhW,EAAYhxG,EAAKujK,SAAA,EAC9Ct9J,IAAK,SAAAlC,IACF/D,EAAKgnH,UAAYhW,EAAYhxG,EAAKujK,WAAW3uK,KAAKmP,EAAA,EAErD4/J,OAAQ,SAAA5/J,GACN,IAAMxO,GAASyK,EAAKgnH,UAAYhW,EAAYhxG,EAAKujK,WAAW3lK,QAAQmG,IACnE/D,EAAKgnH,UAAYhW,EAAYhxG,EAAKujK,WAAW5pJ,OAAOpkB,EAAO,MAMhE6J,KAAK0kF,QAAU//E,EACf3E,KAAK4nH,UAAYzxH,EAEZA,IACHwO,EAAQ0/J,OAASvgK,EAAiB,CAChC0/J,QAAS,GACTC,eAAgB,CAAC,EACjBe,yBAAA,EACAd,eAAgB,CAAC,EACjBG,SAAU,GACVC,SAAU,GACVH,aAAc,GACdI,WAAY,GACZH,UAAW,GACXvmF,MAAO,GACPkmF,gBAAiB,CAAC,IAAD,ECrCZjtD,EAAU3xG,EAAAA,cAFF,CAAC,GAIT2N,EAAgB1R,IAAAA,MAAgB,CAC3CwjK,UAAWxjK,IAAAA,KACX0jK,gBAAiB1jK,IAAAA,MAAgB,CAC/BsX,IAAKtX,IAAAA,KACLiG,IAAKjG,IAAAA,KACL2jK,OAAQ3jK,IAAAA,SAIN49I,EAAgC,oBAAb3rH,SAEJljB,EAAA,SAAAxZ,GAgBnB,SAAYyK,EAAA+D,GAAO,IAAAwJ,EAAA,OACjBA,EAAAhY,EAAA2B,KAAA,KAAM6M,IAAN,MAEK8/J,WAAa,IAAIh4J,EAAW0B,EAAKse,MAAMi4D,QAAS9jF,EAASgnH,WAH7Cz5G,CAAA,QAAAf,EAAAxM,EAAAzK,GAAAyK,EAAA1P,UAMnB2iF,OAAA,WACE,OAAOlvE,EAAAA,cAAC2xG,EAAQo1C,SAAS,CAAA9yJ,MAAOoH,KAAKykK,WAAW7rK,OAAQoH,KAAKysB,MAAM+hE,SAAA,EAAA5tF,CAAA,CAvBlD,CAAiBzK,EAAAA,WAAjBwZ,EACZi4G,UAAY42B,EADA7uI,EAGZmkF,UAAY,CACjBpP,QAAS9jF,IAAAA,MAAgB,CACvByjK,OAAQzjK,IAAAA,UAEV4tF,SAAU5tF,IAAAA,KAAe8tG,YAPR/+F,EAUZmoG,aAAe,CACpBpzB,QAAS,CAAC,GAXO/0E,EAcZ6+G,YAAc,iBC9BvB,IAAMwyB,EAAa,SAACr8I,EAAMxO,GACxB,IAIIyK,EAJEuN,EAAc0kB,SAASyuI,MAAQzuI,SAAS6xI,cAAch4J,EAAU41J,MAChE/sK,EAAW4Y,EAAY+tD,iBAAoBv3D,EAAA,aAC3CsC,EAAU,GAAGlN,MAAMjC,KAAKvC,GACxBsO,EAAU,GA4ChB,OAzCI1N,GAAQA,EAAKhG,QACfgG,EAAKsnB,SAAQ,SAAAtnB,GACX,IAAMgY,EAAa0kB,SAAS9B,cAAcpsB,GAG1C,IAAK,IAAMpP,KAAaY,EAClBnF,OAAOE,UAAU2G,eAAeC,KAAK3B,EAAKZ,KLXxC,cKYAA,EACF4Y,EAAWuoG,UAAYvgH,EAAIugH,ULhB3B,YKiBSnhH,EACL4Y,EAAWw2J,WACbx2J,EAAWw2J,WAAWtB,QAAUltK,EAAIktK,QAEpCl1J,EAAWi3B,YAAYvS,SAASqrH,eAAe/nJ,EAAIktK,UAIrDl1J,EAAWmgC,aAAa/4C,OAAA,IADHY,EAAIZ,GAA6B,GAAKY,EAAIZ,KAMrE4Y,EAAWmgC,aL2Ce,UK3CgB,QAIxCrnC,EAAQk7J,MAAK,SAACx9J,EAAaxO,GAEzB,OADAyK,EAAgBzK,EACTgY,EAAWy2J,YAAYjgK,EAAA,IAGhCsC,EAAQsT,OAAO3Z,EAAe,GAE9BiD,EAAQrO,KAAK2Y,EAAA,IAKnBlH,EAAQwW,SAAQ,SAAA9Y,GAAO,OAAAA,EAAI0zD,WAAW0E,YAAYp4D,EAAA,IAClDd,EAAQ4Z,SAAQ,SAAA9Y,GAAO,OAAAwJ,EAAYi3B,YAAYzgC,EAAA,IAExC,CACLkgK,QAAA59J,EACA69J,QAAAjhK,EAAA,EAIEuO,EAAmB,SAACzN,EAASxO,GACjC,IAAMyK,EAAaiyB,SAAS2b,qBAAqB7pC,GAAS,GAE1D,GAAK/D,EAAL,CASA,IALA,IAAMuN,EAAwBvN,EAAWmgK,aLWX,WKVxBxrK,EAAmB4Y,EAAwBA,EAAsBva,MAAM,KAAO,GAC9EqT,EAAqB,GAAGwT,OAAOllB,GAC/BsO,EAAgB7S,OAAOg1C,KAAK7vC,GAEzBiX,EAAI,EAAGA,EAAIvJ,EAAc1T,OAAQid,GAAK,EAAG,CAChD,IAAM3M,EAAYoD,EAAcuJ,GAC1ByK,EAAQ1hB,EAAWsK,IAAc,GAEnCG,EAAWmgK,aAAatgK,KAAeoX,GACzCjX,EAAW0tC,aAAa7tC,EAAWoX,IAGQ,IAAzCtiB,EAAiBiJ,QAAQiC,IAC3BlL,EAAiBC,KAAKiL,GAGxB,IAAMiM,EAAczF,EAAmBzI,QAAQiC,IAC1B,IAAjBiM,GACFzF,EAAmBsT,OAAO7N,EAAa,GAI3C,IAAK,IAAIgB,EAAIzG,EAAmB9W,OAAS,EAAGud,GAAK,EAAGA,GAAK,EACvD9M,EAAW0nG,gBAAgBrhG,EAAmByG,IAG5CnY,EAAiBpF,SAAW8W,EAAmB9W,OACjDyQ,EAAW0nG,gBLjBiB,WKkBnB1nG,EAAWmgK,aLlBQ,aKkB2Bl9J,EAAcvF,KAAK,MAC1EsC,EAAW0tC,aLnBiB,UKmBczqC,EAAcvF,KAAK,QAY3D+zI,EAAmB,SAAC1tI,EAAUxO,GAClC,IACEyK,EAWE+D,EAXF6+J,QAEAr1J,EASExJ,EATF++J,eACAnuK,EAQEoP,EARFk/J,SACA58J,EAOEtC,EAPFm/J,SACAjgK,EAMEc,EANFg/J,aACAv2J,EAKEzI,EALFogK,oBACAtkK,EAIEkE,EAJFo/J,WACAlsJ,EAGElT,EAHFi/J,UACAl2J,EAEE/I,EAFF04E,MACA5yD,EACE9lB,EADF4+J,gBAEFnxJ,EAAiB1F,EAAU21J,KADvB19J,EAVF8+J,gBAYFrxJ,EAAiB1F,EAAU61J,KAAMp0J,GAvBf,SAACxJ,EAAOxO,QAAA,IACfwO,GAAyBkuB,SAASwqD,QAAU14E,IACrDkuB,SAASwqD,MAAQ+U,EAAaztF,IAGhCyN,EAAiB1F,EAAUm2J,MAAO1sK,EAAA,CALhB,CAyBNuX,EAAO+c,GAEnB,IAAMhS,EAAa,CACjB+qJ,QAASxiB,EAAWt0I,EAAUtR,KAAMwF,GACpCijK,SAAU7iB,EAAWt0I,EAAU81J,KAAMjtK,GACrCuuK,SAAU9iB,EAAWt0I,EAAU+1J,KAAMx7J,GACrC08J,aAAc3iB,EAAWt0I,EAAUg2J,SAAU7+J,GAC7CkgK,WAAY/iB,EAAWt0I,EAAUi2J,OAAQliK,GACzCmjK,UAAW5iB,EAAWt0I,EAAUk2J,MAAO/qJ,IAGnC1H,EAAY,CAAC,EACb/B,EAAc,CAAC,EAErBpd,OAAOg1C,KAAKvtB,GAAYgF,SAAQ,SAAA9Y,GAC9B,IAA6BxO,EAAAsiB,EAAW9T,GAAhC/D,EAARzK,EAAQ2uK,QAAS32J,EAAjBhY,EAAiB0uK,QAEbjkK,EAAQzQ,SACVggB,EAAUxL,GAAW/D,GAEnBuN,EAAQhe,SACVie,EAAYzJ,GAAW8T,EAAW9T,GAASkgK,QAAA,IAI3C1uK,GACFA,IAGFiX,EAAoBzI,EAAUwL,EAAW/B,EAAA,EAIvCU,EAAkB,KCrJDyI,EAOnB,SAAA5S,GAAA,SAAAxO,IAAA,QAAAA,EAAAyK,EAAA9O,UAAA3B,OAAAge,EAAA,IAAApY,MAAA6K,GAAArL,EAAA,EAAAA,EAAAqL,EAAArL,IAAA4Y,EAAA5Y,GAAAzD,UAAAyD,GAEA,OAFAY,EAAAwO,EAAA7M,KAAAokB,MAAAvX,EAAA,OAAA8V,OAAAtM,KAAA,MAAA62J,UAAA,EAEA7uK,CAAA,CAFAiX,EAAAjX,EAAAwO,GAEA,IAAA/D,EAAAzK,EAAAjF,UATsC,OAStC0P,EAAA83I,sBAAA,SAAsB/zI,GACpB,OAAQsC,IAAatC,EAAW3E,KAAKysB,MAAA,EAAA7rB,EAGvCu+G,mBAAA,WACEn/G,KAAKilK,YAAA,EAGPrkK,EAAA6+G,qBAAA,WAC8Bz/G,KAAKysB,MAAMi4D,QAA/B4/E,gBACQC,OAAOvkK,MACvBA,KAAKilK,YAAA,EAGPrkK,EAAAqkK,WAAA,WACE,IL0JuBtgK,EI3BOxO,EC/H9ByK,EAAuCZ,KAAKysB,MAAMi4D,QAAzBv2E,EAAAvN,EAAAwjK,UACrB7uK,EAAc,KACZ0R,GLwJiBtC,EK1Jf/D,EAAA0jK,gBAGUpsJ,MAAM6F,KAAI,SAAApZ,GACxB,IAAMxO,EAAK0N,EAAA,GAAQc,EAAS8nB,OAE5B,cADOt2B,EAAMuuF,QACNvuF,CAAA,ILoJ0B,CACvCqtK,QAASrxJ,EAAwB,CDvL3B,QCuLkDxN,GACxD8+J,eAAgB9tK,ED7KV,iBC6K2DgP,GACjEugK,MAAO/mB,EAAqBx5I,EAxLrB,SAyLPvS,OAAQ+rJ,EAAqBx5I,EAxLF,2BAyL3B++J,eAAgB/tK,ED/KV,iBC+K2DgP,GACjEk/J,SAAUxxJ,EACR3F,EAAU81J,KACV,CDxLG,MANC,QC+LJ79J,GAEFm/J,SAAUzxJ,EACR3F,EAAU+1J,KACV,CD/LI,OANG,UAGE,aAID,WAFC,YCuMT99J,GAEFg/J,aAActxJ,EAAqB3F,EAAUg2J,SAAU,CD1M3C,aC0MwE/9J,GACpFogK,oBAAqBp1K,EAAuBgV,GAC5Co/J,WAAY1xJ,EACV3F,EAAUi2J,OACV,CDzMG,MALO,aC+MVh+J,GAEFi/J,UAAWvxJ,EAAqB3F,EAAUk2J,MAAO,CDpNvC,WCoNkEj+J,GAC5E04E,MAAO9qE,EAAsB5N,GAC7B4+J,gBAAiB5tK,EDxMV,kBCwM4DgP,GACnEq/J,kBAAmBjuD,EAAwBpxG,EAjNtB,uBKgCfgL,EAASi4G,WDsHiBzxH,ECrHF8Q,EDsH1B6H,GACFq2J,qBAAqBr2J,GAGnB3Y,EAAS+uK,MACXp2J,EAAkBk/B,uBAAsB,WACtCqkG,EAAiBl8I,GAAU,WACzB2Y,EAAkB,YAItBujI,EAAiBl8I,GACjB2Y,EAAkB,OCjIPhL,IACTvO,EAAcuO,EAAiBmD,IAEjCkH,EAAU5Y,EAAA,EAMZqL,EAAA4rC,KAAA,WACMxsC,KAAKglK,WAIThlK,KAAKglK,UAAA,EAEuBhlK,KAAKysB,MAAMi4D,QAA/B4/E,gBACQz9J,IAAI7G,MACpBA,KAAKilK,aAAA,EAAArkK,EAGPizE,OAAA,WAGE,OAFA7zE,KAAKwsC,OAGN,MA5DqCr2C,CAAA,CAOtC,CAPsCA,EAAAA,WAAnBohB,EACZu8E,UAAY,CACjBpP,QAASpyE,EAAco8F,YAFNn3F,EAKZi3G,YAAc,uBAAAib,EAAA,aAAA0C,GAAA,aCEV0S,GAkDX,SAAA1oJ,GAAA,SAAAyK,IAAA,OAAAzK,EAAA+lB,MAAA,KAAApqB,YAAA,KAAAsb,EAAAxM,EAAAzK,GAAA,IAAA8Q,EAAArG,EAAA1P,UAlD0B,OAkD1B+V,EAAAyxI,sBAAA,SAAsB/zI,GACpB,OAAQwJ,IAAYioG,EAAQp2G,KAAKysB,MAAO,cAAe2pF,EAAQzxG,EAAW,gBAG5EsC,EAAAm+J,yBAAA,SAAyBzgK,EAAOxO,GAC9B,IAAKA,EACH,OAAO,KAGT,OAAQwO,EAAM6Y,MACZ,KAAK9Q,EAAUi2J,OACf,KAAKj2J,EAAUg2J,SACb,MAAO,CACLhsD,UAAWvgH,GAGf,KAAKuW,EAAUk2J,MACb,MAAO,CACLS,QAASltK,GAEb,QACE,MAAM,IAAIxE,MACJ,IAAAgT,EAAM6Y,KADZ,wGAMNvW,EAAAo+J,yBAAA,SAAA1gK,GAA2B,IAAAxO,EAAAyK,EAA2D+D,EAA3DwyH,MAAOhpH,EAAoDxJ,EAApD2gK,kBAChC,OAAAzhK,EAAA,GACKsK,IADLhY,EAAA,IAEGyK,EAAM4c,MAFT,GAAA/C,OAGQtM,EAAkBvN,EAAM4c,OAAS,GAEhC,CAAA3Z,EAAA,GAN0Cc,EAAA4gK,cAO1CvlK,KAAKolK,yBAAyBxkK,EAP2B+D,EAAA6gK,mBAClErvK,GAAA,EA9EJ8Q,EA0FEw+J,sBAAA,SAA0E9gK,GAAA,IAAAxO,EAAAyK,EAAlDuN,EAAAxJ,EAAAwyH,MAAO5hI,EAAAoP,EAAA+gK,SAAUz+J,EAAAtC,EAAA4gK,cAAen4J,EAAAzI,EAAA6gK,eACtD,OAAQr3J,EAAMqP,MACZ,KAAK9Q,EAAUm2J,MACb,OAAAh/J,EAAA,GACKtO,IADLY,EAAA,IAEGgY,EAAMqP,MAAOpQ,EACdjX,EAAAotK,gBAAsB1/J,EAAA,GAAAoD,GAG1B9Q,IAAA,KAAKuW,EAAU21J,KACb,OAAAx+J,EAAA,GACKtO,EADL,CAEEkuK,eAAqB5/J,EAAA,GAAAoD,KAGzB,KAAKyF,EAAU61J,KACb,OACK1+J,EAAA,GAAAtO,EACH,CAAAmuK,eAAqB7/J,EAAA,GAAAoD,KAEzB,QACE,OAAApD,EAAA,GACKtO,IADLqL,EAAA,IAEGuN,EAAMqP,MAFT3Z,EAAA,GAEqBoD,GAFrBrG,IAAA,EAAAqG,EAON0+J,4BAAA,SAA4BhhK,EAAmBxO,GAC7C,IAAIyK,EAAiBiD,EAAA,GAAQ1N,GAS7B,OAPAnF,OAAOg1C,KAAKrhC,GAAmB8Y,SAAQ,SAAAtnB,GAAkB,IAAAgY,EACvDvN,EAAiBiD,EAAA,GACZjD,IACFuN,EAAA,IAAAhY,GAAiBwO,EAAkBxO,GAFrBgY,GAAA,IAMZvN,CAAA,EAGTqG,EAAA2+J,sBAAA,SAAsBjhK,EAAOxO,GAoB3B,OAnBAZ,IACE4a,EAAgBgyJ,MAAK,SAAAhsK,GAAQ,OAAAwO,EAAM6Y,OAASrnB,CAAA,IACtB,mBAAfwO,EAAM6Y,KAEc,2JAAArN,EAAgB7R,KACrC,MAHN,oDAKMqG,EAAM6Y,KALZ,sDASFjoB,KACGY,GAC2B,iBAAnBA,GACNJ,MAAMC,QAAQG,KACZA,EAAegsK,MAAK,SAAAx9J,GAAW,MAA2B,iBAAhBA,CAAA,IACL,0CAAAA,EAAM6Y,KAA6D,yDAAA7Y,EAAM6Y,KAAgB,UAAA7Y,EAAM6Y,KAL3I,gDAQO,EAvJXvW,EA0JE4+J,mBAAA,SAAmB1vK,EAAUyK,GAAU,IAAAuN,EAAA,KACjC5Y,EAAoB,CAAC,EAkDzB,OAhDAoP,EAAAA,SAAe8Y,QAAQtnB,GAAU,SAAAwO,GAC/B,GAAKA,GAAUA,EAAM8nB,MAArB,CAIA,IAAAt2B,EAAoDwO,EAAM8nB,MAAxCxlB,EAAV9Q,EAAAq4F,SAA6B3qF,EAErCgU,EAAA1hB,EAAAszI,GAAMr8H,EAAgBpc,OAAOg1C,KAAKniC,GAAYnO,QAAO,SAACiP,EAAKxO,GAEzD,OADAwO,EAAI2H,EAAanW,IAAQA,GAAO0N,EAAW1N,GACpCwO,CAAA,GACN,CAAC,GAEElE,EAASkE,EAAT6Y,KAON,OANoB,iBAAT/c,EACTA,EAAOA,EAAKvG,WAEZiU,EAAKy3J,sBAAsBjhK,EAAOsC,GAG5BxG,GACN,KAAKiM,EAAUo2J,SACbliK,EAAWuN,EAAK03J,mBAAmB5+J,EAAgBrG,GACnD,MAEF,KAAK8L,EAAU81J,KACf,KAAK91J,EAAU+1J,KACf,KAAK/1J,EAAUg2J,SACf,KAAKh2J,EAAUi2J,OACf,KAAKj2J,EAAUk2J,MACbrtK,EAAoB4Y,EAAKk3J,yBAAyB,CAChDluC,MAAAxyH,EACA2gK,kBAAA/vK,EACAgwK,cAAAn4J,EACAo4J,eAAAv+J,IAEF,MAEF,QACErG,EAAWuN,EAAKs3J,sBAAsB,CACpCtuC,MAAAxyH,EACA+gK,SAAA9kK,EACA2kK,cAAAn4J,EACAo4J,eAAAv+J,IAAA,KAMDjH,KAAK2lK,4BAA4BpwK,EAAmBqL,EAAA,EA7M/DqG,EAgNE4sE,OAAA,WACE,IAA+B19E,EAAA6J,KAAKysB,MAA5B7rB,EAARzK,EAAQq4F,SAAargF,EAArB0J,EAAA1hB,EAAAg2I,IACI52I,EAAgBsO,EAAA,GAAAsK,GACdlH,EAAekH,EAAfs2J,WAUN,OARI7jK,IACFrL,EAAWyK,KAAK6lK,mBAAmBjlK,EAAUrL,KAG3C0R,GAAgBA,aAAsBwF,IACxCxF,EAAa,IAAIwF,EAAWxF,EAAWy9E,QAASz9E,EAAWk9J,YAGtDl9J,EAELtC,EAAAA,cAAC4S,EAAA1T,EAAA,GAAetO,EAAhB,CAA0BmvF,QAASz9E,EAAWrO,MAAO6rK,gBAAA,KAErD9/J,EAAAA,cAAC2xG,EAAQq1C,SAAT,MACG,SACCx1J,GACG,OAAAwO,EAAAA,cAAC4S,EAAD1T,EAAA,GAAgBtO,EAAhB,CAA0BmvF,QAASvuF,IAAA,KApOpByK,CAAA,CAkD1B,CAlD0BzK,EAAAA,WAAf0oJ,GAoBJ/qD,UAAY,CACjBj0F,KAAMe,IAAAA,OACN6iK,eAAgB7iK,IAAAA,OAChB4tF,SAAU5tF,IAAAA,UAAoB,CAACA,IAAAA,QAAkBA,IAAAA,MAAiBA,IAAAA,OAClEklK,aAAcllK,IAAAA,OACdskK,MAAOtkK,IAAAA,KACP4jK,wBAAyB5jK,IAAAA,KACzB8iK,eAAgB9iK,IAAAA,OAChB8zH,KAAM9zH,IAAAA,QAAkBA,IAAAA,QACxB+zH,KAAM/zH,IAAAA,QAAkBA,IAAAA,QACxBsjK,SAAUtjK,IAAAA,QAAkBA,IAAAA,QAC5BmkK,oBAAqBnkK,IAAAA,KACrBigK,OAAQjgK,IAAAA,QAAkBA,IAAAA,QAC1B8rB,MAAO9rB,IAAAA,QAAkBA,IAAAA,QACzBy8E,MAAOz8E,IAAAA,OACP2iK,gBAAiB3iK,IAAAA,OACjBmlK,cAAenlK,IAAAA,OACfojK,kBAAmBpjK,IAAAA,KACnB6jK,WAAY7jK,IAAAA,QAtCHi+I,GA0CJ/mC,aAAe,CACpBotD,OAAA,EACAV,yBAAA,EACAR,mBAAA,GA7CSnlB,GAgDJrwB,YAAc,mGCzDhB,MAAMw3C,GAAsB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MACtDC,GAAyB,KAChCC,GAA4Bh4I,EAAAA,cAAoB,CACpDi4I,SAAU,CAAC,EACXC,YAAaJ,GACbK,cAAeJ,MAEX,SACJta,GAAQ,SACRD,IACEwa,GAqBG,SAASI,GAAmBz+G,EAAQ0+G,GACzC,MAAM,SACJJ,IACEhvB,EAAAA,EAAAA,YAAW+uB,IACf,OAAOr+G,GAAUs+G,EAASI,IAAkBA,CAC9C,CACO,SAASC,KACd,MAAM,YACJJ,IACEjvB,EAAAA,EAAAA,YAAW+uB,IACf,OAAOE,CACT,CACO,SAASK,KACd,MAAM,cACJJ,IACElvB,EAAAA,EAAAA,YAAW+uB,IACf,OAAOG,CACT,CACO,SAASK,KACd,MAAM,IACJtlJ,IACE+1H,EAAAA,EAAAA,YAAW+uB,IACf,MAAe,QAAR9kJ,CACT,CAyBA,MC9EMulJ,GAAyBz4I,EAAAA,YAAiB,CAAAlQ,EAO7CgT,KAAQ,IAPsC,SAC/C41I,EAAQ,MACRC,GAAQ,EAERC,GAAI7b,EAAY,MAAK,UACrBltE,KACGtxD,GACJzO,EACC,MAAM6pC,EAASy+G,GAAmBM,EAAU,aACtCG,EAA0B,kBAAVF,EAAqB,IAAIA,IAAU,SACzD,OAAoBG,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAW8oF,EAAQ,GAAGh/G,IAASk/G,IAAWl/G,IAChE,IAEJ8+G,GAAUn4C,YAAc,YACxB,gBChBYy4C,uSAAZ,SAAYA,GAQVA,EAAA,UAOAA,EAAA,YAMAA,EAAA,iBACD,CAtBD,CAAYA,KAAAA,GAsBX,KAqKD,MAAMC,GAAoB,WAqKV,SAAAC,GACdn8I,GAoBA,YApBA,IAAAA,IAAAA,EAAiC,CAAC,GAoB3Bo8I,IAlBP,SACE9mK,EACA+mK,GAEA,IAAI,SAAEjlI,EAAQ,OAAE4hG,EAAM,KAAEsjC,GAAShnK,EAAO4hC,SACxC,OAAOqlI,GACL,GACA,CAAEnlI,WAAU4hG,SAAQsjC,QAEnBD,EAAczzE,OAASyzE,EAAczzE,MAAM4zE,KAAQ,KACnDH,EAAczzE,OAASyzE,EAAczzE,MAAMr7E,KAAQ,UAExD,IAEA,SAA2BjY,EAAgB43C,GACzC,MAAqB,kBAAPA,EAAkBA,EAAKw+C,GAAWx+C,EAClD,GAKE,KACAltB,EAEJ,CAyGgB,SAAAy8I,GAAU7uK,EAAYqhB,GACpC,IAAc,IAAVrhB,GAA6B,OAAVA,GAAmC,qBAAVA,EAC9C,MAAM,IAAIjH,MAAMsoB,EAEpB,CAEgB,SAAA+iJ,GAAQ0K,EAAWztJ,GACjC,IAAKytJ,EAAM,CAEc,qBAAZ7jJ,SAAyBA,QAAQ04C,KAAKtiD,GAEjD,IAME,MAAM,IAAItoB,MAAMsoB,EAEjB,CAAC,MAAO9jB,IAAI,CACd,CACH,CASA,SAASwxK,GAAgBzlI,EAAoB1hC,GAC3C,MAAO,CACLgnK,IAAKtlI,EAAS0xD,MACdr7E,IAAK2pB,EAAS3pB,IACdjjB,IAAKkL,EAET,CAKM,SAAU+mK,GACd7vJ,EACAwgC,EACA07C,EACAr7E,GAcA,YAfA,IAAAq7E,IAAAA,EAAa,MAGDg0E,GAAA,CACVxlI,SAA6B,kBAAZ1qB,EAAuBA,EAAUA,EAAQ0qB,SAC1D4hG,OAAQ,GACRsjC,KAAM,IACY,kBAAPpvH,EAAkB2vH,GAAU3vH,GAAMA,EAAE,CAC/C07C,QAKAr7E,IAAM2/B,GAAOA,EAAgB3/B,KAAQA,GAjChCrmB,KAAKymC,SAASz+B,SAAS,IAAIioB,OAAO,EAAG,IAoC9C,CAKgB,SAAAu0E,GAAU14E,GAIV,IAJW,SACzBokB,EAAW,IAAG,OACd4hG,EAAS,GAAE,KACXsjC,EAAO,IACOtpJ,EAKd,OAJIgmH,GAAqB,MAAXA,IACZ5hG,GAAiC,MAArB4hG,EAAO/oI,OAAO,GAAa+oI,EAAS,IAAMA,GACpDsjC,GAAiB,MAATA,IACVllI,GAA+B,MAAnBklI,EAAKrsK,OAAO,GAAaqsK,EAAO,IAAMA,GAC7CllI,CACT,CAKM,SAAUylI,GAAUlrI,GACxB,IAAImrI,EAA4B,CAAC,EAEjC,GAAInrI,EAAM,CACR,IAAIorI,EAAYprI,EAAKn+B,QAAQ,KACzBupK,GAAa,IACfD,EAAWR,KAAO3qI,EAAKxa,OAAO4lJ,GAC9BprI,EAAOA,EAAKxa,OAAO,EAAG4lJ,IAGxB,IAAIC,EAAcrrI,EAAKn+B,QAAQ,KAC3BwpK,GAAe,IACjBF,EAAW9jC,OAASrnG,EAAKxa,OAAO6lJ,GAChCrrI,EAAOA,EAAKxa,OAAO,EAAG6lJ,IAGpBrrI,IACFmrI,EAAW1lI,SAAWzF,EAEzB,CAED,OAAOmrI,CACT,CASA,SAASV,GACPa,EACAC,EACAC,EACAn9I,QAAA,IAAAA,IAAAA,EAA6B,CAAC,GAE9B,IAAI,OAAE1qB,EAASuyB,SAAS0zG,YAAY,SAAE6hC,GAAW,GAAUp9I,EACvDq8I,EAAgB/mK,EAAO+nK,QACvBh2I,EAAS40I,GAAOqB,IAChB93I,EAA4B,KAE5BhwB,EAAQ+nK,IASZ,SAASA,IAEP,OADYlB,EAAczzE,OAAS,CAAEt+F,IAAK,OAC7BA,GACf,CAEA,SAASkzK,IACPn2I,EAAS40I,GAAOqB,IAChB,IAAI33G,EAAY43G,IACZr1J,EAAqB,MAAby9C,EAAoB,KAAOA,EAAYnwD,EACnDA,EAAQmwD,EACJngC,GACFA,EAAS,CAAE6B,SAAQ6P,SAAUmmI,EAAQnmI,SAAUhvB,SAEnD,CA+CA,SAASu1J,EAAUvwH,GAIjB,IAAIr4C,EACyB,SAA3BS,EAAO4hC,SAASC,OACZ7hC,EAAO4hC,SAASC,OAChB7hC,EAAO4hC,SAASwlB,KAElBA,EAAqB,kBAAPxP,EAAkBA,EAAKw+C,GAAWx+C,GASpD,OALAwP,EAAOA,EAAKnmD,QAAQ,KAAM,OAC1BkmK,GACE5nK,EACsE,sEAAA6nD,GAEjE,IAAIzqB,IAAIyqB,EAAM7nD,EACvB,CApFa,MAATW,IACFA,EAAQ,EACR6mK,EAAcqB,aAAYd,GAAM,GAAAP,EAAczzE,MAAO,CAAAt+F,IAAKkL,IAAS,KAoFrE,IAAI6nK,EAAmB,CACrB,UAAIh2I,GACF,OAAOA,GAET,YAAI6P,GACF,OAAO+lI,EAAY3nK,EAAQ+mK,IAE7BsB,MAAAA,CAAOltJ,GACL,GAAI+U,EACF,MAAM,IAAI7+B,MAAM,8CAKlB,OAHA2O,EAAOowB,iBAAiBw2I,GAAmBsB,GAC3Ch4I,EAAW/U,EAEJ,KACLnb,EAAOqwB,oBAAoBu2I,GAAmBsB,GAC9Ch4I,EAAW,IAAI,GAGnB03I,WAAWhwH,GACFgwH,EAAW5nK,EAAQ43C,GAE5BuwH,YACAG,cAAAA,CAAe1wH,GAEb,IAAIlb,EAAMyrI,EAAUvwH,GACpB,MAAO,CACL9V,SAAUpF,EAAIoF,SACd4hG,OAAQhnG,EAAIgnG,OACZsjC,KAAMtqI,EAAIsqI,OAGd9xK,KAlGF,SAAc0iD,EAAQ07C,GACpBvhE,EAAS40I,GAAO4B,KAChB,IAAI3mI,EAAWqlI,GAAec,EAAQnmI,SAAUgW,EAAI07C,GAChDu0E,GAAkBA,EAAiBjmI,EAAUgW,GAEjD13C,EAAQ+nK,IAAa,EACrB,IAAIO,EAAenB,GAAgBzlI,EAAU1hC,GACzCw8B,EAAMqrI,EAAQH,WAAWhmI,GAG7B,IACEmlI,EAAc0B,UAAUD,EAAc,GAAI9rI,GAC1C,MAAOrf,GAKP,GAAIA,aAAiBqrJ,cAA+B,mBAAfrrJ,EAAMpsB,KACzC,MAAMosB,EAIRrd,EAAO4hC,SAAS/wC,OAAO6rC,EACxB,CAEGorI,GAAY53I,GACdA,EAAS,CAAE6B,SAAQ6P,SAAUmmI,EAAQnmI,SAAUhvB,MAAO,GAE1D,EAuEE3R,QArEF,SAAiB22C,EAAQ07C,GACvBvhE,EAAS40I,GAAOgC,QAChB,IAAI/mI,EAAWqlI,GAAec,EAAQnmI,SAAUgW,EAAI07C,GAChDu0E,GAAkBA,EAAiBjmI,EAAUgW,GAEjD13C,EAAQ+nK,IACR,IAAIO,EAAenB,GAAgBzlI,EAAU1hC,GACzCw8B,EAAMqrI,EAAQH,WAAWhmI,GAC7BmlI,EAAcqB,aAAaI,EAAc,GAAI9rI,GAEzCorI,GAAY53I,GACdA,EAAS,CAAE6B,SAAQ6P,SAAUmmI,EAAQnmI,SAAUhvB,MAAO,GAE1D,EAyDEg2J,GAAG/6J,GACMk5J,EAAc6B,GAAG/6J,IAI5B,OAAOk6J,CACT,CC7tBA,IAAYc,IAAZ,SAAYA,GACVA,EAAA,YACAA,EAAA,oBACAA,EAAA,oBACAA,EAAA,aACD,CALD,CAAYA,KAAAA,GAKX,KAkRM,MAAMC,GAAqB,IAAIx9C,IAAuB,CAC3D,OACA,gBACA,OACA,KACA,QACA,aA6JI,SAAUy9C,GACdC,EACAC,EACAC,EACAC,GAEA,YAHuB,IAAvBD,IAAAA,EAAuB,SACvB,IAAAC,IAAAA,EAA0B,CAAC,GAEpBH,EAAOvrJ,KAAI,CAAC2rJ,EAAOlpK,KACxB,IAAImpK,EAAW,IAAIH,EAAYpvK,OAAOoG,IAClCirB,EAAyB,kBAAbi+I,EAAMj+I,GAAkBi+I,EAAMj+I,GAAKk+I,EAASrrK,KAAK,KAWjE,GAVAmpK,IACkB,IAAhBiC,EAAMlpK,QAAmBkpK,EAAMl7E,SAAQ,6CAGzCi5E,IACGgC,EAASh+I,GACV,qCAAqCA,EAArC,qEAvBN,SACEi+I,GAEA,OAAuB,IAAhBA,EAAMlpK,KACf,CAuBQopK,CAAaF,GAAQ,CACvB,IAAIG,EAAUjC,GAAA,GACT8B,EACAH,EAAmBG,GAAM,CAC5Bj+I,OAGF,OADAg+I,EAASh+I,GAAMo+I,EACRA,CACR,CAAM,CACL,IAAIC,EAAiBlC,GAAA,GAChB8B,EACAH,EAAmBG,GAAM,CAC5Bj+I,KACA+iE,cAAUz8F,IAaZ,OAXA03K,EAASh+I,GAAMq+I,EAEXJ,EAAMl7E,WACRs7E,EAAkBt7E,SAAW66E,GAC3BK,EAAMl7E,SACN+6E,EACAI,EACAF,IAIGK,CACR,IAEL,CAOM,SAAUC,GAGdT,EACAU,EACAC,GAEA,YAFQ,IAARA,IAAAA,EAAW,KAEJC,GAAgBZ,EAAQU,EAAaC,GAAU,EACxD,CAEM,SAAUC,GAGdZ,EACAU,EACAC,EACAE,GAEA,IAGI/nI,EAAWgoI,IAFU,kBAAhBJ,EAA2BnC,GAAUmC,GAAeA,GAEvB5nI,UAAY,IAAK6nI,GAEvD,GAAgB,MAAZ7nI,EACF,OAAO,KAGT,IAAIioI,EAAWC,GAAchB,IAmM/B,SAA2Be,GACzBA,EAASE,MAAK,CAAC1mK,EAAGlU,IAChBkU,EAAE2mK,QAAU76K,EAAE66K,MACV76K,EAAE66K,MAAQ3mK,EAAE2mK,MAyCpB,SAAwB3mK,EAAalU,GACnC,IAAI86K,EACF5mK,EAAE1T,SAAWR,EAAEQ,QAAU0T,EAAE9J,MAAM,GAAI,GAAGu/J,OAAM,CAACnrJ,EAAG5Y,IAAM4Y,IAAMxe,EAAE4F,KAElE,OAAOk1K,EAKH5mK,EAAEA,EAAE1T,OAAS,GAAKR,EAAEA,EAAEQ,OAAS,GAG/B,CACN,CArDQu6K,CACE7mK,EAAE8mK,WAAW5sJ,KAAK42G,GAASA,EAAKi2C,gBAChCj7K,EAAEg7K,WAAW5sJ,KAAK42G,GAASA,EAAKi2C,kBAG1C,CA3MEC,CAAkBR,GAElB,IAAInY,EAAU,KACd,IAAK,IAAI38J,EAAI,EAAc,MAAX28J,GAAmB38J,EAAI80K,EAASl6K,SAAUoF,EAAG,CAO3D,IAAIu1K,EAAUC,GAAW3oI,GACzB8vH,EAAU8Y,GACRX,EAAS90K,GACTu1K,EACAX,EAEH,CAED,OAAOjY,CACT,CAyCA,SAASoY,GAGPhB,EACAe,EACAY,EACAzB,QAF2C,IAA3Ca,IAAAA,EAA2C,SAC3C,IAAAY,IAAAA,EAA4C,SAClC,IAAVzB,IAAAA,EAAa,IAEb,IAAI0B,EAAeA,CACjBxB,EACAlpK,EACA2qK,KAEA,IAAIx2C,EAAmC,CACrCw2C,kBACmBp5K,IAAjBo5K,EAA6BzB,EAAM/sI,MAAQ,GAAKwuI,EAClDC,eAAuC,IAAxB1B,EAAM0B,cACrBR,cAAepqK,EACfkpK,SAGE/0C,EAAKw2C,aAAaE,WAAW,OAC/B5D,GACE9yC,EAAKw2C,aAAaE,WAAW7B,GAC7B,wBAAwB70C,EAAKw2C,aAA7B,wBACM3B,EADN,4GAKF70C,EAAKw2C,aAAex2C,EAAKw2C,aAAapxK,MAAMyvK,EAAWr5K,SAGzD,IAAIwsC,EAAO2uI,GAAU,CAAC9B,EAAY70C,EAAKw2C,eACnCR,EAAaM,EAAYxwJ,OAAOk6G,GAKhC+0C,EAAMl7E,UAAYk7E,EAAMl7E,SAASr+F,OAAS,IAC5Cs3K,IAGkB,IAAhBiC,EAAMlpK,MACN,4FACuCm8B,EAAI,MAE7C2tI,GAAcZ,EAAMl7E,SAAU67E,EAAUM,EAAYhuI,KAKpC,MAAd+sI,EAAM/sI,MAAiB+sI,EAAMlpK,QAIjC6pK,EAAS70K,KAAK,CACZmnC,OACA6tI,MAAOe,GAAa5uI,EAAM+sI,EAAMlpK,OAChCmqK,cACA,EAaJ,OAXArB,EAAO7rJ,SAAQ,CAACisJ,EAAOlpK,KAAS,IAAAgrK,EAE9B,GAAmB,KAAf9B,EAAM/sI,MAA0B,OAAX6uI,EAAC9B,EAAM/sI,OAAN6uI,EAAY1mJ,SAAS,KAG7C,IAAK,IAAI2mJ,KAAYC,GAAwBhC,EAAM/sI,MACjDuuI,EAAaxB,EAAOlpK,EAAOirK,QAH7BP,EAAaxB,EAAOlpK,EAKrB,IAGI6pK,CACT,CAgBA,SAASqB,GAAwB/uI,GAC/B,IAAItN,EAAWsN,EAAK/oC,MAAM,KAC1B,GAAwB,IAApBy7B,EAASl/B,OAAc,MAAO,GAElC,IAAKs2B,KAAUoH,GAAQwB,EAGnBs8I,EAAallJ,EAAMmlJ,SAAS,KAE5BC,EAAWplJ,EAAMllB,QAAQ,MAAO,IAEpC,GAAoB,IAAhBssB,EAAK19B,OAGP,OAAOw7K,EAAa,CAACE,EAAU,IAAM,CAACA,GAGxC,IAAIC,EAAeJ,GAAwB79I,EAAKvvB,KAAK,MAEjDya,EAAmB,GAqBvB,OAZAA,EAAOvjB,QACFs2K,EAAa/tJ,KAAKguJ,GACP,KAAZA,EAAiBF,EAAW,CAACA,EAAUE,GAASztK,KAAK,QAKrDqtK,GACF5yJ,EAAOvjB,QAAQs2K,GAIV/yJ,EAAOgF,KAAK0tJ,GACjB9uI,EAAK0uI,WAAW,MAAqB,KAAbI,EAAkB,IAAMA,GAEpD,CAaA,MAAMO,GAAU,YACVC,GAAsB,EACtBC,GAAkB,EAClBC,GAAoB,EACpBC,GAAqB,GACrBC,IAAgB,EAChBC,GAAWl/J,GAAoB,MAANA,EAE/B,SAASm+J,GAAa5uI,EAAcn8B,GAClC,IAAI6uB,EAAWsN,EAAK/oC,MAAM,KACtB24K,EAAel9I,EAASl/B,OAS5B,OARIk/B,EAAS8yI,KAAKmK,MAChBC,GAAgBF,IAGd7rK,IACF+rK,GAAgBL,IAGX78I,EACJ/C,QAAQlf,IAAOk/J,GAAQl/J,KACvB1X,QACC,CAAC80K,EAAOngI,IACNmgI,GACCwB,GAAQh0I,KAAKqS,GACV4hI,GACY,KAAZ5hI,EACA8hI,GACAC,KACNG,EAEN,CAiBA,SAASvB,GAIPwB,EACApqI,EACA+nI,QAAY,IAAZA,IAAAA,GAAe,GAEf,IAAI,WAAEQ,GAAe6B,EAEjBC,EAAgB,CAAC,EACjBC,EAAkB,IAClBxa,EAA2D,GAC/D,IAAK,IAAI38J,EAAI,EAAGA,EAAIo1K,EAAWx6K,SAAUoF,EAAG,CAC1C,IAAIo/H,EAAOg2C,EAAWp1K,GAClBkJ,EAAMlJ,IAAMo1K,EAAWx6K,OAAS,EAChCw8K,EACkB,MAApBD,EACItqI,EACAA,EAASroC,MAAM2yK,EAAgBv8K,SAAW,IAC5CgiH,EAAQy6D,GACV,CAAEjwI,KAAMg4F,EAAKw2C,aAAcC,cAAez2C,EAAKy2C,cAAe3sK,OAC9DkuK,GAGEjD,EAAQ/0C,EAAK+0C,MAkBjB,IAfGv3D,GACD1zG,GACA0rK,IACCQ,EAAWA,EAAWx6K,OAAS,GAAGu5K,MAAMlpK,QAEzC2xG,EAAQy6D,GACN,CACEjwI,KAAMg4F,EAAKw2C,aACXC,cAAez2C,EAAKy2C,cACpB3sK,KAAK,GAEPkuK,KAICx6D,EACH,OAAO,KAGTnhH,OAAOG,OAAOs7K,EAAet6D,EAAM3mF,QAEnC0mI,EAAQ18J,KAAK,CAEXg2B,OAAQihJ,EACRrqI,SAAUkpI,GAAU,CAACoB,EAAiBv6D,EAAM/vE,WAC5CyqI,aAAcC,GACZxB,GAAU,CAACoB,EAAiBv6D,EAAM06D,gBAEpCnD,UAGyB,MAAvBv3D,EAAM06D,eACRH,EAAkBpB,GAAU,CAACoB,EAAiBv6D,EAAM06D,eAEvD,CAED,OAAO3a,CACT,CAiHgB,SAAA0a,GAIdG,EACA3qI,GAEuB,kBAAZ2qI,IACTA,EAAU,CAAEpwI,KAAMowI,EAAS3B,eAAe,EAAO3sK,KAAK,IAGxD,IAAKuuK,EAASC,GA4ChB,SACEtwI,EACAyuI,EACA3sK,QADa,IAAb2sK,IAAAA,GAAgB,QACb,IAAH3sK,IAAAA,GAAM,GAENu+J,GACW,MAATrgI,IAAiBA,EAAKivI,SAAS,MAAQjvI,EAAKivI,SAAS,MACrD,eAAejvI,EAAf,oCACMA,EAAKp7B,QAAQ,MAAO,MAD1B,qIAGsCo7B,EAAKp7B,QAAQ,MAAO,MAAK,MAGjE,IAAIiqB,EAA8B,GAC9B0hJ,EACF,IACAvwI,EACGp7B,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,qBAAsB,QAC9BA,QACC,qBACA,CAACuN,EAAWq+J,EAAmBxB,KAC7BngJ,EAAOh2B,KAAK,CAAE23K,YAAWxB,WAA0B,MAAdA,IAC9BA,EAAa,eAAiB,gBAIzChvI,EAAKivI,SAAS,MAChBpgJ,EAAOh2B,KAAK,CAAE23K,UAAW,MACzBD,GACW,MAATvwI,GAAyB,OAATA,EACZ,QACA,qBACGl+B,EAETyuK,GAAgB,QACE,KAATvwI,GAAwB,MAATA,IAQxBuwI,GAAgB,iBAKlB,IAAIF,EAAU,IAAI/jB,OAAOikB,EAAc9B,OAAgBr5K,EAAY,KAEnE,MAAO,CAACi7K,EAASxhJ,EACnB,CAjGkC4hJ,CAC9BL,EAAQpwI,KACRowI,EAAQ3B,cACR2B,EAAQtuK,KAGN0zG,EAAQ/vE,EAAS+vE,MAAM66D,GAC3B,IAAK76D,EAAO,OAAO,KAEnB,IAAIu6D,EAAkBv6D,EAAM,GACxB06D,EAAeH,EAAgBnrK,QAAQ,UAAW,MAClD8rK,EAAgBl7D,EAAMp4G,MAAM,GAuBhC,MAAO,CACLyxB,OAvBmByhJ,EAAev3K,QAClC,CAACw2J,EAAIluI,EAA6Bxd,KAAS,IAApC,UAAE2sK,EAAS,WAAExB,GAAY3tJ,EAG9B,GAAkB,MAAdmvJ,EAAmB,CACrB,IAAIG,EAAaD,EAAc7sK,IAAU,GACzCqsK,EAAeH,EACZ3yK,MAAM,EAAG2yK,EAAgBv8K,OAASm9K,EAAWn9K,QAC7CoR,QAAQ,UAAW,KACvB,CAED,MAAM3I,EAAQy0K,EAAc7sK,GAM5B,OAJE0rJ,EAAKihB,GADHxB,IAAe/yK,OACC7G,GAEC6G,GAAS,IAAI2I,QAAQ,OAAQ,KAE3C2qJ,CAAI,GAEb,CAAC,GAKD9pH,SAAUsqI,EACVG,eACAE,UAEJ,CA2DM,SAAUhC,GAAWnyK,GACzB,IACE,OAAOA,EACJhF,MAAM,KACNmqB,KAAKpoB,GAAM+yD,mBAAmB/yD,GAAG4L,QAAQ,MAAO,SAChDjD,KAAK,KACR,MAAOqf,GAQP,OAPAq/I,IACE,EACA,iBAAiBpkK,EAAjB,oHAEe+kB,EAAK,MAGf/kB,CACR,CACH,CAKgB,SAAAwxK,GACdhoI,EACA6nI,GAEA,GAAiB,MAAbA,EAAkB,OAAO7nI,EAE7B,IAAKA,EAAS1hB,cAAc2qJ,WAAWpB,EAASvpJ,eAC9C,OAAO,KAKT,IAAIwnG,EAAa+hD,EAAS2B,SAAS,KAC/B3B,EAAS95K,OAAS,EAClB85K,EAAS95K,OACTo9K,EAAWnrI,EAASnnC,OAAOitH,GAC/B,OAAIqlD,GAAyB,MAAbA,EAEP,KAGFnrI,EAASroC,MAAMmuH,IAAe,GACvC,CA2CA,SAASslD,GACPpjC,EACAnsH,EACA5nB,EACAsmC,GAEA,MACE,qBAAqBytG,EAArB,2CACQnsH,EAAK,YAAa6N,KAAKC,UAC7B4Q,GAFF,yCAIQtmC,EAJR,2HAOJ,CAyBM,SAAUo3K,GAEdvb,GACA,OAAOA,EAAQ5lI,QACb,CAAC6lF,EAAO3xG,IACI,IAAVA,GAAgB2xG,EAAMu3D,MAAM/sI,MAAQw1E,EAAMu3D,MAAM/sI,KAAKxsC,OAAS,GAEpE,CAIgB,SAAAu9K,GAEdxb,EAAcyb,GACd,IAAIC,EAAcH,GAA2Bvb,GAK7C,OAAIyb,EACKC,EAAY7vJ,KAAI,CAACo0F,EAAO78G,IAC7BA,IAAQs4K,EAAYz9K,OAAS,EAAIgiH,EAAM/vE,SAAW+vE,EAAM06D,eAIrDe,EAAY7vJ,KAAKo0F,GAAUA,EAAM06D,cAC1C,CAKM,SAAUgB,GACdC,EACAC,EACAC,EACAC,GAEA,IAAI/1H,OAFU,IAAd+1H,IAAAA,GAAiB,GAGI,kBAAVH,EACT51H,EAAK2vH,GAAUiG,IAEf51H,EAAE0vH,GAAQ,GAAAkG,GAEVrG,IACGvvH,EAAG9V,WAAa8V,EAAG9V,SAAStd,SAAS,KACtC0oJ,GAAoB,IAAK,WAAY,SAAUt1H,IAEjDuvH,IACGvvH,EAAG9V,WAAa8V,EAAG9V,SAAStd,SAAS,KACtC0oJ,GAAoB,IAAK,WAAY,OAAQt1H,IAE/CuvH,IACGvvH,EAAG8rF,SAAW9rF,EAAG8rF,OAAOl/G,SAAS,KAClC0oJ,GAAoB,IAAK,SAAU,OAAQt1H,KAI/C,IAGIloD,EAHAk+K,EAAwB,KAAVJ,GAAgC,KAAhB51H,EAAG9V,SACjC+rI,EAAaD,EAAc,IAAMh2H,EAAG9V,SAaxC,GAAkB,MAAd+rI,EACFn+K,EAAOg+K,MACF,CACL,IAAII,EAAqBL,EAAe59K,OAAS,EAMjD,IAAK89K,GAAkBE,EAAW9C,WAAW,MAAO,CAClD,IAAIgD,EAAaF,EAAWv6K,MAAM,KAElC,KAAyB,OAAlBy6K,EAAW,IAChBA,EAAW33K,QACX03K,GAAsB,EAGxBl2H,EAAG9V,SAAWisI,EAAW/vK,KAAK,IAC/B,CAEDtO,EAAOo+K,GAAsB,EAAIL,EAAeK,GAAsB,GACvE,CAED,IAAIzxI,WAzKsBub,EAAQo2H,QAAY,IAAZA,IAAAA,EAAe,KACjD,IACElsI,SAAU+rI,EAAU,OACpBnqC,EAAS,GAAE,KACXsjC,EAAO,IACS,kBAAPpvH,EAAkB2vH,GAAU3vH,GAAMA,EAEzC9V,EAAW+rI,EACXA,EAAW9C,WAAW,KACpB8C,EAWR,SAAyBhD,EAAsBmD,GAC7C,IAAIj/I,EAAWi/I,EAAa/sK,QAAQ,OAAQ,IAAI3N,MAAM,KAYtD,OAXuBu3K,EAAav3K,MAAM,KAEzB6pB,SAAS4sB,IACR,OAAZA,EAEEhb,EAASl/B,OAAS,GAAGk/B,EAAS07B,MACb,MAAZ1gB,GACThb,EAAS75B,KAAK60C,EACf,IAGIhb,EAASl/B,OAAS,EAAIk/B,EAAS/wB,KAAK,KAAO,GACpD,CAxBQiwK,CAAgBJ,EAAYG,GAC9BA,EAEJ,MAAO,CACLlsI,WACA4hG,OAAQwqC,GAAgBxqC,GACxBsjC,KAAMmH,GAAcnH,GAExB,CAuJaoH,CAAYx2H,EAAIloD,GAGvB2+K,EACFR,GAA6B,MAAfA,GAAsBA,EAAWvC,SAAS,KAEtDgD,GACDV,GAA8B,MAAfC,IAAuBH,EAAiBpC,SAAS,KAQnE,OANGjvI,EAAKyF,SAASwpI,SAAS,OACvB+C,IAA4BC,IAE7BjyI,EAAKyF,UAAY,KAGZzF,CACT,OAiBa2uI,GAAa1rH,GACxBA,EAAMthD,KAAK,KAAKiD,QAAQ,SAAU,KAKvBurK,GAAqB1qI,GAChCA,EAAS7gC,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAKlCitK,GAAmBxqC,GAC7BA,GAAqB,MAAXA,EAEPA,EAAOqnC,WAAW,KAClBrnC,EACA,IAAMA,EAHN,GAQOyqC,GAAiBnH,GAC3BA,GAAiB,MAATA,EAAoBA,EAAK+D,WAAW,KAAO/D,EAAO,IAAMA,EAAzC,GAqDgB31K,YAwQ7Bk9K,GAOXx+K,WAAAA,CACEkxC,EACAutI,EACA5uJ,EACA6uJ,QAAQ,IAARA,IAAAA,GAAW,GAEX/uK,KAAKuhC,OAASA,EACdvhC,KAAK8uK,WAAaA,GAAc,GAChC9uK,KAAK+uK,SAAWA,EACZ7uJ,aAAgBvuB,OAClBqO,KAAKkgB,KAAOA,EAAKhmB,WACjB8F,KAAK2d,MAAQuC,GAEblgB,KAAKkgB,KAAOA,CAEhB,EAOI,SAAU8uJ,GAAqBrxJ,GACnC,OACW,MAATA,GACwB,kBAAjBA,EAAM4jB,QACe,kBAArB5jB,EAAMmxJ,YACa,mBAAnBnxJ,EAAMoxJ,UACb,SAAUpxJ,CAEd,CCp/BA,MAAMsxJ,GAAgD,CACpD,OACA,MACA,QACA,UAEIC,GAAuB,IAAItjD,IAC/BqjD,IAGIE,GAAuC,CAC3C,SACGF,IAECG,GAAsB,IAAIxjD,IAAgBujD,IAE1CE,GAAsB,IAAIzjD,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACnD0jD,GAAoC,IAAI1jD,IAAI,CAAC,IAAK,MAE3C2jD,GAA4C,CACvD37E,MAAO,OACP1xD,cAAUnwC,EACVy9K,gBAAYz9K,EACZ09K,gBAAY19K,EACZ29K,iBAAa39K,EACb49K,cAAU59K,EACV69K,UAAM79K,EACN+nE,UAAM/nE,GAGK89K,GAAsC,CACjDj8E,MAAO,OACP1zE,UAAMnuB,EACNy9K,gBAAYz9K,EACZ09K,gBAAY19K,EACZ29K,iBAAa39K,EACb49K,cAAU59K,EACV69K,UAAM79K,EACN+nE,UAAM/nE,GAGK+9K,GAAiC,CAC5Cl8E,MAAO,YACPm8E,aAASh+K,EACTmuD,WAAOnuD,EACPmwC,cAAUnwC,GAGNi+K,GAAqB,gCAErBC,GAAyDvG,IAAK,CAClEwG,iBAAkB92K,QAAQswK,EAAMwG,oBAG5BC,GAA0B,2BAW1B,SAAUC,GAAa5jI,GAC3B,MAAM6jI,EAAe7jI,EAAKlsC,OACtBksC,EAAKlsC,OACa,qBAAXA,OACPA,YACAvO,EACEu+K,EACoB,qBAAjBD,GAC0B,qBAA1BA,EAAax9I,UAC2B,qBAAxCw9I,EAAax9I,SAAS9B,cACzBw/I,GAAYD,EAOlB,IAAI/G,EACJ,GANA9B,GACEj7H,EAAK88H,OAAOn5K,OAAS,EACrB,6DAIEq8C,EAAK+8H,mBACPA,EAAqB/8H,EAAK+8H,wBACrB,GAAI/8H,EAAKgkI,oBAAqB,CAEnC,IAAIA,EAAsBhkI,EAAKgkI,oBAC/BjH,EAAsBG,IAAK,CACzBwG,iBAAkBM,EAAoB9G,IAEzC,MACCH,EAAqB0G,GAIvB,IAQIQ,EAgEA1pE,EAiEA2pE,EAzIAjH,EAA0B,CAAC,EAE3BkH,EAAatH,GACf78H,EAAK88H,OACLC,OACAx3K,EACA03K,GAGEQ,EAAWz9H,EAAKy9H,UAAY,IAC5B2G,EAAmBpkI,EAAKqkI,uBAAyBC,GACjDC,EAAwBvkI,EAAKwkI,2BAG7BC,EAAMrJ,GAAA,CACRsJ,mBAAmB,EACnBC,wBAAwB,EACxBC,qBAAqB,EACrBC,oBAAoB,EACpB1D,sBAAsB,EACtB2D,gCAAgC,GAC7B9kI,EAAKykI,QAGNM,EAAuC,KAEvCC,EAAc,IAAI5lD,IAElB6lD,EAAsD,KAEtDC,EAAkE,KAElEC,EAAsD,KAOtDC,EAA8C,MAAtBplI,EAAKqlI,cAE7BC,EAAiB/H,GAAY4G,EAAYnkI,EAAK67H,QAAQnmI,SAAU+nI,GAChE8H,EAAkC,KAEtC,GAAsB,MAAlBD,IAA2Bf,EAAuB,CAGpD,IAAIpzJ,EAAQq0J,GAAuB,IAAK,CACtC5vI,SAAUoK,EAAK67H,QAAQnmI,SAASE,YAE9B,QAAE8vH,EAAO,MAAEwX,GAAUuI,GAAuBtB,GAChDmB,EAAiB5f,EACjB6f,EAAgB,CAAE,CAACrI,EAAMj+I,IAAK9N,EAC/B,CAQD,GAAIm0J,IAAmBtlI,EAAKqlI,cAAe,CAC1BK,GACbJ,EACAnB,EACAnkI,EAAK67H,QAAQnmI,SAASE,UAEX02D,SACXg5E,EAAiB,KAEpB,CAGD,GAAKA,EAiBE,GAAIA,EAAe3P,MAAM/zJ,GAAMA,EAAEs7J,MAAMzd,OAG5CllD,GAAc,OACT,GAAK+qE,EAAe3P,MAAM/zJ,GAAMA,EAAEs7J,MAAMyI,SAGxC,GAAIlB,EAAOG,oBAAqB,CAIrC,IAAIgB,EAAa5lI,EAAKqlI,cAAgBrlI,EAAKqlI,cAAcO,WAAa,KAClEhqJ,EAASokB,EAAKqlI,cAAgBrlI,EAAKqlI,cAAczpJ,OAAS,KAC1DiqJ,EAAsBjkK,IAEnBA,EAAEs7J,MAAMyI,SAKe,oBAAnB/jK,EAAEs7J,MAAMyI,SACY,IAA3B/jK,EAAEs7J,MAAMyI,OAAOjqB,WAMdkqB,QAAyCrgL,IAA3BqgL,EAAWhkK,EAAEs7J,MAAMj+I,KACjCrD,QAAiCr2B,IAAvBq2B,EAAOha,EAAEs7J,MAAMj+I,KAK9B,GAAIrD,EAAQ,CACV,IAAI9yB,EAAMw8K,EAAernD,WACtBr8G,QAA8Brc,IAAxBq2B,EAAQha,EAAEs7J,MAAMj+I,MAEzBs7E,EAAc+qE,EAAe/3K,MAAM,EAAGzE,EAAM,GAAGgkK,MAAM+Y,EACtD,MACCtrE,EAAc+qE,EAAexY,MAAM+Y,EAEtC,MAGCtrE,EAAoC,MAAtBv6D,EAAKqlI,mBAtCnB9qE,GAAc,OAhBd,GANAA,GAAc,EACd+qE,EAAiB,GAKbb,EAAOG,oBAAqB,CAC9B,IAAIkB,EAAWJ,GACb,KACAvB,EACAnkI,EAAK67H,QAAQnmI,SAASE,UAEpBkwI,EAASx5E,QAAUw5E,EAASpgB,UAC9B4f,EAAiBQ,EAASpgB,QAE7B,CAiDH,IA0BIqgB,EA1BA3+E,EAAqB,CACvB4+E,cAAehmI,EAAK67H,QAAQh2I,OAC5B6P,SAAUsK,EAAK67H,QAAQnmI,SACvBgwH,QAAS4f,EACT/qE,cACA0rE,WAAYlD,GAEZmD,sBAA6C,MAAtBlmI,EAAKqlI,eAAgC,KAC5Dc,oBAAoB,EACpBC,aAAc,OACdR,WAAa5lI,EAAKqlI,eAAiBrlI,EAAKqlI,cAAcO,YAAe,CAAC,EACtES,WAAarmI,EAAKqlI,eAAiBrlI,EAAKqlI,cAAcgB,YAAe,KACrEzqJ,OAASokB,EAAKqlI,eAAiBrlI,EAAKqlI,cAAczpJ,QAAW2pJ,EAC7De,SAAU,IAAI10J,IACd20J,SAAU,IAAI30J,KAKZ40J,EAA+B/L,GAAcqB,IAI7C2K,GAA4B,EAM5BC,GAA+B,EAG/BC,EAAmD,IAAI/0J,IAMvDg1J,EAAmD,KAInDC,GAA8B,EAM9BC,GAAyB,EAIzBC,EAAoC,GAIpCC,EAAqC,IAAI5nD,IAGzC6nD,EAAmB,IAAIr1J,IAGvBs1J,EAAqB,EAKrBC,GAA2B,EAG3BC,EAAiB,IAAIx1J,IAGrBy1J,EAAmB,IAAIjoD,IAGvBkoD,EAAmB,IAAI11J,IAGvB21J,EAAiB,IAAI31J,IAIrB41J,EAAkB,IAAIpoD,IAMtBqoD,EAAkB,IAAI71J,IAItB81J,EAAmB,IAAI91J,IAIvB+1J,EAAqB,IAAI/1J,IAOzBg2J,GAA0B,EA+G9B,SAASC,EACPC,EACAC,QAAA,IAAAA,IAAAA,EAGI,CAAC,GAEL3gF,EAAKg0E,GAAA,GACAh0E,EACA0gF,GAKL,IAAIE,EAA8B,GAC9BC,EAAgC,GAEhCxD,EAAOC,mBACTt9E,EAAMk/E,SAASr1J,SAAQ,CAACi3J,EAASn8J,KACT,SAAlBm8J,EAAQ9gF,QACNogF,EAAgB/qC,IAAI1wH,GAEtBk8J,EAAoBj/K,KAAK+iB,GAIzBi8J,EAAkBh/K,KAAK+iB,GAE1B,IAOL,IAAIi5J,GAAa/zJ,SAASk3J,GACxBA,EAAW/gF,EAAO,CAChBogF,gBAAiBS,EACjBG,4BAA6BL,EAAKM,mBAClCC,oBAAuC,IAAnBP,EAAKtsB,cAKzBgpB,EAAOC,oBACTsD,EAAkB/2J,SAASlF,GAAQq7E,EAAMk/E,SAASj4C,OAAOtiH,KACzDk8J,EAAoBh3J,SAASlF,GAAQw8J,GAAcx8J,KAEvD,CAOA,SAASy8J,EACP9yI,EACAoyI,EAA0EW,GAC/B,IAAAC,EAAAC,EAAA,IAcvCtC,GAdJ,UAAE5qB,QAAS,IAAAgtB,EAA8B,CAAC,EAACA,EAOvCG,EACkB,MAApBxhF,EAAMi/E,YACyB,MAA/Bj/E,EAAM6+E,WAAWjD,YACjB6F,GAAiBzhF,EAAM6+E,WAAWjD,aACP,YAA3B57E,EAAM6+E,WAAW7+E,QACe,KAAlB,OAAdshF,EAAAhzI,EAAS0xD,YAAK,EAAdshF,EAAgBI,aAKdzC,EAFAyB,EAASzB,WACP7hL,OAAOg1C,KAAKsuI,EAASzB,YAAY1iL,OAAS,EAC/BmkL,EAASzB,WAGT,KAENuC,EAEIxhF,EAAMi/E,WAGN,KAIf,IAAIT,EAAakC,EAASlC,WACtBmD,GACE3hF,EAAMw+E,WACNkC,EAASlC,WACTkC,EAASpiB,SAAW,GACpBoiB,EAASlsJ,QAEXwrE,EAAMw+E,WAINW,EAAWn/E,EAAMm/E,SACjBA,EAASj3K,KAAO,IAClBi3K,EAAW,IAAI30J,IAAI20J,GACnBA,EAASt1J,SAAQ,CAAC3O,EAAGhL,IAAMivK,EAAS10J,IAAIva,EAAGgsK,OAK7C,IAsBI+E,EAtBAlC,GAC4B,IAA9BM,GACgC,MAA/Br/E,EAAM6+E,WAAWjD,YAChB6F,GAAiBzhF,EAAM6+E,WAAWjD,cACF,KAAhC,OAAA2F,EAAAjzI,EAAS0xD,YAAT,EAAAuhF,EAAgBG,aAqBpB,GAlBI7E,IACFE,EAAaF,EACbA,OAAqB1+K,GAGnBshL,GAEOL,IAAkB/L,GAAcqB,MAEhC0K,IAAkB/L,GAAc4B,KACzCr8H,EAAK67H,QAAQ7yK,KAAK0sC,EAAUA,EAAS0xD,OAC5Bo/E,IAAkB/L,GAAcgC,SACzCz8H,EAAK67H,QAAQ9mK,QAAQ2gC,EAAUA,EAAS0xD,QAMtCo/E,IAAkB/L,GAAcqB,IAAK,CAEvC,IAAIkN,EAAarC,EAAuBj7J,IAAI07E,EAAM1xD,SAASE,UACvDozI,GAAcA,EAAWvsC,IAAI/mG,EAASE,UACxCyyI,EAAqB,CACnBY,gBAAiB7hF,EAAM1xD,SACvBwzI,aAAcxzI,GAEPixI,EAAuBlqC,IAAI/mG,EAASE,YAG7CyyI,EAAqB,CACnBY,gBAAiBvzI,EACjBwzI,aAAc9hF,EAAM1xD,gBAGnB,GAAIgxI,EAA8B,CAEvC,IAAIyC,EAAUxC,EAAuBj7J,IAAI07E,EAAM1xD,SAASE,UACpDuzI,EACFA,EAAQ9uK,IAAIq7B,EAASE,WAErBuzI,EAAU,IAAI/pD,IAAY,CAAC1pF,EAASE,WACpC+wI,EAAuB90J,IAAIu1E,EAAM1xD,SAASE,SAAUuzI,IAEtDd,EAAqB,CACnBY,gBAAiB7hF,EAAM1xD,SACvBwzI,aAAcxzI,EAEjB,CAEDmyI,EAAWzM,GAAC,CAAD,EAEJ0M,EAAU,CACbzB,aACAT,aACAI,cAAeQ,EACf9wI,WACA6kE,aAAa,EACb0rE,WAAYlD,GACZqD,aAAc,OACdF,sBAAuBkD,GACrB1zI,EACAoyI,EAASpiB,SAAWt+D,EAAMs+D,SAE5BygB,qBACAI,aAEF,CACE8B,qBACA5sB,WAAyB,IAAdA,IAKf+qB,EAAgB/L,GAAcqB,IAC9B2K,GAA4B,EAC5BC,GAA+B,EAC/BG,GAA8B,EAC9BC,GAAyB,EACzBC,EAA0B,EAC5B,CAoJAsC,eAAeC,EACbtD,EACAtwI,EACAqyI,GAgBAhC,GAA+BA,EAA4BwD,QAC3DxD,EAA8B,KAC9BS,EAAgBR,EAChBa,GACoD,KAAjDkB,GAAQA,EAAKyB,gCAgnDlB,SACE9zI,EACAgwH,GAEA,GAAIuf,GAAwBE,EAAmB,CAC7C,IAAIp5J,EAAM09J,GAAa/zI,EAAUgwH,GACjCuf,EAAqBl5J,GAAOo5J,GAC7B,CACH,CApnDEuE,CAAmBtiF,EAAM1xD,SAAU0xD,EAAMs+D,SACzC+gB,GAAkE,KAArCsB,GAAQA,EAAK5B,oBAE1CO,GAAuE,KAAvCqB,GAAQA,EAAK4B,sBAE7C,IAAIC,EAAc3F,GAAsBE,EACpC0F,EAAoB9B,GAAQA,EAAK+B,mBACjCpkB,EAAU6X,GAAYqM,EAAal0I,EAAU+nI,GAC7ChiB,GAAyC,KAA5BssB,GAAQA,EAAKtsB,WAE1BqqB,EAAWJ,GAAchgB,EAASkkB,EAAal0I,EAASE,UAM5D,GALIkwI,EAASx5E,QAAUw5E,EAASpgB,UAC9BA,EAAUogB,EAASpgB,UAIhBA,EAAS,CACZ,IAAI,MAAEv0I,EAAK,gBAAE44J,EAAe,MAAE7M,GAAU8M,GACtCt0I,EAASE,UAaX,YAXA4yI,EACE9yI,EACA,CACEgwH,QAASqkB,EACTnE,WAAY,CAAC,EACbhqJ,OAAQ,CACN,CAACshJ,EAAMj+I,IAAK9N,IAGhB,CAAEsqI,aAGL,CAQD,GACEr0D,EAAMmT,cACLusE,GA00HP,SAA0BzvK,EAAalU,GACrC,GAAIkU,EAAEu+B,WAAazyC,EAAEyyC,UAAYv+B,EAAEmgI,SAAWr0I,EAAEq0I,OAC9C,OAAO,EAGT,GAAe,KAAXngI,EAAEyjK,KAEJ,MAAkB,KAAX33K,EAAE23K,KACJ,GAAIzjK,EAAEyjK,OAAS33K,EAAE23K,KAEtB,OAAO,EACF,GAAe,KAAX33K,EAAE23K,KAEX,OAAO,EAKT,OAAO,CACT,CA51HMmP,CAAiB7iF,EAAM1xD,SAAUA,MAC/BqyI,GAAQA,EAAKmC,YAAcrB,GAAiBd,EAAKmC,WAAWlH,aAG9D,YADAwF,EAAmB9yI,EAAU,CAAEgwH,WAAW,CAAEjK,cAK9CsqB,EAA8B,IAAIoE,gBAClC,IAMIC,EANAtrJ,EAAUurJ,GACZrqI,EAAK67H,QACLnmI,EACAqwI,EAA4BuE,OAC5BvC,GAAQA,EAAKmC,YAIf,GAAInC,GAAQA,EAAKwC,aAKfH,EAAsB,CACpBI,GAAoB9kB,GAASwX,MAAMj+I,GACnC,CAAEjO,KAAM2rJ,GAAWxrJ,MAAOA,MAAO42J,EAAKwC,oBAEnC,GACLxC,GACAA,EAAKmC,YACLrB,GAAiBd,EAAKmC,WAAWlH,YACjC,CAEA,IAAIyH,QAyFRpB,eACEvqJ,EACA4W,EACAw0I,EACAxkB,EACAglB,EACA3C,QAAA,IAAAA,IAAAA,EAAmD,CAAC,GAEpD4C,IAGA,IA8CIp+J,EA9CA05J,EAy9HR,SACEvwI,EACAw0I,GAEA,IAAIjE,EAA6C,CAC/C7+E,MAAO,aACP1xD,WACAstI,WAAYkH,EAAWlH,WACvBC,WAAYiH,EAAWjH,WACvBC,YAAagH,EAAWhH,YACxBC,SAAU+G,EAAW/G,SACrBC,KAAM8G,EAAW9G,KACjB91G,KAAM48G,EAAW58G,MAEnB,OAAO24G,CACT,CAx+HqB2E,CAAwBl1I,EAAUw0I,GAGnD,GAFArC,EAAY,CAAE5B,cAAc,CAAExqB,WAA8B,IAAnBssB,EAAKtsB,YAE1CivB,EAAY,CACd,IAAIG,QAAuBC,GACzBplB,EACAhwH,EAASE,SACT9W,EAAQwrJ,QAEV,GAA4B,YAAxBO,EAAe75J,KACjB,MAAO,CAAE+5J,gBAAgB,GACpB,GAA4B,UAAxBF,EAAe75J,KAAkB,CAC1C,IAAI,WAAEg6J,EAAU,MAAE75J,GAAU85J,GAC1Bv1I,EAASE,SACTi1I,GAEF,MAAO,CACLnlB,QAASmlB,EAAeK,eACxBd,oBAAqB,CACnBY,EACA,CACEh6J,KAAM2rJ,GAAWxrJ,MACjBA,UAIP,CAAM,IAAK05J,EAAenlB,QAAS,CAClC,IAAI,gBAAEqkB,EAAe,MAAE54J,EAAK,MAAE+rJ,GAAU8M,GACtCt0I,EAASE,UAEX,MAAO,CACL8vH,QAASqkB,EACTK,oBAAqB,CACnBlN,EAAMj+I,GACN,CACEjO,KAAM2rJ,GAAWxrJ,MACjBA,UAIP,CACCu0I,EAAUmlB,EAAenlB,OAE5B,CAID,IAAIylB,EAAcC,GAAe1lB,EAAShwH,GAE1C,GAAKy1I,EAAYjO,MAAMr3I,QAAWslJ,EAAYjO,MAAMzd,KAS7C,CASL,GAFAlzI,SANoB8+J,EAClB,SACAvsJ,EACA,CAACqsJ,GACDzlB,IAEe,GAEb5mI,EAAQwrJ,OAAOgB,QACjB,MAAO,CAAEP,gBAAgB,EAE5B,MApBCx+J,EAAS,CACPyE,KAAM2rJ,GAAWxrJ,MACjBA,MAAOq0J,GAAuB,IAAK,CACjCzmJ,OAAQD,EAAQC,OAChB6W,SAAUF,EAASE,SACnB21I,QAASJ,EAAYjO,MAAMj+I,MAiBjC,GAAIusJ,GAAiBj/J,GAAS,CAC5B,IAAIxX,EACJ,GAAIgzK,GAAwB,MAAhBA,EAAKhzK,QACfA,EAAUgzK,EAAKhzK,YACV,CASLA,EALe02K,GACbl/J,EAAOiT,SAASksJ,QAAQhgK,IAAI,YAC5B,IAAI+kB,IAAI3R,EAAQ0R,KAChBitI,KAEqBr2E,EAAM1xD,SAASE,SAAWwxD,EAAM1xD,SAAS8hG,MACjE,CAKD,aAJMm0C,EAAwB7sJ,EAASvS,EAAQ,CAC7C29J,aACAn1K,YAEK,CAAEg2K,gBAAgB,EAC1B,CAED,GAAIa,GAAiBr/J,GACnB,MAAMi5J,GAAuB,IAAK,CAAEx0J,KAAM,iBAG5C,GAAI66J,GAAct/J,GAAS,CAGzB,IAAIu/J,EAAgBtB,GAAoB9kB,EAASylB,EAAYjO,MAAMj+I,IAWnE,OAJ+B,KAA1B8oJ,GAAQA,EAAKhzK,WAChByxK,EAAgB/L,GAAc4B,MAGzB,CACL3W,UACA0kB,oBAAqB,CAAC0B,EAAc5O,MAAMj+I,GAAI1S,GAEjD,CAED,MAAO,CACLm5I,UACA0kB,oBAAqB,CAACe,EAAYjO,MAAMj+I,GAAI1S,GAEhD,CA9N6Bw/J,CACvBjtJ,EACA4W,EACAqyI,EAAKmC,WACLxkB,EACAogB,EAASx5E,OACT,CAAEv3F,QAASgzK,EAAKhzK,QAAS0mJ,cAG3B,GAAIgvB,EAAaM,eACf,OAKF,GAAIN,EAAaL,oBAAqB,CACpC,IAAKmB,EAASh/J,GAAUk+J,EAAaL,oBACrC,GACEyB,GAAct/J,IACdi2J,GAAqBj2J,EAAO4E,QACJ,MAAxB5E,EAAO4E,MAAM4jB,OAWb,OATAgxI,EAA8B,UAE9ByC,EAAmB9yI,EAAU,CAC3BgwH,QAAS+kB,EAAa/kB,QACtBkgB,WAAY,CAAC,EACbhqJ,OAAQ,CACN,CAAC2vJ,GAAUh/J,EAAO4E,QAKzB,CAEDu0I,EAAU+kB,EAAa/kB,SAAWA,EAClC0kB,EAAsBK,EAAaL,oBACnCP,EAAoBmC,GAAqBt2I,EAAUqyI,EAAKmC,YACxDzuB,GAAY,EAEZqqB,EAASx5E,QAAS,EAGlBxtE,EAAUurJ,GACRrqI,EAAK67H,QACL/8I,EAAQ0R,IACR1R,EAAQwrJ,OAEX,CAGD,IAAI,eACFS,EACArlB,QAASumB,EAAc,WACvBrG,EAAU,OACVhqJ,SA2KJytJ,eACEvqJ,EACA4W,EACAgwH,EACAglB,EACAZ,EACAI,EACAgC,EACAn3K,EACAo3K,EACA1wB,EACA2uB,GAGA,IAAIP,EACFC,GAAsBkC,GAAqBt2I,EAAUw0I,GAInDkC,EACFlC,GACAgC,GACAG,GAA4BxC,GAQ1ByC,GACDzF,KACCpC,EAAOG,sBAAwBuH,GAOnC,GAAIzB,EAAY,CACd,GAAI4B,EAA6B,CAC/B,IAAIjG,EAAakG,EAAqBnC,GACtCvC,EAAWzM,GAAC,CAER6K,WAAY4D,QACOtkL,IAAf8gL,EAA2B,CAAEA,cAAe,CAAC,GAEnD,CACE5qB,aAGL,CAED,IAAIovB,QAAuBC,GACzBplB,EACAhwH,EAASE,SACT9W,EAAQwrJ,QAGV,GAA4B,YAAxBO,EAAe75J,KACjB,MAAO,CAAE+5J,gBAAgB,GACpB,GAA4B,UAAxBF,EAAe75J,KAAkB,CAC1C,IAAI,WAAEg6J,EAAU,MAAE75J,GAAU85J,GAC1Bv1I,EAASE,SACTi1I,GAEF,MAAO,CACLnlB,QAASmlB,EAAeK,eACxBtF,WAAY,CAAC,EACbhqJ,OAAQ,CACN,CAACovJ,GAAa75J,GAGnB,CAAM,IAAK05J,EAAenlB,QAAS,CAClC,IAAI,MAAEv0I,EAAK,gBAAE44J,EAAe,MAAE7M,GAAU8M,GACtCt0I,EAASE,UAEX,MAAO,CACL8vH,QAASqkB,EACTnE,WAAY,CAAC,EACbhqJ,OAAQ,CACN,CAACshJ,EAAMj+I,IAAK9N,GAGjB,CACCu0I,EAAUmlB,EAAenlB,OAE5B,CAED,IAAIkkB,EAAc3F,GAAsBE,GACnCqI,EAAeC,GAAwBC,GAC1C1sI,EAAK67H,QACLz0E,EACAs+D,EACA0mB,EACA12I,EACA+uI,EAAOG,sBAA4C,IAArBuH,EAC9B1H,EAAOK,+BACPgC,EACAC,EACAC,EACAQ,EACAF,EACAD,EACAuC,EACAnM,EACA2M,GAeF,GATAuC,IACGpB,KACG7lB,GAAWA,EAAQiQ,MAAM/zJ,GAAMA,EAAEs7J,MAAMj+I,KAAOssJ,MAC/CiB,GAAiBA,EAAc7W,MAAM/zJ,GAAMA,EAAEs7J,MAAMj+I,KAAOssJ,MAG/DpE,IAA4BD,EAGC,IAAzBsF,EAAc7oL,QAAgD,IAAhC8oL,EAAqB9oL,OAAc,CACnE,IAAIipL,EAAkBC,KAgBtB,OAfArE,EACE9yI,EAAQ0lI,GAAA,CAEN1V,UACAkgB,WAAY,CAAC,EAEbhqJ,OACEwuJ,GAAuByB,GAAczB,EAAoB,IACrD,CAAE,CAACA,EAAoB,IAAKA,EAAoB,GAAGj5J,OACnD,MACH27J,GAAuB1C,GACtBwC,EAAkB,CAAEtG,SAAU,IAAI10J,IAAIw1E,EAAMk/E,WAAc,CAAC,GAEjE,CAAE7qB,cAEG,CAAEsvB,gBAAgB,EAC1B,CAED,GAAIuB,EAA6B,CAC/B,IAAIS,EAAgC,CAAC,EACrC,IAAKrC,EAAY,CAEfqC,EAAQ9G,WAAa4D,EACrB,IAAIxD,EAAakG,EAAqBnC,QACnB7kL,IAAf8gL,IACF0G,EAAQ1G,WAAaA,EAExB,CACGoG,EAAqB9oL,OAAS,IAChCopL,EAAQzG,SAqId,SACEmG,GAUA,OARAA,EAAqBx7J,SAAS2rH,IAC5B,IAAIsrC,EAAU9gF,EAAMk/E,SAAS56J,IAAIkxH,EAAG7wH,KAChCihK,EAAsBC,QACxB1nL,EACA2iL,EAAUA,EAAQx0J,UAAOnuB,GAE3B6hG,EAAMk/E,SAASz0J,IAAI+qH,EAAG7wH,IAAKihK,EAAoB,IAE1C,IAAIp7J,IAAIw1E,EAAMk/E,SACvB,CAjJyB4G,CAA+BT,IAEpD5E,EAAYkF,EAAS,CAAEtxB,aACxB,CAEDgxB,EAAqBx7J,SAAS2rH,IACxBqqC,EAAiBxqC,IAAIG,EAAG7wH,MAC1BohK,GAAavwC,EAAG7wH,KAEd6wH,EAAGwwC,YAILnG,EAAiBp1J,IAAI+qH,EAAG7wH,IAAK6wH,EAAGwwC,WACjC,IAIH,IAAIC,EAAiCA,IACnCZ,EAAqBx7J,SAASgN,GAAMkvJ,GAAalvJ,EAAElS,OACjDg6J,GACFA,EAA4BuE,OAAOpmJ,iBACjC,QACAmpJ,GAIJ,IAAI,cAAEC,EAAa,eAAEC,SACbC,EACJpmF,EAAMs+D,QACNA,EACA8mB,EACAC,EACA3tJ,GAGJ,GAAIA,EAAQwrJ,OAAOgB,QACjB,MAAO,CAAEP,gBAAgB,GAMvBhF,GACFA,EAA4BuE,OAAOnmJ,oBACjC,QACAkpJ,GAGJZ,EAAqBx7J,SAAS2rH,GAAOqqC,EAAiB54C,OAAOuO,EAAG7wH,OAGhE,IAAI0hK,EAAWC,GAAa,IAAIJ,KAAkBC,IAClD,GAAIE,EAAU,CACZ,GAAIA,EAAS3kL,KAAO0jL,EAAc7oL,OAAQ,CAIxC,IAAIgqL,EACFlB,EAAqBgB,EAAS3kL,IAAM0jL,EAAc7oL,QAAQooB,IAC5Ds7J,EAAiBhtK,IAAIszK,EACtB,CAID,aAHMhC,EAAwB7sJ,EAAS2uJ,EAASlhK,OAAQ,CACtDxX,YAEK,CAAEg2K,gBAAgB,EAC1B,CAGD,IAAI,WAAEnF,EAAU,OAAEhqJ,GAAWgyJ,GAC3BxmF,EACAs+D,EACA8mB,EACAc,EACAlD,EACAqC,EACAc,EACA9F,GAIFA,EAAgBx2J,SAAQ,CAAC48J,EAActC,KACrCsC,EAAaC,WAAWxC,KAIlBA,GAAWuC,EAAav/D,OAC1Bm5D,EAAgBp5C,OAAOk9C,EACxB,GACD,IAIA9G,EAAOG,qBAAuBuH,GAAoB/kF,EAAMxrE,QAC1Dp3B,OAAOg4J,QAAQp1D,EAAMxrE,QAClBkE,QAAOiG,IAAA,IAAE9G,GAAG8G,EAAA,OAAMymJ,EAAc7W,MAAM/zJ,GAAMA,EAAEs7J,MAAMj+I,KAAOA,GAAG,IAC9DhO,SAAQyV,IAAqB,IAAnB6kJ,EAASp6J,GAAMuV,EACxB9K,EAASp3B,OAAOG,OAAOi3B,GAAU,CAAC,EAAG,CAAE,CAAC2vJ,GAAUp6J,GAAQ,IAIhE,IAAIy7J,EAAkBC,KAClBkB,EAAqBC,GAAqB7G,GAC1C8G,EACFrB,GAAmBmB,GAAsBtB,EAAqB9oL,OAAS,EAEzE,OAAAy3K,GAAA,CACE1V,UACAkgB,aACAhqJ,UACIqyJ,EAAuB,CAAE3H,SAAU,IAAI10J,IAAIw1E,EAAMk/E,WAAc,CAAC,EAExE,CAlbY4H,CACRpvJ,EACA4W,EACAgwH,EACAogB,EAASx5E,OACTu9E,EACA9B,GAAQA,EAAKmC,WACbnC,GAAQA,EAAKmE,kBACbnE,GAAQA,EAAKhzK,QACbgzK,IAAkC,IAA1BA,EAAKoE,iBACb1wB,EACA2uB,GAGEW,IAOJhF,EAA8B,KAE9ByC,EAAmB9yI,EAAQ0lI,GAAA,CACzB1V,QAASumB,GAAkBvmB,GACxBonB,GAAuB1C,GAAoB,CAC9CxE,aACAhqJ,YAEJ,CAuZA,SAAS2wJ,EACPnC,GAEA,OAAIA,IAAwByB,GAAczB,EAAoB,IAIrD,CACL,CAACA,EAAoB,IAAKA,EAAoB,GAAG12J,MAE1C0zE,EAAMi/E,WAC8B,IAAzC7hL,OAAOg1C,KAAK4tD,EAAMi/E,YAAY1iL,OACzB,KAEAyjG,EAAMi/E,gBAJV,CAOT,CAiiBAgD,eAAesC,EACb7sJ,EACA2uJ,EAAwBU,GASlB,IARN,WACEjE,EAAU,kBACVgC,EAAiB,QACjBn3K,cAKE,CAAC,EAACo5K,EAEFV,EAASjuJ,SAASksJ,QAAQjvC,IAAI,wBAChCqqC,GAAyB,GAG3B,IAAIpxI,EAAW+3I,EAASjuJ,SAASksJ,QAAQhgK,IAAI,YAC7CuvJ,GAAUvlI,EAAU,uDACpBA,EAAW+1I,GACT/1I,EACA,IAAIjF,IAAI3R,EAAQ0R,KAChBitI,GAEF,IAAI2Q,EAAmBrT,GAAe3zE,EAAM1xD,SAAUA,EAAU,CAC9DozI,aAAa,IAGf,GAAIhF,EAAW,CACb,IAAIuK,GAAmB,EAEvB,GAAIZ,EAASjuJ,SAASksJ,QAAQjvC,IAAI,2BAEhC4xC,GAAmB,OACd,GAAI7K,GAAmBh4I,KAAKkK,GAAW,CAC5C,MAAMlF,EAAMwP,EAAK67H,QAAQI,UAAUvmI,GACnC24I,EAEE79I,EAAImF,SAAWkuI,EAAanuI,SAASC,QAEI,MAAzCioI,GAAcptI,EAAIoF,SAAU6nI,EAC/B,CAED,GAAI4Q,EAMF,YALIt5K,EACF8uK,EAAanuI,SAAS3gC,QAAQ2gC,GAE9BmuI,EAAanuI,SAAS/wC,OAAO+wC,GAIlC,CAIDqwI,EAA8B,KAE9B,IAAIuI,GACU,IAAZv5K,GAAoB04K,EAASjuJ,SAASksJ,QAAQjvC,IAAI,mBAC9Cg+B,GAAcgC,QACdhC,GAAc4B,MAIhB,WAAE2G,EAAU,WAAEC,EAAU,YAAEC,GAAgB97E,EAAM6+E,YAEjDiE,IACAgC,GACDlJ,GACAC,GACAC,IAEAgH,EAAamC,GAA4BjlF,EAAM6+E,aAMjD,IAAImG,EAAmBlC,GAAcgC,EACrC,GACEpJ,GAAkCrmC,IAAIgxC,EAASjuJ,SAASuV,SACxDq3I,GACAvD,GAAiBuD,EAAiBpJ,kBAE5BsG,EAAgBgF,EAAuBF,EAAkB,CAC7DlE,WAAU9O,GAAA,GACLgR,EAAgB,CACnBnJ,WAAYvtI,IAGdywI,mBAAoBM,QAEjB,CAGL,IAAIqD,EAAqBkC,GACvBoC,EACAlE,SAEIZ,EAAgBgF,EAAuBF,EAAkB,CAC7DtE,qBAEAoC,oBAEA/F,mBAAoBM,GAEvB,CACH,CAIA4C,eAAegC,EACbr6J,EACA8N,EACA0tJ,EACA9mB,GAEA,IACE,IAAI6oB,QAAgBC,GAClBpK,EACApzJ,EACA8N,EACA0tJ,EACA9mB,EACAuX,EACAF,GAGF,aAAa92D,QAAQ6tD,IACnBya,EAAQh9J,KAAI,CAAChF,EAAQxjB,KACnB,GAAI0lL,GAAwBliK,GAAS,CACnC,IAAIiT,EAAWjT,EAAOA,OACtB,MAAO,CACLyE,KAAM2rJ,GAAW8Q,SACjBjuJ,SAAUkvJ,GACRlvJ,EACAV,EACA0tJ,EAAczjL,GAAGm0K,MAAMj+I,GACvBymI,EACA+X,EACAgH,EAAOtD,sBAGZ,CAED,OAAOwN,GAAiCpiK,EAAO,KAGnD,MAAO5iB,IAGP,OAAO6iL,EAAcj7J,KAAI,KAAM,CAC7BP,KAAM2rJ,GAAWxrJ,MACjBA,MAAOxnB,MAEV,CACH,CAEA0/K,eAAemE,EACboB,EACAlpB,EACA8mB,EACAqC,EACA/vJ,GAEA,IAAKwuJ,KAAkBC,SAAwBtnE,QAAQ6tD,IAAI,CACzD0Y,EAAc7oL,OACV0nL,EAAiB,SAAUvsJ,EAAS0tJ,EAAe9mB,GACnD,MACDmpB,EAAet9J,KAAK0M,IACrB,GAAIA,EAAEynI,SAAWznI,EAAE0nF,OAAS1nF,EAAEmvJ,WAAY,CAMxC,OAAO/B,EACL,SANmBhB,GACnBrqI,EAAK67H,QACL59I,EAAEkS,KACFlS,EAAEmvJ,WAAW9C,QAKb,CAACrsJ,EAAE0nF,OACH1nF,EAAEynI,SACFr7C,MAAMj2G,GAAMA,EAAE,IACjB,CACC,OAAO6xG,QAAQ24B,QAAoB,CACjC5tH,KAAM2rJ,GAAWxrJ,MACjBA,MAAOq0J,GAAuB,IAAK,CACjC5vI,SAAU3X,EAAEkS,QAGjB,MAsBL,aAlBM81E,QAAQ6tD,IAAI,CAChBgb,GACEF,EACApC,EACAc,EACAA,EAAc/7J,KAAI,IAAMuN,EAAQwrJ,UAChC,EACAljF,EAAMw+E,YAERkJ,GACEF,EACAC,EAAet9J,KAAK0M,GAAMA,EAAE0nF,QAC5B4nE,EACAsB,EAAet9J,KAAK0M,GAAOA,EAAEmvJ,WAAanvJ,EAAEmvJ,WAAW9C,OAAS,QAChE,KAIG,CACLgD,gBACAC,iBAEJ,CAEA,SAAS5C,IAEP7D,GAAyB,EAIzBC,EAAwB/9K,QAAQ2jL,MAGhCrF,EAAiBr2J,SAAQ,CAAC3O,EAAGyJ,KACvBk7J,EAAiBxqC,IAAI1wH,KACvBi7J,EAAsB3sK,IAAI0R,GAC1BohK,GAAaphK,GACd,GAEL,CAEA,SAASgjK,EACPhjK,EACAm8J,EACAH,QAAA,IAAAA,IAAAA,EAAgC,CAAC,GAEjC3gF,EAAMk/E,SAASz0J,IAAI9F,EAAKm8J,GACxBL,EACE,CAAEvB,SAAU,IAAI10J,IAAIw1E,EAAMk/E,WAC1B,CAAE7qB,WAAwC,KAA5BssB,GAAQA,EAAKtsB,YAE/B,CAEA,SAASuzB,GACPjjK,EACAw/J,EACAp6J,EACA42J,QAAA,IAAAA,IAAAA,EAAgC,CAAC,GAEjC,IAAI+D,EAAgBtB,GAAoBpjF,EAAMs+D,QAAS6lB,GACvDhD,GAAcx8J,GACd87J,EACE,CACEjsJ,OAAQ,CACN,CAACkwJ,EAAc5O,MAAMj+I,IAAK9N,GAE5Bm1J,SAAU,IAAI10J,IAAIw1E,EAAMk/E,WAE1B,CAAE7qB,WAAwC,KAA5BssB,GAAQA,EAAKtsB,YAE/B,CAEA,SAASwzB,GAAwBljK,GAS/B,OARI04J,EAAOC,oBACT6C,EAAe11J,IAAI9F,GAAMw7J,EAAe77J,IAAIK,IAAQ,GAAK,GAGrDy7J,EAAgB/qC,IAAI1wH,IACtBy7J,EAAgBn5C,OAAOtiH,IAGpBq7E,EAAMk/E,SAAS56J,IAAIK,IAAQs3J,EACpC,CAEA,SAASkF,GAAcx8J,GACrB,IAAIm8J,EAAU9gF,EAAMk/E,SAAS56J,IAAIK,IAK/Bk7J,EAAiBxqC,IAAI1wH,IACnBm8J,GAA6B,YAAlBA,EAAQ9gF,OAAuBggF,EAAe3qC,IAAI1wH,IAE/DohK,GAAaphK,GAEfu7J,EAAiBj5C,OAAOtiH,GACxBq7J,EAAe/4C,OAAOtiH,GACtBs7J,EAAiBh5C,OAAOtiH,GACxBy7J,EAAgBn5C,OAAOtiH,GACvBi7J,EAAsB34C,OAAOtiH,GAC7Bq7E,EAAMk/E,SAASj4C,OAAOtiH,EACxB,CAiBA,SAASohK,GAAaphK,GACpB,IAAIqhK,EAAanG,EAAiBv7J,IAAIK,GACtCkvJ,GAAUmS,EAA0C,8BAAArhK,GACpDqhK,EAAW7D,QACXtC,EAAiB54C,OAAOtiH,EAC1B,CAEA,SAASmjK,GAAiB11I,GACxB,IAAK,IAAIztB,KAAOytB,EAAM,CACpB,IACI21I,EAAcC,GADJH,GAAWljK,GACgB2H,MACzC0zE,EAAMk/E,SAASz0J,IAAI9F,EAAKojK,EACzB,CACH,CAEA,SAAStC,KACP,IAAIwC,EAAW,GACXzC,GAAkB,EACtB,IAAK,IAAI7gK,KAAOs7J,EAAkB,CAChC,IAAIa,EAAU9gF,EAAMk/E,SAAS56J,IAAIK,GACjCkvJ,GAAUiN,EAA8B,qBAAAn8J,GAClB,YAAlBm8J,EAAQ9gF,QACVigF,EAAiBh5C,OAAOtiH,GACxBsjK,EAASrmL,KAAK+iB,GACd6gK,GAAkB,EAErB,CAED,OADAsC,GAAiBG,GACVzC,CACT,CAEA,SAASoB,GAAqBsB,GAC5B,IAAIC,EAAa,GACjB,IAAK,IAAKxjK,EAAKkT,KAAOmoJ,EACpB,GAAInoJ,EAAKqwJ,EAAU,CACjB,IAAIpH,EAAU9gF,EAAMk/E,SAAS56J,IAAIK,GACjCkvJ,GAAUiN,EAA8B,qBAAAn8J,GAClB,YAAlBm8J,EAAQ9gF,QACV+lF,GAAaphK,GACbq7J,EAAe/4C,OAAOtiH,GACtBwjK,EAAWvmL,KAAK+iB,GAEnB,CAGH,OADAmjK,GAAiBK,GACVA,EAAW5rL,OAAS,CAC7B,CAYA,SAAS6rL,GAAczjK,GACrBq7E,EAAMm/E,SAASl4C,OAAOtiH,GACtB27J,EAAiBr5C,OAAOtiH,EAC1B,CAGA,SAAS0jK,GAAc1jK,EAAa2jK,GAClC,IAAIC,EAAUvoF,EAAMm/E,SAAS76J,IAAIK,IAAQu3J,GAIzCrI,GACqB,cAAlB0U,EAAQvoF,OAA8C,YAArBsoF,EAAWtoF,OACxB,YAAlBuoF,EAAQvoF,OAA4C,YAArBsoF,EAAWtoF,OACxB,YAAlBuoF,EAAQvoF,OAA4C,eAArBsoF,EAAWtoF,OACxB,YAAlBuoF,EAAQvoF,OAA4C,cAArBsoF,EAAWtoF,OACxB,eAAlBuoF,EAAQvoF,OAA+C,cAArBsoF,EAAWtoF,MAAsB,qCACjCuoF,EAAQvoF,MAAK,OAAOsoF,EAAWtoF,OAGtE,IAAIm/E,EAAW,IAAI30J,IAAIw1E,EAAMm/E,UAC7BA,EAAS10J,IAAI9F,EAAK2jK,GAClB7H,EAAY,CAAEtB,YAChB,CAEA,SAASqJ,GAAqBzoJ,GAQ7B,IAR8B,gBAC7B8hJ,EAAe,aACfC,EAAY,cACZlD,GAKD7+I,EACC,GAA8B,IAA1BugJ,EAAiBp4K,KACnB,OAKEo4K,EAAiBp4K,KAAO,GAC1BkhK,IAAQ,EAAO,gDAGjB,IAAIhU,EAAUjzJ,MAAM/F,KAAKkkL,EAAiBlrB,YACrCqzB,EAAYC,GAAmBtzB,EAAQA,EAAQ74J,OAAS,GACzDgsL,EAAUvoF,EAAMm/E,SAAS76J,IAAImkK,GAEjC,OAAIF,GAA6B,eAAlBA,EAAQvoF,WAAvB,EAQI0oF,EAAgB,CAAE7G,kBAAiBC,eAAclD,kBAC5C6J,OADT,CAGF,CAEA,SAAS7F,GAAsBp0I,GAC7B,IAAIzkB,EAAQq0J,GAAuB,IAAK,CAAE5vI,aACtCg0I,EAAc3F,GAAsBE,GACpC,QAAEze,EAAO,MAAEwX,GAAUuI,GAAuBmE,GAKhD,OAFA+C,KAEO,CAAE5C,gBAAiBrkB,EAASwX,QAAO/rJ,QAC5C,CAEA,SAAS85J,GACPr1I,EACAi1I,GAEA,MAAO,CACLG,WAAYR,GAAoBK,EAAeK,gBAAgBhO,MAAMj+I,GACrE9N,MAAOq0J,GAAuB,IAAK,CACjCx0J,KAAM,kBACN4kB,WACAnoB,QAC0B,MAAxBo9J,EAAe15J,OAAiB,YAAa05J,EAAe15J,MACxD05J,EAAe15J,MACfvjB,OAAOi9K,EAAe15J,SAGlC,CAEA,SAASw7J,GACPoD,GAEA,IAAIC,EAA8B,GAWlC,OAVAvI,EAAgBx2J,SAAQ,CAACg/J,EAAK1E,KACvBwE,IAAaA,EAAUxE,KAI1B0E,EAAIC,SACJF,EAAkBhnL,KAAKuiL,GACvB9D,EAAgBp5C,OAAOk9C,GACxB,IAEIyE,CACT,CA+BA,SAASvG,GAAa/zI,EAAoBgwH,GACxC,GAAIwf,EAAyB,CAC3B,IAAIn5J,EAAMm5J,EACRxvI,EACAgwH,EAAQn0I,KAAK3P,GDxhFL,SACd+jG,EACAigE,GAEA,IAAI,MAAE1I,EAAK,SAAEtnI,EAAQ,OAAE5W,GAAW2mF,EAClC,MAAO,CACL1mF,GAAIi+I,EAAMj+I,GACV2W,WACA5W,SACAtL,KAAMkyJ,EAAW1I,EAAMj+I,IACvBkxJ,OAAQjT,EAAMiT,OAElB,CC4gF2BC,CAA2BxuK,EAAGwlF,EAAMw+E,eAEzD,OAAO75J,GAAO2pB,EAAS3pB,GACxB,CACD,OAAO2pB,EAAS3pB,GAClB,CAYA,SAASq9J,GACP1zI,EACAgwH,GAEA,GAAIuf,EAAsB,CACxB,IAAIl5J,EAAM09J,GAAa/zI,EAAUgwH,GAC7B5lJ,EAAImlK,EAAqBl5J,GAC7B,GAAiB,kBAANjM,EACT,OAAOA,CAEV,CACD,OAAO,IACT,CAEA,SAAS4lK,GACPhgB,EACAkkB,EACAh0I,GAEA,GAAI2uI,EAAuB,CACzB,IAAK7e,EAAS,CAQZ,MAAO,CAAEp5D,QAAQ,EAAMo5D,QAPNgY,GACfkM,EACAh0I,EACA6nI,GACA,IAG4C,GAC/C,CAAM,CACL,IAAI4S,EAAY3qB,EAAQA,EAAQ/hK,OAAS,GAAGu5K,MAC5C,GACEmT,EAAUlgJ,OACU,MAAnBkgJ,EAAUlgJ,MAAgBkgJ,EAAUlgJ,KAAKivI,SAAS,OACnD,CAUA,MAAO,CAAE9yE,QAAQ,EAAMo5D,QANFgY,GACnBkM,EACAh0I,EACA6nI,GACA,GAGH,CACF,CACF,CAED,MAAO,CAAEnxE,QAAQ,EAAOo5D,QAAS,KACnC,CAiBA2jB,eAAeyB,GACbplB,EACA9vH,EACA00I,GAEA,IAAIY,EAAkDxlB,EAClDwX,EACFgO,EAAevnL,OAAS,EACpBunL,EAAeA,EAAevnL,OAAS,GAAGu5K,MAC1C,KACN,OAAa,CACX,IAAIoT,EAAiC,MAAtBrM,EACX2F,EAAc3F,GAAsBE,EACxC,UACQoM,GACJhM,EACA3uI,EACAs1I,EACAtB,EACA3M,EACAF,EACA4K,EACA2C,GAEF,MAAO3gL,IACP,MAAO,CAAEqnB,KAAM,QAASG,MAAOxnB,GAAGuhL,iBACnC,SAOKoF,IACFnM,EAAa,IAAIA,GAEpB,CAED,GAAImG,EAAOgB,QACT,MAAO,CAAEt6J,KAAM,WAGjB,IAAIw/J,EAAajT,GAAYqM,EAAah0I,EAAU6nI,GAChDgT,GAAe,EACnB,GAAID,EAAY,CACd,IAAIH,EAAYG,EAAWA,EAAW7sL,OAAS,GAAGu5K,MAElD,GAAImT,EAAUr8K,MAEZ,MAAO,CAAEgd,KAAM,UAAW00I,QAAS8qB,GAGrC,GAAIH,EAAUlgJ,MAAQkgJ,EAAUlgJ,KAAKxsC,OAAS,EAAG,CAC/C,GAAuB,MAAnB0sL,EAAUlgJ,KAOZ,MAAO,CAAEnf,KAAM,UAAW00I,QAAS8qB,GAHnCC,GAAe,CAKlB,CACF,CAED,IAAIC,EAAoBhT,GACtBkM,EACAh0I,EACA6nI,GACA,GAMF,IACGiT,GACDxF,EAAe35J,KAAK3P,GAAMA,EAAEs7J,MAAMj+I,KAAIntB,KAAK,OACzC4+K,EAAkBn/J,KAAK3P,GAAMA,EAAEs7J,MAAMj+I,KAAIntB,KAAK,KAEhD,MAAO,CAAEkf,KAAM,UAAW00I,QAAS+qB,EAAeD,EAAa,MAKjE,GAFAtF,EAAiBwF,EACjBxT,EAAQgO,EAAeA,EAAevnL,OAAS,GAAGu5K,MAC/B,MAAfA,EAAM/sI,KAER,MAAO,CAAEnf,KAAM,UAAW00I,QAASwlB,EAEtC,CACH,CA4EA,OAvCAhH,EAAS,CACP,YAAIzG,GACF,OAAOA,GAET,UAAIgH,GACF,OAAOA,GAET,SAAIr9E,GACF,OAAOA,GAET,UAAI01E,GACF,OAAOqH,GAET,UAAIrwK,GACF,OAAO+vK,GAETnqE,WAnyEF,WA4DE,GAzDAqrE,EAAkB/kI,EAAK67H,QAAQM,QAC7B3qJ,IAA+C,IAA5CqU,OAAQmgJ,EAAa,SAAEtwI,EAAQ,MAAEhvB,GAAO8K,EAGzC,GAAIo2J,EAEF,YADAA,GAA0B,GAI5BpX,GAC4B,IAA1BkX,EAAiBp4K,MAAuB,MAAToX,EAC/B,8YAQF,IAAImpK,EAAaD,GAAsB,CACrC3G,gBAAiB7hF,EAAM1xD,SACvBwzI,aAAcxzI,EACdswI,kBAGF,OAAI6J,GAAuB,MAATnpK,GAEhBkhK,GAA0B,EAC1B5nI,EAAK67H,QAAQa,IAAY,EAATh2J,QAGhB+oK,GAAcI,EAAY,CACxBzoF,MAAO,UACP1xD,WACA6tI,OAAAA,GACEkM,GAAcI,EAAa,CACzBzoF,MAAO,aACPm8E,aAASh+K,EACTmuD,WAAOnuD,EACPmwC,aAGFsK,EAAK67H,QAAQa,GAAGh2J,IAElBgtC,KAAAA,GACE,IAAI6yH,EAAW,IAAI30J,IAAIw1E,EAAMm/E,UAC7BA,EAAS10J,IAAIg+J,EAAavM,IAC1BuE,EAAY,CAAEtB,YAChB,KAKG+C,EAAgBtD,EAAetwI,EAAS,IAI/CouI,EAAW,EAsnJnB,SACE6M,EACA7hC,GAEA,IACE,IAAI8hC,EAAmBD,EAAQE,eAAeC,QAC5CnN,IAEF,GAAIiN,EAAkB,CACpB,IAAIxN,EAAO9jJ,KAAKK,MAAMixJ,GACtB,IAAK,IAAKt5K,EAAGnO,KAAM3E,OAAOg4J,QAAQ4mB,GAAQ,CAAC,GACrCj6K,GAAKI,MAAMC,QAAQL,IACrB2lJ,EAAYj9H,IAAIva,EAAG,IAAI8nH,IAAIj2H,GAAK,IAGrC,EACD,MAAOQ,IACP,CAEJ,CAtoJMonL,CAA0BlN,EAAc8C,GACxC,IAAIqK,EAA0BA,IAuoJpC,SACEL,EACA7hC,GAEA,GAAIA,EAAYx/I,KAAO,EAAG,CACxB,IAAI8zK,EAAiC,CAAC,EACtC,IAAK,IAAK9rK,EAAGnO,KAAM2lJ,EACjBs0B,EAAK9rK,GAAK,IAAInO,GAEhB,IACEwnL,EAAQE,eAAeI,QACrBtN,GACArkJ,KAAKC,UAAU6jJ,IAEjB,MAAOjyJ,GACPq/I,IACE,EAC8D,8DAAAr/I,EAAK,KAEtE,CACF,CACH,CA3pJQ+/J,CAA0BrN,EAAc8C,GAC1C9C,EAAa3/I,iBAAiB,WAAY8sJ,GAC1CpK,EAA8BA,IAC5B/C,EAAa1/I,oBAAoB,WAAY6sJ,EAChD,CAaD,OANK5pF,EAAMmT,aACT+uE,EAAgB7O,GAAcqB,IAAK10E,EAAM1xD,SAAU,CACjDy2I,kBAAkB,IAIfjI,CACT,EAitEE4J,UAhsEF,SAAmB7+J,GAEjB,OADA+1J,EAAY3qK,IAAI4U,GACT,IAAM+1J,EAAY32C,OAAOp/G,EAClC,EA8rEEkiK,wBApQF,SACEC,EACAC,EACAC,GASA,GAPArM,EAAuBmM,EACvBjM,EAAoBkM,EACpBnM,EAA0BoM,GAAU,MAK/BlM,GAAyBh+E,EAAM6+E,aAAelD,GAAiB,CAClEqC,GAAwB,EACxB,IAAItlK,EAAIspK,GAAuBhiF,EAAM1xD,SAAU0xD,EAAMs+D,SAC5C,MAAL5lJ,GACF+nK,EAAY,CAAE3B,sBAAuBpmK,GAExC,CAED,MAAO,KACLmlK,EAAuB,KACvBE,EAAoB,KACpBD,EAA0B,IAAI,CAElC,EA4OEqM,SAt/DFlI,eAAekI,EACb7lI,EACAq8H,GAEA,GAAkB,kBAAPr8H,EAET,YADA1L,EAAK67H,QAAQa,GAAGhxH,GAIlB,IAAI8lI,EAAiBC,GACnBrqF,EAAM1xD,SACN0xD,EAAMs+D,QACN+X,EACAgH,EAAOI,mBACPn5H,EACA+4H,EAAOtD,qBACP,MAAA4G,OAAA,EAAAA,EAAM2J,YACF,MAAJ3J,OAAI,EAAJA,EAAM4J,WAEJ,KAAExhJ,EAAI,WAAE+5I,EAAU,MAAE/4J,GAAUygK,GAChCnN,EAAOE,wBACP,EACA6M,EACAzJ,GAGEkB,EAAkB7hF,EAAM1xD,SACxBwzI,EAAenO,GAAe3zE,EAAM1xD,SAAUvF,EAAM43I,GAAQA,EAAK3gF,OAOrE8hF,EAAY9N,GACP,GAAA8N,EACAlpI,EAAK67H,QAAQO,eAAe8M,IAGjC,IAAI2I,EAAc9J,GAAwB,MAAhBA,EAAKhzK,QAAkBgzK,EAAKhzK,aAAUxP,EAE5DygL,EAAgBvL,GAAc4B,MAEd,IAAhBwV,EACF7L,EAAgBvL,GAAcgC,SACL,IAAhBoV,GAGK,MAAd3H,GACArB,GAAiBqB,EAAWlH,aAC5BkH,EAAWjH,aAAe77E,EAAM1xD,SAASE,SAAWwxD,EAAM1xD,SAAS8hG,SAMnEwuC,EAAgBvL,GAAcgC,SAGhC,IAAI0J,EACF4B,GAAQ,uBAAwBA,GACA,IAA5BA,EAAK5B,wBACL5gL,EAEFk2J,GAAkD,KAArCssB,GAAQA,EAAKO,oBAE1BuH,EAAaD,GAAsB,CACrC3G,kBACAC,eACAlD,kBAGF,IAAI6J,EAwBJ,aAAavG,EAAgBtD,EAAekD,EAAc,CACxDgB,aAGAK,aAAcp5J,EACdg1J,qBACApxK,QAASgzK,GAAQA,EAAKhzK,QACtB40K,qBAAsB5B,GAAQA,EAAK+J,wBACnCr2B,cA9BAg0B,GAAcI,EAAY,CACxBzoF,MAAO,UACP1xD,SAAUwzI,EACV3F,OAAAA,GACEkM,GAAcI,EAAa,CACzBzoF,MAAO,aACPm8E,aAASh+K,EACTmuD,WAAOnuD,EACPmwC,SAAUwzI,IAGZqI,EAAS7lI,EAAIq8H,IAEfr0H,KAAAA,GACE,IAAI6yH,EAAW,IAAI30J,IAAIw1E,EAAMm/E,UAC7BA,EAAS10J,IAAIg+J,EAAavM,IAC1BuE,EAAY,CAAEtB,YAChB,GAeN,EA64DE7+E,MAnvCF,SACE37E,EACAw/J,EACArwH,EACA6sH,GAEA,GAAIhE,EACF,MAAM,IAAI5+K,MACR,oMAMA8hL,EAAiBxqC,IAAI1wH,IAAMohK,GAAaphK,GAC5C,IAAI0vI,GAAkD,KAArCssB,GAAQA,EAAKO,oBAE1BsB,EAAc3F,GAAsBE,EACpCqN,EAAiBC,GACnBrqF,EAAM1xD,SACN0xD,EAAMs+D,QACN+X,EACAgH,EAAOI,mBACP3pH,EACAupH,EAAOtD,qBACPoK,EACI,MAAJxD,OAAI,EAAJA,EAAM4J,UAEJjsB,EAAU6X,GAAYqM,EAAa4H,EAAgB/T,GAEnDqI,EAAWJ,GAAchgB,EAASkkB,EAAa4H,GAKnD,GAJI1L,EAASx5E,QAAUw5E,EAASpgB,UAC9BA,EAAUogB,EAASpgB,UAGhBA,EAOH,YANAspB,GACEjjK,EACAw/J,EACA/F,GAAuB,IAAK,CAAE5vI,SAAU47I,IACxC,CAAE/1B,cAKN,IAAI,KAAEtrH,EAAI,WAAE+5I,EAAU,MAAE/4J,GAAUygK,GAChCnN,EAAOE,wBACP,EACA6M,EACAzJ,GAGF,GAAI52J,EAEF,YADA69J,GAAgBjjK,EAAKw/J,EAASp6J,EAAO,CAAEsqI,cAIzC,IAAI91C,EAAQylE,GAAe1lB,EAASv1H,GAEpCs2I,GAAkE,KAArCsB,GAAQA,EAAK5B,oBAEtC+D,GAAcrB,GAAiBqB,EAAWlH,YA+BhDqG,eACEt9J,EACAw/J,EACAp7I,EACAw1E,EACAosE,EACArH,EACAjvB,EACAyuB,GAKA,SAAS8H,EAAwBpwK,GAC/B,IAAKA,EAAEs7J,MAAMr3I,SAAWjkB,EAAEs7J,MAAMzd,KAAM,CACpC,IAAItuI,EAAQq0J,GAAuB,IAAK,CACtCzmJ,OAAQmrJ,EAAWlH,WACnBptI,SAAUzF,EACVo7I,QAASA,IAGX,OADAyD,GAAgBjjK,EAAKw/J,EAASp6J,EAAO,CAAEsqI,eAChC,CACR,CACD,OAAO,CACT,CAEA,GAhBAkvB,IACArD,EAAiBj5C,OAAOtiH,IAenB2+J,GAAcsH,EAAwBrsE,GACzC,OAIF,IAAIssE,EAAkB7qF,EAAMk/E,SAAS56J,IAAIK,GACzCgjK,EAAmBhjK,EAm+GvB,SACEm+J,EACA+H,GAEA,IAAI/J,EAAuC,CACzC9gF,MAAO,aACP47E,WAAYkH,EAAWlH,WACvBC,WAAYiH,EAAWjH,WACvBC,YAAagH,EAAWhH,YACxBC,SAAU+G,EAAW/G,SACrBC,KAAM8G,EAAW9G,KACjB91G,KAAM48G,EAAW58G,KACjB55C,KAAMu+J,EAAkBA,EAAgBv+J,UAAOnuB,GAEjD,OAAO2iL,CACT,CAl/G4BgK,CAAqBhI,EAAY+H,GAAkB,CACzEx2B,cAGF,IAAI02B,EAAkB,IAAIhI,gBACtBiI,EAAe/H,GACjBrqI,EAAK67H,QACL1rI,EACAgiJ,EAAgB7H,OAChBJ,GAGF,GAAIQ,EAAY,CACd,IAAIG,QAAuBC,GACzBiH,EACA5hJ,EACAiiJ,EAAa9H,QAGf,GAA4B,YAAxBO,EAAe75J,KACjB,OACK,GAA4B,UAAxB65J,EAAe75J,KAAkB,CAC1C,IAAI,MAAEG,GAAU85J,GAAyB96I,EAAM06I,GAE/C,YADAmE,GAAgBjjK,EAAKw/J,EAASp6J,EAAO,CAAEsqI,aAExC,CAAM,IAAKovB,EAAenlB,QAOzB,YANAspB,GACEjjK,EACAw/J,EACA/F,GAAuB,IAAK,CAAE5vI,SAAUzF,IACxC,CAAEsrH,cAOJ,GAAIu2B,EAFJrsE,EAAQylE,GADR2G,EAAiBlH,EAAenlB,QACOv1H,IAGrC,MAGL,CAGD82I,EAAiBp1J,IAAI9F,EAAKomK,GAE1B,IAAIE,EAAoBnL,EACpBoL,QAAsBjH,EACxB,SACA+G,EACA,CAACzsE,GACDosE,GAEEtH,EAAe6H,EAAc,GAEjC,GAAIF,EAAa9H,OAAOgB,QAMtB,YAHIrE,EAAiBv7J,IAAIK,KAASomK,GAChClL,EAAiB54C,OAAOtiH,IAQ5B,GAAI04J,EAAOC,mBAAqB8C,EAAgB/qC,IAAI1wH,IAClD,GAAIy/J,GAAiBf,IAAiBoB,GAAcpB,GAElD,YADAsE,EAAmBhjK,EAAKqjK,QAAe7pL,QAIpC,CACL,GAAIimL,GAAiBf,GAEnB,OADAxD,EAAiB54C,OAAOtiH,GACpBo7J,EAA0BkL,OAK5BtD,EAAmBhjK,EAAKqjK,QAAe7pL,KAGvC8hL,EAAiBhtK,IAAI0R,GACrBgjK,EAAmBhjK,EAAKkhK,GAAkB/C,IACnCyB,EAAwByG,EAAc3H,EAAc,CACzDyB,kBAAmBhC,KAMzB,GAAI2B,GAAcpB,GAEhB,YADAuE,GAAgBjjK,EAAKw/J,EAASd,EAAat5J,MAG9C,CAED,GAAIy6J,GAAiBnB,GACnB,MAAMjF,GAAuB,IAAK,CAAEx0J,KAAM,iBAK5C,IAAIk4J,EAAe9hF,EAAM6+E,WAAWvwI,UAAY0xD,EAAM1xD,SAClD68I,EAAsBlI,GACxBrqI,EAAK67H,QACLqN,EACAiJ,EAAgB7H,QAEdV,EAAc3F,GAAsBE,EACpCze,EACyB,SAA3Bt+D,EAAM6+E,WAAW7+E,MACbm2E,GAAYqM,EAAaxiF,EAAM6+E,WAAWvwI,SAAU+nI,GACpDr2E,EAAMs+D,QAEZuV,GAAUvV,EAAS,gDAEnB,IAAI8sB,IAAWtL,EACfE,EAAev1J,IAAI9F,EAAKymK,GAExB,IAAIC,EAAcxF,GAAkB/C,EAAYO,EAAa/2J,MAC7D0zE,EAAMk/E,SAASz0J,IAAI9F,EAAK0mK,GAExB,IAAKjG,EAAeC,GAAwBC,GAC1C1sI,EAAK67H,QACLz0E,EACAs+D,EACAwkB,EACAhB,GACA,EACAzE,EAAOK,+BACPgC,EACAC,EACAC,EACAQ,EACAF,EACAD,EACAuC,EACAnM,EACA,CAAC93D,EAAMu3D,MAAMj+I,GAAIwrJ,IAMnBgC,EACG3sJ,QAAQ88G,GAAOA,EAAG7wH,MAAQA,IAC1BkF,SAAS2rH,IACR,IAAI81C,EAAW91C,EAAG7wH,IACdkmK,EAAkB7qF,EAAMk/E,SAAS56J,IAAIgnK,GACrC1F,EAAsBC,QACxB1nL,EACA0sL,EAAkBA,EAAgBv+J,UAAOnuB,GAE3C6hG,EAAMk/E,SAASz0J,IAAI6gK,EAAU1F,GACzB/F,EAAiBxqC,IAAIi2C,IACvBvF,GAAauF,GAEX91C,EAAGwwC,YACLnG,EAAiBp1J,IAAI6gK,EAAU91C,EAAGwwC,WACnC,IAGLvF,EAAY,CAAEvB,SAAU,IAAI10J,IAAIw1E,EAAMk/E,YAEtC,IAAI+G,EAAiCA,IACnCZ,EAAqBx7J,SAAS2rH,GAAOuwC,GAAavwC,EAAG7wH,OAEvDomK,EAAgB7H,OAAOpmJ,iBACrB,QACAmpJ,GAGF,IAAI,cAAEC,EAAa,eAAEC,SACbC,EACJpmF,EAAMs+D,QACNA,EACA8mB,EACAC,EACA8F,GAGJ,GAAIJ,EAAgB7H,OAAOgB,QACzB,OAGF6G,EAAgB7H,OAAOnmJ,oBACrB,QACAkpJ,GAGFjG,EAAe/4C,OAAOtiH,GACtBk7J,EAAiB54C,OAAOtiH,GACxB0gK,EAAqBx7J,SAAS7c,GAAM6yK,EAAiB54C,OAAOj6H,EAAE2X,OAE9D,IAAI0hK,EAAWC,GAAa,IAAIJ,KAAkBC,IAClD,GAAIE,EAAU,CACZ,GAAIA,EAAS3kL,KAAO0jL,EAAc7oL,OAAQ,CAIxC,IAAIgqL,EACFlB,EAAqBgB,EAAS3kL,IAAM0jL,EAAc7oL,QAAQooB,IAC5Ds7J,EAAiBhtK,IAAIszK,EACtB,CACD,OAAOhC,EAAwB4G,EAAqB9E,EAASlhK,OAC9D,CAGD,IAAI,WAAEq5J,EAAU,OAAEhqJ,IAAWgyJ,GAC3BxmF,EACAA,EAAMs+D,QACN8mB,EACAc,OACA/nL,EACAknL,EACAc,EACA9F,GAKF,GAAIrgF,EAAMk/E,SAAS7pC,IAAI1wH,GAAM,CAC3B,IAAIojK,EAAcC,GAAe3E,EAAa/2J,MAC9C0zE,EAAMk/E,SAASz0J,IAAI9F,EAAKojK,EACzB,CAEDnB,GAAqBwE,GAMQ,YAA3BprF,EAAM6+E,WAAW7+E,OACjBorF,EAASrL,GAETlM,GAAUuL,EAAe,2BACzBT,GAA+BA,EAA4BwD,QAE3Df,EAAmBphF,EAAM6+E,WAAWvwI,SAAU,CAC5CgwH,UACAkgB,aACAhqJ,UACA0qJ,SAAU,IAAI10J,IAAIw1E,EAAMk/E,cAM1BuB,EAAY,CACVjsJ,UACAgqJ,WAAYmD,GACV3hF,EAAMw+E,WACNA,EACAlgB,EACA9pI,IAEF0qJ,SAAU,IAAI10J,IAAIw1E,EAAMk/E,YAE1BQ,GAAyB,EAE7B,CArUI6L,CACE5mK,EACAw/J,EACAp7I,EACAw1E,EACA+/C,EACAogB,EAASx5E,OACTmvD,EACAyuB,IAOJ5C,EAAiBz1J,IAAI9F,EAAK,CAAEw/J,UAASp7I,SAyTvCk5I,eACEt9J,EACAw/J,EACAp7I,EACAw1E,EACA+/C,EACAglB,EACAjvB,EACAyuB,GAEA,IAAI+H,EAAkB7qF,EAAMk/E,SAAS56J,IAAIK,GACzCgjK,EACEhjK,EACAkhK,GACE/C,EACA+H,EAAkBA,EAAgBv+J,UAAOnuB,GAE3C,CAAEk2J,cAGJ,IAAI02B,EAAkB,IAAIhI,gBACtBiI,EAAe/H,GACjBrqI,EAAK67H,QACL1rI,EACAgiJ,EAAgB7H,QAGlB,GAAII,EAAY,CACd,IAAIG,QAAuBC,GACzBplB,EACAv1H,EACAiiJ,EAAa9H,QAGf,GAA4B,YAAxBO,EAAe75J,KACjB,OACK,GAA4B,UAAxB65J,EAAe75J,KAAkB,CAC1C,IAAI,MAAEG,GAAU85J,GAAyB96I,EAAM06I,GAE/C,YADAmE,GAAgBjjK,EAAKw/J,EAASp6J,EAAO,CAAEsqI,aAExC,CAAM,IAAKovB,EAAenlB,QAOzB,YANAspB,GACEjjK,EACAw/J,EACA/F,GAAuB,IAAK,CAAE5vI,SAAUzF,IACxC,CAAEsrH,cAKJ91C,EAAQylE,GADR1lB,EAAUmlB,EAAenlB,QACOv1H,EAEnC,CAGD82I,EAAiBp1J,IAAI9F,EAAKomK,GAE1B,IAAIE,EAAoBnL,EACpBqH,QAAgBlD,EAClB,SACA+G,EACA,CAACzsE,GACD+/C,GAEEn5I,EAASgiK,EAAQ,GAMjB3C,GAAiBr/J,KACnBA,QACSqmK,GAAoBrmK,EAAQ6lK,EAAa9H,QAAQ,IACxD/9J,GAKA06J,EAAiBv7J,IAAIK,KAASomK,GAChClL,EAAiB54C,OAAOtiH,GAG1B,GAAIqmK,EAAa9H,OAAOgB,QACtB,OAKF,GAAI9D,EAAgB/qC,IAAI1wH,GAEtB,YADAgjK,EAAmBhjK,EAAKqjK,QAAe7pL,IAKzC,GAAIimL,GAAiBj/J,GACnB,OAAI46J,EAA0BkL,OAG5BtD,EAAmBhjK,EAAKqjK,QAAe7pL,KAGvC8hL,EAAiBhtK,IAAI0R,cACf4/J,EAAwByG,EAAc7lK,IAMhD,GAAIs/J,GAAct/J,GAEhB,YADAyiK,GAAgBjjK,EAAKw/J,EAASh/J,EAAO4E,OAIvC8pJ,IAAW2Q,GAAiBr/J,GAAS,mCAGrCwiK,EAAmBhjK,EAAKqjK,GAAe7iK,EAAOmH,MAChD,CA7aEm/J,CACE9mK,EACAw/J,EACAp7I,EACAw1E,EACA+/C,EACAogB,EAASx5E,OACTmvD,EACAyuB,GAEJ,EA4pCE4I,WAz4DF,WACEnI,IACA9C,EAAY,CAAEzB,aAAc,YAIG,eAA3Bh/E,EAAM6+E,WAAW7+E,QAOU,SAA3BA,EAAM6+E,WAAW7+E,MAUrBkiF,EACE9C,GAAiBp/E,EAAM4+E,cACvB5+E,EAAM6+E,WAAWvwI,SACjB,CAAEo0I,mBAAoB1iF,EAAM6+E,aAZ5BqD,EAAgBliF,EAAM4+E,cAAe5+E,EAAM1xD,SAAU,CACnD8zI,gCAAgC,IAatC,EAg3DE9N,WAAahwH,GAAW1L,EAAK67H,QAAQH,WAAWhwH,GAChD0wH,eAAiB1wH,GAAW1L,EAAK67H,QAAQO,eAAe1wH,GACxDujI,cACA1G,cAlcF,SAAqCx8J,GACnC,GAAI04J,EAAOC,kBAAmB,CAC5B,IAAI77K,GAAS0+K,EAAe77J,IAAIK,IAAQ,GAAK,EACzCljB,GAAS,GACX0+K,EAAel5C,OAAOtiH,GACtBy7J,EAAgBntK,IAAI0R,IAEpBw7J,EAAe11J,IAAI9F,EAAKljB,EAE3B,MACC0/K,GAAcx8J,GAEhB87J,EAAY,CAAEvB,SAAU,IAAI10J,IAAIw1E,EAAMk/E,WACxC,EAsbEyM,QAztEF,WACMhO,GACFA,IAEE6B,GACFA,IAEF5B,EAAYgO,QACZjN,GAA+BA,EAA4BwD,QAC3DniF,EAAMk/E,SAASr1J,SAAQ,CAAC3O,EAAGyJ,IAAQw8J,GAAcx8J,KACjDq7E,EAAMm/E,SAASt1J,SAAQ,CAAC3O,EAAGyJ,IAAQyjK,GAAczjK,IACnD,EA+sEEknK,WArYF,SAAoBlnK,EAAakD,GAC/B,IAAI0gK,EAAmBvoF,EAAMm/E,SAAS76J,IAAIK,IAAQu3J,GAMlD,OAJIoE,EAAiBh8J,IAAIK,KAASkD,GAChCy4J,EAAiB71J,IAAI9F,EAAKkD,GAGrB0gK,CACT,EA8XEH,iBACA0D,YAxDF,SACE3H,EACAvpF,GAEA,IAAIsuF,EAAiC,MAAtBrM,EAEfkP,GACE5H,EACAvpF,EAHgBiiF,GAAsBE,EAKtClH,EACAF,GAQEuT,IACFnM,EAAa,IAAIA,GACjB0D,EAAY,CAAC,GAEjB,EAkCEuL,0BAA2BnM,EAC3BoM,yBAA0B5L,EAG1B6L,mBAvEF,SAA4BC,GAC1BtW,EAAW,CAAC,EACZgH,EAAqBpH,GACnB0W,EACAxW,OACAx3K,EACA03K,EAEJ,GAkEOiH,CACT,CAOsCjuK,OAAO,YAqqB7C,SAASw7K,GACP/7I,EACAgwH,EACA+X,EACA+V,EACA9nI,EACAy1H,EACAuQ,EACAC,GAEA,IAAI8B,EACAC,EACJ,GAAIhC,EAAa,CAGf+B,EAAoB,GACpB,IAAK,IAAI9tE,KAAS+/C,EAEhB,GADA+tB,EAAkBzqL,KAAK28G,GACnBA,EAAMu3D,MAAMj+I,KAAOyyJ,EAAa,CAClCgC,EAAmB/tE,EACnB,KACD,CAEJ,MACC8tE,EAAoB/tB,EACpBguB,EAAmBhuB,EAAQA,EAAQ/hK,OAAS,GAI9C,IAAIwsC,EAAOkxI,GACT31H,GAAU,IACVw1H,GAAoBuS,EAAmBtS,GACvCvD,GAAcloI,EAASE,SAAU6nI,IAAa/nI,EAASE,SAC1C,SAAb+7I,GAgCF,OA1BU,MAANjmI,IACFvb,EAAKqnG,OAAS9hG,EAAS8hG,OACvBrnG,EAAK2qI,KAAOplI,EAASolI,MAKd,MAANpvH,GAAqB,KAAPA,GAAoB,MAAPA,IAC5BgoI,IACAA,EAAiBxW,MAAMlpK,OACtB2/K,GAAmBxjJ,EAAKqnG,UAEzBrnG,EAAKqnG,OAASrnG,EAAKqnG,OACfrnG,EAAKqnG,OAAOziI,QAAQ,MAAO,WAC3B,UAOFy+K,GAAgC,MAAb/V,IACrBttI,EAAKyF,SACe,MAAlBzF,EAAKyF,SAAmB6nI,EAAWqB,GAAU,CAACrB,EAAUttI,EAAKyF,YAG1Ds0D,GAAW/5D,EACpB,CAIA,SAASyhJ,GACPgC,EACAC,EACA1jJ,EACA43I,GAOA,IAAKA,IA3FP,SACEA,GAEA,OACU,MAARA,IACE,aAAcA,GAAyB,MAAjBA,EAAK5E,UAC1B,SAAU4E,QAAsBxiL,IAAdwiL,EAAKhmI,KAE9B,CAmFgB+xI,CAAuB/L,GACnC,MAAO,CAAE53I,QAGX,GAAI43I,EAAK/E,aAAe+Q,GAAchM,EAAK/E,YACzC,MAAO,CACL7yI,OACAhf,MAAOq0J,GAAuB,IAAK,CAAEzmJ,OAAQgpJ,EAAK/E,cAItD,IA0EIgR,EACA7Q,EA3EA8Q,EAAsBA,KAAA,CACxB9jJ,OACAhf,MAAOq0J,GAAuB,IAAK,CAAEx0J,KAAM,mBAIzCkjK,EAAgBnM,EAAK/E,YAAc,MACnCA,EAAa4Q,EACZM,EAAczjK,cACdyjK,EAAchgK,cACf+uJ,EAAakR,GAAkBhkJ,GAEnC,QAAkB5qC,IAAdwiL,EAAKhmI,KAAoB,CAC3B,GAAyB,eAArBgmI,EAAK7E,YAA8B,CAErC,IAAK2F,GAAiB7F,GACpB,OAAOiR,IAGT,IAAI3mH,EACmB,kBAAdy6G,EAAKhmI,KACRgmI,EAAKhmI,KACLgmI,EAAKhmI,gBAAgBqyI,UACrBrM,EAAKhmI,gBAAgBsyI,gBAErB9qL,MAAM/F,KAAKukL,EAAKhmI,KAAKy6G,WAAWtzJ,QAC9B,CAACO,EAAG6qL,KAAA,IAAGvvL,EAAMqH,GAAMkoL,EAAA,SAAQ7qL,EAAM1E,EAAI,IAAIqH,EAAK,OAC9C,IAEFwB,OAAOm6K,EAAKhmI,MAElB,MAAO,CACL5R,OACA+5I,WAAY,CACVlH,aACAC,aACAC,YAAa6E,EAAK7E,YAClBC,cAAU59K,EACV69K,UAAM79K,EACN+nE,QAGL,CAAM,GAAyB,qBAArBy6G,EAAK7E,YAAoC,CAElD,IAAK2F,GAAiB7F,GACpB,OAAOiR,IAGT,IACE,IAAI7Q,EACmB,kBAAd2E,EAAKhmI,KAAoBziB,KAAKK,MAAMooJ,EAAKhmI,MAAQgmI,EAAKhmI,KAE/D,MAAO,CACL5R,OACA+5I,WAAY,CACVlH,aACAC,aACAC,YAAa6E,EAAK7E,YAClBC,cAAU59K,EACV69K,OACA91G,UAAM/nE,IAGV,MAAOoE,IACP,OAAOsqL,GACR,CACF,CACF,CAUD,GARAhZ,GACsB,oBAAbmZ,SACP,iDAMErM,EAAK5E,SACP6Q,EAAeO,GAA8BxM,EAAK5E,UAClDA,EAAW4E,EAAK5E,cACX,GAAI4E,EAAKhmI,gBAAgBqyI,SAC9BJ,EAAeO,GAA8BxM,EAAKhmI,MAClDohI,EAAW4E,EAAKhmI,UACX,GAAIgmI,EAAKhmI,gBAAgBsyI,gBAC9BL,EAAejM,EAAKhmI,KACpBohI,EAAWqR,GAA8BR,QACpC,GAAiB,MAAbjM,EAAKhmI,KACdiyI,EAAe,IAAIK,gBACnBlR,EAAW,IAAIiR,cAEf,IACEJ,EAAe,IAAIK,gBAAgBtM,EAAKhmI,MACxCohI,EAAWqR,GAA8BR,GACzC,MAAOrqL,IACP,OAAOsqL,GACR,CAGH,IAAI/J,EAAyB,CAC3BlH,aACAC,aACAC,YACG6E,GAAQA,EAAK7E,aAAgB,oCAChCC,WACAC,UAAM79K,EACN+nE,UAAM/nE,GAGR,GAAIsjL,GAAiBqB,EAAWlH,YAC9B,MAAO,CAAE7yI,OAAM+5I,cAIjB,IAAI5O,EAAaD,GAAUlrI,GAS3B,OALI0jJ,GAAavY,EAAW9jC,QAAUm8C,GAAmBrY,EAAW9jC,SAClEw8C,EAAar7I,OAAO,QAAS,IAE/B2iI,EAAW9jC,OAAS,IAAIw8C,EAEjB,CAAE7jJ,KAAM+5D,GAAWoxE,GAAa4O,aACzC,CAIA,SAASuK,GACP/uB,EACAslB,GAEA,IAAI0J,EAAkBhvB,EACtB,GAAIslB,EAAY,CACd,IAAIh3K,EAAQ0xJ,EAAQznC,WAAWr8G,GAAMA,EAAEs7J,MAAMj+I,KAAO+rJ,IAChDh3K,GAAS,IACX0gL,EAAkBhvB,EAAQn4J,MAAM,EAAGyG,GAEtC,CACD,OAAO0gL,CACT,CAEA,SAAShI,GACP7Q,EACAz0E,EACAs+D,EACAwkB,EACAx0I,EACAi/I,EACAC,EACA9N,EACAC,EACAC,EACAQ,EACAF,EACAD,EACAuC,EACAnM,EACA2M,GAEA,IAAIK,EAAeL,EACfyB,GAAczB,EAAoB,IAChCA,EAAoB,GAAGj5J,MACvBi5J,EAAoB,GAAG12J,UACzBnuB,EACAsvL,EAAahZ,EAAQI,UAAU70E,EAAM1xD,UACrCo/I,EAAUjZ,EAAQI,UAAUvmI,GAG5Bs1I,EACFZ,GAAuByB,GAAczB,EAAoB,IACrDA,EAAoB,QACpB7kL,EACFmvL,EAAkB1J,EAClByJ,GAA8B/uB,EAASslB,GACvCtlB,EAKAqvB,EAAe3K,EACfA,EAAoB,GAAG4K,gBACvBzvL,EACA0vL,EACFL,GAA+BG,GAAgBA,GAAgB,IAE7DG,EAAoBR,EAAgB50J,QAAO,CAAC6lF,EAAO3xG,KACrD,IAAI,MAAEkpK,GAAUv3D,EAChB,GAAIu3D,EAAMzd,KAER,OAAO,EAGT,GAAoB,MAAhByd,EAAMyI,OACR,OAAO,EAGT,GAAIgP,EACF,QAA4B,oBAAjBzX,EAAMyI,SAAyBzI,EAAMyI,OAAOjqB,eAItBn2J,IAA/B6hG,EAAMw+E,WAAW1I,EAAMj+I,OAErBmoE,EAAMxrE,aAAqCr2B,IAA3B6hG,EAAMxrE,OAAOshJ,EAAMj+I,KAKzC,GA2HJ,SACEk2J,EACAC,EACAzvE,GAEA,IAAI0vE,GAEDD,GAEDzvE,EAAMu3D,MAAMj+I,KAAOm2J,EAAalY,MAAMj+I,GAIpCq2J,OAAsD/vL,IAAtC4vL,EAAkBxvE,EAAMu3D,MAAMj+I,IAGlD,OAAOo2J,GAASC,CAClB,CA3IMC,CAAYnuF,EAAMw+E,WAAYx+E,EAAMs+D,QAAQ1xJ,GAAQ2xG,IACpDohE,EAAwBpR,MAAM12I,GAAOA,IAAO0mF,EAAMu3D,MAAMj+I,KAExD,OAAO,EAOT,IAAIu2J,EAAoBpuF,EAAMs+D,QAAQ1xJ,GAClCyhL,EAAiB9vE,EAErB,OAAO+vE,GAAuB/vE,EAAKy1D,GAAA,CACjCyZ,aACAc,cAAeH,EAAkBx2J,OACjC81J,UACAc,WAAYH,EAAez2J,QACxBkrJ,EAAU,CACbO,eACAsK,eACAc,yBAAyBZ,IAGrBnO,GACA+N,EAAWj/I,SAAWi/I,EAAWr9C,SAC/Bs9C,EAAQl/I,SAAWk/I,EAAQt9C,QAE7Bq9C,EAAWr9C,SAAWs9C,EAAQt9C,QAC9Bs+C,GAAmBN,EAAmBC,MAC1C,IAIAhJ,EAA8C,GAqFlD,OApFAnF,EAAiBr2J,SAAQ,CAACgN,EAAGlS,KAM3B,GACE4oK,IACCjvB,EAAQiQ,MAAM/zJ,GAAMA,EAAEs7J,MAAMj+I,KAAOhB,EAAEstJ,WACtC/D,EAAgB/qC,IAAI1wH,GAEpB,OAGF,IAAIgqK,EAAiBxY,GAAYqM,EAAa3rJ,EAAEkS,KAAMstI,GAMtD,IAAKsY,EASH,YARAtJ,EAAqBzjL,KAAK,CACxB+iB,MACAw/J,QAASttJ,EAAEstJ,QACXp7I,KAAMlS,EAAEkS,KACRu1H,QAAS,KACT//C,MAAO,KACPynE,WAAY,OAQhB,IAAIlF,EAAU9gF,EAAMk/E,SAAS56J,IAAIK,GAC7BiqK,EAAe5K,GAAe2K,EAAgB93J,EAAEkS,MAEhD8lJ,GAAmB,EACnB5O,EAAiB5qC,IAAI1wH,GAEvBkqK,GAAmB,EACVjP,EAAsBvqC,IAAI1wH,IAEnCi7J,EAAsB34C,OAAOtiH,GAC7BkqK,GAAmB,GASnBA,EAPA/N,GACkB,SAAlBA,EAAQ9gF,YACS7hG,IAAjB2iL,EAAQx0J,KAKWozJ,EAIA4O,GAAuBM,EAAY5a,GAAA,CACpDyZ,aACAc,cAAevuF,EAAMs+D,QAAQt+D,EAAMs+D,QAAQ/hK,OAAS,GAAGq7B,OACvD81J,UACAc,WAAYlwB,EAAQA,EAAQ/hK,OAAS,GAAGq7B,QACrCkrJ,EAAU,CACbO,eACAsK,eACAc,yBAAyBZ,GAErBnO,KAIJmP,GACFxJ,EAAqBzjL,KAAK,CACxB+iB,MACAw/J,QAASttJ,EAAEstJ,QACXp7I,KAAMlS,EAAEkS,KACRu1H,QAASqwB,EACTpwE,MAAOqwE,EACP5I,WAAY,IAAIjD,iBAEnB,IAGI,CAAC+K,EAAmBzI,EAC7B,CAqBA,SAASqJ,GACPV,EACAzvE,GAEA,IAAIuwE,EAAcd,EAAalY,MAAM/sI,KACrC,OAEEilJ,EAAax/I,WAAa+vE,EAAM/vE,UAGhB,MAAfsgJ,GACCA,EAAY9W,SAAS,MACrBgW,EAAap2J,OAAO,OAAS2mF,EAAM3mF,OAAO,IAEhD,CAEA,SAAS02J,GACPS,EACAzjK,GAEA,GAAIyjK,EAAYjZ,MAAM+Y,iBAAkB,CACtC,IAAIG,EAAcD,EAAYjZ,MAAM+Y,iBAAiBvjK,GACrD,GAA2B,mBAAhB0jK,EACT,OAAOA,CAEV,CAED,OAAO1jK,EAAImjK,uBACb,CAMAxM,eAAekH,GACbhM,EACAp0I,EACAu1H,EACAoX,EACAG,EACAF,EACAsZ,EACA/L,GAEA,IAAIv+J,EAAM,CAACokB,KAASu1H,EAAQn0I,KAAK3P,GAAMA,EAAEs7J,MAAMj+I,MAAKntB,KAAK,KACzD,IACE,IAAI0zI,EAAU6wC,EAAqB3qK,IAAIK,GAClCy5H,IACHA,EAAU++B,EAAsB,CAC9Bp0I,OACAu1H,UACA4wB,MAAOA,CAAC/K,EAASvpF,KACVsoF,EAAOgB,SACV6H,GACE5H,EACAvpF,EACA86E,EACAG,EACAF,EAEH,IAGLsZ,EAAqBxkK,IAAI9F,EAAKy5H,IAG5BA,IAk4BgB,kBADQ5yI,EAj4BoB4yI,IAk4BT,MAAP5yI,GAAe,SAAUA,UAj4BjD4yI,CAET,SACC6wC,EAAqBhoD,OAAOtiH,EAC7B,CA43BH,IAAgCnZ,CA33BhC,CAEA,SAASugL,GACP5H,EACAvpF,EACA4nF,EACA3M,EACAF,GAEA,GAAIwO,EAAS,KAAAgL,EACX,IAAIrZ,EAAQD,EAASsO,GACrBtQ,GACEiC,EACoD,oDAAAqO,GAEtD,IAAIiL,EAAe3Z,GACjB76E,EACA+6E,EACA,CAACwO,EAAS,QAAS39K,QAAqB,OAAd2oL,EAAArZ,EAAMl7E,eAAQ,EAAdu0F,EAAgB5yL,SAAU,MACpDs5K,GAEEC,EAAMl7E,SACRk7E,EAAMl7E,SAASh5F,QAAQwtL,GAEvBtZ,EAAMl7E,SAAWw0F,CAEpB,KAAM,CACL,IAAIA,EAAe3Z,GACjB76E,EACA+6E,EACA,CAAC,QAASnvK,OAAOg8K,EAAYjmL,QAAU,MACvCs5K,GAEF2M,EAAY5gL,QAAQwtL,EACrB,CACH,CAOAnN,eAAeoN,GACbvZ,EACAH,EACAE,GAEA,IAAKC,EAAMzd,KACT,OAGF,IAAIi3B,QAAkBxZ,EAAMzd,OAK5B,IAAKyd,EAAMzd,KACT,OAGF,IAAIk3B,EAAgB1Z,EAASC,EAAMj+I,IACnCg8I,GAAU0b,EAAe,8BAUzB,IAAIC,EAAoC,CAAC,EACzC,IAAK,IAAIC,KAAqBH,EAAW,CACvC,IAGII,OACmBvxL,IAHrBoxL,EAAcE,IAMQ,qBAAtBA,EAEFrmB,IACGsmB,EACD,UAAUH,EAAc13J,GAAE,4BAA4B43J,EAAtD,yGAE8BA,EAAiB,sBAI9CC,GACAla,GAAmBngC,IAAIo6C,KAExBD,EAAaC,GACXH,EAAUG,GAEf,CAIDryL,OAAOG,OAAOgyL,EAAeC,GAK7BpyL,OAAOG,OAAOgyL,EAAavb,GAKtB,GAAA2B,EAAmB4Z,GAAc,CACpCl3B,UAAMl6J,IAEV,CAGA,SAAS++K,GACPyD,GAEA,OAAO9hE,QAAQ6tD,IAAIiU,EAAKriB,QAAQn0I,KAAK3P,GAAMA,EAAEg9H,YAC/C,CAEAyqC,eAAemF,GACbpK,EACApzJ,EACA8N,EACA0tJ,EACA9mB,EACAuX,EACAF,EACAga,GAEA,IAAIC,EAAiBxK,EAActjL,QACjC,CAACO,EAAKmY,IAAMnY,EAAI4Q,IAAIuH,EAAEs7J,MAAMj+I,KAC5B,IAAImgG,KAEF63D,EAAgB,IAAI73D,IAKpBmvD,QAAgBnK,EAAiB,CACnC1e,QAASA,EAAQn0I,KAAKo0F,IACpB,IAAIuxE,EAAaF,EAAev6C,IAAI92B,EAAMu3D,MAAMj+I,IAoBhD,OAAAm8I,GAAA,GACKz1D,EAAK,CACRuxE,aACAt4C,QAlB2Cu4C,IAC3CF,EAAc58K,IAAIsrG,EAAMu3D,MAAMj+I,IACvBi4J,EAwCf7N,eACEr4J,EACA8N,EACA6mF,EACAs3D,EACAF,EACAoa,EACAC,GAEA,IAAI7qK,EACA8qK,EAEAC,EACFvzJ,IAGA,IAAIoxI,EAGAoiB,EAAe,IAAItxE,SAAuB,CAAC3jG,EAAGlO,IAAO+gK,EAAS/gK,IAClEijL,EAAWA,IAAMliB,IACjBr2I,EAAQwrJ,OAAOpmJ,iBAAiB,QAASmzJ,GAEzC,IAmBIG,EAnBAC,EAAiB9vK,GACI,oBAAZoc,EACFkiF,QAAQkvD,OACb,IAAIhwK,MACF,oEACM6rB,EAAI,eAAe20F,EAAMu3D,MAAMj+I,GAAE,MAItC8E,EACL,CACEjF,UACAE,OAAQ2mF,EAAM3mF,OACdk5D,QAASk/F,WAEC7xL,IAARoiB,EAAoB,CAACA,GAAO,IAkBpC,OAZE6vK,EADEL,EACeA,GAAiBxvK,GAAiB8vK,EAAc9vK,KAEhD,WACf,IAEE,MAAO,CAAEqJ,KAAM,OAAQzE,aADPkrK,KAEhB,MAAO9tL,IACP,MAAO,CAAEqnB,KAAM,QAASzE,OAAQ5iB,GACjC,CACF,EAPgB,GAUZs8G,QAAQyxE,KAAK,CAACF,EAAgBD,GAAc,EAGrD,IACE,IAAIxzJ,EAAU4hF,EAAMu3D,MAAMlsJ,GAE1B,GAAI20F,EAAMu3D,MAAMzd,KACd,GAAI17H,EAAS,CAEX,IAAI4zJ,GACCvrL,SAAe65G,QAAQ6tD,IAAI,CAI9BwjB,EAAWvzJ,GAAS86G,OAAOl1I,IACzBguL,EAAehuL,CAAC,IAElB8sL,GAAoB9wE,EAAMu3D,MAAOH,EAAoBE,KAEvD,QAAqB13K,IAAjBoyL,EACF,MAAMA,EAERprK,EAASngB,CACV,KAAM,CAKL,SAHMqqL,GAAoB9wE,EAAMu3D,MAAOH,EAAoBE,GAE3Dl5I,EAAU4hF,EAAMu3D,MAAMlsJ,IAClB+S,EAKG,IAAa,WAAT/S,EAAmB,CAC5B,IAAIwf,EAAM,IAAIC,IAAI3R,EAAQ0R,KACtBoF,EAAWpF,EAAIoF,SAAWpF,EAAIgnG,OAClC,MAAMguC,GAAuB,IAAK,CAChCzmJ,OAAQD,EAAQC,OAChB6W,WACA21I,QAAS5lE,EAAMu3D,MAAMj+I,IAExB,CAGC,MAAO,CAAEjO,KAAM2rJ,GAAWjpJ,KAAMnH,YAAQhnB,EACzC,CAbCgnB,QAAe+qK,EAAWvzJ,EAc7B,KACI,KAAKA,EAAS,CACnB,IAAIyM,EAAM,IAAIC,IAAI3R,EAAQ0R,KAE1B,MAAMg1I,GAAuB,IAAK,CAChC5vI,SAFapF,EAAIoF,SAAWpF,EAAIgnG,QAInC,CACCjrH,QAAe+qK,EAAWvzJ,EAC3B,CAEDk3I,QACoB11K,IAAlBgnB,EAAOA,OACP,gBAAwB,WAATyE,EAAoB,YAAc,YAAjD,eACM20F,EAAMu3D,MAAMj+I,GAA8C,4CAAAjO,EADhE,gDAIF,MAAOrnB,IAIP,MAAO,CAAEqnB,KAAM2rJ,GAAWxrJ,MAAO5E,OAAQ5iB,GAC1C,SACK0tL,GACFv4J,EAAQwrJ,OAAOnmJ,oBAAoB,QAASkzJ,EAE/C,CAED,OAAO9qK,CACT,CA1KYqrK,CACE5mK,EACA8N,EACA6mF,EACAs3D,EACAF,EACAoa,EACAJ,GAEF9wE,QAAQ24B,QAAQ,CAAE5tH,KAAM2rJ,GAAWjpJ,KAAMnH,YAAQhnB,MAM9C,IAGXu5B,UACAE,OAAQ0mI,EAAQ,GAAG1mI,OACnBk5D,QAAS6+F,IAeX,OAVArxB,EAAQz0I,SAASrP,GACfq5J,GACEgc,EAAcx6C,IAAI76H,EAAEs7J,MAAMj+I,IAC1B,kDAAoDrd,EAAEs7J,MAAMj+I,GAA5D,0HAOGsvJ,EAAQzuJ,QAAO,CAACxd,EAAGvZ,IAAMiuL,EAAev6C,IAAIipB,EAAQ38J,GAAGm0K,MAAMj+I,KACtE,CAwIAoqJ,eAAesF,GACbkJ,GAEA,IAAI,OAAEtrK,EAAM,KAAEyE,GAAS6mK,EAEvB,GAAIC,GAAWvrK,GAAS,CACtB,IAAImH,EAEJ,IACE,IAAIqkK,EAAcxrK,EAAOm/J,QAAQhgK,IAAI,gBAKjCgI,EAFAqkK,GAAe,wBAAwBvsJ,KAAKusJ,GAC3B,MAAfxrK,EAAOw1B,KACF,WAEMx1B,EAAO62J,aAGT72J,EAAO+gD,OAEtB,MAAO3jE,IACP,MAAO,CAAEqnB,KAAM2rJ,GAAWxrJ,MAAOA,MAAOxnB,GACzC,CAED,OAAIqnB,IAAS2rJ,GAAWxrJ,MACf,CACLH,KAAM2rJ,GAAWxrJ,MACjBA,MAAO,IAAIkxJ,GAAkB91J,EAAOwoB,OAAQxoB,EAAO+1J,WAAY5uJ,GAC/DshK,WAAYzoK,EAAOwoB,OACnB22I,QAASn/J,EAAOm/J,SAIb,CACL16J,KAAM2rJ,GAAWjpJ,KACjBA,OACAshK,WAAYzoK,EAAOwoB,OACnB22I,QAASn/J,EAAOm/J,QAEnB,CAED,GAAI16J,IAAS2rJ,GAAWxrJ,MAAO,CAC7B,GAAI6mK,GAAuBzrK,GAAS,KAAA0rK,EACAC,EAAlC,GAAI3rK,EAAOmH,gBAAgBvuB,MACzB,MAAO,CACL6rB,KAAM2rJ,GAAWxrJ,MACjBA,MAAO5E,EAAOmH,KACdshK,WAAuB,OAAbkD,EAAE3rK,EAAOyzB,WAAI,EAAXk4I,EAAanjJ,QAK7BxoB,EAAS,IAAI81J,IACA,OAAX4V,EAAA1rK,EAAOyzB,WAAI,EAAXi4I,EAAaljJ,SAAU,SACvBxvC,EACAgnB,EAAOmH,KAEV,CACD,MAAO,CACL1C,KAAM2rJ,GAAWxrJ,MACjBA,MAAO5E,EACPyoK,WAAYxS,GAAqBj2J,GAAUA,EAAOwoB,YAASxvC,EAE9D,CAE2B,IAAA4yL,EAAAC,EASQC,EAAAC,EATpC,OAmiBI,SAAyBlsL,GAC7B,IAAImsL,EAAyBnsL,EAC7B,OACEmsL,GACoB,kBAAbA,GACkB,kBAAlBA,EAAS7kK,MACc,oBAAvB6kK,EAASzK,WACW,oBAApByK,EAASrI,QACgB,oBAAzBqI,EAASC,WAEpB,CA7iBMC,CAAelsK,GACV,CACLyE,KAAM2rJ,GAAW4b,SACjB1K,aAActhK,EACdyoK,WAAuB,OAAbmD,EAAE5rK,EAAOyzB,WAAI,EAAXm4I,EAAapjJ,OACzB22I,SAAS,OAAA0M,EAAA7rK,EAAOyzB,WAAP,EAAAo4I,EAAa1M,UAAW,IAAIgN,QAAQnsK,EAAOyzB,KAAK0rI,UAIzDsM,GAAuBzrK,GAClB,CACLyE,KAAM2rJ,GAAWjpJ,KACjBA,KAAMnH,EAAOmH,KACbshK,WAAuB,OAAbqD,EAAE9rK,EAAOyzB,WAAI,EAAXq4I,EAAatjJ,OACzB22I,QAAoB,OAAX4M,EAAA/rK,EAAOyzB,OAAPs4I,EAAa5M,QAClB,IAAIgN,QAAQnsK,EAAOyzB,KAAK0rI,cACxBnmL,GAID,CAAEyrB,KAAM2rJ,GAAWjpJ,KAAMA,KAAMnH,EACxC,CAGA,SAASmiK,GACPlvJ,EACAV,EACAysJ,EACA7lB,EACA+X,EACA0D,GAEA,IAAIzrI,EAAWlW,EAASksJ,QAAQhgK,IAAI,YAMpC,GALAuvJ,GACEvlI,EACA,+EAGG8tI,GAAmBh4I,KAAKkK,GAAW,CACtC,IAAIijJ,EAAiBjzB,EAAQn4J,MAC3B,EACAm4J,EAAQznC,WAAWr8G,GAAMA,EAAEs7J,MAAMj+I,KAAOssJ,IAAW,GAErD71I,EAAW+7I,GACT,IAAIhhJ,IAAI3R,EAAQ0R,KAChBmoJ,EACAlb,GACA,EACA/nI,EACAyrI,GAEF3hJ,EAASksJ,QAAQ75J,IAAI,WAAY6jB,EAClC,CAED,OAAOlW,CACT,CAEA,SAASisJ,GACP/1I,EACAm/I,EACApX,GAEA,GAAI+F,GAAmBh4I,KAAKkK,GAAW,CAErC,IAAIkjJ,EAAqBljJ,EACrBlF,EAAMooJ,EAAmB/Z,WAAW,MACpC,IAAIpuI,IAAIokJ,EAAWgE,SAAWD,GAC9B,IAAInoJ,IAAImoJ,GACRE,EAA0D,MAAzClb,GAAcptI,EAAIoF,SAAU6nI,GACjD,GAAIjtI,EAAImF,SAAWk/I,EAAWl/I,QAAUmjJ,EACtC,OAAOtoJ,EAAIoF,SAAWpF,EAAIgnG,OAAShnG,EAAIsqI,IAE1C,CACD,OAAOplI,CACT,CAKA,SAAS20I,GACPxO,EACAnmI,EACA40I,EACAJ,GAEA,IAAI15I,EAAMqrI,EAAQI,UAAUkY,GAAkBz+I,IAAWhoC,WACrDsyC,EAAoB,CAAEsqI,UAE1B,GAAIJ,GAAcrB,GAAiBqB,EAAWlH,YAAa,CACzD,IAAI,WAAEA,EAAU,YAAEE,GAAgBgH,EAIlClqI,EAAKjhB,OAASikJ,EAAWvyJ,cAEL,qBAAhByyJ,GACFljI,EAAK0rI,QAAU,IAAIgN,QAAQ,CAAE,eAAgBxV,IAC7CljI,EAAK+B,KAAOziB,KAAKC,UAAU2qJ,EAAW9G,OACb,eAAhBF,EAETljI,EAAK+B,KAAOmoI,EAAW58G,KAEP,sCAAhB41G,GACAgH,EAAW/G,SAGXnjI,EAAK+B,KAAOwyI,GAA8BrK,EAAW/G,UAGrDnjI,EAAK+B,KAAOmoI,EAAW/G,QAE1B,CAED,OAAO,IAAI4V,QAAQvoJ,EAAKwP,EAC1B,CAEA,SAASu0I,GAA8BpR,GACrC,IAAI6Q,EAAe,IAAIK,gBAEvB,IAAK,IAAKtoK,EAAK3f,KAAU+2K,EAAS3mB,UAEhCw3B,EAAar7I,OAAO5sB,EAAsB,kBAAV3f,EAAqBA,EAAQA,EAAMrH,MAGrE,OAAOivL,CACT,CAEA,SAASQ,GACPR,GAEA,IAAI7Q,EAAW,IAAIiR,SACnB,IAAK,IAAKroK,EAAK3f,KAAU4nL,EAAax3B,UACpC2mB,EAASxqI,OAAO5sB,EAAK3f,GAEvB,OAAO+2K,CACT,CAEA,SAAS6V,GACPtzB,EACA8mB,EACA+B,EACAnE,EACA3C,EACAwR,GAQA,IAEIjE,EAFApP,EAAwC,CAAC,EACzChqJ,EAAuC,KAEvCs9J,GAAa,EACbC,EAAyC,CAAC,EAC1C5O,EACFH,GAAuByB,GAAczB,EAAoB,IACrDA,EAAoB,GAAGj5J,WACvB5rB,EAqFN,OAlFAgpL,EAAQt9J,SAAQ,CAAC1E,EAAQvY,KACvB,IAAIirB,EAAKutJ,EAAcx4K,GAAOkpK,MAAMj+I,GAKpC,GAJAg8I,IACGuQ,GAAiBj/J,GAClB,uDAEEs/J,GAAct/J,GAAS,CACzB,IAAI4E,EAAQ5E,EAAO4E,MAWnB,QAPqB5rB,IAAjBglL,IACFp5J,EAAQo5J,EACRA,OAAehlL,GAGjBq2B,EAASA,GAAU,CAAC,EAEhBq9J,EACFr9J,EAAOqD,GAAM9N,MACR,CAIL,IAAI26J,EAAgBtB,GAAoB9kB,EAASzmI,GACX,MAAlCrD,EAAOkwJ,EAAc5O,MAAMj+I,MAC7BrD,EAAOkwJ,EAAc5O,MAAMj+I,IAAM9N,EAEpC,CAGDy0J,EAAW3mJ,QAAM15B,EAIZ2zL,IACHA,GAAa,EACblE,EAAaxS,GAAqBj2J,EAAO4E,OACrC5E,EAAO4E,MAAM4jB,OACb,KAEFxoB,EAAOm/J,UACTyN,EAAcl6J,GAAM1S,EAAOm/J,QAE9B,MACKE,GAAiBr/J,IACnBk7J,EAAgB51J,IAAIoN,EAAI1S,EAAOshK,cAC/BjI,EAAW3mJ,GAAM1S,EAAOshK,aAAan6J,KAId,MAArBnH,EAAOyoK,YACe,MAAtBzoK,EAAOyoK,YACNkE,IAEDlE,EAAazoK,EAAOyoK,YAElBzoK,EAAOm/J,UACTyN,EAAcl6J,GAAM1S,EAAOm/J,WAG7B9F,EAAW3mJ,GAAM1S,EAAOmH,KAGpBnH,EAAOyoK,YAAoC,MAAtBzoK,EAAOyoK,aAAuBkE,IACrDlE,EAAazoK,EAAOyoK,YAElBzoK,EAAOm/J,UACTyN,EAAcl6J,GAAM1S,EAAOm/J,SAGhC,SAMkBnmL,IAAjBglL,GAA8BH,IAChCxuJ,EAAS,CAAE,CAACwuJ,EAAoB,IAAKG,GACrC3E,EAAWwE,EAAoB,SAAM7kL,GAGhC,CACLqgL,aACAhqJ,SACAo5J,WAAYA,GAAc,IAC1BmE,gBAEJ,CAEA,SAASvL,GACPxmF,EACAs+D,EACA8mB,EACA+B,EACAnE,EACAqC,EACAc,EACA9F,GAKA,IAAI,WAAE7B,EAAU,OAAEhqJ,GAAWo9J,GAC3BtzB,EACA8mB,EACA+B,EACAnE,EACA3C,GACA,GAIF,IAAK,IAAIzzK,EAAQ,EAAGA,EAAQy4K,EAAqB9oL,OAAQqQ,IAAS,CAChE,IAAI,IAAE+X,EAAG,MAAE45F,EAAK,WAAEynE,GAAeX,EAAqBz4K,GACtDinK,QACqB11K,IAAnBgoL,QAA0DhoL,IAA1BgoL,EAAev5K,GAC/C,6CAEF,IAAIuY,EAASghK,EAAev5K,GAG5B,IAAIo5K,IAAcA,EAAW9C,OAAOgB,QAG7B,GAAIO,GAAct/J,GAAS,CAChC,IAAIu/J,EAAgBtB,GAAoBpjF,EAAMs+D,QAAc,MAAL//C,OAAK,EAALA,EAAOu3D,MAAMj+I,IAC9DrD,GAAUA,EAAOkwJ,EAAc5O,MAAMj+I,MACzCrD,EAAMw/I,GAAA,GACDx/I,EAAM,CACT,CAACkwJ,EAAc5O,MAAMj+I,IAAK1S,EAAO4E,SAGrCi2E,EAAMk/E,SAASj4C,OAAOtiH,EACvB,MAAM,GAAIy/J,GAAiBj/J,GAG1B0uJ,IAAU,EAAO,gDACZ,GAAI2Q,GAAiBr/J,GAG1B0uJ,IAAU,EAAO,uCACZ,CACL,IAAIkU,EAAcC,GAAe7iK,EAAOmH,MACxC0zE,EAAMk/E,SAASz0J,IAAI9F,EAAKojK,EACzB,CACF,CAED,MAAO,CAAEvJ,aAAYhqJ,SACvB,CAEA,SAASmtJ,GACPnD,EACAwT,EACA1zB,EACA9pI,GAEA,IAAIy9J,EAAgBje,GAAA,GAAQge,GAC5B,IAAK,IAAIzzE,KAAS+/C,EAAS,CACzB,IAAIzmI,EAAK0mF,EAAMu3D,MAAMj+I,GAerB,GAdIm6J,EAAc/tL,eAAe4zB,QACL15B,IAAtB6zL,EAAcn6J,KAChBo6J,EAAiBp6J,GAAMm6J,EAAcn6J,SAMX15B,IAAnBqgL,EAAW3mJ,IAAqB0mF,EAAMu3D,MAAMyI,SAGrD0T,EAAiBp6J,GAAM2mJ,EAAW3mJ,IAGhCrD,GAAUA,EAAOvwB,eAAe4zB,GAElC,KAEH,CACD,OAAOo6J,CACT,CAEA,SAASvM,GACP1C,GAEA,OAAKA,EAGEyB,GAAczB,EAAoB,IACrC,CAEE/D,WAAY,CAAC,GAEf,CACEA,WAAY,CACV,CAAC+D,EAAoB,IAAKA,EAAoB,GAAG12J,OAThD,CAAC,CAYZ,CAKA,SAAS82J,GACP9kB,EACA6lB,GAEA,IAAI+N,EAAkB/N,EAClB7lB,EAAQn4J,MAAM,EAAGm4J,EAAQznC,WAAWr8G,GAAMA,EAAEs7J,MAAMj+I,KAAOssJ,IAAW,GACpE,IAAI7lB,GACR,OACE4zB,EAAgBhnL,UAAUwzB,MAAMlkB,IAAmC,IAA7BA,EAAEs7J,MAAMwG,oBAC9Che,EAAQ,EAEZ,CAEA,SAAS+f,GAAuB3I,GAK9B,IAAII,EACgB,IAAlBJ,EAAOn5K,OACHm5K,EAAO,GACPA,EAAOh3I,MAAM1xB,GAAMA,EAAEJ,QAAUI,EAAE+7B,MAAmB,MAAX/7B,EAAE+7B,QAAiB,CAC1DlR,GAAI,wBAGZ,MAAO,CACLymI,QAAS,CACP,CACE1mI,OAAQ,CAAC,EACT4W,SAAU,GACVyqI,aAAc,GACdnD,UAGJA,QAEJ,CAEA,SAASsI,GACPzwI,EAAcwkJ,GAaR,IAZN,SACE3jJ,EAAQ,QACR21I,EAAO,OACPxsJ,EAAM,KACN/N,EAAI,QACJvD,cAOE,CAAC,EAAC8rK,EAEFjX,EAAa,uBACbkX,EAAe,kCAoCnB,OAlCe,MAAXzkJ,GACFutI,EAAa,cACA,oBAATtxJ,EACFwoK,EACE,wBAAwB5jJ,EAAxB,+EACwCnoB,EACjCsR,GAAU6W,GAAY21I,EAC/BiO,EACE,cAAcz6J,EAAM,gBAAgB6W,EAApC,+CAC2C21I,EAD3C,+CAGgB,iBAATv6J,EACTwoK,EAAe,sCACG,iBAATxoK,IACTwoK,EAAe,qCAEG,MAAXzkJ,GACTutI,EAAa,YACbkX,EAAyB,UAAAjO,EAAgC,yBAAA31I,EAAW,KAChD,MAAXb,GACTutI,EAAa,YACbkX,EAAe,yBAAyB5jJ,EAAW,KAC/B,MAAXb,IACTutI,EAAa,qBACTvjJ,GAAU6W,GAAY21I,EACxBiO,EACE,cAAcz6J,EAAOtO,cAAa,gBAAgBmlB,EAAlD,gDAC4C21I,EAD5C,+CAGOxsJ,IACTy6J,EAAe,2BAA2Bz6J,EAAOtO,cAAgB,MAI9D,IAAI4xJ,GACTttI,GAAU,IACVutI,EACA,IAAIn9K,MAAMq0L,IACV,EAEJ,CAGA,SAAS9L,GACPa,GAEA,IAAK,IAAIxlL,EAAIwlL,EAAQ5qL,OAAS,EAAGoF,GAAK,EAAGA,IAAK,CAC5C,IAAIwjB,EAASgiK,EAAQxlL,GACrB,GAAIyiL,GAAiBj/J,GACnB,MAAO,CAAEA,SAAQzjB,IAAKC,EAEzB,CACH,CAEA,SAASorL,GAAkBhkJ,GAEzB,OAAO+5D,GAAUkxE,GAAC,CAAC,EADc,kBAATjrI,EAAoBkrI,GAAUlrI,GAAQA,EAC3B,CAAA2qI,KAAM,KAC3C,CAqCA,SAAS2T,GAAwBliK,GAC/B,OACEurK,GAAWvrK,EAAOA,SAAWs2J,GAAoBpmC,IAAIlwH,EAAOA,OAAOwoB,OAEvE,CAEA,SAAS62I,GAAiBr/J,GACxB,OAAOA,EAAOyE,OAAS2rJ,GAAW4b,QACpC,CAEA,SAAS1M,GAAct/J,GACrB,OAAOA,EAAOyE,OAAS2rJ,GAAWxrJ,KACpC,CAEA,SAASq6J,GAAiBj/J,GACxB,OAAQA,GAAUA,EAAOyE,QAAU2rJ,GAAW8Q,QAChD,CAEM,SAAUuK,GACd5rL,GAEA,MACmB,kBAAVA,GACE,MAATA,GACA,SAAUA,GACV,SAAUA,GACV,SAAUA,GACK,yBAAfA,EAAM4kB,IAEV,CAcA,SAAS8mK,GAAW1rL,GAClB,OACW,MAATA,GACwB,kBAAjBA,EAAM2oC,QACe,kBAArB3oC,EAAMk2K,YACY,kBAAlBl2K,EAAMs/K,SACS,qBAAft/K,EAAM21C,IAEjB,CAYA,SAASgyI,GAAch1J,GACrB,OAAO6jJ,GAAoBnmC,IAAI19G,EAAO7K,cACxC,CAEA,SAAS20J,GACP9pJ,GAEA,OAAO2jJ,GAAqBjmC,IAAI19G,EAAO7K,cACzC,CAEAm1J,eAAeyF,GACbF,EACApC,EACA+B,EACAkL,EACA5F,EACAsB,GAEA,IAAK,IAAInhL,EAAQ,EAAGA,EAAQu6K,EAAQ5qL,OAAQqQ,IAAS,CACnD,IAAIuY,EAASgiK,EAAQv6K,GACjB2xG,EAAQ6mE,EAAcx4K,GAI1B,IAAK2xG,EACH,SAGF,IAAIyvE,EAAexG,EAAe9oJ,MAC/BlkB,GAAMA,EAAEs7J,MAAMj+I,KAAO0mF,EAAOu3D,MAAMj+I,KAEjCy6J,EACc,MAAhBtE,IACCU,GAAmBV,EAAczvE,SAC2BpgH,KAA5D4vL,GAAqBA,EAAkBxvE,EAAMu3D,MAAMj+I,KAEtD,GAAI2sJ,GAAiBr/J,KAAYsnK,GAAa6F,GAAuB,CAInE,IAAIpP,EAASmP,EAAQzlL,GACrBinK,GACEqP,EACA,0EAEIsI,GAAoBrmK,EAAQ+9J,EAAQuJ,GAAWxpE,MAAM99F,IACrDA,IACFgiK,EAAQv6K,GAASuY,GAAUgiK,EAAQv6K,GACpC,GAEJ,CACF,CACH,CAEAq1K,eAAeuJ,GACbrmK,EACA+9J,EACAqP,GAGA,QAHM,IAANA,IAAAA,GAAS,UAEWptK,EAAOshK,aAAa2K,YAAYlO,GACpD,CAIA,GAAIqP,EACF,IACE,MAAO,CACL3oK,KAAM2rJ,GAAWjpJ,KACjBA,KAAMnH,EAAOshK,aAAa+L,eAE5B,MAAOjwL,IAEP,MAAO,CACLqnB,KAAM2rJ,GAAWxrJ,MACjBA,MAAOxnB,GAEV,CAGH,MAAO,CACLqnB,KAAM2rJ,GAAWjpJ,KACjBA,KAAMnH,EAAOshK,aAAan6J,KAnB3B,CAqBH,CAEA,SAASigK,GAAmBn8C,GAC1B,OAAO,IAAI68C,gBAAgB78C,GAAQqiD,OAAO,SAASlkB,MAAMxsK,GAAY,KAANA,GACjE,CAEA,SAASiiL,GACP1lB,EACAhwH,GAEA,IAAI8hG,EACkB,kBAAb9hG,EAAwB2lI,GAAU3lI,GAAU8hG,OAAS9hG,EAAS8hG,OACvE,GACEkuB,EAAQA,EAAQ/hK,OAAS,GAAGu5K,MAAMlpK,OAClC2/K,GAAmBn8C,GAAU,IAG7B,OAAOkuB,EAAQA,EAAQ/hK,OAAS,GAIlC,IAAIy9K,EAAcH,GAA2Bvb,GAC7C,OAAO0b,EAAYA,EAAYz9K,OAAS,EAC1C,CAEA,SAAS0oL,GACPpG,GAEA,IAAI,WAAEjD,EAAU,WAAEC,EAAU,YAAEC,EAAW,KAAE51G,EAAI,SAAE61G,EAAQ,KAAEC,GACzD6C,EACF,GAAKjD,GAAeC,GAAeC,EAInC,OAAY,MAAR51G,EACK,CACL01G,aACAC,aACAC,cACAC,cAAU59K,EACV69K,UAAM79K,EACN+nE,QAEmB,MAAZ61G,EACF,CACLH,aACAC,aACAC,cACAC,WACAC,UAAM79K,EACN+nE,UAAM/nE,QAEUA,IAAT69K,EACF,CACLJ,aACAC,aACAC,cACAC,cAAU59K,EACV69K,OACA91G,UAAM/nE,QAPH,CAUT,CAEA,SAASymL,GACPt2I,EACAw0I,GAEA,GAAIA,EAAY,CAWd,MAV8C,CAC5C9iF,MAAO,UACP1xD,WACAstI,WAAYkH,EAAWlH,WACvBC,WAAYiH,EAAWjH,WACvBC,YAAagH,EAAWhH,YACxBC,SAAU+G,EAAW/G,SACrBC,KAAM8G,EAAW9G,KACjB91G,KAAM48G,EAAW58G,KAGpB,CAWC,MAV8C,CAC5C85B,MAAO,UACP1xD,WACAstI,gBAAYz9K,EACZ09K,gBAAY19K,EACZ29K,iBAAa39K,EACb49K,cAAU59K,EACV69K,UAAM79K,EACN+nE,UAAM/nE,EAIZ,CAmBA,SAAS0nL,GACP/C,EACAx2J,GAEA,GAAIw2J,EAAY,CAWd,MAVwC,CACtC9iF,MAAO,UACP47E,WAAYkH,EAAWlH,WACvBC,WAAYiH,EAAWjH,WACvBC,YAAagH,EAAWhH,YACxBC,SAAU+G,EAAW/G,SACrBC,KAAM8G,EAAW9G,KACjB91G,KAAM48G,EAAW58G,KACjB55C,OAGH,CAWC,MAVwC,CACtC0zE,MAAO,UACP47E,gBAAYz9K,EACZ09K,gBAAY19K,EACZ29K,iBAAa39K,EACb49K,cAAU59K,EACV69K,UAAM79K,EACN+nE,UAAM/nE,EACNmuB,OAIN,CAmBA,SAAS07J,GAAe17J,GAWtB,MAVqC,CACnC0zE,MAAO,OACP47E,gBAAYz9K,EACZ09K,gBAAY19K,EACZ29K,iBAAa39K,EACb49K,cAAU59K,EACV69K,UAAM79K,EACN+nE,UAAM/nE,EACNmuB,OAGJ,wOC5mLO,MAAMomK,GACXp4J,EAAAA,cAAoD,MAK/C,MAAMq4J,GAAyBr4J,EAAAA,cAEpC,MA8CK,MAAMs4J,GAAoBt4J,EAAAA,cAC/B,MAYK,MAAMu4J,GAAkBv4J,EAAAA,cAC7B,YAaWw4J,GAAex4J,EAAAA,cAAwC,CAClEy4J,OAAQ,KACRz0B,QAAS,GACT00B,aAAa,IAOR,MAAMC,GAAoB34J,EAAAA,cAAyB,MClFnD,SAAS44J,KACd,OAA4C,MAArC54J,EAAAA,WAAiBu4J,GAC1B,CAYO,SAASM,KAQd,OANED,MADFE,IAAU,GAOH94J,EAAAA,WAAiBu4J,IAAiBvkJ,QAC3C,CAkDA,SAAS+kJ,GACP1iJ,GAEerW,EAAAA,WAAiBs4J,IAAmBU,QAKjDh5J,EAAAA,gBAAsBqW,EAE1B,CAQO,SAAS4iJ,KACd,IAAI,YAAEP,GAAgB14J,EAAAA,WAAiBw4J,IAGvC,OAAOE,EAq4BT,WACE,IAAI,OAAElW,GAAW0W,GAAqBC,GAAeC,mBACjD77J,EAAK87J,GAAkBC,GAAoBF,mBAE3CG,EAAYv5J,EAAAA,QAAa,GAC7B+4J,IAA0B,KACxBQ,EAAU/vK,SAAU,CAAI,IAG1B,IAAIqmK,EAA6B7vJ,EAAAA,aAC/B,SAACgqB,EAAiBltB,QAAwB,IAAxBA,IAAAA,EAA2B,CAAC,GAKvCy8J,EAAU/vK,UAEG,kBAAPwgC,EACTw4H,EAAOqN,SAAS7lI,GAEhBw4H,EAAOqN,SAAS7lI,EAAE0vH,GAAA,CAAIsW,YAAazyJ,GAAOT,IAE9C,GACA,CAAC0lJ,EAAQjlJ,IAGX,OAAOsyJ,CACT,CAh6BuB2J,GAGvB,WAEIZ,MADFE,IAAU,GAOV,IAAIW,EAAoBz5J,EAAAA,WAAiBo4J,KACrC,SAAErc,EAAQ,OAAEgH,EAAM,UAAE58I,GAAcnG,EAAAA,WAAiBs4J,KACnD,QAAEt0B,GAAYhkI,EAAAA,WAAiBw4J,KAC7BtkJ,SAAU4rI,GAAqB+Y,KAEjCa,EAAqB97J,KAAKC,UAC5B87J,GAAoB31B,EAAS+e,EAAOtD,uBAGlC8Z,EAAYv5J,EAAAA,QAAa,GAC7B+4J,IAA0B,KACxBQ,EAAU/vK,SAAU,CAAI,IAG1B,IAAIqmK,EAA6B7vJ,EAAAA,aAC/B,SAACgqB,EAAiBltB,GAKhB,QALwC,IAAxBA,IAAAA,EAA2B,CAAC,IAKvCy8J,EAAU/vK,QAAS,OAExB,GAAkB,kBAAPwgC,EAET,YADA7jB,EAAU60I,GAAGhxH,GAIf,IAAIvb,EAAOkxI,GACT31H,EACApsB,KAAKK,MAAMy7J,GACX5Z,EACqB,SAArBhjJ,EAAQmzJ,UASe,MAArBwJ,GAA0C,MAAb1d,IAC/BttI,EAAKyF,SACe,MAAlBzF,EAAKyF,SACD6nI,EACAqB,GAAU,CAACrB,EAAUttI,EAAKyF,aAG/BpX,EAAQzpB,QAAU8yB,EAAU9yB,QAAU8yB,EAAU7+B,MACjDmnC,EACA3R,EAAQ4oE,MACR5oE,EAEJ,GACA,CACEi/I,EACA51I,EACAuzJ,EACA5Z,EACA2Z,IAIJ,OAAO5J,CACT,CA1E6C+J,EAC7C,CA2EA,MAAMC,GAAgB75J,EAAAA,cAA6B,MAgD5C,SAAS85J,GACd9vI,EAAMyiI,GAEA,IADN,SAAEwD,QAA8C,IAAAxD,EAAG,CAAC,EAACA,GAEjD,OAAE1J,GAAW/iJ,EAAAA,WAAiBs4J,KAC9B,QAAEt0B,GAAYhkI,EAAAA,WAAiBw4J,KAC7BtkJ,SAAU4rI,GAAqB+Y,KACjCa,EAAqB97J,KAAKC,UAC5B87J,GAAoB31B,EAAS+e,EAAOtD,uBAGtC,OAAOz/I,EAAAA,SACL,IACE2/I,GACE31H,EACApsB,KAAKK,MAAMy7J,GACX5Z,EACa,SAAbmQ,IAEJ,CAACjmI,EAAI0vI,EAAoB5Z,EAAkBmQ,GAE/C,CAkBO,SAAS8J,GACd3e,EACAU,EACAke,EACAjX,GAGE6V,MADFE,IAAU,GAOV,IAAI,UAAE3yJ,GAAcnG,EAAAA,WAAiBs4J,KAC/Bt0B,QAASi2B,GAAkBj6J,EAAAA,WAAiBw4J,IAC9C0B,EAAaD,EAAcA,EAAch4L,OAAS,GAClDk4L,EAAeD,EAAaA,EAAW58J,OAAS,CAAC,EAEjD88J,GADiBF,GAAaA,EAAWhmJ,SACpBgmJ,EAAaA,EAAWvb,aAAe,KAC9Cub,GAAcA,EAAW1e,MAqC3C,IAEIxnI,EAFAqmJ,EAAsBxB,KAG1B,GAAI/c,EAAa,KAAAwe,EACf,IAAIC,EACqB,kBAAhBze,EAA2BnC,GAAUmC,GAAeA,EAGpC,MAAvBse,IAC4B,OADFE,EACxBC,EAAkBrmJ,eAAQ,EAA1BomJ,EAA4Bnd,WAAWid,KAF3CtB,IAAU,GASV9kJ,EAAWumJ,CACb,MACEvmJ,EAAWqmJ,EAGb,IAAInmJ,EAAWF,EAASE,UAAY,IAEhCuqI,EAAoBvqI,EACxB,GAA2B,MAAvBkmJ,EAA4B,CAe9B,IAAII,EAAiBJ,EAAmB/mL,QAAQ,MAAO,IAAI3N,MAAM,KAEjE+4K,EAAoB,IADLvqI,EAAS7gC,QAAQ,MAAO,IAAI3N,MAAM,KACdmG,MAAM2uL,EAAev4L,QAAQmO,KAAK,IACvE,CAEA,IAAI4zJ,EAAU6X,GAAYT,EAAQ,CAAElnI,SAAUuqI,IAmB9C,IAAIgc,EAAkBC,GACpB12B,GACEA,EAAQn0I,KAAKo0F,GACXnhH,OAAOG,OAAO,CAAC,EAAGghH,EAAO,CACvB3mF,OAAQx6B,OAAOG,OAAO,CAAC,EAAGk3L,EAAcl2E,EAAM3mF,QAC9C4W,SAAUkpI,GAAU,CAClBgd,EAEAj0J,EAAUu0I,eACNv0I,EAAUu0I,eAAez2D,EAAM/vE,UAAUA,SACzC+vE,EAAM/vE,WAEZyqI,aACyB,MAAvB16D,EAAM06D,aACFyb,EACAhd,GAAU,CACRgd,EAEAj0J,EAAUu0I,eACNv0I,EAAUu0I,eAAez2D,EAAM06D,cAAczqI,SAC7C+vE,EAAM06D,mBAIxBsb,EACAD,EACAjX,GAMF,OAAIjH,GAAe2e,EAEfz6J,EAAAA,cAACu4J,GAAgB/6B,SAAQ,CACvB9yJ,MAAO,CACLspC,SAAQ0lI,GAAA,CACNxlI,SAAU,IACV4hG,OAAQ,GACRsjC,KAAM,GACN1zE,MAAO,KACPr7E,IAAK,WACF2pB,GAEL2mJ,eAAgB5hB,GAAeqB,MAGhCqgB,GAKAA,CACT,CAEA,SAASG,KACP,IAAInrK,EA0cC,WAAkC,IAAAorK,EACvC,IAAIprK,EAAQuQ,EAAAA,WAAiB24J,IACzBjzF,EAAQo1F,GAAmBxB,GAAoByB,eAC/ClR,EAAUwP,GAAkBC,GAAoByB,eAIpD,QAAcl3L,IAAV4rB,EACF,OAAOA,EAIT,OAAO,OAAPorK,EAAOn1F,EAAMxrE,aAAN,EAAA2gK,EAAehR,EACxB,CAvdcmR,GACRjvK,EAAU+0J,GAAqBrxJ,GAC5BA,EAAM4jB,OAAU,IAAA5jB,EAAMmxJ,WACzBnxJ,aAAiBhsB,MACjBgsB,EAAM1D,QACN6R,KAAKC,UAAUpO,GACfgL,EAAQhL,aAAiBhsB,MAAQgsB,EAAMgL,MAAQ,KAC/CwgK,EAAY,yBACZC,EAAY,CAAErmL,QAAS,SAAUypF,gBAAiB28F,GAsBtD,OACEj7J,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAI,2CACJA,EAAAA,cAAA,MAAIxB,MAAO,CAAEgsC,UAAW,WAAaz+C,GACpC0O,EAAQuF,EAAAA,cAAA,OAAKxB,MAAO08J,GAAYzgK,GAAe,KAvBtC,KA2BhB,CAEA,MAAM0gK,GAAsBn7J,EAAAA,cAAC46J,GAAqB,MAgB3C,MAAMQ,WAA4Bp7J,EAAAA,UAIvC79B,WAAAA,CAAYo8B,GACVvS,MAAMuS,GACNzsB,KAAK4zF,MAAQ,CACX1xD,SAAUzV,EAAMyV,SAChB0wI,aAAcnmJ,EAAMmmJ,aACpBj1J,MAAO8O,EAAM9O,MAEjB,CAEA,+BAAOs8H,CAAyBt8H,GAC9B,MAAO,CAAEA,MAAOA,EAClB,CAEA,+BAAOw7H,CACL1sH,EACAmnE,GAUA,OACEA,EAAM1xD,WAAazV,EAAMyV,UACD,SAAvB0xD,EAAMg/E,cAAkD,SAAvBnmJ,EAAMmmJ,aAEjC,CACLj1J,MAAO8O,EAAM9O,MACbukB,SAAUzV,EAAMyV,SAChB0wI,aAAcnmJ,EAAMmmJ,cAQjB,CACLj1J,WAAuB5rB,IAAhB06B,EAAM9O,MAAsB8O,EAAM9O,MAAQi2E,EAAMj2E,MACvDukB,SAAU0xD,EAAM1xD,SAChB0wI,aAAcnmJ,EAAMmmJ,cAAgBh/E,EAAMg/E,aAE9C,CAEA14B,iBAAAA,CAAkBv8H,EAAY4rK,GAC5B1lK,QAAQlG,MACN,wDACAA,EACA4rK,EAEJ,CAEA11G,MAAAA,GACE,YAA4B9hF,IAArBiO,KAAK4zF,MAAMj2E,MAChBuQ,EAAAA,cAACw4J,GAAah7B,SAAQ,CAAC9yJ,MAAOoH,KAAKysB,MAAM+8J,cACvCt7J,EAAAA,cAAC24J,GAAkBn7B,SAAQ,CACzB9yJ,MAAOoH,KAAK4zF,MAAMj2E,MAClB6wE,SAAUxuF,KAAKysB,MAAMixC,aAIzB19D,KAAKysB,MAAM+hE,QAEf,EASF,SAASi7F,GAAazrK,GAAwD,IAAvD,aAAEwrK,EAAY,MAAEr3E,EAAK,SAAE3jB,GAA8BxwE,EACtE2pK,EAAoBz5J,EAAAA,WAAiBo4J,IAazC,OAREqB,GACAA,EAAkBT,QAClBS,EAAkB/D,gBACjBzxE,EAAMu3D,MAAMggB,cAAgBv3E,EAAMu3D,MAAMigB,iBAEzChC,EAAkB/D,cAAcgG,2BAA6Bz3E,EAAMu3D,MAAMj+I,IAIzEyC,EAAAA,cAACw4J,GAAah7B,SAAQ,CAAC9yJ,MAAO4wL,GAC3Bh7F,EAGP,CAEO,SAASo6F,GACd12B,EACAi2B,EACAD,EACAjX,GAC2B,IAAA4Y,EAC3B,QAJ2B,IAA3B1B,IAAAA,EAA8B,SACc,IAA5CD,IAAAA,EAA+C,WACX,IAApCjX,IAAAA,EAAuC,MAExB,MAAX/e,EAAiB,KAAA43B,EACnB,IAAK5B,EACH,OAAO,KAGT,GAAIA,EAAgB9/J,OAGlB8pI,EAAUg2B,EAAgBh2B,YACrB,MACL,OAAA43B,EAAA7Y,IAAA6Y,EAAQ1Y,qBACiB,IAAzB+W,EAAch4L,SACb+3L,EAAgBnhF,aACjBmhF,EAAgBh2B,QAAQ/hK,OAAS,GAUjC,OAAO,KAFP+hK,EAAUg2B,EAAgBh2B,OAG5B,CACF,CAEA,IAAIy2B,EAAkBz2B,EAGlB9pI,EAAS,OAAHyhK,EAAG3B,QAAA,EAAA2B,EAAiBzhK,OAC9B,GAAc,MAAVA,EAAgB,CAClB,IAAI2hK,EAAapB,EAAgBl+D,WAC9Br8G,GAAMA,EAAEs7J,MAAMj+I,SAA+B15B,KAAnB,MAANq2B,OAAM,EAANA,EAASha,EAAEs7J,MAAMj+I,OAGtCs+J,GAAc,GADhB/C,IAAU,GAMV2B,EAAkBA,EAAgB5uL,MAChC,EACA7H,KAAK6O,IAAI4nL,EAAgBx4L,OAAQ45L,EAAa,GAElD,CAIA,IAAIC,GAAiB,EACjBC,GAAiB,EACrB,GAAI/B,GAAmBjX,GAAUA,EAAOG,oBACtC,IAAK,IAAI77K,EAAI,EAAGA,EAAIozL,EAAgBx4L,OAAQoF,IAAK,CAC/C,IAAI48G,EAAQw2E,EAAgBpzL,GAM5B,IAJI48G,EAAMu3D,MAAMwgB,iBAAmB/3E,EAAMu3D,MAAMygB,0BAC7CF,EAAgB10L,GAGd48G,EAAMu3D,MAAMj+I,GAAI,CAClB,IAAI,WAAE2mJ,EAAU,OAAEhqJ,GAAW8/J,EACzBkC,EACFj4E,EAAMu3D,MAAMyI,aACmBpgL,IAA/BqgL,EAAWjgE,EAAMu3D,MAAMj+I,OACrBrD,QAAqCr2B,IAA3Bq2B,EAAO+pF,EAAMu3D,MAAMj+I,KACjC,GAAI0mF,EAAMu3D,MAAMzd,MAAQm+B,EAAkB,CAIxCJ,GAAiB,EAEfrB,EADEsB,GAAiB,EACDtB,EAAgB5uL,MAAM,EAAGkwL,EAAgB,GAEzC,CAACtB,EAAgB,IAErC,KACF,CACF,CACF,CAGF,OAAOA,EAAgB0B,aAAY,CAAC1D,EAAQx0E,EAAO3xG,KAEjD,IAAImd,EACA2sK,GAA8B,EAC9BZ,EAAuC,KACvCS,EAAiD,KA0VzD,IAAqB5xK,EAzVb2vK,IACFvqK,EAAQyK,GAAU+pF,EAAMu3D,MAAMj+I,GAAKrD,EAAO+pF,EAAMu3D,MAAMj+I,SAAM15B,EAC5D23L,EAAev3E,EAAMu3D,MAAMggB,cAAgBL,GAEvCW,IACEC,EAAgB,GAAe,IAAVzpL,GAoVZ+X,EAlVT,kBACA,GAkVIgyK,GAAchyK,KAC1BgyK,GAAchyK,IAAO,GAhVf+xK,GAA8B,EAC9BH,EAAyB,MAChBF,IAAkBzpL,IAC3B8pL,GAA8B,EAC9BH,EAAyBh4E,EAAMu3D,MAAMygB,wBAA0B,QAKrE,IAAIj4B,EAAUi2B,EAAc1tK,OAAOkuK,EAAgB5uL,MAAM,EAAGyG,EAAQ,IAChEgqL,EAAcA,KAChB,IAAIh8F,EAkBJ,OAhBEA,EADE7wE,EACS+rK,EACFY,EACEH,EACFh4E,EAAMu3D,MAAMze,UAOV/8H,EAAAA,cAACikF,EAAMu3D,MAAMze,UAAS,MACxB94C,EAAMu3D,MAAMvwI,QACVg5E,EAAMu3D,MAAMvwI,QAEZwtJ,EAGXz4J,EAAAA,cAACu7J,GAAa,CACZt3E,MAAOA,EACPq3E,aAAc,CACZ7C,SACAz0B,UACA00B,YAAgC,MAAnBsB,GAEf15F,SAAUA,GACV,EAMN,OAAO05F,IACJ/1E,EAAMu3D,MAAMigB,eAAiBx3E,EAAMu3D,MAAMggB,cAA0B,IAAVlpL,GAC1D0tB,EAAAA,cAACo7J,GAAmB,CAClBpnJ,SAAUgmJ,EAAgBhmJ,SAC1B0wI,aAAcsV,EAAgBtV,aAC9Bl1G,UAAWgsH,EACX/rK,MAAOA,EACP6wE,SAAUg8F,IACVhB,aAAc,CAAE7C,OAAQ,KAAMz0B,UAAS00B,aAAa,KAGtD4D,GACD,GACA,KACL,CAAC,IAEInD,GAAc,SAAdA,GAAc,OAAdA,EAAc,wBAAdA,EAAc,gCAAdA,EAAc,gCAAdA,CAAc,EAAdA,IAAc,IAMdG,GAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,wBAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,wCAAnBA,EAAmB,wBAAnBA,EAAmB,gCAAnBA,EAAmB,gCAAnBA,EAAmB,wBAAnBA,CAAmB,EAAnBA,IAAmB,IAmBxB,SAASJ,GAAqBqD,GAC5B,IAAIt2K,EAAM+Z,EAAAA,WAAiBo4J,IAE3B,OADUnyK,GAAV6yK,IAAU,GACH7yK,CACT,CAEA,SAAS60K,GAAmByB,GAC1B,IAAI72F,EAAQ1lE,EAAAA,WAAiBq4J,IAE7B,OADU3yF,GAAVozF,IAAU,GACHpzF,CACT,CASA,SAAS2zF,GAAkBkD,GACzB,IAAI/gB,EARN,WACE,IAAIA,EAAQx7I,EAAAA,WAAiBw4J,IAE7B,OADUhd,GAAVsd,IAAU,GACHtd,CACT,CAIcghB,GACRC,EAAYjhB,EAAMxX,QAAQwX,EAAMxX,QAAQ/hK,OAAS,GAKrD,OAHEw6L,EAAUjhB,MAAMj+I,IADlBu7J,IAAU,GAIH2D,EAAUjhB,MAAMj+I,EACzB,CA4NA,MAAM8+J,GAAyC,CAAC,ECngCpBr8J,EAAsB,gBA+L3C,SAAS08J,GAAQj3J,GAKA,IALC,GACvBukB,EAAE,QACF32C,EAAO,MACPqyF,EAAK,SACLuqF,GACcxqJ,EAEZmzJ,MADFE,IAAU,GAOV,IAAI,OAAE/V,EAAQiW,OAAQ2D,GAAa38J,EAAAA,WAAiBs4J,KAShD,QAAEt0B,GAAYhkI,EAAAA,WAAiBw4J,KAC7BtkJ,SAAU4rI,GAAqB+Y,KACjChJ,EAAWoJ,KAIXxqJ,EAAOkxI,GACT31H,EACA2vI,GAAoB31B,EAAS+e,EAAOtD,sBACpCK,EACa,SAAbmQ,GAEE2M,EAAWh/J,KAAKC,UAAU4Q,GAO9B,OALAzO,EAAAA,WACE,IAAM6vJ,EAASjyJ,KAAKK,MAAM2+J,GAAW,CAAEvpL,UAASqyF,QAAOuqF,cACvD,CAACJ,EAAU+M,EAAU3M,EAAU58K,EAASqyF,IAGnC,IACT,CAWO,SAASm3F,GAAOt+J,GACrB,ODvDK,SAAmBi4D,GACxB,IAAIiiG,EAASz4J,EAAAA,WAAiBw4J,IAAcC,OAC5C,OAAIA,EAEAz4J,EAAAA,cAAC65J,GAAcr8B,SAAQ,CAAC9yJ,MAAO8rF,GAAUiiG,GAGtCA,CACT,CC+CSqE,CAAUv+J,EAAMi4D,QACzB,CA8EO,SAASumG,GAAMnK,GAQqB,IAPzC7W,SAAUihB,EAAe,IAAG,SAC5B18F,EAAW,KACXtsD,SAAUipJ,EAAY,eACtBtC,EAAiB5hB,GAAeqB,IAAG,UACnCj0I,EACA6yJ,OAAQkE,GAAa,EAAK,OAC1Bna,GACY6P,EAETgG,MADHE,IAAU,GAQV,IAAI/c,EAAWihB,EAAa3pL,QAAQ,OAAQ,KACxC8pL,EAAoBn9J,EAAAA,SACtB,KAAM,CACJ+7I,WACA51I,YACA6yJ,OAAQkE,EACRna,OAAMrJ,GAAA,CACJ+F,sBAAsB,GACnBsD,MAGP,CAAChH,EAAUgH,EAAQ58I,EAAW+2J,IAGJ,kBAAjBD,IACTA,EAAetjB,GAAUsjB,IAG3B,IAAI,SACF/oJ,EAAW,IAAG,OACd4hG,EAAS,GAAE,KACXsjC,EAAO,GAAE,MACT1zE,EAAQ,KAAI,IACZr7E,EAAM,WACJ4yK,EAEAG,EAAkBp9J,EAAAA,SAAc,KAClC,IAAIq9J,EAAmBnhB,GAAchoI,EAAU6nI,GAE/C,OAAwB,MAApBshB,EACK,KAGF,CACLrpJ,SAAU,CACRE,SAAUmpJ,EACVvnD,SACAsjC,OACA1zE,QACAr7E,OAEFswK,iBACD,GACA,CAAC5e,EAAU7nI,EAAU4hG,EAAQsjC,EAAM1zE,EAAOr7E,EAAKswK,IASlD,OAAuB,MAAnByC,EACK,KAIPp9J,EAAAA,cAACs4J,GAAkB96B,SAAQ,CAAC9yJ,MAAOyyL,GACjCn9J,EAAAA,cAACu4J,GAAgB/6B,SAAQ,CAACl9D,SAAUA,EAAU51F,MAAO0yL,IAG3D,CAyD4B,IAAI74E,SAAQ,SAEPvkF,EAAAA,UCzTjC,SAASq7I,GAAmBG,GAC1B,IAAI6P,EAAgE,CAGlErJ,iBAAyC,MAAvBxG,EAAMigB,eAA+C,MAAtBjgB,EAAMggB,cAmDzD,OAhDIhgB,EAAMze,WAURj6J,OAAOG,OAAOooL,EAAS,CACrBpgJ,QAASjL,EAAAA,cAAoBw7I,EAAMze,WACnCA,eAAWl5J,IAIX23K,EAAMwgB,iBAURl5L,OAAOG,OAAOooL,EAAS,CACrB4Q,uBAAwBj8J,EAAAA,cAAoBw7I,EAAMwgB,iBAClDA,qBAAiBn4L,IAIjB23K,EAAMigB,eAUR34L,OAAOG,OAAOooL,EAAS,CACrBmQ,aAAcx7J,EAAAA,cAAoBw7I,EAAMigB,eACxCA,mBAAe53L,IAIZwnL,CACT,+WCxNgB,SAAAiS,GACdh/I,GAEA,YAFA,IAAAA,IAAAA,EAA4B,IAErB,IAAIq0I,gBACO,kBAATr0I,GACPz2C,MAAMC,QAAQw2C,IACdA,aAAgBq0I,gBACZr0I,EACAx7C,OAAOg1C,KAAKwG,GAAM92C,QAAO,CAACw2J,EAAM3zI,KAC9B,IAAI3f,EAAQ4zC,EAAKj0B,GACjB,OAAO2zI,EAAKzxI,OACV1kB,MAAMC,QAAQ4C,GAASA,EAAMmlB,KAAKpoB,GAAM,CAAC4iB,EAAK5iB,KAAM,CAAC,CAAC4iB,EAAK3f,IAC5D,GACA,IAEX,CA4IgD,IAAIgzH,IAAI,CACtD,oCACA,sBACA,+ICeF,IACEtrH,OAAOmrL,qBAHT,GAIC,CAAC,MAAOt1L,IACP,CAwDF,SAASu1L,KAAkB,IAAAvO,EACzB,IAAIvpF,EAAQ,OAAHupF,EAAG78K,aAAA,EAAA68K,EAAQwO,4BAOpB,OANI/3F,GAASA,EAAMxrE,SACjBwrE,EAAKg0E,GAAA,GACAh0E,EAAK,CACRxrE,OAAQwjK,GAAkBh4F,EAAMxrE,WAG7BwrE,CACT,CAEA,SAASg4F,GACPxjK,GAEA,IAAKA,EAAQ,OAAO,KACpB,IAAI4gI,EAAUh4J,OAAOg4J,QAAQ5gI,GACzByjK,EAA6C,CAAC,EAClD,IAAK,IAAKtzK,EAAKnZ,KAAQ4pJ,EAGrB,GAAI5pJ,GAAsB,uBAAfA,EAAI0sL,OACbD,EAAWtzK,GAAO,IAAIwzK,GACpB3sL,EAAImiC,OACJniC,EAAI0vK,WACJ1vK,EAAI8gB,MACa,IAAjB9gB,EAAI2vK,eAED,GAAI3vK,GAAsB,UAAfA,EAAI0sL,OAAoB,CAExC,GAAI1sL,EAAI4sL,UAAW,CACjB,IAAIC,EAAmB3rL,OAAOlB,EAAI4sL,WAClC,GAAgC,oBAArBC,EACT,IAEE,IAAItuK,EAAQ,IAAIsuK,EAAiB7sL,EAAI6a,SAGrC0D,EAAMgL,MAAQ,GACdkjK,EAAWtzK,GAAOoF,EAClB,MAAOxnB,IACP,CAGL,CAED,GAAuB,MAAnB01L,EAAWtzK,GAAc,CAC3B,IAAIoF,EAAQ,IAAIhsB,MAAMyN,EAAI6a,SAG1B0D,EAAMgL,MAAQ,GACdkjK,EAAWtzK,GAAOoF,CACnB,CACF,MACCkuK,EAAWtzK,GAAOnZ,EAGtB,OAAOysL,CACT,CAmBA,MAAMK,GAAwBh+J,EAAAA,cAAiD,CAC7Ei+J,iBAAiB,IAWb,MAAAC,GAAkBl+J,EAAAA,cAA2C,IAAI9P,KAkCvE,MACMiuK,GAAsBn+J,EAAsB,gBAE5Co+J,GAAgBC,GAAmB,UAEvBr+J,EAAY,MAU9B,SAASs+J,GAAcjoJ,GACjB+nJ,GACFA,GAAc/nJ,GAEdA,GAEJ,CASA,MAAMkoJ,GAOJp8L,WAAAA,GANA,KAAMkxC,OAAwC,UAO5CvhC,KAAK0hK,QAAU,IAAIjvD,SAAQ,CAAC24B,EAASu2B,KACnC3hK,KAAKorI,QAAWxyI,IACM,YAAhBoH,KAAKuhC,SACPvhC,KAAKuhC,OAAS,WACd6pG,EAAQxyI,GACT,EAEHoH,KAAK2hK,OAAU+qB,IACO,YAAhB1sL,KAAKuhC,SACPvhC,KAAKuhC,OAAS,WACdogI,EAAO+qB,GACR,CACF,GAEL,EAMI,SAAUC,GAAc3uK,GAIR,IAJS,gBAC7B4uK,EAAe,OACflc,EAAM,OACNO,GACoBjzJ,GACf41E,EAAOi5F,GAAgB3+J,EAAAA,SAAewiJ,EAAO98E,QAC7Ck5F,EAAcC,GAAmB7+J,EAAAA,YACjC8+J,EAAWC,GAAgB/+J,EAAAA,SAA4C,CAC1Ei+J,iBAAiB,KAEde,EAAWC,GAAgBj/J,EAAAA,YAC3Bo0F,EAAY8qE,GAAiBl/J,EAAAA,YAC7Bm/J,EAAcC,GAAmBp/J,EAAAA,WAKlCq/J,EAAcr/J,EAAAA,OAA+B,IAAI9P,MACjD,mBAAEovK,GAAuBvc,GAAU,CAAC,EAEpCwc,EAAuBv/J,EAAAA,aACxBqW,IACKipJ,EAzEV,SAA6BjpJ,GACvB8nJ,GACFA,GAAoB9nJ,GAEpBA,GAEJ,CAoEQmpJ,CAAoBnpJ,GAEpBA,GACD,GAEH,CAACipJ,IAGChxE,EAAWtuF,EAAAA,aACb,CACEomJ,EAAqB/hJ,KAMnB,IALF,gBACEyhJ,EACAc,mBAAoB7sB,EACpB2sB,4BAA6BC,GAC9BtiJ,EAEDyhJ,EAAgBv2J,SAASlF,GAAQg1K,EAAY71K,QAAQmjH,OAAOtiH,KAC5D+7J,EAASxB,SAASr1J,SAAQ,CAACi3J,EAASn8J,UACbxmB,IAAjB2iL,EAAQx0J,MACVqtK,EAAY71K,QAAQ2G,IAAI9F,EAAKm8J,EAAQx0J,KACtC,IAGH,IAAIytK,EACe,MAAjBjd,EAAOpwK,QACmB,MAA1BowK,EAAOpwK,OAAOuyB,UACwC,oBAA/C69I,EAAOpwK,OAAOuyB,SAAS+6J,oBAIhC,GAAK/Y,IAAsB8Y,EAA3B,CAUA,GAAI1lC,EAAW,CAEbukC,IAAc,KAERlqE,IACF4qE,GAAaA,EAAU9hD,UACvB9oB,EAAWurE,kBAEbZ,EAAa,CACXd,iBAAiB,EACjBlkC,WAAW,EACXwtB,gBAAiBZ,EAAmBY,gBACpCC,aAAcb,EAAmBa,cACjC,IAIJ,IAAI/wK,EAAI+rK,EAAOpwK,OAAQuyB,SAAS+6J,qBAAoB,KAClDpB,IAAc,IAAMK,EAAavY,IAAU,IAc7C,OAVA3vK,EAAEk5J,SAASiwB,SAAQ,KACjBtB,IAAc,KACZW,OAAap7L,GACbq7L,OAAcr7L,GACdg7L,OAAgBh7L,GAChBk7L,EAAa,CAAEd,iBAAiB,GAAQ,GACxC,SAGJK,IAAc,IAAMY,EAAczoL,IAEnC,CAGG29G,GAGF4qE,GAAaA,EAAU9hD,UACvB9oB,EAAWurE,iBACXP,EAAgB,CACd15F,MAAO0gF,EACPmB,gBAAiBZ,EAAmBY,gBACpCC,aAAcb,EAAmBa,iBAInCqX,EAAgBzY,GAChB2Y,EAAa,CACXd,iBAAiB,EACjBlkC,WAAW,EACXwtB,gBAAiBZ,EAAmBY,gBACpCC,aAAcb,EAAmBa,eAxDpC,MANKztB,EACFukC,IAAc,IAAMK,EAAavY,KAEjCmZ,GAAqB,IAAMZ,EAAavY,IA6D3C,GAEH,CAAC5D,EAAOpwK,OAAQgiH,EAAY4qE,EAAWK,EAAaE,IAKtDv/J,EAAAA,iBAAsB,IAAMwiJ,EAAO4J,UAAU99D,IAAW,CAACk0D,EAAQl0D,IAIjEtuF,EAAAA,WAAgB,KACV8+J,EAAUb,kBAAoBa,EAAU/kC,WAC1CklC,EAAa,IAAIV,GAClB,GACA,CAACO,IAKJ9+J,EAAAA,WAAgB,KACd,GAAIg/J,GAAaJ,GAAgBpc,EAAOpwK,OAAQ,CAC9C,IAAIg0K,EAAWwY,EACXiB,EAAgBb,EAAUxrB,QAC1Bp/C,EAAaouD,EAAOpwK,OAAOuyB,SAAS+6J,qBAAoB/X,UAC1D4X,GAAqB,IAAMZ,EAAavY,WAClCyZ,CAAa,IAErBzrE,EAAWu7C,SAASiwB,SAAQ,KAC1BX,OAAap7L,GACbq7L,OAAcr7L,GACdg7L,OAAgBh7L,GAChBk7L,EAAa,CAAEd,iBAAiB,GAAQ,IAE1CiB,EAAc9qE,EACf,IACA,CAACmrE,EAAsBX,EAAcI,EAAWxc,EAAOpwK,SAI1D4tB,EAAAA,WAAgB,KAEZg/J,GACAJ,GACAl5F,EAAM1xD,SAAS3pB,MAAQu0K,EAAa5qJ,SAAS3pB,KAE7C20K,EAAU9hD,SACX,GACA,CAAC8hD,EAAW5qE,EAAY1uB,EAAM1xD,SAAU4qJ,IAI3C5+J,EAAAA,WAAgB,MACT8+J,EAAUb,iBAAmBkB,IAChCN,EAAgBM,EAAaz5F,OAC7Bq5F,EAAa,CACXd,iBAAiB,EACjBlkC,WAAW,EACXwtB,gBAAiB4X,EAAa5X,gBAC9BC,aAAc2X,EAAa3X,eAE7B4X,OAAgBv7L,GACjB,GACA,CAACi7L,EAAUb,gBAAiBkB,IAE/Bn/J,EAAAA,WAAgB,KAKb,GAGA,IAEH,IAAImG,EAAYnG,EAAAA,SAAc,KACrB,CACLg6I,WAAYwI,EAAOxI,WACnBU,eAAgB8H,EAAO9H,eACvBM,GAAK/6J,GAAMuiK,EAAOqN,SAAS5vK,GAC3B3Y,KAAMA,CAAC0iD,EAAI07C,EAAO2gF,IAChB7D,EAAOqN,SAAS7lI,EAAI,CAClB07C,QACA++E,mBAAoB,MAAA4B,OAAA,EAAAA,EAAM5B,qBAE9BpxK,QAASA,CAAC22C,EAAI07C,EAAO2gF,IACnB7D,EAAOqN,SAAS7lI,EAAI,CAClB32C,SAAS,EACTqyF,QACA++E,mBAAoB,MAAA4B,OAAA,EAAAA,EAAM5B,wBAG/B,CAACjC,IAEAzG,EAAWyG,EAAOzG,UAAY,IAE9B0d,EAAoBz5J,EAAAA,SACtB,KAAM,CACJwiJ,SACAr8I,YACA6yJ,QAAQ,EACRjd,cAEF,CAACyG,EAAQr8I,EAAW41I,IAGlB+jB,EAAe9/J,EAAAA,SACjB,KAAM,CACJy/I,qBAAsB+C,EAAOO,OAAOtD,wBAEtC,CAAC+C,EAAOO,OAAOtD,uBASjB,OACEz/I,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC+/J,GAAkBviC,SAAS,CAAA9yJ,MAAO+uL,GACjCz5J,EAAAA,cAACggK,GAAuBxiC,SAAS,CAAA9yJ,MAAOg7F,GACtC1lE,EAAAA,cAACk+J,GAAgB1gC,SAAQ,CAAC9yJ,MAAO20L,EAAY71K,SAC3CwW,EAAAA,cAACg+J,GAAsBxgC,SAAS,CAAA9yJ,MAAOo0L,GACrC9+J,EAAAA,cAAC+8J,GAAM,CACLhhB,SAAUA,EACV/nI,SAAU0xD,EAAM1xD,SAChB2mJ,eAAgBj1F,EAAM4+E,cACtBn+I,UAAWA,EACX48I,OAAQ+c,GAEPp6F,EAAMmT,aAAe2pE,EAAOO,OAAOG,oBAClCljJ,EAAAA,cAACigK,GACC,CAAA7kB,OAAQoH,EAAOpH,OACf2H,OAAQP,EAAOO,OACfr9E,MAAOA,IAGTg5F,OAOX,KAGP,CAGA,MAAMuB,GAAqBjgK,EAAAA,KAAWkgK,IAEtC,SAASA,GAAUl7J,GAQlB,IARmB,OAClBo2I,EAAM,OACN2H,EAAM,MACNr9E,GAKD1gE,EACC,OAAOm7J,GAAc/kB,OAAQv3K,EAAW6hG,EAAOq9E,EACjD,CAuKA,MAAMX,GACc,qBAAXhwK,QACoB,qBAApBA,OAAOuyB,UAC2B,qBAAlCvyB,OAAOuyB,SAAS9B,cAEnBi/I,GAAqB,gCAKd30D,GAAOntF,EAAAA,YAClB,SAAoBogK,EAalBt9J,GAAG,IAKCu9J,GAjBJ,QACEvqE,EAAO,SACPm6D,EAAQ,eACRqQ,EAAc,QACdjtL,EAAO,MACPqyF,EAAK,OACLt7E,EAAM,GACN4/B,EAAE,mBACFy6H,EAAkB,wBAClB2L,GAEDgQ,EADIzgK,EAAI4gK,GAAAH,EAAAp6J,KAIL,SAAE+1I,GAAa/7I,EAAAA,WAAiBwgK,IAIhCC,GAAa,EAEjB,GAAkB,kBAAPz2I,GAAmB83H,GAAmBh4I,KAAKkgB,KAEpDq2I,EAAer2I,EAGXo4H,IACF,IACE,IAAI+Q,EAAa,IAAIpkJ,IAAI38B,OAAO4hC,SAASwlB,MACrCknI,EAAY12I,EAAGmzH,WAAW,MAC1B,IAAIpuI,IAAIokJ,EAAWgE,SAAWntI,GAC9B,IAAIjb,IAAIib,GACRvb,EAAOytI,GAAcwkB,EAAUxsJ,SAAU6nI,GAEzC2kB,EAAUzsJ,SAAWk/I,EAAWl/I,QAAkB,MAARxF,EAE5Cub,EAAKvb,EAAOiyJ,EAAU5qD,OAAS4qD,EAAUtnB,KAEzCqnB,GAAa,EAEf,MAAOx4L,IAOR,CAKL,IAAIuxD,EJh7BD,SACLxP,EAAM+8H,GAEE,IADR,SAAEkJ,QAA8C,IAAAlJ,EAAG,CAAC,EAACA,EAGnD6R,MADFE,IAAU,GAOV,IAAI,SAAE/c,EAAQ,UAAE51I,GAAcnG,EAAAA,WAAiBs4J,KAC3C,KAAElf,EAAI,SAAEllI,EAAQ,OAAE4hG,GAAWgkD,GAAgB9vI,EAAI,CAAEimI,aAEnD0Q,EAAiBzsJ,EAWrB,MALiB,MAAb6nI,IACF4kB,EACe,MAAbzsJ,EAAmB6nI,EAAWqB,GAAU,CAACrB,EAAU7nI,KAGhD/N,EAAU6zI,WAAW,CAAE9lI,SAAUysJ,EAAgB7qD,SAAQsjC,QAClE,CIs5BewnB,CAAQ52I,EAAI,CAAEimI,aAErB4Q,EAoZF,SACJ72I,EAAM+8H,GAeA,IAdN,OACE38J,EACA/W,QAASytL,EAAW,MACpBp7F,EAAK,mBACL++E,EAAkB,SAClBwL,EAAQ,wBACRG,cAQE,CAAC,EAACrJ,EAEF8I,EAAWoJ,KACXjlJ,EAAW6kJ,KACXpqJ,EAAOqrJ,GAAgB9vI,EAAI,CAAEimI,aAEjC,OAAOjwJ,EAAAA,aACJ2T,IACC,GDn3CU,SACdA,EACAvpB,GAEA,OACmB,IAAjBupB,EAAMo9F,UACJ3mH,GAAqB,UAAXA,KAVhB,SAAyBupB,GACvB,SAAUA,EAAMi9F,SAAWj9F,EAAMg9F,QAAUh9F,EAAM88F,SAAW98F,EAAM+8F,SACpE,CASKqwD,CAAgBptJ,EAErB,CC02CUqtJ,CAAuBrtJ,EAAOvpB,GAAS,CACzCupB,EAAMqpF,iBAIN,IAAI3pH,OACcxP,IAAhBi9L,EACIA,EACAt4F,GAAWx0D,KAAcw0D,GAAW/5D,GAE1CohJ,EAAS7lI,EAAI,CACX32C,UACAqyF,QACA++E,qBACAwL,WACAG,2BAEH,IAEH,CACEp8I,EACA67I,EACAphJ,EACAqyJ,EACAp7F,EACAt7E,EACA4/B,EACAy6H,EACAwL,EACAG,GAGN,CA5c0B6Q,CAAoBj3I,EAAI,CAC5C32C,UACAqyF,QACAt7E,SACAq6J,qBACAwL,WACAG,4BAWF,OAEEpwJ,EAAAA,cAAA,IAAA05I,GAAA,GACM/5I,EAAI,CACR65B,KAAM6mI,GAAgB7mI,EACtBs8D,QAAS2qE,GAAcH,EAAiBxqE,EAd5C,SACEniF,GAEImiF,GAASA,EAAQniF,GAChBA,EAAMw7F,kBACT0xD,EAAgBltJ,EAEpB,EAQI7Q,IAAKA,EACL1Y,OAAQA,IAGd,IAgVF,IAAK+uK,GAQAG,GA+FC,SAAU4H,GACdC,GAUA,IAAIC,EAAyBphK,EAAAA,OAAas9J,GAAmB6D,IACzDE,EAAwBrhK,EAAAA,QAAa,GAErCgU,EAAW6kJ,KACXvG,EAAetyJ,EAAAA,SACjB,IDh3CY,SACdshK,EACAC,GAEA,IAAIjP,EAAegL,GAAmBgE,GAiBtC,OAfIC,GAMFA,EAAoBhyK,SAAQ,CAAC3O,EAAGyJ,KACzBioK,EAAav3C,IAAI1wH,IACpBk3K,EAAoBpJ,OAAO9tK,GAAKkF,SAAS7kB,IACvC4nL,EAAar7I,OAAO5sB,EAAK3f,EAAM,GAElC,IAIE4nL,CACT,CC81CMkP,CACExtJ,EAAS8hG,OACTurD,EAAsB73K,QAAU,KAAO43K,EAAuB53K,UAElE,CAACwqB,EAAS8hG,SAGR+5C,EAAWoJ,KACXwI,EAAkBzhK,EAAAA,aACpB,CAAC0hK,EAAUC,KACT,MAAMC,EAAkBtE,GACF,oBAAboE,EAA0BA,EAASpP,GAAgBoP,GAE5DL,EAAsB73K,SAAU,EAChCqmK,EAAS,IAAM+R,EAAiBD,EAAgB,GAElD,CAAC9R,EAAUyC,IAGb,MAAO,CAACA,EAAcmP,EACxB,EA/IA,SAAKtI,GACHA,EAAA,4CACAA,EAAA,sBACAA,EAAA,oCACAA,EAAA,wBACAA,EAAA,+CACD,EAND,CAAKA,KAAAA,GAMJ,KAED,SAAKG,GACHA,EAAA,wBACAA,EAAA,0BACAA,EAAA,2CACD,CAJD,CAAKA,KAAAA,GAIJ,KCj2CD,IAAIrxL,GAAE,CAAC+pB,KAAK,IAAIvb,GAAEA,GAAG,iBAAiBrE,SAASqE,EAAEA,EAAE+/J,cAAc,YAAYpkK,OAAOyvL,UAAU/+L,OAAOG,QAAQwT,GAAGkuB,SAASyuI,MAAMl8H,YAAYvS,SAAS9B,cAAc,UAAU,CAAC2lF,UAAU,IAAIjrF,GAAG,aAAas+F,WAAWplH,GAAGxO,GAAgDuW,GAAE,oEAAoE7I,GAAE,qBAAqBsK,GAAE,OAAOlH,GAAEA,CAAC9Q,EAAEwO,KAAK,IAAI/D,EAAE,GAAG8L,EAAE,GAAG7I,EAAE,GAAG,IAAI,IAAIsK,KAAKhY,EAAE,CAAC,IAAIsK,EAAEtK,EAAEgY,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAGvN,EAAEuN,EAAE,IAAI1N,EAAE,IAAIiM,GAAG,KAAKyB,EAAE,GAAGlH,GAAExG,EAAE0N,GAAGA,EAAE,IAAIlH,GAAExG,EAAE,KAAK0N,EAAE,GAAG,GAAGxJ,GAAG,IAAI,iBAAiBlE,EAAEiM,GAAGzF,GAAExG,EAAEkE,EAAEA,EAAEpD,QAAQ,YAAWpL,GAAGgY,EAAE5M,QAAQ,mBAAkBoD,GAAG,IAAIqzB,KAAKrzB,GAAGA,EAAEpD,QAAQ,KAAKpL,GAAGA,EAAEA,EAAE,IAAIwO,EAAEA,MAAIwJ,GAAG,MAAM1N,IAAI0N,EAAE,MAAM6pB,KAAK7pB,GAAGA,EAAEA,EAAE5M,QAAQ,SAAS,OAAOmf,cAAc7c,GAAGoD,GAAEyG,EAAEzG,GAAEyG,EAAES,EAAE1N,GAAG0N,EAAE,IAAI1N,EAAE,IAAI,CAAC,OAAOG,GAAG+D,GAAGd,EAAEc,EAAE,IAAId,EAAE,IAAIA,GAAG6I,CAAC,EAAEjM,GAAE,CAAC,EAAE2M,GAAEjX,IAAI,GAAG,iBAAiBA,EAAE,CAAC,IAAIwO,EAAE,GAAG,IAAI,IAAI/D,KAAKzK,EAAEwO,GAAG/D,EAAEwM,GAAEjX,EAAEyK,IAAI,OAAO+D,CAAC,CAAC,OAAOxO,CAAC,EAAEZ,GAAEA,CAACY,EAAEwO,EAAE/D,EAAErL,EAAEmY,KAAK,IAAImK,EAAEzK,GAAEjX,GAAGsiB,EAAEhY,GAAEoX,KAAKpX,GAAEoX,GAAG,CAAC1hB,IAAI,IAAIwO,EAAE,EAAE/D,EAAE,GAAG,KAAK+D,EAAExO,EAAEhG,QAAQyQ,EAAE,IAAIA,EAAEzK,EAAEgF,WAAWwJ,OAAO,EAAE,MAAM,KAAK/D,CAAE,EAA9E,CAAgFiX,IAAI,IAAIpX,GAAEgY,GAAG,CAAC,IAAI9T,EAAEkT,IAAI1hB,EAAEA,EAAE,CAACA,IAAI,IAAIwO,EAAE/D,EAAEqG,EAAE,CAAC,CAAC,GAAG,KAAKtC,EAAE+H,GAAE0lJ,KAAKj8J,EAAEoL,QAAQsC,GAAE,MAAMc,EAAE,GAAGsC,EAAEvQ,QAAQiO,EAAE,IAAI/D,EAAE+D,EAAE,GAAGpD,QAAQ4M,GAAE,KAAKsW,OAAOxd,EAAEqtD,QAAQrtD,EAAE,GAAGrG,GAAGqG,EAAE,GAAGrG,IAAI,CAAC,IAAIqG,EAAE,GAAGtC,EAAE,IAAIA,EAAE,GAAGpD,QAAQ4M,GAAE,KAAKsW,OAAO,OAAOxd,EAAE,EAAG,EAAxL,CAA0L9Q,GAAGsK,GAAEgY,GAAGxR,GAAEyG,EAAE,CAAC,CAAC,cAAc+K,GAAG9T,GAAGA,EAAE/D,EAAE,GAAG,IAAI6X,EAAE,CAAC,IAAIgS,EAAE7pB,GAAGH,GAAE8R,EAAE9R,GAAE8R,EAAE,KAAK,OAAO3R,IAAIH,GAAE8R,EAAE9R,GAAEgY,IAAI,EAAEtiB,EAAEwO,EAAE/D,EAAE8L,KAAKA,EAAE/H,EAAEub,KAAKvb,EAAEub,KAAK3e,QAAQmL,EAAEvW,IAAI,IAAIwO,EAAEub,KAAK1hB,QAAQrI,KAAKwO,EAAEub,KAAKtf,EAAEzK,EAAEwO,EAAEub,KAAKvb,EAAEub,KAAK/pB,EAAG,EAA/F,CAAiGsK,GAAEgY,GAAG9T,EAAEpP,EAAEk1B,GAAGhS,CAAC,EAAE/K,GAAEA,CAACvX,EAAEwO,EAAE/D,IAAIzK,EAAET,QAAO,CAACS,EAAEuW,EAAE7I,KAAK,IAAIsK,EAAExJ,EAAEd,GAAG,GAAGsK,GAAGA,EAAErW,KAAK,CAAC,IAAI3B,EAAEgY,EAAEvN,GAAG+D,EAAExO,GAAGA,EAAEs2B,OAAOt2B,EAAEs2B,MAAMsxD,WAAW,MAAM/lD,KAAK7hC,IAAIA,EAAEgY,EAAExJ,EAAE,IAAIA,EAAExO,GAAG,iBAAiBA,EAAEA,EAAEs2B,MAAM,GAAGxlB,GAAE9Q,EAAE,KAAI,IAAKA,EAAE,GAAGA,CAAC,CAAC,OAAOA,EAAEuW,GAAG,MAAMyB,EAAE,GAAGA,EAAE,GAAE,IAAI,SAAS0J,GAAE1hB,GAAG,IAAIyK,EAAEZ,MAAM,CAAC,EAAE0M,EAAEvW,EAAE2B,KAAK3B,EAAEyK,EAAE8M,GAAGvX,EAAE,OAAOZ,GAAEmX,EAAE4nD,QAAQ5nD,EAAEsjL,IAAItiL,GAAEhB,EAAE,GAAG3S,MAAMjC,KAAKhG,UAAU,GAAG8O,EAAE8M,GAAGhB,EAAEhX,QAAO,CAACS,EAAEwO,IAAI3T,OAAOG,OAAOgF,EAAEwO,GAAGA,EAAE7M,KAAK6M,EAAE/D,EAAE8M,GAAG/I,IAAG,CAAC,GAAG+H,EAAE/H,GAAE/D,EAAE0X,QAAQ1X,EAAE2R,EAAE3R,EAAEqG,EAAErG,EAAEkD,EAAE,CAAa+T,GAAEtgB,KAAK,CAACgb,EAAE,IAAtB,IAAIkG,GAAEgS,GAAElY,GAAkBpC,GAAE0H,GAAEtgB,KAAK,CAACuM,EAAE,IAA0C,SAAS/I,GAAE5E,EAAEwO,GAAG,IAAI/D,EAAEZ,MAAM,CAAC,EAAE,OAAO,WAAW,IAAI0M,EAAE5a,UAAU,SAAS+R,EAAEsK,EAAElH,GAAG,IAAIxG,EAAEzP,OAAOG,OAAO,CAAC,EAAEgd,GAAGf,EAAE3M,EAAEs9E,WAAWl6E,EAAEk6E,UAAUn9E,EAAE8M,EAAE1c,OAAOG,OAAO,CAAC8+L,MAAMxlK,IAAGA,MAAKhqB,GAAGG,EAAEqG,EAAE,UAAU+wB,KAAK5qB,GAAG3M,EAAEs9E,UAAUlmE,GAAEqE,MAAMtb,EAAE8L,IAAIU,EAAE,IAAIA,EAAE,IAAIzI,IAAIlE,EAAEuwB,IAAI/pB,GAAG,IAAI1R,EAAEY,EAAE,OAAOA,EAAE,KAAKZ,EAAEkL,EAAEqmK,IAAI3wK,SAASsK,EAAEqmK,IAAIv0J,IAAGhd,EAAE,IAAIgd,GAAE9R,GAAGgY,GAAEljB,EAAEkL,EAAE,CAAC,OAAOkE,EAAEA,EAAEd,GAAGA,CAAC,CAAC,CCuBzpE,IAKas6I,GAAe+xC,CAC1B/5L,EACAwO,IANAxO,IAEyB,mBAAlBA,EAKK0oJ,CAAW1oJ,GAAiBA,EAAcwO,GAAOxO,EC/BlDqoJ,GAAA,MACX,IAAIroJ,EAAQ,EACZ,MAAO,OACKA,GAAO+D,UAEpB,EALY,GAOAvK,GAAA,MAEX,IAAIwG,EAEJ,MAAO,KACL,QAA2B,IAAvBA,UAA2CmK,OAAW,IAAa,CACrE,IAAMqE,EAAawrL,WAAW,oCAC9Bh6L,GAAsBwO,GAAcA,EAAWutJ,OAAA,CAEjD,OAAO/7J,CACT,CACD,EAXY,GC2CPi8F,GAAgB,IAAIh0E,IAIpBs2I,GAAoBv+J,IACxB,GAAIi8F,GAAc62C,IAAI9yI,GACpB,OAGF,IAAMwO,EAAUsmC,YAAW,KACzBmnD,GAAcyoC,OAAO1kI,GACrB0hB,GAAS,CACP2F,KAAM,EACN4yK,QAASj6L,GAEb,GAbwC,KAexCi8F,GAAc/zE,IAAIloB,EAASwO,EAC7B,EASahP,GAAU06L,CAACl6L,EAAcwO,KACpC,OAAQA,EAAO6Y,MACb,KAAK,EACH,MAAO,IACFrnB,EACHm6L,OAAQ,CAAC3rL,EAAO4rL,SAAUp6L,EAAMm6L,QAAQv2L,MAAM,EA/ElC,KAkFhB,KAAK,EAEH,OAAI4K,EAAO4rL,MAAM9kK,IAjBOt1B,KAC5B,IAAMwO,EAAUytF,GAAcl6E,IAAI/hB,GAC9BwO,GACFq+G,aAAar+G,EAEjB,EAaQ6kI,CAAqB7kI,EAAO4rL,MAAM9kK,IAG7B,IACFt1B,EACHm6L,OAAQn6L,EAAMm6L,OAAOvyK,KAAKnd,GACxBA,EAAE6qB,KAAO9mB,EAAO4rL,MAAM9kK,GAAK,IAAK7qB,KAAM+D,EAAO4rL,OAAU3vL,KAI7D,KAAK,EACH,IAAQ2vL,MAAAtpL,GAAUtC,EAClB,OAAOxO,EAAMm6L,OAAOh+J,MAAM1xB,GAAMA,EAAE6qB,KAAOxkB,EAAMwkB,KAC3C91B,GAAQQ,EAAO,CAAEqnB,KAAM,EAAyB+yK,MAAAtpL,IAChDtR,GAAQQ,EAAO,CAAEqnB,KAAM,EAAsB+yK,MAAAtpL,IAEnD,KAAK,EACH,IAAQmpL,QAAAhjL,GAAYzI,EAGpB,OAAIyI,EACFsnJ,GAAiBtnJ,GAEjBjX,EAAMm6L,OAAO7yK,SAAS7c,IACpB8zJ,GAAiB9zJ,EAAM6qB,GACzB,IAGK,IACFt1B,EACHm6L,OAAQn6L,EAAMm6L,OAAOvyK,KAAKnd,GACxBA,EAAE6qB,KAAOre,QAAuB,IAAZA,EAChB,IACKxM,EACH4vL,SAAS,GAEX5vL,KAGV,KAAK,EACH,YAAuB,IAAnB+D,EAAOyrL,QACF,IACFj6L,EACHm6L,OAAQ,IAGL,IACFn6L,EACHm6L,OAAQn6L,EAAMm6L,OAAOhkK,QAAQ1rB,GAAMA,EAAE6qB,KAAO9mB,EAAOyrL,WAGvD,KAAK,EACH,MAAO,IACFj6L,EACHs6L,SAAU9rL,EAAO2hC,MAGrB,KAAK,EACH,IAAMziC,EAAOc,EAAO2hC,MAAQnwC,EAAMs6L,UAAY,GAE9C,MAAO,IACFt6L,EACHs6L,cAAU,EACVH,OAAQn6L,EAAMm6L,OAAOvyK,KAAKnd,IAAA,IACrBA,EACH8vL,cAAe9vL,EAAE8vL,cAAgB7sL,OAGzC,EAGIsO,GAA2C,GAE7C6jG,GAAqB,CAAEs6E,OAAQ,GAAIG,cAAU,GAEpC54K,GAAY1hB,IACvB6/G,GAAcrgH,GAAQqgH,GAAa7/G,GACnCgc,GAAUsL,SAAS9Y,IACjBA,EAASqxG,GACX,GACF,EAEagrC,GAET,CACF2vC,MAAO,IACPhzK,MAAO,IACPizK,QAAS,IACTC,QAAS,IACTC,OAAQ,KC/IJ3gL,GACHha,GACD,CAACwO,EAASsC,KACR,IAAMmG,EArBU,SAClBjX,GAAA,IACAwO,EAAA7S,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAkB,QAClBmV,EAAAnV,UAAA3B,OAAA,EAAA2B,UAAA,QAAAC,EAAA,MACW,CACXg/L,UAAWz2H,KAAKC,MAChBi2H,SAAS,EACThzK,KAAA7Y,EACAqsL,UAAW,CACTC,KAAM,SACN,YAAa,UAEfh3K,QAAA9jB,EACAu6L,cAAe,KACZzpL,EACHwkB,IAAI,MAAAxkB,OAAA,EAAAA,EAAMwkB,KAAM+yH,KAClB,CAKkBrS,CAAYxnI,EAASxO,EAAM8Q,GACzC,OAAA4Q,GAAS,CAAE2F,KAAA,EAA+B+yK,MAAAnjL,IACnCA,EAAMqe,EACf,EAEItd,GAAQoiL,CAACp6L,EAAkBwO,IAC/BwL,GAAc,QAAdA,CAAuBha,EAASwO,GAElCwJ,GAAMwP,MAAQxN,GAAc,SAC5BhC,GAAMyiL,QAAUzgL,GAAc,WAC9BhC,GAAM0iL,QAAU1gL,GAAc,WAC9BhC,GAAM2iL,OAAS3gL,GAAc,UAE7BhC,GAAM+iL,QAAW/6L,IACf0hB,GAAS,CACP2F,KAAA,EACA4yK,QAAAj6L,GAEJ,EAEAgY,GAAMo2J,OAAUpuK,GACd0hB,GAAS,CAAE2F,KAAA,EAA+B4yK,QAAAj6L,IAE5CgY,GAAMuzJ,QAAU,CACdvrK,EACAwO,EAKAsC,KAEA,IAAMmG,EAAKe,GAAM0iL,QAAQlsL,EAAKksL,QAAS,IAAK5pL,KAAS,MAAAA,OAAA,EAAAA,EAAM4pL,UAE3D,OAAA16L,EACG0gH,MAAMhzG,IACLsK,GAAMyiL,QAAQzyC,GAAax5I,EAAKisL,QAAS/sL,GAAI,CAC3C4nB,GAAAre,KACGnG,KACA,MAAAA,OAAA,EAAAA,EAAM2pL,UAEJ/sL,KAERwnI,OAAOxnI,IACNsK,GAAMwP,MAAMwgI,GAAax5I,EAAKgZ,MAAO9Z,GAAI,CACvC4nB,GAAAre,KACGnG,KACA,MAAAA,OAAA,EAAAA,EAAM0W,OAEb,IAEKxnB,CACT,ECpFA,IAAM8qJ,GAAekwC,CAACh7L,EAAiBwO,KACrCkT,GAAS,CACP2F,KAAA,EACA+yK,MAAO,CAAE9kK,GAAIt1B,EAASo7B,OAAA5sB,IAE1B,EACM2+H,GAAa8tD,KACjBv5K,GAAS,CACP2F,KAAA,EACA8oB,KAAMg0B,KAAKC,OAEf,EAEajoD,GAAcnc,IACzB,IAAQm6L,OAAA3rL,EAAQ8rL,SAAAxpL,GFiKM,WAAmD,IAAlD9Q,EAAArE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAoC,CAAC,GACrD6S,EAAOsC,IAAYlM,EAAAA,EAAAA,UAAgBi7G,KAC1CpE,EAAAA,EAAAA,YAAU,KACRz/F,GAAU3c,KAAKyR,GACR,KACL,IAAMpD,EAAQsO,GAAU3T,QAAQyI,GAC5BpD,GAAS,GACXsO,GAAUoI,OAAO1W,EAAO,EAE5B,IACC,CAACc,IAEJ,IAAMyI,EAAezI,EAAM2rL,OAAOvyK,KAAKla,IAhMzC,IAAAjD,EAAAH,EAgMgD,UACzCtK,KACAA,EAAa0N,EAAE2Z,SACf3Z,EACH2iC,SACE3iC,EAAE2iC,WACF,OAAA5lC,EAAAzK,EAAa0N,EAAE2Z,YAAf,EAAA5c,EAAsB4lC,YACtB,MAAArwC,OAAA,EAAAA,EAAcqwC,WACdw6G,GAAgBn9I,EAAE2Z,MACpBkP,MAAO,IACFv2B,EAAau2B,SACb,OAAAjsB,EAAAtK,EAAa0N,EAAE2Z,YAAf,EAAA/c,EAAsBisB,SACtB7oB,EAAE6oB,OAER,IAED,MAAO,IACF/nB,EACH2rL,OAAQljL,EAEZ,CEjM+BgpG,CAASjgH,IAEtCk8I,EAAAA,EAAAA,YAAU,KACR,GAAIprI,EACF,OAGF,IAAMrG,EAAM05D,KAAKC,MACX95D,EAAWkE,EAAOoZ,KAAKxoB,IAC3B,GAAIA,EAAEixC,WAAa,IACjB,OAGF,IAAM/tB,GACHljB,EAAEixC,UAAY,GAAKjxC,EAAEm7L,eAAiB9vL,EAAMrL,EAAEw7L,WAEjD,KAAIt4K,EAAe,GAMnB,OAAOwyB,YAAW,IAAM98B,GAAM+iL,QAAQ37L,EAAEk2B,KAAKhT,GALvCljB,EAAEi7L,SACJriL,GAAM+iL,QAAQ37L,EAAEk2B,GAKtB,IAEA,MAAO,KACLhrB,EAASgd,SAASloB,GAAYA,GAAWytH,aAAaztH,IACxD,CACF,GAAG,CAACoP,EAAQsC,IAEZ,IAAMmG,GAAWskG,EAAAA,EAAAA,cAAY,KACvBzqG,GACF4Q,GAAS,CAAE2F,KAAA,EAA4B8oB,KAAMg0B,KAAKC,OAEtD,GAAG,CAACtzD,IAEEpD,GAAkB6tG,EAAAA,EAAAA,cACtB,CACE9wG,EACAH,KAMA,IAAQ4wL,aAAA97L,GAAe,EAAO+7L,OAAA74K,EAAS,EAAG84K,gBAAA7jL,GAAoBjN,GAAQ,CAAC,EAEjE8R,EAAiB5N,EAAO2nB,QAC3Ble,IACEA,EAAE7J,UAAYmJ,MACZ9M,EAAM2D,UAAYmJ,IAAoBU,EAAEmjB,SAEzClJ,EAAa9V,EAAek4G,WAAWr8G,GAAMA,EAAEqd,KAAO7qB,EAAM6qB,KAC5DzwB,EAAeuX,EAAe+Z,QAClC,CAACle,EAAOkoG,IAAMA,EAAIjuF,GAAcja,EAAMoiL,UACtCrgM,OAOF,OALeoiB,EACZ+Z,QAAQle,GAAMA,EAAEoiL,UAChBz2L,SAAUxE,EAAe,CAACyF,EAAe,GAAK,CAAC,EAAGA,IAClDtF,QAAO,CAAC0Y,EAAKkoG,IAAMloG,GAAOkoG,EAAE/kF,QAAU,GAAK9Y,GAAQ,EAGxD,GACA,CAAC9T,IAGH,MAAO,CACL2rL,OAAA3rL,EACAsoJ,SAAU,CACRkkC,aAAAlwC,GACAmwC,WAAA9tD,GACAkuD,SAAApkL,EACAqkL,gBAAA5tL,GAGN,EC7FMsgI,GAAkBrgI,EAAA;;;;;;;;GAUlB+J,GAAqB/J,EAAA;;;;;;;;GAUrBugI,GAAsBvgI,EAAA;;;;;;;;GAefgL,GAAYw1H,GAAO,MAAM;;;;;gBAKrBnuI,GAAMA,EAAEu7L,SAAW;;;;eAIrBvtD;;;;;;;iBAOEt2H;;;;;kBAKE1X,GAAMA,EAAEw7L,WAAa;;;;;;;;iBAQvBttD;;;;EChEXvsD,GAAShqE,EAAA;;;;;;;EAcF6wI,GAAa1b,GAAO,MAAM;;;;;;kBAMpB9sI,GAAMA,EAAEw7L,WAAa;wBACfx7L,GAAMA,EAAEu7L,SAAW;eAC7B55G;ECtBTqO,GAAkB15E,EAAA;;;;;;;;GAUlB42H,GAAqB52H,EAAA;;;;;;;;;;;;;;GAqBd7K,GAAgBwhI,GAAO,MAAM;;;;;gBAKzBjtI,GAAMA,EAAEu7L,SAAW;;;;eAIrBvrG;;;;;;iBAMEk9C;;;;;;oBAMIltI,GAAMA,EAAEw7L,WAAa;;;;;;EC9CpCptD,GAAgBlyH,GAAO,MAAM;;EAI7BqxH,GAAmBrxH,GAAO,MAAM;;;;;;;EAShCs1H,GAAQx1C,EAAA;;;;;;;;GAUDoxC,GAAsBlxH,GAAO,MAAM;;;;;eAKjCs1H;;EAUFl4B,GAERzxF,IAAe,IAAZuyK,MAAAp6L,GAAM6nB,GACJ4zK,KAAAjtL,EAAM6Y,KAAAvW,EAAM4qL,UAAAzkL,GAAcjX,EAClC,YAAa,IAATwO,EACkB,iBAATA,EACF2H,EAAAA,cAACi3H,GAAA,KAAqB5+H,GAEtBA,EAIE,UAATsC,EACK,KAIPqF,EAAAA,cAACo3H,GAAA,KACCp3H,EAAAA,cAACqyI,GAAA,IAAevxI,IACN,YAATnG,GACCqF,EAAAA,cAACi4H,GAAA,KACW,UAATt9H,EACCqF,EAAAA,cAACwC,GAAA,IAAc1B,IAEfd,EAAAA,cAAC1K,GAAA,IAAkBwL,KAM/B,ECrEMs3H,GAAkBvuI,GAAmB,mCACF,IAAVA,6FAIzBqtI,GAAiBrtI,GAAmB,iGAEC,IAAVA,oCAM3B+sI,GAAe9wH,GAAO,MAAM;;;;;;;;;;;;EAc5Bs1H,GAAUt1H,GAAO,MAAM;;;;;;;EAqChBq3H,GAA0C/8H,EAAAA,MACrD6lB,IAA0C,IAAvCg+J,MAAAp6L,EAAOoO,SAAAI,EAAU+nB,MAAAzlB,EAAOunF,SAAAphF,GAASmlB,EAC5B1uB,EAAsC1N,EAAMo7B,OApB5BugK,EACxB37L,EACAwO,KAGA,IAAMyI,EADMjX,EAAS2uB,SAAS,OACT,GAAK,GAEnBjhB,EAAOjD,GAAQjR,KAClB,CA5CkB,kCACC,mCA4CnB,CAAC+0I,GAAet3H,GAASo2H,GAAcp2H,IAE3C,MAAO,CACLw0B,UAAWj9B,EACP,GAAG4S,GAAU1T,iDACb,GAAG0T,GAAU3W,+CAErB,EAKQikI,CACE1uI,EAAMoO,UAAYI,GAAY,aAC9BxO,EAAMq6L,SAER,CAAE7pH,QAAS,GAET/lE,EAAO8L,EAAAA,cAAC+iG,GAAA,CAAU8gF,MAAOp6L,IACzBsK,EACJiM,EAAAA,cAACg7H,GAAA,IAAYvxI,EAAM66L,WAChB7yC,GAAahoJ,EAAM8jB,QAAS9jB,IAIjC,OACEuW,EAAAA,cAACw2H,GAAA,CACCnlD,UAAW5nF,EAAM4nF,UACjBrxD,MAAO,IACF7oB,KACAoD,KACA9Q,EAAMu2B,QAGU,mBAAbtf,EACNA,EAAS,CACPwkL,KAAAhxL,EACAqZ,QAAAxZ,IAGFiM,EAAAA,cAAAA,EAAAA,SAAA,KACG9L,EACAH,GAKX,KV7G4yD,SAAWtK,EAAEwO,EAAE/D,EAAE8L,GAAGzF,GAAEyG,EAAE/I,EAAE8T,GAAEtiB,EAAEs0B,GAAE7pB,EAAE2R,GAAE7F,CAAC,CWYn1Du5H,CAAYx7G,EAAAA,eAEZ,IAAM06G,GAAejyG,IAMI,IALvBzH,GAAAt1B,EACA4nF,UAAAp5E,EACA+nB,MAAAzlB,EACA8qL,eAAA3kL,EACAohF,SAAA3qF,GACFqvB,EACQtyB,EAAY6pB,EAAAA,aACfhqB,IACC,GAAIA,EAAI,CACN,IAAMlL,EAAe47L,KACnB,IAAM14K,EAAShY,EAAG4wB,wBAAwBE,OAC1CnkB,EAAejX,EAAIsiB,EACrB,EACAljB,IACA,IAAIy8L,iBAAiBz8L,GAAc08L,QAAQxxL,EAAI,CAC7CyxL,SAAS,EACTC,WAAW,EACXC,eAAe,GAChB,IAGL,CAACj8L,EAAIiX,IAGP,OACEqd,EAAAA,cAAC,OAAIuG,IAAKpwB,EAAKm9E,UAAWp5E,EAAW+nB,MAAOzlB,GACzCpD,EAGP,EA+BM2gI,GAAc+C,EAAA;;;;;EASPjC,GAAkC3xG,IAQzC,IAPJ09J,aAAAl7L,EACAoO,SAAAI,EAAW,aACX0tL,aAAAprL,EACAqqL,OAAAlkL,EACAohF,SAAA3qF,EACAinF,eAAAlqF,EACA0xL,mBAAA7xL,GACFkzB,GACU28J,OAAA/6L,EAAQ03J,SAAAx0I,GAAanG,GAAWrL,GAExC,OACEwjB,EAAAA,cAAC,OACCiC,MAAO,CACLnoB,SAAU,QACVgvH,OAAQ,KACRjiG,IAlBe,GAmBfpwB,KAnBe,GAoBfC,MApBe,GAqBf81D,OArBe,GAsBfs7H,cAAe,UACZ3xL,GAELm9E,UAAWt9E,EACX4kH,aAAc5sG,EAAS24K,WACvB9rE,aAAc7sG,EAAS+4K,UAEtBj8L,EAAOwoB,KAAKrQ,IACX,IAAM6E,EAAgB7E,EAAEnJ,UAAYI,EAM9B3J,EAxEWw3L,EACvBr8L,EACAwO,KAEA,IAAMsC,EAAM9Q,EAAS2uB,SAAS,OACxB1X,EAAqCnG,EAAM,CAAEqqB,IAAK,GAAM,CAAE2lC,OAAQ,GAClEpzD,EAAuC1N,EAAS2uB,SAAS,UAC3D,CACE2tK,eAAgB,UAElBt8L,EAAS2uB,SAAS,SAClB,CACE2tK,eAAgB,YAElB,CAAC,EACL,MAAO,CACLvxL,KAAM,EACNC,MAAO,EACPi4B,QAAS,OACT70B,SAAU,WACV+9G,WAAY3yH,UACR,EACA,yCACJwd,UAAW,cAAcxI,GAAUsC,EAAM,GAAK,WAC3CmG,KACAvJ,EAEP,EA6C8B4jI,CAAiBl1H,EALxBkG,EAASg5K,gBAAgB/jL,EAAG,CACzC2jL,aAAAl7L,EACAm7L,OAAAlkL,EACAmkL,gBAAiB5sL,KAInB,OACE8lB,EAAAA,cAAC06G,GAAA,CACC15G,GAAI/d,EAAE+d,GACNlT,IAAK7K,EAAE+d,GACPsmK,eAAgBt5K,EAAS04K,aACzBpzG,UAAWrwE,EAAE8iL,QAAUhsD,GAAc,GACrC93G,MAAO1xB,GAEK,WAAX0S,EAAE8P,KACD2gI,GAAazwI,EAAEuM,QAASvM,GACtB7J,EACFA,EAAS6J,GAET+c,EAAAA,cAACg/G,GAAA,CAAS8mD,MAAO7iL,EAAGnJ,SAAUgO,IAItC,IAGN,EChIO4wC,GAAQh1C,GCVA,SAAS5W,GAAKkkB,EAAIi3K,GAC/B,OAAO,WACL,OAAOj3K,EAAGS,MAAMw2K,EAAS5gM,UAC3B,CACF,CCAA,MAAOoI,SAAQA,IAAIlJ,OAAOE,WACpB,eAAC+uK,IAAkBjvK,OAEnB2hM,IAAUn3H,GAGbxqE,OAAOC,OAAO,MAHQ2hM,IACrB,MAAMh2L,EAAM1C,GAASpC,KAAK86L,GAC1B,OAAOp3H,GAAM5+D,KAAS4+D,GAAM5+D,GAAOA,EAAI7C,MAAM,GAAI,GAAG2mB,cAAc,GAFvD,IAAC86C,GAKhB,MAAMq3H,GAAcr1K,IAClBA,EAAOA,EAAKkD,cACJkyK,GAAUD,GAAOC,KAAWp1K,GAGhCs1K,GAAat1K,GAAQo1K,UAAgBA,IAAUp1K,GAS/C,QAACxnB,IAAWD,MASZg9L,GAAcD,GAAW,aAqB/B,MAAME,GAAgBH,GAAW,eA2BjC,MAAMI,GAAWH,GAAW,UAQtBI,GAAaJ,GAAW,YASxBK,GAAWL,GAAW,UAStBM,GAAYR,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/CS,GAAiBj0L,IACrB,GAAoB,WAAhBuzL,GAAOvzL,GACT,OAAO,EAGT,MAAMlO,EAAY+uK,GAAe7gK,GACjC,OAAsB,OAAdlO,GAAsBA,IAAcF,OAAOE,WAAkD,OAArCF,OAAOivK,eAAe/uK,OAA0BuR,OAAOymJ,eAAe9pJ,MAAUqD,OAAOi1B,YAAYt4B,EAAI,EAUnKk0L,GAAST,GAAW,QASpBU,GAASV,GAAW,QASpBW,GAASX,GAAW,QASpBY,GAAaZ,GAAW,YAsCxBa,GAAoBb,GAAW,oBAE9Bc,GAAkBC,GAAWtP,GAAYuP,IAAa,CAAC,iBAAkB,UAAW,WAAY,WAAW91K,IAAI80K,IA2BtH,SAASp1K,GAAQG,EAAKnC,GAA+B,IAM/ClmB,EACAmX,GAPoB,WAAConL,GAAa,GAAMhiM,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAAR8rB,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGL5nB,GAAQ4nB,GAEV,IAAKroB,EAAI,EAAGmX,EAAIkR,EAAIztB,OAAQoF,EAAImX,EAAGnX,IACjCkmB,EAAG3jB,KAAK,KAAM8lB,EAAIroB,GAAIA,EAAGqoB,OAEtB,CAEL,MAAMooB,EAAO8tJ,EAAa9iM,OAAOmvK,oBAAoBviJ,GAAO5sB,OAAOg1C,KAAKpoB,GAClEhgB,EAAMooC,EAAK71C,OACjB,IAAIooB,EAEJ,IAAKhjB,EAAI,EAAGA,EAAIqI,EAAKrI,IACnBgjB,EAAMytB,EAAKzwC,GACXkmB,EAAG3jB,KAAK,KAAM8lB,EAAIrF,GAAMA,EAAKqF,EAEjC,CACF,CAEA,SAASm2K,GAAQn2K,EAAKrF,GACpBA,EAAMA,EAAImI,cACV,MAAMslB,EAAOh1C,OAAOg1C,KAAKpoB,GACzB,IACI3B,EADA1mB,EAAIywC,EAAK71C,OAEb,KAAOoF,KAAM,GAEX,GADA0mB,EAAO+pB,EAAKzwC,GACRgjB,IAAQ0D,EAAKyE,cACf,OAAOzE,EAGX,OAAO,IACT,CAEA,MAAM+3K,GAEsB,qBAAfvzB,WAAmCA,WACvB,qBAAT78J,KAAuBA,KAA0B,qBAAXtD,OAAyBA,OAASuxF,OAGlFoiG,GAAoBvvG,IAAaquG,GAAYruG,IAAYA,IAAYsvG,GAoD3E,MA8HME,IAAgBC,GAKG,qBAAfvkM,YAA8BqwK,GAAerwK,YAH9CgjM,GACEuB,IAAcvB,aAAiBuB,IAHrB,IAACA,GAetB,MAiCMC,GAAavB,GAAW,mBAWxBh7L,GAAiB,CAACmmB,IAAA,IAAC,eAACnmB,GAAemmB,EAAA,MAAK,CAACJ,EAAK2X,IAAS19B,EAAeC,KAAK8lB,EAAK2X,EAAK,EAApE,CAAsEvkC,OAAOE,WAS9FmjM,GAAWxB,GAAW,UAEtByB,GAAoBA,CAAC12K,EAAKyyK,KAC9B,MAAMkE,EAAcvjM,OAAO6qK,0BAA0Bj+I,GAC/C42K,EAAqB,CAAC,EAE5B/2K,GAAQ82K,GAAa,CAACz+B,EAAYvkK,KAChC,IAAIgS,GAC2C,KAA1CA,EAAM8sL,EAAQv6B,EAAYvkK,EAAMqsB,MACnC42K,EAAmBjjM,GAAQgS,GAAOuyJ,EACpC,IAGF9kK,OAAOstG,iBAAiB1gF,EAAK42K,EAAmB,EAsD5CC,GAAQ,6BAERC,GAAQ,aAER75L,GAAW,CACf65L,SACAD,SACAE,YAAaF,GAAQA,GAAMx3K,cAAgBy3K,IAwB7C,MA+BME,GAAY/B,GAAW,iBAQvBgC,GAAgB,EAAEC,EAAuBC,KAC7C,OAAID,EACKlnC,aAGFmnC,GAAyBn3B,EAW7B,SAAS1rK,KAAKymC,WAXsBgN,EAWV,GAV3BquJ,GAAQtjK,iBAAiB,WAAW6B,IAAoB,IAAnB,OAAC72B,EAAM,KAAEwkB,GAAKqS,EAC7C72B,IAAWs4L,IAAW9zK,IAAS09I,GACjCj4H,EAAUx1C,QAAUw1C,EAAUjvC,OAAVivC,EACtB,IACC,GAEKpB,IACNoB,EAAUnwC,KAAK+uC,GACfyvJ,GAAQt3J,YAAYkhI,EAAO,IAAI,GAECr5H,GAAO0G,WAAW1G,GAXxB,IAAEq5H,EAAOj4H,CAYxC,EAjBqB,CAkBI,oBAAjBioH,aACPslC,GAAWc,GAAQt3J,cAGfs4J,GAAiC,qBAAnB7pD,eAClBA,eAAe5zI,KAAKy8L,IAAgC,qBAAZlyJ,SAA2BA,QAAQmzJ,UAAYJ,GAIzF,IACE7+L,WACAg9L,iBACA12L,SAlpBF,SAAkB8C,GAChB,OAAe,OAARA,IAAiB2zL,GAAY3zL,IAA4B,OAApBA,EAAI/O,cAAyB0iM,GAAY3zL,EAAI/O,cACpF6iM,GAAW9zL,EAAI/O,YAAYiM,WAAa8C,EAAI/O,YAAYiM,SAAS8C,EACxE,EAgpBE81L,WApgBkBtC,IAClB,IAAIr1K,EACJ,OAAOq1K,IACgB,oBAAbhS,UAA2BgS,aAAiBhS,UAClDsS,GAAWN,EAAMztJ,UACY,cAA1B5nB,EAAOo1K,GAAOC,KAEL,WAATr1K,GAAqB21K,GAAWN,EAAM14L,WAAkC,sBAArB04L,EAAM14L,YAG/D,EA2fDi7L,kBA9nBF,SAA2B/1L,GACzB,IAAI2Z,EAMJ,OAJEA,EAD0B,qBAAhBwG,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOpgB,GAElBA,GAASA,EAAInP,QAAY+iM,GAAc5zL,EAAInP,QAEhD8oB,CACT,EAunBEk6K,YACAE,YACAiC,UA9kBgBxC,IAAmB,IAAVA,IAA4B,IAAVA,EA+kB3CQ,YACAC,iBACAM,oBACAC,aACAtP,WAAU,GACVuP,aACAd,eACAO,UACAC,UACAC,UACAa,YACAnB,cACAmC,SA9hBgBj2L,GAAQg0L,GAASh0L,IAAQ8zL,GAAW9zL,EAAIk2L,MA+hBxD5B,qBACAQ,gBACAT,cACAh2K,WACA83K,MAhaF,SAASA,IACP,MAAM,SAACC,GAAYvB,GAAiBj0L,OAASA,MAAQ,CAAC,EAChD+Y,EAAS,CAAC,EACV08K,EAAcA,CAACr2L,EAAKmZ,KACxB,MAAMm9K,EAAYF,GAAYzB,GAAQh7K,EAAQR,IAAQA,EAClD86K,GAAct6K,EAAO28K,KAAerC,GAAcj0L,GACpD2Z,EAAO28K,GAAaH,EAAMx8K,EAAO28K,GAAYt2L,GACpCi0L,GAAcj0L,GACvB2Z,EAAO28K,GAAaH,EAAM,CAAC,EAAGn2L,GACrBpJ,GAAQoJ,GACjB2Z,EAAO28K,GAAat2L,EAAIrF,QAExBgf,EAAO28K,GAAat2L,CACtB,EAGF,IAAK,IAAI7J,EAAI,EAAGmX,EAAI5a,UAAU3B,OAAQoF,EAAImX,EAAGnX,IAC3CzD,UAAUyD,IAAMkoB,GAAQ3rB,UAAUyD,GAAIkgM,GAExC,OAAO18K,CACT,EA6YE0tH,OAjYa,SAAC5iI,EAAGlU,EAAG+iM,GAA8B,IAArB,WAACoB,GAAWhiM,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPA2rB,GAAQ9tB,GAAG,CAACyP,EAAKmZ,KACXm6K,GAAWQ,GAAW9zL,GACxByE,EAAE0U,GAAOhhB,GAAK6H,EAAKszL,GAEnB7uL,EAAE0U,GAAOnZ,CACX,GACC,CAAC00L,eACGjwL,CACT,EAyXE4gB,KA7fY7nB,GAAQA,EAAI6nB,KACxB7nB,EAAI6nB,OAAS7nB,EAAI2E,QAAQ,qCAAsC,IA6f/Do0L,SAjXgBr0H,IACc,QAA1BA,EAAQnmE,WAAW,KACrBmmE,EAAUA,EAAQvnE,MAAM,IAEnBunE,GA8WPhiE,SAlWeA,CAACjP,EAAaulM,EAAkBnpK,EAAO8nK,KACtDlkM,EAAYa,UAAYF,OAAOC,OAAO2kM,EAAiB1kM,UAAWqjM,GAClElkM,EAAYa,UAAUb,YAAcA,EACpCW,OAAOgnB,eAAe3nB,EAAa,QAAS,CAC1CuI,MAAOg9L,EAAiB1kM,YAE1Bu7B,GAASz7B,OAAOG,OAAOd,EAAYa,UAAWu7B,EAAM,EA6VpDopK,aAjVmBA,CAACC,EAAWC,EAASzpK,EAAQ0pK,KAChD,IAAIvpK,EACAl3B,EACAggC,EACJ,MAAM0gK,EAAS,CAAC,EAIhB,GAFAF,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAtpK,EAAQz7B,OAAOmvK,oBAAoB21B,GACnCvgM,EAAIk3B,EAAMt8B,OACHoF,KAAM,GACXggC,EAAO9I,EAAMl3B,GACPygM,IAAcA,EAAWzgK,EAAMugK,EAAWC,IAAcE,EAAO1gK,KACnEwgK,EAAQxgK,GAAQugK,EAAUvgK,GAC1B0gK,EAAO1gK,IAAQ,GAGnBugK,GAAuB,IAAXxpK,GAAoB2zI,GAAe61B,EACjD,OAASA,KAAexpK,GAAUA,EAAOwpK,EAAWC,KAAaD,IAAc9kM,OAAOE,WAEtF,OAAO6kM,CAAO,EA2TdpD,UACAE,cACAjnB,SAjTeA,CAAChvK,EAAKs5L,EAAc3xL,KACnC3H,EAAMxC,OAAOwC,SACI7K,IAAbwS,GAA0BA,EAAW3H,EAAIzM,UAC3CoU,EAAW3H,EAAIzM,QAEjBoU,GAAY2xL,EAAa/lM,OACzB,MAAMynD,EAAYh7C,EAAI4B,QAAQ03L,EAAc3xL,GAC5C,OAAsB,IAAfqzC,GAAoBA,IAAcrzC,CAAQ,EA2SjD7C,QAhSekxL,IACf,IAAKA,EAAO,OAAO,KACnB,GAAI58L,GAAQ48L,GAAQ,OAAOA,EAC3B,IAAIr9L,EAAIq9L,EAAMziM,OACd,IAAKgjM,GAAS59L,GAAI,OAAO,KACzB,MAAMiI,EAAM,IAAIzH,MAAMR,GACtB,KAAOA,KAAM,GACXiI,EAAIjI,GAAKq9L,EAAMr9L,GAEjB,OAAOiI,CAAG,EAwRV24L,aA7PmBA,CAACv4K,EAAKnC,KACzB,MAEMic,GAFY9Z,GAAOA,EAAInb,OAAOi1B,WAET5/B,KAAK8lB,GAEhC,IAAI7E,EAEJ,MAAQA,EAAS2e,EAASxgB,UAAY6B,EAAO+hG,MAAM,CACjD,MAAMryD,EAAO1vC,EAAOngB,MACpB6iB,EAAG3jB,KAAK8lB,EAAK6qC,EAAK,GAAIA,EAAK,GAC7B,GAoPA2tI,SAzOeA,CAACC,EAAQz5L,KACxB,IAAIs1J,EACJ,MAAM10J,EAAM,GAEZ,KAAwC,QAAhC00J,EAAUmkC,EAAOjkC,KAAKx1J,KAC5BY,EAAIhI,KAAK08J,GAGX,OAAO10J,CAAG,EAkOV42L,cACAv8L,eAAc,GACdy+L,WAAYz+L,GACZy8L,qBACAiC,cAzLqB34K,IACrB02K,GAAkB12K,GAAK,CAACk4I,EAAYvkK,KAElC,GAAI2hM,GAAWt1K,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUpf,QAAQjN,GAC/D,OAAO,EAGT,MAAMqH,EAAQglB,EAAIrsB,GAEb2hM,GAAWt6L,KAEhBk9J,EAAW79I,YAAa,EAEpB,aAAc69I,EAChBA,EAAWrtI,UAAW,EAInBqtI,EAAWz3I,MACdy3I,EAAWz3I,IAAM,KACf,MAAM1sB,MAAM,qCAAwCJ,EAAO,IAAK,GAEpE,GACA,EAmKFilM,YAhKkBA,CAACC,EAAeC,KAClC,MAAM94K,EAAM,CAAC,EAEPorC,EAAUxrD,IACdA,EAAIigB,SAAQ7kB,IACVglB,EAAIhlB,IAAS,CAAI,GACjB,EAKJ,OAFA5C,GAAQygM,GAAiBztI,EAAOytI,GAAiBztI,EAAO5uD,OAAOq8L,GAAe7iM,MAAM8iM,IAE7E94K,CAAG,EAsJV+4K,YAlOkB/5L,GACXA,EAAI8jB,cAAcnf,QAAQ,yBAC/B,SAAkB6M,EAAGqyC,EAAImE,GACvB,OAAOnE,EAAGxjC,cAAgB2nC,CAC5B,IA+NFu2G,KApJWA,OAqJXy7B,eAnJqBA,CAACh+L,EAAOg3H,IACb,MAATh3H,GAAiBpI,OAAOu0B,SAASnsB,GAASA,GAASA,EAAQg3H,EAmJlEmkE,WACAliG,OAAQmiG,GACRC,oBACAp5L,YACAg8L,eA1IqB,WAAgD,IAA/C/6L,EAAIhK,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAAI03B,EAAQ13B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG+I,GAAS85L,YACjD/3L,EAAM,GACV,MAAM,OAACzM,GAAUq5B,EACjB,KAAO1tB,KACLc,GAAO4sB,EAASt3B,KAAKymC,SAAWxoC,EAAO,GAGzC,OAAOyM,CACT,EAmIEk6L,oBA1HF,SAA6BlE,GAC3B,SAAUA,GAASM,GAAWN,EAAMztJ,SAAyC,aAA9BytJ,EAAMnwL,OAAOymJ,cAA+B0pC,EAAMnwL,OAAOi1B,UAC1G,EAyHEq/J,aAvHoBn5K,IACpB,MAAM+K,EAAQ,IAAI5yB,MAAM,IAElBihM,EAAQA,CAACt7L,EAAQnG,KAErB,GAAI69L,GAAS13L,GAAS,CACpB,GAAIitB,EAAMnqB,QAAQ9C,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBitB,EAAMpzB,GAAKmG,EACX,MAAM4c,EAAStiB,GAAQ0F,GAAU,GAAK,CAAC,EASvC,OAPA+hB,GAAQ/hB,GAAQ,CAAC9C,EAAO2f,KACtB,MAAM0+K,EAAeD,EAAMp+L,EAAOrD,EAAI,IACrCw9L,GAAYkE,KAAkB3+K,EAAOC,GAAO0+K,EAAa,IAG5DtuK,EAAMpzB,QAAKxD,EAEJumB,CACT,CACF,CAEA,OAAO5c,CAAM,EAGf,OAAOs7L,EAAMp5K,EAAK,EAAE,EA4FpBg3K,aACAsC,WAxFkBtE,GAClBA,IAAUQ,GAASR,IAAUM,GAAWN,KAAWM,GAAWN,EAAM/7E,OAASq8E,GAAWN,EAAMvnD,OAwF9FuiB,aAAcinC,GACdG,SCvuBF,SAASmC,GAAWl9K,EAAS1b,EAAMuxB,EAAQxE,EAASU,GAClDr6B,MAAMmG,KAAKkI,MAEPrO,MAAMylM,kBACRzlM,MAAMylM,kBAAkBp3L,KAAMA,KAAK3P,aAEnC2P,KAAK2oB,OAAS,IAAIh3B,OAASg3B,MAG7B3oB,KAAKia,QAAUA,EACfja,KAAKzO,KAAO,aACZgN,IAASyB,KAAKzB,KAAOA,GACrBuxB,IAAW9vB,KAAK8vB,OAASA,GACzBxE,IAAYtrB,KAAKsrB,QAAUA,GAC3BU,IAAahsB,KAAKgsB,SAAWA,EAC/B,CAEAqrK,GAAM/3L,SAAS63L,GAAYxlM,MAAO,CAChC6R,OAAQ,WACN,MAAO,CAELyW,QAASja,KAAKia,QACd1oB,KAAMyO,KAAKzO,KAEXisF,YAAax9E,KAAKw9E,YAClB59E,OAAQI,KAAKJ,OAEb0pC,SAAUtpC,KAAKspC,SACf6yC,WAAYn8E,KAAKm8E,WACjBm7G,aAAct3L,KAAKs3L,aACnB3uK,MAAO3oB,KAAK2oB,MAEZmH,OAAQunK,GAAMN,aAAa/2L,KAAK8vB,QAChCvxB,KAAMyB,KAAKzB,KACXgjC,OAAQvhC,KAAKgsB,UAAYhsB,KAAKgsB,SAASuV,OAASvhC,KAAKgsB,SAASuV,OAAS,KAE3E,IAGF,MAAMrwC,GAAYimM,GAAWjmM,UACvBqjM,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEA92K,SAAQlf,IACRg2L,GAAYh2L,GAAQ,CAAC3F,MAAO2F,EAAK,IAGnCvN,OAAOstG,iBAAiB64F,GAAY5C,IACpCvjM,OAAOgnB,eAAe9mB,GAAW,eAAgB,CAAC0H,OAAO,IAGzDu+L,GAAWnnM,KAAO,CAAC2tB,EAAOpf,EAAMuxB,EAAQxE,EAASU,EAAUurK,KACzD,MAAMC,EAAaxmM,OAAOC,OAAOC,IAgBjC,OAdAmmM,GAAMxB,aAAal4K,EAAO65K,GAAY,SAAgB55K,GACpD,OAAOA,IAAQjsB,MAAMT,SACvB,IAAGqkC,GACe,iBAATA,IAGT4hK,GAAWr/L,KAAK0/L,EAAY75K,EAAM1D,QAAS1b,EAAMuxB,EAAQxE,EAASU,GAElEwrK,EAAWC,MAAQ95K,EAEnB65K,EAAWjmM,KAAOosB,EAAMpsB,KAExBgmM,GAAevmM,OAAOG,OAAOqmM,EAAYD,GAElCC,CAAU,EAGnB,YCrFA,SAASE,GAAY9E,GACnB,OAAOyE,GAAMhE,cAAcT,IAAUyE,GAAMrhM,QAAQ48L,EACrD,CASA,SAAS+E,GAAep/K,GACtB,OAAO8+K,GAAMzrB,SAASrzJ,EAAK,MAAQA,EAAIxe,MAAM,GAAI,GAAKwe,CACxD,CAWA,SAASq/K,GAAUj7J,EAAMpkB,EAAKs/K,GAC5B,OAAKl7J,EACEA,EAAKliB,OAAOlC,GAAKwF,KAAI,SAAc6/I,EAAOroK,GAG/C,OADAqoK,EAAQ+5B,GAAe/5B,IACfi6B,GAAQtiM,EAAI,IAAMqoK,EAAQ,IAAMA,CAC1C,IAAGt/J,KAAKu5L,EAAO,IAAM,IALHt/K,CAMpB,CAaA,MAAMu/K,GAAaT,GAAMxB,aAAawB,GAAO,CAAC,EAAG,MAAM,SAAgB9hK,GACrE,MAAO,WAAWyC,KAAKzC,EACzB,IA8JA,SArIA,SAAoB3X,EAAK+xJ,EAAU3kJ,GACjC,IAAKqsK,GAAMjE,SAASx1K,GAClB,MAAM,IAAI/tB,UAAU,4BAItB8/K,EAAWA,GAAY,IAAyBiR,SAYhD,MAAMmX,GATN/sK,EAAUqsK,GAAMxB,aAAa7qK,EAAS,CACpC+sK,YAAY,EACZF,MAAM,EACNphH,SAAS,IACR,GAAO,SAAiBuhH,EAAQt8L,GAEjC,OAAQ27L,GAAMtE,YAAYr3L,EAAOs8L,GACnC,KAE2BD,WAErBE,EAAUjtK,EAAQitK,SAAWC,EAC7BL,EAAO7sK,EAAQ6sK,KACfphH,EAAUzrD,EAAQyrD,QAElB0hH,GADQntK,EAAQlxB,MAAwB,qBAATA,MAAwBA,OACpCu9L,GAAMP,oBAAoBnnB,GAEnD,IAAK0nB,GAAMnE,WAAW+E,GACpB,MAAM,IAAIpoM,UAAU,8BAGtB,SAASuoM,EAAax/L,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAIy+L,GAAM/D,OAAO16L,GACf,OAAOA,EAAMy/L,cAGf,IAAKF,GAAWd,GAAM7D,OAAO56L,GAC3B,MAAM,IAAIu+L,GAAW,gDAGvB,OAAIE,GAAMrE,cAAcp6L,IAAUy+L,GAAMnD,aAAat7L,GAC5Cu/L,GAA2B,oBAATr+L,KAAsB,IAAIA,KAAK,CAAClB,IAAU7I,OAAOC,KAAK4I,GAG1EA,CACT,CAYA,SAASs/L,EAAet/L,EAAO2f,EAAKokB,GAClC,IAAIn/B,EAAM5E,EAEV,GAAIA,IAAU+jC,GAAyB,kBAAV/jC,EAC3B,GAAIy+L,GAAMzrB,SAASrzJ,EAAK,MAEtBA,EAAMw/K,EAAax/K,EAAMA,EAAIxe,MAAM,GAAI,GAEvCnB,EAAQkzB,KAAKC,UAAUnzB,QAClB,GACJy+L,GAAMrhM,QAAQ4C,IAnGvB,SAAqB4E,GACnB,OAAO65L,GAAMrhM,QAAQwH,KAASA,EAAI2kK,KAAKu1B,GACzC,CAiGiCY,CAAY1/L,KACnCy+L,GAAM5D,WAAW76L,IAAUy+L,GAAMzrB,SAASrzJ,EAAK,SAAW/a,EAAM65L,GAAM31L,QAAQ9I,IAYhF,OATA2f,EAAMo/K,GAAep/K,GAErB/a,EAAIigB,SAAQ,SAAcmnI,EAAIpkJ,IAC1B62L,GAAMtE,YAAYnuC,IAAc,OAAPA,GAAgB+qB,EAASxqI,QAEtC,IAAZsxC,EAAmBmhH,GAAU,CAACr/K,GAAM/X,EAAOq3L,GAAqB,OAAZphH,EAAmBl+D,EAAMA,EAAM,KACnF6/K,EAAaxzC,GAEjB,KACO,EAIX,QAAI8yC,GAAY9+L,KAIhB+2K,EAASxqI,OAAOyyJ,GAAUj7J,EAAMpkB,EAAKs/K,GAAOO,EAAax/L,KAElD,EACT,CAEA,MAAM+vB,EAAQ,GAER4vK,EAAiBvnM,OAAOG,OAAO2mM,GAAY,CAC/CI,iBACAE,eACAV,iBAyBF,IAAKL,GAAMjE,SAASx1K,GAClB,MAAM,IAAI/tB,UAAU,0BAKtB,OA5BA,SAAS2oM,EAAM5/L,EAAO+jC,GACpB,IAAI06J,GAAMtE,YAAYn6L,GAAtB,CAEA,IAA8B,IAA1B+vB,EAAMnqB,QAAQ5F,GAChB,MAAMjH,MAAM,kCAAoCgrC,EAAKr+B,KAAK,MAG5DqqB,EAAMnzB,KAAKoD,GAEXy+L,GAAM55K,QAAQ7kB,GAAO,SAAcgsJ,EAAIrsI,IAKtB,OAJE8+K,GAAMtE,YAAYnuC,IAAc,OAAPA,IAAgBqzC,EAAQngM,KAChE63K,EAAU/qB,EAAIyyC,GAAMpE,SAAS16K,GAAOA,EAAIkM,OAASlM,EAAKokB,EAAM47J,KAI5DC,EAAM5zC,EAAIjoH,EAAOA,EAAKliB,OAAOlC,GAAO,CAACA,GAEzC,IAEAoQ,EAAMoiC,KAlB8B,CAmBtC,CAMAytI,CAAM56K,GAEC+xJ,CACT,EC5MA,SAASv9K,GAAOwK,GACd,MAAM67L,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAO7gF,mBAAmBh7G,GAAK2E,QAAQ,oBAAoB,SAAkB4wG,GAC3E,OAAOsmF,EAAQtmF,EACjB,GACF,CAUA,SAASumF,GAAqBltK,EAAQR,GACpChrB,KAAK24L,OAAS,GAEdntK,GAAUotK,GAAWptK,EAAQxrB,KAAMgrB,EACrC,CAEA,MAAM95B,GAAYwnM,GAAqBxnM,UAEvCA,GAAUi0C,OAAS,SAAgB5zC,EAAMqH,GACvCoH,KAAK24L,OAAOnjM,KAAK,CAACjE,EAAMqH,GAC1B,EAEA1H,GAAUgJ,SAAW,SAAkB2+L,GACrC,MAAMC,EAAUD,EAAU,SAASjgM,GACjC,OAAOigM,EAAQ/gM,KAAKkI,KAAMpH,EAAOxG,GACnC,EAAIA,GAEJ,OAAO4N,KAAK24L,OAAO56K,KAAI,SAAc0qC,GACnC,OAAOqwI,EAAQrwI,EAAK,IAAM,IAAMqwI,EAAQrwI,EAAK,GAC/C,GAAG,IAAInqD,KAAK,IACd,EAEA,YC5CA,SAASlM,GAAOgN,GACd,OAAOw4G,mBAAmBx4G,GACxBmC,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASw3L,GAAS/7J,EAAKxR,EAAQR,GAE5C,IAAKQ,EACH,OAAOwR,EAGT,MAAM87J,EAAU9tK,GAAWA,EAAQ54B,QAAUA,GAEvC4mM,EAAchuK,GAAWA,EAAQ7R,UAEvC,IAAI8/K,EAUJ,GAPEA,EADED,EACiBA,EAAYxtK,EAAQR,GAEpBqsK,GAAM3D,kBAAkBloK,GACzCA,EAAOtxB,WACP,IAAIw+L,GAAqBltK,EAAQR,GAAS9wB,SAAS4+L,GAGnDG,EAAkB,CACpB,MAAMC,EAAgBl8J,EAAIx+B,QAAQ,MAEX,IAAnB06L,IACFl8J,EAAMA,EAAIjjC,MAAM,EAAGm/L,IAErBl8J,KAA8B,IAAtBA,EAAIx+B,QAAQ,KAAc,IAAM,KAAOy6L,CACjD,CAEA,OAAOj8J,CACT,CCQA,SAlEA,MACE3sC,WAAAA,GACE2P,KAAKitJ,SAAW,EAClB,CAUAksC,GAAAA,CAAIC,EAAWC,EAAUruK,GAOvB,OANAhrB,KAAKitJ,SAASz3J,KAAK,CACjB4jM,YACAC,WACAC,cAAatuK,GAAUA,EAAQsuK,YAC/BC,QAASvuK,EAAUA,EAAQuuK,QAAU,OAEhCv5L,KAAKitJ,SAAS98J,OAAS,CAChC,CASAqpM,KAAAA,CAAM/tK,GACAzrB,KAAKitJ,SAASxhI,KAChBzrB,KAAKitJ,SAASxhI,GAAM,KAExB,CAOA+zJ,KAAAA,GACMx/K,KAAKitJ,WACPjtJ,KAAKitJ,SAAW,GAEpB,CAYAxvI,OAAAA,CAAQhC,GACN47K,GAAM55K,QAAQzd,KAAKitJ,UAAU,SAAwB98I,GACzC,OAANA,GACFsL,EAAGtL,EAEP,GACF,GCjEF,IACEspL,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,IACErpB,WAAW,EACXpT,QAAS,CACP2jB,gBCJsC,qBAApBA,gBAAkCA,gBAAkB6X,GDKtE9X,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxD9mL,KGP2B,qBAATA,KAAuBA,KAAO,MHSlD8/L,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,GAAkC,qBAAXv5L,QAA8C,qBAAbuyB,SAmBxDinK,IACHC,GAEuB,qBAAd1lK,WAA6BA,UAAU0lK,QADxCF,IAAiB,CAAC,cAAe,eAAgB,MAAMr7L,QAAQu7L,IAAW,GAFvD,IAC3BA,GAaH,MAAMC,GAE2B,qBAAtBC,mBAEPr2L,gBAAgBq2L,mBACc,oBAAvBr2L,KAAKs2L,cAIV/3J,GAAS03J,IAAiBv5L,OAAO4hC,SAASwlB,MAAQ,mBCvCxD,OACK2vI,KACAljC,ICyFL,SA9CA,SAAwBwb,GACtB,SAASwqB,EAAUx9J,EAAM/jC,EAAO0f,EAAQ9X,GACtC,IAAIjP,EAAOorC,EAAKn8B,KAEhB,GAAa,cAATjP,EAAsB,OAAO,EAEjC,MAAM6oM,EAAe5pM,OAAOu0B,UAAUxzB,GAChC8oM,EAAS75L,GAASm8B,EAAKxsC,OAG7B,GAFAoB,GAAQA,GAAQ8lM,GAAMrhM,QAAQsiB,GAAUA,EAAOnoB,OAASoB,EAEpD8oM,EAOF,OANIhD,GAAMf,WAAWh+K,EAAQ/mB,GAC3B+mB,EAAO/mB,GAAQ,CAAC+mB,EAAO/mB,GAAOqH,GAE9B0f,EAAO/mB,GAAQqH,GAGTwhM,EAGL9hL,EAAO/mB,IAAU8lM,GAAMjE,SAAS96K,EAAO/mB,MAC1C+mB,EAAO/mB,GAAQ,IASjB,OANe4oM,EAAUx9J,EAAM/jC,EAAO0f,EAAO/mB,GAAOiP,IAEtC62L,GAAMrhM,QAAQsiB,EAAO/mB,MACjC+mB,EAAO/mB,GA/Cb,SAAuBiM,GACrB,MAAMogB,EAAM,CAAC,EACPooB,EAAOh1C,OAAOg1C,KAAKxoC,GACzB,IAAIjI,EACJ,MAAMqI,EAAMooC,EAAK71C,OACjB,IAAIooB,EACJ,IAAKhjB,EAAI,EAAGA,EAAIqI,EAAKrI,IACnBgjB,EAAMytB,EAAKzwC,GACXqoB,EAAIrF,GAAO/a,EAAI+a,GAEjB,OAAOqF,CACT,CAoCqB08K,CAAchiL,EAAO/mB,MAG9B6oM,CACV,CAEA,GAAI/C,GAAMnC,WAAWvlB,IAAa0nB,GAAMnE,WAAWvjB,EAAS3mB,SAAU,CACpE,MAAMprI,EAAM,CAAC,EAMb,OAJAy5K,GAAMlB,aAAaxmB,GAAU,CAACp+K,EAAMqH,KAClCuhM,EA1EN,SAAuB5oM,GAKrB,OAAO8lM,GAAMjB,SAAS,gBAAiB7kM,GAAMwsB,KAAIo0F,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CAkEgBooF,CAAchpM,GAAOqH,EAAOglB,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECzDA,MAAM48K,GAAW,CAEfC,aAAcC,GAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBC,iBAAkB,CAAC,SAA0B16K,EAAMg4J,GACjD,MAAMqM,EAAcrM,EAAQ2iB,kBAAoB,GAC1CC,EAAqBvW,EAAY/lL,QAAQ,qBAAuB,EAChEu8L,EAAkB1D,GAAMjE,SAASlzK,GAEnC66K,GAAmB1D,GAAMjD,WAAWl0K,KACtCA,EAAO,IAAI0gK,SAAS1gK,IAKtB,GAFmBm3K,GAAMnC,WAAWh1K,GAGlC,OAAO46K,EAAqBhvK,KAAKC,UAAUivK,GAAe96K,IAASA,EAGrE,GAAIm3K,GAAMrE,cAAc9yK,IACtBm3K,GAAM/6L,SAAS4jB,IACfm3K,GAAMhC,SAASn1K,IACfm3K,GAAM9D,OAAOrzK,IACbm3K,GAAM7D,OAAOtzK,IACbm3K,GAAM1D,iBAAiBzzK,GAEvB,OAAOA,EAET,GAAIm3K,GAAMlC,kBAAkBj1K,GAC1B,OAAOA,EAAKjwB,OAEd,GAAIonM,GAAM3D,kBAAkBxzK,GAE1B,OADAg4J,EAAQ+iB,eAAe,mDAAmD,GACnE/6K,EAAKhmB,WAGd,IAAIu5L,EAEJ,GAAIsH,EAAiB,CACnB,GAAIxW,EAAY/lL,QAAQ,sCAAwC,EAC9D,OCvEO,SAA0B0hB,EAAM8K,GAC7C,OAAO4tK,GAAW14K,EAAM,IAAIi0I,GAAS+I,QAAQ2jB,gBAAmB7vL,OAAOG,OAAO,CAC5E8mM,QAAS,SAASr/L,EAAO2f,EAAKokB,EAAMu+J,GAClC,OAAI/mC,GAASgnC,QAAU9D,GAAM/6L,SAAS1D,IACpCoH,KAAKmlC,OAAO5sB,EAAK3f,EAAMsB,SAAS,YACzB,GAGFghM,EAAQhD,eAAeh8K,MAAMlc,KAAMlO,UAC5C,GACCk5B,GACL,CD4DeowK,CAAiBl7K,EAAMlgB,KAAKq7L,gBAAgBnhM,WAGrD,IAAKu5L,EAAa4D,GAAM5D,WAAWvzK,KAAUqkK,EAAY/lL,QAAQ,wBAA0B,EAAG,CAC5F,MAAM88L,EAAYt7L,KAAKu7L,KAAOv7L,KAAKu7L,IAAI3a,SAEvC,OAAOgY,GACLnF,EAAa,CAAC,UAAWvzK,GAAQA,EACjCo7K,GAAa,IAAIA,EACjBt7L,KAAKq7L,eAET,CACF,CAEA,OAAIN,GAAmBD,GACrB5iB,EAAQ+iB,eAAe,oBAAoB,GAxEjD,SAAyBO,EAAU3mC,EAAQgkC,GACzC,GAAIxB,GAAMpE,SAASuI,GACjB,IAEE,OADC3mC,GAAU/oI,KAAKK,OAAOqvK,GAChBnE,GAAM5yK,KAAK+2K,EACpB,CAAE,MAAOrlM,IACP,GAAe,gBAAXA,GAAE5E,KACJ,MAAM4E,EAEV,CAGF,OAAQ0iM,GAAW/sK,KAAKC,WAAWyvK,EACrC,CA4DaC,CAAgBv7K,IAGlBA,CACT,GAEAw7K,kBAAmB,CAAC,SAA2Bx7K,GAC7C,MAAMu6K,EAAez6L,KAAKy6L,cAAgBD,GAASC,aAC7Cf,EAAoBe,GAAgBA,EAAaf,kBACjDiC,EAAsC,SAAtB37L,KAAKghC,aAE3B,GAAIq2J,GAAM/S,WAAWpkK,IAASm3K,GAAM1D,iBAAiBzzK,GACnD,OAAOA,EAGT,GAAIA,GAAQm3K,GAAMpE,SAAS/yK,KAAWw5K,IAAsB15L,KAAKghC,cAAiB26J,GAAgB,CAChG,MACMC,IADoBnB,GAAgBA,EAAahB,oBACPkC,EAEhD,IACE,OAAO7vK,KAAKK,MAAMjM,EACpB,CAAE,MAAO/pB,IACP,GAAIylM,EAAmB,CACrB,GAAe,gBAAXzlM,GAAE5E,KACJ,MAAM4lM,GAAWnnM,KAAKmG,GAAGghM,GAAW0E,iBAAkB77L,KAAM,KAAMA,KAAKgsB,UAEzE,MAAM71B,EACR,CACF,CACF,CAEA,OAAO+pB,CACT,GAMA+gJ,QAAS,EAET66B,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBV,IAAK,CACH3a,SAAUzsB,GAAS+I,QAAQ0jB,SAC3B9mL,KAAMq6J,GAAS+I,QAAQpjK,MAGzBoiM,eAAgB,SAAwB36J,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA22I,QAAS,CACPikB,OAAQ,CACN,OAAU,oCACV,oBAAgBpqM,KAKtBslM,GAAM55K,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAW8N,IAChEivK,GAAStiB,QAAQ3sJ,GAAU,CAAC,CAAC,IAG/B,YE1JM6wK,GAAoB/E,GAAMb,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtB6F,GAAa55L,OAAO,aAE1B,SAAS65L,GAAgBC,GACvB,OAAOA,GAAUniM,OAAOmiM,GAAQ93K,OAAO/D,aACzC,CAEA,SAAS87K,GAAe5jM,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGFy+L,GAAMrhM,QAAQ4C,GAASA,EAAMmlB,IAAIy+K,IAAkBpiM,OAAOxB,EACnE,CAgBA,SAAS6jM,GAAiB/3G,EAAS9rF,EAAO2jM,EAAQjwK,EAAQowK,GACxD,OAAIrF,GAAMnE,WAAW5mK,GACZA,EAAOx0B,KAAKkI,KAAMpH,EAAO2jM,IAG9BG,IACF9jM,EAAQ2jM,GAGLlF,GAAMpE,SAASr6L,GAEhBy+L,GAAMpE,SAAS3mK,IACiB,IAA3B1zB,EAAM4F,QAAQ8tB,GAGnB+qK,GAAMhD,SAAS/nK,GACVA,EAAO0L,KAAKp/B,QADrB,OANA,EASF,CAsBA,MAAM+jM,GACJtsM,WAAAA,CAAY6nL,GACVA,GAAWl4K,KAAKqe,IAAI65J,EACtB,CAEA75J,GAAAA,CAAIk+K,EAAQK,EAAgBC,GAC1B,MAAMj5L,EAAO5D,KAEb,SAAS88L,EAAU5lG,EAAQ6lG,EAASC,GAClC,MAAMC,EAAUX,GAAgBS,GAEhC,IAAKE,EACH,MAAM,IAAItrM,MAAM,0CAGlB,MAAM4mB,EAAM8+K,GAAMtD,QAAQnwL,EAAMq5L,KAE5B1kL,QAAqBxmB,IAAd6R,EAAK2U,KAAmC,IAAbykL,QAAmCjrM,IAAbirM,IAAwC,IAAdp5L,EAAK2U,MACzF3U,EAAK2U,GAAOwkL,GAAWP,GAAetlG,GAE1C,CAEA,MAAMgmG,EAAaA,CAAChlB,EAAS8kB,IAC3B3F,GAAM55K,QAAQy6J,GAAS,CAAChhF,EAAQ6lG,IAAYD,EAAU5lG,EAAQ6lG,EAASC,KAEzE,GAAI3F,GAAMhE,cAAckJ,IAAWA,aAAkBv8L,KAAK3P,YACxD6sM,EAAWX,EAAQK,QACd,GAAGvF,GAAMpE,SAASsJ,KAAYA,EAASA,EAAO93K,UArEtB,iCAAiCuT,KAqEmBukK,EArEV93K,QAsEvEy4K,ED1EN,CAAeC,IACb,MAAMl7K,EAAS,CAAC,EAChB,IAAI1J,EACAnZ,EACA7J,EAsBJ,OApBA4nM,GAAcA,EAAWvpM,MAAM,MAAM6pB,SAAQ,SAAgBqoB,GAC3DvwC,EAAIuwC,EAAKtnC,QAAQ,KACjB+Z,EAAMutB,EAAKm1D,UAAU,EAAG1lG,GAAGkvB,OAAO/D,cAClCthB,EAAM0mC,EAAKm1D,UAAU1lG,EAAI,GAAGkvB,QAEvBlM,GAAQ0J,EAAO1J,IAAQ6jL,GAAkB7jL,KAIlC,eAARA,EACE0J,EAAO1J,GACT0J,EAAO1J,GAAK/iB,KAAK4J,GAEjB6iB,EAAO1J,GAAO,CAACnZ,GAGjB6iB,EAAO1J,GAAO0J,EAAO1J,GAAO0J,EAAO1J,GAAO,KAAOnZ,EAAMA,EAE3D,IAEO6iB,CACR,EC+CgBm7K,CAAab,GAASK,QAC5B,GAAIvF,GAAMxD,UAAU0I,GACzB,IAAK,MAAOhkL,EAAK3f,KAAU2jM,EAAOvzC,UAChC8zC,EAAUlkM,EAAO2f,EAAKskL,QAGd,MAAVN,GAAkBO,EAAUF,EAAgBL,EAAQM,GAGtD,OAAO78L,IACT,CAEAkY,GAAAA,CAAIqkL,EAAQ1nC,GAGV,GAFA0nC,EAASD,GAAgBC,GAEb,CACV,MAAMhkL,EAAM8+K,GAAMtD,QAAQ/zL,KAAMu8L,GAEhC,GAAIhkL,EAAK,CACP,MAAM3f,EAAQoH,KAAKuY,GAEnB,IAAKs8I,EACH,OAAOj8J,EAGT,IAAe,IAAXi8J,EACF,OA5GV,SAAqBj4J,GACnB,MAAM6gK,EAASzsK,OAAOC,OAAO,MACvBosM,EAAW,mCACjB,IAAIlrF,EAEJ,KAAQA,EAAQkrF,EAASjrC,KAAKx1J,IAC5B6gK,EAAOtrD,EAAM,IAAMA,EAAM,GAG3B,OAAOsrD,CACT,CAkGiB6/B,CAAY1kM,GAGrB,GAAIy+L,GAAMnE,WAAWr+B,GACnB,OAAOA,EAAO/8J,KAAKkI,KAAMpH,EAAO2f,GAGlC,GAAI8+K,GAAMhD,SAASx/B,GACjB,OAAOA,EAAOzC,KAAKx5J,GAGrB,MAAM,IAAI/I,UAAU,yCACtB,CACF,CACF,CAEAo5I,GAAAA,CAAIszD,EAAQvvB,GAGV,GAFAuvB,EAASD,GAAgBC,GAEb,CACV,MAAMhkL,EAAM8+K,GAAMtD,QAAQ/zL,KAAMu8L,GAEhC,SAAUhkL,QAAqBxmB,IAAdiO,KAAKuY,IAAwBy0J,IAAWyvB,GAAiBz8L,EAAMA,KAAKuY,GAAMA,EAAKy0J,GAClG,CAEA,OAAO,CACT,CAEAnyC,OAAO0hE,EAAQvvB,GACb,MAAMppK,EAAO5D,KACb,IAAIu9L,GAAU,EAEd,SAASC,EAAaT,GAGpB,GAFAA,EAAUT,GAAgBS,GAEb,CACX,MAAMxkL,EAAM8+K,GAAMtD,QAAQnwL,EAAMm5L,IAE5BxkL,GAASy0J,IAAWyvB,GAAiB74L,EAAMA,EAAK2U,GAAMA,EAAKy0J,YACtDppK,EAAK2U,GAEZglL,GAAU,EAEd,CACF,CAQA,OANIlG,GAAMrhM,QAAQumM,GAChBA,EAAO9+K,QAAQ+/K,GAEfA,EAAajB,GAGRgB,CACT,CAEA/d,KAAAA,CAAMxS,GACJ,MAAMhnI,EAAOh1C,OAAOg1C,KAAKhmC,MACzB,IAAIzK,EAAIywC,EAAK71C,OACTotM,GAAU,EAEd,KAAOhoM,KAAK,CACV,MAAMgjB,EAAMytB,EAAKzwC,GACby3K,IAAWyvB,GAAiBz8L,EAAMA,KAAKuY,GAAMA,EAAKy0J,GAAS,YACtDhtK,KAAKuY,GACZglL,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAznG,SAAAA,CAAUtrE,GACR,MAAM5mB,EAAO5D,KACPk4K,EAAU,CAAC,EAsBjB,OApBAmf,GAAM55K,QAAQzd,MAAM,CAACpH,EAAO2jM,KAC1B,MAAMhkL,EAAM8+K,GAAMtD,QAAQ7b,EAASqkB,GAEnC,GAAIhkL,EAGF,OAFA3U,EAAK2U,GAAOikL,GAAe5jM,eACpBgL,EAAK24L,GAId,MAAMkB,EAAajzK,EA9JzB,SAAsB+xK,GACpB,OAAOA,EAAO93K,OACX/D,cAAcnf,QAAQ,mBAAmB,CAACK,EAAGwoI,EAAMxtI,IAC3CwtI,EAAKntH,cAAgBrgB,GAElC,CAyJkC8gM,CAAanB,GAAUniM,OAAOmiM,GAAQ93K,OAE9Dg5K,IAAelB,UACV34L,EAAK24L,GAGd34L,EAAK65L,GAAcjB,GAAe5jM,GAElCs/K,EAAQulB,IAAc,CAAI,IAGrBz9L,IACT,CAEAya,MAAAA,GAAmB,QAAAsB,EAAAjqB,UAAA3B,OAATwtM,EAAO,IAAA5nM,MAAAgmB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAP0hL,EAAO1hL,GAAAnqB,UAAAmqB,GACf,OAAOjc,KAAK3P,YAAYoqB,OAAOza,QAAS29L,EAC1C,CAEAn6L,MAAAA,CAAOo6L,GACL,MAAMhgL,EAAM5sB,OAAOC,OAAO,MAM1B,OAJAomM,GAAM55K,QAAQzd,MAAM,CAACpH,EAAO2jM,KACjB,MAAT3jM,IAA2B,IAAVA,IAAoBglB,EAAI2+K,GAAUqB,GAAavG,GAAMrhM,QAAQ4C,GAASA,EAAM0F,KAAK,MAAQ1F,EAAM,IAG3GglB,CACT,CAEA,CAACnb,OAAOi1B,YACN,OAAO1mC,OAAOg4J,QAAQhpJ,KAAKwD,UAAUf,OAAOi1B,WAC9C,CAEAx9B,QAAAA,GACE,OAAOlJ,OAAOg4J,QAAQhpJ,KAAKwD,UAAUua,KAAIC,IAAA,IAAEu+K,EAAQ3jM,GAAMolB,EAAA,OAAKu+K,EAAS,KAAO3jM,CAAK,IAAE0F,KAAK,KAC5F,CAEA,IAAKmE,OAAOymJ,eACV,MAAO,cACT,CAEA,WAAOl5J,CAAK4iM,GACV,OAAOA,aAAiB5yL,KAAO4yL,EAAQ,IAAI5yL,KAAK4yL,EAClD,CAEA,aAAOn4K,CAAOgM,GACZ,MAAMo3K,EAAW,IAAI79L,KAAKymB,GAAO,QAAAq3K,EAAAhsM,UAAA3B,OADXwtM,EAAO,IAAA5nM,MAAA+nM,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPJ,EAAOI,EAAA,GAAAjsM,UAAAisM,GAK7B,OAFAJ,EAAQlgL,SAASnF,GAAWulL,EAASx/K,IAAI/F,KAElCulL,CACT,CAEA,eAAOG,CAASzB,GACd,MAIM0B,GAJYj+L,KAAKq8L,IAAer8L,KAAKq8L,IAAc,CACvD4B,UAAW,CAAC,IAGcA,UACtB/sM,EAAY8O,KAAK9O,UAEvB,SAASgtM,EAAenB,GACtB,MAAME,EAAUX,GAAgBS,GAE3BkB,EAAUhB,MAtNrB,SAAwBr/K,EAAK2+K,GAC3B,MAAM4B,EAAe9G,GAAMV,YAAY,IAAM4F,GAE7C,CAAC,MAAO,MAAO,OAAO9+K,SAAQ2gL,IAC5BptM,OAAOgnB,eAAe4F,EAAKwgL,EAAaD,EAAc,CACpDvlM,MAAO,SAASylM,EAAMC,EAAMC,GAC1B,OAAOv+L,KAAKo+L,GAAYtmM,KAAKkI,KAAMu8L,EAAQ8B,EAAMC,EAAMC,EACzD,EACA71K,cAAc,GACd,GAEN,CA4MQ81K,CAAettM,EAAW6rM,GAC1BkB,EAAUhB,IAAW,EAEzB,CAIA,OAFA5F,GAAMrhM,QAAQumM,GAAUA,EAAO9+K,QAAQygL,GAAkBA,EAAe3B,GAEjEv8L,IACT,EAGF28L,GAAaqB,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpG3G,GAAM/C,kBAAkBqI,GAAazrM,WAAW,CAAAqhC,EAAUha,KAAQ,IAAjB,MAAC3f,GAAM25B,EAClDksK,EAASlmL,EAAI,GAAG0E,cAAgB1E,EAAIxe,MAAM,GAC9C,MAAO,CACLme,IAAKA,IAAMtf,EACXylB,GAAAA,CAAIqgL,GACF1+L,KAAKy+L,GAAUC,CACjB,EACD,IAGHrH,GAAMd,cAAcoG,IAEpB,YC/Re,SAASnnI,GAAcmpI,EAAK3yK,GACzC,MAAM8D,EAAS9vB,MAAQw6L,GACjB91G,EAAU14D,GAAY8D,EACtBooJ,EAAUykB,GAAa3sM,KAAK00F,EAAQwzF,SAC1C,IAAIh4J,EAAOwkE,EAAQxkE,KAQnB,OANAm3K,GAAM55K,QAAQkhL,GAAK,SAAmBljL,GACpCyE,EAAOzE,EAAG3jB,KAAKg4B,EAAQ5P,EAAMg4J,EAAQpiF,YAAa9pE,EAAWA,EAASuV,YAASxvC,EACjF,IAEAmmL,EAAQpiF,YAED51E,CACT,CCzBe,SAAS0+K,GAAShmM,GAC/B,SAAUA,IAASA,EAAMimM,WAC3B,CCUA,SAASC,GAAc7kL,EAAS6V,EAAQxE,GAEtC6rK,GAAWr/L,KAAKkI,KAAiB,MAAXia,EAAkB,WAAaA,EAASk9K,GAAW4H,aAAcjvK,EAAQxE,GAC/FtrB,KAAKzO,KAAO,eACd,CAEA8lM,GAAM/3L,SAASw/L,GAAe3H,GAAY,CACxC0H,YAAY,IAGd,YCXe,SAASG,GAAO5zD,EAASu2B,EAAQ31I,GAC9C,MAAMkwK,EAAiBlwK,EAAS8D,OAAOosK,eAClClwK,EAASuV,QAAW26J,IAAkBA,EAAelwK,EAASuV,QAGjEogI,EAAO,IAAIw1B,GACT,mCAAqCnrK,EAASuV,OAC9C,CAAC41J,GAAW8H,gBAAiB9H,GAAW0E,kBAAkB3pM,KAAKC,MAAM65B,EAASuV,OAAS,KAAO,GAC9FvV,EAAS8D,OACT9D,EAASV,QACTU,IAPFo/G,EAAQp/G,EAUZ,CC4BA,SA9CA,SAAqBkzK,EAAcn+L,GACjCm+L,EAAeA,GAAgB,GAC/B,MAAMh6K,EAAQ,IAAInvB,MAAMmpM,GAClBC,EAAa,IAAIppM,MAAMmpM,GAC7B,IAEIE,EAFA99B,EAAO,EACP/jB,EAAO,EAKX,OAFAx8I,OAAchP,IAARgP,EAAoBA,EAAM,IAEzB,SAAcs+L,GACnB,MAAM9kI,EAAMD,KAAKC,MAEX+kI,EAAYH,EAAW5hD,GAExB6hD,IACHA,EAAgB7kI,GAGlBr1C,EAAMo8I,GAAQ+9B,EACdF,EAAW79B,GAAQ/mG,EAEnB,IAAIhlE,EAAIgoJ,EACJgiD,EAAa,EAEjB,KAAOhqM,IAAM+rK,GACXi+B,GAAcr6K,EAAM3vB,KACpBA,GAAQ2pM,EASV,GANA59B,GAAQA,EAAO,GAAK49B,EAEhB59B,IAAS/jB,IACXA,GAAQA,EAAO,GAAK2hD,GAGlB3kI,EAAM6kI,EAAgBr+L,EACxB,OAGF,MAAMy+L,EAASF,GAAa/kI,EAAM+kI,EAElC,OAAOE,EAASttM,KAAKuc,MAAmB,IAAb8wL,EAAoBC,QAAUztM,CAC3D,CACF,ECTA,SArCA,SAAkB0pB,EAAIu9E,GACpB,IAEIymG,EACAC,EAHAC,EAAY,EACZtnH,EAAY,IAAO2gB,EAIvB,MAAM4mG,EAAS,SAAC5jL,GAA2B,IAArBu+C,EAAGzoE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGwoE,KAAKC,MAC/BolI,EAAYplI,EACZklI,EAAW,KACPC,IACF18E,aAAa08E,GACbA,EAAQ,MAEVjkL,EAAGS,MAAM,KAAMF,EACjB,EAoBA,MAAO,CAlBW,WAChB,MAAMu+C,EAAMD,KAAKC,MACXilI,EAASjlI,EAAMolI,EAAU,QAAA5jL,EAAAjqB,UAAA3B,OAFX6rB,EAAI,IAAAjmB,MAAAgmB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAnqB,UAAAmqB,GAGnBujL,GAAUnnH,EACbunH,EAAO5jL,EAAMu+C,IAEbklI,EAAWzjL,EACN0jL,IACHA,EAAQz0J,YAAW,KACjBy0J,EAAQ,KACRE,EAAOH,EAAS,GACfpnH,EAAYmnH,IAGrB,EAEcntF,IAAMotF,GAAYG,EAAOH,GAGzC,ECrCaI,GAAuB,SAACrvK,EAAUsvK,GAA+B,IAAb9mG,EAAIlnG,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAClEiuM,EAAgB,EACpB,MAAMC,EAAeC,GAAY,GAAI,KAErC,OAAOC,IAAS/pM,IACd,MAAM0lE,EAAS1lE,EAAE0lE,OACX55D,EAAQ9L,EAAEgqM,iBAAmBhqM,EAAE8L,WAAQlQ,EACvCquM,EAAgBvkI,EAASkkI,EACzBppK,EAAOqpK,EAAaI,GAG1BL,EAAgBlkI,EAchBrrC,EAZa,CACXqrC,SACA55D,QACAo+L,SAAUp+L,EAAS45D,EAAS55D,OAASlQ,EACrCmzB,MAAOk7K,EACPzpK,KAAMA,QAAc5kC,EACpBuuM,UAAW3pK,GAAQ10B,GAVL45D,GAAU55D,GAUeA,EAAQ45D,GAAUllC,OAAO5kC,EAChE8vC,MAAO1rC,EACPgqM,iBAA2B,MAATl+L,EAClB,CAAC69L,EAAmB,WAAa,WAAW,GAGhC,GACb9mG,EACL,EAEaunG,GAAyBA,CAACt+L,EAAOu+L,KAC5C,MAAML,EAA4B,MAATl+L,EAEzB,MAAO,CAAE45D,GAAW2kI,EAAU,GAAG,CAC/BL,mBACAl+L,QACA45D,WACE2kI,EAAU,GAAG,EAGNC,GAAkBhlL,GAAO,mBAAAM,EAAAjqB,UAAA3B,OAAI6rB,EAAI,IAAAjmB,MAAAgmB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAnqB,UAAAmqB,GAAA,OAAKo7K,GAAMrC,MAAK,IAAMv5K,KAAMO,IAAM,ECtChF,GAAem4I,GAAS2lC,sBAIrB,WACC,MAAM4G,EAAO,kBAAkB1oK,KAAK3D,UAAU4D,WACxC0oK,EAAiB9tK,SAAS9B,cAAc,KAC9C,IAAI6vK,EAQJ,SAASC,EAAW7jK,GAClB,IAAI0qB,EAAO1qB,EAWX,OATI0jK,IAEFC,EAAeryJ,aAAa,OAAQoZ,GACpCA,EAAOi5I,EAAej5I,MAGxBi5I,EAAeryJ,aAAa,OAAQoZ,GAG7B,CACLA,KAAMi5I,EAAej5I,KACrB29H,SAAUsb,EAAetb,SAAWsb,EAAetb,SAAS9jL,QAAQ,KAAM,IAAM,GAChFu/L,KAAMH,EAAeG,KACrB98D,OAAQ28D,EAAe38D,OAAS28D,EAAe38D,OAAOziI,QAAQ,MAAO,IAAM,GAC3E+lK,KAAMq5B,EAAer5B,KAAOq5B,EAAer5B,KAAK/lK,QAAQ,KAAM,IAAM,GACpEw/L,SAAUJ,EAAeI,SACzBC,KAAML,EAAeK,KACrB5+J,SAAiD,MAAtCu+J,EAAev+J,SAASnnC,OAAO,GACxC0lM,EAAev+J,SACf,IAAMu+J,EAAev+J,SAE3B,CAUA,OARAw+J,EAAYC,EAAWvgM,OAAO4hC,SAASwlB,MAQhC,SAAyBu5I,GAC9B,MAAMh/K,EAAUo1K,GAAMpE,SAASgO,GAAeJ,EAAWI,GAAcA,EACvE,OAAQh/K,EAAOojK,WAAaub,EAAUvb,UAClCpjK,EAAO6+K,OAASF,EAAUE,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,EC9DJ,GAAe3sC,GAAS2lC,sBAGtB,CACE7/L,KAAAA,CAAM1I,EAAMqH,EAAOsoM,EAASvkK,EAAMwkK,EAAQC,GACxC,MAAMC,EAAS,CAAC9vM,EAAO,IAAMqmH,mBAAmBh/G,IAEhDy+L,GAAMlE,SAAS+N,IAAYG,EAAO7rM,KAAK,WAAa,IAAI8kE,KAAK4mI,GAASI,eAEtEjK,GAAMpE,SAASt2J,IAAS0kK,EAAO7rM,KAAK,QAAUmnC,GAE9C06J,GAAMpE,SAASkO,IAAWE,EAAO7rM,KAAK,UAAY2rM,IAEvC,IAAXC,GAAmBC,EAAO7rM,KAAK,UAE/Bq9B,SAASwuK,OAASA,EAAO/iM,KAAK,KAChC,EAEAojB,IAAAA,CAAKnwB,GACH,MAAM4gH,EAAQt/E,SAASwuK,OAAOlvF,MAAM,IAAI82C,OAAO,aAAe13J,EAAO,cACrE,OAAQ4gH,EAAQzpD,mBAAmBypD,EAAM,IAAM,IACjD,EAEAoyD,MAAAA,CAAOhzK,GACLyO,KAAK/F,MAAM1I,EAAM,GAAI+oE,KAAKC,MAAQ,MACpC,GAMF,CACEtgE,KAAAA,GAAS,EACTynB,KAAIA,IACK,KAET6iJ,MAAAA,GAAU,GCxBC,SAASg9B,GAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8BxpK,KDGPypK,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQjgM,QAAQ,SAAU,IAAM,IAAMmgM,EAAYngM,QAAQ,OAAQ,IAClEigM,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,MAAMG,GAAmBhP,GAAUA,aAAiB+J,GAAe,IAAK/J,GAAUA,EAWnE,SAASiP,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAMjyK,EAAS,CAAC,EAEhB,SAASkyK,EAAe1pL,EAAQ5c,EAAQ85L,GACtC,OAAI6B,GAAMhE,cAAc/6K,IAAW++K,GAAMhE,cAAc33L,GAC9C27L,GAAM9B,MAAMz9L,KAAK,CAAC09L,YAAWl9K,EAAQ5c,GACnC27L,GAAMhE,cAAc33L,GACtB27L,GAAM9B,MAAM,CAAC,EAAG75L,GACd27L,GAAMrhM,QAAQ0F,GAChBA,EAAO3B,QAET2B,CACT,CAGA,SAASumM,EAAoBp+L,EAAGlU,EAAG6lM,GACjC,OAAK6B,GAAMtE,YAAYpjM,GAEX0nM,GAAMtE,YAAYlvL,QAAvB,EACEm+L,OAAejwM,EAAW8R,EAAG2xL,GAF7BwM,EAAen+L,EAAGlU,EAAG6lM,EAIhC,CAGA,SAAS0M,EAAiBr+L,EAAGlU,GAC3B,IAAK0nM,GAAMtE,YAAYpjM,GACrB,OAAOqyM,OAAejwM,EAAWpC,EAErC,CAGA,SAASwyM,EAAiBt+L,EAAGlU,GAC3B,OAAK0nM,GAAMtE,YAAYpjM,GAEX0nM,GAAMtE,YAAYlvL,QAAvB,EACEm+L,OAAejwM,EAAW8R,GAF1Bm+L,OAAejwM,EAAWpC,EAIrC,CAGA,SAASyyM,EAAgBv+L,EAAGlU,EAAG4lC,GAC7B,OAAIA,KAAQwsK,EACHC,EAAen+L,EAAGlU,GAChB4lC,KAAQusK,EACVE,OAAejwM,EAAW8R,QAD5B,CAGT,CAEA,MAAMw+L,EAAW,CACfrlK,IAAKklK,EACL32K,OAAQ22K,EACRhiL,KAAMgiL,EACNV,QAASW,EACTvH,iBAAkBuH,EAClBzG,kBAAmByG,EACnBG,iBAAkBH,EAClBlhC,QAASkhC,EACTI,eAAgBJ,EAChBK,gBAAiBL,EACjBM,cAAeN,EACfxH,QAASwH,EACTnhK,aAAcmhK,EACdrG,eAAgBqG,EAChBpG,eAAgBoG,EAChBO,iBAAkBP,EAClBQ,mBAAoBR,EACpB91F,WAAY81F,EACZnG,iBAAkBmG,EAClBlG,cAAekG,EACfS,eAAgBT,EAChBU,UAAWV,EACXW,UAAWX,EACXY,WAAYZ,EACZa,YAAab,EACbc,WAAYd,EACZe,iBAAkBf,EAClBjG,eAAgBkG,EAChBlqB,QAASA,CAACr0K,EAAGlU,IAAMsyM,EAAoBL,GAAgB/9L,GAAI+9L,GAAgBjyM,IAAI,IASjF,OANA0nM,GAAM55K,QAAQzsB,OAAOg1C,KAAKh1C,OAAOG,OAAO,CAAC,EAAG2wM,EAASC,KAAW,SAA4BxsK,GAC1F,MAAMggK,EAAQ8M,EAAS9sK,IAAS0sK,EAC1BkB,EAAc5N,EAAMuM,EAAQvsK,GAAOwsK,EAAQxsK,GAAOA,GACvD8hK,GAAMtE,YAAYoQ,IAAgB5N,IAAU6M,IAAqBtyK,EAAOyF,GAAQ4tK,EACnF,IAEOrzK,CACT,CChGA,SAAgBA,IACd,MAAMszK,EAAYvB,GAAY,CAAC,EAAG/xK,GAElC,IAaIy0J,GAbA,KAACrkK,EAAI,cAAEuiL,EAAa,eAAE1G,EAAc,eAAED,EAAc,QAAE5jB,EAAO,KAAEmrB,GAAQD,EAe3E,GAbAA,EAAUlrB,QAAUA,EAAUykB,GAAa3sM,KAAKkoL,GAEhDkrB,EAAUpmK,IAAM+7J,GAASwI,GAAc6B,EAAU5B,QAAS4B,EAAUpmK,KAAMlN,EAAOtE,OAAQsE,EAAOwyK,kBAG5Fe,GACFnrB,EAAQ75J,IAAI,gBAAiB,SAC3B+4F,MAAMisF,EAAKC,UAAY,IAAM,KAAOD,EAAKt/D,SAAWw/D,SAAS3rF,mBAAmByrF,EAAKt/D,WAAa,MAMlGszD,GAAMnC,WAAWh1K,GACnB,GAAIi0I,GAAS2lC,uBAAyB3lC,GAAS6lC,+BAC7C9hB,EAAQ+iB,oBAAelpM,QAClB,IAAiD,KAA5CwyL,EAAcrM,EAAQ2iB,kBAA6B,CAE7D,MAAOr9K,KAASigJ,GAAU8mB,EAAcA,EAAY3wL,MAAM,KAAKmqB,KAAI6/I,GAASA,EAAMn5I,SAAQ6H,OAAOlzB,SAAW,GAC5G8+K,EAAQ+iB,eAAe,CAACz9K,GAAQ,yBAA0BigJ,GAAQn/J,KAAK,MACzE,CAOF,GAAI61J,GAAS2lC,wBACX2I,GAAiBpL,GAAMnE,WAAWuP,KAAmBA,EAAgBA,EAAcW,IAE/EX,IAAoC,IAAlBA,GAA2Be,GAAgBJ,EAAUpmK,MAAO,CAEhF,MAAMymK,EAAY1H,GAAkBD,GAAkB4H,GAAQhiL,KAAKo6K,GAE/D2H,GACFvrB,EAAQ75J,IAAI09K,EAAgB0H,EAEhC,CAGF,OAAOL,CACR,EC1CD,GAFwD,qBAAnBhiK,gBAEG,SAAUtR,GAChD,OAAO,IAAI2iF,SAAQ,SAA4B24B,EAASu2B,GACtD,MAAMgiC,EAAUC,GAAc9zK,GAC9B,IAAI+zK,EAAcF,EAAQzjL,KAC1B,MAAM4jL,EAAiBnH,GAAa3sM,KAAK2zM,EAAQzrB,SAASpiF,YAC1D,IACIiuG,EACAC,EAAiBC,EACjBC,EAAaC,GAHb,aAACnjK,EAAY,iBAAE0hK,EAAgB,mBAAEC,GAAsBgB,EAK3D,SAAS7oF,IACPopF,GAAeA,IACfC,GAAiBA,IAEjBR,EAAQX,aAAeW,EAAQX,YAAYoB,YAAYL,GAEvDJ,EAAQ7sB,QAAU6sB,EAAQ7sB,OAAOnmJ,oBAAoB,QAASozK,EAChE,CAEA,IAAIz4K,EAAU,IAAI8V,eAOlB,SAASwxE,IACP,IAAKtnF,EACH,OAGF,MAAM+4K,EAAkB1H,GAAa3sM,KACnC,0BAA2Bs7B,GAAWA,EAAQg5K,yBAahDtF,IAAO,SAAkBpmM,GACvBwyI,EAAQxyI,GACRkiH,GACF,IAAG,SAAiBjvF,GAClB81I,EAAO91I,GACPivF,GACF,GAfiB,CACf56F,KAHoB8gB,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxC1V,EAAQU,SAA/BV,EAAQY,aAGRqV,OAAQjW,EAAQiW,OAChButI,WAAYxjJ,EAAQwjJ,WACpBoJ,QAASmsB,EACTv0K,SACAxE,YAYFA,EAAU,IACZ,CAlCAA,EAAQkW,KAAKmiK,EAAQp4K,OAAOtO,cAAe0mL,EAAQ3mK,KAAK,GAGxD1R,EAAQ21I,QAAU0iC,EAAQ1iC,QAiCtB,cAAe31I,EAEjBA,EAAQsnF,UAAYA,EAGpBtnF,EAAQ+V,mBAAqB,WACtB/V,GAAkC,IAAvBA,EAAQgW,aAQD,IAAnBhW,EAAQiW,QAAkBjW,EAAQi5K,aAAwD,IAAzCj5K,EAAQi5K,YAAY/lM,QAAQ,WAKjFysC,WAAW2nE,EACb,EAIFtnF,EAAQk5K,QAAU,WACXl5K,IAILq2I,EAAO,IAAIw1B,GAAW,kBAAmBA,GAAWsN,aAAc30K,EAAQxE,IAG1EA,EAAU,KACZ,EAGAA,EAAQ81I,QAAU,WAGhBO,EAAO,IAAIw1B,GAAW,gBAAiBA,GAAWuN,YAAa50K,EAAQxE,IAGvEA,EAAU,IACZ,EAGAA,EAAQq5K,UAAY,WAClB,IAAIC,EAAsBjB,EAAQ1iC,QAAU,cAAgB0iC,EAAQ1iC,QAAU,cAAgB,mBAC9F,MAAMw5B,EAAekJ,EAAQlJ,cAAgBC,GACzCiJ,EAAQiB,sBACVA,EAAsBjB,EAAQiB,qBAEhCjjC,EAAO,IAAIw1B,GACTyN,EACAnK,EAAad,oBAAsBxC,GAAW0N,UAAY1N,GAAWsN,aACrE30K,EACAxE,IAGFA,EAAU,IACZ,OAGgBv5B,IAAhB8xM,GAA6BC,EAAe7I,eAAe,MAGvD,qBAAsB3vK,GACxB+rK,GAAM55K,QAAQqmL,EAAetgM,UAAU,SAA0BpE,EAAKmZ,GACpE+S,EAAQw5K,iBAAiBvsL,EAAKnZ,EAChC,IAIGi4L,GAAMtE,YAAY4Q,EAAQnB,mBAC7Bl3K,EAAQk3K,kBAAoBmB,EAAQnB,iBAIlCxhK,GAAiC,SAAjBA,IAClB1V,EAAQ0V,aAAe2iK,EAAQ3iK,cAI7B2hK,KACAsB,EAAmBE,GAAiBtE,GAAqB8C,GAAoB,GAC/Er3K,EAAQoF,iBAAiB,WAAYuzK,IAInCvB,GAAoBp3K,EAAQy5K,UAC5Bf,EAAiBE,GAAerE,GAAqB6C,GAEvDp3K,EAAQy5K,OAAOr0K,iBAAiB,WAAYszK,GAE5C14K,EAAQy5K,OAAOr0K,iBAAiB,UAAWwzK,KAGzCP,EAAQX,aAAeW,EAAQ7sB,UAGjCitB,EAAarnB,IACNpxJ,IAGLq2I,GAAQ+a,GAAUA,EAAOl/J,KAAO,IAAIshL,GAAc,KAAMhvK,EAAQxE,GAAWoxJ,GAC3EpxJ,EAAQyqJ,QACRzqJ,EAAU,KAAI,EAGhBq4K,EAAQX,aAAeW,EAAQX,YAAY1oB,UAAUypB,GACjDJ,EAAQ7sB,SACV6sB,EAAQ7sB,OAAOgB,QAAUisB,IAAeJ,EAAQ7sB,OAAOpmJ,iBAAiB,QAASqzK,KAIrF,MAAM1e,ECvLK,SAAuBroJ,GACpC,MAAMm1E,EAAQ,4BAA4BigD,KAAKp1H,GAC/C,OAAOm1E,GAASA,EAAM,IAAM,EAC9B,CDoLqB6yF,CAAcrB,EAAQ3mK,KAEnCqoJ,IAAsD,IAA1ClxB,GAASylC,UAAUp7L,QAAQ6mL,GACzC1jB,EAAO,IAAIw1B,GAAW,wBAA0B9R,EAAW,IAAK8R,GAAW8H,gBAAiBnvK,IAM9FxE,EAAQmW,KAAKoiK,GAAe,KAC9B,GACF,EEvJA,GA1CuBoB,CAAChf,EAAShlB,KAC/B,IAEI6W,EAFA8B,EAAa,IAAIjD,gBAIrB,MAAM6tB,EAAU,SAAU9nB,GACxB,IAAK5E,EAAS,CACZA,GAAU,EACVssB,IACA,MAAMv4K,EAAM6wJ,aAAkB/qL,MAAQ+qL,EAAS18K,KAAK0sL,OACpD9S,EAAW7D,MAAMlqJ,aAAesrK,GAAatrK,EAAM,IAAIizK,GAAcjzK,aAAel6B,MAAQk6B,EAAI5R,QAAU4R,GAC5G,CACF,EAEA,IAAI6zK,EAAQz+B,GAAWh2H,YAAW,KAChCu5J,EAAQ,IAAIrN,GAAW,WAAWl2B,mBAA0Bk2B,GAAW0N,WAAW,GACjF5jC,GAEH,MAAMmjC,EAAcA,KACdne,IACFyZ,GAAS18E,aAAa08E,GACtBA,EAAQ,KACRzZ,EAAQxoK,SAAQq5J,IACdA,IACCA,EAAOnmJ,oBAAsBmmJ,EAAOnmJ,oBAAoB,QAAS6zK,GAAW1tB,EAAOstB,YAAYI,GAAS,IAE3Gve,EAAU,KACZ,EAGFA,EAAQxoK,SAASq5J,GAAWA,GAAUA,EAAOpmJ,kBAAoBomJ,EAAOpmJ,iBAAiB,QAAS8zK,KAElG,MAAM,OAAC1tB,GAAU8C,EAIjB,OAFA9C,EAAOstB,YAAcA,EAEd,CAACttB,EAAQ,KACd4oB,GAAS18E,aAAa08E,GACtBA,EAAQ,IAAI,EACZ,ECzCSwF,GAAc,UAAWC,EAAOC,GAC3C,IAAIxnM,EAAMunM,EAAMnoM,WAEhB,IAAKooM,GAAaxnM,EAAMwnM,EAEtB,kBADMD,GAIR,IACI1mM,EADA0lB,EAAM,EAGV,KAAOA,EAAMvmB,GACXa,EAAM0lB,EAAMihL,QACND,EAAMprM,MAAMoqB,EAAK1lB,GACvB0lB,EAAM1lB,CAEV,EAQa4mM,GAAcA,CAACvmC,EAAQsmC,EAAWE,EAAYC,EAAUnzM,KACnE,MAAMslC,EAPiBm+I,gBAAiB2vB,EAAUJ,EAAWhzM,GAC7D,UAAW,MAAM+yM,KAASK,QACjBN,GAAY3lL,YAAYC,OAAO2lL,GAASA,QAAe/yM,EAAOgI,OAAO+qM,IAAUC,EAE1F,CAGmBK,CAAU3mC,EAAQsmC,EAAWhzM,GAE9C,IACI0oH,EADA51F,EAAQ,EAERwgL,EAAavvM,IACV2kH,IACHA,GAAO,EACPyqF,GAAYA,EAASpvM,GACvB,EAGF,OAAO,IAAIwvM,eAAe,CACxB,UAAMC,CAAKhsB,GACT,IACE,MAAM,KAAC9+D,EAAI,MAAEliH,SAAe8+B,EAASxgB,OAErC,GAAI4jG,EAGF,OAFD4qF,SACC9rB,EAAWisB,QAIb,IAAIjoM,EAAMhF,EAAMoE,WAChB,GAAIsoM,EAAY,CACd,IAAIQ,EAAc5gL,GAAStnB,EAC3B0nM,EAAWQ,EACb,CACAlsB,EAAWmsB,QAAQ,IAAIn2M,WAAWgJ,GACpC,CAAE,MAAOizB,GAEP,MADA65K,EAAU75K,GACJA,CACR,CACF,EACA6wJ,OAAOgQ,IACLgZ,EAAUhZ,GACHh1J,EAASyjF,WAEjB,CACD6qF,cAAe,GACf,ECvDEC,GAAoC,oBAAV/xG,OAA2C,oBAAZqxF,SAA8C,oBAAb2gB,SAC1FC,GAA4BF,IAA8C,oBAAnBN,eAGvDS,GAAaH,KAA4C,oBAAhB3nC,aACzCu6B,GAA0C,IAAIv6B,YAAjC1hK,GAAQi8L,GAAQzmM,OAAOwK,IACtCi5K,SAAe,IAAIjmL,iBAAiB,IAAIs2M,SAAStpM,GAAKypM,gBADtD,IAAExN,GAIN,MAAM7gK,GAAO,SAACvc,GACZ,IAAI,QAAAM,EAAAjqB,UAAA3B,OADe6rB,EAAI,IAAAjmB,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAAnqB,UAAAmqB,GAErB,QAASR,KAAMO,EACjB,CAAE,MAAO7lB,IACP,OAAO,CACT,CACF,EAEMmwM,GAAwBH,IAA6BnuK,IAAK,KAC9D,IAAIuuK,GAAiB,EAErB,MAAMC,EAAiB,IAAIjhB,QAAQpxB,GAAShyH,OAAQ,CAClDoM,KAAM,IAAIo3J,eACVp6K,OAAQ,OACR,UAAIk7K,GAEF,OADAF,GAAiB,EACV,MACT,IACCruB,QAAQjvC,IAAI,gBAEf,OAAOs9D,IAAmBC,CAAc,IAKpCE,GAAyBP,IAC7BnuK,IAAK,IAAMq/J,GAAM1D,iBAAiB,IAAIuS,SAAS,IAAI33J,QAG/Co4J,GAAY,CAChB7nC,OAAQ4nC,IAA0B,CAAEtiM,GAAQA,EAAImqC,OAG7B,IAAEnqC,GAAvB6hM,KAAuB7hM,GAOpB,IAAI8hM,SANL,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAUzoL,SAAQD,KAC3DmpL,GAAUnpL,KAAUmpL,GAAUnpL,GAAQ65K,GAAMnE,WAAW9uL,GAAIoZ,IAAUpZ,GAAQA,EAAIoZ,KAChF,CAAC1O,EAAGghB,KACF,MAAM,IAAIqnK,GAAW,kBAAkB35K,sBAA0B25K,GAAWyP,gBAAiB92K,EAAO,EACpG,KAIR,MA0BM+2K,GAAoBhxB,MAAOqC,EAAS3pI,KACxC,MAAMp+C,EAASknM,GAAMT,eAAe1e,EAAQ4uB,oBAE5C,OAAiB,MAAV32M,EA7Ba0lL,UACR,MAARtnI,EACK,EAGN8oJ,GAAM7D,OAAOjlJ,GACPA,EAAKzyC,KAGXu7L,GAAMP,oBAAoBvoJ,UACb,IAAIg3I,QAAQh3I,GAAM83J,eAAerpM,WAG9Cq6L,GAAMlC,kBAAkB5mJ,IAAS8oJ,GAAMrE,cAAczkJ,GAC/CA,EAAKvxC,YAGXq6L,GAAM3D,kBAAkBnlJ,KACzBA,GAAc,IAGb8oJ,GAAMpE,SAAS1kJ,UACF63J,GAAW73J,IAAOvxC,gBADlC,GAQwB+pM,CAAcx4J,GAAQp+C,CAAM,EAGtD,GAAe81M,IAAoB,OAACpwB,IAClC,IAAI,IACF74I,EAAG,OACHzR,EAAM,KACNrL,EAAI,OACJ42J,EAAM,YACNksB,EAAW,QACX/hC,EAAO,mBACP0hC,EAAkB,iBAClBD,EAAgB,aAChB1hK,EAAY,QACZk3I,EAAO,gBACPsqB,EAAkB,cAAa,aAC/BwE,GACEpD,GAAc9zK,GAElBkR,EAAeA,GAAgBA,EAAe,IAAItgB,cAAgB,OAElE,IAGIm9I,EAAUvyI,GAHT27K,EAAgBC,GAAgBpwB,GAAUksB,GAAe/hC,EAC5DgkC,GAAe,CAACnuB,EAAQksB,GAAc/hC,GAAW,GAInD,MAAMskC,EAAWA,MACd1nC,GAAY5yH,YAAW,KACtBg8J,GAAkBA,EAAe7C,aAAa,IAGhDvmC,GAAW,CAAI,EAGjB,IAAIspC,EAEJ,IACE,GACEzE,GAAoB4D,IAAoC,QAAX/6K,GAA+B,SAAXA,GACG,KAAnE47K,QAA6BN,GAAkB3uB,EAASh4J,IACzD,CACA,IAMI4gB,EANAsmK,EAAW,IAAI7hB,QAAQvoJ,EAAK,CAC9BzR,OAAQ,OACRgjB,KAAMruB,EACNumL,OAAQ,SASV,GAJIpP,GAAMnC,WAAWh1K,KAAU4gB,EAAoBsmK,EAASlvB,QAAQhgK,IAAI,kBACtEggK,EAAQ+iB,eAAen6J,GAGrBsmK,EAAS74J,KAAM,CACjB,MAAO+2J,EAAYjzF,GAASkuF,GAC1B4G,EACAtH,GAAqBY,GAAeiC,KAGtCxiL,EAAOmlL,GAAY+B,EAAS74J,KA3GT,MA2GmC+2J,EAAYjzF,EAAO+zF,GAC3E,CACF,CAEK/O,GAAMpE,SAASuP,KAClBA,EAAkBA,EAAkB,UAAY,QAGlDl3K,EAAU,IAAIi6J,QAAQvoJ,EAAK,IACtBgqK,EACHlwB,OAAQmwB,EACR17K,OAAQA,EAAOtO,cACfi7J,QAASA,EAAQpiF,YAAYtyF,SAC7B+qC,KAAMruB,EACNumL,OAAQ,OACRY,YAAa7E,IAGf,IAAIx2K,QAAiBkoE,MAAM5oE,GAE3B,MAAMg8K,EAAmBZ,KAA4C,WAAjB1lK,GAA8C,aAAjBA,GAEjF,GAAI0lK,KAA2B/D,GAAsB2E,GAAmB,CACtE,MAAMt8K,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAWvN,SAAQ8X,IAC1CvK,EAAQuK,GAAQvJ,EAASuJ,EAAK,IAGhC,MAAMgyK,EAAwBlQ,GAAMT,eAAe5qK,EAASksJ,QAAQhgK,IAAI,oBAEjEotL,EAAYjzF,GAASswF,GAAsBpC,GAChDgH,EACA1H,GAAqBY,GAAekC,IAAqB,KACtD,GAEL32K,EAAW,IAAIk6K,SACbb,GAAYr5K,EAASuiB,KAhJF,MAgJ4B+2J,GAAY,KACzDjzF,GAASA,IACTi1F,GAAoB/B,GAAU,GAC7Ba,IACHp7K,EAEJ,CAEAgW,EAAeA,GAAgB,OAE/B,IAAIwmK,QAAqBb,GAAUtP,GAAMtD,QAAQ4S,GAAW3lK,IAAiB,QAAQhV,EAAU8D,GAM/F,OAJCw3K,GAAoB/B,IAErB2B,GAAeA,UAEF,IAAIz0F,SAAQ,CAAC24B,EAASu2B,KACjCq9B,GAAO5zD,EAASu2B,EAAQ,CACtBzhJ,KAAMsnL,EACNtvB,QAASykB,GAAa3sM,KAAKg8B,EAASksJ,SACpC32I,OAAQvV,EAASuV,OACjButI,WAAY9iJ,EAAS8iJ,WACrBh/I,SACAxE,WACA,GAEN,CAAE,MAAOO,GAGP,GAFA05K,IAEI15K,GAAoB,cAAbA,EAAIt6B,MAAwB,SAASymC,KAAKnM,EAAI5R,SACvD,MAAMjpB,OAAOG,OACX,IAAIgmM,GAAW,gBAAiBA,GAAWuN,YAAa50K,EAAQxE,GAChE,CACEmsK,MAAO5rK,EAAI4rK,OAAS5rK,IAK1B,MAAMsrK,GAAWnnM,KAAK67B,EAAKA,GAAOA,EAAIttB,KAAMuxB,EAAQxE,EACtD,CACD,GC5NKm8K,GAAgB,CACpBC,KCNF,KDOE7mK,IAAK8mK,GACLzzG,MAAO0zG,IAGTvQ,GAAM55K,QAAQgqL,IAAe,CAAChsL,EAAI7iB,KAChC,GAAI6iB,EAAI,CACN,IACEzqB,OAAOgnB,eAAeyD,EAAI,OAAQ,CAAC7iB,SACrC,CAAE,MAAOzC,IACP,CAEFnF,OAAOgnB,eAAeyD,EAAI,cAAe,CAAC7iB,SAC5C,KAGF,MAAMivM,GAAgBnb,GAAW,KAAKA,IAEhCob,GAAoBnN,GAAYtD,GAAMnE,WAAWyH,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,GACeoN,IACXA,EAAW1Q,GAAMrhM,QAAQ+xM,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAAC53M,GAAU43M,EACjB,IAAIC,EACArN,EAEJ,MAAMsN,EAAkB,CAAC,EAEzB,IAAK,IAAI1yM,EAAI,EAAGA,EAAIpF,EAAQoF,IAAK,CAE/B,IAAIk2B,EAIJ,GALAu8K,EAAgBD,EAASxyM,GAGzBolM,EAAUqN,GAELF,GAAiBE,KACpBrN,EAAU8M,IAAeh8K,EAAKrxB,OAAO4tM,IAAgBtnL,oBAErC3uB,IAAZ4oM,GACF,MAAM,IAAIxD,GAAW,oBAAoB1rK,MAI7C,GAAIkvK,EACF,MAGFsN,EAAgBx8K,GAAM,IAAMl2B,GAAKolM,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAMuN,EAAUl3M,OAAOg4J,QAAQi/C,GAC5BlqL,KAAIC,IAAA,IAAEyN,EAAImoE,GAAM51E,EAAA,MAAK,WAAWyN,OACpB,IAAVmoE,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAIxmF,EAAIjd,EACL+3M,EAAQ/3M,OAAS,EAAI,YAAc+3M,EAAQnqL,IAAI8pL,IAAcvpM,KAAK,MAAQ,IAAMupM,GAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAI/Q,GACR,wDAA0D/pL,EAC1D,kBAEJ,CAEA,OAAOutL,CAAO,EE3DlB,SAASwN,GAA6Br4K,GAKpC,GAJIA,EAAOkzK,aACTlzK,EAAOkzK,YAAYoF,mBAGjBt4K,EAAOgnJ,QAAUhnJ,EAAOgnJ,OAAOgB,QACjC,MAAM,IAAIgnB,GAAc,KAAMhvK,EAElC,CASe,SAASu4K,GAAgBv4K,GACtCq4K,GAA6Br4K,GAE7BA,EAAOooJ,QAAUykB,GAAa3sM,KAAK8/B,EAAOooJ,SAG1CpoJ,EAAO5P,KAAOs1C,GAAc19D,KAC1Bg4B,EACAA,EAAO8qK,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASp8L,QAAQsxB,EAAOvE,SAC1CuE,EAAOooJ,QAAQ+iB,eAAe,qCAAqC,GAKrE,OAFgB8M,GAAoBj4K,EAAO6qK,SAAWH,GAASG,QAExDA,CAAQ7qK,GAAQ+mF,MAAK,SAA6B7qF,GAYvD,OAXAm8K,GAA6Br4K,GAG7B9D,EAAS9L,KAAOs1C,GAAc19D,KAC5Bg4B,EACAA,EAAO4rK,kBACP1vK,GAGFA,EAASksJ,QAAUykB,GAAa3sM,KAAKg8B,EAASksJ,SAEvClsJ,CACT,IAAG,SAA4B0gK,GAe7B,OAdKkS,GAASlS,KACZyb,GAA6Br4K,GAGzB48J,GAAUA,EAAO1gK,WACnB0gK,EAAO1gK,SAAS9L,KAAOs1C,GAAc19D,KACnCg4B,EACAA,EAAO4rK,kBACPhP,EAAO1gK,UAET0gK,EAAO1gK,SAASksJ,QAAUykB,GAAa3sM,KAAK08L,EAAO1gK,SAASksJ,WAIzDzlE,QAAQkvD,OAAO+qB,EACxB,GACF,CChFO,MAAM58B,GAAU,QCKjBw4C,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU7qL,SAAQ,CAACD,EAAMjoB,KAC7E+yM,GAAW9qL,GAAQ,SAAmBo1K,GACpC,cAAcA,IAAUp1K,GAAQ,KAAOjoB,EAAI,EAAI,KAAO,KAAOioB,CAC/D,CAAC,IAGH,MAAM+qL,GAAqB,CAAC,EAW5BD,GAAW7N,aAAe,SAAsB+N,EAAWp9K,EAASnR,GAClE,SAASwuL,EAAcC,EAAKlwL,GAC1B,MAAO,uCAAoDkwL,EAAM,IAAOlwL,GAAQyB,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAACrhB,EAAO8vM,EAAKn0B,KAClB,IAAkB,IAAdi0B,EACF,MAAM,IAAIrR,GACRsR,EAAcC,EAAK,qBAAuBt9K,EAAU,OAASA,EAAU,KACvE+rK,GAAWwR,gBAef,OAXIv9K,IAAYm9K,GAAmBG,KACjCH,GAAmBG,IAAO,EAE1B7kL,QAAQ04C,KACNksI,EACEC,EACA,+BAAiCt9K,EAAU,8CAK1Co9K,GAAYA,EAAU5vM,EAAO8vM,EAAKn0B,EAAY,CAEzD,EAmCA,UACEq0B,cAxBF,SAAuB59K,EAAS7N,EAAQ0rL,GACtC,GAAuB,kBAAZ79K,EACT,MAAM,IAAImsK,GAAW,4BAA6BA,GAAW2R,sBAE/D,MAAM9iK,EAAOh1C,OAAOg1C,KAAKhb,GACzB,IAAIz1B,EAAIywC,EAAK71C,OACb,KAAOoF,KAAM,GAAG,CACd,MAAMmzM,EAAM1iK,EAAKzwC,GACXizM,EAAYrrL,EAAOurL,GACzB,GAAIF,EAAJ,CACE,MAAM5vM,EAAQoyB,EAAQ09K,GAChB3vL,OAAmBhnB,IAAV6G,GAAuB4vM,EAAU5vM,EAAO8vM,EAAK19K,GAC5D,IAAe,IAAXjS,EACF,MAAM,IAAIo+K,GAAW,UAAYuR,EAAM,YAAc3vL,EAAQo+K,GAAW2R,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAI1R,GAAW,kBAAoBuR,EAAKvR,GAAW4R,eAE7D,CACF,EAIET,eC9EIA,GAAaE,GAAUF,WAS7B,MAAMU,GACJ34M,WAAAA,CAAY44M,GACVjpM,KAAKw6L,SAAWyO,EAChBjpM,KAAKkpM,aAAe,CAClB59K,QAAS,IAAI69K,GACbn9K,SAAU,IAAIm9K,GAElB,CAUA,aAAM79K,CAAQ89K,EAAat5K,GACzB,IACE,aAAa9vB,KAAKonM,SAASgC,EAAat5K,EAC1C,CAAE,MAAOjE,GACP,GAAIA,aAAel6B,MAAO,CACxB,IAAI03M,EAEJ13M,MAAMylM,kBAAoBzlM,MAAMylM,kBAAkBiS,EAAQ,CAAC,GAAMA,EAAQ,IAAI13M,MAG7E,MAAMg3B,EAAQ0gL,EAAM1gL,MAAQ0gL,EAAM1gL,MAAMpnB,QAAQ,QAAS,IAAM,GAC/D,IACOsqB,EAAIlD,MAGEA,IAAUvuB,OAAOyxB,EAAIlD,OAAOijJ,SAASjjJ,EAAMpnB,QAAQ,YAAa,OACzEsqB,EAAIlD,OAAS,KAAOA,GAHpBkD,EAAIlD,MAAQA,CAKhB,CAAE,MAAOxyB,IACP,CAEJ,CAEA,MAAM01B,CACR,CACF,CAEAu7K,QAAAA,CAASgC,EAAat5K,GAGO,kBAAhBs5K,GACTt5K,EAASA,GAAU,CAAC,GACbkN,IAAMosK,EAEbt5K,EAASs5K,GAAe,CAAC,EAG3Bt5K,EAAS+xK,GAAY7hM,KAAKw6L,SAAU1qK,GAEpC,MAAM,aAAC2qK,EAAY,iBAAE6H,EAAgB,QAAEpqB,GAAWpoJ,OAE7B/9B,IAAjB0oM,GACF+N,GAAUI,cAAcnO,EAAc,CACpChB,kBAAmB6O,GAAW7N,aAAa6N,GAAWgB,SACtD5P,kBAAmB4O,GAAW7N,aAAa6N,GAAWgB,SACtD3P,oBAAqB2O,GAAW7N,aAAa6N,GAAWgB,WACvD,GAGmB,MAApBhH,IACEjL,GAAMnE,WAAWoP,GACnBxyK,EAAOwyK,iBAAmB,CACxBnpL,UAAWmpL,GAGbkG,GAAUI,cAActG,EAAkB,CACxClwM,OAAQk2M,GAAWiB,SACnBpwL,UAAWmvL,GAAWiB,WACrB,IAKPz5K,EAAOvE,QAAUuE,EAAOvE,QAAUvrB,KAAKw6L,SAASjvK,QAAU,OAAO7K,cAGjE,IAAI8oL,EAAiBtxB,GAAWmf,GAAM9B,MACpCrd,EAAQikB,OACRjkB,EAAQpoJ,EAAOvE,SAGjB2sJ,GAAWmf,GAAM55K,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjD8N,WACQ2sJ,EAAQ3sJ,EAAO,IAI1BuE,EAAOooJ,QAAUykB,GAAaliL,OAAO+uL,EAAgBtxB,GAGrD,MAAMuxB,EAA0B,GAChC,IAAIC,GAAiC,EACrC1pM,KAAKkpM,aAAa59K,QAAQ7N,SAAQ,SAAoCksL,GACjC,oBAAxBA,EAAYpQ,UAA0D,IAAhCoQ,EAAYpQ,QAAQzpK,KAIrE45K,EAAiCA,GAAkCC,EAAYrQ,YAE/EmQ,EAAwBn1I,QAAQq1I,EAAYvQ,UAAWuQ,EAAYtQ,UACrE,IAEA,MAAMuQ,EAA2B,GAKjC,IAAIloC,EAJJ1hK,KAAKkpM,aAAal9K,SAASvO,SAAQ,SAAkCksL,GACnEC,EAAyBp0M,KAAKm0M,EAAYvQ,UAAWuQ,EAAYtQ,SACnE,IAGA,IACIz7L,EADArI,EAAI,EAGR,IAAKm0M,EAAgC,CACnC,MAAMG,EAAQ,CAACxB,GAAgB9wM,KAAKyI,WAAOjO,GAO3C,IANA83M,EAAMv1I,QAAQp4C,MAAM2tL,EAAOJ,GAC3BI,EAAMr0M,KAAK0mB,MAAM2tL,EAAOD,GACxBhsM,EAAMisM,EAAM15M,OAEZuxK,EAAUjvD,QAAQ24B,QAAQt7G,GAEnBv6B,EAAIqI,GACT8jK,EAAUA,EAAQ7qD,KAAKgzF,EAAMt0M,KAAMs0M,EAAMt0M,MAG3C,OAAOmsK,CACT,CAEA9jK,EAAM6rM,EAAwBt5M,OAE9B,IAAIizM,EAAYtzK,EAIhB,IAFAv6B,EAAI,EAEGA,EAAIqI,GAAK,CACd,MAAMksM,EAAcL,EAAwBl0M,KACtCw0M,EAAaN,EAAwBl0M,KAC3C,IACE6tM,EAAY0G,EAAY1G,EAC1B,CAAE,MAAOzlL,GACPosL,EAAWjyM,KAAKkI,KAAM2d,GACtB,KACF,CACF,CAEA,IACE+jJ,EAAU2mC,GAAgBvwM,KAAKkI,KAAMojM,EACvC,CAAE,MAAOzlL,GACP,OAAO80F,QAAQkvD,OAAOhkJ,EACxB,CAKA,IAHApoB,EAAI,EACJqI,EAAMgsM,EAAyBz5M,OAExBoF,EAAIqI,GACT8jK,EAAUA,EAAQ7qD,KAAK+yF,EAAyBr0M,KAAMq0M,EAAyBr0M,MAGjF,OAAOmsK,CACT,CAEAsoC,MAAAA,CAAOl6K,GAGL,OAAOipK,GADUwI,IADjBzxK,EAAS+xK,GAAY7hM,KAAKw6L,SAAU1qK,IACE0xK,QAAS1xK,EAAOkN,KAC5BlN,EAAOtE,OAAQsE,EAAOwyK,iBAClD,EAIFjL,GAAM55K,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B8N,GAE/Ey9K,GAAM93M,UAAUq6B,GAAU,SAASyR,EAAKlN,GACtC,OAAO9vB,KAAKsrB,QAAQu2K,GAAY/xK,GAAU,CAAC,EAAG,CAC5CvE,SACAyR,MACA9c,MAAO4P,GAAU,CAAC,GAAG5P,OAEzB,CACF,IAEAm3K,GAAM55K,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B8N,GAGrE,SAAS0+K,EAAmBC,GAC1B,OAAO,SAAoBltK,EAAK9c,EAAM4P,GACpC,OAAO9vB,KAAKsrB,QAAQu2K,GAAY/xK,GAAU,CAAC,EAAG,CAC5CvE,SACA2sJ,QAASgyB,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLltK,MACA9c,SAEJ,CACF,CAEA8oL,GAAM93M,UAAUq6B,GAAU0+K,IAE1BjB,GAAM93M,UAAUq6B,EAAS,QAAU0+K,GAAmB,EACxD,IAEA,YCxNA,MAAME,GACJ95M,WAAAA,CAAY+5M,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAIv6M,UAAU,gCAGtB,IAAIw6M,EAEJrqM,KAAK0hK,QAAU,IAAIjvD,SAAQ,SAAyB24B,GAClDi/D,EAAiBj/D,CACnB,IAEA,MAAMwyB,EAAQ59J,KAGdA,KAAK0hK,QAAQ7qD,MAAK6lE,IAChB,IAAK9e,EAAM0sC,WAAY,OAEvB,IAAI/0M,EAAIqoK,EAAM0sC,WAAWn6M,OAEzB,KAAOoF,KAAM,GACXqoK,EAAM0sC,WAAW/0M,GAAGmnL,GAEtB9e,EAAM0sC,WAAa,IAAI,IAIzBtqM,KAAK0hK,QAAQ7qD,KAAO0zF,IAClB,IAAIC,EAEJ,MAAM9oC,EAAU,IAAIjvD,SAAQ24B,IAC1BwyB,EAAM0c,UAAUlvC,GAChBo/D,EAAWp/D,CAAO,IACjBv0B,KAAK0zF,GAMR,OAJA7oC,EAAQgb,OAAS,WACf9e,EAAMwmC,YAAYoG,EACpB,EAEO9oC,CAAO,EAGhB0oC,GAAS,SAAgBnwL,EAAS6V,EAAQxE,GACpCsyI,EAAM8uB,SAKV9uB,EAAM8uB,OAAS,IAAIoS,GAAc7kL,EAAS6V,EAAQxE,GAClD++K,EAAezsC,EAAM8uB,QACvB,GACF,CAKA0b,gBAAAA,GACE,GAAIpoM,KAAK0sL,OACP,MAAM1sL,KAAK0sL,MAEf,CAMApS,SAAAA,CAAU9pJ,GACJxwB,KAAK0sL,OACPl8J,EAASxwB,KAAK0sL,QAIZ1sL,KAAKsqM,WACPtqM,KAAKsqM,WAAW90M,KAAKg7B,GAErBxwB,KAAKsqM,WAAa,CAAC95K,EAEvB,CAMA4zK,WAAAA,CAAY5zK,GACV,IAAKxwB,KAAKsqM,WACR,OAEF,MAAM9pM,EAAQR,KAAKsqM,WAAW9rM,QAAQgyB,IACvB,IAAXhwB,GACFR,KAAKsqM,WAAW/vL,OAAO/Z,EAAO,EAElC,CAMA,aAAO9E,GACL,IAAIghL,EACJ,MAAM9e,EAAQ,IAAIusC,IAAY,SAAkB1pM,GAC9Ci8K,EAASj8K,CACX,IACA,MAAO,CACLm9J,QACA8e,SAEJ,EAGF,YCxHA,MAAM+tB,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZ7nD,GAAI,IACJ8nD,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjCv9M,OAAOg4J,QAAQyhD,IAAgBhtL,SAAQO,IAAkB,IAAhBzF,EAAK3f,GAAMolB,EAClDysL,GAAe7xM,GAAS2f,CAAG,IAG7B,YCxBA,MAAMi2L,GAnBN,SAASC,EAAeC,GACtB,MAAMhqH,EAAU,IAAIskH,GAAM0F,GACpB1lE,EAAWzxI,GAAKyxM,GAAM93M,UAAUo6B,QAASo5D,GAa/C,OAVA2yG,GAAM5wD,OAAOuC,EAAUggE,GAAM93M,UAAWwzF,EAAS,CAACovG,YAAY,IAG9DuD,GAAM5wD,OAAOuC,EAAUtkD,EAAS,KAAM,CAACovG,YAAY,IAGnD9qD,EAAS/3I,OAAS,SAAgBg4M,GAChC,OAAOwF,EAAe5M,GAAY6M,EAAezF,GACnD,EAEOjgE,CACT,CAGcylE,CAAejU,IAG7BgU,GAAMxF,MAAQA,GAGdwF,GAAM1P,cAAgBA,GACtB0P,GAAMrE,YAAcA,GACpBqE,GAAM5P,SAAWA,GACjB4P,GAAM1+C,QAAUA,GAChB0+C,GAAM5V,WAAaA,GAGnB4V,GAAMrX,WAAaA,GAGnBqX,GAAMG,OAASH,GAAM1P,cAGrB0P,GAAMluC,IAAM,SAAaC,GACvB,OAAO9tD,QAAQ6tD,IAAIC,EACrB,EAEAiuC,GAAMI,OC9CS,SAAgBljL,GAC7B,OAAO,SAAcluB,GACnB,OAAOkuB,EAASxP,MAAM,KAAM1e,EAC9B,CACF,ED6CAgxM,GAAMK,aE7DS,SAAsBltK,GACnC,OAAO01J,GAAMjE,SAASzxJ,KAAsC,IAAzBA,EAAQktK,YAC7C,EF8DAL,GAAM3M,YAAcA,GAEpB2M,GAAM7R,aAAeA,GAErB6R,GAAMM,WAAalc,GAASoI,GAAe3D,GAAMjD,WAAWxB,GAAS,IAAIhS,SAASgS,GAASA,GAE3F4b,GAAMO,WAAahH,GAEnByG,GAAM/D,eAAiBA,GAEvB+D,GAAMz0L,QAAUy0L,GAGhB,YG1EaQ,GAAY,oCAAoCztM,QAAQ,OAAQ,IAgBtE,MAAM0tM,GACT5+M,WAAAA,CAAY6+M,GAA0D,IAA3CC,EAAQr9M,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGk9M,GAAWR,EAAK18M,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGs9M,GACrDpvM,KAAKmvM,SAAWA,EAChBnvM,KAAKwuM,MAAQA,EACTU,IACAlvM,KAAKkvM,cAAgBA,EACrBlvM,KAAKmvM,SAAWD,EAAcC,UAAYA,EAElD,EASG,MAAME,WAAsB19M,MAC/BtB,WAAAA,CAAY4tB,EAAO5e,GACf6a,MAAM7a,GACNW,KAAKie,MAAQA,EACbje,KAAKzO,KAAO,eAChB,EAMG,MAAM+9M,GAAqB,CAAC,EC7CnC,IAAI10F,GAAwC,SAAU83E,EAAS6c,EAAYv5F,EAAG7qF,GAE1E,OAAO,IAAK6qF,IAAMA,EAAIvD,WAAU,SAAU24B,EAASu2B,GAC/C,SAASy3B,EAAUxgM,GAAS,IAAM42M,EAAKrkL,EAAUjU,KAAKte,GAAS,CAAE,MAAOzC,IAAKwrK,EAAOxrK,GAAI,CAAE,CAC1F,SAASkjM,EAASzgM,GAAS,IAAM42M,EAAKrkL,EAAiB,MAAEvyB,GAAS,CAAE,MAAOzC,IAAKwrK,EAAOxrK,GAAI,CAAE,CAC7F,SAASq5M,EAAKz2L,GAJlB,IAAengB,EAIamgB,EAAO+hG,KAAOswB,EAAQryH,EAAOngB,QAJ1CA,EAIyDmgB,EAAOngB,MAJhDA,aAAiBo9G,EAAIp9G,EAAQ,IAAIo9G,GAAE,SAAUo1B,GAAWA,EAAQxyI,EAAQ,KAIjBi+G,KAAKuiF,EAAWC,EAAW,CAC7GmW,GAAMrkL,EAAYA,EAAUjP,MAAMw2K,EAAS6c,GAAc,KAAKr4L,OAClE,GACJ,EAMO,MAAMu4L,GAAiB,sBAMjBC,GAAoB,SAAUC,EAAcxiC,EAAWyiC,GAChE,GAAmB,OAAfA,QAAsC79M,IAAf69M,EACvB,MAAM,IAAIP,GAAcliC,EAAW,sBAAsBA,wCAAgDwiC,KAEjH,EA4BaE,GAAwB,SAAUv6K,EAAQ45K,GACnD,OAAOt0F,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,GAAIkvM,GAAiBA,EAAcY,YAAa,CAC5C,MAAMA,EAAmD,oBAA9BZ,EAAcY,kBAC7BZ,EAAcY,oBACdZ,EAAcY,YAC1Bx6K,EAAsB,cAAI,UAAYw6K,CAC1C,CACJ,GACJ,EAeA,SAASC,GAAwBC,EAAiBC,GAAqB,IAAV13L,EAAGzmB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAC9C,MAAbm+M,IAEqB,kBAAdA,EACHl6M,MAAMC,QAAQi6M,GACdA,EAAUxyL,SAAQH,GAAQyyL,GAAwBC,EAAiB1yL,EAAM/E,KAGzEvnB,OAAOg1C,KAAKiqK,GAAWxyL,SAAQg8I,GAAcs2C,GAAwBC,EAAiBC,EAAUx2C,GAAa,GAAGlhJ,IAAc,KAARA,EAAa,IAAM,KAAKkhJ,OAI9Iu2C,EAAgB/mE,IAAI1wH,GACpBy3L,EAAgB7qK,OAAO5sB,EAAK03L,GAG5BD,EAAgB3xL,IAAI9F,EAAK03L,GAGrC,CAKO,MAAMtgB,GAAkB,SAAU3yJ,GACrC,MAAMwjJ,EAAe,IAAIK,gBAAgB7jJ,EAAIgnG,QAAQ,QAAAjoH,EAAAjqB,UAAA3B,OADR+/M,EAAO,IAAAn6M,MAAAgmB,EAAA,EAAAA,EAAA,KAAAgiL,EAAA,EAAAA,EAAAhiL,EAAAgiL,IAAPmS,EAAOnS,EAAA,GAAAjsM,UAAAisM,GAEpDgS,GAAwBvvB,EAAc0vB,GACtClzK,EAAIgnG,OAASw8C,EAAatmL,UAC9B,EAKai2M,GAAwB,SAAUv3M,EAAOw3M,EAAgBlB,GAClE,MAAMmB,EAA6B,kBAAVz3M,EAIzB,OAH2By3M,GAAanB,GAAiBA,EAAcoB,WACjEpB,EAAcoB,WAAWF,EAAel4B,QAAQ,iBAChDm4B,GAEAvkL,KAAKC,eAAoBh6B,IAAV6G,EAAsBA,EAAQ,CAAC,GAAG,CAACqjB,EAAMrjB,IAAWA,aAAiBgzH,IAAM,IAAIhzH,GAASA,IACtGA,GAAS,EACpB,EAKa23M,GAAe,SAAUvzK,GAClC,OAAOA,EAAIoF,SAAWpF,EAAIgnG,OAAShnG,EAAIsqI,IAC3C,EAKakpC,GAAwB,SAAUC,EAAWrB,EAAaJ,EAAWE,GAC9E,OAAO,WAA+C,IAA9CV,EAAK18M,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGs9M,EAAaD,EAAQr9M,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGk9M,EACpC,IAAItgL,EACJ,MAAMgiL,EAAmB1/M,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGs/M,EAAUzlL,SAAU,CAAEgS,KAAMwxK,EAAMhU,SAASgH,QAAU,GAAqG,QAA/F9yK,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcC,gBAA6B,IAAPzgL,EAAgBA,EAAKygL,GAAYsB,EAAUzzK,MACtQ,OAAOwxK,EAAMljL,QAAQolL,EACzB,CACJ,ECvIA,IAoBWC,GAUAC,GAWAC,GAgBAC,GAcAC,GAUAC,GAaAC,GAWAC,GAUAC,GASAC,GAcAC,GAUAC,GAcAC,GAUAC,GAUAC,GAUAC,GAeAC,GAUAC,GAcAC,GAeAC,GAaAC,GAUAC,GAYAC,GAUAC,GAYAC,GAWAC,GAWAC,GAYAC,GAUAC,GAUAC,GAUAC,GAUAC,GAYAC,GAgBAC,GAgBAC,GAWAC,GAUAC,GAYAC,GAaAC,GAkBAC,GAUAC,GAWAC,GA1fPx4F,GAAwC,SAAU83E,EAAS6c,EAAYv5F,EAAG7qF,GAE1E,OAAO,IAAK6qF,IAAMA,EAAIvD,WAAU,SAAU24B,EAASu2B,GAC/C,SAASy3B,EAAUxgM,GAAS,IAAM42M,EAAKrkL,EAAUjU,KAAKte,GAAS,CAAE,MAAOzC,IAAKwrK,EAAOxrK,GAAI,CAAE,CAC1F,SAASkjM,EAASzgM,GAAS,IAAM42M,EAAKrkL,EAAiB,MAAEvyB,GAAS,CAAE,MAAOzC,IAAKwrK,EAAOxrK,GAAI,CAAE,CAC7F,SAASq5M,EAAKz2L,GAJlB,IAAengB,EAIamgB,EAAO+hG,KAAOswB,EAAQryH,EAAOngB,QAJ1CA,EAIyDmgB,EAAOngB,MAJhDA,aAAiBo9G,EAAIp9G,EAAQ,IAAIo9G,GAAE,SAAUo1B,GAAWA,EAAQxyI,EAAQ,KAIjBi+G,KAAKuiF,EAAWC,EAAW,CAC7GmW,GAAMrkL,EAAYA,EAAUjP,MAAMw2K,EAAS6c,GAAc,KAAKr4L,OAClE,GACJ,GAaA,SAAWy5L,GACPA,EAAwB,QAAI,UAC5BA,EAA0B,UAAI,WACjC,CAHD,CAGGA,KAAmBA,GAAiB,CAAC,IAOxC,SAAWC,GACPA,EAAyB,WAAI,aAC7BA,EAAqB,OAAI,SACzBA,EAAuB,SAAI,UAC9B,CAJD,CAIGA,KAAiBA,GAAe,CAAC,IAOpC,SAAWC,GACPA,EAAuB,SAAI,WAC3BA,EAAsB,QAAI,UAC1BA,EAAsB,QAAI,UAC1BA,EAAmC,qBAAI,uBACvCA,EAA2B,aAAI,eAC/BA,EAA8B,gBAAI,kBAClCA,EAA4B,cAAI,gBAChCA,EAAsB,QAAI,SAC7B,CATD,CASGA,KAAiBA,GAAe,CAAC,IAOpC,SAAWC,GACPA,EAAyB,QAAI,UAC7BA,EAAyB,QAAI,UAC7BA,EAA0B,SAAI,WAC9BA,EAA0B,SAAI,WAC9BA,EAA2B,UAAI,YAC/BA,EAA2B,UAAI,WAClC,CAPD,CAOGA,KAAoBA,GAAkB,CAAC,IAO1C,SAAWC,GACPA,EAA4D,KAAI,OAChEA,EAA4D,KAAI,MACnE,CAHD,CAGGA,KAA0DA,GAAwD,CAAC,IAOtH,SAAWC,GACPA,EAAyB,OAAI,SAC7BA,EAA2B,SAAI,WAC/BA,EAAwB,MAAI,QAC5BA,EAA0B,QAAI,UAC9BA,EAAwB,MAAI,OAC/B,CAND,CAMGA,KAAqBA,GAAmB,CAAC,IAO5C,SAAWC,GACPA,EAAc,IAAI,MAClBA,EAAc,IAAI,MAClBA,EAAc,IAAI,KACrB,CAJD,CAIGA,KAAaA,GAAW,CAAC,IAO5B,SAAWC,GACPA,EAAkB,IAAI,MACtBA,EAAkB,IAAI,KACzB,CAHD,CAGGA,KAAiBA,GAAe,CAAC,IAOpC,SAAWC,GACPA,EAAc,IAAI,KACrB,CAFD,CAEGA,KAAaA,GAAW,CAAC,IAO5B,SAAWC,GACPA,EAAsB,WAAI,aAC1BA,EAAsB,WAAI,aAC1BA,EAAuB,YAAI,cAC3BA,EAAoB,SAAI,WACxBA,EAAuB,YAAI,cAC3BA,EAA0B,eAAI,gBACjC,CAPD,CAOGA,KAAcA,GAAY,CAAC,IAO9B,SAAWC,GACPA,EAA0B,SAAI,WAC9BA,EAA2B,UAAI,WAClC,CAHD,CAGGA,KAAoBA,GAAkB,CAAC,IAO1C,SAAWC,GACPA,EAAuB,SAAI,WAC3BA,EAAyB,WAAI,aAC7BA,EAAuB,SAAI,WAC3BA,EAAuB,SAAI,WAC3BA,EAAuB,SAAI,WAC3BA,EAAuB,SAAI,UAC9B,CAPD,CAOGA,KAAiBA,GAAe,CAAC,IAOpC,SAAWC,GACPA,EAAmB,OAAI,SACvBA,EAAqB,SAAI,UAC5B,CAHD,CAGGA,KAAeA,GAAa,CAAC,IAOhC,SAAWC,GACPA,EAAuB,SAAI,WAC3BA,EAAyB,WAAI,YAChC,CAHD,CAGGA,KAAiBA,GAAe,CAAC,IAOpC,SAAWC,GACPA,EAAU,EAAI,IACdA,EAAU,EAAI,GACjB,CAHD,CAGGA,KAAWA,GAAS,CAAC,IAOxB,SAAWC,GACPA,EAAiB,SAAI,WACrBA,EAAoB,YAAI,cACxBA,EAAiB,SAAI,WACrBA,EAAwB,gBAAI,kBAC5BA,EAAsB,cAAI,gBAC1BA,EAAY,IAAI,MAChBA,EAAc,MAAI,OACrB,CARD,CAQGA,KAAWA,GAAS,CAAC,IAOxB,SAAWC,GACPA,EAAmB,OAAI,SACvBA,EAAgB,IAAI,KACvB,CAHD,CAGGA,KAAeA,GAAa,CAAC,IAOhC,SAAWC,GACPA,EAAyC,eAAI,iBAC7CA,EAA8C,oBAAI,sBAClDA,EAAsC,YAAI,cAC1CA,EAA0C,gBAAI,kBAC9CA,EAAqC,WAAI,aACzCA,EAAmC,SAAI,UAC1C,CAPD,CAOGA,KAA6BA,GAA2B,CAAC,IAO5D,SAAWC,GACPA,EAA6B,eAAI,iBACjCA,EAAkC,oBAAI,sBACtCA,EAA0B,YAAI,cAC9BA,EAA8B,gBAAI,kBAClCA,EAAyB,WAAI,aAC7BA,EAAmC,qBAAI,uBACvCA,EAAuB,SAAI,UAC9B,CARD,CAQGA,KAAiBA,GAAe,CAAC,IAOpC,SAAWC,GACPA,EAAwB,MAAI,QAC5BA,EAA4B,UAAI,YAChCA,EAA8B,YAAI,cAClCA,EAA+B,aAAI,eACnCA,EAA2B,SAAI,UAClC,CAND,CAMGA,KAAqBA,GAAmB,CAAC,IAO5C,SAAWC,GACPA,EAA6B,QAAI,UACjCA,EAAgC,WAAI,YACvC,CAHD,CAGGA,KAAwBA,GAAsB,CAAC,IAOlD,SAAWC,GACPA,EAAsB,OAAI,SAC1BA,EAAwB,SAAI,WAC5BA,EAAqB,MAAI,QACzBA,EAAuB,QAAI,SAC9B,CALD,CAKGA,KAAkBA,GAAgB,CAAC,IAOtC,SAAWC,GACPA,EAAuB,WAAI,aAC3BA,EAAyB,aAAI,cAChC,CAHD,CAGGA,KAAeA,GAAa,CAAC,IAOhC,SAAWC,GACPA,EAA2C,SAAI,WAC/CA,EAAyC,OAAI,SAC7CA,EAAwC,MAAI,QAC5CA,EAA2C,SAAI,UAClD,CALD,CAKGA,KAAqCA,GAAmC,CAAC,IAO5E,SAAWC,GACPA,EAA6B,GAAI,KACjCA,EAA8B,IAAI,MAClCA,EAAmC,SAAI,UAC1C,CAJD,CAIGA,KAA6BA,GAA2B,CAAC,IAO5D,SAAWC,GACPA,EAAwB,IAAI,MAC5BA,EAAwB,IAAI,MAC5BA,EAAwB,IAAI,KAC/B,CAJD,CAIGA,KAAuBA,GAAqB,CAAC,IAOhD,SAAWC,GACPA,EAA0B,QAAI,UAC9BA,EAAyB,OAAI,SAC7BA,EAA6B,WAAI,aACjCA,EAAuB,KAAI,MAC9B,CALD,CAKGA,KAAqBA,GAAmB,CAAC,IAO5C,SAAWC,GACPA,EAAoB,IAAI,MACxBA,EAAoB,IAAI,KAC3B,CAHD,CAGGA,KAAmBA,GAAiB,CAAC,IAOxC,SAAWC,GACPA,EAAkB,KAAI,OACtBA,EAAwB,WAAI,YAC/B,CAHD,CAGGA,KAAgBA,GAAc,CAAC,IAOlC,SAAWC,GACPA,EAAmB,IAAI,MACvBA,EAAmB,IAAI,KAC1B,CAHD,CAGGA,KAAkBA,GAAgB,CAAC,IAOtC,SAAWC,GACPA,EAAwB,IAAI,MAC5BA,EAAwB,IAAI,KAC/B,CAHD,CAGGA,KAAuBA,GAAqB,CAAC,IAOhD,SAAWC,GACPA,EAAsB,SAAI,WAC1BA,EAAkB,KAAI,OACtBA,EAAmB,MAAI,QACvBA,EAAuB,UAAI,WAC9B,CALD,CAKGA,KAAgBA,GAAc,CAAC,IAOlC,SAAWC,GACPA,EAAgB,MAAI,QACpBA,EAAgB,MAAI,QACpBA,EAAyB,eAAI,iBAC7BA,EAAiB,OAAI,SACrBA,EAAmB,SAAI,WACvBA,EAAgB,MAAI,QACpBA,EAAiB,OAAI,SACrBA,EAA4B,kBAAI,mBACnC,CATD,CASGA,KAAaA,GAAW,CAAC,IAO5B,SAAWC,GACPA,EAAwB,MAAI,QAC5BA,EAAuB,KAAI,OAC3BA,EAAuB,KAAI,OAC3BA,EAAoC,kBAAI,oBACxCA,EAA0B,QAAI,UAC9BA,EAA4B,UAAI,YAChCA,EAA4B,UAAI,YAChCA,EAA0B,QAAI,SACjC,CATD,CASGA,KAAqBA,GAAmB,CAAC,IAO5C,SAAWC,GACPA,EAAqB,KAAI,OACzBA,EAAsB,MAAI,QAC1BA,EAA0B,UAAI,WACjC,CAJD,CAIGA,KAAmBA,GAAiB,CAAC,IAOxC,SAAWC,GACPA,EAAwC,SAAI,WAC5CA,EAAyC,UAAI,WAChD,CAHD,CAGGA,KAAkCA,GAAgC,CAAC,IAOtE,SAAWC,GACPA,EAAyB,IAAI,MAC7BA,EAAyB,IAAI,MAC7BA,EAAyB,IAAI,MAC7BA,EAAyB,IAAI,KAChC,CALD,CAKGA,KAAwBA,GAAsB,CAAC,IAOlD,SAAWC,GACPA,EAA2B,QAAI,UAC/BA,EAA+B,YAAI,cACnCA,EAA0B,OAAI,SAC9BA,EAA4B,SAAI,WAChCA,EAA2B,QAAI,SAClC,CAND,CAMGA,KAAsBA,GAAoB,CAAC,IAO9C,SAAWC,GACPA,EAAwB,OAAI,SAC5BA,EAA+B,cAAI,gBACnCA,EAAgC,eAAI,iBACpCA,EAA0B,SAAI,WAC9BA,EAAuB,MAAI,QAC3BA,EAA0B,SAAI,WAC9BA,EAAuB,MAAI,QAC3BA,EAAyB,QAAI,UAC7BA,EAAgC,eAAI,iBACpCA,EAAmC,kBAAI,mBAC1C,CAXD,CAWGA,KAAoBA,GAAkB,CAAC,IAO1C,SAAWC,GACPA,EAAuB,EAAI,IAC3BA,EAAuB,EAAI,IAC3BA,EAAuB,EAAI,GAC9B,CAJD,CAIGA,KAAwBA,GAAsB,CAAC,IAMlD,SAAWC,GACPA,EAAyC,UAAI,YAC7CA,EAA2C,YAAI,cAC/CA,EAAgD,iBAAI,kBACvD,CAJD,CAIGA,KAAkCA,GAAgC,CAAC,IAOtE,SAAWC,GACPA,EAAoB,WAAI,aACxBA,EAAc,KAAI,MACrB,CAHD,CAGGA,KAAYA,GAAU,CAAC,IAwsDnB,MAiDMC,GAAqB,SAAUnE,GACxC,MAAMoE,EAlDuC,SAAUpE,GAAe,IAAAqE,EAAA,KACtE,MAAO,CAWHC,aAAc,SAACC,EAAM7rL,EAAO2iJ,EAAM/sJ,GAAI,IAAEwN,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU24F,OAAM,OAAQ,GAAQ,YACrF,MAEMG,EAAiB,IAAIz2K,IAFN,SAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GAEtF6oL,EAAyB,CAAC,OACnB9hN,IAAT0hN,IACAI,EAA6B,KAAIJ,QAEvB1hN,IAAV61B,IACAisL,EAA8B,MAAIjsL,QAEzB71B,IAATw4K,IACAspC,EAA6B,KAAItpC,QAExBx4K,IAATyrB,IACAq2L,EAA6B,KAAIr2L,GAErCmyK,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAhB5C,CAAC,GAgBwE2iN,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCG,CAAkC7E,GACpE,MAAO,CAWHsE,YAAAA,CAAaC,EAAM7rL,EAAO2iJ,EAAM/sJ,EAAMwN,GAClC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BE,aAAaC,EAAM7rL,EAAO2iJ,EAAM/sJ,EAAMwN,GAE1FipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA4I,QAAvHpgL,EAAoE,QAA9DD,EAAKw7K,GAAmB,wCAAqD,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACtL,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EA6BO,MAAMiF,WAAyBnF,GAYlCuE,YAAAA,CAAaC,EAAM7rL,EAAO2iJ,EAAM/sJ,EAAMwN,GAClC,OAAOqoL,GAAmBrzM,KAAKkvM,eAAesE,aAAaC,EAAM7rL,EAAO2iJ,EAAM/sJ,EAAMwN,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC5I,EAolCG,MA4MMkF,GAA6B,SAAUnF,GAChD,MAAMoE,EA7M+C,SAAUpE,GAAe,IAAAoF,EAAA,KAC9E,MAAO,CAaHC,eAAgB,SAACd,EAAM7rL,EAAO4sL,EAAWC,EAASC,EAAQC,GAAQ,IAAE3pL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU05F,OAAM,OAAQ,GAAQ,YACjH,MAEMZ,EAAiB,IAAIz2K,IAFN,0BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QACxCn9M,IAAT0hN,IACAI,EAA6B,KAAIJ,QAEvB1hN,IAAV61B,IACAisL,EAA8B,MAAIjsL,QAEpB71B,IAAdyiN,IACAX,EAAkC,UAAKW,aAAqBl6I,KACxDk6I,EAAUnc,cAAcp9F,UAAU,EAAG,IACrCu5G,QAEQziN,IAAZ0iN,IACAZ,EAAgC,QAAKY,aAAmBn6I,KACpDm6I,EAAQpc,cAAcp9F,UAAU,EAAG,IACnCw5G,QAEO1iN,IAAX2iN,IACAb,EAA+B,OAAIa,QAEtB3iN,IAAb4iN,IACAd,EAAiC,SAAIc,GAEzChlB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EASFiB,aAAc,SAACL,EAAWC,GAAO,IAAEzpL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU05F,OAAM,OAAQ,GAAQ,YAChF,MAEMZ,EAAiB,IAAIz2K,IAFN,8BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QACnCn9M,IAAdyiN,IACAX,EAAkC,UAAKW,aAAqBl6I,KACxDk6I,EAAUnc,cAAcp9F,UAAU,EAAG,IACrCu5G,QAEQziN,IAAZ0iN,IACAZ,EAAgC,QAAKY,aAAmBn6I,KACpDm6I,EAAQpc,cAAcp9F,UAAU,EAAG,IACnCw5G,GAER9kB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFkB,gBAAiB,SAACC,GAAU,IAAE/pL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU05F,OAAM,OAAQ,GAAQ,YAE3E5E,GAAkB,kBAAmB,aAAcqF,GACnD,MAAMC,EAAe,8CAChBzzM,QAAQ,eAAqBq2G,mBAAmBx9G,OAAO26M,KAEtDrB,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GAG5F2kK,GAAgB+jB,EADe,CAAC,GAEhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAJ5C,CAAC,GAIwE2iN,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EASFqB,gBAAiB,SAACT,EAAWC,GAAO,IAAEzpL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU05F,OAAM,OAAQ,GAAQ,YACnF,MAEMZ,EAAiB,IAAIz2K,IAFN,2BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QACnCn9M,IAAdyiN,IACAX,EAAkC,UAAKW,aAAqBl6I,KACxDk6I,EAAUnc,cAAcp9F,UAAU,EAAG,IACrCu5G,QAEQziN,IAAZ0iN,IACAZ,EAAgC,QAAKY,aAAmBn6I,KACpDm6I,EAAQpc,cAAcp9F,UAAU,EAAG,IACnCw5G,GAER9kB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFsB,iBAAkB,SAACC,GAAiB,IAAEnqL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU05F,OAAM,OAAQ,GAAQ,YACnF,MAEMZ,EAAiB,IAAIz2K,IAFN,uBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBgF,EAAmBvB,EAAwB1E,GACxF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCwB,CAA0ClG,GAC5E,MAAO,CAaHqF,cAAAA,CAAed,EAAM7rL,EAAO4sL,EAAWC,EAASC,EAAQC,EAAU3pL,GAC9D,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BiB,eAAed,EAAM7rL,EAAO4sL,EAAWC,EAASC,EAAQC,EAAU3pL,GAEtHipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAsJ,QAAjIpgL,EAA8E,QAAxED,EAAKw7K,GAAmB,kDAA+D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAChM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EASA0F,YAAAA,CAAaL,EAAWC,EAASzpL,GAC7B,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BuB,aAAaL,EAAWC,EAASzpL,GAErFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAoJ,QAA/HpgL,EAA4E,QAAtED,EAAKw7K,GAAmB,gDAA6D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC9L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQA2F,eAAAA,CAAgBC,EAAY/pL,GACxB,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BwB,gBAAgBC,EAAY/pL,GAEhFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAuJ,QAAlIpgL,EAA+E,QAAzED,EAAKw7K,GAAmB,mDAAgE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACjM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EASA8F,eAAAA,CAAgBT,EAAWC,EAASzpL,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B2B,gBAAgBT,EAAWC,EAASzpL,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAuJ,QAAlIpgL,EAA+E,QAAzED,EAAKw7K,GAAmB,mDAAgE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACjM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQA+F,gBAAAA,CAAiBC,EAAmBnqL,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B4B,iBAAiBC,EAAmBnqL,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAwJ,QAAnIpgL,EAAgF,QAA1ED,EAAKw7K,GAAmB,oDAAiE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAClM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EAyEO,MAAMkG,WAAiCpG,GAc1CsF,cAAAA,CAAed,EAAM7rL,EAAO4sL,EAAWC,EAASC,EAAQC,EAAU3pL,GAC9D,OAAOqpL,GAA2Br0M,KAAKkvM,eAAeqF,eAAed,EAAM7rL,EAAO4sL,EAAWC,EAASC,EAAQC,EAAU3pL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAChL,CAUA0F,YAAAA,CAAaL,EAAWC,EAASzpL,GAC7B,OAAOqpL,GAA2Br0M,KAAKkvM,eAAe2F,aAAaL,EAAWC,EAASzpL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC/I,CASA2F,eAAAA,CAAgBC,EAAY/pL,GACxB,OAAOqpL,GAA2Br0M,KAAKkvM,eAAe4F,gBAAgBC,EAAY/pL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC1I,CAUA8F,eAAAA,CAAgBT,EAAWC,EAASzpL,GAChC,OAAOqpL,GAA2Br0M,KAAKkvM,eAAe+F,gBAAgBT,EAAWC,EAASzpL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAClJ,CASA+F,gBAAAA,CAAiBC,EAAmBnqL,GAChC,OAAOqpL,GAA2Br0M,KAAKkvM,eAAegG,iBAAiBC,EAAmBnqL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAClJ,EAMG,MA4IMmG,GAAsC,SAAUpG,GACzD,MAAMoE,EA7IwD,SAAUpE,GAAe,IAAAqG,EAAA,KACvF,MAAO,CAQHC,0BAA2B,SAACC,GAA4B,IAAEzqL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU26F,OAAM,OAAQ,GAAQ,YACvG,MAEM7B,EAAiB,IAAIz2K,IAFN,iCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBsF,EAA8B7B,EAAwB1E,GACnG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF8B,qBAAsB,SAACC,GAAQ,IAAE3qL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU26F,OAAM,OAAQ,GAAQ,YAE9E7F,GAAkB,uBAAwB,WAAYiG,GACtD,MAAMX,EAAe,4CAChBzzM,QAAQ,aAAmBq2G,mBAAmBx9G,OAAOu7M,KAEpDjC,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,UAAYooL,GAAc3oL,GACzF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFgC,oBAAqB,SAACD,GAAQ,IAAE3qL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU26F,OAAM,OAAQ,GAAQ,YAE7E7F,GAAkB,sBAAuB,WAAYiG,GACrD,MAAMX,EAAe,yCAChBzzM,QAAQ,aAAmBq2G,mBAAmBx9G,OAAOu7M,KAEpDjC,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GAG5F2kK,GAAgB+jB,EADe,CAAC,GAEhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAJ5C,CAAC,GAIwE2iN,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAUFiC,iBAAkB,SAACpC,EAAM7rL,EAAO2iJ,GAAI,IAAEv/I,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU26F,OAAM,OAAQ,GAAQ,YACnF,MAEM7B,EAAiB,IAAIz2K,IAFN,iCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QACxCn9M,IAAT0hN,IACAI,EAA6B,KAAIJ,QAEvB1hN,IAAV61B,IACAisL,EAA8B,MAAIjsL,QAEzB71B,IAATw4K,IACAspC,EAA6B,KAAItpC,GAErColB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCkC,CAAmD5G,GACrF,MAAO,CAQHsG,yBAAAA,CAA0BC,EAA8BzqL,GACpD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BkC,0BAA0BC,EAA8BzqL,GAE5GipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA0K,QAArJpgL,EAAkG,QAA5FD,EAAKw7K,GAAmB,sEAAmF,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACpN,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAuG,oBAAAA,CAAqBC,EAAU3qL,GAC3B,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BoC,qBAAqBC,EAAU3qL,GAEnFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAqK,QAAhJpgL,EAA6F,QAAvFD,EAAKw7K,GAAmB,iEAA8E,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC/M,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAyG,mBAAAA,CAAoBD,EAAU3qL,GAC1B,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BsC,oBAAoBD,EAAU3qL,GAElFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAoK,QAA/IpgL,EAA4F,QAAtFD,EAAKw7K,GAAmB,gEAA6E,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC9M,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAUA0G,gBAAAA,CAAiBpC,EAAM7rL,EAAO2iJ,EAAMv/I,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BuC,iBAAiBpC,EAAM7rL,EAAO2iJ,EAAMv/I,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAiK,QAA5IpgL,EAAyF,QAAnFD,EAAKw7K,GAAmB,6DAA0E,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC3M,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EAklCO,MA4OM4G,GAA+B,SAAU7G,GAClD,MAAMoE,EA7OiD,SAAUpE,GAAe,IAAA8G,EAAA,KAChF,MAAO,CAQHC,oBAAqB,SAACC,GAAc,IAAElrL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YACnF,MAEMtC,EAAiB,IAAIz2K,IAFN,yCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+F,EAAgBtC,EAAwB1E,GACrF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFuC,sBAAuB,SAACD,GAAc,IAAElrL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YACrF,MAEMtC,EAAiB,IAAIz2K,IAFN,2CAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+F,EAAgBtC,EAAwB1E,GACrF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOFwC,iBAAkB,eAACprL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YAChE,MAEMtC,EAAiB,IAAIz2K,IAFN,8BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GAG5F2kK,GAAgB+jB,EADe,CAAC,GAEhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAJ5C,CAAC,GAIwE2iN,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EASFyC,yBAA0B,SAACC,EAAczyE,GAAK,IAAE74G,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YAE7FtG,GAAkB,2BAA4B,eAAgB4G,GAE9D5G,GAAkB,2BAA4B,QAAS7rE,GACvD,MAAMmxE,EAAe,iEAChBzzM,QAAQ,iBAAuBq2G,mBAAmBx9G,OAAOk8M,KAExD5C,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GAEtF6oL,EAAyB,CAAC,OAClB9hN,IAAV8xI,IACAgwE,EAA8B,MAAIhwE,GAEtC8rD,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAP5C,CAAC,GAOwE2iN,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF2C,oBAAqB,SAACL,GAAc,IAAElrL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YACnF,MAEMtC,EAAiB,IAAIz2K,IAFN,yCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+F,EAAgBtC,EAAwB1E,GACrF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF4C,oBAAqB,SAACN,GAAc,IAAElrL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YACnF,MAEMtC,EAAiB,IAAIz2K,IAFN,yCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+F,EAAgBtC,EAAwB1E,GACrF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF6C,oBAAqB,SAACP,GAAc,IAAElrL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YACnF,MAEMtC,EAAiB,IAAIz2K,IAFN,yCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+F,EAAgBtC,EAAwB1E,GACrF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF8C,eAAgB,SAACR,GAAc,IAAElrL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUo7F,OAAM,OAAQ,GAAQ,YAC9E,MAEMtC,EAAiB,IAAIz2K,IAFN,yCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+F,EAAgBtC,EAAwB1E,GACrF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsC+C,CAA4CzH,GAC9E,MAAO,CAQH+G,mBAAAA,CAAoBC,EAAgBlrL,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B2C,oBAAoBC,EAAgBlrL,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA6J,QAAxIpgL,EAAqF,QAA/ED,EAAKw7K,GAAmB,yDAAsE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACvM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAgH,qBAAAA,CAAsBD,EAAgBlrL,GAClC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B6C,sBAAsBD,EAAgBlrL,GAE1FipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA+J,QAA1IpgL,EAAuF,QAAjFD,EAAKw7K,GAAmB,2DAAwE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACzM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOAiH,gBAAAA,CAAiBprL,GACb,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B8C,iBAAiBprL,GAErEipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA0J,QAArIpgL,EAAkF,QAA5ED,EAAKw7K,GAAmB,sDAAmE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACpM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EASAkH,wBAAAA,CAAyBC,EAAczyE,EAAO74G,GAC1C,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B+C,yBAAyBC,EAAczyE,EAAO74G,GAElGipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAkK,QAA7IpgL,EAA0F,QAApFD,EAAKw7K,GAAmB,8DAA2E,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC5M,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAoH,mBAAAA,CAAoBL,EAAgBlrL,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BiD,oBAAoBL,EAAgBlrL,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA6J,QAAxIpgL,EAAqF,QAA/ED,EAAKw7K,GAAmB,yDAAsE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACvM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAqH,mBAAAA,CAAoBN,EAAgBlrL,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BkD,oBAAoBN,EAAgBlrL,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA6J,QAAxIpgL,EAAqF,QAA/ED,EAAKw7K,GAAmB,yDAAsE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACvM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAsH,mBAAAA,CAAoBP,EAAgBlrL,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BmD,oBAAoBP,EAAgBlrL,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA6J,QAAxIpgL,EAAqF,QAA/ED,EAAKw7K,GAAmB,yDAAsE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACvM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAuH,cAAAA,CAAeR,EAAgBlrL,GAC3B,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BoD,eAAeR,EAAgBlrL,GAEnFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAwJ,QAAnIpgL,EAAgF,QAA1ED,EAAKw7K,GAAmB,oDAAiE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAClM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EA2tEO,MAgYMyH,GAAwB,SAAU1H,GAC3C,MAAMoE,EAjY0C,SAAUpE,GAAe,IAAA2H,EAAA,KACzE,MAAO,CAQHC,eAAgB,SAACC,GAAiB,IAAE/rL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YACjF,MAEMnD,EAAiB,IAAIz2K,IAFN,qBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB4G,EAAmBnD,EAAwB1E,GACxF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFoD,0BAA2B,SAAC1T,GAAQ,IAAEt4K,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YAEnFnH,GAAkB,4BAA6B,WAAYpM,GAC3D,MAEMoQ,EAAiB,IAAIz2K,IAFN,gBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QACpCn9M,IAAbuxM,IACAuQ,EAAiC,SAAIvQ,GAEzC3T,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFqD,+BAAgC,SAACC,GAA4B,IAAElsL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YAC5G,MAEMnD,EAAiB,IAAIz2K,IAFN,gCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+G,EAA8BtD,EAAwB1E,GACnG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOFuD,gBAAiB,eAACnsL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YAC/D,MAEMnD,EAAiB,IAAIz2K,IAFN,YAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,UAAYooL,GAAc3oL,GACzF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOFwD,qBAAsB,eAACpsL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YACpE,MAEMnD,EAAiB,IAAIz2K,IAFN,YAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOFyD,uBAAwB,eAACrsL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YACtE,MAEMnD,EAAiB,IAAIz2K,IAFN,6BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF0D,4BAA6B,SAACC,GAA2B,IAAEvsL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YACxG,MAEMnD,EAAiB,IAAIz2K,IAFN,gCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBoH,EAA6B3D,EAAwB1E,GAClG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF4D,gBAAiB,SAACC,GAAkB,IAAEzsL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YACnF,MAEMnD,EAAiB,IAAIz2K,IAFN,yBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBsH,EAAoB7D,EAAwB1E,GACzF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF8D,WAAY,SAACC,GAAa,IAAE3sL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YACzE,MAEMnD,EAAiB,IAAIz2K,IAFN,YAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,SAAWooL,GAAc3oL,GACxF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBwH,EAAe/D,EAAwB1E,GACpF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFgE,0BAA2B,SAACC,GAAe,IAAE7sL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YAC1F,MAEMnD,EAAiB,IAAIz2K,IAFN,6BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB0H,EAAiBjE,EAAwB1E,GACtF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EASFkE,iBAAkB,SAACC,EAAS/8F,GAAK,IAAEhwF,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YAEhFnH,GAAkB,mBAAoB,UAAWqI,GACjD,MAEMrE,EAAiB,IAAIz2K,IAFN,mBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,EAE3BoD,EAAqB,IAAM9I,GAAiBA,EAAc+I,cAAiBr3B,gBAG3EivB,GAAsB+E,EAAyB1F,QACrCn9M,IAAZgmN,GACAC,EAAmB7yK,OAAO,UAAW4yK,QAE3BhmN,IAAVipH,GACAg9F,EAAmB7yK,OAAO,QAAS61E,GAEvC45F,EAAwB,gBAAkB,sBAC1CjlB,GAAgB+jB,EAZe,CAAC,GAahC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAO83L,EACvB,CACHh7K,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFsE,yBAA0B,SAACC,GAAiB,IAAEntL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUi8F,OAAM,OAAQ,GAAQ,YAC3F,MAEMnD,EAAiB,IAAIz2K,IAFN,gCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBgI,EAAmBvE,EAAwB1E,GACxF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCwE,CAAqClJ,GACvE,MAAO,CAQH4H,cAAAA,CAAeC,EAAmB/rL,GAC9B,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BwD,eAAeC,EAAmB/rL,GAEtFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAiJ,QAA5HpgL,EAAyE,QAAnED,EAAKw7K,GAAmB,6CAA0D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC3L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQA6H,yBAAAA,CAA0B1T,EAAUt4K,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B0D,0BAA0B1T,EAAUt4K,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA4J,QAAvIpgL,EAAoF,QAA9ED,EAAKw7K,GAAmB,wDAAqE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACtM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQA8H,8BAAAA,CAA+BC,EAA8BlsL,GACzD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B2D,+BAA+BC,EAA8BlsL,GAEjHipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAiK,QAA5IpgL,EAAyF,QAAnFD,EAAKw7K,GAAmB,6DAA0E,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC3M,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOAgI,eAAAA,CAAgBnsL,GACZ,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B6D,gBAAgBnsL,GAEpEipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAkJ,QAA7HpgL,EAA0E,QAApED,EAAKw7K,GAAmB,8CAA2D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC5L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOAiI,oBAAAA,CAAqBpsL,GACjB,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B8D,qBAAqBpsL,GAEzEipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAuJ,QAAlIpgL,EAA+E,QAAzED,EAAKw7K,GAAmB,mDAAgE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACjM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOAkI,sBAAAA,CAAuBrsL,GACnB,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B+D,uBAAuBrsL,GAE3EipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAyJ,QAApIpgL,EAAiF,QAA3ED,EAAKw7K,GAAmB,qDAAkE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACnM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAmI,2BAAAA,CAA4BC,EAA6BvsL,GACrD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BgE,4BAA4BC,EAA6BvsL,GAE7GipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA8J,QAAzIpgL,EAAsF,QAAhFD,EAAKw7K,GAAmB,0DAAuE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACxM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAqI,eAAAA,CAAgBC,EAAoBzsL,GAChC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BkE,gBAAgBC,EAAoBzsL,GAExFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAkJ,QAA7HpgL,EAA0E,QAApED,EAAKw7K,GAAmB,8CAA2D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC5L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAuI,UAAAA,CAAWC,EAAe3sL,GACtB,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BoE,WAAWC,EAAe3sL,GAE9EipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA6I,QAAxHpgL,EAAqE,QAA/DD,EAAKw7K,GAAmB,yCAAsD,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACvL,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAyI,yBAAAA,CAA0BC,EAAiB7sL,GACvC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BsE,0BAA0BC,EAAiB7sL,GAE/FipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA4J,QAAvIpgL,EAAoF,QAA9ED,EAAKw7K,GAAmB,wDAAqE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACtM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EASA2I,gBAAAA,CAAiBC,EAAS/8F,EAAOhwF,GAC7B,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BwE,iBAAiBC,EAAS/8F,EAAOhwF,GAErFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAmJ,QAA9HpgL,EAA2E,QAArED,EAAKw7K,GAAmB,+CAA4D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC7L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQA+I,wBAAAA,CAAyBC,EAAmBntL,GACxC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B4E,yBAAyBC,EAAmBntL,GAEhGipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA2J,QAAtIpgL,EAAmF,QAA7ED,EAAKw7K,GAAmB,uDAAoE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACrM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EA8QO,MA2KMkJ,GAAqB,SAAUnJ,GACxC,MAAMoE,EA5KuC,SAAUpE,GAAe,IAAAoJ,EAAA,KACtE,MAAO,CASHC,UAAW,SAACC,EAAUC,GAAmB,IAAEztL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU09F,OAAM,OAAQ,GAAQ,YAExF5I,GAAkB,YAAa,WAAY8I,GAC3C,MAAMxD,EAAe,8BAChBzzM,QAAQ,aAAmBq2G,mBAAmBx9G,OAAOo+M,KAEpD9E,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBsI,EAAqB7E,EAAwB1E,GAC1F,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOF8E,OAAQ,eAAC1tL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU09F,OAAM,OAAQ,GAAQ,YACtD,MAEM5E,EAAiB,IAAIz2K,IAFN,qBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAYF+E,kBAAmB,SAACH,EAAUj6M,EAAMof,EAAOi2E,EAAOpoE,GAAM,IAAER,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU09F,OAAM,OAAQ,GAAQ,YAEvG5I,GAAkB,oBAAqB,WAAY8I,GACnD,MAAMxD,EAAe,kCAChBzzM,QAAQ,aAAmBq2G,mBAAmBx9G,OAAOo+M,KAEpD9E,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GAEtF6oL,EAAyB,CAAC,EAUhC,QATa9hN,IAATwM,IACAs1M,EAA6B,KAAIt1M,QAEvBxM,IAAV4rB,IACAk2L,EAA8B,MAAIl2L,QAExB5rB,IAAV6hG,IACAigH,EAA8B,MAAIjgH,QAEvB7hG,IAAXy5B,EACA,IAAK,MAAOjT,EAAK3f,KAAU5H,OAAOg4J,QAAQx9H,GACtCqoL,EAAuBt7L,GAAO3f,EAGtC+2L,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAlB5C,CAAC,GAkBwE2iN,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOFgF,cAAe,eAAC5tL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU09F,OAAM,OAAQ,GAAQ,YAC7D,MAEM5E,EAAiB,IAAIz2K,IAFN,6BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFiF,YAAa,SAACC,GAAe,IAAE9tL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAU09F,OAAM,OAAQ,GAAQ,YAC5E,MAEM5E,EAAiB,IAAIz2K,IAFN,qBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB2I,EAAiBlF,EAAwB1E,GACtF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCmF,CAAkC7J,GACpE,MAAO,CASHqJ,SAAAA,CAAUC,EAAUC,EAAqBztL,GACrC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BiF,UAAUC,EAAUC,EAAqBztL,GAE7FipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAyI,QAApHpgL,EAAiE,QAA3DD,EAAKw7K,GAAmB,qCAAkD,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACnL,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOAuJ,MAAAA,CAAO1tL,GACH,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BoF,OAAO1tL,GAE3DipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAsI,QAAjHpgL,EAA8D,QAAxDD,EAAKw7K,GAAmB,kCAA+C,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAChL,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAYAwJ,iBAAAA,CAAkBH,EAAUj6M,EAAMof,EAAOi2E,EAAOpoE,EAAQR,GACpD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BqF,kBAAkBH,EAAUj6M,EAAMof,EAAOi2E,EAAOpoE,EAAQR,GAE5GipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAiJ,QAA5HpgL,EAAyE,QAAnED,EAAKw7K,GAAmB,6CAA0D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC3L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOAyJ,aAAAA,CAAc5tL,GACV,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BsF,cAAc5tL,GAElEipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA6I,QAAxHpgL,EAAqE,QAA/DD,EAAKw7K,GAAmB,yCAAsD,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACvL,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQA0J,WAAAA,CAAYC,EAAiB9tL,GACzB,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BuF,YAAYC,EAAiB9tL,GAEjFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA2I,QAAtHpgL,EAAmE,QAA7DD,EAAKw7K,GAAmB,uCAAoD,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACrL,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EAqIO,MAiCM6J,GAAuB,SAAU9J,GAC1C,MAAMoE,EAlCyC,SAAUpE,GAAe,IAAA+J,EAAA,KACxE,MAAO,CAOHC,oBAAqB,eAACluL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUq+F,OAAM,OAAQ,GAAQ,YACnE,MAEMvF,EAAiB,IAAIz2K,IAFN,iBAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GAG5F2kK,GAAgB+jB,EADe,CAAC,GAEhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAJ5C,CAAC,GAIwE2iN,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCuF,CAAoCjK,GACtE,MAAO,CAOHgK,mBAAAA,CAAoBluL,GAChB,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B4F,oBAAoBluL,GAExEipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAqJ,QAAhIpgL,EAA6E,QAAvED,EAAKw7K,GAAmB,iDAA8D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC/L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EA0nCO,MA2YMiK,GAA8B,SAAUlK,GACjD,MAAMoE,EA5YgD,SAAUpE,GAAe,IAAAmK,EAAA,KAC/E,MAAO,CAQHC,uBAAwB,SAACC,GAAyB,IAAEvuL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YACjG,MAEM3F,EAAiB,IAAIz2K,IAFN,uCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBoJ,EAA2B3F,EAAwB1E,GAChG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF4F,qBAAsB,SAACC,GAAuB,IAAEzuL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAC7F,MAEM3F,EAAiB,IAAIz2K,IAFN,qCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBsJ,EAAyB7F,EAAwB1E,GAC9F,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF8F,oBAAqB,SAACC,GAAS,IAAE3uL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAE9E3J,GAAkB,sBAAuB,YAAaiK,GACtD,MAAM3E,EAAe,wCAChBzzM,QAAQ,cAAoBq2G,mBAAmBx9G,OAAOu/M,KAErDjG,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,UAAYooL,GAAc3oL,GACzF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOFgG,kBAAmB,eAAC5uL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YACjE,MAEM3F,EAAiB,IAAIz2K,IAFN,4BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAOFiG,kBAAmB,eAAC7uL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YACjE,MAEM3F,EAAiB,IAAIz2K,IAFN,+BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrDvf,GAAgB+jB,EAJe,CAAC,GAKhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAWFkG,eAAgB,SAACC,EAAeC,EAAWxB,EAAU56C,GAAK,IAAE5yI,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAEzG3J,GAAkB,iBAAkB,gBAAiBqK,GAErDrK,GAAkB,iBAAkB,YAAasK,GAEjDtK,GAAkB,iBAAkB,WAAY8I,GAChD,MAEM9E,EAAiB,IAAIz2K,IAFN,4BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,OAASooL,GAAc3oL,GACtF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QAC/Bn9M,IAAlBgoN,IACAlG,EAAsC,cAAIkG,QAEhChoN,IAAV6rK,IACAi2C,EAA8B,MAAIj2C,QAEpB7rK,IAAdioN,IACAnG,EAAkC,UAAImG,QAEzBjoN,IAAbymN,IACA3E,EAAiC,SAAI2E,GAEzC7oB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EASFqG,wBAAyB,SAACC,EAASC,GAA0B,IAAEnvL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAC5G,MAEM3F,EAAiB,IAAIz2K,IAFN,4BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QACrCn9M,IAAZmoN,IACArG,EAAgC,QAAIqG,GAExCtF,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBgK,EAA4BvG,EAAwB1E,GACjG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EASFwG,sBAAuB,SAACC,EAAiBC,GAAsB,IAAEtvL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAE9G3J,GAAkB,wBAAyB,kBAAmB2K,GAE9D3K,GAAkB,wBAAyB,yBAA0B4K,GACrE,MAEM5G,EAAiB,IAAIz2K,IAFN,uCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,UAAYooL,GAAc3oL,GACzF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QAC7Bn9M,IAApBsoN,IACAxG,EAAwC,gBAAIwG,QAEjBtoN,IAA3BuoN,IACAzG,EAA+C,uBAAIyG,GAEvD3qB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQF2G,oBAAqB,SAACF,GAAe,IAAErvL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAEpF3J,GAAkB,sBAAuB,kBAAmB2K,GAC5D,MAEM3G,EAAiB,IAAIz2K,IAFN,qCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,UAAYooL,GAAc3oL,GACzF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QAC7Bn9M,IAApBsoN,IACAxG,EAAwC,gBAAIwG,GAEhD1qB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAEzF,OADA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SACnI,CACHl7I,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAUF4G,sBAAuB,SAACH,EAAiBC,EAAwBG,GAAwB,IAAEzvL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAExI3J,GAAkB,wBAAyB,kBAAmB2K,GAE9D3K,GAAkB,wBAAyB,yBAA0B4K,GACrE,MAEM5G,EAAiB,IAAIz2K,IAFN,uCAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,SAAWooL,GAAc3oL,GACxF4pL,EAA0B,CAAC,EAC3Bf,EAAyB,CAAC,QAG1BhE,GAAsB+E,EAAyB1F,QAC7Bn9M,IAApBsoN,IACAxG,EAAwC,gBAAIwG,QAEjBtoN,IAA3BuoN,IACAzG,EAA+C,uBAAIyG,GAEvD1F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EAAgBG,GAChC,IAAIC,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBsK,EAA0B7G,EAAwB1E,GAC/F,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EASF8G,oBAAqB,SAACf,EAAWgB,GAA2B,IAAE3vL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUy+F,OAAM,OAAQ,GAAQ,YAE3G3J,GAAkB,sBAAuB,YAAaiK,GACtD,MAAM3E,EAAe,wCAChBzzM,QAAQ,cAAoBq2G,mBAAmBx9G,OAAOu/M,KAErDjG,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,SAAWooL,GAAc3oL,GACxF4pL,EAA0B,CAAC,QAI3B/E,GAAsB+E,EAAyB1F,GACrD0F,EAAwB,gBAAkB,mBAC1CjlB,GAAgB+jB,EALe,CAAC,GAMhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBwK,EAA6B/G,EAAwB1E,GAClG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCgH,CAA2C1L,GAC7E,MAAO,CAQHoK,sBAAAA,CAAuBC,EAA2BvuL,GAC9C,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BgG,uBAAuBC,EAA2BvuL,GAEtGipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA+J,QAA1IpgL,EAAuF,QAAjFD,EAAKw7K,GAAmB,2DAAwE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACzM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAqK,oBAAAA,CAAqBC,EAAyBzuL,GAC1C,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BkG,qBAAqBC,EAAyBzuL,GAElGipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA6J,QAAxIpgL,EAAqF,QAA/ED,EAAKw7K,GAAmB,yDAAsE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACvM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAuK,mBAAAA,CAAoBC,EAAW3uL,GAC3B,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BoG,oBAAoBC,EAAW3uL,GAEnFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA4J,QAAvIpgL,EAAoF,QAA9ED,EAAKw7K,GAAmB,wDAAqE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACtM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOAyK,iBAAAA,CAAkB5uL,GACd,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BsG,kBAAkB5uL,GAEtEipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA0J,QAArIpgL,EAAkF,QAA5ED,EAAKw7K,GAAmB,sDAAmE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACpM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAOA0K,iBAAAA,CAAkB7uL,GACd,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BuG,kBAAkB7uL,GAEtEipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA0J,QAArIpgL,EAAkF,QAA5ED,EAAKw7K,GAAmB,sDAAmE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACpM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAWA2K,cAAAA,CAAeC,EAAeC,EAAWxB,EAAU56C,EAAO5yI,GACtD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BwG,eAAeC,EAAeC,EAAWxB,EAAU56C,EAAO5yI,GAE9GipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAuJ,QAAlIpgL,EAA+E,QAAzED,EAAKw7K,GAAmB,mDAAgE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACjM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EASA8K,uBAAAA,CAAwBC,EAASC,EAA4BnvL,GACzD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B2G,wBAAwBC,EAASC,EAA4BnvL,GAEjHipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAgK,QAA3IpgL,EAAwF,QAAlFD,EAAKw7K,GAAmB,4DAAyE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC1M,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EASAiL,qBAAAA,CAAsBC,EAAiBC,EAAwBtvL,GAC3D,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B8G,sBAAsBC,EAAiBC,EAAwBtvL,GAEnHipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA8J,QAAzIpgL,EAAsF,QAAhFD,EAAKw7K,GAAmB,0DAAuE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACxM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAoL,mBAAAA,CAAoBF,EAAiBrvL,GACjC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BiH,oBAAoBF,EAAiBrvL,GAEzFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA4J,QAAvIpgL,EAAoF,QAA9ED,EAAKw7K,GAAmB,wDAAqE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACtM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAUAqL,qBAAAA,CAAsBH,EAAiBC,EAAwBG,EAA0BzvL,GACrF,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BkH,sBAAsBH,EAAiBC,EAAwBG,EAA0BzvL,GAE7IipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA8J,QAAzIpgL,EAAsF,QAAhFD,EAAKw7K,GAAmB,0DAAuE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACxM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EASAuL,mBAAAA,CAAoBf,EAAWgB,EAA6B3vL,GACxD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0BoH,oBAAoBf,EAAWgB,EAA6B3vL,GAEhHipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA4J,QAAvIpgL,EAAoF,QAA9ED,EAAKw7K,GAAmB,wDAAqE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACtM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EAsyCO,MAgGM0L,GAA0B,SAAU3L,GAC7C,MAAMoE,EAjG4C,SAAUpE,GAAe,IAAA4L,EAAA,KAC3E,MAAO,CASHC,eAAgB,SAACvC,EAAUwC,GAAyB,IAAEhwL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUkgG,OAAM,OAAQ,GAAQ,YAEnGpL,GAAkB,iBAAkB,WAAY8I,GAChD,MAAMxD,EAAe,uCAChBzzM,QAAQ,aAAmBq2G,mBAAmBx9G,OAAOo+M,KAEpD9E,EAAiB,IAAIz2K,IAAI+3K,EAAcvF,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB6K,EAA2BpH,EAAwB1E,GAChG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFqH,gBAAiB,SAACC,GAA0B,IAAElwL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUkgG,OAAM,OAAQ,GAAQ,YAC3F,MAEMpH,EAAiB,IAAIz2K,IAFN,6BAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsB+K,EAA4BtH,EAAwB1E,GACjG,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAQFuH,wBAAyB,SAACC,GAAW,IAAEpwL,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK8oH,GAAUkgG,OAAM,OAAQ,GAAQ,YACpF,MAEMpH,EAAiB,IAAIz2K,IAFN,8CAEwBwyK,IAC7C,IAAIkE,EACAzE,IACAyE,EAAczE,EAAcyE,aAEhC,MAAMC,EAAyB5iN,OAAOG,OAAOH,OAAOG,OAAO,CAAEo6B,OAAQ,QAAUooL,GAAc3oL,GACvF4pL,EAA0B,CAEhCA,eAA0C,oBAC1CjlB,GAAgB+jB,EAFe,CAAC,GAGhC,IAAII,EAAyBH,GAAeA,EAAYz7B,QAAUy7B,EAAYz7B,QAAU,CAAC,EAGzF,OAFA07B,EAAuB17B,QAAUlnL,OAAOG,OAAOH,OAAOG,OAAOH,OAAOG,OAAO,CAAC,EAAGyjN,GAA0Bd,GAAyB9oL,EAAQktJ,SAC1I07B,EAAuB1zL,KAAOiwL,GAAsBiL,EAAaxH,EAAwB1E,GAClF,CACHlyK,IAAKuzK,GAAamD,GAClB1oL,QAAS4oL,EAEjB,GAAE,EAEV,CAMsCyH,CAAuCnM,GACzE,MAAO,CASH6L,cAAAA,CAAevC,EAAUwC,EAA2BhwL,GAChD,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0ByH,eAAevC,EAAUwC,EAA2BhwL,GAExGipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAmJ,QAA9HpgL,EAA2E,QAArED,EAAKw7K,GAAmB,+CAA4D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC7L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQA8L,eAAAA,CAAgBC,EAA4BlwL,GACxC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B2H,gBAAgBC,EAA4BlwL,GAEhGipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAAoJ,QAA/HpgL,EAA4E,QAAtED,EAAKw7K,GAAmB,gDAA6D,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IAC9L,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAQAgM,uBAAAA,CAAwBC,EAAapwL,GACjC,IAAI0D,EAAIoF,EAAIC,EACZ,OAAO6mF,GAAU56G,UAAM,OAAQ,GAAQ,YACnC,MAAMg0M,QAA0BV,EAA0B6H,wBAAwBC,EAAapwL,GAEzFipL,EAA8G,QAAlGvlL,EAAuB,OAAlBwgL,QAA4C,IAAlBA,OAA2B,EAASA,EAAcgF,mBAAgC,IAAPxlL,EAAgBA,EAAK,EAC3IylL,EAA4J,QAAvIpgL,EAAoF,QAA9ED,EAAKw7K,GAAmB,wDAAqE,IAAPx7K,OAAgB,EAASA,EAAGmgL,UAA8B,IAAPlgL,OAAgB,EAASA,EAAGiJ,IACtM,MAAO,CAACwxK,EAAOW,IAAaqB,GAAsBwD,EAAmB5E,GAAaJ,GAAWE,EAAjEsB,CAAgFhC,EAAO2F,GAAqBhF,EAC5I,GACJ,EAER,EA+CO,MAAMmM,WAA8BrM,GAUvC8L,cAAAA,CAAevC,EAAUwC,EAA2BhwL,GAChD,OAAO6vL,GAAwB76M,KAAKkvM,eAAe6L,eAAevC,EAAUwC,EAA2BhwL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC/J,CASA8L,eAAAA,CAAgBC,EAA4BlwL,GACxC,OAAO6vL,GAAwB76M,KAAKkvM,eAAe+L,gBAAgBC,EAA4BlwL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACvJ,CASAgM,uBAAAA,CAAwBC,EAAapwL,GACjC,OAAO6vL,GAAwB76M,KAAKkvM,eAAeiM,wBAAwBC,EAAapwL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAChJ,ECvpYJ,MAAMoM,GAAmBrtL,EAAAA,YAEzB,CAACzB,EAAOuE,KACN,OAAO,UACL+sD,KACGy9H,IAEH10C,GAAI7b,EAAY,MAAK,SACrB2b,EAAQ,MACR60C,IAjDG,SAAez9L,GAKnB,IALoB,GACrB8oJ,EAAE,SACFF,EAAQ,UACR7oF,KACGtxD,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAU,OACxC,MAAMR,EAAcI,KACdH,EAAgBI,KAChBg1C,EAAQ,GACRv+C,EAAU,GAqBhB,OApBAkJ,EAAY3oJ,SAAQi+L,IAClB,MAAMC,EAAYlvL,EAAMivL,GAExB,IAAIprN,EACAM,EACAuiI,SAHG1mG,EAAMivL,GAIY,kBAAdC,GAAuC,MAAbA,IAEjCrrN,OACAM,SACAuiI,SACEwoF,GAEJrrN,EAAOqrN,EAET,MAAMC,EAAQF,IAAar1C,EAAgB,IAAIq1C,IAAa,GACxDprN,GAAMmrN,EAAMjmN,MAAc,IAATlF,EAAgB,GAAGs2K,IAAWg1C,IAAU,GAAGh1C,IAAWg1C,KAAStrN,KACvE,MAAT6iI,GAAe+pC,EAAQ1nK,KAAK,QAAQomN,KAASzoF,KACnC,MAAVviI,GAAgBssK,EAAQ1nK,KAAK,SAASomN,KAAShrN,IAAS,IAEvD,CAAC,IACH67B,EACHsxD,UAAW4rE,KAAW5rE,KAAc09H,KAAUv+C,IAC7C,CACD4J,KACAF,WACA60C,SAEJ,CAWOI,CAAOpvL,GACZ,OAAoBu6I,EAAAA,GAAAA,KAAK/b,EAAW,IAC/BuwD,EACHxqL,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,GAAY09H,EAAMtrN,QAAUy2K,IAClD,IAEJ20C,GAAI/sF,YAAc,MAClB,YC1DMstF,GAAmB5tL,EAAAA,YAAiB,CAAAlQ,EAMvCgT,KAAQ,IANgC,SACzC41I,EAAQ,UACR7oF,EAEA+oF,GAAI7b,EAAY,SACbx+H,GACJzO,EACC,MAAM+9L,EAAoBz1C,GAAmBM,EAAU,OACjDR,EAAcI,KACdH,EAAgBI,KAChBu1C,EAAa,GAAGD,SAChB7+C,EAAU,GAehB,OAdAkJ,EAAY3oJ,SAAQi+L,IAClB,MAAMC,EAAYlvL,EAAMivL,GAExB,IAAIO,SADGxvL,EAAMivL,GAEI,MAAbC,GAA0C,kBAAdA,IAE5BM,QACEN,GAEJM,EAAON,EAET,MAAMC,EAAQF,IAAar1C,EAAgB,IAAIq1C,IAAa,GAChD,MAARO,GAAc/+C,EAAQ1nK,KAAK,GAAGwmN,IAAaJ,KAASK,IAAO,KAE7Cj1C,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAWg+H,KAAsB7+C,IACvD,IAEJ4+C,GAAIttF,YAAc,MAClB,YCVMx+B,IAlBMwf,IAAAA,OAIHA,IAAAA,KAIEA,IAAAA,KAIMA,IAAAA,KAIJA,IAAAA,KAEcthF,EAAAA,YAAiB,CAAAlQ,EAQzCgT,KAAQ,IARkC,SAC3C41I,EAAQ,UACR7oF,EAAS,MACT8oF,GAAQ,EAAK,QACbq1C,GAAU,EAAK,cACfC,GAAgB,EAAK,UACrBC,GAAY,KACT3vL,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,QACpBI,EAAAA,GAAAA,KAAK,MAAO,CAE9Bh2I,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAW8oF,GAAS,GAAGD,UAAkBs1C,GAAW,UAAWC,GAAiB,iBAAkBC,GAAa,GAAGx1C,gBACxI,KAEJ52E,GAAMw+B,YAAc,QACpB,YCAA,MACA,GAAe,sBAA0B,2QCoCzC,SAjEA,SAAexwG,GAAqD,IAApD,MAAEplB,EAAK,cAAEyjN,EAAa,UAAEt+H,GAAyB//D,EAC/D,MAAOs+L,EAAgBC,IAAqBpuL,EAAAA,EAAAA,UAAkB,CAC5DlvB,MAAO,IACPsyB,OAAQ,IACR/T,KAAM,MACN0C,KAAMtnB,EACN27G,MAAO,eACPvlB,OAAQ,EACR4lB,UAAW,CACT4B,WAAY,EACZrlG,KAAM,OACN2jG,qBAAsB,KAExBH,aAAc,CACZW,oBAAoB,EACpBT,UAAW,GACX7lB,OAAQ,EACRjqD,YAAa,aAEf8wE,YAAa,CACX76E,MAAO,UACPxd,KAAM,WAERg4F,kBAAmB,CACjBx6E,MAAO,QAETi7E,qBAAsB,CACpBj7E,MAAO,UACPxd,KAAM,iBAER64F,kBAAmB,CACjBr7E,MAAO,UACPxd,KAAM,SAIJg/L,GAAgBjlE,EAAAA,EAAAA,UAAQ,SACvB+kE,KAAmBD,KACvB,CAACC,EAAgBD,KAEbI,IAAUtuL,EAAAA,EAAAA,UAAwB,IAAIuuL,KAAJ,CAAkBF,IACrDxrL,GAAMzC,EAAAA,EAAAA,QAAuB,MAiBnC,OAfA0B,EAAAA,EAAAA,YAAU,KACJe,EAAItZ,SACN+kM,EAAOt3K,OAAOnU,EAAItZ,QACpB,GACC,CAAC+kM,EAAQzrL,KAEZf,EAAAA,EAAAA,YAAU,KACHwsL,GACLA,EAAOpoI,OAAOmoI,EAAc,GAC3B,CAACC,EAAQD,KAEZvsL,EAAAA,EAAAA,YAAU,KACRssL,GAAmBhoC,IAAI,IAAWA,EAAMr0J,KAAMtnB,KAAS,GACtD,CAACA,KAGFouK,EAAAA,GAAAA,KAAA,OAAKjpF,UAAW,eAAeA,GAAa,KAAKyQ,UAC/Cw4E,EAAAA,GAAAA,KAAA,OAAKh2I,IAAKA,EAAKtE,MAAO,CAAE6E,OAAqB,OAAb8qL,QAAa,IAAbA,OAAa,EAAbA,EAAe9qL,WAGrD,ECxDA,SAdA,SAAqBvT,GAAwD,IAAtD,MAAEu2F,EAAK,MAAEl3B,EAAK,KAAEmyH,EAAI,QAAEluI,GAA6BtjD,EACxE,OACE2+L,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAW,qBAAqByxH,EAAO,WAAWhhH,SAAA,EACrDmuH,EAAAA,GAAAA,MAACpB,GAAG,CAAC5+E,GAAI,EAAG5+C,UAAU,sEAAqEyQ,SAAA,EACzFw4E,EAAAA,GAAAA,KAAA,MAAAx4E,SAAKnR,GAAS,QAAQmyH,OACtBxoC,EAAAA,GAAAA,KAAA,KAAAx4E,SAAIltB,QAEN0lG,EAAAA,GAAAA,KAACu0C,GAAG,CAAC5+E,GAAI,EAAG5+C,UAAU,mFAAkFyQ,UACtGw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKkiH,EAAOtD,IAAK5zB,GAAS,QAAQmyH,UAIjD,ECxBMt7K,GAAY,CAAC,KAAM,YAOlB,SAAS0oL,GAAcrqL,GAU3B,IAV4B,QAC7BwgH,EAAO,SACPtiB,EAAQ,KACR/oE,EAAI,OACJpvC,EAAM,IACN6jD,EAAG,KACH80H,EAAI,QACJjtE,EAAO,SACP64F,EAAW,EAAC,KACZr/L,GACD+U,EACMwgH,IAEDA,EADU,MAARrrF,GAA0B,MAAVpvC,GAAyB,MAAP6jD,EAC1B,IAEA,UAGd,MAAMw4D,EAAO,CACXoe,WAEF,GAAgB,WAAZA,EACF,MAAO,CAAC,CACNv1H,KAAMA,GAAQ,SACdizG,YACCkE,GAEL,MAAMmoF,EAAcj7K,KACd4uF,GAAwB,MAAZsiB,GA/Bb,SAAuBrrF,GAC5B,OAAQA,GAAwB,MAAhBA,EAAKjjC,MACvB,CA6BuCs4L,CAAcr1J,KAC/C7lB,EAAMqpF,iBAEJuF,EACF5uF,EAAM06F,kBAGG,MAAXvY,GAA2BA,EAAQniF,EAAM,EAe3C,MAPgB,MAAZkxG,IAEFrrF,IAASA,EAAO,KACZ+oE,IACF/oE,OAAO31D,IAGJ,CAAC,CACNk/L,KAAc,MAARA,EAAeA,EAAO,SAG5BxgE,cAAU1+H,EACV8qN,SAAUpsF,OAAW1+H,EAAY8qN,EACjCn1J,OACApvC,OAAoB,MAAZy6H,EAAkBz6H,OAASvmB,EACnC,gBAAkB0+H,QAAW1+H,EAC7BoqE,IAAiB,MAAZ42E,EAAkB52E,OAAMpqE,EAC7BiyH,QAAS84F,EACT7yD,UAxBoBpoH,IACF,MAAdA,EAAMtpB,MACRspB,EAAMqpF,iBACN4xF,EAAYj7K,GACd,GAqBC8yF,EACL,CACA,MAAMqoF,GAAsB9uL,EAAAA,YAAiB,CAAClQ,EAAMgT,KAClD,IACI81I,GAAIm2C,EAAM,SACVxsF,GACEzyG,EACJyO,EA3EJ,SAAuC7rB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CA2ExL8pL,CAA8BzwK,EAAMkW,IAC9C,MAAOgpL,GACLnqE,QAASkY,IACN2xD,GAAe5rN,OAAOG,OAAO,CAChC4hJ,QAASkqE,EACTxsF,YACChkG,IACH,OAAoBu6I,EAAAA,GAAAA,KAAK/b,EAAWj6J,OAAOG,OAAO,CAAC,EAAGs7B,EAAOywL,EAAa,CACxElsL,IAAKA,IACJ,IAELgsL,GAAOxuF,YAAc,SACrB,YCjFMwuF,GAAsB9uL,EAAAA,YAAiB,CAAAlQ,EAS1CgT,KAAQ,IATmC,GAC5C81I,EAAE,SACFF,EAAQ,QACRxuK,EAAU,UAAS,KACnB0D,EAAI,OACJg9F,GAAS,EAAK,SACd23B,GAAW,EAAK,UAChB1yC,KACGtxD,GACJzO,EACC,MAAM6pC,EAASy+G,GAAmBM,EAAU,QACrCs2C,GAAa,QAClBnqE,IACG6pE,GAAe,CAClB7pE,QAAS+zB,EACTr2C,cACGhkG,IAECw+H,EAAYlY,EAClB,OAAoBi0B,EAAAA,GAAAA,KAAK/b,EAAW,IAC/BiyD,KACAzwL,EACHuE,IAAKA,EACLy/F,SAAUA,EACV1yC,UAAW4rE,KAAW5rE,EAAWl2B,EAAQixC,GAAU,SAAU1gG,GAAW,GAAGyvD,KAAUzvD,IAAW0D,GAAQ,GAAG+rD,KAAU/rD,IAAQ2wB,EAAMi7B,MAAQ+oE,GAAY,aACvJ,IAEJusF,GAAOxuF,YAAc,SACrB,YCTA,MACA,GAAe,sBAA0B,gECFzC,SAZA,SAAoBxwG,GAA8D,IAA5D,KAAEm/L,EAAI,UAAEp/H,EAAS,QAAEimC,EAAO,SAAEyM,GAA6BzyG,EAC7E,OACE2+L,EAAAA,GAAAA,MAACK,GAAM,CAACl2C,GAAG,IAAIp/G,KAAOy1J,GAAQA,EAAKngL,KAAQ,GACnCyzF,SAAUA,EACVzM,QAASA,EACTjmC,UAAW,GAAGA,4EAAoFyQ,SAAA,EACxGw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,OAAMyQ,SAAC,kBACvBw4E,EAAAA,GAAAA,KAAA,OAAK30K,IAAK+qN,GAAYnsG,IAAI,cAAclzB,UAAU,aAGxD,ECUA,MACA,GAAe,sBAA0B,0DCUzC,SA3BA,SAAqB//D,GAAoE,IAAlE,IAAEq/L,EAAG,kBAAEC,EAAiB,gBAAEC,GAAqCv/L,EACpF,MAAOw/L,EAAQC,IAAatvL,EAAAA,EAAAA,UAAiB,KAE7C8B,EAAAA,EAAAA,YAAU,KACR3vB,OAAOowB,iBAAiB,SAAUgtL,GAC3B,KACLp9M,OAAOqwB,oBAAoB,SAAU+sL,EAAkB,IAExD,IAEH,MAAMA,EAAoBA,KACxB,MAAMr2E,EAAY/mI,OAAOq9M,QACzBF,EAAUp2E,GAAa,IAAM,SAAW,GAAG,EAG7C,OACE2/B,EAAAA,GAAAA,KAAC80C,GAAG,CAAC/9H,UAAW,6BAA6By/H,IAAShvH,UACpDw4E,EAAAA,GAAAA,KAACL,GAAS,CAACE,OAAK,EAAC9oF,UAAU,mDAAkDyQ,UAC3EmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,qFAAoFyQ,SAAA,EACjGw4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,UAACw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKurN,GAAW7/H,UAAU,SAASkzB,IAAI,kBAC3D+1D,EAAAA,GAAAA,KAAC62C,GAAW,CAACV,KAAME,EAAKt/H,UAAU,KAAKimC,QAASs5F,EAAmB7sF,SAAU8sF,UAKvF,EC1CA,SAAS,KACP,OAAO,GAAWvsN,OAAOG,OAASH,OAAOG,OAAOoG,OAAS,SAAU4W,GACjE,IAAK,IAAIhY,EAAI,EAAGA,EAAIrE,UAAU3B,OAAQgG,IAAK,CACzC,IAAIwO,EAAI7S,UAAUqE,GAClB,IAAK,IAAIyK,KAAK+D,GAAG,CAAG,GAAE9M,eAAeC,KAAK6M,EAAG/D,KAAOuN,EAAEvN,GAAK+D,EAAE/D,GAC/D,CACA,OAAOuN,CACT,EAAG,GAAS+N,MAAM,KAAMpqB,UAC1B,CCRA,SAAS,GAA8B8O,EAAGzK,GACxC,GAAI,MAAQyK,EAAG,MAAO,CAAC,EACvB,IAAI+D,EAAI,CAAC,EACT,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CACjD,GAAIhY,EAAE2uB,SAAS3W,GAAI,SACnBxJ,EAAEwJ,GAAKvN,EAAEuN,EACX,CACA,OAAOxJ,CACT,CCuBO,SAASm5M,GAAWvlM,GACzB,MAAO,UAAYA,EAAItd,OAAO,GAAGgiB,cAAgB1E,EAAI4J,OAAO,EAC9D,CC9BA,SAAS47L,GAAe7+L,GAAO,IAAI3G,EAEnC,SAAsBxB,EAAO9G,GAAQ,GAAqB,kBAAV8G,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAIinM,EAAOjnM,EAAMtU,OAAO2d,aAAc,QAAaruB,IAATisN,EAAoB,CAAE,IAAI55M,EAAM45M,EAAKlmN,KAAKif,EAAO9G,GAAQ,WAAY,GAAmB,kBAAR7L,EAAkB,OAAOA,EAAK,MAAM,IAAIvU,UAAU,+CAAiD,CAAE,OAAiB,WAATogB,EAAoB7V,OAAS5J,QAAQumB,EAAQ,CAF/UknM,CAAa/+L,EAAK,UAAW,MAAsB,kBAAR3G,EAAmBA,EAAMne,OAAOme,EAAM,CAqC3G,SAAS2lM,GAAgBzxL,EAAOqD,GAC7C,OAAO9+B,OAAOg1C,KAAKlW,GAAQp6B,QAAO,SAAUqjB,EAAQuB,GAClD,IAAI6jM,EAEAngM,EAAOjF,EACP62G,EAAe5xG,EAAK09F,GAAiBphG,IACrC8jM,EAAapgM,EAAK1D,GAClBuT,EAAO4gK,GAA8BzwK,EAAM,CAAC09F,GAAiBphG,GAAYA,GAAWyD,IAAIggM,KAExFM,EAAcvuL,EAAOxV,GAErBgkM,EAzCR,SAA6B3C,EAAW/rF,EAAcr/F,GACpD,IAAIguL,GAAahwL,EAAAA,EAAAA,aAAqBx8B,IAAd4pN,GAEpB6C,GAAYrwL,EAAAA,EAAAA,UAASyhG,GACrB6uF,EAAaD,EAAU,GACvBhiG,EAAWgiG,EAAU,GAErBE,OAAuB3sN,IAAd4pN,EACTgD,EAAUJ,EAAW7mM,QAWzB,OAVA6mM,EAAW7mM,QAAUgnM,GAMhBA,GAAUC,GAAWF,IAAe7uF,GACvCpT,EAASoT,GAGJ,CAAC8uF,EAAS/C,EAAY8C,GAAYvnE,EAAAA,EAAAA,cAAY,SAAUt+I,GAC7D,IAAK,IAAImjB,EAAOjqB,UAAU3B,OAAQ6rB,EAAO,IAAIjmB,MAAMgmB,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAAKC,EAAO,GAAKnqB,UAAUmqB,GAGzBsU,GAASA,EAAQrU,WAAM,EAAQ,CAACtjB,GAAO6hB,OAAOuB,IAClDwgG,EAAS5jH,EACX,GAAG,CAAC23B,IACN,CAc+BquL,CAAoBR,EAAYxuF,EAAcnjG,EAAM4xL,IAC3EzlN,EAAQ0lN,EAAqB,GAC7B/tL,EAAU+tL,EAAqB,GAEnC,OAAO12C,GAAS,CAAC,EAAG/5I,IAAOswL,EAAY,CAAC,GAAa7jM,GAAa1hB,EAAOulN,EAAUE,GAAe9tL,EAAS4tL,GAC7G,GAAG1xL,EACL,CClDA,SAAS6sH,KAEP,IAAI1lD,EAAQ5zF,KAAK3P,YAAY8oJ,yBAAyBn5I,KAAKysB,MAAOzsB,KAAK4zF,OACzD,OAAVA,QAA4B7hG,IAAV6hG,GACpB5zF,KAAKw8G,SAAS5oB,EAElB,CAEA,SAASolD,GAA0Bie,GAQjCj3J,KAAKw8G,SALL,SAAiBqiG,GACf,IAAIjrH,EAAQ5zF,KAAK3P,YAAY8oJ,yBAAyB8d,EAAW4nD,GACjE,OAAiB,OAAVjrH,QAA4B7hG,IAAV6hG,EAAsBA,EAAQ,IACzD,EAEsBr8F,KAAKyI,MAC7B,CAEA,SAAS67I,GAAoBob,EAAW6nD,GACtC,IACE,IAAI9nD,EAAYh3J,KAAKysB,MACjBoyL,EAAY7+M,KAAK4zF,MACrB5zF,KAAKysB,MAAQwqI,EACbj3J,KAAK4zF,MAAQkrH,EACb9+M,KAAK++M,6BAA8B,EACnC/+M,KAAKg/M,wBAA0Bh/M,KAAKo5I,wBAClC4d,EACA6nD,EAEJ,CAAE,QACA7+M,KAAKysB,MAAQuqI,EACbh3J,KAAK4zF,MAAQirH,CACf,CACF,CAIAvlE,GAAmB2lE,8BAA+B,EAClDjmE,GAA0BimE,8BAA+B,EACzDpjE,GAAoBojE,8BAA+B,EC1CpC,SAAS5uF,GAAc93D,GACpC,OAAOA,GAAQA,EAAK83D,eAAiBx9F,QACvC,CCCe,SAASq3F,GAAiB3xD,EAAM2mJ,GAC7C,OCFa,SAAqB3mJ,GAClC,IAAI4mJ,EAAM9uF,GAAc93D,GACxB,OAAO4mJ,GAAOA,EAAI54E,aAAejmI,MACnC,CDDS8+M,CAAY7mJ,GAAM2xD,iBAAiB3xD,EAAM2mJ,EAClD,CEVA,IAAIG,GAAS,WCMb,IAAIC,GAAY,OACD,SAASC,GAAmBziN,GACzC,ODPa,SAAmBA,GAChC,OAAOA,EAAOyE,QAAQ89M,GAAQ,OAAO3+L,aACvC,CCKS8+L,CAAU1iN,GAAQyE,QAAQ+9M,GAAW,OAC9C,CCTA,IAAIG,GAAsB,8EC+B1B,SA3BA,SAAelnJ,EAAMhoE,GACnB,IAAImvN,EAAM,GACNz4I,EAAa,GAEjB,GAAwB,kBAAb12E,EACT,OAAOgoE,EAAK7rC,MAAMizL,iBAAiBH,GAAUjvN,KAAc25H,GAAiB3xD,GAAMonJ,iBAAiBH,GAAUjvN,IAG/GS,OAAOg1C,KAAKz1C,GAAUktB,SAAQ,SAAUlF,GACtC,IAAI3f,EAAQrI,EAASgoB,GAEhB3f,GAAmB,IAAVA,GDdH,SAAqBA,GAClC,SAAUA,IAAS6mN,GAAoBznL,KAAKp/B,GAC9C,CCcegnN,CAAYrnM,GAGrBmnM,GAAOF,GAAUjnM,GAAO,KAAO3f,EAAQ,IAFvCquE,GAAc1uD,EAAM,IAAM3f,EAAQ,KAFlC2/D,EAAK7rC,MAAMmzL,eAAeL,GAAUjnM,GAMxC,IAEI0uD,IACFy4I,GAAO,cAAgBz4I,EAAa,KAGtC1O,EAAK7rC,MAAM22I,SAAW,IAAMq8C,CAC9B,EC7BA,SAASI,GAAgBn7M,EAAGxO,GAC1B,OAAO2pN,GAAkB9uN,OAAOiuB,eAAiBjuB,OAAOiuB,eAAe1nB,OAAS,SAAUoN,EAAGxO,GAC3F,OAAOwO,EAAE+1G,UAAYvkH,EAAGwO,CAC1B,EAAGm7M,GAAgBn7M,EAAGxO,EACxB,CCJA,UACY,ECAZ,GAAe+3B,EAAAA,cAAoB,MCD5B,ICSI6xL,GAAY,YACZC,GAAS,SACTC,GAAW,WACXC,GAAU,UACVC,GAAU,UA6FjBC,GAA0B,SAAUC,GAGtC,SAASD,EAAW3zL,EAAOi4D,GACzB,IAAI47H,EAEJA,EAAQD,EAAiBvoN,KAAKkI,KAAMysB,EAAOi4D,IAAY1kF,KACvD,IAGIugN,EADAC,EAFc97H,MAEuB+7H,WAAah0L,EAAMi0L,MAAQj0L,EAAM+zL,OAuB1E,OArBAF,EAAMK,aAAe,KAEjBl0L,EAAMm0L,GACJJ,GACFD,EAAgBP,GAChBM,EAAMK,aAAeV,IAErBM,EAAgBL,GAIhBK,EADE9zL,EAAMo0L,eAAiBp0L,EAAMq0L,aACff,GAEAC,GAIpBM,EAAM1sH,MAAQ,CACZryD,OAAQg/K,GAEVD,EAAMS,aAAe,KACdT,CACT,EC1IF,SAAwB37M,EAAGsC,GACzBtC,EAAEzT,UAAYF,OAAOC,OAAOgW,EAAE/V,WAAYyT,EAAEzT,UAAUb,YAAcsU,EAAG,GAAeA,EAAGsC,EAC3F,CDwGE+5M,CAAeZ,EAAYC,GAkC3BD,EAAWjnE,yBAA2B,SAAkCn7H,EAAM6gM,GAG5E,OAFa7gM,EAAK4iM,IAEJ/B,EAAUt9K,SAAWw+K,GAC1B,CACLx+K,OAAQy+K,IAIL,IACT,EAkBA,IAAIiB,EAASb,EAAWlvN,UAkPxB,OAhPA+vN,EAAOliG,kBAAoB,WACzB/+G,KAAKkhN,cAAa,EAAMlhN,KAAK2gN,aAC/B,EAEAM,EAAO9hG,mBAAqB,SAA4B63C,GACtD,IAAImqD,EAAa,KAEjB,GAAInqD,IAAch3J,KAAKysB,MAAO,CAC5B,IAAI8U,EAASvhC,KAAK4zF,MAAMryD,OAEpBvhC,KAAKysB,MAAMm0L,GACTr/K,IAAW0+K,IAAY1+K,IAAW2+K,KACpCiB,EAAalB,IAGX1+K,IAAW0+K,IAAY1+K,IAAW2+K,KACpCiB,EAAahB,GAGnB,CAEAngN,KAAKkhN,cAAa,EAAOC,EAC3B,EAEAF,EAAOxhG,qBAAuB,WAC5Bz/G,KAAKohN,oBACP,EAEAH,EAAOI,YAAc,WACnB,IACIC,EAAMZ,EAAOF,EADbv/C,EAAUjhK,KAAKysB,MAAMw0I,QAWzB,OATAqgD,EAAOZ,EAAQF,EAASv/C,EAET,MAAXA,GAAsC,kBAAZA,IAC5BqgD,EAAOrgD,EAAQqgD,KACfZ,EAAQz/C,EAAQy/C,MAEhBF,OAA4BzuN,IAAnBkvK,EAAQu/C,OAAuBv/C,EAAQu/C,OAASE,GAGpD,CACLY,KAAMA,EACNZ,MAAOA,EACPF,OAAQA,EAEZ,EAEAS,EAAOC,aAAe,SAAsBK,EAAUJ,GAKpD,QAJiB,IAAbI,IACFA,GAAW,GAGM,OAAfJ,EAIF,GAFAnhN,KAAKohN,qBAEDD,IAAelB,GAAU,CAC3B,GAAIjgN,KAAKysB,MAAMo0L,eAAiB7gN,KAAKysB,MAAMq0L,aAAc,CACvD,IAAIvoJ,EAAOv4D,KAAKysB,MAAM+0L,QAAUxhN,KAAKysB,MAAM+0L,QAAQ9pM,QAAU60K,GAAAA,YAAqBvsL,MAI9Eu4D,GDzOW,SAAqBA,GACrCA,EAAK8uE,SACd,CCuOoBo6E,CAAYlpJ,EACxB,CAEAv4D,KAAK0hN,aAAaH,EACpB,MACEvhN,KAAK2hN,mBAEE3hN,KAAKysB,MAAMo0L,eAAiB7gN,KAAK4zF,MAAMryD,SAAWy+K,IAC3DhgN,KAAKw8G,SAAS,CACZj7E,OAAQw+K,IAGd,EAEAkB,EAAOS,aAAe,SAAsBH,GAC1C,IAAIK,EAAS5hN,KAET0gN,EAAQ1gN,KAAKysB,MAAMi0L,MACnBmB,EAAY7hN,KAAK0kF,QAAU1kF,KAAK0kF,QAAQ+7H,WAAac,EAErDhvL,EAAQvyB,KAAKysB,MAAM+0L,QAAU,CAACK,GAAa,CAACt1B,GAAAA,YAAqBvsL,MAAO6hN,GACxEC,EAAYvvL,EAAM,GAClBwvL,EAAiBxvL,EAAM,GAEvByvL,EAAWhiN,KAAKqhN,cAChBY,EAAeJ,EAAYG,EAASxB,OAASwB,EAAStB,OAGrDa,IAAab,GAAS5wL,GACzB9vB,KAAKkiN,aAAa,CAChB3gL,OAAQ2+K,KACP,WACD0B,EAAOn1L,MAAM01L,UAAUL,EACzB,KAIF9hN,KAAKysB,MAAM21L,QAAQN,EAAWC,GAC9B/hN,KAAKkiN,aAAa,CAChB3gL,OAAQ0+K,KACP,WACD2B,EAAOn1L,MAAM41L,WAAWP,EAAWC,GAEnCH,EAAOU,gBAAgBL,GAAc,WACnCL,EAAOM,aAAa,CAClB3gL,OAAQ2+K,KACP,WACD0B,EAAOn1L,MAAM01L,UAAUL,EAAWC,EACpC,GACF,GACF,IACF,EAEAd,EAAOU,YAAc,WACnB,IAAIY,EAASviN,KAETshN,EAAOthN,KAAKysB,MAAM60L,KAClBU,EAAWhiN,KAAKqhN,cAChBS,EAAY9hN,KAAKysB,MAAM+0L,aAAUzvN,EAAYw6L,GAAAA,YAAqBvsL,MAEjEshN,IAAQxxL,IASb9vB,KAAKysB,MAAM+1L,OAAOV,GAClB9hN,KAAKkiN,aAAa,CAChB3gL,OAAQ4+K,KACP,WACDoC,EAAO91L,MAAMg2L,UAAUX,GAEvBS,EAAOD,gBAAgBN,EAASV,MAAM,WACpCiB,EAAOL,aAAa,CAClB3gL,OAAQy+K,KACP,WACDuC,EAAO91L,MAAMi2L,SAASZ,EACxB,GACF,GACF,KArBE9hN,KAAKkiN,aAAa,CAChB3gL,OAAQy+K,KACP,WACDuC,EAAO91L,MAAMi2L,SAASZ,EACxB,GAkBJ,EAEAb,EAAOG,mBAAqB,WACA,OAAtBphN,KAAK+gN,eACP/gN,KAAK+gN,aAAarkC,SAClB18K,KAAK+gN,aAAe,KAExB,EAEAE,EAAOiB,aAAe,SAAsBpD,EAAWpzL,GAIrDA,EAAW1rB,KAAK2iN,gBAAgBj3L,GAChC1rB,KAAKw8G,SAASsiG,EAAWpzL,EAC3B,EAEAu1L,EAAO0B,gBAAkB,SAAyBj3L,GAChD,IAAIk3L,EAAS5iN,KAET84F,GAAS,EAcb,OAZA94F,KAAK+gN,aAAe,SAAUl/K,GACxBi3D,IACFA,GAAS,EACT8pH,EAAO7B,aAAe,KACtBr1L,EAASmW,GAEb,EAEA7hC,KAAK+gN,aAAarkC,OAAS,WACzB5jF,GAAS,CACX,EAEO94F,KAAK+gN,YACd,EAEAE,EAAOqB,gBAAkB,SAAyBrhD,EAAS1wI,GACzDvwB,KAAK2iN,gBAAgBpyL,GACrB,IAAIgoC,EAAOv4D,KAAKysB,MAAM+0L,QAAUxhN,KAAKysB,MAAM+0L,QAAQ9pM,QAAU60K,GAAAA,YAAqBvsL,MAC9E6iN,EAA0C,MAAX5hD,IAAoBjhK,KAAKysB,MAAMq2L,eAElE,GAAKvqJ,IAAQsqJ,EAAb,CAKA,GAAI7iN,KAAKysB,MAAMq2L,eAAgB,CAC7B,IAAI5vL,EAAQlzB,KAAKysB,MAAM+0L,QAAU,CAACxhN,KAAK+gN,cAAgB,CAACxoJ,EAAMv4D,KAAK+gN,cAC/De,EAAY5uL,EAAM,GAClB6vL,EAAoB7vL,EAAM,GAE9BlzB,KAAKysB,MAAMq2L,eAAehB,EAAWiB,EACvC,CAEe,MAAX9hD,GACFh2H,WAAWjrC,KAAK+gN,aAAc9/C,EAXhC,MAFEh2H,WAAWjrC,KAAK+gN,aAAc,EAelC,EAEAE,EAAOptI,OAAS,WACd,IAAItyC,EAASvhC,KAAK4zF,MAAMryD,OAExB,GAAIA,IAAWw+K,GACb,OAAO,KAGT,IAAI3oD,EAAcp3J,KAAKysB,MACnB+hE,EAAW4oE,EAAY5oE,SAgBvBw0H,GAfM5rD,EAAYwpD,GACFxpD,EAAY0pD,aACX1pD,EAAYypD,cACnBzpD,EAAYopD,OACbppD,EAAYspD,MACbtpD,EAAYkqD,KACTlqD,EAAY6J,QACL7J,EAAY0rD,eACnB1rD,EAAYgrD,QACThrD,EAAYirD,WACbjrD,EAAY+qD,UACf/qD,EAAYorD,OACTprD,EAAYqrD,UACbrrD,EAAYsrD,SACbtrD,EAAYoqD,QACV/yB,GAA8Br3B,EAAa,CAAC,WAAY,KAAM,eAAgB,gBAAiB,SAAU,QAAS,OAAQ,UAAW,iBAAkB,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,aAEjP,OAGElpI,EAAAA,cAAoB+0L,GAAuBv3D,SAAU,CACnD9yJ,MAAO,MACc,oBAAb41F,EAA0BA,EAASjtD,EAAQyhL,GAAc90L,EAAAA,aAAmBA,EAAAA,SAAe88H,KAAKx8D,GAAWw0H,GAEzH,EAEO5C,CACT,CAlT8B,CAkT5BlyL,EAAAA,WA+LF,SAASitI,KAAQ,CA7LjBilD,GAAWvnE,YAAcoqE,GACzB7C,GAAWtsH,UA0LP,CAAC,EAILssH,GAAWtoG,aAAe,CACxB8oG,IAAI,EACJE,cAAc,EACdD,eAAe,EACfL,QAAQ,EACRE,OAAO,EACPY,MAAM,EACNc,QAASjnD,GACTknD,WAAYlnD,GACZgnD,UAAWhnD,GACXqnD,OAAQrnD,GACRsnD,UAAWtnD,GACXunD,SAAUvnD,IAEZilD,GAAWL,UAAYA,GACvBK,GAAWJ,OAASA,GACpBI,GAAWH,SAAWA,GACtBG,GAAWF,QAAUA,GACrBE,GAAWD,QAAUA,GACrB,YEhnBA,KAAoC,qBAAX7/M,SAA0BA,OAAOuyB,WAAYvyB,OAAOuyB,SAAS9B,eCE/E,IAAImyL,IAAmB,EACnBC,IAAgB,EAE3B,IACE,IAAIn4L,GAAU,CACZ,WAAIu+G,GACF,OAAO25E,IAAmB,CAC5B,EAEA,QAAI52D,GAEF,OAAO62D,GAAgBD,IAAmB,CAC5C,GAIEt7F,KACFtnH,OAAOowB,iBAAiB,OAAQ1F,GAASA,IACzC1qB,OAAOqwB,oBAAoB,OAAQ3F,IAAS,GAEhD,CAAE,MAAO70B,IACP,CAgCF,SArBA,SAA0BoiE,EAAM9yB,EAAWlV,EAASvF,GAClD,GAAIA,GAA8B,mBAAZA,IAA0Bm4L,GAAe,CAC7D,IAAI72D,EAAOthI,EAAQshI,KACfhjB,EAAUt+G,EAAQs+G,QAClB85E,EAAiB7yL,GAEhB4yL,IAAiB72D,IACpB82D,EAAiB7yL,EAAQ8yL,QAAU,SAASC,EAAYzhL,GACtD7hC,KAAK2wB,oBAAoB8U,EAAW69K,EAAah6E,GACjD/4G,EAAQz4B,KAAKkI,KAAM6hC,EACrB,EAEAtR,EAAQ8yL,OAASD,GAGnB7qJ,EAAK7nC,iBAAiB+U,EAAW29K,EAAgBF,GAAmBl4L,EAAUs+G,EAChF,CAEA/wE,EAAK7nC,iBAAiB+U,EAAWlV,EAASvF,EAC5C,ECpCA,SATA,SAA6ButC,EAAM9yB,EAAWlV,EAASvF,GACrD,IAAIs+G,EAAUt+G,GAA8B,mBAAZA,EAAwBA,EAAQs+G,QAAUt+G,EAC1EutC,EAAK5nC,oBAAoB8U,EAAWlV,EAAS+4G,GAEzC/4G,EAAQ8yL,QACV9qJ,EAAK5nC,oBAAoB8U,EAAWlV,EAAQ8yL,OAAQ/5E,EAExD,ECLA,SAPA,SAAgB/wE,EAAM9yB,EAAWlV,EAASvF,GAExC,OADA0F,GAAiB6nC,EAAM9yB,EAAWlV,EAASvF,GACpC,WACL2F,GAAoB4nC,EAAM9yB,EAAWlV,EAASvF,EAChD,CACF,ECEA,SAASu4L,GAAqBpqL,EAASqN,EAAUzjC,QAC/B,IAAZA,IACFA,EAAU,GAGZ,IAAIygN,GAAS,EACT7mC,EAAS1xI,YAAW,WACjBu4K,GCTM,SAAsBjrJ,EAAM9yB,EAAWu4F,EAASC,GAS7D,QARgB,IAAZD,IACFA,GAAU,QAGO,IAAfC,IACFA,GAAa,GAGX1lE,EAAM,CACR,IAAI12B,EAAQhP,SAAS4wL,YAAY,cACjC5hL,EAAM6hL,UAAUj+K,EAAWu4F,EAASC,GACpC1lE,EAAKqjE,cAAc/5F,EACrB,CACF,CDLiB2D,CAAarM,EAAS,iBAAiB,EACtD,GAAGqN,EAAWzjC,GACVwhK,EAASoE,GAAOxvI,EAAS,iBAAiB,WAC5CqqL,GAAS,CACX,GAAG,CACDl3D,MAAM,IAER,OAAO,WACLtpC,aAAa25D,GACbpY,GACF,CACF,CAEe,SAASo/C,GAAcxqL,EAAS5I,EAASiW,EAAUzjC,GAChD,MAAZyjC,IAAkBA,EA3BxB,SAAuB+xB,GACrB,IAAI37D,EAAM8iN,GAAInnJ,EAAM,uBAAyB,GACzC5c,GAA8B,IAAvB/+C,EAAI4B,QAAQ,MAAe,IAAO,EAC7C,OAAO2rH,WAAWvtH,GAAO++C,CAC3B,CAuBmCioK,CAAczqL,IAAY,GAC3D,IAAI0qL,EAAgBN,GAAqBpqL,EAASqN,EAAUzjC,GACxDwhK,EAASoE,GAAOxvI,EAAS,gBAAiB5I,GAC9C,OAAO,WACLszL,IACAt/C,GACF,CACF,CEpCA,SAASq/C,GAAcrrJ,EAAMhoE,GAC3B,MAAMqM,EAAM8iN,GAAInnJ,EAAMhoE,IAAa,GAC7BorD,GAA8B,IAAvB/+C,EAAI4B,QAAQ,MAAe,IAAO,EAC/C,OAAO2rH,WAAWvtH,GAAO++C,CAC3B,CACe,SAASmoK,GAAsB3qL,EAAS5I,GACrD,MAAMiW,EAAWo9K,GAAczqL,EAAS,sBAClCw1H,EAAQi1D,GAAczqL,EAAS,mBAC/BorI,EAASo/C,GAAcxqL,GAAShjC,IAChCA,EAAEmiB,SAAW6gB,IACforI,IACAh0I,EAAQp6B,GACV,GACCqwC,EAAWmoH,EAChB,CCOA,SAdA,WAAyC,QAAA5yI,EAAAjqB,UAAA3B,OAAP4zN,EAAK,IAAAhuN,MAAAgmB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAL8nM,EAAK9nM,GAAAnqB,UAAAmqB,GACrC,OAAO8nM,EAAMz3L,QAAO7B,GAAU,MAALA,IAAW/0B,QAAO,CAACO,EAAKw0B,KAC/C,GAAiB,oBAANA,EACT,MAAM,IAAI94B,MAAM,2EAElB,OAAY,OAARsE,EAAqBw0B,EAClB,WAAkC,QAAAqzK,EAAAhsM,UAAA3B,OAAN6rB,EAAI,IAAAjmB,MAAA+nM,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/hL,EAAI+hL,GAAAjsM,UAAAisM,GAErC9nM,EAAIimB,MAAMlc,KAAMgc,GAEhByO,EAAEvO,MAAMlc,KAAMgc,EAChB,CAAC,GACA,KACL,ECpBe,SAASgoM,GAAqBzrJ,GAE3CA,EAAK+yB,YACP,CCJA,MAAM24H,GAAUjzL,GAAQA,GAAsB,oBAARA,EAA2Bp4B,IAC/Do4B,EAAItZ,QAAU9e,CAAK,EADsCo4B,EA+B3D,SAHA,SAAuBkzL,EAAMC,GAC3B,OAAO5sE,EAAAA,EAAAA,UAAQ,IA1BV,SAAmB2sE,EAAMC,GAC9B,MAAMtgN,EAAIogN,GAAQC,GACZv0N,EAAIs0N,GAAQE,GAClB,OAAOvrN,IACDiL,GAAGA,EAAEjL,GACLjJ,GAAGA,EAAEiJ,EAAM,CAEnB,CAmBuBwrN,CAAUF,EAAMC,IAAO,CAACD,EAAMC,GACrD,EC9Be,SAASE,GAAgBC,GACtC,OAAIA,GAAsB,aAAcA,EAC/B/3B,GAAAA,YAAqB+3B,GAED,MAAtBA,EAA6BA,EAAqB,IAC3D,CCEA,MAAMC,GAAiCr2L,EAAAA,YAAiB,CAAAlQ,EAWrDgT,KAAQ,IAX8C,QACvDoxL,EAAO,WACPC,EAAU,UACVF,EAAS,OACTK,EAAM,UACNC,EAAS,SACTC,EAAQ,eACRI,EAAc,SACdt0H,EAAQ,SACRg2H,KACG/3L,GACJzO,EACC,MAAMwjM,GAAUjzL,EAAAA,EAAAA,QAAO,MACjBk2L,EAAYC,GAAclD,EAASgD,GACnCG,EAAY/jN,IAChB6jN,EAAUJ,GAAgBzjN,GAAG,EAEzBk1F,EAAYpqE,GAAYkpG,IACxBlpG,GAAY81L,EAAQ9pM,SACtBgU,EAAS81L,EAAQ9pM,QAASk9G,EAC5B,EAIIgwF,GAAc1tE,EAAAA,EAAAA,aAAYphD,EAAUssH,GAAU,CAACA,IAC/CyC,GAAiB3tE,EAAAA,EAAAA,aAAYphD,EAAUusH,GAAa,CAACA,IACrDyC,GAAgB5tE,EAAAA,EAAAA,aAAYphD,EAAUqsH,GAAY,CAACA,IACnD4C,GAAa7tE,EAAAA,EAAAA,aAAYphD,EAAU0sH,GAAS,CAACA,IAC7CwC,GAAgB9tE,EAAAA,EAAAA,aAAYphD,EAAU2sH,GAAY,CAACA,IACnDwC,GAAe/tE,EAAAA,EAAAA,aAAYphD,EAAU4sH,GAAW,CAACA,IACjDwC,GAAuBhuE,EAAAA,EAAAA,aAAYphD,EAAUgtH,GAAiB,CAACA,IAGrE,OAAoB97C,EAAAA,GAAAA,KAAKo5C,GAAY,CACnCpvL,IAAKA,KACFvE,EACH21L,QAASwC,EACTzC,UAAW2C,EACXzC,WAAYwC,EACZrC,OAAQuC,EACRrC,SAAUuC,EACVxC,UAAWuC,EACXlC,eAAgBoC,EAChB1D,QAASA,EACThzH,SAA8B,oBAAbA,EAA0B,CAACjtD,EAAQ4jL,IAEpD32H,EAASjtD,EAAQ,IACZ4jL,EACHn0L,IAAK2zL,IACWz2L,EAAAA,aAAmBsgE,EAAU,CAC7Cx9D,IAAK2zL,KAEP,IAEJ,MCrDMS,GAAU,CACd7zL,OAAQ,CAAC,YAAa,gBACtBtyB,MAAO,CAAC,aAAc,gBAExB,SAASomN,GAAyBC,EAAW5pM,GAC3C,MACM9iB,EAAQ8iB,EADC,SAAS4pM,EAAU,GAAGroM,gBAAgBqoM,EAAUvrN,MAAM,MAE/DwrN,EAAUH,GAAQE,GACxB,OAAO1sN,EAEPspB,SAASw9L,GAAIhkM,EAAM6pM,EAAQ,IAAK,IAEhCrjM,SAASw9L,GAAIhkM,EAAM6pM,EAAQ,IAAK,GAClC,CACA,MAAMC,GAAiB,CACrB,CAACxF,IAAS,WACV,CAACG,IAAU,aACX,CAACF,IAAW,aACZ,CAACC,IAAU,iBAEPuF,GAAwBv3L,EAAAA,YAAiB,CAAAlQ,EAgB5CgT,KAAQ,IAhBqC,QAC9CoxL,EAAO,WACPC,EAAU,UACVF,EAAS,OACTK,EAAM,UACNC,EAAS,UACT1kI,EAAS,SACTyQ,EAAQ,UACR82H,EAAY,SACZ1E,GAAI8E,GAAS,EAAK,QAClBzkD,EAAU,IAAG,aACb6/C,GAAe,EAAK,cACpBD,GAAgB,EAAK,OACrBL,GAAS,EAAK,kBACdmF,EAAoBN,MACjB54L,GACJzO,EAEC,MAAM4nM,EAAyC,oBAAdN,EAA2BA,IAAcA,EAGpEV,GAAcrtE,EAAAA,EAAAA,UAAQ,IAAMsuE,IAAsBnqM,IACtDA,EAAKgR,MAAMk5L,GAAqB,GAAG,GAClCxD,IAAU,CAACwD,EAAmBxD,IAC3ByC,GAAiBttE,EAAAA,EAAAA,UAAQ,IAAMsuE,IAAsBnqM,IACzD,MAAMoqM,EAAS,SAASF,EAAkB,GAAG3oM,gBAAgB2oM,EAAkB7rN,MAAM,KACrF2hB,EAAKgR,MAAMk5L,GAAqB,GAAGlqM,EAAKoqM,MAAW,GAClDzD,IAAa,CAACuD,EAAmBvD,IAC9ByC,GAAgBvtE,EAAAA,EAAAA,UAAQ,IAAMsuE,IAAsBnqM,IACxDA,EAAKgR,MAAMk5L,GAAqB,IAAI,GACnCzD,IAAY,CAACyD,EAAmBzD,IAG7B4C,GAAaxtE,EAAAA,EAAAA,UAAQ,IAAMsuE,IAAsBnqM,IACrDA,EAAKgR,MAAMk5L,GAAqB,GAAGD,EAAkBC,EAAmBlqM,OACxEsoM,GAAqBtoM,EAAK,GACzB8mM,IAAS,CAACA,EAAQmD,EAAmBC,IAClCZ,GAAgBztE,EAAAA,EAAAA,UAAQ,IAAMsuE,IAAsBnqM,IACxDA,EAAKgR,MAAMk5L,GAAqB,IAAI,GACnCnD,IAAY,CAACmD,EAAmBnD,IACnC,OAAoBz7C,EAAAA,GAAAA,KAAKu9C,GAAmB,CAC1CvzL,IAAKA,EACL8xL,eAAgBgB,MACbr3L,EACH,gBAAiBA,EAAMwkK,KAAOy0B,EAAS,KACvCtD,QAASwC,EACTvC,WAAYwC,EACZ1C,UAAW2C,EACXtC,OAAQuC,EACRtC,UAAWuC,EACXR,SAAUh2H,EAASx9D,IACnB4vL,GAAI8E,EACJzkD,QAASA,EACT6/C,aAAcA,EACdD,cAAeA,EACfL,OAAQA,EACRhyH,SAAUA,CAACoF,EAAOuxH,IAA4Bj3L,EAAAA,aAAmBsgE,EAAU,IACtE22H,EACHpnI,UAAW4rE,KAAW5rE,EAAWyQ,EAAS/hE,MAAMsxD,UAAWynI,GAAe5xH,GAA8B,UAAtBgyH,GAAiC,0BAErH,IAKJ,MC3FO,SAASG,GAAwBC,EAAgBC,GACtD,OAAOlwN,MAAMC,QAAQgwN,GAAkBA,EAAelhM,SAASmhM,GAAYD,IAAmBC,CAChG,CACA,MAAMvhI,GAAuBx2D,EAAAA,cAAoB,CAAC,GAClDw2D,GAAQ8pC,YAAc,mBACtB,YCIM03F,GAAiCh4L,EAAAA,YAAiB,CAAAlQ,EAOrDgT,KAAQ,IANT81I,GAAI7b,EAAY,MAAK,SACrB2b,EAAQ,UACR7oF,EAAS,SACTyQ,EAAQ,SACRy3H,KACGx5L,GACJzO,EACC,MAAM,eACJgoM,IACE7uE,EAAAA,EAAAA,YAAWgvE,IAEf,OADAv/C,EAAWN,GAAmBM,EAAU,uBACpBI,EAAAA,GAAAA,KAAKy+C,GAAU,CACjCz0L,IAAKA,EACL4vL,GAAImF,GAAwBC,EAAgBC,MACzCx5L,EACHsxD,UAAW4rE,KAAW5rE,EAAW6oF,GACjCp4E,UAAuBw4E,EAAAA,GAAAA,KAAK/b,EAAW,CACrCz8D,SAAUtgE,EAAAA,SAAe88H,KAAKx8D,MAEhC,IAEJ03H,GAAkB13F,YAAc,oBAChC,YChCM9pC,GAAuBx2D,EAAAA,cAAoB,CAC/C+3L,SAAU,KAEZvhI,GAAQ8pC,YAAc,uBACtB,YCEM43F,GAA6Bl4L,EAAAA,YAAiB,CAAAlQ,EAYjDgT,KAAQ,IAVT81I,GAAI7b,EAAY,MAAK,SACrB2b,EAAQ,UACR7oF,EAAS,QACTqkI,EAAO,WACPC,EAAU,UACVF,EAAS,OACTK,EAAM,UACNC,EAAS,SACTC,KACGj2L,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAU,kBACxC,MAAM,SACJq/C,IACE9uE,EAAAA,EAAAA,YAAWkvE,IACf,OAAoBr/C,EAAAA,GAAAA,KAAKk/C,GAAmB,CAC1CD,SAAUA,EACV7D,QAASA,EACTC,WAAYA,EACZF,UAAWA,EACXK,OAAQA,EACRC,UAAWA,EACXC,SAAUA,EACVl0H,UAAuBw4E,EAAAA,GAAAA,KAAK/b,EAAW,CACrCj6H,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAW6oF,MAEnC,IAEJw/C,GAAc53F,YAAc,gBAC5B,YCLA,MAAM83F,GAA+Bp4L,EAAAA,YAAiB,CAAAlQ,EAOnDgT,KAAQ,IALT81I,GAAI7b,EAAY,SAAQ,SACxB2b,EAAQ,UACR7oF,EAAS,QACTimC,KACGv3F,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAU,oBACxC,MAAM,SACJq/C,IACE9uE,EAAAA,EAAAA,YAAWkvE,IACTE,EAxCD,SAA4BN,EAAUjiG,GAC3C,MAAM,eACJgiG,EAAc,SACd97D,EAAQ,WACRs8D,IACErvE,EAAAA,EAAAA,YAAWgvE,IACf,OAAOhwN,IAKL,IAAIswN,EAAiBR,IAAaD,EAAiB,KAAOC,EACtDO,IAGEC,EAFA1wN,MAAMC,QAAQgwN,GACZA,EAAelhM,SAASmhM,GACTD,EAAe15L,QAAOxoB,GAAKA,IAAMmiN,IAEjC,IAAID,EAAgBC,GAItB,CAACA,IAGV,MAAZ/7D,GAAoBA,EAASu8D,EAAgBtwN,GAClC,MAAX6tH,GAAmBA,EAAQ7tH,EAAE,CAEjC,CAa2BuwN,CAAmBT,EAAUjiG,IAChD,eACJgiG,IACE7uE,EAAAA,EAAAA,YAAWgvE,IAIf,MAHkB,WAAdl7D,IACFx+H,EAAMjP,KAAO,WAEKwpJ,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACLgzF,QAASuiG,KACN95L,EACH,gBAAiB12B,MAAMC,QAAQgwN,GAAkBA,EAAelhM,SAASmhM,GAAYA,IAAaD,EAClGjoI,UAAW4rE,KAAW5rE,EAAW6oF,GAAWm/C,GAAwBC,EAAgBC,IAAa,cACjG,IAEJK,GAAgB93F,YAAc,kBAC9B,YC1DMm4F,GAA+Bz4L,EAAAA,YAAiB,CAAAlQ,EAQnDgT,KAAQ,IANT81I,GAAI7b,EAAY,KAAI,SACpB2b,EAAQ,UACR7oF,EAAS,SACTyQ,EAAQ,QACRw1B,KACGv3F,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,qBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAW6oF,GACjCp4E,UAAuBw4E,EAAAA,GAAAA,KAAKs/C,GAAiB,CAC3CtiG,QAASA,EACTx1B,SAAUA,KAEZ,IAEJm4H,GAAgBn4F,YAAc,kBAC9B,YCpBMo4F,GAA6B14L,EAAAA,YAAiB,CAAAlQ,EAOjDgT,KAAQ,IALT81I,GAAI7b,EAAY,MAAK,SACrB2b,EAAQ,UACR7oF,EAAS,SACTkoI,KACGx5L,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAU,kBACxC,MAAMigD,GAAetvE,EAAAA,EAAAA,UAAQ,KAAM,CACjC0uE,cACE,CAACA,IACL,OAAoBj/C,EAAAA,GAAAA,KAAKq/C,GAAqB36D,SAAU,CACtD9yJ,MAAOiuN,EACPr4H,UAAuBw4E,EAAAA,GAAAA,KAAK/b,EAAW,CACrCj6H,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAW6oF,MAEnC,IAEJggD,GAAcp4F,YAAc,gBAC5B,YChBMs4F,GAAyB54L,EAAAA,YAAiB,CAACzB,EAAOuE,KACtD,MAEE81I,GAAI7b,EAAY,MAAK,UACrB87D,EAAS,SACTngD,EAAQ,UACR7oF,EAAS,SACTmsE,EAAQ,MACR73C,EAAK,WACLm0G,KACGQ,GACD9I,GAAgBzxL,EAAO,CACzBs6L,UAAW,aAEPl/J,EAASy+G,GAAmBM,EAAU,aACtCigD,GAAetvE,EAAAA,EAAAA,UAAQ,KAAM,CACjCyuE,eAAgBe,EAChB78D,WACAs8D,gBACE,CAACO,EAAW78D,EAAUs8D,IAC1B,OAAoBx/C,EAAAA,GAAAA,KAAKm/C,GAAiBz6D,SAAU,CAClD9yJ,MAAOiuN,EACPr4H,UAAuBw4E,EAAAA,GAAAA,KAAK/b,EAAW,CACrCj6H,IAAKA,KACFg2L,EACHjpI,UAAW4rE,KAAW5rE,EAAWl2B,EAAQwqD,GAAS,GAAGxqD,cAEvD,IAEJi/J,GAAUt4F,YAAc,YACxB,SAAex9H,OAAOG,OAAO21N,GAAW,CACtC9J,OAAQsJ,GACRb,SAAUS,GACVe,KAAML,GACNM,OAAQP,GACRQ,KAAMf,KCxBR,SAfA,SAAoBpoM,GAA8B,IAA7B,KAAEkC,GAAwBlC,EAC7C,OACEgpJ,EAAAA,GAAAA,KAAC8/C,GAAS,CAACM,iBAAiB,IAAIrpI,UAAU,kCAAkCs0B,OAAK,EAAA7jB,SAE7EtuE,EAAKnC,KAAI,CAACtF,EAAqBjY,KAC7Bm8M,EAAAA,GAAAA,MAACmK,GAAUG,KAAI,CAAChB,SAAUzlN,EAAQ,GAAIu9E,UAAU,WAAUyQ,SAAA,EACxDw4E,EAAAA,GAAAA,KAAC8/C,GAAUI,OAAM,CAAA14H,SAAE/1E,EAAE4kE,SACrB2pF,EAAAA,GAAAA,KAAC8/C,GAAUK,KAAI,CAACx2F,wBAAyB,CAACma,OAAQryH,EAAE81B,UAFU,oBAAoB/tC,QAQ9F,ECGe,SAAS6mN,KACtB,OAAOl5L,EAAAA,EAAAA,UAAS,KAClB,CC5BA,IAAI86G,GAAMj4I,OAAOE,UAAU2G,eAE3B,SAASy6B,GAAKg1L,EAAMC,EAAKhvM,GACxB,IAAKA,KAAO+uM,EAAKthL,OAChB,GAAIwhL,GAAOjvM,EAAKgvM,GAAM,OAAOhvM,CAE/B,CAEO,SAASivM,GAAO7jM,EAAK8jM,GAC3B,IAAIloN,EAAM3B,EAAKL,EACf,GAAIomB,IAAQ8jM,EAAK,OAAO,EAExB,GAAI9jM,GAAO8jM,IAAQloN,EAAKokB,EAAItzB,eAAiBo3N,EAAIp3N,YAAa,CAC7D,GAAIkP,IAAS+6D,KAAM,OAAO32C,EAAI+jM,YAAcD,EAAIC,UAChD,GAAInoN,IAAS0pJ,OAAQ,OAAOtlI,EAAIzpB,aAAeutN,EAAIvtN,WAEnD,GAAIqF,IAASxJ,MAAO,CACnB,IAAK6H,EAAI+lB,EAAIxzB,UAAYs3N,EAAIt3N,OAC5B,KAAOyN,KAAS4pN,GAAO7jM,EAAI/lB,GAAM6pN,EAAI7pN,MAEtC,OAAgB,IAATA,CACR,CAEA,GAAI2B,IAASqsH,IAAK,CACjB,GAAIjoG,EAAI7nB,OAAS2rN,EAAI3rN,KACpB,OAAO,EAER,IAAK8B,KAAO+lB,EAAK,CAEhB,IADApmB,EAAMK,IACoB,kBAARL,KACjBA,EAAM+0B,GAAKm1L,EAAKlqN,IACN,OAAO,EAElB,IAAKkqN,EAAIx+E,IAAI1rI,GAAM,OAAO,CAC3B,CACA,OAAO,CACR,CAEA,GAAIgC,IAAS6e,IAAK,CACjB,GAAIuF,EAAI7nB,OAAS2rN,EAAI3rN,KACpB,OAAO,EAER,IAAK8B,KAAO+lB,EAAK,CAEhB,IADApmB,EAAMK,EAAI,KACgB,kBAARL,KACjBA,EAAM+0B,GAAKm1L,EAAKlqN,IACN,OAAO,EAElB,IAAKiqN,GAAO5pN,EAAI,GAAI6pN,EAAIvvM,IAAI3a,IAC3B,OAAO,CAET,CACA,OAAO,CACR,CAEA,GAAIgC,IAASggB,YACZoE,EAAM,IAAI/zB,WAAW+zB,GACrB8jM,EAAM,IAAI73N,WAAW63N,QACf,GAAIloN,IAASooN,SAAU,CAC7B,IAAK/pN,EAAI+lB,EAAI3mB,cAAgByqN,EAAIzqN,WAChC,KAAOY,KAAS+lB,EAAIikM,QAAQhqN,KAAS6pN,EAAIG,QAAQhqN,KAElD,OAAgB,IAATA,CACR,CAEA,GAAI2hB,YAAYC,OAAOmE,GAAM,CAC5B,IAAK/lB,EAAI+lB,EAAI3mB,cAAgByqN,EAAIzqN,WAChC,KAAOY,KAAS+lB,EAAI/lB,KAAS6pN,EAAI7pN,KAElC,OAAgB,IAATA,CACR,CAEA,IAAK2B,GAAuB,kBAARokB,EAAkB,CAErC,IAAKpkB,KADL3B,EAAM,EACO+lB,EAAK,CACjB,GAAIslH,GAAInxI,KAAK6rB,EAAKpkB,MAAW3B,IAAQqrI,GAAInxI,KAAK2vN,EAAKloN,GAAO,OAAO,EACjE,KAAMA,KAAQkoN,KAASD,GAAO7jM,EAAIpkB,GAAOkoN,EAAIloN,IAAQ,OAAO,CAC7D,CACA,OAAOvO,OAAOg1C,KAAKyhL,GAAKt3N,SAAWyN,CACpC,CACD,CAEA,OAAO+lB,IAAQA,GAAO8jM,IAAQA,CAC/B,CC7De,SAASI,KACtB,MAAMC,GAAUv5L,EAAAA,EAAAA,SAAO,GACjB6pH,GAAY7pH,EAAAA,EAAAA,SAAO,IAAMu5L,EAAQpwM,UAOvC,OANAuY,EAAAA,EAAAA,YAAU,KACR63L,EAAQpwM,SAAU,EACX,KACLowM,EAAQpwM,SAAU,CAAK,IAExB,IACI0gI,EAAU1gI,OACnB,CCVA,SAPA,SAAsBk8E,GACpB,MAAMwkD,EAAYyvE,KAClB,MAAO,CAACj0H,EAAM,IAAIsjD,EAAAA,EAAAA,cAAY4nE,IAC5B,GAAK1mE,IACL,OAAOxkD,EAAM,GAAGkrH,EAAU,GACzB,CAAC1mE,EAAWxkD,EAAM,KACvB,ECpBe,SAASm0H,GAAiBC,GACvC,OAAOA,EAAUp0N,MAAM,KAAK,EAC9B,CCHe,SAASq0N,GAAU1vJ,GAChC,GAAY,MAARA,EACF,OAAOj4D,OAGT,GAAwB,oBAApBi4D,EAAKr+D,WAAkC,CACzC,IAAIm2H,EAAgB93D,EAAK83D,cACzB,OAAOA,GAAgBA,EAAckW,aAAwBjmI,MAC/D,CAEA,OAAOi4D,CACT,CCTA,SAASoxD,GAAUpxD,GAEjB,OAAOA,aADU0vJ,GAAU1vJ,GAAMsxD,SACItxD,aAAgBsxD,OACvD,CAEA,SAASq+F,GAAc3vJ,GAErB,OAAOA,aADU0vJ,GAAU1vJ,GAAM4vJ,aACI5vJ,aAAgB4vJ,WACvD,CAEA,SAASC,GAAa7vJ,GAEpB,MAA0B,qBAAf8vJ,aAKJ9vJ,aADU0vJ,GAAU1vJ,GAAM8vJ,YACI9vJ,aAAgB8vJ,WACvD,CCpBO,IAAIpnN,GAAM/O,KAAK+O,IACXF,GAAM7O,KAAK6O,IACX0N,GAAQvc,KAAKuc,MCFT,SAAS65M,KACtB,IAAIC,EAASl0L,UAAU4+H,cAEvB,OAAc,MAAVs1D,GAAkBA,EAAOC,QAAUzyN,MAAMC,QAAQuyN,EAAOC,QACnDD,EAAOC,OAAOzqM,KAAI,SAAUT,GACjC,OAAOA,EAAKmrM,MAAQ,IAAMnrM,EAAK8N,OACjC,IAAG9sB,KAAK,KAGH+1B,UAAU4D,SACnB,CCTe,SAASywL,KACtB,OAAQ,iCAAiC1wL,KAAKswL,KAChD,CCCe,SAASj3L,GAAsB8H,EAASwvL,EAAcC,QAC9C,IAAjBD,IACFA,GAAe,QAGO,IAApBC,IACFA,GAAkB,GAGpB,IAAIC,EAAa1vL,EAAQ9H,wBACrB2iC,EAAS,EACTC,EAAS,EAET00J,GAAgBT,GAAc/uL,KAChC66B,EAAS76B,EAAQ0/B,YAAc,GAAIpqD,GAAMo6M,EAAW5pN,OAASk6B,EAAQ0/B,aAAmB,EACxF5E,EAAS96B,EAAQmyD,aAAe,GAAI78E,GAAMo6M,EAAWt3L,QAAU4H,EAAQmyD,cAAoB,GAG7F,IACIw9H,GADOn/F,GAAUxwF,GAAW8uL,GAAU9uL,GAAW74B,QAC3BwoN,eAEtBC,GAAoBL,MAAsBE,EAC1C5tN,GAAK6tN,EAAW3nN,MAAQ6nN,GAAoBD,EAAiBA,EAAeE,WAAa,IAAMh1J,EAC/F1nD,GAAKu8M,EAAWv3L,KAAOy3L,GAAoBD,EAAiBA,EAAeG,UAAY,IAAMh1J,EAC7Fh1D,EAAQ4pN,EAAW5pN,MAAQ+0D,EAC3BziC,EAASs3L,EAAWt3L,OAAS0iC,EACjC,MAAO,CACLh1D,MAAOA,EACPsyB,OAAQA,EACRD,IAAKhlB,EACLnL,MAAOnG,EAAIiE,EACXg4D,OAAQ3qD,EAAIilB,EACZrwB,KAAMlG,EACNA,EAAGA,EACHsR,EAAGA,EAEP,CCrCe,SAAS48M,GAAc/vL,GACpC,IAAI0vL,EAAax3L,GAAsB8H,GAGnCl6B,EAAQk6B,EAAQ0/B,YAChBtnC,EAAS4H,EAAQmyD,aAUrB,OARIp5F,KAAK+S,IAAI4jN,EAAW5pN,MAAQA,IAAU,IACxCA,EAAQ4pN,EAAW5pN,OAGjB/M,KAAK+S,IAAI4jN,EAAWt3L,OAASA,IAAW,IAC1CA,EAASs3L,EAAWt3L,QAGf,CACLv2B,EAAGm+B,EAAQ6vL,WACX18M,EAAG6sB,EAAQ8vL,UACXhqN,MAAOA,EACPsyB,OAAQA,EAEZ,CCvBe,SAAS+gF,GAASr5C,EAAQk+D,GACvC,IAAIgyF,EAAWhyF,EAAMiyF,aAAejyF,EAAMiyF,cAE1C,GAAInwJ,EAAOq5C,SAAS6kB,GAClB,OAAO,EAEJ,GAAIgyF,GAAYf,GAAae,GAAW,CACzC,IAAIjyM,EAAOigH,EAEX,EAAG,CACD,GAAIjgH,GAAQ+hD,EAAOowJ,WAAWnyM,GAC5B,OAAO,EAITA,EAAOA,EAAKmhD,YAAcnhD,EAAK4pL,IACjC,OAAS5pL,EACX,CAGF,OAAO,CACT,CCtBe,SAASoyM,GAAYnwL,GAClC,OAAOA,GAAWA,EAAQ81F,UAAY,IAAIvuG,cAAgB,IAC5D,CCDe,SAASwpG,GAAiB/wF,GACvC,OAAO8uL,GAAU9uL,GAAS+wF,iBAAiB/wF,EAC7C,CCFe,SAASowL,GAAepwL,GACrC,MAAO,CAAC,QAAS,KAAM,MAAM36B,QAAQ8qN,GAAYnwL,KAAa,CAChE,CCFe,SAASqwL,GAAmBrwL,GAEzC,QAASwwF,GAAUxwF,GAAWA,EAAQk3F,cACtCl3F,EAAQtG,WAAavyB,OAAOuyB,UAAUuzG,eACxC,CCFe,SAASqjF,GAActwL,GACpC,MAA6B,SAAzBmwL,GAAYnwL,GACPA,EAMPA,EAAQuwL,cACRvwL,EAAQk/B,aACR+vJ,GAAajvL,GAAWA,EAAQ2nK,KAAO,OAEvC0oB,GAAmBrwL,EAGvB,CCVA,SAASwwL,GAAoBxwL,GAC3B,OAAK+uL,GAAc/uL,IACoB,UAAvC+wF,GAAiB/wF,GAAS50B,SAInB40B,EAAQywL,aAHN,IAIX,CAwCe,SAASC,GAAgB1wL,GAItC,IAHA,IAAI74B,EAAS2nN,GAAU9uL,GACnBywL,EAAeD,GAAoBxwL,GAEhCywL,GAAgBL,GAAeK,IAA6D,WAA5C1/F,GAAiB0/F,GAAcrlN,UACpFqlN,EAAeD,GAAoBC,GAGrC,OAAIA,IAA+C,SAA9BN,GAAYM,IAA0D,SAA9BN,GAAYM,IAAwE,WAA5C1/F,GAAiB0/F,GAAcrlN,UAC3HjE,EAGFspN,GAhDT,SAA4BzwL,GAC1B,IAAI2wL,EAAY,WAAW9xL,KAAKswL,MAGhC,GAFW,WAAWtwL,KAAKswL,OAEfJ,GAAc/uL,IAII,UAFX+wF,GAAiB/wF,GAEnB50B,SACb,OAAO,KAIX,IAAIwlN,EAAcN,GAActwL,GAMhC,IAJIivL,GAAa2B,KACfA,EAAcA,EAAYjpB,MAGrBonB,GAAc6B,IAAgB,CAAC,OAAQ,QAAQvrN,QAAQ8qN,GAAYS,IAAgB,GAAG,CAC3F,IAAIrK,EAAMx1F,GAAiB6/F,GAI3B,GAAsB,SAAlBrK,EAAIvyM,WAA4C,SAApBuyM,EAAIrwH,aAA0C,UAAhBqwH,EAAIsK,UAAiF,IAA1D,CAAC,YAAa,eAAexrN,QAAQkhN,EAAIuK,aAAsBH,GAAgC,WAAnBpK,EAAIuK,YAA2BH,GAAapK,EAAIpzL,QAAyB,SAAfozL,EAAIpzL,OACjO,OAAOy9L,EAEPA,EAAcA,EAAY1xJ,UAE9B,CAEA,OAAO,IACT,CAgByB6xJ,CAAmB/wL,IAAY74B,CACxD,CCpEe,SAAS6pN,GAAyBnC,GAC/C,MAAO,CAAC,MAAO,UAAUxpN,QAAQwpN,IAAc,EAAI,IAAM,GAC3D,CCDO,SAASoC,GAAOrpN,EAAKnI,EAAOqI,GACjC,OAAOopN,GAAQtpN,EAAKupN,GAAQ1xN,EAAOqI,GACrC,CCFe,SAASspN,GAAmBC,GACzC,OAAOx5N,OAAOG,OAAO,CAAC,ECDf,CACLmgC,IAAK,EACLnwB,MAAO,EACP81D,OAAQ,EACR/1D,KAAM,GDHuCspN,EACjD,CEHe,SAASC,GAAgB7xN,EAAOotC,GAC7C,OAAOA,EAAKtwC,QAAO,SAAUg1N,EAASnyM,GAEpC,OADAmyM,EAAQnyM,GAAO3f,EACR8xN,CACT,GAAG,CAAC,EACN,CCLO,IAAIp5L,GAAM,MACN2lC,GAAS,SACT91D,GAAQ,QACRD,GAAO,OACPypN,GAAO,OACPC,GAAiB,CAACt5L,GAAK2lC,GAAQ91D,GAAOD,IACtCvH,GAAQ,QACR8E,GAAM,MACNosN,GAAkB,kBAClBC,GAAW,WACXC,GAAS,SACTC,GAAY,YACZC,GAAmCL,GAAel1N,QAAO,SAAUO,EAAK+xN,GACjF,OAAO/xN,EAAIwkB,OAAO,CAACutM,EAAY,IAAMruN,GAAOquN,EAAY,IAAMvpN,IAChE,GAAG,IACQysN,GAA0B,GAAGzwM,OAAOmwM,GAAgB,CAACD,KAAOj1N,QAAO,SAAUO,EAAK+xN,GAC3F,OAAO/xN,EAAIwkB,OAAO,CAACutM,EAAWA,EAAY,IAAMruN,GAAOquN,EAAY,IAAMvpN,IAC3E,GAAG,IAaQ0sN,GAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cCoDxB,UACE55N,KAAM,QACN+tG,SAAS,EACT8rH,MAAO,OACP3vM,GApEF,SAAeuC,GACb,IAAIqtM,EAEAz3H,EAAQ51E,EAAK41E,MACbriG,EAAOysB,EAAKzsB,KACZy5B,EAAUhN,EAAKgN,QACfsgM,EAAe13H,EAAMp/B,SAAS+2J,MAC9BC,EAAgB53H,EAAM63H,cAAcD,cACpCE,EAAgB3D,GAAiBn0H,EAAMo0H,WACvC3sD,EAAO8uD,GAAyBuB,GAEhC9tN,EADa,CAACsD,GAAMC,IAAO3C,QAAQktN,IAAkB,EAClC,SAAW,QAElC,GAAKJ,GAAiBE,EAAtB,CAIA,IAAIhB,EAxBgB,SAAyBznN,EAAS6wF,GAItD,OAAO22H,GAAsC,kBAH7CxnN,EAA6B,oBAAZA,EAAyBA,EAAQ/R,OAAOG,OAAO,CAAC,EAAGyiG,EAAM+3H,MAAO,CAC/E3D,UAAWp0H,EAAMo0H,aACbjlN,GACkDA,EAAU0nN,GAAgB1nN,EAAS6nN,IAC7F,CAmBsBgB,CAAgB5gM,EAAQjoB,QAAS6wF,GACjDi4H,EAAY3C,GAAcoC,GAC1BQ,EAAmB,MAATzwD,EAAe/pI,GAAMpwB,GAC/B6qN,EAAmB,MAAT1wD,EAAepkG,GAAS91D,GAClC6qN,EAAUp4H,EAAM+3H,MAAMX,UAAUptN,GAAOg2F,EAAM+3H,MAAMX,UAAU3vD,GAAQmwD,EAAcnwD,GAAQznE,EAAM+3H,MAAMZ,OAAOntN,GAC9GquN,EAAYT,EAAcnwD,GAAQznE,EAAM+3H,MAAMX,UAAU3vD,GACxD6wD,EAAoBrC,GAAgByB,GACpCa,EAAaD,EAA6B,MAAT7wD,EAAe6wD,EAAkBE,cAAgB,EAAIF,EAAkBG,aAAe,EAAI,EAC3HC,EAAoBN,EAAU,EAAIC,EAAY,EAG9ClrN,EAAMypN,EAAcsB,GACpB7qN,EAAMkrN,EAAaN,EAAUjuN,GAAO4sN,EAAcuB,GAClD15J,EAAS85J,EAAa,EAAIN,EAAUjuN,GAAO,EAAI0uN,EAC/C17N,EAASw5N,GAAOrpN,EAAKsxD,EAAQpxD,GAE7BsrN,EAAWlxD,EACfznE,EAAM63H,cAAcl6N,KAAS85N,EAAwB,CAAC,GAAyBkB,GAAY37N,EAAQy6N,EAAsBmB,aAAe57N,EAASyhE,EAAQg5J,EAnBzJ,CAoBF,EAkCE5iJ,OAhCF,SAAgBl2C,GACd,IAAIqhE,EAAQrhE,EAAMqhE,MAEd64H,EADUl6L,EAAMvH,QACWmO,QAC3BmyL,OAAoC,IAArBmB,EAA8B,sBAAwBA,EAErD,MAAhBnB,IAKwB,kBAAjBA,IACTA,EAAe13H,EAAMp/B,SAASu2J,OAAOrmD,cAAc4mD,MAOhDh5G,GAAS1e,EAAMp/B,SAASu2J,OAAQO,KAIrC13H,EAAMp/B,SAAS+2J,MAAQD,EACzB,EASEoB,SAAU,CAAC,iBACXC,iBAAkB,CAAC,oBCxFN,SAASC,GAAa5E,GACnC,OAAOA,EAAUp0N,MAAM,KAAK,EAC9B,CCOA,IAAIi5N,GAAa,CACfv7L,IAAK,OACLnwB,MAAO,OACP81D,OAAQ,OACR/1D,KAAM,QAeD,SAAS4rN,GAAYv6L,GAC1B,IAAIw6L,EAEAhC,EAASx4L,EAAMw4L,OACfiC,EAAaz6L,EAAMy6L,WACnBhF,EAAYz1L,EAAMy1L,UAClBiF,EAAY16L,EAAM06L,UAClBC,EAAU36L,EAAM26L,QAChB3oN,EAAWguB,EAAMhuB,SACjB4oN,EAAkB56L,EAAM46L,gBACxBC,EAAW76L,EAAM66L,SACjBC,EAAe96L,EAAM86L,aACrBC,EAAU/6L,EAAM+6L,QAChBC,EAAaL,EAAQlyN,EACrBA,OAAmB,IAAfuyN,EAAwB,EAAIA,EAChCC,EAAaN,EAAQ5gN,EACrBA,OAAmB,IAAfkhN,EAAwB,EAAIA,EAEhCt6L,EAAgC,oBAAjBm6L,EAA8BA,EAAa,CAC5DryN,EAAGA,EACHsR,EAAGA,IACA,CACHtR,EAAGA,EACHsR,EAAGA,GAGLtR,EAAIk4B,EAAMl4B,EACVsR,EAAI4mB,EAAM5mB,EACV,IAAImhN,EAAOP,EAAQr1N,eAAe,KAC9B61N,EAAOR,EAAQr1N,eAAe,KAC9B81N,EAAQzsN,GACR0sN,EAAQt8L,GACRu8L,EAAMvtN,OAEV,GAAI8sN,EAAU,CACZ,IAAIxD,EAAeC,GAAgBkB,GAC/B+C,EAAa,eACbC,EAAY,cAchB,GAZInE,IAAiB3B,GAAU8C,IAGmB,WAA5C7gG,GAFJ0/F,EAAeJ,GAAmBuB,IAECxmN,UAAsC,aAAbA,IAC1DupN,EAAa,eACbC,EAAY,eAOZ/F,IAAc12L,KAAQ02L,IAAc9mN,IAAQ8mN,IAAc7mN,KAAU8rN,IAAcxuN,GACpFmvN,EAAQ32J,GAGR3qD,IAFcghN,GAAW1D,IAAiBiE,GAAOA,EAAI/E,eAAiB+E,EAAI/E,eAAev3L,OACzFq4L,EAAakE,IACEd,EAAWz7L,OAC1BjlB,GAAK6gN,EAAkB,GAAK,EAG9B,GAAInF,IAAc9mN,KAAS8mN,IAAc12L,IAAO02L,IAAc/wJ,KAAWg2J,IAAcxuN,GACrFkvN,EAAQxsN,GAGRnG,IAFcsyN,GAAW1D,IAAiBiE,GAAOA,EAAI/E,eAAiB+E,EAAI/E,eAAe7pN,MACzF2qN,EAAamE,IACEf,EAAW/tN,MAC1BjE,GAAKmyN,EAAkB,GAAK,CAEhC,CAEA,IAgBMa,EAhBFC,EAAej9N,OAAOG,OAAO,CAC/BoT,SAAUA,GACT6oN,GAAYP,IAEXl5L,GAAyB,IAAjB05L,EAlFd,SAA2BrvM,EAAM6vM,GAC/B,IAAI7yN,EAAIgjB,EAAKhjB,EACTsR,EAAI0R,EAAK1R,EACTq4E,EAAMkpI,EAAIjpI,kBAAoB,EAClC,MAAO,CACL5pF,EAAGyT,GAAMzT,EAAI2pF,GAAOA,GAAO,EAC3Br4E,EAAGmC,GAAMnC,EAAIq4E,GAAOA,GAAO,EAE/B,CA0EsCupI,CAAkB,CACpDlzN,EAAGA,EACHsR,EAAGA,GACF27M,GAAU8C,IAAW,CACtB/vN,EAAGA,EACHsR,EAAGA,GAML,OAHAtR,EAAI24B,EAAM34B,EACVsR,EAAIqnB,EAAMrnB,EAEN6gN,EAGKn8N,OAAOG,OAAO,CAAC,EAAG88N,IAAeD,EAAiB,CAAC,GAAkBJ,GAASF,EAAO,IAAM,GAAIM,EAAeL,GAASF,EAAO,IAAM,GAAIO,EAAe7gN,WAAa0gN,EAAIjpI,kBAAoB,IAAM,EAAI,aAAe5pF,EAAI,OAASsR,EAAI,MAAQ,eAAiBtR,EAAI,OAASsR,EAAI,SAAU0hN,IAG5Rh9N,OAAOG,OAAO,CAAC,EAAG88N,IAAelB,EAAkB,CAAC,GAAmBa,GAASF,EAAOphN,EAAI,KAAO,GAAIygN,EAAgBY,GAASF,EAAOzyN,EAAI,KAAO,GAAI+xN,EAAgB5/M,UAAY,GAAI4/M,GAC9L,CA4CA,UACEx7N,KAAM,gBACN+tG,SAAS,EACT8rH,MAAO,cACP3vM,GA9CF,SAAuBqlK,GACrB,IAAIltF,EAAQktF,EAAMltF,MACd5oE,EAAU81J,EAAM91J,QAChBmjM,EAAwBnjM,EAAQmiM,gBAChCA,OAA4C,IAA1BgB,GAA0CA,EAC5DC,EAAoBpjM,EAAQoiM,SAC5BA,OAAiC,IAAtBgB,GAAsCA,EACjDC,EAAwBrjM,EAAQqiM,aAChCA,OAAyC,IAA1BgB,GAA0CA,EACzDJ,EAAe,CACjBjG,UAAWD,GAAiBn0H,EAAMo0H,WAClCiF,UAAWL,GAAah5H,EAAMo0H,WAC9B+C,OAAQn3H,EAAMp/B,SAASu2J,OACvBiC,WAAYp5H,EAAM+3H,MAAMZ,OACxBoC,gBAAiBA,EACjBG,QAAoC,UAA3B15H,EAAM5oE,QAAQsjM,UAGgB,MAArC16H,EAAM63H,cAAcD,gBACtB53H,EAAMxgC,OAAO23J,OAAS/5N,OAAOG,OAAO,CAAC,EAAGyiG,EAAMxgC,OAAO23J,OAAQ+B,GAAY97N,OAAOG,OAAO,CAAC,EAAG88N,EAAc,CACvGf,QAASt5H,EAAM63H,cAAcD,cAC7BjnN,SAAUqvF,EAAM5oE,QAAQsjM,SACxBlB,SAAUA,EACVC,aAAcA,OAIe,MAA7Bz5H,EAAM63H,cAAcF,QACtB33H,EAAMxgC,OAAOm4J,MAAQv6N,OAAOG,OAAO,CAAC,EAAGyiG,EAAMxgC,OAAOm4J,MAAOuB,GAAY97N,OAAOG,OAAO,CAAC,EAAG88N,EAAc,CACrGf,QAASt5H,EAAM63H,cAAcF,MAC7BhnN,SAAU,WACV6oN,UAAU,EACVC,aAAcA,OAIlBz5H,EAAMlqD,WAAWqhL,OAAS/5N,OAAOG,OAAO,CAAC,EAAGyiG,EAAMlqD,WAAWqhL,OAAQ,CACnE,wBAAyBn3H,EAAMo0H,WAEnC,EAQE9nM,KAAM,CAAC,GCrKT,IAAIqpH,GAAU,CACZA,SAAS,GAsCX,UACEh4I,KAAM,iBACN+tG,SAAS,EACT8rH,MAAO,QACP3vM,GAAI,WAAe,EACnBgtD,OAxCF,SAAgBzqD,GACd,IAAI41E,EAAQ51E,EAAK41E,MACbo1C,EAAWhrH,EAAKgrH,SAChBh+G,EAAUhN,EAAKgN,QACfujM,EAAkBvjM,EAAQ86L,OAC1BA,OAA6B,IAApByI,GAAoCA,EAC7CC,EAAkBxjM,EAAQqgB,OAC1BA,OAA6B,IAApBmjL,GAAoCA,EAC7CluN,EAAS2nN,GAAUr0H,EAAMp/B,SAASu2J,QAClC0D,EAAgB,GAAGh0M,OAAOm5E,EAAM66H,cAAczD,UAAWp3H,EAAM66H,cAAc1D,QAYjF,OAVIjF,GACF2I,EAAchxM,SAAQ,SAAUixM,GAC9BA,EAAah+L,iBAAiB,SAAUs4G,EAAS30D,OAAQk1D,GAC3D,IAGEl+F,GACF/qC,EAAOowB,iBAAiB,SAAUs4G,EAAS30D,OAAQk1D,IAG9C,WACDu8E,GACF2I,EAAchxM,SAAQ,SAAUixM,GAC9BA,EAAa/9L,oBAAoB,SAAUq4G,EAAS30D,OAAQk1D,GAC9D,IAGEl+F,GACF/qC,EAAOqwB,oBAAoB,SAAUq4G,EAAS30D,OAAQk1D,GAE1D,CACF,EASErpH,KAAM,CAAC,GC/CT,IAAIonJ,GAAO,CACTpmK,KAAM,QACNC,MAAO,OACP81D,OAAQ,MACR3lC,IAAK,UAEQ,SAASq9L,GAAqB3G,GAC3C,OAAOA,EAAUzmN,QAAQ,0BAA0B,SAAUqtN,GAC3D,OAAOtnD,GAAKsnD,EACd,GACF,CCVA,IAAItnD,GAAO,CACT3tK,MAAO,MACP8E,IAAK,SAEQ,SAASowN,GAA8B7G,GACpD,OAAOA,EAAUzmN,QAAQ,cAAc,SAAUqtN,GAC/C,OAAOtnD,GAAKsnD,EACd,GACF,CCPe,SAASE,GAAgBv2J,GACtC,IAAIs1J,EAAM5F,GAAU1vJ,GAGpB,MAAO,CACL6uE,WAHeymF,EAAIkB,YAInB1nF,UAHcwmF,EAAImB,YAKtB,CCNe,SAASC,GAAoB91L,GAQ1C,OAAO9H,GAAsBm4L,GAAmBrwL,IAAUj4B,KAAO4tN,GAAgB31L,GAASiuG,UAC5F,CCXe,SAAS8nF,GAAe/1L,GAErC,IAAIg2L,EAAoBjlG,GAAiB/wF,GACrC63D,EAAWm+H,EAAkBn+H,SAC7Bo+H,EAAYD,EAAkBC,UAC9BC,EAAYF,EAAkBE,UAElC,MAAO,6BAA6Br3L,KAAKg5D,EAAWq+H,EAAYD,EAClE,CCLe,SAASE,GAAgB/2J,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAa/5D,QAAQ8qN,GAAY/wJ,KAAU,EAEvDA,EAAK83D,cAAc9hF,KAGxB25K,GAAc3vJ,IAAS22J,GAAe32J,GACjCA,EAGF+2J,GAAgB7F,GAAclxJ,GACvC,CCJe,SAASg3J,GAAkBp2L,EAASjV,GACjD,IAAIsrM,OAES,IAATtrM,IACFA,EAAO,IAGT,IAAIwqM,EAAeY,GAAgBn2L,GAC/Bs2L,EAASf,KAAqE,OAAlDc,EAAwBr2L,EAAQk3F,oBAAyB,EAASm/F,EAAsBjhL,MACpHs/K,EAAM5F,GAAUyG,GAChBp2M,EAASm3M,EAAS,CAAC5B,GAAKpzM,OAAOozM,EAAI/E,gBAAkB,GAAIoG,GAAeR,GAAgBA,EAAe,IAAMA,EAC7GgB,EAAcxrM,EAAKzJ,OAAOnC,GAC9B,OAAOm3M,EAASC,EAChBA,EAAYj1M,OAAO80M,GAAkB9F,GAAcnxM,IACrD,CCzBe,SAASq3M,GAAiB/qJ,GACvC,OAAO5zE,OAAOG,OAAO,CAAC,EAAGyzE,EAAM,CAC7B1jE,KAAM0jE,EAAK5pE,EACXs2B,IAAKszC,EAAKt4D,EACVnL,MAAOyjE,EAAK5pE,EAAI4pE,EAAK3lE,MACrBg4D,OAAQ2N,EAAKt4D,EAAIs4D,EAAKrzC,QAE1B,CCqBA,SAASq+L,GAA2Bz2L,EAAS02L,EAAgBvB,GAC3D,OAAOuB,IAAmB/E,GAAW6E,GCzBxB,SAAyBx2L,EAASm1L,GAC/C,IAAIT,EAAM5F,GAAU9uL,GAChB22L,EAAOtG,GAAmBrwL,GAC1B2vL,EAAiB+E,EAAI/E,eACrB7pN,EAAQ6wN,EAAKzD,YACb96L,EAASu+L,EAAK1D,aACdpxN,EAAI,EACJsR,EAAI,EAER,GAAIw8M,EAAgB,CAClB7pN,EAAQ6pN,EAAe7pN,MACvBsyB,EAASu3L,EAAev3L,OACxB,IAAIw+L,EAAiBrH,MAEjBqH,IAAmBA,GAA+B,UAAbzB,KACvCtzN,EAAI8tN,EAAeE,WACnB18M,EAAIw8M,EAAeG,UAEvB,CAEA,MAAO,CACLhqN,MAAOA,EACPsyB,OAAQA,EACRv2B,EAAGA,EAAIi0N,GAAoB91L,GAC3B7sB,EAAGA,EAEP,CDDwD0jN,CAAgB72L,EAASm1L,IAAa3kG,GAAUkmG,GAdxG,SAAoC12L,EAASm1L,GAC3C,IAAI1pJ,EAAOvzC,GAAsB8H,GAAS,EAAoB,UAAbm1L,GASjD,OARA1pJ,EAAKtzC,IAAMszC,EAAKtzC,IAAM6H,EAAQ82L,UAC9BrrJ,EAAK1jE,KAAO0jE,EAAK1jE,KAAOi4B,EAAQ+2L,WAChCtrJ,EAAK3N,OAAS2N,EAAKtzC,IAAM6H,EAAQizL,aACjCxnJ,EAAKzjE,MAAQyjE,EAAK1jE,KAAOi4B,EAAQkzL,YACjCznJ,EAAK3lE,MAAQk6B,EAAQkzL,YACrBznJ,EAAKrzC,OAAS4H,EAAQizL,aACtBxnJ,EAAK5pE,EAAI4pE,EAAK1jE,KACd0jE,EAAKt4D,EAAIs4D,EAAKtzC,IACPszC,CACT,CAG0HurJ,CAA2BN,EAAgBvB,GAAYqB,GEtBlK,SAAyBx2L,GACtC,IAAIq2L,EAEAM,EAAOtG,GAAmBrwL,GAC1Bi3L,EAAYtB,GAAgB31L,GAC5BoV,EAA0D,OAAlDihL,EAAwBr2L,EAAQk3F,oBAAyB,EAASm/F,EAAsBjhL,KAChGtvC,EAAQgC,GAAI6uN,EAAKO,YAAaP,EAAKzD,YAAa99K,EAAOA,EAAK8hL,YAAc,EAAG9hL,EAAOA,EAAK89K,YAAc,GACvG96L,EAAStwB,GAAI6uN,EAAKQ,aAAcR,EAAK1D,aAAc79K,EAAOA,EAAK+hL,aAAe,EAAG/hL,EAAOA,EAAK69K,aAAe,GAC5GpxN,GAAKo1N,EAAUhpF,WAAa6nF,GAAoB91L,GAChD7sB,GAAK8jN,EAAU/oF,UAMnB,MAJiD,QAA7Cnd,GAAiB37E,GAAQuhL,GAAM3gM,YACjCn0B,GAAKiG,GAAI6uN,EAAKzD,YAAa99K,EAAOA,EAAK89K,YAAc,GAAKptN,GAGrD,CACLA,MAAOA,EACPsyB,OAAQA,EACRv2B,EAAGA,EACHsR,EAAGA,EAEP,CFCkMikN,CAAgB/G,GAAmBrwL,IACrO,CAsBe,SAASq3L,GAAgBr3L,EAASs3L,EAAUC,EAAcpC,GACvE,IAAIqC,EAAmC,oBAAbF,EAlB5B,SAA4Bt3L,GAC1B,IAAI0xL,EAAkB0E,GAAkB9F,GAActwL,IAElDy3L,EADoB,CAAC,WAAY,SAASpyN,QAAQ0rH,GAAiB/wF,GAAS50B,WAAa,GACnD2jN,GAAc/uL,GAAW0wL,GAAgB1wL,GAAWA,EAE9F,OAAKwwF,GAAUinG,GAKR/F,EAAgBv+L,QAAO,SAAUujM,GACtC,OAAOlmG,GAAUkmG,IAAmBv9G,GAASu9G,EAAgBe,IAAmD,SAAhCtH,GAAYuG,EAC9F,IANS,EAOX,CAK6DgB,CAAmB13L,GAAW,GAAG1e,OAAOg2M,GAC/F5F,EAAkB,GAAGpwM,OAAOk2M,EAAqB,CAACD,IAClDI,EAAsBjG,EAAgB,GACtCkG,EAAelG,EAAgBn1N,QAAO,SAAUs7N,EAASnB,GAC3D,IAAIjrJ,EAAOgrJ,GAA2Bz2L,EAAS02L,EAAgBvB,GAK/D,OAJA0C,EAAQ1/L,IAAMrwB,GAAI2jE,EAAKtzC,IAAK0/L,EAAQ1/L,KACpC0/L,EAAQ7vN,MAAQJ,GAAI6jE,EAAKzjE,MAAO6vN,EAAQ7vN,OACxC6vN,EAAQ/5J,OAASl2D,GAAI6jE,EAAK3N,OAAQ+5J,EAAQ/5J,QAC1C+5J,EAAQ9vN,KAAOD,GAAI2jE,EAAK1jE,KAAM8vN,EAAQ9vN,MAC/B8vN,CACT,GAAGpB,GAA2Bz2L,EAAS23L,EAAqBxC,IAK5D,OAJAyC,EAAa9xN,MAAQ8xN,EAAa5vN,MAAQ4vN,EAAa7vN,KACvD6vN,EAAax/L,OAASw/L,EAAa95J,OAAS85J,EAAaz/L,IACzDy/L,EAAa/1N,EAAI+1N,EAAa7vN,KAC9B6vN,EAAazkN,EAAIykN,EAAaz/L,IACvBy/L,CACT,CGjEe,SAASE,GAAejzM,GACrC,IAOIkvM,EAPAlC,EAAYhtM,EAAKgtM,UACjB7xL,EAAUnb,EAAKmb,QACf6uL,EAAYhqM,EAAKgqM,UACjB0D,EAAgB1D,EAAYD,GAAiBC,GAAa,KAC1DiF,EAAYjF,EAAY4E,GAAa5E,GAAa,KAClDkJ,EAAUlG,EAAUhwN,EAAIgwN,EAAU/rN,MAAQ,EAAIk6B,EAAQl6B,MAAQ,EAC9DkyN,EAAUnG,EAAU1+M,EAAI0+M,EAAUz5L,OAAS,EAAI4H,EAAQ5H,OAAS,EAGpE,OAAQm6L,GACN,KAAKp6L,GACH47L,EAAU,CACRlyN,EAAGk2N,EACH5kN,EAAG0+M,EAAU1+M,EAAI6sB,EAAQ5H,QAE3B,MAEF,KAAK0lC,GACHi2J,EAAU,CACRlyN,EAAGk2N,EACH5kN,EAAG0+M,EAAU1+M,EAAI0+M,EAAUz5L,QAE7B,MAEF,KAAKpwB,GACH+rN,EAAU,CACRlyN,EAAGgwN,EAAUhwN,EAAIgwN,EAAU/rN,MAC3BqN,EAAG6kN,GAEL,MAEF,KAAKjwN,GACHgsN,EAAU,CACRlyN,EAAGgwN,EAAUhwN,EAAIm+B,EAAQl6B,MACzBqN,EAAG6kN,GAEL,MAEF,QACEjE,EAAU,CACRlyN,EAAGgwN,EAAUhwN,EACbsR,EAAG0+M,EAAU1+M,GAInB,IAAI8kN,EAAW1F,EAAgBvB,GAAyBuB,GAAiB,KAEzE,GAAgB,MAAZ0F,EAAkB,CACpB,IAAIxzN,EAAmB,MAAbwzN,EAAmB,SAAW,QAExC,OAAQnE,GACN,KAAKtzN,GACHuzN,EAAQkE,GAAYlE,EAAQkE,IAAapG,EAAUptN,GAAO,EAAIu7B,EAAQv7B,GAAO,GAC7E,MAEF,KAAKa,GACHyuN,EAAQkE,GAAYlE,EAAQkE,IAAapG,EAAUptN,GAAO,EAAIu7B,EAAQv7B,GAAO,GAKnF,CAEA,OAAOsvN,CACT,CC3De,SAASmE,GAAez9H,EAAO5oE,QAC5B,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIipF,EAAWjpF,EACXsmM,EAAqBr9G,EAAS+zG,UAC9BA,OAAmC,IAAvBsJ,EAAgC19H,EAAMo0H,UAAYsJ,EAC9DC,EAAoBt9G,EAASq6G,SAC7BA,OAAiC,IAAtBiD,EAA+B39H,EAAM06H,SAAWiD,EAC3DC,EAAoBv9G,EAASw8G,SAC7BA,OAAiC,IAAtBe,EAA+B3G,GAAkB2G,EAC5DC,EAAwBx9G,EAASy8G,aACjCA,OAAyC,IAA1Be,EAAmC3G,GAAW2G,EAC7DC,EAAwBz9G,EAAS09G,eACjCA,OAA2C,IAA1BD,EAAmC3G,GAAS2G,EAC7DE,EAAuB39G,EAAS49G,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmB79G,EAASlxG,QAC5BA,OAA+B,IAArB+uN,EAA8B,EAAIA,EAC5CtH,EAAgBD,GAAsC,kBAAZxnN,EAAuBA,EAAU0nN,GAAgB1nN,EAAS6nN,KACpGmH,EAAaJ,IAAmB5G,GAASC,GAAYD,GACrDiC,EAAap5H,EAAM+3H,MAAMZ,OACzB5xL,EAAUy6D,EAAMp/B,SAASq9J,EAAcE,EAAaJ,GACpDK,EAAqBxB,GAAgB7mG,GAAUxwF,GAAWA,EAAUA,EAAQ84L,gBAAkBzI,GAAmB51H,EAAMp/B,SAASu2J,QAAS0F,EAAUC,EAAcpC,GACjK4D,EAAsB7gM,GAAsBuiE,EAAMp/B,SAASw2J,WAC3DQ,EAAgByF,GAAe,CACjCjG,UAAWkH,EACX/4L,QAAS6zL,EACTsB,SAAU,WACVtG,UAAWA,IAETmK,EAAmBxC,GAAiB3+N,OAAOG,OAAO,CAAC,EAAG67N,EAAYxB,IAClE4G,EAAoBT,IAAmB5G,GAASoH,EAAmBD,EAGnEG,EAAkB,CACpB/gM,IAAK0gM,EAAmB1gM,IAAM8gM,EAAkB9gM,IAAMk5L,EAAcl5L,IACpE2lC,OAAQm7J,EAAkBn7J,OAAS+6J,EAAmB/6J,OAASuzJ,EAAcvzJ,OAC7E/1D,KAAM8wN,EAAmB9wN,KAAOkxN,EAAkBlxN,KAAOspN,EAActpN,KACvEC,MAAOixN,EAAkBjxN,MAAQ6wN,EAAmB7wN,MAAQqpN,EAAcrpN,OAExEmxN,EAAa1+H,EAAM63H,cAAc76N,OAErC,GAAI+gO,IAAmB5G,IAAUuH,EAAY,CAC3C,IAAI1hO,EAAS0hO,EAAWtK,GACxBh3N,OAAOg1C,KAAKqsL,GAAiB50M,SAAQ,SAAUlF,GAC7C,IAAImtC,EAAW,CAACvkD,GAAO81D,IAAQz4D,QAAQ+Z,IAAQ,EAAI,GAAK,EACpD8iJ,EAAO,CAAC/pI,GAAK2lC,IAAQz4D,QAAQ+Z,IAAQ,EAAI,IAAM,IACnD85M,EAAgB95M,IAAQ3nB,EAAOyqK,GAAQ31G,CACzC,GACF,CAEA,OAAO2sK,CACT,CCyEA,UACE9gO,KAAM,OACN+tG,SAAS,EACT8rH,MAAO,OACP3vM,GA5HF,SAAcuC,GACZ,IAAI41E,EAAQ51E,EAAK41E,MACb5oE,EAAUhN,EAAKgN,QACfz5B,EAAOysB,EAAKzsB,KAEhB,IAAIqiG,EAAM63H,cAAcl6N,GAAMghO,MAA9B,CAoCA,IAhCA,IAAIC,EAAoBxnM,EAAQomM,SAC5BqB,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB1nM,EAAQ2nM,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8B7nM,EAAQ8nM,mBACtC/vN,EAAUioB,EAAQjoB,QAClB0tN,EAAWzlM,EAAQylM,SACnBC,EAAe1lM,EAAQ0lM,aACvBmB,EAAc7mM,EAAQ6mM,YACtBkB,EAAwB/nM,EAAQgoM,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwBjoM,EAAQioM,sBAChCC,EAAqBt/H,EAAM5oE,QAAQg9L,UACnC0D,EAAgB3D,GAAiBmL,GAEjCJ,EAAqBD,IADHnH,IAAkBwH,IACqCF,EAAiB,CAACrE,GAAqBuE,IAjCtH,SAAuClL,GACrC,GAAID,GAAiBC,KAAe2C,GAClC,MAAO,GAGT,IAAIwI,EAAoBxE,GAAqB3G,GAC7C,MAAO,CAAC6G,GAA8B7G,GAAYmL,EAAmBtE,GAA8BsE,GACrG,CA0B6IC,CAA8BF,IACrKhI,EAAa,CAACgI,GAAoBz4M,OAAOq4M,GAAoBp9N,QAAO,SAAUO,EAAK+xN,GACrF,OAAO/xN,EAAIwkB,OAAOstM,GAAiBC,KAAe2C,GCvCvC,SAA8B/2H,EAAO5oE,QAClC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIipF,EAAWjpF,EACXg9L,EAAY/zG,EAAS+zG,UACrByI,EAAWx8G,EAASw8G,SACpBC,EAAez8G,EAASy8G,aACxB3tN,EAAUkxG,EAASlxG,QACnBiwN,EAAiB/+G,EAAS++G,eAC1BK,EAAwBp/G,EAASg/G,sBACjCA,OAAkD,IAA1BI,EAAmCC,GAAgBD,EAC3EpG,EAAYL,GAAa5E,GACzBkD,EAAa+B,EAAY+F,EAAiB/H,GAAsBA,GAAoB3+L,QAAO,SAAU07L,GACvG,OAAO4E,GAAa5E,KAAeiF,CACrC,IAAKrC,GACD2I,EAAoBrI,EAAW5+L,QAAO,SAAU07L,GAClD,OAAOiL,EAAsBz0N,QAAQwpN,IAAc,CACrD,IAEiC,IAA7BuL,EAAkBpjO,SACpBojO,EAAoBrI,GAItB,IAAIsI,EAAYD,EAAkB79N,QAAO,SAAUO,EAAK+xN,GAOtD,OANA/xN,EAAI+xN,GAAaqJ,GAAez9H,EAAO,CACrCo0H,UAAWA,EACXyI,SAAUA,EACVC,aAAcA,EACd3tN,QAASA,IACRglN,GAAiBC,IACb/xN,CACT,GAAG,CAAC,GACJ,OAAOjF,OAAOg1C,KAAKwtL,GAAWjpD,MAAK,SAAU1mK,EAAGlU,GAC9C,OAAO6jO,EAAU3vN,GAAK2vN,EAAU7jO,EAClC,GACF,CDC6D8jO,CAAqB7/H,EAAO,CACnFo0H,UAAWA,EACXyI,SAAUA,EACVC,aAAcA,EACd3tN,QAASA,EACTiwN,eAAgBA,EAChBC,sBAAuBA,IACpBjL,EACP,GAAG,IACC0L,EAAgB9/H,EAAM+3H,MAAMX,UAC5BgC,EAAap5H,EAAM+3H,MAAMZ,OACzB4I,EAAY,IAAIv1M,IAChBw1M,GAAqB,EACrBC,EAAwB3I,EAAW,GAE9B31N,EAAI,EAAGA,EAAI21N,EAAW/6N,OAAQoF,IAAK,CAC1C,IAAIyyN,EAAYkD,EAAW31N,GAEvBu+N,EAAiB/L,GAAiBC,GAElC+L,EAAmBnH,GAAa5E,KAAeruN,GAC/Cq6N,EAAa,CAAC1iM,GAAK2lC,IAAQz4D,QAAQs1N,IAAmB,EACtDl2N,EAAMo2N,EAAa,QAAU,SAC7BhjI,EAAWqgI,GAAez9H,EAAO,CACnCo0H,UAAWA,EACXyI,SAAUA,EACVC,aAAcA,EACdmB,YAAaA,EACb9uN,QAASA,IAEPkxN,EAAoBD,EAAaD,EAAmB5yN,GAAQD,GAAO6yN,EAAmB98J,GAAS3lC,GAE/FoiM,EAAc91N,GAAOovN,EAAWpvN,KAClCq2N,EAAoBtF,GAAqBsF,IAG3C,IAAIC,EAAmBvF,GAAqBsF,GACxCE,EAAS,GAUb,GARI1B,GACF0B,EAAO3+N,KAAKw7F,EAAS8iI,IAAmB,GAGtClB,GACFuB,EAAO3+N,KAAKw7F,EAASijI,IAAsB,EAAGjjI,EAASkjI,IAAqB,GAG1EC,EAAO76D,OAAM,SAAU86D,GACzB,OAAOA,CACT,IAAI,CACFP,EAAwB7L,EACxB4L,GAAqB,EACrB,KACF,CAEAD,EAAUt1M,IAAI2pM,EAAWmM,EAC3B,CAEA,GAAIP,EAqBF,IAnBA,IAEIS,EAAQ,SAAejlJ,GACzB,IAAIklJ,EAAmBpJ,EAAW54L,MAAK,SAAU01L,GAC/C,IAAImM,EAASR,EAAUz7M,IAAI8vM,GAE3B,GAAImM,EACF,OAAOA,EAAOp6N,MAAM,EAAGq1E,GAAIkqF,OAAM,SAAU86D,GACzC,OAAOA,CACT,GAEJ,IAEA,GAAIE,EAEF,OADAT,EAAwBS,EACjB,OAEX,EAESllJ,EAnBY4jJ,EAAiB,EAAI,EAmBZ5jJ,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFFilJ,EAAMjlJ,GAEK,KACxB,CAGEwkB,EAAMo0H,YAAc6L,IACtBjgI,EAAM63H,cAAcl6N,GAAMghO,OAAQ,EAClC3+H,EAAMo0H,UAAY6L,EAClBjgI,EAAM1zC,OAAQ,EA5GhB,CA8GF,EAQEysK,iBAAkB,CAAC,UACnBzsM,KAAM,CACJqyM,OAAO,IE7IX,SAASgC,GAAevjI,EAAUpsB,EAAM4vJ,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBx5N,EAAG,EACHsR,EAAG,IAIA,CACLglB,IAAK0/D,EAAS1/D,IAAMszC,EAAKrzC,OAASijM,EAAiBloN,EACnDnL,MAAO6vF,EAAS7vF,MAAQyjE,EAAK3lE,MAAQu1N,EAAiBx5N,EACtDi8D,OAAQ+5B,EAAS/5B,OAAS2N,EAAKrzC,OAASijM,EAAiBloN,EACzDpL,KAAM8vF,EAAS9vF,KAAO0jE,EAAK3lE,MAAQu1N,EAAiBx5N,EAExD,CAEA,SAASy5N,GAAsBzjI,GAC7B,MAAO,CAAC1/D,GAAKnwB,GAAO81D,GAAQ/1D,IAAMihK,MAAK,SAAUuyD,GAC/C,OAAO1jI,EAAS0jI,IAAS,CAC3B,GACF,CCwBA,UACEnjO,KAAM,SACN+tG,SAAS,EACT8rH,MAAO,OACPsB,SAAU,CAAC,iBACXjxM,GA5BF,SAAgB8W,GACd,IAAIqhE,EAAQrhE,EAAMqhE,MACd5oE,EAAUuH,EAAMvH,QAChBz5B,EAAOghC,EAAMhhC,KACbojO,EAAkB3pM,EAAQp6B,OAC1BA,OAA6B,IAApB+jO,EAA6B,CAAC,EAAG,GAAKA,EAC/Cz0M,EAAOgrM,GAAWx1N,QAAO,SAAUO,EAAK+xN,GAE1C,OADA/xN,EAAI+xN,GA5BD,SAAiCA,EAAW2D,EAAO/6N,GACxD,IAAI86N,EAAgB3D,GAAiBC,GACjC4M,EAAiB,CAAC1zN,GAAMowB,IAAK9yB,QAAQktN,IAAkB,GAAK,EAAI,EAEhE1tM,EAAyB,oBAAXptB,EAAwBA,EAAOI,OAAOG,OAAO,CAAC,EAAGw6N,EAAO,CACxE3D,UAAWA,KACPp3N,EACFikO,EAAW72M,EAAK,GAChBq4C,EAAWr4C,EAAK,GAIpB,OAFA62M,EAAWA,GAAY,EACvBx+J,GAAYA,GAAY,GAAKu+J,EACtB,CAAC1zN,GAAMC,IAAO3C,QAAQktN,IAAkB,EAAI,CACjD1wN,EAAGq7D,EACH/pD,EAAGuoN,GACD,CACF75N,EAAG65N,EACHvoN,EAAG+pD,EAEP,CASqBy+J,CAAwB9M,EAAWp0H,EAAM+3H,MAAO/6N,GAC1DqF,CACT,GAAG,CAAC,GACA8+N,EAAwB70M,EAAK0zE,EAAMo0H,WACnChtN,EAAI+5N,EAAsB/5N,EAC1BsR,EAAIyoN,EAAsBzoN,EAEW,MAArCsnF,EAAM63H,cAAcD,gBACtB53H,EAAM63H,cAAcD,cAAcxwN,GAAKA,EACvC44F,EAAM63H,cAAcD,cAAcl/M,GAAKA,GAGzCsnF,EAAM63H,cAAcl6N,GAAQ2uB,CAC9B,GC2FA,UACE3uB,KAAM,kBACN+tG,SAAS,EACT8rH,MAAO,OACP3vM,GA/HF,SAAyBuC,GACvB,IAAI41E,EAAQ51E,EAAK41E,MACb5oE,EAAUhN,EAAKgN,QACfz5B,EAAOysB,EAAKzsB,KACZihO,EAAoBxnM,EAAQomM,SAC5BqB,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB1nM,EAAQ2nM,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDjC,EAAWzlM,EAAQylM,SACnBC,EAAe1lM,EAAQ0lM,aACvBmB,EAAc7mM,EAAQ6mM,YACtB9uN,EAAUioB,EAAQjoB,QAClBiyN,EAAkBhqM,EAAQiqM,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBlqM,EAAQmqM,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDlkI,EAAWqgI,GAAez9H,EAAO,CACnC68H,SAAUA,EACVC,aAAcA,EACd3tN,QAASA,EACT8uN,YAAaA,IAEXnG,EAAgB3D,GAAiBn0H,EAAMo0H,WACvCiF,EAAYL,GAAah5H,EAAMo0H,WAC/BoN,GAAmBnI,EACnBmE,EAAWjH,GAAyBuB,GACpCiH,ECrCY,MDqCSvB,ECrCH,IAAM,IDsCxB5F,EAAgB53H,EAAM63H,cAAcD,cACpCkI,EAAgB9/H,EAAM+3H,MAAMX,UAC5BgC,EAAap5H,EAAM+3H,MAAMZ,OACzBsK,EAA4C,oBAAjBF,EAA8BA,EAAankO,OAAOG,OAAO,CAAC,EAAGyiG,EAAM+3H,MAAO,CACvG3D,UAAWp0H,EAAMo0H,aACbmN,EACFG,EAA2D,kBAAtBD,EAAiC,CACxEjE,SAAUiE,EACV1C,QAAS0C,GACPrkO,OAAOG,OAAO,CAChBigO,SAAU,EACVuB,QAAS,GACR0C,GACCE,EAAsB3hI,EAAM63H,cAAc76N,OAASgjG,EAAM63H,cAAc76N,OAAOgjG,EAAMo0H,WAAa,KACjG9nM,EAAO,CACTllB,EAAG,EACHsR,EAAG,GAGL,GAAKk/M,EAAL,CAIA,GAAIiH,EAAe,CACjB,IAAI+C,EAEAC,EAAwB,MAAbrE,EAAmB9/L,GAAMpwB,GACpCw0N,EAAuB,MAAbtE,EAAmBn6J,GAAS91D,GACtCvD,EAAmB,MAAbwzN,EAAmB,SAAW,QACpCxgO,EAAS46N,EAAc4F,GACvBrwN,EAAMnQ,EAASogG,EAASykI,GACxBx0N,EAAMrQ,EAASogG,EAAS0kI,GACxBC,EAAWV,GAAUjI,EAAWpvN,GAAO,EAAI,EAC3Cg4N,EAAS3I,IAActzN,GAAQ+5N,EAAc91N,GAAOovN,EAAWpvN,GAC/Di4N,EAAS5I,IAActzN,IAASqzN,EAAWpvN,IAAQ81N,EAAc91N,GAGjE0tN,EAAe13H,EAAMp/B,SAAS+2J,MAC9BM,EAAYoJ,GAAU3J,EAAepC,GAAcoC,GAAgB,CACrErsN,MAAO,EACPsyB,OAAQ,GAENukM,EAAqBliI,EAAM63H,cAAc,oBAAsB73H,EAAM63H,cAAc,oBAAoB1oN,QxBhFtG,CACLuuB,IAAK,EACLnwB,MAAO,EACP81D,OAAQ,EACR/1D,KAAM,GwB6EF60N,EAAkBD,EAAmBL,GACrCO,EAAkBF,EAAmBJ,GAMrCO,EAAW7L,GAAO,EAAGsJ,EAAc91N,GAAMiuN,EAAUjuN,IACnDs4N,EAAYd,EAAkB1B,EAAc91N,GAAO,EAAI+3N,EAAWM,EAAWF,EAAkBT,EAA4BlE,SAAWwE,EAASK,EAAWF,EAAkBT,EAA4BlE,SACxM+E,EAAYf,GAAmB1B,EAAc91N,GAAO,EAAI+3N,EAAWM,EAAWD,EAAkBV,EAA4BlE,SAAWyE,EAASI,EAAWD,EAAkBV,EAA4BlE,SACzMlF,EAAoBt4H,EAAMp/B,SAAS+2J,OAAS1B,GAAgBj2H,EAAMp/B,SAAS+2J,OAC3E6K,EAAelK,EAAiC,MAAbkF,EAAmBlF,EAAkB+D,WAAa,EAAI/D,EAAkBgE,YAAc,EAAI,EAC7HmG,EAAwH,OAAjGb,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBnE,IAAqBoE,EAAwB,EAEvJc,EAAY1lO,EAASulO,EAAYE,EACjCE,EAAkBnM,GAAO6K,EAAS3K,GAAQvpN,EAF9BnQ,EAASslO,EAAYG,EAAsBD,GAEKr1N,EAAKnQ,EAAQqkO,EAAS5K,GAAQppN,EAAKq1N,GAAar1N,GAChHuqN,EAAc4F,GAAYmF,EAC1Br2M,EAAKkxM,GAAYmF,EAAkB3lO,CACrC,CAEA,GAAIgiO,EAAc,CAChB,IAAI4D,EAEAC,EAAyB,MAAbrF,EAAmB9/L,GAAMpwB,GAErCw1N,GAAwB,MAAbtF,EAAmBn6J,GAAS91D,GAEvCw1N,GAAUnL,EAAcmH,GAExB52M,GAAmB,MAAZ42M,EAAkB,SAAW,QAEpCiE,GAAOD,GAAU3lI,EAASylI,GAE1BI,GAAOF,GAAU3lI,EAAS0lI,IAE1BI,IAAuD,IAAxC,CAACxlM,GAAKpwB,IAAM1C,QAAQktN,GAEnCqL,GAAyH,OAAjGP,EAAgD,MAAvBjB,OAA8B,EAASA,EAAoB5C,IAAoB6D,EAAyB,EAEzJQ,GAAaF,GAAeF,GAAOD,GAAUjD,EAAc33M,IAAQixM,EAAWjxM,IAAQg7M,GAAuBzB,EAA4B3C,QAEzIsE,GAAaH,GAAeH,GAAUjD,EAAc33M,IAAQixM,EAAWjxM,IAAQg7M,GAAuBzB,EAA4B3C,QAAUkE,GAE5IK,GAAmBjC,GAAU6B,G1BzH9B,SAAwB/1N,EAAKnI,EAAOqI,GACzC,IAAItL,EAAIy0N,GAAOrpN,EAAKnI,EAAOqI,GAC3B,OAAOtL,EAAIsL,EAAMA,EAAMtL,CACzB,C0BsHoDwhO,CAAeH,GAAYL,GAASM,IAAc7M,GAAO6K,EAAS+B,GAAaJ,GAAMD,GAAS1B,EAASgC,GAAaJ,IAEpKrL,EAAcmH,GAAWuE,GACzBh3M,EAAKyyM,GAAWuE,GAAmBP,EACrC,CAEA/iI,EAAM63H,cAAcl6N,GAAQ2uB,CAvE5B,CAwEF,EAQEysM,iBAAkB,CAAC,WE1HN,SAASyK,GAAiBC,EAAyBzN,EAAc0D,QAC9D,IAAZA,IACFA,GAAU,GAGZ,IAAIgK,EAA0BpP,GAAc0B,GACxC2N,EAAuBrP,GAAc0B,IAf3C,SAAyBzwL,GACvB,IAAIyrC,EAAOzrC,EAAQ9H,wBACf2iC,EAASvlD,GAAMm2D,EAAK3lE,OAASk6B,EAAQ0/B,aAAe,EACpD5E,EAASxlD,GAAMm2D,EAAKrzC,QAAU4H,EAAQmyD,cAAgB,EAC1D,OAAkB,IAAXt3B,GAA2B,IAAXC,CACzB,CAU4DujK,CAAgB5N,GACtExjF,EAAkBojF,GAAmBI,GACrChlJ,EAAOvzC,GAAsBgmM,EAAyBE,EAAsBjK,GAC5ExH,EAAS,CACX1+E,WAAY,EACZC,UAAW,GAET6lF,EAAU,CACZlyN,EAAG,EACHsR,EAAG,GAkBL,OAfIgrN,IAA4BA,IAA4BhK,MACxB,SAA9BhE,GAAYM,IAChBsF,GAAe9oF,MACb0/E,ECnCS,SAAuBvtJ,GACpC,OAAIA,IAAS0vJ,GAAU1vJ,IAAU2vJ,GAAc3vJ,GCJxC,CACL6uE,YAFyCjuG,EDQbo/B,GCNR6uE,WACpBC,UAAWluG,EAAQkuG,WDGZynF,GAAgBv2J,GCNZ,IAA8Bp/B,CDU7C,CD6Bes+L,CAAc7N,IAGrB1B,GAAc0B,KAChBsD,EAAU77L,GAAsBu4L,GAAc,IACtC5uN,GAAK4uN,EAAasG,WAC1BhD,EAAQ5gN,GAAKs9M,EAAaqG,WACjB7pF,IACT8mF,EAAQlyN,EAAIi0N,GAAoB7oF,KAI7B,CACLprI,EAAG4pE,EAAK1jE,KAAO4kN,EAAO1+E,WAAa8lF,EAAQlyN,EAC3CsR,EAAGs4D,EAAKtzC,IAAMw0L,EAAOz+E,UAAY6lF,EAAQ5gN,EACzCrN,MAAO2lE,EAAK3lE,MACZsyB,OAAQqzC,EAAKrzC,OAEjB,CGvDA,SAAS4hG,GAAMjqE,GACb,IAAInrC,EAAM,IAAIK,IACVs5M,EAAU,IAAI9rG,IACd7yG,EAAS,GAKb,SAASwxJ,EAAKx2F,GACZ2jJ,EAAQ7wN,IAAIktE,EAASxiF,MACN,GAAGkpB,OAAOs5D,EAAS24I,UAAY,GAAI34I,EAAS44I,kBAAoB,IACtElvM,SAAQ,SAAUk6M,GACzB,IAAKD,EAAQzuF,IAAI0uF,GAAM,CACrB,IAAIC,EAAc75M,EAAI7F,IAAIy/M,GAEtBC,GACFrtD,EAAKqtD,EAET,CACF,IACA7+M,EAAOvjB,KAAKu+E,EACd,CAQA,OAzBA7qB,EAAUzrC,SAAQ,SAAUs2D,GAC1Bh2D,EAAIM,IAAI01D,EAASxiF,KAAMwiF,EACzB,IAiBA7qB,EAAUzrC,SAAQ,SAAUs2D,GACrB2jJ,EAAQzuF,IAAIl1D,EAASxiF,OAExBg5K,EAAKx2F,EAET,IACOh7D,CACT,CChCe,SAAS6lG,GAASnjG,GAC/B,IAAIu2H,EACJ,OAAO,WAUL,OATKA,IACHA,EAAU,IAAIv/B,SAAQ,SAAU24B,GAC9B34B,QAAQ24B,UAAUv0B,MAAK,WACrBm7B,OAAUjgJ,EACVq5I,EAAQ3vH,IACV,GACF,KAGKu2H,CACT,CACF,CCLA,IAAI6lF,GAAkB,CACpB7P,UAAW,SACX9+J,UAAW,GACXolK,SAAU,YAGZ,SAASwJ,KACP,IAAK,IAAI/7M,EAAOjqB,UAAU3B,OAAQ6rB,EAAO,IAAIjmB,MAAMgmB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQnqB,UAAUmqB,GAGzB,OAAQD,EAAKmmJ,MAAK,SAAUhpI,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQ9H,sBACrC,GACF,CAEO,SAAS0mM,GAAgBC,QACL,IAArBA,IACFA,EAAmB,CAAC,GAGtB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkB3b,eAC3CA,OAA4C,IAA3B8b,EAAoCP,GAAkBO,EAC3E,OAAO,SAAsBpN,EAAWD,EAAQ//L,QAC9B,IAAZA,IACFA,EAAUsxL,GAGZ,IAAI1oH,EAAQ,CACVo0H,UAAW,SACXqQ,iBAAkB,GAClBrtM,QAASh6B,OAAOG,OAAO,CAAC,EAAG0mO,GAAiBvb,GAC5CmP,cAAe,CAAC,EAChBj3J,SAAU,CACRw2J,UAAWA,EACXD,OAAQA,GAEVrhL,WAAY,CAAC,EACb0pB,OAAQ,CAAC,GAEPklK,EAAmB,GACnBC,GAAc,EACdvvF,EAAW,CACbp1C,MAAOA,EACP4kI,WAAY,SAAoBC,GAC9B,IAAIztM,EAAsC,oBAArBytM,EAAkCA,EAAiB7kI,EAAM5oE,SAAWytM,EACzFC,IACA9kI,EAAM5oE,QAAUh6B,OAAOG,OAAO,CAAC,EAAGmrN,EAAgB1oH,EAAM5oE,QAASA,GACjE4oE,EAAM66H,cAAgB,CACpBzD,UAAWrhG,GAAUqhG,GAAauE,GAAkBvE,GAAaA,EAAUiH,eAAiB1C,GAAkBvE,EAAUiH,gBAAkB,GAC1IlH,OAAQwE,GAAkBxE,IAI5B,IAAIsN,EFhCG,SAAwBnvK,GAErC,IAAImvK,EAAmBllG,GAAMjqE,GAE7B,OAAOiiK,GAAez1N,QAAO,SAAUO,EAAKm1N,GAC1C,OAAOn1N,EAAIwkB,OAAO49M,EAAiB/rM,QAAO,SAAUynD,GAClD,OAAOA,EAASq3I,QAAUA,CAC5B,IACF,GAAG,GACL,CEuB+BuN,CClEhB,SAAqBzvK,GAClC,IAAI+sI,EAAS/sI,EAAUxzD,QAAO,SAAUugM,EAAQv+K,GAC9C,IAAIkhN,EAAW3iC,EAAOv+K,EAAQnmB,MAK9B,OAJA0kM,EAAOv+K,EAAQnmB,MAAQqnO,EAAW5nO,OAAOG,OAAO,CAAC,EAAGynO,EAAUlhN,EAAS,CACrEsT,QAASh6B,OAAOG,OAAO,CAAC,EAAGynO,EAAS5tM,QAAStT,EAAQsT,SACrD9K,KAAMlvB,OAAOG,OAAO,CAAC,EAAGynO,EAAS14M,KAAMxI,EAAQwI,QAC5CxI,EACEu+K,CACT,GAAG,CAAC,GAEJ,OAAOjlM,OAAOg1C,KAAKiwJ,GAAQl4K,KAAI,SAAUxF,GACvC,OAAO09K,EAAO19K,EAChB,GACF,CDqD8CsgN,CAAY,GAAGp+M,OAAO09M,EAAkBvkI,EAAM5oE,QAAQk+B,aAM5F,OAJA0qC,EAAMykI,iBAAmBA,EAAiB/rM,QAAO,SAAUle,GACzD,OAAOA,EAAEkxF,OACX,IA+FF1L,EAAMykI,iBAAiB56M,SAAQ,SAAUO,GACvC,IAAIzsB,EAAOysB,EAAKzsB,KACZunO,EAAe96M,EAAKgN,QACpBA,OAA2B,IAAjB8tM,EAA0B,CAAC,EAAIA,EACzCrwJ,EAASzqD,EAAKyqD,OAElB,GAAsB,oBAAXA,EAAuB,CAChC,IAAIswJ,EAAYtwJ,EAAO,CACrBmrB,MAAOA,EACPriG,KAAMA,EACNy3I,SAAUA,EACVh+G,QAASA,IAGPguM,EAAS,WAAmB,EAEhCV,EAAiB9iO,KAAKujO,GAAaC,EACrC,CACF,IA/GShwF,EAAS30D,QAClB,EAMAs2E,YAAa,WACX,IAAI4tE,EAAJ,CAIA,IAAIU,EAAkBrlI,EAAMp/B,SACxBw2J,EAAYiO,EAAgBjO,UAC5BD,EAASkO,EAAgBlO,OAG7B,GAAK+M,GAAiB9M,EAAWD,GAAjC,CAKAn3H,EAAM+3H,MAAQ,CACZX,UAAWoM,GAAiBpM,EAAWnB,GAAgBkB,GAAoC,UAA3Bn3H,EAAM5oE,QAAQsjM,UAC9EvD,OAAQ7B,GAAc6B,IAOxBn3H,EAAM1zC,OAAQ,EACd0zC,EAAMo0H,UAAYp0H,EAAM5oE,QAAQg9L,UAKhCp0H,EAAMykI,iBAAiB56M,SAAQ,SAAUs2D,GACvC,OAAO6f,EAAM63H,cAAc13I,EAASxiF,MAAQP,OAAOG,OAAO,CAAC,EAAG4iF,EAAS7zD,KACzE,IAEA,IAAK,IAAI1f,EAAQ,EAAGA,EAAQozF,EAAMykI,iBAAiBloO,OAAQqQ,IACzD,IAAoB,IAAhBozF,EAAM1zC,MAAV,CAMA,IAAIg5K,EAAwBtlI,EAAMykI,iBAAiB73N,GAC/Cib,EAAKy9M,EAAsBz9M,GAC3B09M,EAAyBD,EAAsBluM,QAC/CipF,OAAsC,IAA3BklH,EAAoC,CAAC,EAAIA,EACpD5nO,EAAO2nO,EAAsB3nO,KAEf,oBAAPkqB,IACTm4E,EAAQn4E,EAAG,CACTm4E,MAAOA,EACP5oE,QAASipF,EACT1iH,KAAMA,EACNy3I,SAAUA,KACNp1C,EAdR,MAHEA,EAAM1zC,OAAQ,EACd1/C,GAAS,CAzBb,CATA,CAqDF,EAGA6zE,OAAQuqC,IAAS,WACf,OAAO,IAAInM,SAAQ,SAAU24B,GAC3BpC,EAAS2hB,cACTvf,EAAQx3C,EACV,GACF,IACAjkE,QAAS,WACP+oM,IACAH,GAAc,CAChB,GAGF,IAAKT,GAAiB9M,EAAWD,GAC/B,OAAO/hF,EAmCT,SAAS0vF,IACPJ,EAAiB76M,SAAQ,SAAUhC,GACjC,OAAOA,GACT,IACA68M,EAAmB,EACrB,CAEA,OAvCAtvF,EAASwvF,WAAWxtM,GAAS6rF,MAAK,SAAUjjB,IACrC2kI,GAAevtM,EAAQouM,eAC1BpuM,EAAQouM,cAAcxlI,EAE1B,IAmCOo1C,CACT,CACF,CEtLO,MAAMqwF,GAAetB,GAAgB,CAC1CI,iBAAkB,CXwCpB,CACE5mO,KAAM,OACN+tG,SAAS,EACT8rH,MAAO,OACPuB,iBAAkB,CAAC,mBACnBlxM,GAlCF,SAAcuC,GACZ,IAAI41E,EAAQ51E,EAAK41E,MACbriG,EAAOysB,EAAKzsB,KACZmiO,EAAgB9/H,EAAM+3H,MAAMX,UAC5BgC,EAAap5H,EAAM+3H,MAAMZ,OACzByJ,EAAmB5gI,EAAM63H,cAAc6N,gBACvCC,EAAoBlI,GAAez9H,EAAO,CAC5C+9H,eAAgB,cAEd6H,EAAoBnI,GAAez9H,EAAO,CAC5Ci+H,aAAa,IAEX4H,EAA2BlF,GAAegF,EAAmB7F,GAC7DgG,EAAsBnF,GAAeiF,EAAmBxM,EAAYwH,GACpEmF,EAAoBlF,GAAsBgF,GAC1CG,EAAmBnF,GAAsBiF,GAC7C9lI,EAAM63H,cAAcl6N,GAAQ,CAC1BkoO,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBhmI,EAAMlqD,WAAWqhL,OAAS/5N,OAAOG,OAAO,CAAC,EAAGyiG,EAAMlqD,WAAWqhL,OAAQ,CACnE,+BAAgC4O,EAChC,sBAAuBC,GAE3B,GYjCA,CACEroO,KAAM,gBACN+tG,SAAS,EACT8rH,MAAO,OACP3vM,GApBF,SAAuBuC,GACrB,IAAI41E,EAAQ51E,EAAK41E,MACbriG,EAAOysB,EAAKzsB,KAKhBqiG,EAAM63H,cAAcl6N,GAAQ0/N,GAAe,CACzCjG,UAAWp3H,EAAM+3H,MAAMX,UACvB7xL,QAASy6D,EAAM+3H,MAAMZ,OACrBuD,SAAU,WACVtG,UAAWp0H,EAAMo0H,WAErB,EAQE9nM,KAAM,CAAC,GDTiC25M,GAAeC,GAAgBlpO,GAAQmpO,GAAMT,GAAiB/N,MEdlGr3L,GAAY,CAAC,UAAW,YAAa,WAAY,aAMvD,MAAM8lM,GAA8B,CAClCzoO,KAAM,cACN+tG,SAAS,EACT8rH,MAAO,aACP3vM,GAAIA,KACN,GAIMw+M,GAA0B,CAC9B1oO,KAAM,kBACN+tG,SAAS,EACT8rH,MAAO,aACP3iJ,OAAQl2C,IAAA,IAAC,MACPqhE,GACDrhE,EAAA,MAAK,KACJ,MAAM,UACJy4L,EAAS,OACTD,GACEn3H,EAAMp/B,SACV,GAAI,oBAAqBw2J,EAAW,CAClC,MAAMkP,GAAOlP,EAAUjqD,aAAa,qBAAuB,IAAIntK,MAAM,KAAK04B,QAAOb,GAAMA,EAAGhH,SAAWsmM,EAAOt/L,KACvGyuM,EAAI/pO,OAA2D66N,EAAU18K,aAAa,mBAAoB4rL,EAAI57N,KAAK,MAAvG0sN,EAAU1iH,gBAAgB,mBAC7C,EACD,EACD7sF,GAAIyX,IAEE,IAFD,MACH0gE,GACD1gE,EACC,IAAIinM,EACJ,MAAM,OACJpP,EAAM,UACNC,GACEp3H,EAAMp/B,SACJy8H,EAA+D,OAAvDkpC,EAAuBpP,EAAOhqD,aAAa,cAAmB,EAASo5D,EAAqBz5M,cAC1G,GAAIqqM,EAAOt/L,IAAe,YAATwlK,GAAsB,iBAAkB+5B,EAAW,CAClE,MAAMkP,EAAMlP,EAAUjqD,aAAa,oBACnC,GAAIm5D,IAA8C,IAAvCA,EAAItmO,MAAM,KAAK4K,QAAQusN,EAAOt/L,IACvC,OAEFu/L,EAAU18K,aAAa,mBAAoB4rL,EAAM,GAAGA,KAAOnP,EAAOt/L,KAAOs/L,EAAOt/L,GAClF,IAGE2uM,GAAkB,GA4GxB,SA5FA,SAAmBC,EAAkBC,GAA0B,IAAXt8M,EAAIlsB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,GACtD,QACAwtG,GAAU,EAAI,UACd0oH,EAAY,SAAQ,SACpBsG,EAAW,WAAU,UACrBplK,EAAYkxK,IACVp8M,EACJ8R,EAvEJ,SAAuClvB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CAuEvL8pL,CAA8BzwK,EAAMkW,IAC/C,MAAMqmM,GAAgBhsM,EAAAA,EAAAA,QAAO26B,GACvBsxK,GAAoBjsM,EAAAA,EAAAA,UACpB8lD,GAAS6iE,EAAAA,EAAAA,cAAY,KACzB,IAAIujF,EACmD,OAAtDA,EAAwBD,EAAkB9iN,UAA4B+iN,EAAsBpmJ,QAAQ,GACpG,IACGs2E,GAAczT,EAAAA,EAAAA,cAAY,KAC9B,IAAIwjF,EACoD,OAAvDA,EAAyBF,EAAkB9iN,UAA4BgjN,EAAuB/vE,aAAa,GAC3G,KACIgwE,EAAan+G,GAAYo+G,IAAazsM,EAAAA,EAAAA,UAAS,CACpD65L,YACA3zI,SACAs2E,cACAjhH,WAAY,CAAC,EACb0pB,OAAQ,CACN23J,OAAQ,CAAC,EACTQ,MAAO,CAAC,MAGNsP,GAAiBtjF,EAAAA,EAAAA,UAAQ,KAAM,CACnChmJ,KAAM,sBACN+tG,SAAS,EACT8rH,MAAO,QACPsB,SAAU,CAAC,iBACXjxM,GAAIkY,IAEE,IAFD,MACHigE,GACDjgE,EACC,MAAMy/B,EAAS,CAAC,EACV1pB,EAAa,CAAC,EACpB14C,OAAOg1C,KAAK4tD,EAAMp/B,UAAU/2C,SAAQ0b,IAClCi6B,EAAOj6B,GAAWy6D,EAAMxgC,OAAOj6B,GAC/BuQ,EAAWvQ,GAAWy6D,EAAMlqD,WAAWvQ,EAAQ,IAEjDqjF,EAAS,CACP5oB,QACAxgC,SACA1pB,aACA2qC,SACAs2E,cACAq9D,UAAWp0H,EAAMo0H,WACjB,KAEF,CAAC3zI,EAAQs2E,EAAanuC,IACpBs+G,GAAgBvjF,EAAAA,EAAAA,UAAQ,KACvBiwE,GAAO+S,EAAc7iN,QAASwxC,KACjCqxK,EAAc7iN,QAAUwxC,GAEnBqxK,EAAc7iN,UACpB,CAACwxC,IAiCJ,OAhCAj5B,EAAAA,EAAAA,YAAU,KACHuqM,EAAkB9iN,SAAY4nF,GACnCk7H,EAAkB9iN,QAAQ8gN,WAAW,CACnCxQ,YACAsG,WACAplK,UAAW,IAAI4xK,EAAeD,EAAgBb,KAC9C,GACD,CAAC1L,EAAUtG,EAAW6S,EAAgBv7H,EAASw7H,KAClD7qM,EAAAA,EAAAA,YAAU,KACR,GAAKqvE,GAA+B,MAApB+6H,GAA6C,MAAjBC,EAQ5C,OALAE,EAAkB9iN,QAAU2hN,GAAagB,EAAkBC,EAAetpO,OAAOG,OAAO,CAAC,EAAG2+B,EAAQ,CAClGk4L,YACAsG,WACAplK,UAAW,IAAI4xK,EAAeb,GAAyBY,MAElD,KAC4B,MAA7BL,EAAkB9iN,UACpB8iN,EAAkB9iN,QAAQiY,UAC1B6qM,EAAkB9iN,aAAU3lB,EAC5ByqH,GAASpvG,GAAKpc,OAAOG,OAAO,CAAC,EAAGic,EAAG,CACjCs8B,WAAY,CAAC,EACb0pB,OAAQ,CACN23J,OAAQ,CAAC,OAGf,CACD,GAGA,CAACzrH,EAAS+6H,EAAkBC,IACxBK,CACT,EC1IA,SAPA,SAAyB/hO,GACvB,MAAMo4B,GAAMzC,EAAAA,EAAAA,QAAO31B,GAInB,OAHAq3B,EAAAA,EAAAA,YAAU,KACRe,EAAItZ,QAAU9e,CAAK,GAClB,CAACA,IACGo4B,CACT,ECfe,SAAS+pM,GAAiBt/M,GACvC,MAAMuV,EAAMgqM,GAAgBv/M,GAC5B,OAAOy7H,EAAAA,EAAAA,cAAY,WACjB,OAAOlmH,EAAItZ,SAAWsZ,EAAItZ,WAAQ5lB,UACpC,GAAG,CAACk/B,GACN,CCCe,SAASshF,GAAS5tB,EAASnsB,GAGxC,OAAImsB,EAAQ4tB,SAAiB5tB,EAAQ4tB,SAAS/5C,GAC1CmsB,EAAQihD,wBAAgCjhD,IAAYnsB,MAAmD,GAAxCmsB,EAAQihD,wBAAwBptE,SAAnG,CACF,+DCPA,MAAM4iG,GAAOA,OAON,MAAM8/D,GAAejqM,GAAOA,IAAQ,YAAaA,EAAMA,EAAItZ,QAAUsZ,GACtEkqM,GAAuB,CAC3B1oH,MAAO,YACP2oH,QAAS,YACTC,UAAW,eA4Eb,SA/DA,SAAyBpqM,GAGjB,IAHsBqqM,EAAcvpO,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGqpK,IAAM,SACnD1qC,EAAQ,aACR6qG,EAAe,SAChBxpO,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACH,MAAMypO,GAA8BhtM,EAAAA,EAAAA,SAAO,GACrCitM,GAAoBjtM,EAAAA,EAAAA,SAAO,GAC3BktM,GAAqBvkF,EAAAA,EAAAA,cAAY/gJ,IACrC,MAAMgnI,EAAgB89F,GAAajqM,GA3BvC,IAAyB6Q,EA4BrBm7H,OAAU7/B,EAAe,uJACzBo+F,EAA4B7jN,SAAWylH,OA7BlBt7F,EA6BmD1rC,GA5B1D2oI,SAAWj9F,EAAMg9F,QAAUh9F,EAAM88F,SAAW98F,EAAM+8F,YAJpE,SAA0B/8F,GACxB,OAAwB,IAAjBA,EAAMo9F,MACf,CA8BmFy8F,CAAiBvlO,MAAQm8G,GAAS6qB,EAAehnI,EAAEmiB,SAAWkjN,EAAkB9jN,QAC/J8jN,EAAkB9jN,SAAU,CAAK,GAChC,CAACsZ,IACE2qM,EAAqBZ,IAAiB5kO,IAC1C,MAAMgnI,EAAgB89F,GAAajqM,GAC/BmsG,GAAiB7qB,GAAS6qB,EAAehnI,EAAEmiB,UAC7CkjN,EAAkB9jN,SAAU,EAC9B,IAEIkkN,EAAcb,IAAiB5kO,IAC9BolO,EAA4B7jN,SAC/B2jN,EAAellO,EACjB,KAEF85B,EAAAA,EAAAA,YAAU,KACR,IAAI4rM,EAAoBC,EACxB,GAAIrrG,GAAmB,MAAPz/F,EAAa,OAC7B,MAAMmuL,EAAM9uF,GAAc4qG,GAAajqM,IACjCouL,EAAcD,EAAI54E,aAAejmI,OAMvC,IAAIy7N,EAA2D,OAA3CF,EAAqBzc,EAAYv9K,OAAiBg6L,EAAmE,OAA7CC,EAAsB1c,EAAYnmJ,aAAkB,EAAS6iK,EAAoBj6L,MACzKm6L,EAA+B,KAC/Bd,GAAqBI,KACvBU,EAA+BrzD,GAAOw2C,EAAK+b,GAAqBI,GAAeK,GAAoB,IAMrG,MAAMM,EAA6BtzD,GAAOw2C,EAAKmc,EAAcG,GAAoB,GAC3ES,EAAsBvzD,GAAOw2C,EAAKmc,GAAcnlO,IAEhDA,IAAM4lO,EAIVH,EAAYzlO,GAHV4lO,OAAehqO,CAGH,IAEhB,IAAIoqO,EAA4B,GAIhC,MAHI,iBAAkBhd,EAAI/4E,kBACxB+1F,EAA4B,GAAGpiO,MAAMjC,KAAKqnN,EAAI5wK,KAAKigD,UAAUzwE,KAAI6mI,GAAM+jB,GAAO/jB,EAAI,YAAauW,OAE1F,KAC2B,MAAhC6gE,GAAgDA,IAChDC,IACAC,IACAC,EAA0B1+M,SAAQ8mJ,GAAUA,KAAS,CACtD,GACA,CAACvzI,EAAKy/F,EAAU6qG,EAAcG,EAAoBE,EAAoBC,GAC3E,EC3FO,SAASQ,GAASjmO,GACvB,MAAkB,WAAXA,EAAEoI,MAAmC,KAAdpI,EAAE2mI,OAClC,CCGA,MAAMq+B,GAAOA,OA+Cb,SAlCA,SAAsBnqI,EAAKqrM,GAGnB,IAHgC,SACtC5rG,EAAQ,aACR6qG,GACDxpO,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACH,MAAMwqO,EAAUD,GAAelhE,GAC/BohE,GAAgBvrM,EAAKsrM,EAAS,CAC5B7rG,WACA6qG,iBAEF,MAAMkB,EAAczB,IAAiB5kO,IAC/BimO,GAASjmO,IACXmmO,EAAQnmO,EACV,KAEF85B,EAAAA,EAAAA,YAAU,KACR,GAAIwgG,GAAmB,MAAPz/F,EAAa,OAC7B,MAAMmuL,EAAM9uF,GAAc4qG,GAAajqM,IAIvC,IAAI+qM,GAAgB5c,EAAI54E,aAAejmI,QAAQuhC,MAC/C,MAAM46L,EAAsB9zD,GAAOw2C,EAAK,SAAShpN,IAE3CA,IAAM4lO,EAIVS,EAAYrmO,GAHV4lO,OAAehqO,CAGH,IAEhB,MAAO,KACL0qO,GAAqB,CACtB,GACA,CAACzrM,EAAKy/F,EAAU+rG,GACrB,EClDME,IAAuBnxE,EAAAA,EAAAA,eAAc3jC,GAAYtnH,YAASvO,GAClC2qO,GAAQhxE,SAQvB,SAASixE,KACtB,OAAOxlF,EAAAA,EAAAA,YAAWulF,GACpB,CCTO,MAAME,GAAsBA,CAAC5rM,EAAK6B,IAClC+0F,GACM,MAAP52F,GAAqB6B,GAAYw9F,MAAiB9hF,MACnC,oBAARvd,IAAoBA,EAAMA,KACjCA,GAAO,YAAaA,IAAKA,EAAMA,EAAItZ,SACnCsZ,IAAQ,aAAcA,GAAOA,EAAIK,uBAA+BL,EAC7D,MALgB,KAOV,SAAS6rM,GAAiB7rM,EAAK8rM,GAC5C,MAAMx8N,EAASq8N,MACRI,EAAaC,IAAU7uM,EAAAA,EAAAA,WAAS,IAAMyuM,GAAoB5rM,EAAe,MAAV1wB,OAAiB,EAASA,EAAOuyB,YACvG,IAAKkqM,EAAa,CAChB,MAAME,EAAWL,GAAoB5rM,GACjCisM,GAAUD,EAAOC,EACvB,CAYA,OAXAhtM,EAAAA,EAAAA,YAAU,KACJ6sM,GAAcC,GAChBD,EAAWC,EACb,GACC,CAACD,EAAYC,KAChB9sM,EAAAA,EAAAA,YAAU,KACR,MAAMitM,EAAUN,GAAoB5rM,GAChCksM,IAAYH,GACdC,EAAOE,EACT,GACC,CAAClsM,EAAK+rM,IACFA,CACT,CCnBO,SAASI,KAA0B,IAAVp/M,EAAGjsB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrC,OAAIiE,MAAMC,QAAQ+nB,GAAaA,EACxB/sB,OAAOg1C,KAAKjoB,GAAKA,KAAIja,IAC1Bia,EAAIja,GAAGvS,KAAOuS,EACPia,EAAIja,KAEf,CACe,SAASs5N,GAA4Bp/M,GAUjD,IAVkD,QACnDshF,EAAO,aACP+9H,EAAY,UACZrV,EAAS,KACT+R,EAAI,OACJnpO,EAAM,MACN0sO,EAAK,iBACLC,EAAgB,aAChBjS,EAAY,aACZkS,EAAe,CAAC,GACjBx/M,EACC,IAAIy/M,EAAuBC,EAAuBC,EAAwBC,EAAmBC,EAC7F,MAAM30K,EA/BD,SAAuBA,GAC5B,MAAMnwC,EAAS,CAAC,EAChB,OAAKhjB,MAAMC,QAAQkzD,IAKN,MAAbA,GAA6BA,EAAUzrC,SAAQrP,IAC7C2K,EAAO3K,EAAE7c,MAAQ6c,CAAC,IAEb2K,GAPEmwC,GAAanwC,CAQxB,CAoBoB+kN,CAAcN,EAAat0K,WAC7C,OAAOl4D,OAAOG,OAAO,CAAC,EAAGqsO,EAAc,CACrCxV,YACA1oH,UACAgvH,SAAUgP,EAAQ,QAAUE,EAAalP,SACzCplK,UAAWi0K,GAAgBnsO,OAAOG,OAAO,CAAC,EAAG+3D,EAAW,CACtD4wK,eAAgB,CACdx6H,QAAS+9H,EACTryM,QAA+D,OAArDyyM,EAAwBv0K,EAAU4wK,qBAA0B,EAAS2D,EAAsBzyM,SAEvGsuM,gBAAiBtoO,OAAOG,OAAO,CAAC,EAAG+3D,EAAUowK,gBAAiB,CAC5DtuM,QAASuyM,EAAmBvsO,OAAOG,OAAO,CACxC4R,QAASw6N,GAC+C,OAAtDG,EAAwBx0K,EAAUowK,sBAA2B,EAASoE,EAAsB1yM,SAAmE,OAAvD2yM,EAAyBz0K,EAAUowK,sBAA2B,EAASqE,EAAuB3yM,UAE5Mp6B,OAAQ,CACNo6B,QAASh6B,OAAOG,OAAO,CACrBP,UAC2C,OAAzCgtO,EAAoB10K,EAAUt4D,aAAkB,EAASgtO,EAAkB5yM,UAEjFugM,MAAOv6N,OAAOG,OAAO,CAAC,EAAG+3D,EAAUqiK,MAAO,CACxCjsH,UAAWgsH,EACXtgM,QAASh6B,OAAOG,OAAO,CAAC,EAA2C,OAAvC0sO,EAAmB30K,EAAUqiK,YAAiB,EAASsS,EAAiB7yM,QAAS,CAC3GmO,QAASmyL,MAGbyO,KAAM/oO,OAAOG,OAAO,CAClBmuG,UAAWy6H,GACV7wK,EAAU6wK,UAGnB,CC7DA,MAAMgE,GAAkC,qBAAXlsI,oBAAAA,GAE7BA,oBAAAA,EAAOx9D,WAEsB,gBAA7Bw9D,oBAAAA,EAAOx9D,UAAU0lK,QAWjB,GAVkC,qBAAblnK,UAUGkrM,GAAgBzmF,EAAAA,gBAAkBrnH,EAAAA,UCe1D,SA5BA,SAAuBjS,GAMpB,IANqB,SACtBwwE,EACAoyH,GAAI8E,EAAM,SACVhD,EAAQ,aACR5B,EAAY,cACZD,GACD7iM,EACC,MAAMgT,GAAMzC,EAAAA,EAAAA,QAAO,MACbyvM,GAAgBzvM,EAAAA,EAAAA,QAAOm3L,GACvBT,EAAe8V,GAAiBrY,IACtCzyL,EAAAA,EAAAA,YAAU,KACJy1L,EAAQsY,EAActmN,SAAU,EAClCutM,EAAaj0L,EAAItZ,QACnB,GACC,CAACguM,EAAQT,IACZ,MAAMgZ,EAAcvZ,GAAc1zL,EAAKw9D,EAASx9D,KAC1CmmG,GAAqBm0B,EAAAA,EAAAA,cAAa98D,EAAU,CAChDx9D,IAAKitM,IAEP,OAAIvY,EAAevuF,EACf0pF,IAGCmd,EAActmN,SAAWopM,EAFrB,KAKF3pF,CACT,EC9BMjjG,GAAY,CAAC,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,iBAAkB,YAY/F,SAASgqM,GAAsBlgN,GAC5C,IAAI,QACAokM,EAAO,WACPC,EAAU,UACVF,EAAS,OACTK,EAAM,UACNC,EAAS,SACTC,EAAQ,eACRI,EAAc,SACdt0H,GACExwE,EACJyO,EAtBJ,SAAuC7rB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CAsBxL8pL,CAA8BzwK,EAAMkW,IAC9C,MAAM,MACJiqM,GPrBG,WACL,MAAMlgO,EAAQiwB,EAAAA,QAAct6B,MAAM,KAClC,MAAO,CACLuqO,OAAQlgO,EAAM,GACdmgO,OAAQngO,EAAM,GACd6kL,OAAQ7kL,EAAM,GAElB,COeMogO,GACE7Z,EAAW2Z,GAAS,GAAK3vI,EAAS/hE,MAAMuE,IAAMw9D,EAASx9D,IACvDwwL,GAAUjzL,EAAAA,EAAAA,QAAO,MACjBk2L,EAAYC,GAAclD,EAA6B,oBAAbhzH,EAA0B,KAAOg2H,GAC3E1uH,EAAYpqE,GAAYkpG,IACxBlpG,GAAY81L,EAAQ9pM,SACtBgU,EAAS81L,EAAQ9pM,QAASk9G,EAC5B,EAIIgwF,GAAc1tE,EAAAA,EAAAA,aAAYphD,EAAUssH,GAAU,CAACA,IAC/CyC,GAAiB3tE,EAAAA,EAAAA,aAAYphD,EAAUusH,GAAa,CAACA,IACrDyC,GAAgB5tE,EAAAA,EAAAA,aAAYphD,EAAUqsH,GAAY,CAACA,IACnD4C,GAAa7tE,EAAAA,EAAAA,aAAYphD,EAAU0sH,GAAS,CAACA,IAC7CwC,GAAgB9tE,EAAAA,EAAAA,aAAYphD,EAAU2sH,GAAY,CAACA,IACnDwC,GAAe/tE,EAAAA,EAAAA,aAAYphD,EAAU4sH,GAAW,CAACA,IACjDwC,GAAuBhuE,EAAAA,EAAAA,aAAYphD,EAAUgtH,GAAiB,CAACA,IAGrE,OAAO9xN,OAAOG,OAAO,CAAC,EAAGs7B,EAAO,CAC9B+0L,WACCY,GAAW,CACZA,QAASwC,GACRvC,GAAc,CACfA,WAAYwC,GACX1C,GAAa,CACdA,UAAW2C,GACVtC,GAAU,CACXA,OAAQuC,GACPtC,GAAa,CACdA,UAAWuC,GACVtC,GAAY,CACbA,SAAUuC,GACTnC,GAAkB,CACnBA,eAAgBoC,GACf,CACD12H,SAA8B,oBAAbA,EAA0B,CAACjtD,EAAQ4jL,IAEpD32H,EAASjtD,EAAQvwC,OAAOG,OAAO,CAAC,EAAGg0N,EAAY,CAC7Cn0L,IAAKyzL,MACYn5D,EAAAA,EAAAA,cAAa98D,EAAU,CACxCx9D,IAAKyzL,KAGX,CCvEA,MAAMvwL,GAAY,CAAC,aAMnB,MAAMoqM,GAA6BpwM,EAAAA,YAAiB,CAAClQ,EAAMgT,KACzD,IACI0sC,UAAWutF,GACTjtI,EACJyO,EATJ,SAAuC7rB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CASxL8pL,CAA8BzwK,EAAMkW,IAC9C,MAAMqqM,EAAkBL,GAAsBzxM,GAC9C,OAAoBu6I,EAAAA,GAAAA,KAAK/b,EAAWj6J,OAAOG,OAAO,CAChD6/B,IAAKA,GACJutM,GAAiB,IAEtB,MC4Be,SAASC,GAAoBjsM,GAMzC,IAN0C,SAC3Ci8D,EACAoyH,GAAI8E,EAAM,SACVhD,EAAQ,UACRP,EAAS,WACT7/F,GACD/vF,EACC,MAAOksM,EAAQC,IAAavwM,EAAAA,EAAAA,WAAUu3L,GAGlCA,GAAU+Y,GACZC,GAAU,GAEZ,MAAM1tM,EAlDD,SAAsBhT,GAG1B,IAFD4iM,GAAI8E,EAAM,aACViZ,GACD3gN,EACC,MAAMgT,GAAMzC,EAAAA,EAAAA,QAAO,MACbqwM,GAAerwM,EAAAA,EAAAA,SAAO,GACtBswM,EAAmB9D,GAAiB4D,GAuB1C,OAtBAG,IAAoB,KAClB,IAAK9tM,EAAItZ,QACP,OAEF,IAAIqnN,GAAQ,EAOZ,OANAF,EAAiB,CACfje,GAAI8E,EACJvsL,QAASnI,EAAItZ,QACbsnN,QAASJ,EAAalnN,QACtBunN,QAASA,IAAMF,IAEV,KACLA,GAAQ,CAAI,CACb,GACA,CAACrZ,EAAQmZ,IACZC,IAAoB,KAClBF,EAAalnN,SAAU,EAEhB,KACLknN,EAAalnN,SAAU,CAAI,IAE5B,IACIsZ,CACT,CAoBc2mH,CAAc,CACxBipE,KAAM8E,EACNiZ,aAAc3zM,IAUZynF,QAAQ24B,QAAQ9oB,EAAWt3F,IAAU6rF,MATpB0uF,KACXv6K,EAAQi0M,YACRj0M,EAAQ41L,GACG,MAAbuB,GAA6BA,EAAUn3L,EAAQmO,QAASnO,EAAQg0M,UAEhEN,GAAU,GACE,MAAZhc,GAA4BA,EAAS13L,EAAQmO,UAC/C,IAEkDxb,IAElD,MADKqN,EAAQ41L,IAAI8d,GAAU,GACrB/gN,CAAK,GACX,IAGAsgN,EAAcvZ,GAAc1zL,EAAKw9D,EAASx9D,KAChD,OAAOytM,IAAW/Y,EAAS,MAAoBp6D,EAAAA,EAAAA,cAAa98D,EAAU,CACpEx9D,IAAKitM,GAET,CACO,SAASiB,GAAiBxhK,EAAWyhK,EAAe1yM,GACzD,OAAIixC,GACkBspG,EAAAA,GAAAA,KAAKs3D,GAAettO,OAAOG,OAAO,CAAC,EAAGs7B,EAAO,CAC/DixC,UAAWA,KAGXyhK,GACkBn4D,EAAAA,GAAAA,KAAKw3D,GAAsBxtO,OAAOG,OAAO,CAAC,EAAGs7B,EAAO,CACtE61F,WAAY68G,MAGIn4D,EAAAA,GAAAA,KAAKo4D,GAAgBpuO,OAAOG,OAAO,CAAC,EAAGs7B,GAC7D,CC9EA,MAAM4yM,GAAuBnxM,EAAAA,YAAiB,CAACzB,EAAO6yM,KACpD,MAAM,KACJvF,EAAI,OACJnpO,EAAM,UACNo3N,EAAS,iBACTuV,EAAgB,aAChBC,EAAe,CAAC,EAChBl7G,WAAY89F,EAAU,cACtB+e,GACE1yM,GACG8wF,EAAaonG,GAAa0C,MAC1BiE,EAAciU,GAAkBlY,KACjC5C,EAAYC,GAAcC,EAAW2a,GACrChmO,EAAYujO,GAAiBpwM,EAAMnzB,WACnCgf,EAASukN,GAAiBpwM,EAAMnU,SAC/BmmN,EAAQC,IAAavwM,EAAAA,EAAAA,WAAU1B,EAAMsgB,MACtCg+K,EAASyU,GAAUlnN,EAAQilG,EAAa6/G,GAA6B,CACzEpV,YACAqV,eAAgB5wM,EAAMsgB,KACtBwwL,iBAAkBA,GAAoB,EACtCxD,OACAnpO,SACA06N,eACAkS,kBAIE/wM,EAAMsgB,MAAQ0xL,GAChBC,GAAU,GAEZ,MAQMe,EAAehzM,EAAMsgB,OAAS0xL,EAKpC,GAJAiB,GAAaniH,EAAa9wF,EAAMkzM,OAAQ,CACtClvG,UAAWhkG,EAAMmzM,WAAanzM,EAAMozM,kBACpCvE,aAAc7uM,EAAMqzM,kBAEjBL,EAEH,OAAO,KAET,MAAM,OACJjd,EAAM,UACNC,EAAS,QACTL,EAAO,WACPC,EAAU,UACVF,GACE11L,EACJ,IAAI0qG,EAAQ1qG,EAAM+hE,SAASx9F,OAAOG,OAAO,CAAC,EAAG45N,EAAOrhL,WAAWqhL,OAAQ,CACrEr+L,MAAOq+L,EAAO33J,OAAO23J,OACrB/5L,IAAKyzL,IACH,CACFsG,SACA/C,YACAj7K,OAAQtgB,EAAMsgB,KACdgzL,WAAY/uO,OAAOG,OAAO,CAAC,EAAG45N,EAAOrhL,WAAW6hL,MAAO,CACrD7+L,MAAOq+L,EAAO33J,OAAOm4J,MACrBv6L,IAAKuuM,MAgBT,OAbApoG,EAAQ+nG,GAAiB9e,EAAY+e,EAAe,CAClDve,KAAMn0L,EAAMsgB,KACZyzK,QAAQ,EACRM,cAAc,EACdD,eAAe,EACfryH,SAAU2oC,EACVqrF,SACAC,YACAC,SA5CmB,WACnBgc,GAAU,GACNjyM,EAAMi2L,UACRj2L,EAAMi2L,YAAS5wN,UAEnB,EAwCEswN,UACAC,aACAF,cAEK7oN,EAAyBizL,GAAAA,aAAsBp1D,EAAO79H,GAAa,IAAI,IAEhF+lO,GAAQ7wG,YAAc,UACtB,YC1Fe,SAASwxG,GAAS7mM,EAAS4kD,GACxC,OAAI5kD,EAAQ8mM,YAAoBliJ,GAAa5kD,EAAQ8mM,UAAU3tH,SAASv0B,IACkC,KAAlG,KAAO5kD,EAAQ4kD,UAAUmiJ,SAAW/mM,EAAQ4kD,WAAa,KAAKv/E,QAAQ,IAAMu/E,EAAY,IAClG,CCHA,MAAMoiJ,GAA6BjyM,EAAAA,YAAiB,CAAAlQ,EAKjDgT,KAAQ,IAL0C,UACnD+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAY,SACbx+H,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,mBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,MAC9Bn6I,GACH,IAEJ0zM,GAAc3xG,YAAc,gBAC5B,YCdM4xG,GAA2BlyM,EAAAA,YAAiB,CAAAlQ,EAK/CgT,KAAQ,IALwC,UACjD+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAY,SACbx+H,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,iBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,MAC9Bn6I,GACH,IAEJ2zM,GAAY5xG,YAAc,cAC1B,YCnBuCtgG,EAAAA,UAIhC,SAASmyM,GAAoBrY,EAAWsY,GAC7C,IAAIC,EAAcvY,EAMlB,MALkB,SAAdA,EACFuY,EAAcD,EAAQ,MAAQ,QACP,UAAdtY,IACTuY,EAAcD,EAAQ,QAAU,OAE3BC,CACT,CCbe,SAASC,KACtB,MAAO,CACLj8N,SAFmDzS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,WAGtDw/B,IAAK,IACLpwB,KAAM,IACNylE,QAAS,IACT4rH,cAAe,OAEnB,CCGA,MAAMkuC,GAAuBvyM,EAAAA,YAAiB,CAAAlQ,EAY3CgT,KAAQ,IAZoC,SAC7C41I,EAAQ,UACRohD,EAAY,QAAO,UACnBjqI,EAAS,MACTrxD,EAAK,SACL8hE,EAAQ,KACRjgD,EAAI,WACJwxL,EAAU,sBACVW,EAAqB,OACrB3V,EAAM,KACNh+K,KACGtgB,GACJzO,EACC,MAAM+9L,EAAoBz1C,GAAmBM,EAAU,WACjD05D,EAAQ55D,MACPi6D,IAAkC,MAAb3Y,OAAoB,EAASA,EAAUp0N,MAAM,OAAS,GAC5E2sO,EAAcF,GAAoBM,EAAkBL,GAC1D,IAAIM,EAAgBl0M,EAOpB,OANIqgB,IAAS2zL,IACXE,EAAgB,IACXl0M,KACA8zM,GAAiC,MAAVzV,OAAiB,EAASA,EAAOuD,aAG3C3R,EAAAA,GAAAA,MAAM,MAAO,CAC/B3rL,IAAKA,EACLigK,KAAM,UACNvkK,MAAOk0M,EACP,cAAeD,EACf5iJ,UAAW4rE,KAAW5rE,EAAWg+H,EAAmB4kB,GAAoB,cAAcJ,QACnF9zM,EACH+hE,SAAU,EAAcw4E,EAAAA,GAAAA,KAAK,MAAO,CAClCjpF,UAAW,mBACRgiJ,IACDxxL,GAAoBy4H,EAAAA,GAAAA,KAAKo5D,GAAa,CACxC5xI,SAAUA,IACPA,IACL,IAEJ,GAAex9F,OAAOG,OAAOsvO,GAAS,CACpCvZ,OAAQiZ,GACRhZ,KAAMiZ,GAGNS,cAAe,CAAC,EAAG,KC9CfC,GAAuB5yM,EAAAA,YAAiB,CAAAlQ,EAW3CgT,KAAQ,IAXoC,SAC7C41I,EAAQ,UACRohD,EAAY,QAAO,UACnBjqI,EAAS,MACTrxD,EAAK,SACL8hE,EAAQ,WACRuxI,EAAU,sBACVW,EAAqB,OACrB3V,EAAM,KACNh+K,KACGtgB,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAU,WACxC,MAAM05D,EAAQ55D,MACPi6D,IAAkC,MAAb3Y,OAAoB,EAASA,EAAUp0N,MAAM,OAAS,GAC5E2sO,EAAcF,GAAoBM,EAAkBL,GAC1D,IAAIM,EAAgBl0M,EAOpB,OANIqgB,IAAS2zL,IACXE,EAAgB,IACXl0M,KACA8zM,GAAiC,MAAVzV,OAAiB,EAASA,EAAOuD,aAG3C3R,EAAAA,GAAAA,MAAM,MAAO,CAC/B3rL,IAAKA,EACLtE,MAAOk0M,EACP3vC,KAAM,UACN,cAAe0vC,EACf5iJ,UAAW4rE,KAAW5rE,EAAW6oF,EAAU,cAAc25D,QACtD9zM,EACH+hE,SAAU,EAAcw4E,EAAAA,GAAAA,KAAK,MAAO,CAClCjpF,UAAW,mBACRgiJ,KACY/4D,EAAAA,GAAAA,KAAK,MAAO,CAC3BjpF,UAAW,GAAG6oF,UACdp4E,SAAUA,MAEZ,IAEJsyI,GAAQtyG,YAAc,UACtB,SAAex9H,OAAOG,OAAO2vO,GAAS,CAGpCC,eAAgB,CAAC,EAAG,KC5CtB,MAAMC,GAAa,CACjB,CAAC/gB,IAAW,OACZ,CAACC,IAAU,QAEP+gB,GAAoB/yM,EAAAA,YAAiB,CAAAlQ,EAMxCgT,KAAQ,IANiC,UAC1C+sD,EAAS,SACTyQ,EAAQ,kBACR0yI,EAAoB,CAAC,EAAC,QACtB9e,KACGv0L,GACJ7P,EACC,MAAMyO,EAAQ,CACZm0L,IAAI,EACJ3/C,QAAS,IACT6/C,cAAc,EACdD,eAAe,EACfL,QAAQ,KACL3yL,GAEC+2L,GAAc1tE,EAAAA,EAAAA,cAAY,CAAC3+E,EAAM4oK,KACrCnd,GAAqBzrJ,GACV,MAAX6pJ,GAAmBA,EAAQ7pJ,EAAM4oK,EAAY,GAC5C,CAAC/e,IACJ,OAAoBp7C,EAAAA,GAAAA,KAAKu9C,GAAmB,CAC1CvzL,IAAKA,EACL8xL,eAAgBgB,MACbr3L,EACH21L,QAASwC,EACTJ,SAAUh2H,EAASx9D,IACnBw9D,SAAUA,CAACjtD,EAAQ4jL,IAA4Bj3L,EAAAA,aAAmBsgE,EAAU,IACvE22H,EACHpnI,UAAW4rE,KAAW,OAAQ5rE,EAAWyQ,EAAS/hE,MAAMsxD,UAAWijJ,GAAWz/L,GAAS2/L,EAAkB3/L,OAE3G,IAEJ0/L,GAAKzyG,YAAc,OACnB,YCrBA,MAAM6wG,GAAuBnxM,EAAAA,YAAiB,CAAAlQ,EAQ3CshN,KAAa,IAPd9wI,SAAU4yI,EAAO,WACjB9+G,EAAa2+G,GAAI,aACjBzD,EAAe,CAAC,EAAC,UACjBoC,GAAY,EAAK,UACjB5X,EAAY,MACZj7K,KAAMs0L,GAAY,KACfC,GACJtjN,EACC,MAAMujN,GAAYhzM,EAAAA,EAAAA,QAAO,CAAC,IACnBizM,EAAoBC,IAAyBtzM,EAAAA,EAAAA,UAAS,OACtD6C,EAAKk4B,GCxBC,SAA0Bw4K,GACvC,MAAMC,GAAapzM,EAAAA,EAAAA,QAAO,MACpBqzM,EAAet7D,QAAmBv0K,EAAW,WAC7C8vO,EAAev7D,QAAmBv0K,EAAW,WAC7CnB,GAAS2mJ,EAAAA,EAAAA,UAAQ,KAAM,CAC3BhmJ,KAAM,SACNy5B,QAAS,CACPp6B,OAAQA,KACN,GAAI8wO,EACF,OAAOA,EAET,GAAIC,EAAWjqN,QAAS,CACtB,GAAIsoN,GAAS2B,EAAWjqN,QAASkqN,GAC/B,OAAOnB,GAAQI,cAEjB,GAAIb,GAAS2B,EAAWjqN,QAASmqN,GAC/B,OAAOf,GAAQC,cAEnB,CACA,MAAO,CAAC,EAAG,EAAE,MAGf,CAACW,EAAcE,EAAcC,IACjC,MAAO,CAACF,EAAY,CAAC/wO,GACvB,CDA2BkxO,CAAiBR,EAAW1wO,QAC/C6zN,EAAYC,GAAc4a,EAAUtuM,GACpC+wM,GAAkC,IAAfz/G,EAAsB2+G,GAAO3+G,QAAcvwH,EAC9DiwO,EAAoBjH,IAAiBnnI,IACzC6tI,EAAsB7tI,GACN,MAAhB4pI,GAAsD,MAA9BA,EAAapE,eAAyBoE,EAAapE,cAAcxlI,EAAM,IAajG,OAXAkrI,IAAoB,KACd0C,GAAsBF,EAAWhpN,SAEC,MAApCipN,EAAU7pN,QAAQsvI,gBAA0Bu6E,EAAU7pN,QAAQsvI,iBAChE,GACC,CAACw6E,EAAoBF,EAAWhpN,UACnC2X,EAAAA,EAAAA,YAAU,KACHoxM,GACHI,EAAsB,KACxB,GACC,CAACJ,KACgBr6D,EAAAA,GAAAA,KAAKi7D,GAAa,IACjCX,EACHtwM,IAAKyzL,EACL+Y,aAAc,IACTA,EACHt0K,UAAWA,EAAUzuC,OAAO+iN,EAAat0K,WAAa,IACtDkwK,cAAe4I,GAEjB1/G,WAAYy/G,EACZnC,UAAWA,EACX5X,UAAWA,EACXj7K,KAAMs0L,EACN7yI,SAAUA,CAAC0zI,EAAY3vM,KAIjB,IAJmB,WACvBwtM,EACAhV,OAAQoX,EAAS,KACjBp1L,GACDxa,EACC,IAAI6vM,GAxDV,SAAkB31M,EAAOszM,GACvB,MAAM,IACJ/uM,GACEvE,GAEFuE,IAAKqxM,GACHtC,EACJtzM,EAAMuE,IAAMA,EAAIsxM,YAActxM,EAAIsxM,UAAY1hO,GAAKowB,EAAIqzL,GAAgBzjN,KACvEm/N,EAAW/uM,IAAMqxM,EAAKC,YAAcD,EAAKC,UAAY1hO,GAAKyhO,EAAKhe,GAAgBzjN,IACjF,CAgDM2hO,CAASL,EAAcnC,GAEvB,MAAMyC,EAAgC,MAAbL,OAAoB,EAASA,EAAUna,UAC1D+C,EAAS/5N,OAAOG,OAAOowO,EAAU7pN,QAAS,CAC9Ck8E,MAAoB,MAAbuuI,OAAoB,EAASA,EAAUvuI,MAC9CozD,eAA6B,MAAbm7E,OAAoB,EAASA,EAAU9tJ,OACvD2zI,UAAWwa,EACXC,iBAA+B,MAAbN,GAA6D,OAAvCC,EAAmBD,EAAUvuI,QAA8E,OAA3DwuI,EAAmBA,EAAiB3W,cAAc3+K,WAAgB,EAASs1L,EAAiBzI,qBAAsB,EAC1MrL,SAAUkP,EAAalP,WAEnBoS,IAA0Bc,EAChC,MAAuB,oBAAZJ,EAA+BA,EAAQ,IAC7Cc,EACHla,UAAWwa,EACXz1L,WACKu1E,GAAcv1E,GAAQ,CACzBgxC,UAAW,QAEbgtI,SACAgV,aACAW,0BAEkBxyM,EAAAA,aAAmBkzM,EAAS,IAC3Cc,EACHla,UAAWwa,EACXzC,aACAhV,SACA2V,wBACA3iJ,UAAW4rE,KAAWy3E,EAAQ30M,MAAMsxD,WAAYukC,GAAcv1E,GAAQ,QACtErgB,MAAO,IACF00M,EAAQ30M,MAAMC,SACdw1M,EAAax1M,QAElB,GAEJ,IAEJ2yM,GAAQ7wG,YAAc,UACtB,YE3GA,IAAI1yH,GACW,SAAS4mO,GAAcC,GACpC,KAAK7mO,IAAiB,IAATA,IAAc6mO,IACrB/6G,GAAW,CACb,IAAIg7G,EAAY/vM,SAAS9B,cAAc,OACvC6xM,EAAUl2M,MAAMnoB,SAAW,WAC3Bq+N,EAAUl2M,MAAM4E,IAAM,UACtBsxM,EAAUl2M,MAAMztB,MAAQ,OACxB2jO,EAAUl2M,MAAM6E,OAAS,OACzBqxM,EAAUl2M,MAAMskE,SAAW,SAC3Bn+D,SAAS0b,KAAKnJ,YAAYw9L,GAC1B9mO,GAAO8mO,EAAU/pK,YAAc+pK,EAAUvW,YACzCx5L,SAAS0b,KAAKwuB,YAAY6lK,EAC5B,CAGF,OAAO9mO,EACT,CCTe,SAAS+mO,GAAepnN,GACrC,MAAMyU,ECFO,SAAuBt3B,GACpC,MAAMkqO,GAAWv0M,EAAAA,EAAAA,QAAO31B,GAExB,OADAkqO,EAASprN,QAAU9e,EACZkqO,CACT,CDFoBC,CAActnN,IAChCwU,EAAAA,EAAAA,YAAU,IAAM,IAAMC,EAAUxY,WAAW,GAC7C,CELe,SAAS+3G,GAAc0vF,QACxB,IAARA,IACFA,EAAM9uF,MAKR,IACE,IAAIv3B,EAASqmH,EAAI1vF,cAGjB,OAAK32B,GAAWA,EAAOm2B,SAChBn2B,EADiC,IAE1C,CAAE,MAAO3iG,IAEP,OAAOgpN,EAAI5wK,IACb,CACF,CCLe,SAASy0L,GAAYpqO,GAClC,MAAMo4B,GAAMzC,EAAAA,EAAAA,QAAO,MAInB,OAHA0B,EAAAA,EAAAA,YAAU,KACRe,EAAItZ,QAAU9e,CAAK,IAEdo4B,EAAItZ,OACb,CCzBO,MAAMurN,GAAmB,cAEzB,SAASC,GAAS3yO,GACvB,MAAO,GAAG0yO,KAAmB1yO,GAC/B,CCDO,MAAM4yO,GAAsBD,GAAS,cAgG5C,SA1FA,MACE7yO,WAAAA,GAIQ,IAJI,cACVggI,EAAa,wBACb+yG,GAA0B,EAAI,MAC9B9C,GAAQ,GACTxuO,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACHkO,KAAKojO,wBAA0BA,EAC/BpjO,KAAKsgO,MAAQA,EACbtgO,KAAKqjO,OAAS,GACdrjO,KAAKqwH,cAAgBA,CACvB,CACAizG,iBAAAA,GACE,OClBW,WAAyD,IAA1BjzG,EAAav+H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG+gC,SAC5D,MAAMvyB,EAAS+vH,EAAckW,YAC7B,OAAOr0I,KAAK+S,IAAI3E,EAAOi5G,WAAa8W,EAAc+V,gBAAgBimF,YACpE,CDeWkX,CAAsBvjO,KAAKqwH,cACpC,CACAnc,UAAAA,GACE,OAAQl0G,KAAKqwH,eAAiBx9F,UAAU0b,IAC1C,CACAi1L,kBAAAA,CAAmBC,GACjB,CAEFC,qBAAAA,CAAsBD,GACpB,CAEFE,iBAAAA,CAAkBC,GAChB,MAAMl3M,EAAQ,CACZskE,SAAU,UAKN6yI,EAAc7jO,KAAKsgO,MAAQ,cAAgB,eAC3ChnO,EAAY0G,KAAKk0G,aACvB0vH,EAAel3M,MAAQ,CACrBskE,SAAU13F,EAAUozB,MAAMskE,SAC1B,CAAC6yI,GAAcvqO,EAAUozB,MAAMm3M,IAE7BD,EAAeE,iBAGjBp3M,EAAMm3M,GAAe,GAAG3hN,SAASw9L,GAAIpmN,EAAWuqO,IAAgB,IAAK,IAAMD,EAAeE,oBAE5FxqO,EAAUg1C,aAAa60L,GAAqB,IAC5CzjB,GAAIpmN,EAAWozB,EACjB,CACAwzB,KAAAA,GACE,IAAIlgD,KAAKqjO,QAAQ5lN,SAAQrP,GAAKpO,KAAKukK,OAAOn2J,IAC5C,CACA21N,oBAAAA,CAAqBH,GACnB,MAAMtqO,EAAY0G,KAAKk0G,aACvB56G,EAAUgvG,gBAAgB66H,IAC1BnyO,OAAOG,OAAOmI,EAAUozB,MAAOk3M,EAAel3M,MAChD,CACA7lB,GAAAA,CAAIm9N,GACF,IAAIC,EAAWjkO,KAAKqjO,OAAO7kO,QAAQwlO,GACnC,OAAkB,IAAdC,EACKA,GAETA,EAAWjkO,KAAKqjO,OAAOlzO,OACvB6P,KAAKqjO,OAAO7tO,KAAKwuO,GACjBhkO,KAAKwjO,mBAAmBQ,GACP,IAAbC,IAGJjkO,KAAK4zF,MAAQ,CACXkwI,eAAgB9jO,KAAKsjO,oBACrB52M,MAAO,CAAC,GAEN1sB,KAAKojO,yBACPpjO,KAAK2jO,kBAAkB3jO,KAAK4zF,QAPrBqwI,EAUX,CACA1/D,MAAAA,CAAOy/D,GACL,MAAMC,EAAWjkO,KAAKqjO,OAAO7kO,QAAQwlO,IACnB,IAAdC,IAGJjkO,KAAKqjO,OAAO9oN,OAAO0pN,EAAU,IAIxBjkO,KAAKqjO,OAAOlzO,QAAU6P,KAAKojO,yBAC9BpjO,KAAK+jO,qBAAqB/jO,KAAK4zF,OAEjC5zF,KAAK0jO,sBAAsBM,GAC7B,CACAE,UAAAA,CAAWF,GACT,QAAShkO,KAAKqjO,OAAOlzO,QAAU6P,KAAKqjO,OAAOrjO,KAAKqjO,OAAOlzO,OAAS,KAAO6zO,CACzE,GEjGI9vM,GAAY,CAAC,OAAQ,OAAQ,YAAa,QAAS,WAAY,WAAY,WAAY,kBAAmB,kBAAmB,aAAc,gBAAiB,qBAAsB,wBAAyB,YAAa,eAAgB,eAAgB,sBAAuB,eAAgB,iBAAkB,UAAW,YAAa,SAAU,SAAU,SAAU,WAAY,YAAa,UAAW,aAAc,aAqB/Z,IAAIiwM,GAaJ,SAASC,GAAgBC,GACvB,MAAM/jO,EAASq8N,KACT2H,EAAeD,GARvB,SAAoB/jO,GAIlB,OAHK6jO,KAASA,GAAU,IAAII,GAAa,CACvCl0G,cAAyB,MAAV/vH,OAAiB,EAASA,EAAOuyB,YAE3CsxM,EACT,CAGmCK,CAAWlkO,GACtC0jO,GAAQz1M,EAAAA,EAAAA,QAAO,CACnBk2M,OAAQ,KACRC,SAAU,OAEZ,OAAO1zO,OAAOG,OAAO6yO,EAAMtsN,QAAS,CAClC7Q,IAAKA,IAAMy9N,EAAaz9N,IAAIm9N,EAAMtsN,SAClC6sJ,OAAQA,IAAM+/D,EAAa//D,OAAOy/D,EAAMtsN,SACxCwsN,WAAYA,IAAMI,EAAaJ,WAAWF,EAAMtsN,SAChDitN,cAAcztF,EAAAA,EAAAA,cAAYlmH,IACxBgzM,EAAMtsN,QAAQ+sN,OAASzzM,CAAG,GACzB,IACH4zM,gBAAgB1tF,EAAAA,EAAAA,cAAYlmH,IAC1BgzM,EAAMtsN,QAAQgtN,SAAW1zM,CAAG,GAC3B,KAEP,CACA,MAAM6zM,IAAqBx7E,EAAAA,EAAAA,aAAW,CAACrrI,EAAMgT,KAC3C,IAAI,KACA+b,GAAO,EAAK,KACZkkJ,EAAO,SAAQ,UACflzG,EAAS,MACTrxD,EAAK,SACL8hE,EAAQ,SACRk2I,GAAW,EAAI,SACfI,GAAW,EAAI,gBACfC,EAAe,gBACfC,EAAe,WACf1iH,EAAU,cACV68G,EAAa,mBACb8F,EAAkB,sBAClBC,EAAqB,UACrBjnF,GAAY,EAAI,aAChBknF,GAAe,EAAI,aACnBC,GAAe,EAAI,oBACnBC,EAAmB,aACnBC,EAAY,eACZC,EAAiB94M,IAAsBu6I,EAAAA,GAAAA,KAAK,MAAOh2K,OAAOG,OAAO,CAAC,EAAGs7B,IACrE03M,QAASqB,EACTlsO,UAAWmsO,EAAY,OACvBC,EAAM,OACN/F,EAASA,OAAQ,OACjBnd,EAAM,SACNE,EAAQ,UACRD,EAAS,QACTL,EAAO,WACPC,EAAU,UACVF,GACEnkM,EACJ6P,EApFJ,SAAuCjtB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CAoFzL8pL,CAA8BzwK,EAAMkW,IAC7C,MAAMkrL,EAAcud,KACdrjO,EAAYujO,GAAiB4I,GAC7BzB,EAAQI,GAAgBoB,GACxBptF,EAAYyvE,KACZ8d,EAAW3C,GAAYj2L,IACtB0xL,EAAQC,IAAavwM,EAAAA,EAAAA,WAAU4e,GAChC64L,GAAer3M,EAAAA,EAAAA,QAAO,OAC5B6oH,EAAAA,EAAAA,qBAAoBpmH,GAAK,IAAMgzM,GAAO,CAACA,IACnCp8G,KAAc+9G,GAAY54L,IAC5B64L,EAAaluN,QAAU+3G,GAA6B,MAAf2vF,OAAsB,EAASA,EAAYvsL,WAI9Eka,GAAQ0xL,GACVC,GAAU,GAEZ,MAAMmH,EAAa9K,IAAiB,KAalC,GAZAiJ,EAAMn9N,MACNi/N,EAAyBpuN,QAAUixJ,GAAO91I,SAAU,UAAWkzM,GAC/DC,EAAuBtuN,QAAUixJ,GAAO91I,SAAU,SAGlD,IAAMoY,WAAWg7L,KAAqB,GAClCP,GACFA,IAKEznF,EAAW,CACb,IAAIioF,EAAuBC,EAC3B,MAAMC,EAAuB32G,GAAyH,OAA1Gy2G,EAA0D,OAAjCC,EAAgBnC,EAAMS,aAAkB,EAAS0B,EAAc91G,eAAyB61G,EAAuC,MAAf9mB,OAAsB,EAASA,EAAYvsL,UAC5NmxM,EAAMS,QAAU2B,IAAyB9zH,GAAS0xH,EAAMS,OAAQ2B,KAClER,EAAaluN,QAAU0uN,EACvBpC,EAAMS,OAAOn9F,QAEjB,KAEI++F,EAAatL,IAAiB,KAKhC,IAAIuL,GAJNtC,EAAMz/D,SAC8B,MAApCuhE,EAAyBpuN,SAA2BouN,EAAyBpuN,UAC3C,MAAlCsuN,EAAuBtuN,SAA2BsuN,EAAuBtuN,UACrE0tN,KAGgD,OAAjDkB,EAAwBV,EAAaluN,UAA2D,MAA/B4uN,EAAsBh/F,OAAyBg/F,EAAsBh/F,MAAM+9F,GAC7IO,EAAaluN,QAAU,KACzB,KAOFuY,EAAAA,EAAAA,YAAU,KACH8c,GAASzzC,GACdusO,GAAY,GACX,CAAC94L,EAAMzzC,EAAqCusO,KAK/C51M,EAAAA,EAAAA,YAAU,KACHwuM,GACL4H,GAAY,GACX,CAAC5H,EAAQ4H,IACZxD,IAAe,KACbwD,GAAY,IAKd,MAAMJ,EAAqBlL,IAAiB,KAC1C,IAAKoK,IAAiB/sF,MAAgB4rF,EAAME,aAC1C,OAEF,MAAMkC,EAAuB32G,GAA6B,MAAf2vF,OAAsB,EAASA,EAAYvsL,UAClFmxM,EAAMS,QAAU2B,IAAyB9zH,GAAS0xH,EAAMS,OAAQ2B,IAClEpC,EAAMS,OAAOn9F,OACf,IAEIi/F,EAAsBxL,IAAiB5kO,IACvCA,EAAEmiB,SAAWniB,EAAEgnI,gBAGA,MAAnB4nG,GAAmCA,EAAgB5uO,IAClC,IAAbuuO,GACF/E,IACF,IAEIoG,EAAwBhL,IAAiB5kO,IACzC2uO,GAAY1I,GAASjmO,IAAM6tO,EAAME,eAChB,MAAnBc,GAAmCA,EAAgB7uO,GAC9CA,EAAEknI,kBACLsiG,IAEJ,IAEIqG,GAAyBz3M,EAAAA,EAAAA,UACzBu3M,GAA2Bv3M,EAAAA,EAAAA,UAKjC,IAAKj1B,EACH,OAAO,KAET,MAAMktO,EAAcx1O,OAAOG,OAAO,CAChC8/L,OACAjgK,IAAKgzM,EAAMW,aAEX,aAAuB,WAAT1zC,QAA2Bl/L,GACxC87B,EAAM,CACPnB,QACAqxD,YACA8+H,UAAW,IAEb,IAAI4nB,EAASa,EAAeA,EAAakB,IAA4Bx/D,EAAAA,GAAAA,KAAK,MAAOh2K,OAAOG,OAAO,CAAC,EAAGq1O,EAAa,CAC9Gh4I,SAAuBtgE,EAAAA,aAAmBsgE,EAAU,CAClDyiG,KAAM,gBAGVwzC,EAASvF,GAAiB58G,EAAY68G,EAAe,CACnDte,eAAe,EACfC,cAAc,EACdN,QAAQ,EACRI,KAAM7zK,EACNy1K,SACAC,YACAC,SA7BmB,WACnBgc,GAAU,GACE,MAAZhc,GAA4BA,KAAS5wN,UACvC,EA2BEswN,UACAC,aACAF,YACA3zH,SAAUi2I,IAEZ,IAAIgC,EAAkB,KActB,OAbI/B,IACF+B,EAAkBlB,EAAe,CAC/Bv0M,IAAKgzM,EAAMY,eACX5gH,QAASuiH,IAEXE,EAAkBvH,GAAiB+F,EAAoBC,EAAuB,CAC5EtkB,KAAM7zK,EACNyzK,QAAQ,EACRM,cAAc,EACdD,eAAe,EACfryH,SAAUi4I,MAGMz/D,EAAAA,GAAAA,KAAK0/D,GAAAA,SAAW,CAClCl4I,SAAuB+9F,GAAAA,cAAoCowB,EAAAA,GAAAA,MAAM+pB,GAAAA,SAAW,CAC1El4I,SAAU,CAACi4I,EAAiBhC,KAC1BnrO,IACJ,IAEJurO,GAAMr2G,YAAc,QACpB,SAAex9H,OAAOG,OAAO0zO,GAAO,CAClC8B,QAASpC,KCnPX,IAAI7iO,GAAUg/J,SAASxvK,UAAUqG,KAAKO,KAAK4oK,SAASxvK,UAAU4G,KAAM,GAAGiC,OAQxD,SAAS6sO,GAAIztM,EAAS0tM,GACnC,OAAOnlO,GAAQy3B,EAAQ+iC,iBAAiB2qK,GAC1C,CCVA,SAASC,GAAiBC,EAAWC,GACnC,OAAOD,EAAUxlO,QAAQ,IAAI0nJ,OAAO,UAAY+9E,EAAgB,YAAa,KAAM,MAAMzlO,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,GACtI,CCGA,MAAM0lO,GACW,oDADXA,GAEY,cAFZA,GAGY,kBAElB,MAAMC,WAA8B3C,GAClC4C,cAAAA,CAAe5xM,EAAM4D,EAASiuM,GAC5B,MAAM/nN,EAAS8Z,EAAQzM,MAAM6I,GAG7B4D,EAAQwjH,QAAQpnH,GAAQlW,EACxBqgM,GAAIvmL,EAAS,CACX,CAAC5D,GAAO,GAAG40F,WAAWu1F,GAAIvmL,EAAS5D,IAAS6xM,OAEhD,CACAx/I,OAAAA,CAAQryD,EAAM4D,GACZ,MAAMvgC,EAAQugC,EAAQwjH,QAAQpnH,QAChBxjC,IAAV6G,WACKugC,EAAQwjH,QAAQpnH,GACvBmqL,GAAIvmL,EAAS,CACX,CAAC5D,GAAO38B,IAGd,CACA+qO,iBAAAA,CAAkBC,GAChB1pN,MAAMypN,kBAAkBC,GACxB,MAAMtqO,EAAY0G,KAAKk0G,aCvBZ,IAAkB/6E,EAAS4kD,EDyBtC,GCzBsCA,EDwBlB,cCxBS5kD,EDwBpB7/B,GCvBC2mO,UAAW9mM,EAAQ8mM,UAAUp5N,IAAIk3E,GAAqBiiJ,GAAS7mM,EAAS4kD,KAA6C,kBAAtB5kD,EAAQ4kD,UAAwB5kD,EAAQ4kD,UAAY5kD,EAAQ4kD,UAAY,IAAMA,EAAe5kD,EAAQmV,aAAa,SAAUnV,EAAQ4kD,WAAa5kD,EAAQ4kD,UAAUmiJ,SAAW,IAAM,IAAMniJ,KDwB9R6lJ,EAAeE,eAAgB,OACpC,MAAMD,EAAc7jO,KAAKsgO,MAAQ,cAAgB,eAC3C+G,EAAarnO,KAAKsgO,MAAQ,aAAe,cAC/CsG,GAAIttO,EAAW2tO,IAAwBxpN,SAAQmnI,GAAM5kJ,KAAKmnO,eAAetD,EAAaj/E,EAAIg/E,EAAeE,kBACzG8C,GAAIttO,EAAW2tO,IAAyBxpN,SAAQmnI,GAAM5kJ,KAAKmnO,eAAeE,EAAYziF,GAAKg/E,EAAeE,kBAC1G8C,GAAIttO,EAAW2tO,IAAyBxpN,SAAQmnI,GAAM5kJ,KAAKmnO,eAAeE,EAAYziF,EAAIg/E,EAAeE,iBAC3G,CACAC,oBAAAA,CAAqBH,GACnB1pN,MAAM6pN,qBAAqBH,GAC3B,MAAMtqO,EAAY0G,KAAKk0G,aD/BZ,IAAqB/6E,EAAS4kD,ICgClB,cDhCS5kD,ECgCpB7/B,GD/BF2mO,UACV9mM,EAAQ8mM,UAAU17D,OAAOxmF,GACa,kBAAtB5kD,EAAQ4kD,UACxB5kD,EAAQ4kD,UAAY+oJ,GAAiB3tM,EAAQ4kD,UAAWA,GAExD5kD,EAAQmV,aAAa,QAASw4L,GAAiB3tM,EAAQ4kD,WAAa5kD,EAAQ4kD,UAAUmiJ,SAAW,GAAIniJ,IC2BrG,MAAM8lJ,EAAc7jO,KAAKsgO,MAAQ,cAAgB,eAC3C+G,EAAarnO,KAAKsgO,MAAQ,aAAe,cAC/CsG,GAAIttO,EAAW2tO,IAAwBxpN,SAAQmnI,GAAM5kJ,KAAK4nF,QAAQi8I,EAAaj/E,KAC/EgiF,GAAIttO,EAAW2tO,IAAyBxpN,SAAQmnI,GAAM5kJ,KAAK4nF,QAAQy/I,EAAYziF,KAC/EgiF,GAAIttO,EAAW2tO,IAAyBxpN,SAAQmnI,GAAM5kJ,KAAK4nF,QAAQy/I,EAAYziF,IACjF,EAEF,IAAI0iF,GAKJ,MElDMC,GAAyBr5M,EAAAA,YAAiB,CAAAlQ,EAK7CgT,KAAQ,IALsC,UAC/C+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAY,SACbx+H,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,eACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,MAC9Bn6I,GACH,IAEJ86M,GAAU/4G,YAAc,YACxB,YCbA,GAJkCtgG,EAAAA,cAAoB,CAEpDyxM,MAAAA,GAAU,ICCN6H,GAA2Bt5M,EAAAA,YAAiB,CAAAlQ,EAU/CgT,KAAQ,IAVwC,SACjD41I,EAAQ,UACR7oF,EAAS,iBACT0pJ,EAAgB,SAChBC,EAAQ,KACR5rO,EAAI,WACJ6rO,EAAU,SACVn5I,EAAQ,WACRo5I,KACGn7M,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAU,SACxC,MAAMihE,EAAc,GAAGjhE,WACjBkhE,EAAwC,kBAAfH,EAA0B,GAAG/gE,gBAAuB+gE,IAAe,GAAG/gE,eACrG,OAAoBI,EAAAA,GAAAA,KAAK,MAAO,IAC3Bv6I,EACHuE,IAAKA,EACL+sD,UAAW4rE,KAAWk+E,EAAa9pJ,EAAWjiF,GAAQ,GAAG8qK,KAAY9qK,IAAQ4rO,GAAY,GAAGG,aAAwBD,GAAc,GAAGC,eAA0BF,GAAcG,GAC7Kt5I,UAAuBw4E,EAAAA,GAAAA,KAAK,MAAO,CACjCjpF,UAAW4rE,KAAW,GAAGid,YAAoB6gE,GAC7Cj5I,SAAUA,KAEZ,IAEJg5I,GAAYh5G,YAAc,cAC1B,YCzBMu5G,GAA2B75M,EAAAA,YAAiB,CAAAlQ,EAK/CgT,KAAQ,IALwC,UACjD+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAY,SACbx+H,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,iBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,MAC9Bn6I,GACH,IAEJs7M,GAAYv5G,YAAc,cAC1B,YChBM16B,GAAY,CAEhB,aAAc0b,IAAAA,OAEdwU,QAASxU,IAAAA,KAMTp3G,QAASo3G,IAAAA,MAAgB,CAAC,WAEtBw4H,GAA2B95M,EAAAA,YAAiB,CAAAlQ,EAK/CgT,KAAG,IAL6C,UACjD+sD,EAAS,QACT3lF,EACA,aAAcglF,EAAY,WACvB3wD,GACJzO,EAAA,OAAuBgpJ,EAAAA,GAAAA,KAAK,SAAU,CACrCh2I,IAAKA,EACLxT,KAAM,SACNugE,UAAW4rE,KAAW,YAAavxJ,GAAW,aAAaA,IAAW2lF,GACtE,aAAcX,KACX3wD,GACH,IACFu7M,GAAYx5G,YAAc,cAC1Bw5G,GAAYl0I,UAAYA,GACxB,YCrBMm0I,GAAmC/5M,EAAAA,YAAiB,CAAAlQ,EAOvDgT,KAAQ,IAPgD,WACzDk3M,EAAa,QAAO,aACpBC,EAAY,YACZC,GAAc,EAAK,OACnBzI,EAAM,SACNnxI,KACG/hE,GACJzO,EACC,MAAM0mE,GAAUyyD,EAAAA,EAAAA,YAAWkxF,IACrBvrB,EAAcie,IAAiB,KACxB,MAAXr2I,GAAmBA,EAAQi7I,SACjB,MAAVA,GAAkBA,GAAQ,IAE5B,OAAoBhjB,EAAAA,GAAAA,MAAM,MAAO,CAC/B3rL,IAAKA,KACFvE,EACH+hE,SAAU,CAACA,EAAU45I,IAA4BphE,EAAAA,GAAAA,KAAKghE,GAAa,CACjE,aAAcE,EACd9vO,QAAS+vO,EACTnkH,QAAS84F,MAEX,IAEJ,MCzBMwrB,GAA2Bp6M,EAAAA,YAAiB,CAAAlQ,EAM/CgT,KAAQ,IANwC,SACjD41I,EAAQ,UACR7oF,EAAS,WACTmqJ,EAAa,QAAO,YACpBE,GAAc,KACX37M,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,iBACpBI,EAAAA,GAAAA,KAAKihE,GAAqB,CAC5Cj3M,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAW6oF,GACjCshE,WAAYA,EACZE,YAAaA,GACb,IAEJE,GAAY95G,YAAc,cAC1B,YCjBM+5G,ICJUxqJ,GDIuB,KCJG7vD,EAAAA,YAAiB,CAACxgB,EAAGsjB,KAAqBg2I,EAAAA,GAAAA,KAAK,MAAO,IAC3Ft5J,EACHsjB,IAAKA,EACL+sD,UAAW4rE,KAAWj8I,EAAEqwE,UAAWA,SAHrC,IAAgBA,GDKhB,MAAMyqJ,GAA0Bt6M,EAAAA,YAAiB,CAAAlQ,EAK9CgT,KAAQ,IALuC,UAChD+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAYs9E,MACb97M,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,gBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,MAC9Bn6I,GACH,IAEJ+7M,GAAWh6G,YAAc,aACzB,YEKA,SAASi6G,GAAiBh8M,GACxB,OAAoBu6I,EAAAA,GAAAA,KAAKi6D,GAAM,IAC1Bx0M,EACHw0I,QAAS,MAEb,CACA,SAASynE,GAAmBj8M,GAC1B,OAAoBu6I,EAAAA,GAAAA,KAAKi6D,GAAM,IAC1Bx0M,EACHw0I,QAAS,MAEb,CAGA,MAAM4jE,GAAqB32M,EAAAA,YAAiB,CAAAlQ,EAmCzCgT,KAAQ,IAnCkC,SAC3C41I,EAAQ,UACR7oF,EAAS,MACTrxD,EAAK,gBACLi8M,EAAe,iBACflB,EAAgB,SAChBj5I,EACAo6I,SAAUC,EAASrB,GACnB,gBAAiBsB,EACjB,kBAAmBC,EACnB,mBAAoBC,EACpB,aAAc5rJ,EAAS,KAGvBrwC,GAAO,EAAK,UACZnL,GAAY,EAAI,SAChB8iM,GAAW,EAAI,SACfI,GAAW,EAAI,gBACfE,EAAe,OACfU,EAAM,OACN/F,EAAM,UACNrmO,EAAS,UACT2kJ,GAAY,EAAI,aAChBknF,GAAe,EAAI,aACnBC,GAAe,EAAI,oBACnBC,EAAmB,UACnBljB,EAAS,OACTK,EAAM,UACNC,EAAS,QACTL,EAAO,WACPC,EAAU,SACVK,EAAQ,kBACRumB,EACA9E,QAAS+E,KACNz8M,GACJzO,EACC,MAAOmrN,EAAYC,IAAYj7M,EAAAA,EAAAA,UAAS,CAAC,IAClCk7M,EAAoBC,IAAyBn7M,EAAAA,EAAAA,WAAS,GACvDo7M,GAAuBh7M,EAAAA,EAAAA,SAAO,GAC9Bi7M,GAAyBj7M,EAAAA,EAAAA,SAAO,GAChCk7M,GAAgCl7M,EAAAA,EAAAA,QAAO,OACtCy1M,EAAO0F,GAAeriB,KACvB5C,EAAYC,GAAc1zL,EAAK04M,GAC/BrD,EAAatL,GAAiB4E,GAC9BW,EAAQ55D,KACdE,EAAWN,GAAmBM,EAAU,SACxC,MAAM+iE,GAAepyF,EAAAA,EAAAA,UAAQ,KAAM,CACjCooF,OAAQ0G,KACN,CAACA,IACL,SAASuD,IACP,OAAIV,GXvCD,SAA0Bl+M,GAE/B,OADKs8M,KAAeA,GAAgB,IAAIJ,GAAsBl8M,IACvDs8M,EACT,CWqCWuC,CAAiB,CACtBvJ,SAEJ,CACA,SAASwJ,EAAkBvxK,GACzB,IAAKqvD,GAAW,OAChB,MAAMmiH,EAAyBH,IAAkBtG,oBAAsB,EACjE0G,EAAqBzxK,EAAK+3J,aAAejgG,GAAc93D,GAAM6tE,gBAAgBgmF,aACnFgd,EAAS,CACPxvH,aAAcmwH,IAA2BC,EAAqBC,UAAqBl4O,EACnF4nH,aAAcowH,GAA0BC,EAAqBC,UAAqBl4O,GAEtF,CACA,MAAMm4O,EAAqBnP,IAAiB,KACtCiJ,GACF8F,EAAkB9F,EAAMS,OAC1B,IAEF5B,IAAe,KACblyM,GAAoBrwB,OAAQ,SAAU4pO,GACG,MAAzCT,EAA8B/xN,SAAmB+xN,EAA8B/xN,SAAS,IAM1F,MAAMyyN,EAAwBA,KAC5BZ,EAAqB7xN,SAAU,CAAI,EAE/Bg/I,EAAgBvgK,IAChBozO,EAAqB7xN,SAAWssN,GAAS7tO,EAAEmiB,SAAW0rN,EAAMS,SAC9D+E,EAAuB9xN,SAAU,GAEnC6xN,EAAqB7xN,SAAU,CAAK,EAEhC0yN,EAA6BA,KACjCd,GAAsB,GACtBG,EAA8B/xN,QAAUisM,GAAcqgB,EAAMS,QAAQ,KAClE6E,GAAsB,EAAM,GAC5B,EAQExsB,GAAc3mN,IACD,WAAbuuO,EAIA8E,EAAuB9xN,SAAWvhB,EAAEmiB,SAAWniB,EAAEgnI,cACnDqsG,EAAuB9xN,SAAU,EAGzB,MAAVioN,GAAkBA,IAfcxpO,KAC5BA,EAAEmiB,SAAWniB,EAAEgnI,eAGnBitG,GAA4B,EAI1BC,CAA0Bl0O,EAOF,EAqCtBovO,IAAiBruF,EAAAA,EAAAA,cAAYozF,IAA8BtjE,EAAAA,GAAAA,KAAK,MAAO,IACxEsjE,EACHvsJ,UAAW4rE,KAAW,GAAGid,aAAqBqiE,GAAoBrnM,GAAa,WAC7E,CAACA,EAAWqnM,EAAmBriE,IAC7B2jE,GAAiB,IAClB79M,KACAy8M,GAKLoB,GAAenxM,QAAU,QAoBzB,OAAoB4tI,EAAAA,GAAAA,KAAKqhE,GAAa38E,SAAU,CAC9C9yJ,MAAO+wO,EACPn7I,UAAuBw4E,EAAAA,GAAAA,KAAKwjE,GAAW,CACrCz9L,KAAMA,EACN/b,IAAKyzL,EACLigB,SAAUA,EACVprO,UAAWA,EACXwrO,UAAU,EAEV7mF,UAAWA,EACXknF,aAAcA,EACdC,aAAcA,EACdC,oBAAqBA,EACrBL,gBA/EwB7uO,IACtB2uO,EACiB,MAAnBE,GAA2BA,EAAgB7uO,IAG3CA,EAAE+0H,iBACe,WAAbw5G,GAEF0F,IAEJ,EAsEE1E,OAAQA,EACR/F,OAAQA,EACRvd,QAtEgBwC,CAACrsJ,EAAM4oK,KACrB5oK,GACFuxK,EAAkBvxK,GAET,MAAX6pJ,GAAmBA,EAAQ7pJ,EAAM4oK,EAAY,EAmE3C9e,WA7DmBwC,CAACtsJ,EAAM4oK,KACd,MAAd9e,GAAsBA,EAAW9pJ,EAAM4oK,GAGvCzwM,GAAiBpwB,OAAQ,SAAU4pO,EAAmB,EA0DpD/nB,UAAWA,EACXK,OAnEejqJ,IACwB,MAAzCkxK,EAA8B/xN,SAAmB+xN,EAA8B/xN,UACrE,MAAV8qM,GAAkBA,EAAOjqJ,EAAK,EAkE5BkqJ,UAAWA,EACXC,SA3DiBnqJ,IACfA,IAAMA,EAAK7rC,MAAM0M,QAAU,IACnB,MAAZspL,GAAoBA,EAASnqJ,GAG7B5nC,GAAoBrwB,OAAQ,SAAU4pO,EAAmB,EAuDvD/F,QAASyF,IACTtnH,WAAY1gF,EAAY6mM,QAAmB12O,EAC3CkzO,mBAAoBrjM,EAAY8mM,QAAqB32O,EACrDwzO,eAAgBA,GAChBD,aA7CiBkB,IAA4Bx/D,EAAAA,GAAAA,KAAK,MAAO,CAC3DiqB,KAAM,YACHu1C,EACH95M,MAAO69M,GACPxsJ,UAAW4rE,KAAW5rE,EAAW6oF,EAAUyiE,GAAsB,GAAGziE,YAAoBhlI,GAAa,QACrGoiF,QAAS0gH,EAAW5nB,QAAc/qN,EAClCq5H,UAAWsrC,EACX,gBAAiBoyE,EACjB,aAAc1rJ,EACd,kBAAmB2rJ,EACnB,mBAAoBC,EACpBx6I,UAAuBw4E,EAAAA,GAAAA,KAAK6hE,EAAQ,IAC/Bp8M,EACH0+F,YAAag/G,EACbpsJ,UAAW4qJ,EACXlB,iBAAkBA,EAClBj5I,SAAUA,SA+BZ,IAEJq2I,GAAMr2G,YAAc,QACpB,SAAex9H,OAAOG,OAAO0zO,GAAO,CAClC1d,KAAMogB,GACNrgB,OAAQohB,GACRmC,MAAOjC,GACPkC,OAAQ3C,GACRc,OAAQrB,GACRmD,oBAAqB,IACrBC,6BAA8B,MCpNhC,MACA,GAAe,sBAA0B,yDCuBzC,GAlDmB5sN,IAA2D,IAA1D,KAAE+uB,EAAI,QAAE89L,EAAO,KAAEtsO,EAAI,SAAE+kM,GAA6BtlL,EACtE,MAAO8sN,EAAYC,IAAiB58M,EAAAA,EAAAA,WAAkB,GAChD7zB,GAAOi0B,EAAAA,EAAAA,QAAO,MAgBpB,OACEouL,EAAAA,GAAAA,MAACkoB,GAAK,CACJ93L,KAAMA,EACN4yL,OAjBgBqL,KAClBH,GAAQ,EAAM,EAiBZnD,UAAQ,EACRhD,SAAS,SACT3mJ,UAAU,aACV+mJ,UAAU,EAAMt2I,SAAA,EAEhBw4E,EAAAA,GAAAA,KAAC69D,GAAM3d,OAAM,CAACkhB,aAAW,EAACrqJ,UAAU,cACpC4+H,EAAAA,GAAAA,MAACkoB,GAAM1d,KAAI,CAACppI,UAAU,mBAAkByQ,SAAA,EACtCw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,OAAMyQ,SAAC,oCACrBmuH,EAAAA,GAAAA,MAAA,KAAAnuH,SAAA,CAAG,OAAK80G,GAAY,IAAIA,OAAc,4BACtCqZ,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,+DAA8DyQ,SAAA,EAC3Ew4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,6BAA4ByQ,SAAEjwF,KAC7Co+M,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,gDAAgDimC,QAzBnDinH,KAClB52M,UAAU62M,UAAUC,UAAU5sO,GAC9BwsO,GAAc,GAEd,MAAMK,EAAKngM,YAAW,KACpB8/L,GAAc,GACd/nH,aAAaooH,EAAG,GACf,IAAK,EAkBmFp6M,IAAK12B,EAAKk0F,SAAA,EAC7Fw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,OAAMyQ,SAAC,sBACvBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKg5O,GAAMp6H,IAAI,aAExB+1D,EAAAA,GAAAA,KAACq4D,GAAO,CAAC/mN,OAAQhe,EAAKod,QAASq1B,KAAM+9L,EAAY9iB,UAAU,MAAKx5H,SAC5D/hE,IACAu6I,EAAAA,GAAAA,KAAC85D,GAAO,CAACr1M,GAAG,qBAAsBgB,EAAK+hE,SAAE,sBAO3C,EC/BZ,MACA,GAAe,sBAA0B,2DCDzC,MACA,GAAe,sBAA0B,sDCuBzC,MACA,GAAe,sBAA0B,8DCpBzC,MACA,GAAe,sBAA0B,mECVzC,MACA,GAAe,sBAA0B,4DCMzC,GA5BgB,CACd,CACEojG,KAAM05C,GACN9tJ,YAAa,yBACbk3C,KAAM,6CAER,CACEk9D,KAAMnyC,GACNjiE,YAAa,2BACbk3C,KAAM,sCAER,CACEk9D,KAAM25C,GACN/tJ,YAAa,8BACbk3C,KAAM,oDAER,CACEk9D,KAAM45C,GACNhuJ,YAAa,uBACbk3C,KAAM,yCAER,CACEk9D,KAAM65C,GACNjuJ,YAAa,sBACbk3C,KAAM,+DC9BH,IAAKg3G,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,oCAAjBA,EAAiB,sCAAjBA,EAAiB,8BAAjBA,EAAiB,4BAAjBA,CAAiB,MAOjBC,GAAe,SAAfA,GAAe,OAAfA,EAAe,wBAAfA,EAAe,8BAAfA,EAAe,8CAAfA,EAAe,4CAAfA,EAAe,oDAAfA,CAAe,MAQfC,GAAqB,SAArBA,GAAqB,OAArBA,EAAqB,8CAArBA,EAAqB,sCAArBA,EAAqB,oCAArBA,CAAqB,MCfrBC,GAAO,SAAPA,GAAO,OAAPA,EAAO,kDAAPA,EAAO,8CAAPA,EAAO,8DAAPA,EAAO,gFAAPA,EAAO,8GAAPA,EAAO,uEAAPA,EAAO,8CAAPA,EAAO,wEAAPA,CAAO,MAWPC,GAAK,SAALA,GAAK,OAALA,EAAK,sIAALA,EAAK,yIAALA,CAAK,MAKLC,GAAM,SAANA,GAAM,OAANA,EAAM,4DAANA,EAAM,iCAANA,EAAM,0CAANA,EAAM,oEAANA,EAAM,sDAANA,CAAM,MCkBX,MClCMC,GAAa,CACxBC,KAAM,WACNC,cAAe,sBACfC,eAAgB,gCAChBC,OAAQ,cACRC,iBAAkB,0BAClBC,gBAAiB,yBACjBC,cAAe,sBACfC,aAAc,qBACdC,YAAa,mBACbC,aAAc,qBACdC,eAAgB,uBAChBC,qBAAsB,6BACtBC,YAAa,gBCbFC,GACS,qBADTA,GAEG,eAFHA,GAGO,mBAHPA,GAKW,uBALXA,GAMc,0BANdA,GAOY,wBAPZA,GASQ,oBATRA,GAUe,2BAVfA,GAWQ,oBAXRA,GAYU,sBAZVA,GAac,0BAbdA,GAca,yBAdbA,GAegB,4BAfhBA,GAgBW,uBAhBXA,GAiBa,yBAjBbA,GAkBe,2BCXfC,GAA4B,EAAI,IAChCC,GAAuB,CAClCC,SAAU,YAGCC,GAAa,CACxBC,SAAUzB,GACV0B,iBAAkBxB,IAGPyB,GAAS,CAAEC,WHjBF,SAAVA,GAAU,OAAVA,EAAU,kBAAVA,EAAU,wBAAVA,EAAU,gCAAVA,EAAU,8BAAVA,EAAU,0BAAVA,EAAU,8BAAVA,EAAU,oBAAVA,EAAU,kCAAVA,EAAU,gCAAVA,EAAU,4CAAVA,EAAU,wBAAVA,EAAU,gBAAVA,EAAU,4BAAVA,EAAU,kBAAVA,EAAU,4BAAVA,EAAU,gCAAVA,EAAU,kBAAVA,EAAU,wCAAVA,EAAU,8CAAVA,EAAU,kCAAVA,EAAU,yBAAVA,CAAU,MGiBcH,SHOhB,SAARA,GAAQ,OAARA,EAAQ,wCAARA,EAAQ,mDAARA,EAAQ,kDAARA,EAAQ,oDAARA,EAAQ,uCAARA,EAAQ,yCAARA,EAAQ,kDAARA,CAAQ,MGP0BhoH,KHiB1B,CAClBmoH,WAAY,cACZC,aAAc,gBACdC,IAAK,OACLC,UAAW,aACXC,KAAM,KGtB4CF,IHyBjC,CACjBG,QAAS,UACTC,MAAO,QACPH,UAAW,YACXI,QAAS,UACTC,OAAQ,SACRC,UAAW,aG/B4CN,UHkChC,CACvBE,QAAS,UACTC,MAAO,QACPF,KAAM,OACNG,QAAS,UACTC,OAAQ,WGtCGE,GAAQ,CAAEnC,QAAO,GAAEC,MAAK,GAAEC,OAAO,IAEjCkC,GAAY,cAEZC,GAET,CACFvwN,MAAO,EACP4+C,KAAM,EACN4xK,KAAM,EACNrsH,MAAO,EACPo3C,MAAO,GAGF,IAAKk1E,GAAQ,SAARA,GAAQ,OAARA,EAAQ,cAARA,EAAQ,gBAARA,CAAQ,MAKb,MAAMC,GAA4B,KCezC,SA3CA,WACE,OACErnE,EAAAA,GAAAA,KAAC80C,GAAG,CAAC/9H,UAAU,SAAQyQ,UACrBmuH,EAAAA,GAAAA,MAACh2C,GAAS,CAACE,OAAK,EAAC9oF,UAAU,gBAAeyQ,SAAA,EACxCmuH,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,2CAA0CyQ,SAAA,EAC7DmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uCAAsCyQ,SAAA,EACnDw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,sBAAqByQ,SAAC,kBACpCw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACz0C,GAAG,IAAI/oF,UAAU,SAAQyQ,SAE1B8/I,GAAQvwN,KAAI,CAAC3Q,EAAQ5M,KACnBwmK,EAAAA,GAAAA,KAACu0C,GAAG,CAACz0C,GAAG,IAAIp/G,KAAMt6C,EAAEsnH,KAAM32C,UAAU,6CAA4CyQ,UAC9Ew4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK+a,EAAEwkL,KAAM3gF,IAAK7jG,EAAEowE,eADyD,UAAUh9E,aAOxGm8M,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uEAAsEyQ,SAAA,EACnFw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,sBAAqByQ,SAAC,gBACpCw4E,EAAAA,GAAAA,KAAA,KAAGt/G,KAAK,4BAA2B8mC,SAAC,8BAGxCmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,2CAA0CyQ,SAAA,EACrDw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ0C,eACpBj2N,OAAO,SACP6jD,IAAI,aAAYqyB,SACjB,oBAGDw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ2C,qBACpBl2N,OAAO,SACP6jD,IAAI,aAAYqyB,SACjB,4BAOb,EChDA,MAEA,GAFkB,ICWX,MACHn+F,WAAAA,GAAwB,IAAZukI,EAAK9iI,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjBkO,KAAKyuO,OAAS75G,EAAM65G,OACpBzuO,KAAKsjM,SAAW1uE,EAAM0uE,SACtBtjM,KAAK+jI,SAAWnP,EAAMmP,SACtB/jI,KAAK8vM,YAAcl7E,EAAMk7E,YACzB9vM,KAAKmvM,SAAWv6E,EAAMu6E,SACtBnvM,KAAKk0M,YAAct/E,EAAMs/E,YACzBl0M,KAAK2zM,YAAc/+E,EAAM++E,YACzB3zM,KAAKi4M,aAAerjF,EAAMqjF,YAC9B,CAWA3H,UAAAA,CAAWo+B,GACP,MAAMC,EAAW,IAAI1lF,OAAO,8DAAiE,KAC7F,OAAgB,OAATylF,IAAkBC,EAAS32M,KAAK02M,IAAgC,gCAAvBA,EAAKhuN,cACzD,GDnCgC,CAAEyuL,SAAUrtK,6BEQhD,GARoB,CAClBrW,GAAI,GACJuR,IAAK,wDACLxf,KAAM2zL,GAASy9B,IACfC,UAAU,EACVzjN,QAAS,KC2BX,GA5Bc,CACZ,CACEmpF,0EACAl3B,MAAO,uCACP/b,QAAS,0JAEX,CACEizC,0EACAl3B,MAAO,sDACP/b,QAAS,0JAEX,CACEizC,m+XACAl3B,MAAO,kDACP/b,QAAS,yIAEX,CACEizC,0EACAl3B,MAAO,sEACP/b,QAAS,iLAEX,CACEizC,mzTACAl3B,MAAO,yBACP/b,QAAS,oCCYb,GA1Ca,CACX,CACE+b,MAAO,iEACP9uC,KAAM,wFAER,CACE8uC,MAAO,eACP9uC,KAAM,yhBAMR,CACE8uC,MAAO,eACP9uC,KAAM,ypBAQR,CACE8uC,MAAO,yBACP9uC,KAAM,iYAKR,CACE8uC,MAAO,2BACP9uC,KAAM,+OAIR,CACE8uC,MAAO,mDACP9uC,KAAM,4ECgIV,SArIA,WACE,MAAOugM,EAAWC,IAAgB5gN,EAAAA,EAAAA,UAAiB,wEAC5C6gN,EAAMC,IAAW9gN,EAAAA,EAAAA,UAA0B,KAC3C+gN,EAAYC,IAAiBhhN,EAAAA,EAAAA,WAAkB,IAC/CihN,EAAcC,IAAmBlhN,EAAAA,EAAAA,aACjCmhN,EAAgBC,IAAqBphN,EAAAA,EAAAA,WAAkB,IACvDqyJ,GAAgB4O,KACjB2lB,EAAav0B,EAAatoK,IAAI,aAyBpC+X,EAAAA,EAAAA,YAAU,KAvBgB4lJ,WACxB,GAAIpqJ,EACF,IACE0jN,GAAc,GACd,MAAMK,EAAiB,IAAIn6B,GAAyBo6B,IAC9CC,SAAYF,EAAe16B,gBAAgBrpL,IAAKvL,KACtDmvN,EAAgBK,GAChBX,EAAa,GAAGW,EAAGC,WAAa,IAAMD,EAAGpsC,uEAC3C,CAAC,QACC6rC,GAAc,EAChB,CAEF,EAYAS,CAAkB76B,GAAY1pE,OAAO,GACpC,CAAC0pE,KAEJ9kL,EAAAA,EAAAA,YAAU,KAXQ4lJ,WAChB,MAAMg6D,EAAa,IAAIz7B,GAAiBq7B,IAClCK,SAAkBD,EAAWr8B,aAAa,EAAG,OAAGzhN,EAAWo/M,GAASy9B,MAAM1uN,KAChF+uN,EAAQa,EAASC,QAAQ5/O,OAAS2/O,EAASC,QAAU,CAACC,IAAY,EASlEC,GAAY5kG,OAAO,GAClB,CAAC0pE,IAEJ,MAAMm7B,EAAsBA,KACtBd,GACFG,GAAkB,EACpB,EAGF,OACE5yB,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEmuH,EAAAA,GAAAA,MAACwzB,GAAM,CAAA3hJ,SAAA,EACLw4E,EAAAA,GAAAA,KAAA,SAAAx4E,SAAQsgJ,KACR9nE,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,cAAc+vE,QAAQ,6KACjC0lG,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAQ,qEAC9B0lG,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,iBAAiB+vE,QAAQ,0IACpC0lG,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAS8uK,SAEjCzzB,EAAAA,GAAAA,MAACh2C,GAAS,CAACE,OAAK,EAAC9oF,UAAU,cAAayQ,SAAA,EACtCw4E,EAAAA,GAAAA,KAACqpE,GAAY,CAAChzB,IAAK2xB,EAAK,GAAI1xB,kBAAmB4yB,EAAqB3yB,gBAAiB2xB,IAAeF,EAAK7+O,UACzGwsN,EAAAA,GAAAA,MAACb,GAAG,CAACh1C,GAAG,SAAS/oF,UAAU,8CAA6CyQ,SAAA,EACtEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAAC5+E,GAAI,EAAG8Q,GAAI,EAAG1vD,UAAU,mBAAkByQ,UAC7CmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,oEAAmEyQ,SAAA,EAChFw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACz0C,GAAG,KAAK/oF,UAAU,mEAAkEyQ,SA/DlF,sCAkEPmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uDAAsDyQ,SAAA,EACnEmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,eAAcyQ,SAAA,GACX,OAAZ4gJ,QAAY,IAAZA,GAAAA,EAAc7wO,OAnEV,uDAoEO,OAAZ6wO,QAAY,IAAZA,OAAY,EAAZA,EAAc7wO,QAAQo+M,EAAAA,GAAAA,MAAA,QAAAnuH,SAAA,CAAM,YAAU4gJ,EAAa7wO,KAAK,YAAQyoK,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,6BAA4ByQ,SAAC,4BAAoB,2BAEpIw4E,EAAAA,GAAAA,KAAC62C,GAAW,CAACV,KAAM6xB,EAAK,GAAIhrH,QAASksH,EAAqBz/G,SAAUy+G,IAAeF,EAAK7+O,aAE1FwsN,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,mIAAkIyQ,SAAA,EAC/ImuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,sDAAqDyQ,SAAA,CAAC,qCAClCw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,uBAAsB,iBAEvEipF,EAAAA,GAAAA,KAACspE,GAAM,CAAC13O,MAAQo2O,EAAK7+O,QAAU6+O,EAAK,GAAGhyM,KAAQ18B,OAAO4hC,SAASwlB,KAAMq2B,UAAU,kBAIrFipF,EAAAA,GAAAA,KAACu0C,GAAG,CAAC5+E,GAAI,EAAG8Q,GAAI,EAAG1vD,UAAU,gEAA+DyQ,UAC1FmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uEAAsEyQ,SAAA,EACnFw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACz0C,GAAG,KAAK/oF,UAAU,2CAA0CyQ,SAAC,yCAGlEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,cAAayQ,UAC1Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKsuI,GAAK5iD,UAAU,mBAKnCipF,EAAAA,GAAAA,KAAC80C,GAAG,CAAC/9H,UAAU,qBAAoByQ,UACjCw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAAA/sH,UACFmuH,EAAAA,GAAAA,MAACh2C,GAAS,CAACG,GAAG,UAAU/oF,UAAU,gBAAeyQ,SAAA,EAC/Cw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACz0C,GAAG,KAAK/oF,UAAU,iCAAgCyQ,SAAC,kFAGxDw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,OAAMyQ,UACnBmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,yEAAwEyQ,SAAA,EACrFw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKk+O,GAAMt/H,IAAI,0BACtB+1D,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,mCAAkCyQ,SAAC,+BAGrDw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAAA/sH,SAEAgiJ,GAAMzyN,KAAI,CAAC3Q,EAAO5M,KAChBwmK,EAAAA,GAAAA,KAACypE,GAAY,CAAuBpzJ,MAAOjwE,EAAEiwE,MAAOk3B,MAAOnnG,EAAEmnG,MAAOi7F,KAAMhvM,EAAQ,EAAG8gE,QAASl0D,EAAEk0D,SAA7E,QAAQ9gE,iBAOvCwmK,EAAAA,GAAAA,KAAC80C,GAAG,CAAAttH,UACFw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAAA/sH,UACFmuH,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,OAAMyQ,SAAA,EACzBmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,6BAA4ByQ,SAAA,EACzCw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,OAAMyQ,SAAC,UACrBw4E,EAAAA,GAAAA,KAAA,KAAAx4E,SAAG,yEAELw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,OAAMyQ,UACnBw4E,EAAAA,GAAAA,KAAC0pE,GAAW,CAACxwN,KAAMywN,eAK3B3pE,EAAAA,GAAAA,KAAC0jE,GAAM,IAEL0E,GAAepoE,EAAAA,GAAAA,KAAC4pE,GAAU,CAAC7jM,KAAMuiM,EAAgBzE,QAAS0E,EAAmBhxO,KAAM6wO,EAAa7wO,KAAM+kM,SAAU8rC,EAAa9rC,WAAc,UAKrJ,EC1JA,SAASvlL,GAAIywE,EAAUsgB,GACrB,IAAItuG,EAAQ,EACZ,OAAO0tB,EAAAA,SAAenQ,IAAIywE,GAAU2oC,GAAsBjpG,EAAAA,eAAqBipG,GAASroB,EAAKqoB,EAAO32H,KAAW22H,GACjH,CCLA,MAAM05G,GAAkB,IA+BxB,SAASC,GAAcv2K,EAAKx5D,EAAKE,GAC/B,MAAM8vO,GAAcx2K,EAAMx5D,IAAQE,EAAMF,GAAO,IAC/C,OAAO7O,KAAKuc,MAAMsiO,EAAaF,IAAmBA,EACpD,CACA,SAASG,GAAiBhzN,EAavBgT,GAAK,IAbmB,IACzBjwB,EAAG,IACHw5D,EAAG,IACHt5D,EAAG,MACH+5G,EAAK,eACLi2H,EAAc,QACdC,EAAO,SACPC,EAAQ,UACRpzJ,EAAS,MACTrxD,EAAK,QACLt0B,EAAO,SACPwuK,KACGn6I,GACJzO,EACC,OAAoBgpJ,EAAAA,GAAAA,KAAK,MAAO,CAC9Bh2I,IAAKA,KACFvE,EACHwkK,KAAM,cACNlzG,UAAW4rE,KAAW5rE,EAAW,GAAG6oF,QAAgB,CAClD,CAAC,MAAMxuK,KAAYA,EACnB,CAAC,GAAGwuK,kBAA0BuqE,EAC9B,CAAC,GAAGvqE,iBAAyBuqE,GAAYD,IAE3CxkN,MAAO,CACLztB,MAAO,GAAG6xO,GAAcv2K,EAAKx5D,EAAKE,SAC/ByrB,GAEL,gBAAiB6tC,EACjB,gBAAiBx5D,EACjB,gBAAiBE,EACjButF,SAAUyiJ,GAA8BjqE,EAAAA,GAAAA,KAAK,OAAQ,CACnDjpF,UAAW,kBACXyQ,SAAUwsB,IACPA,GAET,CACA,MAAMo2H,GAA2BljN,EAAAA,YAAiB,CAAAqE,EAG/CvB,KAAQ,IAHwC,QACjDqgN,GAAU,KACPxjN,GACJ0E,EACC,MAAM9F,EAAQ,CACZ1rB,IAAK,EACLE,IAAK,IACLkwO,UAAU,EACVF,gBAAgB,EAChBC,SAAS,KACNrjN,GAGL,GADApB,EAAMm6I,SAAWN,GAAmB75I,EAAMm6I,SAAU,YAChDyqE,EACF,OAAOL,GAAkBvkN,EAAOuE,GAElC,MAAM,IACJjwB,EAAG,IACHw5D,EAAG,IACHt5D,EAAG,MACH+5G,EAAK,eACLi2H,EAAc,QACdC,EAAO,SACPC,EAAQ,SACRvqE,EAAQ,QACRxuK,EAAO,UACP2lF,EAAS,SACTyQ,KACG8iJ,GACD7kN,EACJ,OAAoBu6I,EAAAA,GAAAA,KAAK,MAAO,CAC9Bh2I,IAAKA,KACFsgN,EACHvzJ,UAAW4rE,KAAW5rE,EAAW6oF,GACjCp4E,SAAUA,EAAWzwE,GAAIywE,GAAU2oC,IAAsBm0B,EAAAA,EAAAA,cAAan0B,EAAO,CAC3Ek6G,SAAS,MACLL,GAAkB,CACtBjwO,MACAw5D,MACAt5D,MACA+5G,QACAi2H,iBACAC,UACAC,WACAvqE,WACAxuK,WACC44B,IACH,IAEJogN,GAAY5iH,YAAc,cAC1B,YCvFA,MACA,GAAe,sBAA0B,2ECkFzC,MACA,GAAe,sBAA0B,0DCUzC,MACA,GAAe,sBAA0B,4JCvGzC,GAxBiBxwG,IAAuD,IAAtD,IAAE3rB,EAAG,MAAEgrF,EAAK,OAAEk0J,EAAM,UAAEC,GAA0BxzN,EAChE,OACEgpJ,EAAAA,GAAAA,KAAA0/D,GAAAA,SAAA,CAAAl4I,SACG+iJ,IACC50B,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,8EAA6EyQ,SAAA,EAC1Fw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,mDAAkDyQ,UAC/Dw4E,EAAAA,GAAAA,KAACghE,GAAW,CAAC5vO,QAAQ,QAAQ4rH,QAASA,IAAMwtH,GAAU,QAExDxqE,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,yBAAwByQ,UACrCw4E,EAAAA,GAAAA,KAAA,UACEjpF,UAAU,QACV1rF,IAAKA,EACLgrF,MAAOA,EACPo0J,YAAY,IACZC,MAAM,sGACNC,iBAAe,UAKtB,ECoGP,SAxGA,WACE,MAAOC,EAAmBC,IAAwB1jN,EAAAA,EAAAA,WAAS,IACpD6gN,EAAMC,IAAW9gN,EAAAA,EAAAA,UAA0B,KAC3C2jN,EAAUC,IAAe5jN,EAAAA,EAAAA,UALf,IAMV6jN,EAAcC,IAAmB9jN,EAAAA,EAAAA,WAAS,GAE3C+9M,GAAgBh1F,EAAAA,EAAAA,cAAY,KAChC26F,GAAqB,GACrBE,EAAY,GACZ,MAAM10B,EAAM2xB,EAAK7+O,OAAQ6+O,EAAK,GAAIgB,GAClC1vO,OAAO4hC,SAASwlB,KAAO21J,EAAIrgL,GAAG,GAC7B,CAACgyM,IA+BJ,OAvBA/+M,EAAAA,EAAAA,YAAU,KANQ4lJ,WAChB,MAAMg6D,EAAa,IAAIz7B,GAAiBq7B,IAClCK,SAAkBD,EAAWr8B,aAAa,EAAG,OAAGzhN,EAAWo/M,GAASy9B,MAAM1uN,KAChF+uN,EAAQa,EAASC,QAAQ5/O,OAAS2/O,EAASC,QAAU,CAACC,IAAY,EAIlEC,GAAY5kG,OAAO,GAClB,KAEHp7G,EAAAA,EAAAA,YAAU,KACR,GAAI2hN,EAAmB,CACrB,MAAMM,EAAgBtuM,aAAY,KAChC,GAAIkuM,GAAY,EAEd,OADA5F,IACO,KACLnoM,cAAcmuM,EAAS,EAI3BH,GAAarkO,GAAMA,EAAI,GAAE,GACxB,KAEH,MAAO,KACLq2B,cAAcmuM,EAAS,CAE3B,IACC,CAACN,EAAmBE,EAAU5F,KAG/BvvB,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEmuH,EAAAA,GAAAA,MAACwzB,GAAM,CAAA3hJ,SAAA,EACLw4E,EAAAA,GAAAA,KAAA,SAAAx4E,SAAO,sGACPw4E,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,cAAc+vE,QAAQ,0FACjC0lG,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAQ,sGAC9B0lG,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,iBAAiB+vE,QAAQ,0FACpC0lG,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAS8uK,SAEjCzzB,EAAAA,GAAAA,MAACh2C,GAAS,CAACE,OAAK,EAAC9oF,UAAU,2CAA0CyQ,SAAA,EACnEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,4EAA2EyQ,UACxFw4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,UACVw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,MAAM1rF,IAAK8/O,UAGhCx1B,EAAAA,GAAAA,MAACb,GAAG,CAACh1C,GAAG,SAAS/oF,UAAU,yEAAwEyQ,SAAA,EACjGmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,yDAAwDyQ,SAAA,EACrEw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,eAAcyQ,SAAC,uCAC5Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK+/O,SAEZz1B,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,qBAAoByQ,SAAA,EACjCmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,aAAYyQ,SAAA,CAAC,KAACw4E,EAAAA,GAAAA,KAAA,KAAAx4E,SAAG,yCAA8B,KAACw4E,EAAAA,GAAAA,KAAA,SAAK,SAAKA,EAAAA,GAAAA,KAAA,KAAAx4E,SAAG,sBAAqB,2CAC/Fw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKggP,WAGjBT,IACGj1B,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,wFAAuFyQ,SAAA,EACpGmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,gCAA+ByQ,SAAA,EAC5CmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,mBAAkByQ,SAAA,CAAC,4BAAwBmuH,EAAAA,GAAAA,MAAA,KAAAnuH,SAAA,CAAIsjJ,EAAS,iBACrE9qE,EAAAA,GAAAA,KAACoqE,GAAW,CAACrzJ,UAAU,QAAQxjB,IAA+B,KAzE3D,EAyE+Cu3K,GAzE/C,QA2EL9qE,EAAAA,GAAAA,KAACg2C,GAAM,CAACh5F,QAASkoH,EAAenuJ,UAAU,wBAAuByQ,UAC/Dw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,+CAA8CyQ,SAAC,yBAIrEojJ,IACAj1B,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,wFAAuFyQ,SAAA,EACpGw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,gCAA+ByQ,UAC5Cw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mBAAkByQ,SAAC,gCAElCmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,gCAA+ByQ,SAAA,EAC5Cw4E,EAAAA,GAAAA,KAACg2C,GAAM,CAACj/H,UAAU,wCAAwCimC,QAASA,IAAMiuH,GAAgB,GAAMzjJ,UAC7Fw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,+CAA8CyQ,SAAC,sBAEjEw4E,EAAAA,GAAAA,KAACg2C,GAAM,CAACj/H,UAAU,6BAA6BimC,QAASkoH,EAAc19I,UACpEw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,+CAA8CyQ,SAAC,yBAKvEw4E,EAAAA,GAAAA,KAACsrE,GAAQ,CACPjgP,IAAK27O,GAAMlC,MAAMyG,qBACjBl1J,MAhGS,kCAiGTk0J,OAAQS,EACRR,UAAWS,SAKrB,q2BCxDA,GA3D6C,CAC3C,CACE15N,IAAK,aACLg8F,MAAOi+H,GACPlxK,QAAS,cAEX,CACE/oD,IAAK,kBACLg8F,MAAOk+H,GACPnxK,QAAS,kBACToxK,6FAEF,CACEn6N,IAAK,cACLg8F,MAAOo+H,GACPrxK,QAAS,eAEX,CACE/oD,IAAK,UACLg8F,MAAOq+H,GACPtxK,QAAS,WAEX,CACE/oD,IAAK,gBACLg8F,MAAOs+H,GACPvxK,QAAS,iBAEX,CACE/oD,IAAK,qBACLg8F,MAAOu+H,GACPxxK,QAAS,sBAEX,CACE/oD,IAAK,iBACLg8F,MAAOw+H,GACPzxK,QAAS,kBAEX,CACE/oD,IAAK,YACLg8F,MAAOy+H,GACP1xK,QAAS,aAEX,CACE/oD,IAAK,kBACLg8F,MAAO0+H,GACP3xK,QAAS,mBAEX,CACE/oD,IAAK,sBACLg8F,MAAO2+H,GACP5xK,QAAS,sBAEX,CACE/oD,IAAK,eACLg8F,MAAO4+H,GACP7xK,QAAS,iBCrBb,MCfA,GA3B+C,CAC7C,CACE/oD,IAAK,aACLg8F,MCsBW,sBAA0B,+DDrBrCj6G,KAAM,UACN84O,QAAS,eAEX,CACE76N,IAAK,QACLg8F,MEmBW,sBAA0B,0DFlBrCj6G,KAAM,WACN84O,QAAS,kBAEX,CACE76N,IAAK,SACLg8F,MGUW,sBAA0B,2DHTrCj6G,KAAM,YACN84O,QAAS,YAEX,CACE76N,IAAK,UACLg8F,MDsBW,sBAA0B,4DCrBrCj6G,KAAM,SACN84O,QAAS,YIqFb,MACA,GAAe,sBAA0B,sECxEzC,MACA,GAAe,sBAA0B,2uJC2HzC,GArGgD,CAC9C,qBAAsB,CACpB7hP,KAAM,qBACN8hP,aAAcC,GACdC,aAAcC,GACdC,iBAAkBC,GAClBC,aAAcC,IAEhBC,SAAU,CACRtiP,KAAM,WACN8hP,aAAcS,GACdP,aAAcQ,GACdN,iBAAkBO,GAClBL,aAAcM,IAEhB,YAAa,CACX1iP,KAAM,YACN8hP,aAAca,GACdX,aAAcY,GACdV,iBAAkBW,GAClBT,aAAcU,IAEhB,iBAAkB,CAChB9iP,KAAM,iBACN8hP,aAAciB,GACdf,aAAcgB,GACdd,iBAAkBW,GAClBT,aAAca,IAEhB,kBAAmB,CACjBjjP,KAAM,mBACN8hP,aAAcoB,GACdlB,aAAcmB,GACdjB,iBAAkBkB,GAClBhB,aAAciB,IAEhB,cAAe,CACbrjP,KAAM,cACN8hP,aAAcwB,GACdtB,aAAcuB,GACdrB,iBAAkBsB,GAClBpB,aAAcqB,IAEhB,gBAAiB,CACfzjP,KAAM,gBACN8hP,aAAc4B,GACd1B,aAAc2B,GACdzB,iBAAkB0B,GAClBxB,aAAcyB,IAEhB,YAAa,CACX7jP,KAAM,YACN8hP,aAAcgC,GACd9B,aAAc+B,GACd7B,iBAAkB8B,GAClB5B,aAAc6B,IAEhB,gBAAiB,CACfjkP,KAAM,gBACN8hP,aAAcoC,GACdlC,aAAcmC,GACdjC,iBAAkBkC,GAClBhC,aAAciC,IAEhB,aAAc,CACZrkP,KAAM,OACN8hP,aAAcwC,GACdtC,aAAcuC,GACdrC,iBAAkBsC,GAClBpC,aAAcqC,IAEhB,kBAAmB,CACjBzkP,KAAM,kBACN8hP,aAAc4C,GACd1C,aAAc2C,GACdzC,iBAAkB0C,GAClBxC,aAAcyC,IAEhB,mBAAoB,CAClB7kP,KAAM,mBACN8hP,aAAcgD,GACd9C,aAAc+C,GACd7C,iBAAkB8C,GAClB5C,aAAc6C,IAEhB,eAAgB,CACdjlP,KAAM,eACN8hP,aAAcoD,GACdlD,aAAcmD,GACdjD,iBAAkBkD,GAClBhD,aAAciD,IAEhB,iBAAkB,CAChBrlP,KAAM,iBACN8hP,aAAcwD,GACdtD,aAAcuD,GACdrD,iBAAkBsD,GAClBpD,aAAcqD,2FC5JhBhuC,MAAK,GACL7R,WAAU,GACV2H,cAAa,GACbF,SAAQ,GACRuL,YAAW,GACXr6C,QAAO,GACPwQ,IAAG,UACHquC,GACAE,aAAY,GACZD,OAAM,GACNhW,WAAU,GACV+D,aAAY,GACZ8N,eAAc,cACdqE,GAAU,WACVC,GACAlN,YAAWA,IACT2M,GCpBEyoC,GAAmBn1M,OAOzB,GAFuB,CAAEo1M,UAJPD,IACd/I,GAAS+I,GAAiBv2N,gBAC1ByJ,KCEW,MAAMgtN,GAMnB,YAAOx5N,CAAM1D,GACP6V,GAAOonN,WAAahJ,GAASvwN,OAC/BkG,QAAQlG,MAAM1D,EAElB,CAOA,WAAOsiD,CAAKtiD,GACN6V,GAAOonN,WAAahJ,GAAS3xK,MAC/B14C,QAAQ04C,KAAKtiD,EAEjB,CAOA,UAAO1e,CAAI0e,GACTja,KAAKmuO,KAAKl0N,EACZ,CAOA,WAAOk0N,CAAKl0N,GACN6V,GAAOonN,WAAahJ,GAASC,MAC/BtqN,QAAQsqN,KAAKl0N,EAEjB,CAOA,YAAO6nG,CAAM7nG,GACP6V,GAAOonN,WAAahJ,GAASpsH,OAE/Bj+F,QAAQtoB,IAAI0e,EAEhB,CAEA,YAAOi/I,CAAMj/I,GACP6V,GAAOonN,WAAahJ,GAASh1E,OAC/Br1I,QAAQq1I,MAAMj/I,EAElB,ECtDF,MACMm9N,GAAuB,qBACvBC,GAAoB,sBACpBC,GAAW,aACXC,GAAoB,sBACpBC,GAA2B,uBAC3BC,GAAU,YACVC,GAAiB,iBAEjBC,GAAe,qBAKfC,GAAY,kBACZC,GAAmB,yBAEzB,SAASC,GAAcv/N,EAAa2H,GAAsC,IAA3B63N,EAAgBjmP,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAC7D,KACkBimP,EAAmB16D,eAAiB26D,cAC5Cv6D,QAAQllK,EAAKuT,KAAKC,UAAU7L,GACtC,CAAE,MAAOvC,GACPw5N,GAAOx5N,MAAMA,EACf,CACF,CAEA,SAASs6N,GAAiB1/N,GAAkD,IAArCw/N,EAAgBjmP,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GACrD,IACE,MACMgiD,GADUikM,EAAmB16D,eAAiB26D,cACzB16D,QAAQ/kK,GACnC,OAAOu7B,EAAahoB,KAAKK,MAAM2nB,GAAc,IAC/C,CAAE,MAAOn2B,GAEP,OADAw5N,GAAOx5N,MAAMA,GACN,IACT,CACF,CAwCO,SAASu6N,KACdF,aAAaG,WAAWd,GAC1B,CAMO,SAASe,KACd,MAAMC,EAAah7D,eAAeC,QAAQg6D,IAC1C,OAAOe,EAAavsN,KAAKK,MAAMksN,GAAc,IAC/C,CAMO,SAASC,KACd,MAAMC,EAAqBP,aAAa16D,QAAQi6D,IAChD,OAAOgB,EAAqBzsN,KAAKK,MAAMosN,GAAsB,IAC/D,CA4GO,SAASC,KACd,OAAOP,GAAsCJ,GAC/C,CAEO,SAASY,GAAwBC,GACtC,MAAMC,EAAsBH,KAC5B,IAAII,EACJ,MAAM/qF,EAAiBvzF,KAAKC,MAAQ8zK,GACpC,IAAKsK,EAKH,OAJAC,EAAS,CACP,CAACF,GAAc7qF,QAEjBiqF,GAAcD,GAAkBe,GAGlCA,EAAS,IACJD,EACH,CAACD,GAAc7qF,GAEjBiqF,GAAcD,GAAkBe,EAClC,CCnNA,MACA,GAAe,sBAA0B,oEClBnCC,GAAmBA,CAAC5+N,EAAiByS,IACzC6jK,GAAMt2K,EAAS,CACb8jE,UAAW,cACX6zG,MAAM5qB,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKymP,GAAgB7nI,IAAI,cACtCvkF,UAGEqsN,GAAiBA,CAAC9+N,EAAiByS,IACvC6jK,GAAMt2K,EAAS,CACb8jE,UAAW,cACXrxD,UCXSssN,GAAgBxqC,GAAMv9M,OAAO,CAExCinL,QAAS,CAAE,cAAe,SAG5B8gE,GAAc9vC,aAAa59K,QAAQ6tK,KAAKrpK,IAAY,IAADmpN,EACjD,MAAMC,EAAOd,KAOb,OANKtoN,EAAOooJ,UACVpoJ,EAAOooJ,QAAU,CAAC,GAEpBpoJ,EAAOooJ,QAAQihE,cAAgBD,EAC3B,WAAqB,QAAXD,EAAAC,EAAKz7E,cAAM,IAAAw7E,OAAA,EAAXA,EAAaG,SAAU,KACjC,GACGtpN,CAAM,IAGfkpN,GAAc9vC,aAAal9K,SAASmtK,KACjCntK,GAAaA,IACbrO,IAEC,GAAKA,EAAMqO,SAAX,CAKA,GAAIrO,aAAiBw5K,GAAY,CAAC,IAADkiD,EAC/B,MAAMC,GAAkC,QAAnBD,EAAA17N,EAAMqO,SAAS9L,YAAI,IAAAm5N,OAAA,EAAnBA,EAAqBp/N,UAAW,eACrD8+N,GAAeO,EACjB,CAKA,MAJ8B,MAA1B37N,EAAMqO,SAASuV,QH2MrB87I,eAAemC,QGvMP7hK,CATN,CAFEo7N,GADqB,mCAYZ,IC9Bf,MAAMlJ,GAAa,IAAIz7B,GAAiBq7B,QAAW19O,EAAWinP,IAExD/I,GAAYp6D,UAChB,IACE,MAAMi6D,SACED,GAAWr8B,aAAa,EAAG,OAAGzhN,EAAWo/M,GAASy9B,MACxD1uN,KACF,OAAO4vN,EAASC,QAAQ5/O,OAAS2/O,EAASC,QAAU,CAACC,GACvD,CAAE,MACA,MACF,GCZF,SAASuJ,KACP,MAAOvK,EAAMC,IAAW9gN,EAAAA,EAAAA,UAA0B,CAAC6hN,KAkBnD,OAhBA//M,EAAAA,EAAAA,YAAU,KACR,MAMMupN,EL6GH,WACL,MAAMA,EAAYn8D,eAAeC,QAAQm6D,IACzC,OAAO+B,EAAY1tN,KAAKK,MAAMqtN,GAAa,IAC7C,CKhHsBC,GACdD,EACFvK,EAAQ,CAACuK,IARK3jE,WACd,MAAMm5D,QAAaiB,KL8GlB,IAAsB5yB,EK7GlB2xB,IL6GkB3xB,EK5GV2xB,EAAK,GL6GtB3xD,eAAeI,QAAQg6D,GAAS3rN,KAAKC,UAAUsxL,IK5G3C4xB,EAAQD,GAAK,EAQf0K,EAAS,GACR,IAEI,CAAEr8B,IAAK2xB,EAAK,GACrB,+DCdO,SAAS2K,GAAe/gP,EAAeghP,GAC5C,MAAMpvI,EAAsB,WAAbovI,EAAwB,IAAmB,UAAbA,EAAuB,SAAM,GAC1E,GAAIvvN,MAAMzxB,GACR,MAAO,iBAMT,MAAO,GAAG4xG,IAHct4G,KAAKuc,MAAM7V,GAChCsB,WACAqH,QAAQ,wBAAyB,MAEtC,CAIO,SAASs4O,GAAqB77N,GAMjC,IAADm/J,EAAA28D,EAAA,IANmC,KACpCvoP,EAAI,QACJowC,GAID3jB,EACQ,QAAPm/J,EAAC78K,cAAM,IAAA68K,GAAmB,QAAnB28D,EAAP38D,EAAiB48D,iBAAS,IAAAD,GAA1BA,EAA4BjlH,MAAMtjI,EAAMowC,EAC1C,CAEO,MAAMq4M,GAAgBA,IAAM15O,OAAO4hC,SAASwlB,KAQ5C,SAASuyL,GACdC,EACAv4M,GACC,IAADw4M,EAAAC,EACO,QAAPD,EAAC75O,cAAM,IAAA65O,GAAmB,QAAnBC,EAAPD,EAAiBJ,iBAAS,IAAAK,GAA1BA,EAA4BC,SAASH,EAAQ,IACxCv4M,EACH24M,aAAc,OAElB,CAEO,SAASC,GAAWC,GACzB,IAAKA,EAAY,MAAO,GAExB,MAAMC,EAAY,IAAIngL,KAAKkgL,GACrBjgL,EAAM,IAAID,KAEVogL,EAAaxoP,KAAKC,OAAOooE,EAAImtJ,UAAY+yB,EAAU/yB,WAAa,KAChEizB,EAAazoP,KAAKC,MAAMuoP,EAAa,IACrCE,EAAW1oP,KAAKC,MAAMwoP,EAAa,IAEzC,OAAID,EAAa,GACR,GAAGA,gBACDC,EAAa,GACf,GAAGA,gBAEH,GAAGC,aAEd,CCjCA,MACA,GAAe,sBAA0B,i5NCbzC,MACA,GAAe,sBAA0B,qECYzC,MACA,GAAe,sBAA0B,gEClClC,IAKKC,GAAe,SAAfA,GAAe,OAAfA,EAAe,cAAfA,EAAe,kBAAfA,CAAe,MAKfC,GAAY,SAAZA,GAAY,OAAZA,EAAY,kBAAZA,EAAY,cAAZA,EAAY,gBAAZA,EAAY,sBAAZA,CAAY,MA6BjB,SAASC,GAAcC,GAC5B,IAAIC,EACJ,OAAQD,GACN,KAAKF,GAAa3pF,QAChB8pF,EAAaC,GACb,MACF,KAAKJ,GAAavqF,MAChB0qF,EAAaE,GACb,MACF,KAAKL,GAAaxqF,OAChB2qF,EAAaG,GACb,MACF,KAAKN,GAAaO,UAChBJ,EAAaK,GACb,MACF,QACEL,EAAaM,GAGjB,OAAON,CACT,CCnCA,SA3BA,WACE,MAAOD,EAAaQ,IAAkBrtN,EAAAA,EAAAA,UAA8B,MAuBpE,OArBA8B,EAAAA,EAAAA,YAAU,KAAO,IAADwrN,EACd,MAAM5mF,EAAS,IAAIlC,MACb+oF,EAAkC,QAA5BD,EAAG5mF,EAAOlB,YAAY+nF,cAAM,IAAAD,OAAA,EAAzBA,EAA2B/6N,cACpCuX,EAAY48H,EAAOhC,YAAY5lC,GAE/B0uH,EAAiB,cAAc3jN,KAAKC,GACpC2jN,EACJ,gEAAgE5jN,KAC9DC,GAEE4jN,EAAsB,OAANH,QAAM,IAANA,OAAM,EAANA,EAAQ52N,SAASg2N,GAAavqF,OAC9CurF,EAAsB,OAANJ,QAAM,IAANA,OAAM,EAANA,EAAQ52N,SAAS+1N,GAAgBkB,OACjDC,EAAwB,OAANN,QAAM,IAANA,OAAM,EAANA,EAAQ52N,SAAS+1N,GAAgBoB,SAErDN,EAAgBH,EAAeV,GAAaxqF,QACvCurF,EAAeL,EAAeV,GAAavqF,OAC3CurF,GAAiBE,EACxBR,EAAeV,GAAaO,WACrBO,GAAiBJ,EAAeV,GAAa3pF,QAAQ,GAC7D,IAEI6pF,CACT,ECYA,MACA,GAAe,sBAA0B,4DClBzC,MACA,GAAe,sBAA0B,yDCIzC,SAlBA,SAAch9N,GAIE,IAJD,KACb87C,EAAO,cAAa,UACpBikB,EAAY,MACTm+J,GACQl+N,EACX,OACE2+L,EAAAA,GAAAA,MAAA,OACE5+H,UAAW,+DAA+DA,OACtEm+J,EAAS1tJ,SAAA,EAEbw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK8pP,GAAclrI,IAAI,UAAUlzB,UAAU,aAClD4+H,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,OAAMyQ,SAAA,EACpBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,OAAO1rF,IAAK+pP,GAAW7qN,OAAQ,GAAItyB,MAAO,KAAM,IAAE66D,OAI3E,ECwCA,SA/CA,SAA0B97C,GAGE,IAHD,SACzBq+N,EAAWrQ,GAAWC,KAAI,aAC1BqQ,EAAe,GAAGjP,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAWiP,kBACvCv+N,EACvB,MAAM+/J,EAAWoJ,KACX6zD,EAAcwB,KACdC,EAASzB,IAAgBF,GAAavqF,MAkB5C,OACEosD,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,oBAAmByQ,SAAA,EACjCw4E,EAAAA,GAAAA,KAAC01E,GAAK,KACN//B,EAAAA,GAAAA,MAAA,UACE34F,QApBc84F,KAClB+8B,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CAAEg7M,UAAWN,EAAUr/M,IAAKg9M,QAEvC,MAAM4C,ELTH,SAA+B5B,GACpC,IAAItmH,EACJ,OAAQsmH,GACN,KAAKF,GAAa3pF,QAChBz8B,EAAOs5G,GAAMnC,QAAQgR,aACrB,MACF,KAAK/B,GAAavqF,MAChB77B,EAAO,KACP,MACF,KAAKomH,GAAaxqF,OAChB57B,EAAOs5G,GAAMnC,QAAQiR,wBACrB,MACF,KAAKhC,GAAaO,UAChB3mH,EAAOs5G,GAAMnC,QAAQkR,sBACrB,MACF,QACEroH,EAAO,KAGX,OAAOA,CACT,CKXsBsoH,CAAsBhC,GAEpCA,IAAgBF,GAAavqF,MAC/BwtB,EAAS,GAAGsvD,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAW2P,eAC/CjC,IAAgBF,GAAa3pF,SAAWyrF,EACjDt8O,OAAOkhC,KAAKo7M,EAAW,SAAU,uBAEjC7+D,EAASu+D,EACX,EAQIv+J,UAAU,wBACV,aAAW,WAAUyQ,SAAA,EAErBmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,gBAAeyQ,SAAA,EAC7Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK0oP,GACHC,IAAgBF,GAAa3pF,QAAU,KAAO6pF,GAEhD/pI,IAAI,WAELwrI,IAAUz1E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,WAAUyQ,SAAC,aAExCw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,oBAAmByQ,SAAC,mCAI5C,EC+IA,SAtLA,SAAmBxwE,GAA8B,IAA7B,KAAEk/N,GAAwBl/N,EAC5Cu7N,KACA,MAAOzpN,IAAU3B,EAAAA,EAAAA,UAAsBgvN,GAAWD,KAC5C,SAAE96M,GAAa2kJ,KAEfu1D,E3CZ0B,M2CWXl6M,EAASA,EAASjyC,OAAS,GAE5Ck9O,GAAOloH,KAAKooH,aACZ,GAAGF,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAWiP,iBAEnD,OACE5/B,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEmuH,EAAAA,GAAAA,MAACwzB,GAAM,CAAA3hJ,SAAA,EACLmuH,EAAAA,GAAAA,MAAA,SAAAnuH,SAAA,CAAO,QACC1+D,EAAOv+B,KAAK,sFAEpBy1K,EAAAA,GAAAA,KAAA,QACEz1K,KAAK,cACL+vE,QAAQ,0FAEV0lG,EAAAA,GAAAA,KAAA,QACEz1K,KAAK,WACL+vE,QAAS,QAAQxxC,EAAOv+B,yFAE1By1K,EAAAA,GAAAA,KAAA,QACEz1K,KAAK,iBACL+vE,QAAQ,0FAEV0lG,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAASxxC,EAAOstN,WAAahN,SAErDzzB,EAAAA,GAAAA,MAACh2C,GAAS,CAACE,OAAK,EAAC9oF,UAAU,0CAAyCyQ,SAAA,EAClEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,4EAA2EyQ,UACxFw4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,UACVw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,MAAM1rF,IAAK8/O,UAGhCnrE,EAAAA,GAAAA,KAAC80C,GAAG,CACFh1C,GAAG,SACH/oF,UAAU,wFAAuFyQ,UAEjGmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,0DAAyDyQ,SAAA,EACtEmuH,EAAAA,GAAAA,MAACpB,GAAG,CACFz0C,GAAG,KACH/oF,UAAU,2EAA0EyQ,SAAA,CACrF,QACO1+D,EAAOv+B,KAAK,2DAEpBy1K,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,SAAS1rF,IAAKy9B,EAAOujN,qBAG1C12B,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,kCAAiCyQ,SAAA,EAC9CmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,OAAMyQ,SAAA,EACnBw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,gBAAeyQ,SAAC,8BAC9Bw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,qCAAoCyQ,SAChD6uJ,GAAQt/N,KAAI,CAACT,EAAM/nB,KAClBonN,EAAAA,GAAAA,MAAA,OAEE5+H,UAAU,iDAAgDyQ,SAAA,EAE1Dw4E,EAAAA,GAAAA,KAAA,OAAK30K,IAAKirB,EAAKi3F,MAAOtD,IAAI,MAC1B+1D,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,gCAA+ByQ,SAAElxE,EAAKhjB,QACnD0sK,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mCAAkCyQ,SAC5ClxE,EAAK81N,YANH91N,EAAK/E,aAYlBokM,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,gCAA+ByQ,SAAA,EAC5Cw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,qBAAoByQ,SAAC,2CAGnCmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,iBAAgByQ,SAAA,EACvB,OAAL8uJ,SAAK,IAALA,QAAK,EAALA,GAAOntP,SACNmtP,GACGhxN,QAAQhP,GAASA,EAAK/E,MAAQ2kO,IAC9Bn/N,KAAI,CAACT,EAAM/nB,KACVyxK,EAAAA,GAAAA,KAACu2E,GAAQ,CAEPhpI,MAAOj3F,EAAKi3F,MACZjzC,QAAShkD,EAAKgkD,SAFT/rE,KAKZ+nP,GAAMhxN,QAAQhP,GAASA,EAAK/E,MAAQ2kO,IAAM/sP,OAAS,IAClD62K,EAAAA,GAAAA,KAACu2E,GAAQ,CAAChpI,MAAOipI,GAAUl8K,QAAQ,qBAIzCq7I,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,+BAA8ByQ,SAAA,EAC3CmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,OAAMyQ,SAAA,EAClBw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,gBAAeyQ,SAAC,uBAA0B,KAC1Dw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,gBAAeyQ,SAAC,aAAe,4CAEjDmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,yFAAwFyQ,SAAA,EACrGw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,6BAA4ByQ,SAAC,OAC3Cw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,aAAYyQ,SAAC,8BAC3Bw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,YAAWyQ,SAAC,kFAIzBw4E,EAAAA,GAAAA,KAAA,OAAK30K,IAAKy9B,EAAOyjN,aAActiI,IAAI,SAErC0rG,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,wFAAuFyQ,SAAA,EACpGw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,6BAA4ByQ,SAAC,OAC3Cw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,aAAYyQ,SAAC,mBAC3Bw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,YAAWyQ,SAAC,yFAIzBw4E,EAAAA,GAAAA,KAAA,OAAK30K,IAAKy9B,EAAO2jN,iBAAkBxiI,IAAI,SAEzC0rG,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,0FAAyFyQ,SAAA,EACtGw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,6BAA4ByQ,SAAC,OAC3Cw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,aAAYyQ,SAAC,mCAC3Bw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,YAAWyQ,SAAC,gEAGzBw4E,EAAAA,GAAAA,KAAA,OAAK30K,IAAKy9B,EAAO6jN,aAAc1iI,IAAI,qCAIzC0rG,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,0BAAyByQ,SAAA,EACtCw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,iBAAgByQ,UAC7Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK8/O,QAEdnrE,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,qCAAoCyQ,UACjDmuH,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,uCAAsCyQ,SAAA,EACnDmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,+DAA8DyQ,SAAA,EAC3Ew4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO0R,UACnBnlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,YAAWqyB,UAEtBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKqrP,GAAgBzsI,IAAI,sBAElC+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAOtsF,EACnBnnI,OAAO,SACP6jD,IAAI,aACJ,aAAW,IAAGqyB,UAEdw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKsrP,GAAY1sI,IAAI,cAE9B+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO6R,OACnBtlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,eAAcqyB,UAEzBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKwrP,GAAa5sI,IAAI,sBAGjC0rG,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,6DAA4DyQ,SAAA,EACzEw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ0C,eACpBj2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,YAAWyQ,SACtB,oBAGDw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ2C,qBACpBl2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,YAAWyQ,SACtB,iCAQTw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,+EAA8EyQ,UAC3Fw4E,EAAAA,GAAAA,KAAC82E,GAAiB,CAACxB,aAAcA,WAK3C,EAIA,SAASiB,GAAQhrN,GAA0D,IAAzD,MAAEgiF,EAAK,QAAEjzC,GAA6C/uC,EACtE,OACEoqL,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,wEAAuEyQ,SAAA,EACpFw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKkiH,EAAOtD,IAAI,oBACvB+1D,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mCAAkCyQ,SAAEltB,MAGvD,CC3MA,SAVA,SAAkB70C,GAChB,OACEkwL,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,2FAA0FyQ,SAAA,EACvGw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACz0C,GAAG,KAAIt4E,SAAC,SACbw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACz0C,GAAG,KAAK/oF,UAAU,gBAAeyQ,SAAC,4DACvCw4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,SAAC,cAGnB,ECFMuvJ,IAA6BxyF,EAAAA,EAAAA,eAA+C,CAChFyyF,YAAa,EACbC,kBAAmBA,IAAM,OAQZ,SAASC,GAA2BlgO,GAAmC,IAAlC,SAAEwwE,GAA6BxwE,EACjF,MAAOggO,EAAaG,IAAkBhwN,EAAAA,EAAAA,UAA2C,GAKjF,OACE64I,EAAAA,GAAAA,KAAC+2E,GAA2BryF,SAAQ,CAAC9yJ,MAAO,CAAColP,cAAaC,kBALjCzyL,IACzB2yL,EAAe3yL,EAAO,GAIuDgjC,SAC1EA,GAGP,CCnBe,SAAS4vJ,GAAuBC,GAA0F,IAA3Ej4E,EAAWt0K,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGk0K,GAAqBK,EAAav0K,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGm0K,GAC/G,MAAM/I,EAAU,GAgBhB,OAfAlsK,OAAOg4J,QAAQq1F,GAAe5gO,SAAQO,IAA2B,IAAzBsgO,EAAUC,GAAUvgO,EACzC,MAAbugO,IACuB,kBAAdA,EACTn4E,EAAY3oJ,SAAQi+L,IAClB,MAAM8iC,EAAUD,EAAU7iC,GAC1B,GAAe,MAAX8iC,EAAiB,CACnB,MAAM5iC,EAAQF,IAAar1C,EAAgB,IAAIq1C,IAAa,GAC5Dx+C,EAAQ1nK,KAAK,GAAG8oP,IAAW1iC,KAAS4iC,IACtC,KAGFthF,EAAQ1nK,KAAK,GAAG8oP,KAAYC,KAEhC,IAEKrhF,CACT,CCvBA,MAAMuhF,GAAqBvwN,EAAAA,YAAiB,CAAAlQ,EAOzCgT,KAAQ,IANT81I,GAAI7b,EAAY,MAAK,SACrB2b,EAAQ,UACR7oF,EAAS,UACT5uD,EAAS,IACTuvN,KACGjyN,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAwB,eAAdz3I,EAA6B,SAAW,UAChF,MAAMi3I,EAAcI,KACdH,EAAgBI,KACtB,OAAoBO,EAAAA,GAAAA,KAAK/b,EAAW,IAC/Bx+H,EACHuE,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,KAAaw3E,GAAuB,CACnEM,OACCt4E,EAAaC,KAChB,IAEJo4E,GAAMjwH,YAAc,QACpB,YCtBMmwH,GAAkB,CAAE1pG,SALTA,CAACx0B,EAAmBvgG,KACjC,MAAM2hB,EAAQ,IAAI+8M,YAAYn+H,EAAW,CAAE2d,OAAQl+G,IACnD5f,OAAOs7H,cAAc/5F,EAAM,GAK/B,MCJe,SAASg9M,KACtB,OACE73E,EAAAA,GAAAA,KAAA,OAAAx4E,UACEmuH,EAAAA,GAAAA,MAAA,OAAKmiC,MAAM,6BAA6B7/O,MAAM,KAAKsyB,OAAO,KAAKwtN,QAAQ,YAAY1iP,KAAK,OAAO0hF,UAAU,UAASyQ,SAAA,EAChHw4E,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,4SAA4Spc,KAAK,aACzT2qK,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,uiBAAuiBpc,KAAK,gBAI5jB,CCLO,IAAK2iP,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,kBAAjBA,EAAiB,YAAjBA,CAAiB,MAqE7B,SAxDA,SAAsBhhO,GAA+F,IAA9F,KAAER,EAAI,MAAE6/D,EAAK,QAAEpjE,EAAO,UAAEwmG,EAAS,YAAEw+H,EAActT,GAAgB+B,MAA0B1vN,EAChH,MAAOkhO,EAAiBC,IAAsBhxN,EAAAA,EAAAA,WAAkB,GAqBhE,OAXA8B,EAAAA,EAAAA,YAAU,KACR,IAAImvN,EAKJ,OAJKF,IACHE,EAAYn0M,YAAW,IAAMk0M,GAAmB,IAAO,MAGlD,KACLn8H,aAAao8H,EAAU,CACxB,GACA,CAACF,KAGFviC,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,8FAA6FyQ,SAAA,EAC1GmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CACJC,IAAKlhO,IAASwhO,GAAkBK,QAAU,EAAI,EAC9CthK,UAAW,sCAEPvgE,IAASwhO,GAAkBK,SAAYH,EAA6C,sBAA3B,qCAC3D1wJ,SAAA,CAEDhxE,IAASwhO,GAAkBK,UAAWr4E,EAAAA,GAAAA,KAAC63E,GAAc,KACtDliC,EAAAA,GAAAA,MAAA,OAAAnuH,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,iCAAgCyQ,SAC1CnR,IAEFpjE,IACC+sJ,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,wCAAuCyQ,SACjDv0E,OAINuD,IAASwhO,GAAkBM,OAAQt4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,kBAAiByQ,SAAC,sCAGpEhxE,IAASwhO,GAAkBM,MAAQJ,IAClCl4E,EAAAA,GAAAA,KAAA,OAAAx4E,UACEw4E,EAAAA,GAAAA,KAACg2C,GAAM,CAAC5kN,QAAQ,OAAO4rH,QA5CRu7H,KACjB9+H,IACFk+H,GAAgB1pG,SAASx0B,EAAW,CAAExmG,QAASA,GAAWojE,IAC1D/8E,OAAO4hC,SAASwlB,KAAOu3L,EAEnB,EAuC+CzwJ,SAAC,iBAO1D,EC9DwC,IAEnCgxJ,GAA4B,SAA5BA,GAA4B,OAA5BA,EAA4B,sBAA5BA,EAA4B,mBAA5BA,EAA4B,cAA5BA,EAA4B,uBAA5BA,CAA4B,EAA5BA,IAA4B,IAmEjC,SA5DA,WACE,MAAMzhE,EAAWoJ,MACX,SAAEqxB,GpS8QH,WAKL,IAAI,QAAEtmD,GAAYhkI,EAAAA,WAAiBw4J,IAC/B0B,EAAal2B,EAAQA,EAAQ/hK,OAAS,GAC1C,OAAOi4L,EAAcA,EAAW58J,OAAiB,CAAC,CACpD,CoStRuBi0N,IACdC,GAAetwD,MAChB,kBAAE6uD,GNVH,WACL,MAAM,YAAED,EAAW,kBAAEC,IAAsB9mG,EAAAA,EAAAA,YAAW4mG,IACtD,MAAO,CAAEC,cAAaC,oBACxB,CMOgC0B,GAExBC,GAAkB1oG,EAAAA,EAAAA,cACtB2+B,MAAO2iC,EAAkBqnC,KACvB,MAAMC,EAAgB,IAAIxkC,GAAsBm0B,IAEhD,IACE,MAAMsQ,SACED,EAAc/kC,eAAevC,EAAUqnC,IAC7C3/N,KACFi3N,GAAO57O,IAAIwkP,GAEPA,EAAanvD,SACfqtD,EAAkB8B,EAAav0L,QAC3Bu0L,EAAaC,YACfjiE,EAASsvD,GAAOF,SAAS8S,wBAEzBliE,EAASsvD,GAAOF,SAAS+S,0BAG3BniE,EAASsvD,GAAOF,SAASgT,aAE7B,CAAE,MAAOhqP,IACPghP,GAAO57O,IAAIpF,IACX4nL,EAASsvD,GAAOF,SAASiT,cAC3B,IAEF,CAACriE,EAAUkgE,IAoBb,OAjBAhuN,EAAAA,EAAAA,YAAU,KACR,MAYM4vN,EAZmBQ,MAAO,IAADC,EAAAC,EAAAC,EAS7B,MAAO,CAAEx1B,UAPP00B,EAAYxnO,IAAIsnO,GAA6BiB,YAAc,GAOzCC,QALoC,QAD3CJ,EACXZ,EAAYxnO,IAAIsnO,GAA6BmB,iBAAS,IAAAL,EAAAA,OAAIvuP,EAK/B6rK,MAHwB,QAD1C2iF,EACTb,EAAYxnO,IAAIsnO,GAA6BoB,cAAM,IAAAL,EAAAA,OAAIxuP,EAGrB8uP,UADsB,QAD3CL,EACbd,EAAYxnO,IAAIsnO,GAA6BsB,mBAAW,IAAAN,EAAAA,OAAIzuP,EACf,EAG3BsuP,GACtBT,EAAgBpnC,EAAoBqnC,GAAex0G,OAAO,GACzD,CAACmtE,EAAUknC,EAAaE,KAGzB54E,EAAAA,GAAAA,KAAC+5E,GAAa,CACZvjO,KAAMwhO,GAAkBK,QACxBhiK,MAAM,qBACNpjE,QAAQ,sCAGd,ECjDA,SAvBA,WAKE,OAJAgW,EAAAA,EAAAA,YAAU,KACR0uN,GAAgB1pG,SAASi4F,GAAWC,SAAS6T,WAAY,CAAE/mO,QAAS,sBAAuB,GAC1F,KAGD0iM,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEmuH,EAAAA,GAAAA,MAACwzB,GAAM,CAAA3hJ,SAAA,EACLw4E,EAAAA,GAAAA,KAAA,SAAAx4E,SAAO,kGACPw4E,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAQ,qGAGhC0lG,EAAAA,GAAAA,KAAC+5E,GAAa,CACZvjO,KAAMwhO,GAAkBM,KACxBjiK,MAAM,oBACNpjE,QAAQ,6BACRwmG,UAAWysH,GAAWC,SAAS6T,WAC/B/B,YAAatT,GAAgBsV,uBAIrC,ECrBA,SAASriC,GAAoBjD,EAAW/rF,EAAcr/F,GACpD,MAAMguL,GAAahwL,EAAAA,EAAAA,aAAqBx8B,IAAd4pN,IACnB8C,EAAYjiG,IAAYruF,EAAAA,EAAAA,UAASyhG,GAClC8uF,OAAuB3sN,IAAd4pN,EACTgD,EAAUJ,EAAW7mM,QAU3B,OATA6mM,EAAW7mM,QAAUgnM,GAMhBA,GAAUC,GAAWF,IAAe7uF,GACvCpT,EAASoT,GAEJ,CAAC8uF,EAAS/C,EAAY8C,GAAYvnE,EAAAA,EAAAA,cAAY,WAAa,QAAAn7H,EAAAjqB,UAAA3B,OAAT6rB,EAAI,IAAAjmB,MAAAgmB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAAnqB,UAAAmqB,GAC3D,MAAOrjB,KAAUi1B,GAAQ7R,EACzB,IAAIshH,EAAyB,MAAX/sG,OAAkB,EAASA,EAAQ33B,KAAUi1B,GAE/D,OADA2uF,EAAS5jH,GACF0kI,CACT,GAAG,CAAC/sG,IACN,CC1BA,MACA,GADqCrC,EAAAA,cAAoB,MCDnDgG,GAAY,CAAC,WAAY,aAU/B,MAAMinI,GAAOA,OAYN,SAAS+lF,KAA8B,IAAdl2N,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACzC,MAAM4yF,GAAUyyD,EAAAA,EAAAA,YAAWgqG,KACpB71B,EAAciU,GAAkBlY,KACjC+5B,GAAc7yN,EAAAA,EAAAA,SAAO,IACrB,KACJwrM,EAAI,OACJnpO,EAAM,eACNkvO,EAAc,MACdxC,GAAQ,EACRtV,UAAWq5B,EAAiB,aAC5B7jB,EAAe,CAAC,EAAC,qBACjB8jB,GAAuB,EACvB9hB,UAAW+hB,IAAoB78J,GAC7B15D,EACE+hB,EAAoD,OAAjC,MAAX23C,OAAkB,EAASA,EAAQ33C,QAAkB/hB,EAAQ+hB,KAAO23C,EAAQ33C,KACtFA,IAASq0M,EAAY1pO,UACvB0pO,EAAY1pO,SAAU,GAExB,MAGM,UACJswM,EAAS,QACTw5B,EAAO,YACPC,EAAW,cACXC,GACEh9J,GAAW,CAAC,EACVqmI,EAASyU,GAAUkiB,EAAeD,EAAarkB,GAA6B,CAChFpV,UAAWq5B,GAAqBr5B,GAAa,eAC7C1oH,QAASiiJ,EACTlkB,aAAsC,MAAxBikB,EAA+Bv0M,EAAOu0M,EACpD1wP,SACAmpO,OACAuD,QACAhS,eACAkS,kBAEImkB,EAAY3wP,OAAOG,OAAO,CAC9B6/B,IAAKwwN,GAAWrmF,GAChB,kBAAoC,MAAjBumF,OAAwB,EAASA,EAAcj2N,IACjEs/L,EAAOrhL,WAAWqhL,OAAQ,CAC3Br+L,MAAOq+L,EAAO33J,OAAO23J,SAEjB62B,EAAW,CACf70M,OACAi7K,YACA65B,SAAUT,EAAY1pO,QACtBoqO,OAAmB,MAAXp9J,OAAkB,EAASA,EAAQo9J,OAC3C/2B,OAAQw2B,EAAkBx2B,EAAS,KACnCgV,WAAYwhB,EAAkBvwP,OAAOG,OAAO,CAC1C6/B,IAAKuuM,GACJxU,EAAOrhL,WAAW6hL,MAAO,CAC1B7+L,MAAOq+L,EAAO33J,OAAOm4J,QAClB,CAAC,GAMR,OAJAgR,GAAgBklB,GArCItrP,IACP,MAAXuuF,GAA2BA,EAAQo9J,QAAO,EAAO3rP,EAAE,GAoCX,CACxCmlO,aAAcwE,EACdrvG,UAAW1jF,IAEN,CAAC40M,EAAWC,EACrB,CAOA,SAASG,GAAa/jO,GACpB,IAAI,SACAwwE,EACAgxI,UAAWwiB,GAAgB,GACzBhkO,EACJgN,EA7FJ,SAAuCpqB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CA6FtL8pL,CAA8BzwK,EAAMkW,IAChD,MAAOzH,EAAOkoG,GAAQusH,GAAgBlwP,OAAOG,OAAO,CAAC,EAAG65B,EAAS,CAC/Dw0M,UAAWwiB,KAEb,OAAoBh7E,EAAAA,GAAAA,KAAK0/D,GAAAA,SAAW,CAClCl4I,SAAUA,EAAS/hE,EAAOkoG,IAE9B,CACAotH,GAAavzH,YAAc,eAG3B,YCxEMyzH,GAAkC,CACtCp6L,OAAQztD,OAAOlI,KAAKuc,MAAsB,KAAhBvc,KAAKymC,WAC/BjhB,QAAS,GAGLwqO,GAAaC,EAAM52F,cAA+B02F,IAClDG,GAAeD,EAAM52F,eAAc,GAwDzC,IAAI82F,GAAYjpP,QACI,qBAAXkH,QACPA,OAAOuyB,UACPvyB,OAAOuyB,SAAS9B,eAGduxN,GAAe,IAAI1oG,QAEvB,SAAS2oG,KAA6B,IAAlBn+H,EAAAtyH,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GACdqiB,GAAM,EAAAquO,EAAAA,YAAWN,IACjBlxN,GAAM,EAAAyxN,EAAAA,QAAsB,MAEhC,GAAoB,OAAhBzxN,EAAItZ,UAAqB0sG,EAAY,KAWpBs+H,EAAAC,EAAnB,IAAIC,EAAuE,QAAxDD,EAAAR,EAAMj1H,0DAAN,IAAAy1H,GAA2E,QAA3ED,EAAAC,EAA0DhoG,yBAA1D,IAAA+nG,OAAA,EAAAA,EAA6EhrO,QAChG,GAAIkrO,EAAc,CAChB,IAAIC,EAAqBP,GAAapqO,IAAI0qO,GAChB,MAAtBC,EAEFP,GAAajkO,IAAIukO,EAAc,CAC7Bn3N,GAAItX,EAAIuD,QACRk8E,MAAOgvJ,EAAa7rH,gBAEb6rH,EAAa7rH,gBAAkB8rH,EAAmBjvJ,QAI3Dz/E,EAAIuD,QAAUmrO,EAAmBp3N,GACjC62N,GAAaznH,OAAO+nH,GAExB,CAGA5xN,EAAItZ,UAAYvD,EAAIuD,OACtB,CAGA,OAAOsZ,EAAItZ,OACb,CA0BO,MAAMorO,GAAyC,oBAAnBX,EAAa,MAVhD,SAA4BY,GAE1B,IAAIt3N,EAAK02N,EAAMrqG,SACVkrG,IAAU,EAAAC,EAAAA,UA8B8B,oBAAlCd,EAA4B,qBAC9BA,EAA4B,qBAAEe,GAAWC,GAAaC,KAIxD,EAAAZ,EAAAA,YAAWJ,KAlCdv6L,EAASm7L,EAA4C,aAAe,aAAaf,GAAep6L,SACpG,OAAOk7L,GAAa,GAAGl7L,KAAUp8B,GACnC,EApBA,SAA4Bs3N,GAC1B,IAAI5uO,GAAM,EAAAquO,EAAAA,YAAWN,IAIjB/tO,IAAQ8tO,IAAmBI,IAC7Bx+N,QAAQ04C,KAAK,mJAGf,IAAI8mL,EAAUd,KAAaQ,GACvBl7L,EAAoF,aAAa1zC,EAAI0zC,SACzG,OAAOk7L,GAAa,GAAGl7L,KAAUw7L,GACnC,EAcA,SAASF,KACP,OAAO,CACT,CAEA,SAASC,KACP,OAAO,CACT,CAGA,SAASF,GAAUI,GAEjB,MAAO,MACT,CCjLO,MAAMC,GAAa3+F,IACxB,IAAI4+F,EACJ,MAA4G,UAApD,OAA/CA,EAAmB5+F,EAAGmc,aAAa,cAAmB,EAASyiF,EAAiB9iO,cAAyB,EAE9Gy6I,GAAOA,OAQN,SAASsoF,KACd,MAAMh4N,EAAKi4N,MACL,KACJ32M,GAAO,EAAK,OACZ+0M,EAAS3mF,GAAI,UACbwoF,EAAS,YACTlC,IACEtqG,EAAAA,EAAAA,YAAWgqG,KAAoB,CAAC,EAC9BrkC,GAAc5lE,EAAAA,EAAAA,cAAY/gJ,IAC9B2rP,GAAQ/0M,EAAM52C,EAAE,GACf,CAAC42C,EAAM+0M,IACJr1N,EAAQ,CACZhB,KACAuF,IAAK2yN,GAAaxoF,GAClBn3C,QAAS84F,EACT,kBAAmB/vK,GASrB,OAHI00M,GAAe8B,GAAW9B,KAC5Bh1N,EAAM,kBAAmB,GAEpB,CAACA,EAAO,CACbsgB,OACA+0M,UAEJ,CAOA,SAAS8B,GAAc5lO,GAEpB,IAFqB,SACtBwwE,GACDxwE,EACC,MAAOyO,EAAOkoG,GAAQ8uH,KACtB,OAAoBz8E,EAAAA,GAAAA,KAAK0/D,GAAAA,SAAW,CAClCl4I,SAAUA,EAAS/hE,EAAOkoG,IAE9B,CACAivH,GAAep1H,YAAc,iBAG7B,YC7Daq1H,GAAe,SAAC59B,GAA0B,IAAhBv+J,EAAI51D,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,KAC5C,OAAgB,MAAZm0N,EAAyB7rN,OAAO6rN,GAC7Bv+J,GAAQ,IACjB,EACA,GALuCx5B,EAAAA,cAAoB,MCArD41N,GAA0B51N,EAAAA,cAAoB,MACpD41N,GAAWt1H,YAAc,aACzB,YCHMt6F,GAAY,CAAC,WAAY,WAAY,UAAW,SAAU,MAczD,SAAS6vN,GAAexxN,GAM5B,IAN6B,IAC9Bha,EAAG,KACHmvC,EAAI,OACJoxC,EAAM,SACN23B,EAAQ,QACRzM,GACDzxF,EACC,MAAMyxN,GAAc7sG,EAAAA,EAAAA,YAAW8sG,IACzBC,GAAa/sG,EAAAA,EAAAA,YAAW2sG,KACxB,UACJ/8B,GACEm9B,GAAc,CAAC,EACbj+B,EAAW49B,GAAatrO,EAAKmvC,GAC7BqjE,EAAqB,MAAVjyB,GAAyB,MAAPvgF,EAAcsrO,GAAa98B,KAAed,EAAWntH,EAQxF,MAAO,CAAC,CACNkrB,QARkB+2G,IAAiBl5L,IAC/B4uF,IACO,MAAXzM,GAA2BA,EAAQniF,GAC/BmiN,IAAgBniN,EAAM07F,wBACxBymH,EAAY/9B,EAAUpkL,GACxB,IAIA,gBAAiB4uF,QAAY1+H,EAC7B,gBAAiBg5H,EACjB,CAACm4G,GAAS,kBAAmB,IAC5B,CACDn4G,YAEJ,CACA,MAAMo5H,GAA4Bj2N,EAAAA,YAAiB,CAAClQ,EAAMgT,KACxD,IAAI,SACAi1L,EAAQ,SACRx1F,EAAQ,QACRzM,EAAO,OACPlrB,EACAguE,GAAI7b,EAAY+xD,IACdh/L,EACJyO,EAnDJ,SAAuC7rB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CAmDxL8pL,CAA8BzwK,EAAMkW,IAC9C,MAAOkwN,GAAqBL,GAAgB,CAC1CxrO,IAAK0tM,EACLv+J,KAAMj7B,EAAMi7B,KACZ+oE,WACAzM,UACAlrB,WAEF,OAAoBkuE,EAAAA,GAAAA,KAAK/b,EAAWj6J,OAAOG,OAAO,CAAC,EAAGs7B,EAAO,CAC3DuE,IAAKA,GACJozN,GAAmB,IAExBD,GAAa31H,YAAc,eAC3B,YChDA,SAAS61H,KACP,MAAM15F,ECAO,WAGb,MAAO,CAAE1V,IAAYuC,EAAAA,EAAAA,aAAW5jD,IAAUA,IAAO,GACjD,OAAOqhD,CACT,CDLsBqvG,GACdtzN,GAAMzC,EAAAA,EAAAA,QAAO,MACbo2L,GAAYztE,EAAAA,EAAAA,cAAY/9G,IAC5BnI,EAAItZ,QAAUyhB,EAEdwxH,GAAa,GACZ,CAACA,IACJ,MAAO,CAAC35H,EAAK2zL,EACf,CAMA,SAAS4/B,GAAQvmO,GASd,IATe,YAChBwmO,EACAz3M,KAAM03M,EAAO,SACbv6F,EACAw6F,SAAUC,EAAW,aACrBC,EAAe,MAAM1hB,GAAS,oBAAmB,qBACjD2hB,EAAoB,UACpB78B,EAAY,eAAc,SAC1Bx5H,GACDxwE,EACC,MAAM1d,EAASq8N,MACR5vL,EAAM23M,GAAY9lC,GAAoB6lC,EAASD,EAAaG,IAK5DG,EAAStD,GAAW6C,KACrB5C,EAAcqD,EAAQptO,SACrBqtO,EAAWpB,GAAaU,KACzB3C,EAAgBqD,EAAUrtO,QAC1BstO,EAAWhiB,GAAYj2L,GACvBk4M,GAAkB12N,EAAAA,EAAAA,QAAO,MACzB22N,GAAkB32N,EAAAA,EAAAA,SAAO,GACzBy1N,GAAc7sG,EAAAA,EAAAA,YAAW8sG,IACzBnC,GAAS5qG,EAAAA,EAAAA,cAAY,SAACiuG,EAAUtjN,GAAwD,IAAjDnmC,EAAM5J,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAY,MAAT+vC,OAAgB,EAASA,EAAMrkB,KACnFknO,EAASS,EAAU,CACjBC,cAAevjN,EACfnmC,UAEJ,GAAG,CAACgpP,IACEW,EAAetqB,IAAiB,CAACxiN,EAAKspB,KAC9B,MAAZqoH,GAA4BA,EAAS3xI,EAAKspB,GAC1CigN,GAAO,EAAOjgN,EAAO,UAChBA,EAAM07F,wBACM,MAAfymH,GAA+BA,EAAYzrO,EAAKspB,EAClD,IAEI6iD,GAAU6yD,EAAAA,EAAAA,UAAQ,KAAM,CAC5BuqG,SACA95B,YACAj7K,OACA00M,cACAC,gBACAF,UACAmC,eACE,CAAC7B,EAAQ95B,EAAWj7K,EAAM00M,EAAaC,EAAeF,EAASmC,IAC/DlC,GAAeuD,IAAaj4M,IAC9Bm4M,EAAgBxtO,QAAU+pO,EAAYnvI,SAASmvI,EAAYpxH,cAAcZ,gBAE3E,MAAM61H,EAAcvqB,IAAiB,KAC/B2mB,GAAiBA,EAAcp6G,OACjCo6G,EAAcp6G,OAChB,IAEIi+G,EAAkBxqB,IAAiB,KACvC,MAAMv9M,EAAOynO,EAAgBvtO,QAC7B,IAAI8tO,EAAYX,EAIhB,GAHiB,MAAbW,IACFA,KAAYV,EAAQptO,UAAW6rO,GAAWuB,EAAQptO,WAAW,aAE7C,IAAd8tO,GAAqC,aAAdA,IAA6B,UAAUxtN,KAAKxa,GACrE,OAEF,MAAMiJ,EAAQmgN,GAAIke,EAAQptO,QAASktO,GAAc,GAC7Cn+N,GAASA,EAAM6gH,OAAO7gH,EAAM6gH,OAAO,KAEzCr3G,EAAAA,EAAAA,YAAU,KACJ8c,EAAMw4M,IAA2BL,EAAgBxtO,UACnDwtO,EAAgBxtO,SAAU,EAC1B4tO,IACF,GAEC,CAACv4M,EAAMm4M,EAAiBI,EAAaC,KACxCt1N,EAAAA,EAAAA,YAAU,KACRg1N,EAAgBvtO,QAAU,IAAI,IAEhC,MAAM+tO,EAAsBA,CAAC/tO,EAAS9mB,KACpC,IAAKk0P,EAAQptO,QAAS,OAAO,KAC7B,MAAMq9C,EAAQ6xK,GAAIke,EAAQptO,QAASktO,GACnC,IAAIpkP,EAAQu0D,EAAMv2D,QAAQkZ,GAAW9mB,EAErC,OADA4P,EAAQtO,KAAK+O,IAAI,EAAG/O,KAAK6O,IAAIP,EAAOu0D,EAAM5kE,SACnC4kE,EAAMv0D,EAAM,EAqErB,OE3Ka,SAA0BklP,EAAa7jN,EAAOrR,GAA2B,IAAjB84G,EAAOx3I,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAC5E,MAAMy+B,EAAUwqM,GAAiBvqM,IACjCP,EAAAA,EAAAA,YAAU,KACR,MAAM3X,EAAgC,oBAAhBotO,EAA6BA,IAAgBA,EAEnE,OADAptO,EAAOoY,iBAAiBmR,EAAOtR,EAAS+4G,GACjC,IAAMhxH,EAAOqY,oBAAoBkR,EAAOtR,EAAS+4G,EAAQ,GAC/D,CAACo8G,GACN,CFiGEC,EAAiBzuG,EAAAA,EAAAA,cAAY,IAAM52I,EAAOuyB,UAAU,CAACvyB,IAAU,WAAWuhC,IACxE,IAAI+jN,EAAkBC,EACtB,MAAM,IACJttO,GACEspB,EACEvpB,EAASupB,EAAMvpB,OACfwtO,EAAmD,OAAvCF,EAAmBd,EAAQptO,cAAmB,EAASkuO,EAAiBtzI,SAASh6F,GAC7FytO,EAAyD,OAA3CF,EAAqBd,EAAUrtO,cAAmB,EAASmuO,EAAmBvzI,SAASh6F,GAK3G,GADgB,kBAAkB0f,KAAK1f,EAAOy6H,WACtB,MAARx6H,GAAuB,WAARA,GAAoButO,GAAoB,WAARvtO,GAAoC,WAAhBD,EAAOkF,MACxF,OAEF,IAAKsoO,IAAaC,EAChB,OAEF,GAAY,QAARxtO,KAAmBusO,EAAQptO,UAAYq1B,GACzC,OAEFk4M,EAAgBvtO,QAAUmqB,EAAMrkB,KAChC,MAAMm3G,EAAO,CACXywH,cAAevjN,EACfnmC,OAAQmmC,EAAMrkB,MAEhB,OAAQjF,GACN,IAAK,UACH,CACE,MAAMrB,EAAOuuO,EAAoBntO,GAAS,GAG1C,OAFIpB,GAAQA,EAAKowH,OAAOpwH,EAAKowH,aAC7BzlG,EAAMqpF,gBAER,CACF,IAAK,YAEH,GADArpF,EAAMqpF,iBACDn+E,EAEE,CACL,MAAM71B,EAAOuuO,EAAoBntO,EAAQ,GACrCpB,GAAQA,EAAKowH,OAAOpwH,EAAKowH,OAC/B,MAJEo9G,GAAS,EAAM/vH,GAKjB,OACF,IAAK,MAKHjkG,GAAiBpY,EAAO+3G,cAAe,SAASl6H,IAC9C,IAAI6vP,GACU,QAAV7vP,EAAEoiB,KAAkBpiB,EAAEmiB,SAAqD,OAAxC0tO,EAAoBlB,EAAQptO,UAAoBsuO,EAAkB1zI,SAASn8G,EAAEmiB,SAClHosO,GAAS,EAAO/vH,EAClB,GACC,CACD23B,MAAM,IAER,MACF,IAAK,SACS,WAAR/zI,IACFspB,EAAMqpF,iBACNrpF,EAAM06F,mBAERmoH,GAAS,EAAO/vH,GAGpB,KAEkBqyC,EAAAA,GAAAA,KAAKi9E,GAAkBv4F,SAAU,CACnD9yJ,MAAOysP,EACP72J,UAAuBw4E,EAAAA,GAAAA,KAAKm6E,GAAgBz1F,SAAU,CACpD9yJ,MAAO8rF,EACP8J,SAAUA,KAGhB,CACA+1J,GAAS/1H,YAAc,WACvB+1H,GAAS3jH,KAAOmhH,GAChBwC,GAAS0B,OAASrC,GAClBW,GAASt9B,KAAOk9B,GAChB,YG/LMhD,GAA+BjzN,EAAAA,cAAoB,CAAC,GAC1DizN,GAAgB3yH,YAAc,kBAC9B,YCCM03H,GAA+Bh4N,EAAAA,YAAiB,CAAAlQ,EAMnDgT,KAAQ,IAN4C,UACrD+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAY,KAAI,KACpBgmC,EAAO,eACJxkK,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,qBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,GACjCqqB,KAAMA,KACHxkK,GACH,IAEJy5N,GAAgB13H,YAAc,kBAC9B,YChBM23H,GAA8Bj4N,EAAAA,YAAiB,CAAAlQ,EAMlDgT,KAAQ,IAN2C,UACpD+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAY,MAAK,KACrBgmC,EAAO,aACJxkK,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,oBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,GACjCqqB,KAAMA,KACHxkK,GACH,IAEJ05N,GAAe33H,YAAc,iBAC7B,YCpBkB,IAAIorB,QCFtB,MAAM1lH,GAAY,CAAC,aAgBnB,MAAMkyN,GAAsBl4N,EAAAA,YAAiB,CAAClQ,EAAMgT,KAClD,IAAI,UACAi5H,GACEjsI,EACJyO,EAnBJ,SAAuC7rB,EAAGzK,GAAK,GAAI,MAAQyK,EAAG,MAAO,CAAC,EAAG,IAAI+D,EAAI,CAAC,EAAG,IAAK,IAAIwJ,KAAKvN,EAAG,GAAI,CAAC,EAAE/I,eAAeC,KAAK8I,EAAGuN,GAAI,CAAE,GAAIhY,EAAEqI,QAAQ2P,IAAM,EAAG,SAAUxJ,EAAEwJ,GAAKvN,EAAEuN,EAAI,CAAE,OAAOxJ,CAAG,CAmBxL8pL,CAA8BzwK,EAAMkW,IAC9C,MAAOgpL,GAAeN,GAAe5rN,OAAOG,OAAO,CACjD4hJ,QAAS,KACRtmH,IACG45N,EAAgBtrB,IAAiB5kO,IACrC+mN,EAAYjzD,UAAU9zJ,GACT,MAAb8zJ,GAA6BA,EAAU9zJ,EAAE,IAE3C,OAnB4BuxD,EAmBVj7B,EAAMi7B,OAlBQ,MAAhBA,EAAKjjC,QAkB2B,WAAfgI,EAAMwkK,MAOnBjqB,EAAAA,GAAAA,KAAK,IAAKh2K,OAAOG,OAAO,CAC1C6/B,IAAKA,GACJvE,EAAO,CACRw9H,UAAWA,MATS+c,EAAAA,GAAAA,KAAK,IAAKh2K,OAAOG,OAAO,CAC1C6/B,IAAKA,GACJvE,EAAOywL,EAAa,CACrBjzD,UAAWo8F,KAvBV,IAAuB3+L,CA8BzB,IAEL0+L,GAAO53H,YAAc,SACrB,YClCM21H,GAA4Bj2N,EAAAA,YAAiB,CAAAlQ,EAShDgT,KAAQ,IATyC,SAClD41I,EAAQ,UACR7oF,EAAS,SACTkoI,EAAQ,SACRx1F,GAAW,EAAK,QAChBzM,EAAO,OACPlrB,EACAguE,GAAI7b,EAAYm7F,MACb35N,GACJzO,EACC,MAAM6pC,EAASy+G,GAAmBM,EAAU,kBACrCw9E,EAAmBzvH,GAAQovH,GAAgB,CAChDxrO,IAAK0tM,EACLv+J,KAAMj7B,EAAMi7B,KACZ+oE,WACAzM,UACAlrB,WAEF,OAAoBkuE,EAAAA,GAAAA,KAAK/b,EAAW,IAC/Bx+H,KACA23N,EACHpzN,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAWl2B,EAAQ8sE,EAAK5J,UAAY,SAAU0F,GAAY,aAChF,IAEJ0zH,GAAa31H,YAAc,eAC3B,YC5BM83H,GAAgCp4N,EAAAA,YAAiB,CAAAlQ,EAKpDgT,KAAQ,IAL6C,UACtD+sD,EAAS,SACT6oF,EACAE,GAAI7b,EAAY,UACbx+H,GACJzO,EAEC,OADA4oJ,EAAWN,GAAmBM,EAAU,uBACpBI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAW6oF,MAC9Bn6I,GACH,IAEJ65N,GAAiB93H,YAAc,mBAC/B,YCjBM9pC,GAAuBx2D,EAAAA,cAAoB,MACjDw2D,GAAQ8pC,YAAc,oBACtB,YCCM9pC,GAAuBx2D,EAAAA,cAAoB,MACjDw2D,GAAQ8pC,YAAc,gBACtB,YCLe,SAAS+3H,GAAyBv1N,EAAKs9E,GAEN,OAAOt9E,CAQvD,CCGO,SAASw1N,GAAyBC,EAAUC,EAAepmB,GAShE,IAAItY,EAAYy+B,EALEnmB,EAAQ,eAAiB,aADvBA,EAAQ,aAAe,eAQ3C,MADsB,OAAlBomB,EAAwB1+B,EAAYy+B,EARzBnmB,EAAQ,YAAc,UADpBA,EAAQ,UAAY,YAS2D,QAAlBomB,EAAyB1+B,EAAYy+B,EAFlGnmB,EAAQ,WAAa,YADnBA,EAAQ,aAAe,cAGqI,UAAlBomB,EAA2B1+B,EAAYy+B,EAJpLnmB,EAAQ,YAAc,WADpBA,EAAQ,cAAgB,aAKoN,kBAAlBomB,EAAmC1+B,EAAY,SAAoC,gBAAlB0+B,IAAiC1+B,EAAY,OACnVA,CACT,CACA,MAAM+5B,GAA4B7zN,EAAAA,YAAiB,CAAAlQ,EAahDgT,KAAQ,IAbyC,SAClD41I,EAAQ,UACR7oF,EAAS,MACT4oK,EAAK,eACL7mB,EAAc,KACd/F,GAAO,EACPhtL,KAAM65M,EAAS,cACfC,EAEA//E,GAAI7b,EAAY,MAAK,aACrBuyE,EAAY,QACZplO,KACGq0B,GACJzO,EACKyoO,GAAW,EACf,MAAMK,GAAW3vG,EAAAA,EAAAA,YAAW4vG,IACtBl/L,EAASy+G,GAAmBM,EAAU,kBAE1C+/E,MAAOK,EAAY,KACnBC,EAAI,MACJ3mB,IACEnpF,EAAAA,EAAAA,YAAWgqG,IACfwF,EAAQA,GAASK,EACjB,MAAME,GAAe/vG,EAAAA,EAAAA,YAAWgwG,IAC1BC,EAAe,GACrB,GAAIT,EACF,GAAqB,kBAAVA,EAAoB,CAC7B,MAAM3gN,EAAOh1C,OAAOg1C,KAAK2gN,GAEzB,GAAI3gN,EAAK71C,OAAQ,CACf,MAAMurN,EAAW11K,EAAK,GAChB7W,EAAYw3N,EAAMjrC,GAIxB+qC,EAAyB,UAAdt3N,EACXi4N,EAAa5xP,KAAK,GAAGqyD,KAAU6zJ,KAAYvsL,IAC7C,CACF,KAAqB,QAAVw3N,IACTF,GAAW,GAGf,MAAMz+B,EAAYw+B,GAAyBC,EAAUQ,EAAM3mB,IACpDqhB,GAAW,SAChBE,EAAQ,OACR92B,EAAM,KACNh+K,EAAI,OACJ+0M,IACGZ,GAAgB,CACnBnnB,OACA+F,iBACA/yL,KAAM65M,EACNpnB,WAAYsnB,GAAoC,IAAxBM,EAAaj3P,OACrCS,OAAQ,CAAC,EAAG,GACZ4sO,eACAxV,cAQF,GANA25B,EAAU3wN,IAAM0zL,GAAc6hC,GAAyBv1N,GAAsB2wN,EAAU3wN,KACvF8tM,IAAoB,KAGd/xL,IAAgB,MAAVg+K,GAAkBA,EAAO12I,SAAQ,GAC1C,CAACtnC,KACC80M,IAAagF,IAAkBK,EAAc,OAAO,KAGhC,kBAAdj8F,IACT02F,EAAU50M,KAAOA,EACjB40M,EAAU97C,MAAQ,IAAgB,MAAVi8C,OAAiB,EAASA,GAAO,GACzDH,EAAUgF,MAAQA,GAEpB,IAAIj6N,EAAQD,EAAMC,MAUlB,OATc,MAAVq+L,GAAkBA,EAAO/C,YAG3Bt7L,EAAQ,IACHD,EAAMC,SACNi1N,EAAUj1N,OAEfD,EAAM,eAAiBs+L,EAAO/C,YAEZhhD,EAAAA,GAAAA,KAAK/b,EAAW,IAC/Bx+H,KACAk1N,EACHj1N,MAAOA,MAGF06N,EAAaj3P,QAAU22P,IAAa,CACvC,iBAAkB,UAEpB/oK,UAAW4rE,KAAW5rE,EAAWl2B,EAAQ9a,GAAQ,OAAQ05M,GAAY,GAAG5+L,QAAczvD,GAAW,GAAGyvD,KAAUzvD,OAAcgvP,IAC5H,IAEJrF,GAAavzH,YAAc,eAC3B,YC/GMo1H,GAA8B11N,EAAAA,YAAiB,CAAAlQ,EAQlDgT,KAAQ,IAR2C,SACpD41I,EAAQ,MACRhzK,EAAK,UACLmqF,EAAS,cACTspK,EAEAvgF,GAAI7b,EAAY+xD,MACbvwL,GACJzO,EACC,MAAM6pC,EAASy+G,GAAmBM,EAAU,mBACtC0gF,GAAkBnwG,EAAAA,EAAAA,YAAWgqG,SACbpvP,IAAlBs1P,IACF56N,EAAMm6I,SAAWygF,GAEnB,MAAOE,GAAe9D,KAKtB,OAJA8D,EAAYv2N,IAAM0zL,GAAc6iC,EAAYv2N,IAAKu1N,GAAyBv1N,KAItDg2I,EAAAA,GAAAA,KAAK/b,EAAW,CAClCltE,UAAW4rE,KAAW5rE,EAAWl2B,EAAQj0D,GAAS,GAAGi0D,WAAoC,MAAnBy/L,OAA0B,EAASA,EAAgBv6M,OAAS,WAC/Hw6M,KACA96N,GACH,IAEJm3N,GAAep1H,YAAc,iBAC7B,YCnBM+1H,GAAwBr2N,EAAAA,YAAiB,CAACynC,EAAQ3kC,KACtD,MAAM,SACJ41I,EAAQ,KACRqgF,EAAO,OAAM,KACbl6M,EAAI,UACJgxC,EAAS,MACT4oK,EAAQ,QAAO,SACfz8F,EAAQ,SACRw6F,EAAQ,qBACRG,EAEA/9E,GAAI7b,EAAY,MAChBu8F,OAAQC,EAAE,UACVC,GAAY,KACTj7N,GACDyxL,GAAgBvoJ,EAAQ,CAC1B5oB,KAAM,aAEFm6M,GAAe/vG,EAAAA,EAAAA,YAAWgwG,IAC1Bt/L,EAASy+G,GAAmBM,EAAU,YACtC05D,EAAQ55D,KAYRihF,EAAe5sB,IAAiB,CAACoqB,EAAUxwH,KAC/C,IAAIizH,EAZqBlsP,OAgB4C,OAA7CksP,EAAsBjzH,EAAKywH,gBAAgF,OAArDwC,EAAsBA,EAAoBtvO,aAAkB,EAASsvO,EAAoB3nB,UAAU3tH,SAAS,qBACpJ,cAAhBqiB,EAAKj5H,SAGvBi5H,EAAKywH,cAAcjoH,gBAAkBtqG,UAA6B,YAAhB8hG,EAAKj5H,QAAmD,WAA3Bi5H,EAAKywH,cAAc7sO,MAAmBo8G,EAAKj5H,OAAS,aApB9GA,EAqBFi5H,EAAKj5H,SAnBV,IAAdgsP,EAAuC,UAAXhsP,EAGd,WAAdgsP,EAA0C,cAAXhsP,EAGjB,YAAdgsP,GAA2C,WAAXhsP,KAaa,MAAZgpP,GAAoBA,EAASS,EAAUxwH,IAAK,IAG7EqzF,EAAYw+B,GADS,QAAVG,EACoCM,EAAM3mB,GACrDzZ,GAAetvE,EAAAA,EAAAA,UAAQ,KAAM,CACjCovG,QACAM,OACA3mB,WACE,CAACqmB,EAAOM,EAAM3mB,IACZunB,EAAmB,CACvBC,KAAMjgM,EACN,gBAAiB,GAAGA,WACpBkgM,GAAI,SACJ,cAAe,uBACftpP,IAAK,UACL9E,MAAO,aAET,OAAoBqtK,EAAAA,GAAAA,KAAKm6E,GAAgBz1F,SAAU,CACjD9yJ,MAAOiuN,EACPr4H,UAAuBw4E,EAAAA,GAAAA,KAAKghF,GAAc,CACxChgC,UAAWA,EACXj7K,KAAMA,EACNm9G,SAAUA,EACVw6F,SAAUiD,EACV9C,qBAAsBA,EACtBD,aAAc,IAAI/8L,uCAClB2mC,SAAU04J,EAAez6N,EAAM+hE,UAAwBw4E,EAAAA,GAAAA,KAAK/b,EAAW,IAClEx+H,EACHuE,IAAKA,EACL+sD,UAAW4rE,KAAW5rE,EAAWhxC,GAAQ,OAAQ86M,EAAiBZ,SAGtE,IAEJ1C,GAAS/1H,YAAc,WACvB,SAAex9H,OAAOG,OAAOozP,GAAU,CACrC0B,OAAQrC,GACRhjH,KAAMmhH,GACN96B,KAAMk9B,GACN8D,SAAU3B,GACV4B,QAAShC,GACTh/B,OAAQi/B,KCzEV,MACA,GAAe,sBAA0B,qECZzC,SAASgC,GAA+BnqO,GAAiC,IAAhC,MAAEplB,GAA2BolB,EACpE,MAAMwuE,EAA0B5zF,EAAQ,YAAc,UACtD,OACEouK,EAAAA,GAAAA,KAAA,OACEjpF,UAAU,iCACVrxD,MAAO,CAAE07N,WAAY57J,IAG3B,CAEA,SAAS67J,GAA+B91N,GAGb,IAHc,aACvC+1N,EAAY,MACZ9X,GACsBj+M,EACtB,OACEy0I,EAAAA,GAAAA,KAAA0/D,GAAAA,SAAA,CAAAl4I,SACG,IAAIz4F,MAAMy6O,GAAOn0O,KAAK,KAAK0hB,KAAI,CAACT,EAAM/nB,KACrCyxK,EAAAA,GAAAA,KAACmhF,GAA+B,CAASvvP,MAAOrD,GAAK+yP,GAAf/yP,MAI9C,CAmCA,SAjCA,SAAyB29B,GAIG,IAJF,aACxBo1N,EAAY,QACZtkI,EAAO,MACPwsH,EAAQ,GACet9M,EACvB,MAAM6qJ,EAAWoJ,KAMjB,OACEw1B,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,mBAAkByQ,SAAA,EAC/Bw4E,EAAAA,GAAAA,KAAA,UAAQjpF,UAAU,uCAAuCimC,QANhDukI,KACXxqE,GAAU,EAAE,EAK6DvvF,UACrEw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKm2P,GAAYv3I,IAAI,eAE9B+1D,EAAAA,GAAAA,KAAA,OACEjpF,UAAU,qCACV,aAAW,WACXkzG,KAAK,cACL,gBAAe,EACf,gBAAeu/C,EACf,gBAAe8X,EAAa95J,UAE5Bw4E,EAAAA,GAAAA,KAACqhF,GAA+B,CAC9BC,aAAcA,EACd9X,MAAOA,QAKjB,EC8MA,MACA,GAAe,sBAA0B,+DCnRlC,SAASiY,GAAazqO,GAQzB,IAR0B,MAC5Bq/D,EAAK,YACLG,EAAW,MACX+2B,GAKDv2F,EACC,OACE2+L,EAAAA,GAAAA,MAACwzB,GAAM,CAAA3hJ,SAAA,EACLw4E,EAAAA,GAAAA,KAAA,SAAAx4E,SAAQnR,KACR2pF,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,cAAc+vE,QAASkc,KAClCwpF,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAS+b,KAC/B2pF,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,iBAAiB+vE,QAASkc,KACrCwpF,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAASizC,GAAS67H,OAG9C,CCCA,SArBA,SAAuB3jN,GACrB,OACEu6I,EAAAA,GAAAA,KAAA,OACE/nK,MAAO,GACPsyB,OAAQ,EACRwtN,QAAQ,WACRD,MAAM,gCACFryN,EAAK+hE,UAETw4E,EAAAA,GAAAA,KAAA,KAAGv7I,GAAG,eAAc+iE,UAClBw4E,EAAAA,GAAAA,KAAA,KAAGv7I,GAAG,QAAO+iE,UACXw4E,EAAAA,GAAAA,KAAA,QACEv7I,GAAG,SACHhT,EAAE,weAMd,ECrBO,IAAKiwO,GAAa,SAAbA,GAAa,OAAbA,EAAa,QAAbA,CAAa,MCMzB,MAAMC,GAAuBz6N,EAAAA,YAAiB,CAAAlQ,EAS3CgT,KAAQ,IAToC,SAC7C41I,EAAQ,QACRxuK,EAAO,UACPwpC,EAAY,SAAQ,KACpB9lC,EAEAgrK,GAAI7b,EAAY,MAAK,UACrBltE,KACGtxD,GACJzO,EACC4oJ,EAAWN,GAAmBM,EAAU,WACxC,MAAMgiF,EAAkB,GAAGhiF,KAAYhlI,IACvC,OAAoBolI,EAAAA,GAAAA,KAAK/b,EAAW,CAClCj6H,IAAKA,KACFvE,EACHsxD,UAAW4rE,KAAW5rE,EAAW6qK,EAAiB9sP,GAAQ,GAAG8sP,KAAmB9sP,IAAQ1D,GAAW,QAAQA,MAC3G,IAEJuwP,GAAQn6H,YAAc,UACtB,YCtBA,SAASq6H,GAAcp8N,GACrB,OACEu6I,EAAAA,GAAAA,KAAC2hF,GAAO,CAAC/mN,UAAU,SAASqvJ,KAAK,YAAaxkK,EAAK+hE,UACjDw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,kBAAiByQ,SAAC,gBAGxC,CC2BA,SAASs6J,GAAyB9qO,GAKE,IALD,YACjC+qO,EAAW,OACXv9L,EAAM,SACN+kE,EAAQ,YACRy4H,GAC+BhrO,EAC/B,MAAMirO,EAAa14H,IAAaw4H,EAE1BG,EAAmC,CACvCC,YAAaF,EAAa,UAAY,UACtCG,UAAWH,EAAa,kCAA+Bl3P,GAQzD,OACE4qN,EAAAA,GAAAA,MAAA,UACE5+H,UAAU,kCACVimC,QARgB84F,M1DoBf,SAAmCisC,GACxC1rE,eAAeI,QAAQ25D,GAAsBtrN,KAAKC,UAAUg9N,GAC9D,C0DrBIM,EAA2BN,GAC3BC,EAAYD,EAAY,EAOtBr8N,MAAOw8N,EACP,eAAc34H,IAAaw4H,EAAYv6J,SAAA,EAEvCmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,+CAA8CyQ,SAAA,EAC5Dw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKi3P,GAAWr4I,IAAI,aAAalzB,UAAU,oBACjD47J,IAAgBoP,OAGnB/hF,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,sDAAqDyQ,UACnEw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,yBAAwByQ,SAAEhjC,QAIlD,CAEA,MAAM+9L,GAAoB,CAAC,IAAM,IAAM,IAAO,KAExCC,GAAkBx4P,OAAOK,OAAO6/M,IAOhCu4C,GAAev7N,EAAAA,YACnB,CAAAqE,EAAwBvB,KAAoC,IAA3D,SAAEw9D,EAAQ,QAAEw1B,GAASzxF,EAAA,OACpBoqL,EAAAA,GAAAA,MAAA,UAAQ3rL,IAAKA,EAAKgzF,QAAU7tH,GAAM6tH,EAAQ7tH,GAAI4nF,UAAU,SAAQyQ,SAAA,CAC7DA,GACDw4E,EAAAA,GAAAA,KAAC0iF,GAAa,CAACrtP,KAAK,YACb,IA2Ib,SAvIA,WACE,MAAM0hL,EAAWoJ,MACVwiE,EAAiBC,IAAsBz7N,EAAAA,EAAAA,UAAiB,KACxD07N,EAAkBC,IAAuB37N,EAAAA,EAAAA,UAC9C+iL,GAAa64C,KAETC,GAAez7N,EAAAA,EAAAA,WACd07N,EAAWC,IAAgB/7N,EAAAA,EAAAA,WAAS,GAwC3C,OAtCAmpH,EAAAA,EAAAA,kBAAgB,KACd,GAAKqyG,EAmBL,MAjBA,WACE9P,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CACP6pB,OAAQm+L,EACR/P,SAAUiQ,EACV7sN,IAAKg9M,QAIT,MAAMoF,EAAYn0M,YAAW,KAC3B8yI,EAAS,GAAGsvD,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAW6c,UAAU,GAxCnD,KA2CjBH,EAAatyO,QAAU0nO,CACxB,EAfD,GAiBO,KACLp8H,aAAagnI,EAAatyO,QAAQ,CACnC,GACA,CAACqmK,EAAU4rE,EAAiBE,KAE/BvyG,EAAAA,EAAAA,kBAAgB,KACYu+B,WAAa,IAADu0E,EACpCF,GAAa,GACb,MAAMG,EAAqC,QAAvBD,OpD+CCv0E,WACzB,IACE,mBACQ3hF,MAAM,2BACZ07E,MACJ,CAAE,MAAOz5K,IACPghP,GAAOx5N,MAAMxnB,GACf,GoDtDkCm0P,UAAa,IAAAF,OAAA,EAApBA,EAAuBG,QAC1CF,GAAkBA,IAAmB3B,GAAc8B,IACrDV,EAAoB54C,GAAau5C,KAEnCP,GAAa,EAAM,EAGrBQ,EAAmB,GAClB,KAGD/tC,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CACGi6J,GAAc,CACbprK,MAAO,qDACPG,YACE,kHAEJwpF,EAAAA,GAAAA,KAACL,GAAS,CAAC5oF,UAAU,yEAAwEyQ,UAC3FmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,SAAQyQ,SAAA,EACrBw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,yCAAwCyQ,UACrDw4E,EAAAA,GAAAA,KAAC2jF,GAAgB,CAACrC,aAAc,OAGlC3rC,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,2DAA0DyQ,SAAA,EACvEw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,0BAAyByQ,SAAC,0BACxCw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,6CAA4CyQ,SAAC,uDAGzDy7J,IAAajjF,EAAAA,GAAAA,KAAC6hF,GAAa,CAAC9qK,UAAU,gBACrCksK,IACAttC,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,+BAA8ByQ,UAC3CmuH,EAAAA,GAAAA,MAAC4nC,GAAQ,CAACxmK,UAAU,oBAAmByQ,SAAA,EACrCw4E,EAAAA,GAAAA,KAACu9E,GAAS0B,OAAM,CACdn/E,GAAI2iF,GACJh+N,GAAG,iBACHsyD,UAAU,SAAQyQ,SAEjBq7J,KAEH7iF,EAAAA,GAAAA,KAACu9E,GAAS3jH,KAAI,CAAC7iD,UAAU,OAAMyQ,SAC5Bg7J,GAAgBzrO,KAAI,CAAC67N,EAAUrkP,KAC9ByxK,EAAAA,GAAAA,KAACu9E,GAASt9B,KAAI,CAEZjjG,QAASA,IAAM8lI,EAAoBlQ,GACnC77J,UAAU,OACVrxD,MAAO,CACLsO,MACE4+M,IAAaiQ,EACT,UACA,QACNx/H,aACE90H,IAAMi0P,GAAgBr5P,OAAS,EAAI,EAAI,IACzCq+F,SAEDorJ,GAZIA,aAkBfj9B,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,4CAA2CyQ,SAAA,CACvDq7J,IAAqB34C,GAAa64C,KACjCR,GAAkBxrO,KAAK6sO,IACrB5jF,EAAAA,GAAAA,KAAC8hF,GAAyB,CAExBC,YAAa6B,EAAK1wP,WAClBsxD,OAAQmuL,GrF7LQ,EqF8LdiR,EACA,SAEFr6H,SAAUo5H,EACVX,YAAaY,GAPRgB,KAUVf,IAAqB34C,GAAau5C,KACjClB,GAAkBxrO,KAAK6sO,IACrB5jF,EAAAA,GAAAA,KAAC8hF,GAAyB,CAExBC,YAAa6B,EAAK1wP,WAClBsxD,OAAQmuL,GACNznP,KAAKC,MAAMy4P,EAAO7d,IAClB,UAEFx8G,SAAUo5H,EACVX,YAAaY,GAPRgB,qBAkB7B,gEChLA,MACA,GAAe,sBAA0B,2DCsBzC,SAvDA,SAA4B5sO,GAYG,IAZF,UAC3BmwE,EAAS,KACTr0B,EAAI,QACJkqD,EAAO,SACPyM,EAAQ,WACRk+D,EAAU,UACVk8D,EAAS,WACTC,EAAU,aACVC,EAAY,cACZC,EAAa,gBACbC,EAAkB,MACf/O,GACuBl+N,EAC1B,MAAMktO,EAAY,CAChBlwN,MAAOmzD,GAGT,OACE64E,EAAAA,GAAAA,KAACg2C,GAAM,CACLvsF,SAAUA,EACVzM,QAASA,EACT1rG,OAAQq2K,EAAa,cAAW58L,EAChCoqE,IAAKwyH,EAAa,2BAAwB58L,EAC1CgsF,UAAW,iBAAiBktK,OACxB/O,EAAS1tJ,UAEbmuH,EAAAA,GAAAA,MAAA,QACE5+H,UAAW,6BAA6BitK,GAAgC,KACxEt+N,MAAOw+N,EAAU18J,SAAA,CAEhB,IACAq8J,IACsB,kBAAdA,GACL7jF,EAAAA,GAAAA,KAAA,OACEjpF,UAAW,IAAIgtK,IACf14P,IAAKw4P,EACL55I,IAAI,iBAEJ45I,GACH,IACF/wL,EAAM,IACNgxL,IACuB,kBAAfA,GACL9jF,EAAAA,GAAAA,KAAA,OACEjpF,UAAW,IAAIgtK,IACf14P,IAAKy4P,EACL75I,IAAI,iBAEJ65I,GACH,QAIX,EC7DA,GANmB,CACjBK,QAASrpN,uBACTspN,uBAAwB,eAAe/d,GAAOC,WAAW+d,aACzDC,qBAAsB,eAAeje,GAAOC,WAAW6c,WCInDoB,GAAW,IrQ82RV,cAA+Bt8C,GAUlCsJ,SAAAA,CAAUC,EAAUC,EAAqBztL,GACrC,OAAOqtL,GAAmBr4M,KAAKkvM,eAAeqJ,UAAUC,EAAUC,EAAqBztL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC/I,CAQAuJ,MAAAA,CAAO1tL,GACH,OAAOqtL,GAAmBr4M,KAAKkvM,eAAewJ,OAAO1tL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC7G,CAaAwJ,iBAAAA,CAAkBH,EAAUj6M,EAAMof,EAAOi2E,EAAOpoE,EAAQR,GACpD,OAAOqtL,GAAmBr4M,KAAKkvM,eAAeyJ,kBAAkBH,EAAUj6M,EAAMof,EAAOi2E,EAAOpoE,EAAQR,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC9J,CAQAyJ,aAAAA,CAAc5tL,GACV,OAAOqtL,GAAmBr4M,KAAKkvM,eAAe0J,cAAc5tL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACpH,CASA0J,WAAAA,CAAYC,EAAiB9tL,GACzB,OAAOqtL,GAAmBr4M,KAAKkvM,eAAe2J,YAAYC,EAAiB9tL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACnI,GqQx6RkCsgC,QAAW19O,EAAWinP,IC2B5D,MACA,GAAe,sBAA0B,glvGCoFzC,SAtFA,WACE,MAAMwS,EhEqCD,WACL,MAAMA,EAAgBnuE,eAAeC,QAAQ85D,IAC7C,OAAOoU,EAAgB1/N,KAAKK,MAAMq/N,GAAiB,IACrD,CgExCwBC,GAEhBC,EAAmBlzC,IACvBqhC,GAAsB,CACpBtoP,KACEinN,IAAaxG,GAAcnhD,OACvBi8E,GACAA,GACNnrM,QAAS,CAAEg7M,UAAW3Q,GAAWI,OAAQpvM,IAAKg9M,QhEwD7C,SAA+BxhC,GACpCw/B,aAAav6D,QAAQ85D,GAAmBzrN,KAAKC,UAAUysL,GACzD,CgExDImzC,CAAsBnzC,GFpBC3iC,WACzB,IACE,MAAM+1E,EAAc,GAAGC,GAAWV,UAAUU,GAAWT,0BACjD,kBAAEU,UACAP,GAAShzC,UACbC,IAAaxG,GAAcnhD,OACvBmhD,GAAcnhD,OACdmhD,GAAcxgD,SAClB,CACEo6F,iBAGJ1rO,KACF,IAAK4rO,EAEH,YADAxrP,OAAO4hC,SAASwlB,KAAO,GAAGmkM,GAAWV,UAAUU,GAAWP,wBAG5DhrP,OAAO4hC,SAASwlB,KAAOokM,CACzB,CAAE,MACA,MACF,GECEC,CAAmBvzC,EAAS,EAY9B,OATAvoL,EAAAA,EAAAA,YAAU,KACR,GhEkEG,WACL,MAAMtS,EAAQ0/J,eAAeC,QAAQk6D,IACrC,OAAO75N,EAAQmO,KAAKK,MAAMxO,GAAS,IACrC,CgErESquO,GAGL,OAFAjT,GAAe,uCAER,KhE8ET17D,eAAe86D,WAAWX,GgE7ES,CAChC,GACA,KAGD76B,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CACGi6J,GAAc,CACbprK,MACE,mEACFG,YACE,qHAEJm/H,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,+CAA8CyQ,SAAA,EACjEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAAA/sH,UACFw4E,EAAAA,GAAAA,KAAC2jF,GAAgB,CAACrC,aAAc,OAElCthF,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,wBAAuByQ,UACpCw4E,EAAAA,GAAAA,KAACnzI,KAAM,CACLlH,cAAes/N,GACfr/N,MAAM,EACNmxD,UAAU,wBAGd4+H,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,kBAAiByQ,SAAA,CAAC,wBACR,KACtBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK65P,GAAgBj7I,IAAI,aAAalzB,UAAU,SACtDytK,EAAgB7R,GAAe6R,GAAiB,GAAG,QAEtDxkF,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,oBAAmByQ,SAAC,2CAGlCmuH,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,2DAA0DyQ,SAAA,EAC7EmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,yBAAwByQ,SAAA,EACrCmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,gEAA+DyQ,SAAA,EAC5Ew4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK8pP,GAAclrI,IAAI,UAAUlzB,UAAU,aAClD4+H,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,4BAA2ByQ,SAAA,EACzCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,OAAO1rF,IAAK85P,GAAM56N,OAAQ,GAAItyB,MAAO,KAAO,IAAI,qBAIrE+nK,EAAAA,GAAAA,KAAColF,GAAmB,CAClBj+J,UAAW,UACXr0B,KAAK,uBACLkqD,QAASA,IAAM0nI,EAAgB15C,GAAcnhD,QAC7Cg6F,UAAWwB,GACXtB,aAAa,wBACbC,cAAc,sBApE1BlpN,cAsFF,EC9GMwqN,GAAc,IxQ05Qb,cAAkCr9C,GASrC6H,cAAAA,CAAeC,EAAmB/rL,GAC9B,OAAO4rL,GAAsB52M,KAAKkvM,eAAe4H,eAAeC,EAAmB/rL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC3I,CASA6H,yBAAAA,CAA0B1T,EAAUt4K,GAChC,OAAO4rL,GAAsB52M,KAAKkvM,eAAe8H,0BAA0B1T,EAAUt4K,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC7I,CASA8H,8BAAAA,CAA+BC,EAA8BlsL,GACzD,OAAO4rL,GAAsB52M,KAAKkvM,eAAe+H,+BAA+BC,EAA8BlsL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACtK,CAQAgI,eAAAA,CAAgBnsL,GACZ,OAAO4rL,GAAsB52M,KAAKkvM,eAAeiI,gBAAgBnsL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACzH,CAQAiI,oBAAAA,CAAqBpsL,GACjB,OAAO4rL,GAAsB52M,KAAKkvM,eAAekI,qBAAqBpsL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC9H,CAQAkI,sBAAAA,CAAuBrsL,GACnB,OAAO4rL,GAAsB52M,KAAKkvM,eAAemI,uBAAuBrsL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAChI,CASAmI,2BAAAA,CAA4BC,EAA6BvsL,GACrD,OAAO4rL,GAAsB52M,KAAKkvM,eAAeoI,4BAA4BC,EAA6BvsL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAClK,CASAqI,eAAAA,CAAgBC,EAAoBzsL,GAChC,OAAO4rL,GAAsB52M,KAAKkvM,eAAesI,gBAAgBC,EAAoBzsL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC7I,CASAuI,UAAAA,CAAWC,EAAe3sL,GACtB,OAAO4rL,GAAsB52M,KAAKkvM,eAAewI,WAAWC,EAAe3sL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACnI,CASAyI,yBAAAA,CAA0BC,EAAiB7sL,GACvC,OAAO4rL,GAAsB52M,KAAKkvM,eAAe0I,0BAA0BC,EAAiB7sL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACpJ,CAUA2I,gBAAAA,CAAiBC,EAAS/8F,EAAOhwF,GAC7B,OAAO4rL,GAAsB52M,KAAKkvM,eAAe4I,iBAAiBC,EAAS/8F,EAAOhwF,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC1I,CASA+I,wBAAAA,CAAyBC,EAAmBntL,GACxC,OAAO4rL,GAAsB52M,KAAKkvM,eAAegJ,yBAAyBC,EAAmBntL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACrJ,GwQ3hRFsgC,QACA19O,EACAinP,IAyDIuT,GAA8B12E,UAGlC,IAIE,aAFQy2E,GAAY10C,0BAA0BC,IAC5C33L,IAEJ,CAAE,MACA,MACF,GChEF,SAZA,SAAoBlC,GAI6B,IAJ5B,SACnBwwE,EAAQ,UACRzQ,EAAY,MACTm+J,GACyCl+N,EAC5C,OACEgpJ,EAAAA,GAAAA,KAAA,UAAQjpF,UAAW,2BAA2BA,OAAiBm+J,EAAS1tJ,SACrEA,GAGP,ECgGA,SAhFA,SAAoCxwE,GASG,IAADwuO,EAAAC,EAAA,IATD,UACnCC,EAAS,cACTC,EAAa,aACbC,EAAY,cACZC,EAAa,aACbC,EAAY,SACZC,EAAQ,WACRC,EAAU,cACVC,EAAgB,KACkBjvO,EAClC,MAAM+/J,EAAWoJ,KACX+lE,GAAa3+N,EAAAA,EAAAA,UACbuhL,EAA6B,QAAlB08C,EAAGpU,YAAe,IAAAoU,GAAQ,QAARC,EAAfD,EAAiB/uF,cAAM,IAAAgvF,OAAR,EAAfA,EAAyBrT,OAiC7C,OA/BAnpN,EAAAA,EAAAA,YAAU,KACR,IAAK6/K,GAAek9C,EAAY,OAChC,MAAMG,EAAsBxwN,IAC1B,MAAMyiN,EAAYn0M,YAAW,KAC3B8yI,EAASphJ,EAAK,GACbswN,GAEHC,EAAWx1O,QAAU0nO,CAAS,EAE1BjwC,EAAWk+B,GAAOloH,KAAKmoH,WAE7B,WACE,GAAIwf,EAEF,YADAK,EAAmBL,GAIrB,MAAMj1C,OFAqBhiC,WAC/B,IAEE,aAD+By2E,GAAYj1C,0BAA0Bn3L,IAEvE,CAAE,MACA,MACF,GENkCktO,GAC9B,IAAKv1C,EAAiB,CACpB,MAAMl7K,EAAO,GAAGwyK,KAAYk+B,GAAOC,WAAW+f,gBAE9C,YADAF,EAAmBxwN,EAErB,CAEA,MAAM2wN,EA4CZ,SAAwB/6N,GAGH,IAHI,gBACvBg7N,EAAe,iBACfC,GACgBj7N,EAChB,MAAM48K,EAAWk+B,GAAOloH,KAAKmoH,WAC7B,IAAI5jE,EAEJ,QAAQ,GACN,KAAK6jF,EACH7jF,EAAQ2jE,GAAOC,WAAWmgB,aAC1B,MACF,KAAKD,EACH9jF,EAAQ2jE,GAAOC,WAAWogB,SAC1B,MACF,QACEhkF,EAAQ2jE,GAAOC,WAAWqgB,cAE9B,MAAO,GAAGx+C,KAAYzlC,GACxB,CA9DgCkkF,CAAgB/1C,GAC1Cs1C,EAAmBG,EAGpB,EAjBD,EAiBI,GACH,CAACx9C,EAAa/xB,EAAUkvE,EAAeH,EAAcE,KAGtDrwC,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CACGu+J,GACCtE,GAAc,CACZprK,OAAe,OAAR0vK,QAAQ,IAARA,OAAQ,EAARA,EAAU1vK,QAAS,GAC1BG,aAAqB,OAARuvK,QAAQ,IAARA,OAAQ,EAARA,EAAUvvK,cAAe,GACtC+2B,MAAe,OAARw4I,QAAQ,IAARA,OAAQ,EAARA,EAAUx4I,SAErBooG,EAAAA,GAAAA,MAACh2C,GAAS,CACRE,OAAK,EACL9oF,UAAU,2DAA0DyQ,SAAA,EAEpEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,sDAAqDyQ,UAClEw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKu6P,EAAc7uK,UAAU,oBAEtC4+H,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,sBAAqByQ,SAAA,EAClCw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,mDAAkDyQ,UAC/Dw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,kBAAiByQ,SAAEk+J,OAEnC1lF,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,2EAA0EyQ,SACpFm+J,KAGH3lF,EAAAA,GAAAA,KAAC6mF,GAAW,CACV9vK,UAAU,wDACVrxD,MAAO,CAAEohO,cAAe,IAAKt/J,SAE5Bq+J,YAMb,EC/EA,SA1BA,SAA4BpgO,GAC1B,OACEkwL,EAAAA,GAAAA,MAAA,OACE19M,MAAO,GACPsyB,OAAQ,GACRwtN,QAAQ,YACRD,MAAM,gCACFryN,EAAK+hE,SAAA,EAETw4E,EAAAA,GAAAA,KAAA,KAAG+mF,SAAS,yBAAwBv/J,UAClCw4E,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,orDAEVuuJ,EAAAA,GAAAA,KAAA,QAAAx4E,UACEw4E,EAAAA,GAAAA,KAAA,YAAUv7I,GAAG,mBAAkB+iE,UAC7Bw4E,EAAAA,GAAAA,KAAA,QACE/nK,MAAO,GACPsyB,OAAQ,GACRl1B,KAAK,QACL8Q,UAAU,8BAMtB,ECPA,SAVA,SAAoB6Q,GAAoD,IAAnD,gBAAEgwO,EAAe,UAAEC,GAA6BjwO,EACnE,OACEgpJ,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,eAAerxD,MAAOshO,EAAgBx/J,SACnDz4F,MAAM/F,KAAK,CAAEG,OATN,IASuB4tB,KAAI,CAACjP,EAAGvZ,KACrCyxK,EAAAA,GAAAA,KAAA,QAAcjpF,UAAU,MAAMrxD,MAAOuhO,GAA1B14P,MAInB,ECEM45M,GAAWk+B,GAAOloH,KAAKmoH,WACvB4gB,GAAe,GAAG/+C,MAAYk+B,GAAOC,WAAW6c,UAgFtD,SA9EA,WACE,MAAMjoN,EAAW6kJ,KACXhJ,EAAWoJ,KACXu4D,EAAc,IAAI7+D,gBAAgB3+I,EAAS8hG,SAC1C45B,EAAOuwF,IAAYhgO,EAAAA,EAAAA,YACpBigO,EAAa1O,EAAYxnO,IAAI,QAC7Bm2O,EAAc3O,EAAYxnO,IAAI,SAE9Bo2O,EtEsLCrW,GAAwBL,IAAW,KsErL3BxJ,GAASmgB,MAAQ,aAAe,aACzC7B,GACJ/vC,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,SAAQyQ,SAAA,CACrB,GAAG8/J,UACFhW,OAA4BtmC,GAAcxgD,SACtC,WACA8mF,OAA4BtmC,GAAcnhD,OAC1C,SACA,MACD,KACLmW,EAAAA,GAAAA,KAACwnF,GAAW,CAACP,UAAW,CAAE7F,WAAY,cAwC1C,OApCAn4N,EAAAA,EAAAA,YAAU,KtEoEL,IAAqCtS,EsEnEnC0wO,ItEmEmC1wO,EsElEZmO,KAAKK,MAAMsiO,KAAKJ,ItEmE9ChxE,eAAeI,QAAQ+5D,GAA0B1rN,KAAKC,UAAUpO,IsElE9DogK,EAASmwE,IAAa,GACrB,CAACG,EAAatwE,KAEjB9tJ,EAAAA,EAAAA,YAAU,KAKRm+N,GAJA,SAAkBluO,GAChB,MAAM,QAAEwuO,GAAY5iO,KAAKK,MAAMsiO,KAAKvuO,IACpCwuO,GAAWP,EAASO,EACtB,CACcC,CAASP,EAAW,GACjC,CAACA,KAEJn+N,EAAAA,EAAAA,YAAU,KACR,MAAM2+N,EAAetW,KACrB,IAAKsW,EAEH,YADA7wE,EAASmwE,IAGX,IAAKtwF,EAAO,OACOiY,WACjB,MAAMqjE,ORxDarjE,OACvB64E,EACAl2C,KAEA,IACE,MAAQt4L,KAAM2uO,SAAmBtD,GAAS1yC,YAAY,CACpD61C,UACAl2C,aAEF,OAAOq2C,CACT,CAAE,MACA,MACF,GQ4CuBC,CAAiBlxF,EAAOgxF,GAC3C,IAAK1V,EAEH,YADAn7D,EAASmwE,KtEsBV,SAAuBhV,GAC5B77D,eAAeI,QAAQ65D,GAAUxrN,KAAKC,UAAUmtN,GAClD,CsErBM6V,CAAc7V,GACd,MAAM4T,EAAe5T,EAAK8V,YACtB,GAAG7/C,MAAYk+B,GAAOC,WAAWmgB,eACjC,GAAGt+C,MAAYk+B,GAAOC,WAAW2hB,kBACrClxE,EAAS+uE,EAAa,EAExBoC,EAAY,GACX,CAACnxE,EAAUngB,KAGZoJ,EAAAA,GAAAA,KAAA,OAAAx4E,UACEw4E,EAAAA,GAAAA,KAACmoF,GAA2B,CAC1BzC,UAAWA,EACXC,cAAc,oDACdC,aACEtU,OAA4BtmC,GAAcxgD,SACtC49F,GACA/C,GAENQ,eACE7lF,EAAAA,GAAAA,KAACqoF,GAAkB,CAACtxK,UAAU,sBAAsB9+E,MAAO,KAE7D+tP,YAAU,KAIlB,ECvEA,MACA,GAAe,sBAA0B,yECfnCF,GAAe,GAAGzf,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAWqgB,gBAmDpE,SAjDA,WAAiC,IAADnB,EAC9B,MAAMtT,EAAsB,QAAlBsT,EAAGpU,YAAe,IAAAoU,OAAA,EAAfA,EAAiBtT,KACxB0V,EAAetW,KA+BrB,OA7BAroN,EAAAA,EAAAA,YAAU,KACHipN,GAAS0V,IACd/U,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CACP2tN,QAASpW,EAAKztN,GACdo4G,MAAOq1G,EAAKr1G,MACZ7mG,IAAKg9M,QAGTH,GAAsB,CACpBtoP,KACEq9P,IAAiB58C,GAAcnhD,OAC3Bi8E,GACAA,GACNnrM,QAAS,CACP2tN,QAASpW,EAAKztN,GACdo4G,MAAOq1G,EAAKr1G,MACZ7mG,IAAKg9M,QAITC,GAAsBf,EAAKztN,GAAI,CAC7Bl6B,KAAM,GAAG2nP,EAAKvJ,aAAauJ,EAAKqW,WAChC1rH,MAAOq1G,EAAKr1G,MACZy/D,SAAU41C,EAAK51C,WACf,GACD,CAACsrD,EAAc1V,KAGhBlyE,EAAAA,GAAAA,KAACmoF,GAA2B,CAC1BzC,UAAU,qBACVC,cAAc,4CACdC,aAAc4C,GACdzC,SAAU,CACR1vK,MAAO,gDACPG,YACE,4EAEJyvK,cAAe,IACfH,aAAcA,IAGpB,EC7CM2C,GAAoB,SAAU7yP,GAElC,MAAMoG,EAAgB,GACtB,IAAI0K,EAAI,EACR,IAAK,IAAInY,EAAI,EAAGA,EAAIqH,EAAIzM,OAAQoF,IAAK,CACnC,IAAIkL,EAAI7D,EAAIzB,WAAW5F,GACnBkL,EAAI,IACNuC,EAAI0K,KAAOjN,EACFA,EAAI,MACbuC,EAAI0K,KAAQjN,GAAK,EAAK,IACtBuC,EAAI0K,KAAY,GAAJjN,EAAU,KAEL,SAAZ,MAAJA,IACDlL,EAAI,EAAIqH,EAAIzM,QACyB,SAAZ,MAAxByM,EAAIzB,WAAW5F,EAAI,KAGpBkL,EAAI,QAAgB,KAAJA,IAAe,KAA6B,KAAtB7D,EAAIzB,aAAa5F,IACvDyN,EAAI0K,KAAQjN,GAAK,GAAM,IACvBuC,EAAI0K,KAASjN,GAAK,GAAM,GAAM,IAC9BuC,EAAI0K,KAASjN,GAAK,EAAK,GAAM,IAC7BuC,EAAI0K,KAAY,GAAJjN,EAAU,MAEtBuC,EAAI0K,KAAQjN,GAAK,GAAM,IACvBuC,EAAI0K,KAASjN,GAAK,EAAK,GAAM,IAC7BuC,EAAI0K,KAAY,GAAJjN,EAAU,IAEzB,CACD,OAAOuC,CACT,EA4Da0b,GAAiB,CAI5BgxO,eAAgB,KAKhBC,eAAgB,KAMhBC,sBAAuB,KAMvBC,sBAAuB,KAMvBC,kBACE,iEAKF,gBAAIC,GACF,OAAO/vP,KAAK8vP,kBAAoB,OAMlC,wBAAIE,GACF,OAAOhwP,KAAK8vP,kBAAoB,OAUlCG,mBAAoC,oBAATxB,KAW3ByB,eAAAA,CAAgBn5O,EAA8Bo5O,GAC5C,IAAKp6P,MAAMC,QAAQ+gB,GACjB,MAAMplB,MAAM,iDAGdqO,KAAKowP,QAEL,MAAMC,EAAgBF,EAClBnwP,KAAK4vP,sBACL5vP,KAAK0vP,eAEH/wP,EAAS,GAEf,IAAK,IAAIpJ,EAAI,EAAGA,EAAIwhB,EAAM5mB,OAAQoF,GAAK,EAAG,CACxC,MAAM+6P,EAAQv5O,EAAMxhB,GACdg7P,EAAYh7P,EAAI,EAAIwhB,EAAM5mB,OAC1BqgQ,EAAQD,EAAYx5O,EAAMxhB,EAAI,GAAK,EACnCk7P,EAAYl7P,EAAI,EAAIwhB,EAAM5mB,OAC1BugQ,EAAQD,EAAY15O,EAAMxhB,EAAI,GAAK,EAEnCo7P,EAAWL,GAAS,EACpBM,GAAqB,EAARN,IAAiB,EAAME,GAAS,EACnD,IAAIK,GAAqB,GAARL,IAAiB,EAAME,GAAS,EAC7CI,EAAmB,GAARJ,EAEVD,IACHK,EAAW,GAENP,IACHM,EAAW,KAIflyP,EAAOnJ,KACL66P,EAAcM,GACdN,EAAcO,GACdP,EAAcQ,GACdR,EAAcS,GAEjB,CAED,OAAOnyP,EAAOL,KAAK,KAWrByyP,YAAAA,CAAah6O,EAAeo5O,GAG1B,OAAInwP,KAAKiwP,qBAAuBE,EACvB/4I,KAAKrgG,GAEP/W,KAAKkwP,gBAAgBT,GAAkB14O,GAAQo5O,IAWxDa,YAAAA,CAAaj6O,EAAeo5O,GAG1B,OAAInwP,KAAKiwP,qBAAuBE,EACvB1B,KAAK13O,GA3LQ,SAAUmO,GAElC,MAAMliB,EAAgB,GACtB,IAAImhB,EAAM,EACR1jB,EAAI,EACN,KAAO0jB,EAAMe,EAAM/0B,QAAQ,CACzB,MAAM2qD,EAAK51B,EAAMf,KACjB,GAAI22B,EAAK,IACP93C,EAAIvC,KAAOrG,OAAOkpB,aAAaw3B,QAC1B,GAAIA,EAAK,KAAOA,EAAK,IAAK,CAC/B,MAAMC,EAAK71B,EAAMf,KACjBnhB,EAAIvC,KAAOrG,OAAOkpB,cAAoB,GAALw3B,IAAY,EAAW,GAALC,EACpD,MAAM,GAAID,EAAK,KAAOA,EAAK,IAAK,CAE/B,MAGMjjC,IACI,EAALijC,IAAW,IAAa,GAJlB51B,EAAMf,OAImB,IAAa,GAHtCe,EAAMf,OAGuC,EAAW,GAFxDe,EAAMf,MAGf,MACFnhB,EAAIvC,KAAOrG,OAAOkpB,aAAa,OAAUzL,GAAK,KAC9C7U,EAAIvC,KAAOrG,OAAOkpB,aAAa,OAAc,KAAJzL,GAC1C,KAAM,CACL,MAAMkjC,EAAK71B,EAAMf,KACX62B,EAAK91B,EAAMf,KACjBnhB,EAAIvC,KAAOrG,OAAOkpB,cACT,GAALw3B,IAAY,IAAa,GAALC,IAAY,EAAW,GAALC,EAE3C,CACF,CACD,OAAOh4C,EAAI1E,KAAK,GAClB,CA8JW2yP,CAAkBjxP,KAAKkxP,wBAAwBn6O,EAAOo5O,KAkB/De,uBAAAA,CAAwBn6O,EAAeo5O,GACrCnwP,KAAKowP,QAEL,MAAMe,EAAgBhB,EAClBnwP,KAAK6vP,sBACL7vP,KAAK2vP,eAEHhxP,EAAmB,GAEzB,IAAK,IAAIpJ,EAAI,EAAGA,EAAIwhB,EAAM5mB,QAAU,CAClC,MAAMmgQ,EAAQa,EAAcp6O,EAAM9b,OAAO1F,MAGnCi7P,EADYj7P,EAAIwhB,EAAM5mB,OACFghQ,EAAcp6O,EAAM9b,OAAO1F,IAAM,IACzDA,EAEF,MACMm7P,EADYn7P,EAAIwhB,EAAM5mB,OACFghQ,EAAcp6O,EAAM9b,OAAO1F,IAAM,KACzDA,EAEF,MACM67P,EADY77P,EAAIwhB,EAAM5mB,OACFghQ,EAAcp6O,EAAM9b,OAAO1F,IAAM,GAG3D,KAFEA,EAEW,MAAT+6P,GAA0B,MAATE,GAA0B,MAATE,GAA0B,MAATU,EACrD,MAAM,IAAIC,GAGZ,MAAMV,EAAYL,GAAS,EAAME,GAAS,EAG1C,GAFA7xP,EAAOnJ,KAAKm7P,GAEE,KAAVD,EAAc,CAChB,MAAME,EAAaJ,GAAS,EAAK,IAASE,GAAS,EAGnD,GAFA/xP,EAAOnJ,KAAKo7P,GAEE,KAAVQ,EAAc,CAChB,MAAMP,EAAaH,GAAS,EAAK,IAAQU,EACzCzyP,EAAOnJ,KAAKq7P,EACb,CACF,CACF,CAED,OAAOlyP,GAQTyxP,KAAAA,GACE,IAAKpwP,KAAK0vP,eAAgB,CACxB1vP,KAAK0vP,eAAiB,CAAC,EACvB1vP,KAAK2vP,eAAiB,CAAC,EACvB3vP,KAAK4vP,sBAAwB,CAAC,EAC9B5vP,KAAK6vP,sBAAwB,CAAC,EAG9B,IAAK,IAAIt6P,EAAI,EAAGA,EAAIyK,KAAK+vP,aAAa5/P,OAAQoF,IAC5CyK,KAAK0vP,eAAen6P,GAAKyK,KAAK+vP,aAAa90P,OAAO1F,GAClDyK,KAAK2vP,eAAe3vP,KAAK0vP,eAAen6P,IAAMA,EAC9CyK,KAAK4vP,sBAAsBr6P,GAAKyK,KAAKgwP,qBAAqB/0P,OAAO1F,GACjEyK,KAAK6vP,sBAAsB7vP,KAAK4vP,sBAAsBr6P,IAAMA,EAGxDA,GAAKyK,KAAK8vP,kBAAkB3/P,SAC9B6P,KAAK2vP,eAAe3vP,KAAKgwP,qBAAqB/0P,OAAO1F,IAAMA,EAC3DyK,KAAK6vP,sBAAsB7vP,KAAK+vP,aAAa90P,OAAO1F,IAAMA,EAG/D,IAOC,MAAO87P,WAAgC1/P,MAA7CtB,WAAAA,uBACW,KAAIkB,KAAG,2BAMX,MASM+/P,GAAgC,SAAU10P,GAErD,OAX0B,SAAUA,GACpC,MAAM20P,EAAY9B,GAAkB7yP,GACpC,OAAO8hB,GAAOwxO,gBAAgBqB,GAAW,EAC3C,CAQSC,CAAa50P,GAAK2E,QAAQ,MAAO,GAC1C,EAWakwP,GAAe,SAAU70P,GACpC,IACE,OAAO8hB,GAAOsyO,aAAap0P,GAAK,EACjC,CAAC,MAAOzG,IACP0tB,QAAQlG,MAAM,wBAAyBxnB,GACxC,CACD,OAAO,IACT,EChUA,MAAMu7P,GAAwBA,eChC5B,GAAoB,qBAAT9tP,KACT,OAAOA,KAET,GAAsB,qBAAXtD,OACT,OAAOA,OAET,GAAsB,qBAAXuxF,oBAAAA,EACT,OAAOA,oBAAAA,EAET,MAAM,IAAIlgG,MAAM,kCAClB,CDuBEggQ,GAAYC,sBA2CDC,GAAcA,KACzB,IACE,OACEH,MApC6BI,MACjC,GAAuB,qBAAZhwN,QACT,OAEF,MAAMiwN,EAAqBjwN,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,0BAAAA,4CAAAA,4BAAAA,mCAAAA,iCAAAA,QAAAA,uCAAAA,eAAAA,kCAAAA,eAAAA,oBAAAA,OAAAA,2BAAAA,0CAAAA,wBAAAA,2BAAAA,2BAAAA,oFAAAA,uBAAAA,OAAAA,mBAAAA,uBAAAA,8BAAAA,eAAY8vN,sBACvC,OAAIG,EACKjmO,KAAKK,MAAM4lO,QADpB,CAEC,EA8BGD,IA3BwBE,MAC5B,GAAwB,qBAAbn/N,SACT,OAEF,IAAIs/E,EACJ,IACEA,EAAQt/E,SAASwuK,OAAOlvF,MAAM,gCAC/B,CAAC,MAAOh8G,IAGP,MACD,CACD,MAAM20K,EAAU34D,GAASs/I,GAAat/I,EAAM,IAC5C,OAAO24D,GAAWh/I,KAAKK,MAAM2+I,EAAQ,EAejCknF,EAEH,CAAC,MAAO77P,IAQP,YADA0tB,QAAQsqN,KAAK,+CAA+Ch4O,KAE7D,GASU87P,GACXC,IACuB,IAAAxjO,EAAAoF,EAAA,OAA4B,QAA5BA,EAAe,QAAfpF,EAAAmjO,YAAe,IAAAnjO,OAAA,EAAAA,EAAAyjO,qBAAa,IAAAr+N,OAAA,EAAAA,EAAGo+N,EAAY,EAiCvDE,GAAsBA,KAAyC,IAAA1jO,EAC1E,OAAa,QAAbA,EAAAmjO,YAAa,IAAAnjO,OAAA,EAAAA,EAAEoB,MAAM,EAOVuiO,GACX9gQ,IAEA,IAAAm9B,EAAA,OAAa,QAAbA,EAAAmjO,YAAa,IAAAnjO,OAAA,EAAAA,EAAG,IAAIn9B,IAAoC,QEzJ7Ck7L,GAIXp8L,WAAAA,GAFA,KAAAsxK,OAAoC,OACpC,KAAAv2B,QAAqC,OAEnCprI,KAAK0hK,QAAU,IAAIjvD,SAAQ,CAAC24B,EAASu2B,KACnC3hK,KAAKorI,QAAUA,EACfprI,KAAK2hK,OAASA,CAAmC,IASrD2wF,YAAAA,CACE5mO,GAEA,MAAO,CAAC/N,EAAO/kB,KACT+kB,EACF3d,KAAK2hK,OAAOhkJ,GAEZ3d,KAAKorI,QAAQxyI,GAES,oBAAb8yB,IAGT1rB,KAAK0hK,QAAQr2B,OAAM,SAIK,IAApB3/G,EAASv7B,OACXu7B,EAAS/N,GAET+N,EAAS/N,EAAO/kB,GAEnB,YCzBSw7J,KACd,MACuB,qBAAd//H,WAC2B,kBAA3BA,UAAqB,UAErBA,UAAqB,UAErB,EAEX,CCmCM,MAAOk+N,WAAsB5gQ,MAIjCtB,WAAAA,CAEWkO,EACT0b,EAEOu4O,GAEPt4O,MAAMD,GALG,KAAI1b,KAAJA,EAGF,KAAUi0P,WAAVA,EAPA,KAAIjhQ,KAdI,gBA2BfP,OAAOiuB,eAAejf,KAAMuyP,GAAcrhQ,WAItCS,MAAMylM,mBACRzlM,MAAMylM,kBAAkBp3L,KAAMyyP,GAAavhQ,UAAUD,eAK9CwhQ,GAIXpiQ,WAAAA,CACmBqiQ,EACAC,EACAvqO,GAFA,KAAOsqO,QAAPA,EACA,KAAWC,YAAXA,EACA,KAAMvqO,OAANA,EAGnBn3B,MAAAA,CACEsN,GAGA,MAAMi0P,GAAc1gQ,UAAA3B,QAAA,OAAA4B,EAAAD,UAAA,KAAyB,CAAC,EACxC8gQ,EAAW,GAAG5yP,KAAK0yP,WAAWn0P,IAC9Bs0P,EAAW7yP,KAAKooB,OAAO7pB,GAEvB0b,EAAU44O,EAUpB,SAAyBA,EAAkB3yO,GACzC,OAAO2yO,EAAStxP,QAAQuxP,IAAS,CAAChkP,EAAGyJ,KACnC,MAAM3f,EAAQsnB,EAAK3H,GACnB,OAAgB,MAAT3f,EAAgBwB,OAAOxB,GAAS,IAAI2f,KAAO,GAEtD,CAf+Bw6O,CAAgBF,EAAUL,GAAc,QAE7DQ,EAAc,GAAGhzP,KAAK2yP,gBAAgB14O,MAAY24O,MAIxD,OAFc,IAAIL,GAAcK,EAAUI,EAAaR,IAa3D,MAAMM,GAAU,gBC3EA,SAAAG,GAAUpvP,EAAWlU,GACnC,GAAIkU,IAAMlU,EACR,OAAO,EAGT,MAAMujQ,EAAQliQ,OAAOg1C,KAAKniC,GACpBsvP,EAAQniQ,OAAOg1C,KAAKr2C,GAC1B,IAAK,MAAMmU,KAAKovP,EAAO,CACrB,IAAKC,EAAMruO,SAAShhB,GAClB,OAAO,EAGT,MAAMsvP,EAASvvP,EAA8BC,GACvCuvP,EAAS1jQ,EAA8BmU,GAC7C,GAAIsvL,GAASggE,IAAUhgE,GAASigE,IAC9B,IAAKJ,GAAUG,EAAOC,GACpB,OAAO,OAEJ,GAAID,IAAUC,EACnB,OAAO,CAEV,CAED,IAAK,MAAMvvP,KAAKqvP,EACd,IAAKD,EAAMpuO,SAAShhB,GAClB,OAAO,EAGX,OAAO,CACT,CAEA,SAASsvL,GAASR,GAChB,OAAiB,OAAVA,GAAmC,kBAAVA,CAClC,CCrEM,SAAU0gE,GAAYC,GAG1B,MAAM/nO,EAAS,GACf,IAAK,MAAOjT,EAAK3f,KAAU5H,OAAOg4J,QAAQuqG,GACpCx9P,MAAMC,QAAQ4C,GAChBA,EAAM6kB,SAAQ+1O,IACZhoO,EAAOh2B,KACLoiH,mBAAmBr/F,GAAO,IAAMq/F,mBAAmB47I,GACpD,IAGHhoO,EAAOh2B,KAAKoiH,mBAAmBr/F,GAAO,IAAMq/F,mBAAmBh/G,IAGnE,OAAO4yB,EAAOr7B,OAAS,IAAMq7B,EAAOltB,KAAK,KAAO,EAClD,CAMM,SAAUm1P,GAAkBH,GAChC,MAAM11O,EAA8B,CAAC,EASrC,OARe01O,EAAY/xP,QAAQ,MAAO,IAAI3N,MAAM,KAE7C6pB,SAAQmgJ,IACb,GAAIA,EAAO,CACT,MAAOrlJ,EAAK3f,GAASglK,EAAMhqK,MAAM,KACjCgqB,EAAI8qC,mBAAmBnwC,IAAQmwC,mBAAmB9vD,EACnD,KAEIglB,CACT,CAKM,SAAU81O,GAAmB12N,GACjC,MAAM22N,EAAa32N,EAAIx+B,QAAQ,KAC/B,IAAKm1P,EACH,MAAO,GAET,MAAMC,EAAgB52N,EAAIx+B,QAAQ,IAAKm1P,GACvC,OAAO32N,EAAIi+D,UACT04J,EACAC,EAAgB,EAAIA,OAAgB7hQ,EAExC,CCEA,MAAM8hQ,GAeJxjQ,WAAAA,CAAY+5M,EAAuB0pD,GAd3B,KAASC,UAAmC,GAC5C,KAAYC,aAAkB,GAE9B,KAAaC,cAAG,EAEhB,KAAAC,KAAOzhJ,QAAQ24B,UACf,KAAS+oH,WAAG,EASlBn0P,KAAK8zP,cAAgBA,EAIrB9zP,KAAKk0P,KACFr9I,MAAK,KACJuzF,EAASpqM,KAAK,IAEfqrI,OAAMl1I,IACL6J,KAAK2d,MAAMxnB,EAAE,IAInB+gB,IAAAA,CAAKte,GACHoH,KAAKo0P,iBAAiBC,IACpBA,EAASn9O,KAAKte,EAAM,IAIxB+kB,KAAAA,CAAMA,GACJ3d,KAAKo0P,iBAAiBC,IACpBA,EAAS12O,MAAMA,EAAM,IAEvB3d,KAAK6lM,MAAMloL,GAGb22O,QAAAA,GACEt0P,KAAKo0P,iBAAiBC,IACpBA,EAASC,UAAU,IAErBt0P,KAAK6lM,QASPvrB,SAAAA,CACEi6E,EACA52O,EACA22O,GAEA,IAAID,EAEJ,QACqBtiQ,IAAnBwiQ,QACUxiQ,IAAV4rB,QACa5rB,IAAbuiQ,EAEA,MAAM,IAAI3iQ,MAAM,qBAahB0iQ,EAiIN,SACEz2O,EACA42O,GAEA,GAAmB,kBAAR52O,GAA4B,OAARA,EAC7B,OAAO,EAGT,IAAK,MAAM2N,KAAUipO,EACnB,GAAIjpO,KAAU3N,GAA8B,oBAAhBA,EAAI2N,GAC9B,OAAO,EAIX,OAAO,CACT,CAxJMkpO,CAAqBF,EAA8C,CACjE,OACA,QACA,aAGSA,EAEA,CACTr9O,KAAMq9O,EACN52O,QACA22O,iBAIkBviQ,IAAlBsiQ,EAASn9O,OACXm9O,EAASn9O,KAAOikJ,SAEKppK,IAAnBsiQ,EAAS12O,QACX02O,EAAS12O,MAAQw9I,SAEOppK,IAAtBsiQ,EAASC,WACXD,EAASC,SAAWn5F,IAGtB,MAAMu5F,EAAQ10P,KAAK20P,eAAep9P,KAAKyI,KAAMA,KAAK+zP,UAAW5jQ,QAuB7D,OAlBI6P,KAAKm0P,WAEPn0P,KAAKk0P,KAAKr9I,MAAK,KACb,IACM72G,KAAK40P,WACPP,EAAS12O,MAAM3d,KAAK40P,YAEpBP,EAASC,UAEZ,CAAC,MAAOn+P,KAGH,IAIV6J,KAAK+zP,UAAWv+P,KAAK6+P,GAEdK,EAKDC,cAAAA,CAAep/P,QACExD,IAAnBiO,KAAK+zP,gBAAiDhiQ,IAAtBiO,KAAK+zP,UAAUx+P,YAI5CyK,KAAK+zP,UAAUx+P,GAEtByK,KAAKi0P,eAAiB,EACK,IAAvBj0P,KAAKi0P,oBAA8CliQ,IAAvBiO,KAAK8zP,eACnC9zP,KAAK8zP,cAAc9zP,OAIfo0P,eAAAA,CAAgB34O,GACtB,IAAIzb,KAAKm0P,UAOT,IAAK,IAAI5+P,EAAI,EAAGA,EAAIyK,KAAK+zP,UAAW5jQ,OAAQoF,IAC1CyK,KAAK60P,QAAQt/P,EAAGkmB,GAOZo5O,OAAAA,CAAQt/P,EAAWkmB,GAGzBzb,KAAKk0P,KAAKr9I,MAAK,KACb,QAAuB9kH,IAAnBiO,KAAK+zP,gBAAiDhiQ,IAAtBiO,KAAK+zP,UAAUx+P,GACjD,IACEkmB,EAAGzb,KAAK+zP,UAAUx+P,GACnB,CAAC,MAAOY,IAIgB,qBAAZ0tB,SAA2BA,QAAQlG,OAC5CkG,QAAQlG,MAAMxnB,GAEjB,CACF,IAIG0vM,KAAAA,CAAMh6K,GACR7rB,KAAKm0P,YAGTn0P,KAAKm0P,WAAY,OACLpiQ,IAAR85B,IACF7rB,KAAK40P,WAAa/oO,GAIpB7rB,KAAKk0P,KAAKr9I,MAAK,KACb72G,KAAK+zP,eAAYhiQ,EACjBiO,KAAK8zP,mBAAgB/hQ,CAAS,MAyCpC,SAASopK,MCrRH,SAAU25F,GACdpC,GAEA,OAAIA,GAAYA,EAA+BqC,UACrCrC,EAA+BqC,UAEhCrC,CAEX,OCDaznG,GAiBX56J,WAAAA,CACWkB,EACAyjQ,EACAx3O,GAFA,KAAIjsB,KAAJA,EACA,KAAeyjQ,gBAAfA,EACA,KAAIx3O,KAAJA,EAnBX,KAAiBy3O,mBAAG,EAIpB,KAAYC,aAAe,CAAC,EAE5B,KAAAC,kBAA2C,OAE3C,KAAiBC,kBAAwC,KAczDC,oBAAAA,CAAqBlkP,GAEnB,OADAnR,KAAKm1P,kBAAoBhkP,EAClBnR,KAGTs1P,oBAAAA,CAAqBL,GAEnB,OADAj1P,KAAKi1P,kBAAoBA,EAClBj1P,KAGTu1P,eAAAA,CAAgB9oO,GAEd,OADAzsB,KAAKk1P,aAAezoO,EACbzsB,KAGTw1P,0BAAAA,CAA2B9pO,GAEzB,OADA1rB,KAAKo1P,kBAAoB1pO,EAClB1rB,MCnDJ,MAAMy1P,GAAqB,kBCgBrB/pG,GAWXr7J,WAAAA,CACmBkB,EACA+H,GADA,KAAI/H,KAAJA,EACA,KAAS+H,UAATA,EAZX,KAASokE,UAAwB,KACxB,KAAAymG,UAAgD,IAAI/lJ,IACpD,KAAAs3O,kBAGb,IAAIt3O,IACS,KAAAu3O,iBACf,IAAIv3O,IACE,KAAAw3O,gBAAuD,IAAIx3O,IAWnElG,GAAAA,CAAI29O,GAEF,MAAMC,EAAuB91P,KAAK+1P,4BAA4BF,GAE9D,IAAK71P,KAAK01P,kBAAkBzsH,IAAI6sH,GAAuB,CACrD,MAAM/wE,EAAW,IAAI0H,GAGrB,GAFAzsL,KAAK01P,kBAAkBr3O,IAAIy3O,EAAsB/wE,GAG/C/kL,KAAKg2P,cAAcF,IACnB91P,KAAKi2P,uBAGL,IACE,MAAMjtH,EAAWhpI,KAAKk2P,uBAAuB,CAC3CC,mBAAoBL,IAElB9sH,GACF+7C,EAAS35C,QAAQpC,EAEpB,CAAC,MAAO7yI,KAKZ,CAED,OAAO6J,KAAK01P,kBAAkBx9O,IAAI49O,GAAuBp0F,QAmB3D00F,YAAAA,CAAaprO,SAKX,MAAM8qO,EAAuB91P,KAAK+1P,4BAChC,OAAA/qO,QAAA,IAAAA,OAAA,EAAAA,EAAS6qO,YAELQ,EAAgC,QAArB3nO,EAAA,OAAA1D,QAAA,IAAAA,OAAA,EAAAA,EAASqrO,gBAAY,IAAA3nO,GAAAA,EAEtC,IACE1uB,KAAKg2P,cAAcF,KACnB91P,KAAKi2P,uBAaA,CAEL,GAAII,EACF,OAAO,KAEP,MAAM1kQ,MAAM,WAAWqO,KAAKzO,wBAE/B,CAlBC,IACE,OAAOyO,KAAKk2P,uBAAuB,CACjCC,mBAAoBL,GAEvB,CAAC,MAAO3/P,IACP,GAAIkgQ,EACF,OAAO,KAEP,MAAMlgQ,EAET,EAWLmgQ,YAAAA,GACE,OAAOt2P,KAAK09D,UAGd64L,YAAAA,CAAa74L,GACX,GAAIA,EAAUnsE,OAASyO,KAAKzO,KAC1B,MAAMI,MACJ,yBAAyB+rE,EAAUnsE,qBAAqByO,KAAKzO,SAIjE,GAAIyO,KAAK09D,UACP,MAAM/rE,MAAM,iBAAiBqO,KAAKzO,kCAMpC,GAHAyO,KAAK09D,UAAYA,EAGZ19D,KAAKi2P,uBAAV,CAKA,GA0NJ,SAA0Cv4L,GACxC,MAAuC,UAAhCA,EAAUy3L,iBACnB,CA5NQqB,CAAiB94L,GACnB,IACE19D,KAAKk2P,uBAAuB,CAAEC,mBAAoBV,IACnD,CAAC,MAAOt/P,KAWX,IAAK,MACHggQ,EACAM,KACGz2P,KAAK01P,kBAAkB1sG,UAAW,CACrC,MAAM8sG,EACJ91P,KAAK+1P,4BAA4BI,GAEnC,IAEE,MAAMntH,EAAWhpI,KAAKk2P,uBAAuB,CAC3CC,mBAAoBL,IAEtBW,EAAiBrrH,QAAQpC,EAC1B,CAAC,MAAO7yI,KAIV,CAlCA,EAqCHugQ,aAAAA,GAAqD,IAAvCb,EAAA/jQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAqB2jQ,GACjCz1P,KAAK01P,kBAAkB76H,OAAOg7H,GAC9B71P,KAAK21P,iBAAiB96H,OAAOg7H,GAC7B71P,KAAKmkK,UAAUtpC,OAAOg7H,GAKxB,YAAMh7H,GACJ,MAAM87H,EAAW5gQ,MAAM/F,KAAKgQ,KAAKmkK,UAAU9yK,gBAErCohH,QAAQ6tD,IAAI,IACbq2F,EACArqO,QAAOomO,GAAW,aAAcA,IAEhC30O,KAAI20O,GAAYA,EAAgBkE,SAAU/7H,cAC1C87H,EACArqO,QAAOomO,GAAW,YAAaA,IAE/B30O,KAAI20O,GAAYA,EAAgBmE,cAIvCC,cAAAA,GACE,OAAyB,MAAlB92P,KAAK09D,UAGds4L,aAAAA,GAAqD,IAAvCH,EAAA/jQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAqB2jQ,GACjC,OAAOz1P,KAAKmkK,UAAUl7B,IAAI4sH,GAG5Bt+F,UAAAA,GAAkD,IAAvCs+F,EAAA/jQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAqB2jQ,GAC9B,OAAOz1P,KAAK21P,iBAAiBz9O,IAAI29O,IAAe,CAAC,EAGnD3vJ,UAAAA,GAAuC,IAA5BquE,EAAAziL,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAA0B,CAAC,EACpC,MAAM,QAAEk5B,EAAU,CAAC,GAAMupJ,EACnBuhF,EAAuB91P,KAAK+1P,4BAChCxhF,EAAK4hF,oBAEP,GAAIn2P,KAAKg2P,cAAcF,GACrB,MAAMnkQ,MACJ,GAAGqO,KAAKzO,QAAQukQ,mCAIpB,IAAK91P,KAAK82P,iBACR,MAAMnlQ,MAAM,aAAaqO,KAAKzO,oCAGhC,MAAMy3I,EAAWhpI,KAAKk2P,uBAAuB,CAC3CC,mBAAoBL,EACpB9qO,YAIF,IAAK,MACHmrO,EACAM,KACGz2P,KAAK01P,kBAAkB1sG,UAAW,CAGjC8sG,IADF91P,KAAK+1P,4BAA4BI,IAEjCM,EAAiBrrH,QAAQpC,EAE5B,CAED,OAAOA,EAWT+tH,MAAAA,CAAOrrO,EAA6BmqO,SAClC,MAAMC,EAAuB91P,KAAK+1P,4BAA4BF,GACxDmB,EAC0C,QAA9CtoO,EAAA1uB,KAAK41P,gBAAgB19O,IAAI49O,UAAqB,IAAApnO,EAAAA,EAC9C,IAAIk9F,IACNorI,EAAkBnwP,IAAI6kB,GACtB1rB,KAAK41P,gBAAgBv3O,IAAIy3O,EAAsBkB,GAE/C,MAAMC,EAAmBj3P,KAAKmkK,UAAUjsJ,IAAI49O,GAK5C,OAJImB,GACFvrO,EAASurO,EAAkBnB,GAGtB,KACLkB,EAAkBn8H,OAAOnvG,EAAS,EAQ9BwrO,qBAAAA,CACNluH,EACA6sH,GAEA,MAAMlwN,EAAY3lC,KAAK41P,gBAAgB19O,IAAI29O,GAC3C,GAAKlwN,EAGL,IAAK,MAAMja,KAAYia,EACrB,IACEja,EAASs9G,EAAU6sH,EACpB,CAAC,MAAMnnO,MAMJwnO,sBAAAA,CAAsBl4O,GAM7B,IAN8B,mBAC7Bm4O,EAAkB,QAClBnrO,EAAU,CAAC,GAIZhN,EACKgrH,EAAWhpI,KAAKmkK,UAAUjsJ,IAAIi+O,GAClC,IAAKntH,GAAYhpI,KAAK09D,YACpBsrE,EAAWhpI,KAAK09D,UAAUs3L,gBAAgBh1P,KAAK1G,UAAW,CACxD68P,oBAqD+BN,EArDmBM,EAsDjDN,IAAeJ,QAAqB1jQ,EAAY8jQ,GArDjD7qO,YAEFhrB,KAAKmkK,UAAU9lJ,IAAI83O,EAAoBntH,GACvChpI,KAAK21P,iBAAiBt3O,IAAI83O,EAAoBnrO,GAO9ChrB,KAAKk3P,sBAAsBluH,EAAUmtH,GAOjCn2P,KAAK09D,UAAU03L,mBACjB,IACEp1P,KAAK09D,UAAU03L,kBACbp1P,KAAK1G,UACL68P,EACAntH,EAEH,CAAC,MAAMt6G,KA4BhB,IAAuCmnO,EAtBnC,OAAO7sH,GAAY,KAGb+sH,2BAAAA,GACiC,IAAvCF,EAAA/jQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAqB2jQ,GAErB,OAAIz1P,KAAK09D,UACA19D,KAAK09D,UAAUu3L,kBAAoBY,EAAaJ,GAEhDI,EAIHI,oBAAAA,GACN,QACIj2P,KAAK09D,WAC8B,aAArC19D,KAAK09D,UAAUy3L,yBCrVRgC,GAGX9mQ,WAAAA,CAA6BkB,GAAA,KAAIA,KAAJA,EAFZ,KAAA6lQ,UAAY,IAAIh5O,IAajCi5O,YAAAA,CAA6B35L,GAC3B,MAAM86I,EAAWx4M,KAAKs3P,YAAY55L,EAAUnsE,MAC5C,GAAIinN,EAASs+C,iBACX,MAAM,IAAInlQ,MACR,aAAa+rE,EAAUnsE,yCAAyCyO,KAAKzO,QAIzEinN,EAAS+9C,aAAa74L,GAGxB65L,uBAAAA,CAAwC75L,GACrB19D,KAAKs3P,YAAY55L,EAAUnsE,MAC/BulQ,kBAEX92P,KAAKo3P,UAAUv8H,OAAOn9D,EAAUnsE,MAGlCyO,KAAKq3P,aAAa35L,GAUpB45L,WAAAA,CAA4B/lQ,GAC1B,GAAIyO,KAAKo3P,UAAUnuH,IAAI13I,GACrB,OAAOyO,KAAKo3P,UAAUl/O,IAAI3mB,GAI5B,MAAMinN,EAAW,IAAI9sD,GAAYn6J,EAAMyO,MAGvC,OAFAA,KAAKo3P,UAAU/4O,IAAI9sB,EAAMinN,GAElBA,EAGTg/C,YAAAA,GACE,OAAOzhQ,MAAM/F,KAAKgQ,KAAKo3P,UAAU/lQ,WCtC9B,MAAM8yK,GAAsB,OAavB+pE,IAAZ,SAAYA,GACVA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,kBACD,CAPD,CAAYA,KAAAA,GAOX,KAED,MAAMupB,GAA2D,CAC/D,MAASvpB,GAASwpB,MAClB,QAAWxpB,GAASypB,QACpB,KAAQzpB,GAAS0pB,KACjB,KAAQ1pB,GAAS2pB,KACjB,MAAS3pB,GAAS4pB,MAClB,OAAU5pB,GAAS6pB,QAMfC,GAA4B9pB,GAAS0pB,KAmBrCK,GAAgB,CACpB,CAAC/pB,GAASwpB,OAAQ,MAClB,CAACxpB,GAASypB,SAAU,MACpB,CAACzpB,GAAS0pB,MAAO,OACjB,CAAC1pB,GAAS2pB,MAAO,OACjB,CAAC3pB,GAAS4pB,OAAQ,SAQdI,GAAgC,SAAClvH,EAAUmvH,GAC/C,GAAIA,EAAUnvH,EAASovH,SACrB,OAEF,MAAM79L,GAAM,IAAID,MAAO+9H,cACjB9sK,EAAS0sO,GAAcE,GAC7B,IAAI5sO,EAMF,MAAM,IAAI55B,MACR,8DAA8DwmQ,MAPtD,QAAAp8O,EAAAjqB,UAAA3B,OAN+C6rB,EAAI,IAAAjmB,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAAnqB,UAAAmqB,GAO7D4H,QAAQ0H,GACN,IAAIgvC,OAASyuE,EAASz3I,WACnByqB,EAOT,QAEam7N,GAOX9mP,WAAAA,CAAmBkB,GAAA,KAAIA,KAAJA,EAUX,KAAS8mQ,UAAGL,GAsBZ,KAAWM,YAAeJ,GAc1B,KAAeK,gBAAsB,KA1C3Cp0F,GAAU3uK,KAAKwK,MAQjB,YAAIo4P,GACF,OAAOp4P,KAAKq4P,UAGd,YAAID,CAASh5P,GACX,KAAMA,KAAO8uO,IACX,MAAM,IAAIr+O,UAAU,kBAAkBuP,+BAExCY,KAAKq4P,UAAYj5P,EAInBo5P,WAAAA,CAAYp5P,GACVY,KAAKq4P,UAA2B,kBAARj5P,EAAmBq4P,GAAkBr4P,GAAOA,EAQtE,cAAIq5P,GACF,OAAOz4P,KAAKs4P,YAEd,cAAIG,CAAWr5P,GACb,GAAmB,oBAARA,EACT,MAAM,IAAIvP,UAAU,qDAEtBmQ,KAAKs4P,YAAcl5P,EAOrB,kBAAIs5P,GACF,OAAO14P,KAAKu4P,gBAEd,kBAAIG,CAAet5P,GACjBY,KAAKu4P,gBAAkBn5P,EAOzB0iH,KAAAA,GAAwB,QAAAg8E,EAAAhsM,UAAA3B,OAAf6rB,EAAe,IAAAjmB,MAAA+nM,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAf/hL,EAAe+hL,GAAAjsM,UAAAisM,GACtB/9L,KAAKu4P,iBAAmBv4P,KAAKu4P,gBAAgBv4P,KAAMkuO,GAASwpB,SAAU17O,GACtEhc,KAAKs4P,YAAYt4P,KAAMkuO,GAASwpB,SAAU17O,GAE5CzgB,GAAAA,GAAsB,QAAAo9P,EAAA7mQ,UAAA3B,OAAf6rB,EAAe,IAAAjmB,MAAA4iQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAf58O,EAAe48O,GAAA9mQ,UAAA8mQ,GACpB54P,KAAKu4P,iBACHv4P,KAAKu4P,gBAAgBv4P,KAAMkuO,GAASypB,WAAY37O,GAClDhc,KAAKs4P,YAAYt4P,KAAMkuO,GAASypB,WAAY37O,GAE9CmyN,IAAAA,GAAuB,QAAA0qB,EAAA/mQ,UAAA3B,OAAf6rB,EAAe,IAAAjmB,MAAA8iQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAf98O,EAAe88O,GAAAhnQ,UAAAgnQ,GACrB94P,KAAKu4P,iBAAmBv4P,KAAKu4P,gBAAgBv4P,KAAMkuO,GAAS0pB,QAAS57O,GACrEhc,KAAKs4P,YAAYt4P,KAAMkuO,GAAS0pB,QAAS57O,GAE3CugD,IAAAA,GAAuB,QAAAw8L,EAAAjnQ,UAAA3B,OAAf6rB,EAAe,IAAAjmB,MAAAgjQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAfh9O,EAAeg9O,GAAAlnQ,UAAAknQ,GACrBh5P,KAAKu4P,iBAAmBv4P,KAAKu4P,gBAAgBv4P,KAAMkuO,GAAS2pB,QAAS77O,GACrEhc,KAAKs4P,YAAYt4P,KAAMkuO,GAAS2pB,QAAS77O,GAE3C2B,KAAAA,GAAwB,QAAAs7O,EAAAnnQ,UAAA3B,OAAf6rB,EAAe,IAAAjmB,MAAAkjQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAfl9O,EAAek9O,GAAApnQ,UAAAonQ,GACtBl5P,KAAKu4P,iBAAmBv4P,KAAKu4P,gBAAgBv4P,KAAMkuO,GAAS4pB,SAAU97O,GACtEhc,KAAKs4P,YAAYt4P,KAAMkuO,GAAS4pB,SAAU97O,ICjN9C,MAAMm9O,GAAgBA,CAAC7jO,EAAQ8jO,IAAiBA,EAAaj3F,MAAM1hK,GAAM60B,aAAkB70B,IAE3F,IAAI44P,GACAC,GAqBJ,MAAMC,GAAmB,IAAI3/G,QACvB4/G,GAAqB,IAAI5/G,QACzB6/G,GAA2B,IAAI7/G,QAC/B8/G,GAAiB,IAAI9/G,QACrB+/G,GAAwB,IAAI//G,QA0DlC,IAAIggH,GAAgB,CAChB1hP,GAAAA,CAAII,EAAQid,EAAMskO,GACd,GAAIvhP,aAAkBwhP,eAAgB,CAElC,GAAa,SAATvkO,EACA,OAAOikO,GAAmBthP,IAAII,GAElC,GAAa,qBAATid,EACA,OAAOjd,EAAOyhP,kBAAoBN,GAAyBvhP,IAAII,GAGnE,GAAa,UAATid,EACA,OAAOskO,EAASE,iBAAiB,QAC3BhoQ,EACA8nQ,EAASG,YAAYH,EAASE,iBAAiB,GAE7D,CAEA,OAAOE,GAAK3hP,EAAOid,GACvB,EACAlX,IAAGA,CAAC/F,EAAQid,EAAM38B,KACd0f,EAAOid,GAAQ38B,GACR,GAEXqwI,IAAGA,CAAC3wH,EAAQid,IACJjd,aAAkBwhP,iBACR,SAATvkO,GAA4B,UAATA,IAGjBA,KAAQjd,GAMvB,SAAS4hP,GAAaprJ,GAIlB,OAAIA,IAASqrJ,YAAYjpQ,UAAUkpQ,aAC7B,qBAAsBN,eAAe5oQ,WA7GnCooQ,KACHA,GAAuB,CACpBe,UAAUnpQ,UAAUopQ,QACpBD,UAAUnpQ,UAAUqpQ,SACpBF,UAAUnpQ,UAAUspQ,sBAqHE11O,SAASgqF,GAC5B,WAAmB,QAAAgvF,EAAAhsM,UAAA3B,OAAN6rB,EAAI,IAAAjmB,MAAA+nM,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/hL,EAAI+hL,GAAAjsM,UAAAisM,GAIpB,OADAjvF,EAAK5yF,MAAMiqK,GAAOnmL,MAAOgc,GAClBi+O,GAAKV,GAAiBrhP,IAAIlY,MACrC,EAEG,WAAmB,QAAA24P,EAAA7mQ,UAAA3B,OAAN6rB,EAAI,IAAAjmB,MAAA4iQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ58O,EAAI48O,GAAA9mQ,UAAA8mQ,GAGpB,OAAOqB,GAAKnrJ,EAAK5yF,MAAMiqK,GAAOnmL,MAAOgc,GACzC,EAvBW,SAAUy+O,GAAqB,QAAA1+O,EAAAjqB,UAAA3B,OAAN6rB,EAAI,IAAAjmB,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAAnqB,UAAAmqB,GAChC,MAAM8nC,EAAK+qD,EAAKh3G,KAAKquL,GAAOnmL,MAAOy6P,KAAez+O,GAElD,OADAy9O,GAAyBp7O,IAAI0lC,EAAI02M,EAAWlwF,KAAOkwF,EAAWlwF,OAAS,CAACkwF,IACjER,GAAKl2M,EAChB,CAoBR,CACA,SAAS22M,GAAuB9hQ,GAC5B,MAAqB,oBAAVA,EACAshQ,GAAathQ,IAGpBA,aAAiBkhQ,gBAhGzB,SAAwC/1M,GAEpC,GAAIy1M,GAAmBvwH,IAAIllF,GACvB,OACJ,MAAM+2D,EAAO,IAAIrI,SAAQ,CAAC24B,EAASu2B,KAC/B,MAAMg5F,EAAWA,KACb52M,EAAGpzB,oBAAoB,WAAY2jO,GACnCvwM,EAAGpzB,oBAAoB,QAAShT,GAChComC,EAAGpzB,oBAAoB,QAAShT,EAAM,EAEpC22O,EAAWA,KACblpH,IACAuvH,GAAU,EAERh9O,EAAQA,KACVgkJ,EAAO59G,EAAGpmC,OAAS,IAAIqrJ,aAAa,aAAc,eAClD2xF,GAAU,EAEd52M,EAAGrzB,iBAAiB,WAAY4jO,GAChCvwM,EAAGrzB,iBAAiB,QAAS/S,GAC7BomC,EAAGrzB,iBAAiB,QAAS/S,EAAM,IAGvC67O,GAAmBn7O,IAAI0lC,EAAI+2D,EAC/B,CAyEQ8/I,CAA+BhiQ,GAC/BugQ,GAAcvgQ,EAzJVygQ,KACHA,GAAoB,CACjBc,YACAU,eACAC,SACAT,UACAP,kBAoJG,IAAIiB,MAAMniQ,EAAOghQ,IAErBhhQ,EACX,CACA,SAASqhQ,GAAKrhQ,GAGV,GAAIA,aAAiBoiQ,WACjB,OA3IR,SAA0B1vO,GACtB,MAAMo2I,EAAU,IAAIjvD,SAAQ,CAAC24B,EAASu2B,KAClC,MAAMg5F,EAAWA,KACbrvO,EAAQqF,oBAAoB,UAAWigK,GACvCtlK,EAAQqF,oBAAoB,QAAShT,EAAM,EAEzCizK,EAAUA,KACZxlD,EAAQ6uH,GAAK3uO,EAAQvS,SACrB4hP,GAAU,EAERh9O,EAAQA,KACVgkJ,EAAOr2I,EAAQ3N,OACfg9O,GAAU,EAEdrvO,EAAQoF,iBAAiB,UAAWkgK,GACpCtlK,EAAQoF,iBAAiB,QAAS/S,EAAM,IAe5C,OAbA+jJ,EACK7qD,MAAMj+G,IAGHA,aAAiByhQ,WACjBd,GAAiBl7O,IAAIzlB,EAAO0yB,EAChC,IAGC+/G,OAAM,SAGXsuH,GAAsBt7O,IAAIqjJ,EAASp2I,GAC5Bo2I,CACX,CA4Geu5F,CAAiBriQ,GAG5B,GAAI8gQ,GAAezwH,IAAIrwI,GACnB,OAAO8gQ,GAAexhP,IAAItf,GAC9B,MAAMu+C,EAAWujN,GAAuB9hQ,GAOxC,OAJIu+C,IAAav+C,IACb8gQ,GAAer7O,IAAIzlB,EAAOu+C,GAC1BwiN,GAAsBt7O,IAAI84B,EAAUv+C,IAEjCu+C,CACX,CACA,MAAMgvI,GAAUvtL,GAAU+gQ,GAAsBzhP,IAAItf,GCrIpD,MAAMsiQ,GAAc,CAAC,MAAO,SAAU,SAAU,aAAc,SACxDC,GAAe,CAAC,MAAO,MAAO,SAAU,SACxCC,GAAgB,IAAIh9O,IAC1B,SAASi9O,GAAU/iP,EAAQid,GACvB,KAAMjd,aAAkB6hP,cAClB5kO,KAAQjd,GACM,kBAATid,EACP,OAEJ,GAAI6lO,GAAcljP,IAAIqd,GAClB,OAAO6lO,GAAcljP,IAAIqd,GAC7B,MAAM+lO,EAAiB/lO,EAAKh0B,QAAQ,aAAc,IAC5Cg6P,EAAWhmO,IAAS+lO,EACpBE,EAAUL,GAAar2O,SAASw2O,GACtC,KAEEA,KAAmBC,EAAWT,SAAWD,gBAAgB3pQ,aACrDsqQ,IAAWN,GAAYp2O,SAASw2O,GAClC,OAEJ,MAAM/vO,EAASsqJ,eAAgB4lF,GAE3B,MAAM13M,EAAK/jD,KAAKo6P,YAAYqB,EAAWD,EAAU,YAAc,YAC/D,IAAIljP,EAASyrC,EAAG23M,MAAM,QAAA3/O,EAAAjqB,UAAA3B,OAHmB6rB,EAAI,IAAAjmB,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAAnqB,UAAAmqB,GAW7C,OAPIs/O,IACAjjP,EAASA,EAAO9X,MAAMwb,EAAKtlB,iBAMjB+7G,QAAQ6tD,IAAI,CACtBhoJ,EAAOgjP,MAAmBt/O,GAC1Bw/O,GAAWz3M,EAAG+2D,QACd,EACR,EAEA,OADAsgJ,GAAc/8O,IAAIkX,EAAMhK,GACjBA,CACX,CDgCIquO,GC/BU+B,KAAQ,IACfA,EACHzjP,IAAKA,CAACI,EAAQid,EAAMskO,IAAawB,GAAU/iP,EAAQid,IAASomO,EAASzjP,IAAII,EAAQid,EAAMskO,GACvF5wH,IAAKA,CAAC3wH,EAAQid,MAAW8lO,GAAU/iP,EAAQid,IAASomO,EAAS1yH,IAAI3wH,EAAQid,KD4BzD7J,CAASkuO,UE9FhBgC,GACXvrQ,WAAAA,CAA6BiJ,GAAA,KAASA,UAATA,EAG7BuiQ,qBAAAA,GAIE,OAHkB77P,KAAK1G,UAAUk+P,eAI9Bz5O,KAAIy6L,IACH,GAmBR,SAAkCA,GAChC,MAAM96I,EAAY86I,EAAS89C,eAC3B,MAAsB,aAAf,OAAA54L,QAAS,IAATA,OAAS,EAATA,EAAWlgD,KACpB,CAtBYs+O,CAAyBtjD,GAAW,CACtC,MAAMk6C,EAAUl6C,EAAS49C,eACzB,MAAO,GAAG1D,EAAQqJ,WAAWrJ,EAAQtnO,SACtC,CACC,OAAO,IACR,IAEFkB,QAAO0vO,GAAaA,IACpB19P,KAAK,2CCxBC29P,GAAS,IAAI9kB,GAAO,gtBC8BpBse,GAAqB,YAErByG,GAAsB,CACjC,CAACC,IAAU,YACX,CAACC,IAAgB,mBACjB,CAACC,IAAgB,iBACjB,CAACC,IAAsB,wBACvB,CAACC,IAAe,iBAChB,CAACC,IAAqB,wBACtB,CAACC,IAAW,YACZ,CAACC,IAAiB,mBAClB,CAACC,IAAe,YAChB,CAACC,IAAqB,mBACtB,CAACC,IAAgB,UACjB,CAACC,IAAsB,iBACvB,CAACC,IAAoB,WACrB,CAACC,IAA0B,kBAC3B,CAACC,IAAgB,WACjB,CAACC,IAAsB,kBACvB,CAACC,IAAkB,YACnB,CAACC,IAAwB,mBACzB,CAACC,IAAmB,UACpB,CAACC,IAAyB,iBAC1B,CAACC,IAAc,WACf,CAACC,IAAoB,kBACrB,CAACC,IAAgB,WACjB,CAACC,IAAsB,kBACvB,CAACC,IAAa,cACd,UAAW,UACX,CAACpsQ,IAAc,eC/CJqsQ,GAAQ,IAAIx/O,IAKZy/O,GAAc,IAAIz/O,IAQlB0/O,GAAc,IAAI1/O,IAOf,SAAA2/O,GACdC,EACAtgM,GAEA,IACGsgM,EAAwB1kQ,UAAU+9P,aAAa35L,EACjD,CAAC,MAAOvnE,IACP8lQ,GAAOn6I,MACL,aAAapkD,EAAUnsE,4CAA4CysQ,EAAIzsQ,OACvE4E,GAEH,CACH,CAoBM,SAAU8nQ,GACdvgM,GAEA,MAAM4wC,EAAgB5wC,EAAUnsE,KAChC,GAAIusQ,GAAY70H,IAAI36B,GAKlB,OAJA2tJ,GAAOn6I,MACL,sDAAsDxT,OAGjD,EAGTwvJ,GAAYz/O,IAAIiwF,EAAe5wC,GAG/B,IAAK,MAAMsgM,KAAOJ,GAAMvsQ,SACtB0sQ,GAAcC,EAAwBtgM,GAGxC,IAAK,MAAMwgM,KAAaL,GAAYxsQ,SAClC0sQ,GAAcG,EAAoCxgM,GAGpD,OAAO,CACT,CAWgB,SAAAygM,GACdH,EACAzsQ,GAEA,MAAM6sQ,EAAuBJ,EAAwB1kQ,UAClDg+P,YAAY,aACZlB,aAAa,CAAEC,UAAU,IAI5B,OAHI+H,GACGA,EAAoBC,mBAEnBL,EAAwB1kQ,UAAUg+P,YAAY/lQ,EACxD,CAwCM,SAAU+sQ,GACd1gP,GAEA,YAA+C7rB,IAAvC6rB,EAA0B2gP,QACpC,CCzIA,MA2CaC,GAAgB,IAAI/L,GAC/B,MACA,WA7CiC,CACjC,SACE,6EAEF,eAAyB,iCACzB,gBACE,kFACF,cAAwB,kDACxB,qBAA+B,uCAC/B,aACE,0EACF,uBACE,6EAEF,uBACE,wDACF,WACE,gFACF,UACE,qFACF,UACE,mFACF,aACE,sFACF,sCACE,0GACF,iCACE,oEClCSgM,GAcXpuQ,WAAAA,CACE26B,EACA8E,EACAx2B,GANQ,KAAUolQ,YAAG,EAQrB1+P,KAAKi0G,SAAgBjjH,OAAAG,OAAA,GAAA65B,GACrBhrB,KAAK2jM,QAAe3yM,OAAAG,OAAA,GAAA2+B,GACpB9vB,KAAKy+F,MAAQ3uE,EAAOv+B,KACpByO,KAAK2+P,gCACH7uO,EAAO8uO,+BACT5+P,KAAKs3G,WAAah+G,EAClB0G,KAAK1G,UAAU+9P,aACb,IAAIpsG,GAAU,OAAO,IAAMjrJ,MAAM,WAIrC,kCAAI4+P,GAEF,OADA5+P,KAAK6+P,iBACE7+P,KAAK2+P,gCAGd,kCAAIC,CAA+Bx/P,GACjCY,KAAK6+P,iBACL7+P,KAAK2+P,gCAAkCv/P,EAGzC,QAAI7N,GAEF,OADAyO,KAAK6+P,iBACE7+P,KAAKy+F,MAGd,WAAIzzE,GAEF,OADAhrB,KAAK6+P,iBACE7+P,KAAKi0G,SAGd,UAAInkF,GAEF,OADA9vB,KAAK6+P,iBACE7+P,KAAK2jM,QAGd,aAAIrqM,GACF,OAAO0G,KAAKs3G,WAGd,aAAIwnJ,GACF,OAAO9+P,KAAK0+P,WAGd,aAAII,CAAU1/P,GACZY,KAAK0+P,WAAat/P,EAOVy/P,cAAAA,GACR,GAAI7+P,KAAK8+P,UACP,MAAMN,GAAcvtQ,OAAO,cAAsB,CAAE8tQ,QAAS/+P,KAAKy+F,SCtChE,MAAMugK,sBAoEGC,GACdhrJ,GACc,IAAdirJ,EAASptQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAETk5B,EAAUipF,EAEd,GAAyB,kBAAdirJ,EAAwB,CAEjCA,EAAY,CAAE3tQ,KADD2tQ,EAEd,CAED,MAAMpvO,EAAM9+B,OAAAG,OAAA,CACVI,KAAMkkQ,GACNmJ,gCAAgC,GAC7BM,GAEC3tQ,EAAOu+B,EAAOv+B,KAEpB,GAAoB,kBAATA,IAAsBA,EAC/B,MAAMitQ,GAAcvtQ,OAA8B,gBAChD8tQ,QAAS3kQ,OAAO7I,KAMpB,GAFAy5B,IAAAA,EAAYonO,OAEPpnO,EACH,MAAMwzO,GAAcvtQ,OAAO,cAG7B,MAAMkuQ,EAAcvB,GAAM1lP,IAAI3mB,GAC9B,GAAI4tQ,EAAa,CAEf,GACElM,GAAUjoO,EAASm0O,EAAYn0O,UAC/BioO,GAAUnjO,EAAQqvO,EAAYrvO,QAE9B,OAAOqvO,EAEP,MAAMX,GAAcvtQ,OAA+B,iBAAE8tQ,QAASxtQ,GAEjE,CAED,MAAM+H,EAAY,IAAI69P,GAAmB5lQ,GACzC,IAAK,MAAMmsE,KAAaogM,GAAYzsQ,SAClCiI,EAAU+9P,aAAa35L,GAGzB,MAAM0hM,EAAS,IAAIX,GAAgBzzO,EAAS8E,EAAQx2B,GAIpD,OAFAskQ,GAAMv/O,IAAI9sB,EAAM6tQ,GAETA,CACT,CAuJgB,SAAAC,KAAwC,IAAjC9tQ,EAAAO,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAe2jQ,GACpC,MAAMuI,EAAMJ,GAAM1lP,IAAI3mB,GACtB,IAAKysQ,GAAOzsQ,IAASkkQ,IAAsBrD,KACzC,OAAO6M,KAET,IAAKjB,EACH,MAAMQ,GAAcvtQ,OAAwB,UAAE8tQ,QAASxtQ,IAGzD,OAAOysQ,CACT,UA2DgBsB,GACdC,EACAn0O,EACAhzB,SAIA,IAAI2jQ,EAAmD,QAAzCrtO,EAAAwtO,GAAoBqD,UAAqB,IAAA7wO,EAAAA,EAAA6wO,EACnDnnQ,IACF2jQ,GAAW,IAAI3jQ,KAEjB,MAAMonQ,EAAkBzD,EAAQ5pJ,MAAM,SAChCstJ,EAAkBr0O,EAAQ+mF,MAAM,SACtC,GAAIqtJ,GAAmBC,EAAiB,CACtC,MAAMziG,EAAU,CACd,+BAA+B++F,oBAA0B3wO,OAgB3D,OAdIo0O,GACFxiG,EAAQxnK,KACN,iBAAiBumQ,sDAGjByD,GAAmBC,GACrBziG,EAAQxnK,KAAK,OAEXiqQ,GACFziG,EAAQxnK,KACN,iBAAiB41B,2DAGrB6wO,GAAO1/L,KAAKygG,EAAQ1+J,KAAK,KAE1B,CACD2/P,GACE,IAAIhzG,GACF,GAAG8wG,aACH,KAAM,CAAGA,UAAS3wO,aAAU,WAIlC,CCraA,MAAMs0O,GAAU,8BACVC,GAAa,EACbC,GAAa,2BASnB,IAAIC,GAAiD,KACrD,SAASC,KA2BP,OA1BKD,KACHA,GR5BJ,SAAgBtuQ,EAAM65B,GAA0D,IAAjD,QAAE20O,EAAO,QAAEC,EAAO,SAAEC,EAAQ,WAAEC,GAAYpuQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACzE,MAAMw5B,EAAU60O,UAAU3+N,KAAKjwC,EAAM65B,GAC/Bg1O,EAAcnG,GAAK3uO,GAoBzB,OAnBI00O,GACA10O,EAAQoF,iBAAiB,iBAAkBmR,IACvCm+N,EAAQ/F,GAAK3uO,EAAQvS,QAAS8oB,EAAMw+N,WAAYx+N,EAAMy+N,WAAYrG,GAAK3uO,EAAQ8uO,aAAcv4N,EAAM,IAGvGk+N,GACAz0O,EAAQoF,iBAAiB,WAAYmR,GAAUk+N,EAE/Cl+N,EAAMw+N,WAAYx+N,EAAMy+N,WAAYz+N,KAExCu+N,EACKvpJ,MAAMuZ,IACH8vI,GACA9vI,EAAG1/F,iBAAiB,SAAS,IAAMwvO,MACnCD,GACA7vI,EAAG1/F,iBAAiB,iBAAkBmR,GAAUo+N,EAASp+N,EAAMw+N,WAAYx+N,EAAMy+N,WAAYz+N,IACjG,IAECwpG,OAAM,SACJ+0H,CACX,CQKgBG,CAAcb,GAASC,GAAY,CAC7CK,QAASA,CAAC5vI,EAAIiwI,KAMZ,GACO,IADCA,EAEJ,IACEjwI,EAAGowI,kBAAkBZ,GACtB,CAAC,MAAOzpQ,IAIP0tB,QAAQ04C,KAAKpmE,GACd,CACJ,IAEFk1I,OAAMl1I,IACP,MAAMqoQ,GAAcvtQ,OAA0B,YAC5CwvQ,qBAAsBtqQ,EAAE8jB,SACxB,KAGC4lP,EACT,CAyBOhqF,eAAe6qF,GACpB1C,EACA2C,GAEA,IACE,MACM58M,SADW+7M,MACH1F,YAAYwF,GAAY,aAChC5F,EAAcj2M,EAAGi2M,YAAY4F,UAC7B5F,EAAYjqJ,IAAI4wJ,EAAiBC,GAAW5C,UAC5Cj6M,EAAG+2D,IACV,CAAC,MAAO3kH,IACP,GAAIA,cAAao8P,GACf0J,GAAO1/L,KAAKpmE,GAAE8jB,aACT,CACL,MAAM4mP,EAAcrC,GAAcvtQ,OAA2B,WAC3DwvQ,qBAAkC,OAAXtqQ,SAAA,IAAAA,QAAA,EAAAA,GAAa8jB,UAEtCgiP,GAAO1/L,KAAKskM,EAAY5mP,QACzB,CACF,CACH,CAEA,SAAS2mP,GAAW5C,GAClB,MAAO,GAAGA,EAAIzsQ,QAAQysQ,EAAIhzO,QAAQ81O,OACpC,OCxEaC,GAyBX1wQ,WAAAA,CAA6BiJ,GAAA,KAASA,UAATA,EAT7B,KAAgB0nQ,iBAAiC,KAU/C,MAAMhD,EAAMh+P,KAAK1G,UAAUg+P,YAAY,OAAOlB,eAC9Cp2P,KAAKihQ,SAAW,IAAIC,GAAqBlD,GACzCh+P,KAAKmhQ,wBAA0BnhQ,KAAKihQ,SAASv/O,OAAOm1F,MAAK99F,IACvD/Y,KAAKghQ,iBAAmBjoP,EACjBA,KAWX,sBAAMslP,aACJ,IACE,MAMM+C,EANiBphQ,KAAK1G,UACzBg+P,YAAY,mBACZlB,eAI0ByF,wBACvBl4H,EAAO09H,KAEb,GADAx9O,QAAQtoB,IAAI,aAAmC,QAArBmzB,EAAA1uB,KAAKghQ,wBAAgB,IAAAtyO,OAAA,EAAAA,EAAE4yO,YACR,OAAd,QAAvBxtO,EAAA9zB,KAAKghQ,wBAAkB,IAAAltO,OAAA,EAAAA,EAAAwtO,cACzBthQ,KAAKghQ,uBAAyBhhQ,KAAKmhQ,wBAEM,OAAd,QAAvBptO,EAAA/zB,KAAKghQ,wBAAkB,IAAAjtO,OAAA,EAAAA,EAAAutO,aACzB,OAKJ,GACEthQ,KAAKghQ,iBAAiBO,wBAA0B59H,GAChD3jI,KAAKghQ,iBAAiBM,WAAWn/F,MAC/Bq/F,GAAuBA,EAAoB79H,OAASA,IAGtD,OAYF,OATE3jI,KAAKghQ,iBAAiBM,WAAW9rQ,KAAK,CAAEmuI,OAAMy9H,UAGhDphQ,KAAKghQ,iBAAiBM,WACpBthQ,KAAKghQ,iBAAiBM,WAAWh1O,QAAOk1O,IACtC,MAAMC,EAAc,IAAInnM,KAAKknM,EAAoB79H,MAAM5jH,UAEvD,OADYu6C,KAAKC,MACJknM,GA/EuB,MA+E6B,IAE9DzhQ,KAAKihQ,SAASS,UAAU1hQ,KAAKghQ,iBACrC,CAAC,MAAO7qQ,IACP8lQ,GAAO1/L,KAAKpmE,GACb,EAUH,yBAAMwrQ,SACJ,IAKE,GAJ8B,OAA1B3hQ,KAAKghQ,wBACDhhQ,KAAKmhQ,wBAI0B,OAAd,QAAvBzyO,EAAA1uB,KAAKghQ,wBAAkB,IAAAtyO,OAAA,EAAAA,EAAA4yO,aACqB,IAA5CthQ,KAAKghQ,iBAAiBM,WAAWnxQ,OAEjC,MAAO,GAET,MAAMwzI,EAAO09H,MAEP,iBAAEO,EAAgB,cAAEC,YAmC9BC,GAC0B,IAA1BC,EAAOjwQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAlJgB,KAyJvB,MAAM8vQ,EAA4C,GAElD,IAAIC,EAAgBC,EAAgB/nQ,QACpC,IAAK,MAAMynQ,KAAuBM,EAAiB,CAEjD,MAAME,EAAiBJ,EAAiBtvO,MACtCs+F,GAAMA,EAAGwwI,QAAUI,EAAoBJ,QAEzC,GAAKY,GAgBH,GAHAA,EAAeC,MAAMzsQ,KAAKgsQ,EAAoB79H,MAG1Cu+H,GAAWN,GAAoBG,EAAS,CAC1CC,EAAeC,MAAMl3M,MACrB,KACD,OAbD,GAJA62M,EAAiBpsQ,KAAK,CACpB4rQ,MAAOI,EAAoBJ,MAC3Ba,MAAO,CAACT,EAAoB79H,QAE1Bu+H,GAAWN,GAAoBG,EAAS,CAG1CH,EAAiB72M,MACjB,KACD,CAYH82M,EAAgBA,EAAc9nQ,MAAM,EACrC,CACD,MAAO,CACL6nQ,mBACAC,gBAEJ,CAhFkDM,CAC1CniQ,KAAKghQ,iBAAiBM,YAElBc,EAAe9Q,GACnBxlO,KAAKC,UAAU,CAAEX,QAAS,EAAGk2O,WAAYM,KAgB3C,OAbA5hQ,KAAKghQ,iBAAiBO,sBAAwB59H,EAC1Ck+H,EAAc1xQ,OAAS,GAEzB6P,KAAKghQ,iBAAiBM,WAAaO,QAI7B7hQ,KAAKihQ,SAASS,UAAU1hQ,KAAKghQ,oBAEnChhQ,KAAKghQ,iBAAiBM,WAAa,GAE9BthQ,KAAKihQ,SAASS,UAAU1hQ,KAAKghQ,mBAE7BoB,CACR,CAAC,MAAOjsQ,IAEP,OADA8lQ,GAAO1/L,KAAKpmE,IACL,EACR,GAIL,SAASkrQ,KAGP,OAFc,IAAI/mM,MAEL+9H,cAAcp9F,UAAU,EAAG,GAC1C,OAkDaimK,GAEX7wQ,WAAAA,CAAmB2tQ,GAAA,KAAGA,IAAHA,EACjBh+P,KAAKqiQ,wBAA0BriQ,KAAKsiQ,+BAEtC,kCAAMA,GACJ,mBrBpEF,IACE,MAA4B,kBAAdnC,SACf,CAAC,MAAOhqQ,IACP,OAAO,CACR,CACH,CqB+DSosQ,IrBrDA,IAAI9vJ,SAAQ,CAAC24B,EAASu2B,KAC3B,IACE,IAAI6gG,GAAoB,EACxB,MAAMC,EACJ,0DACIn3O,EAAU1nB,KAAKu8P,UAAU3+N,KAAKihO,GACpCn3O,EAAQo3O,UAAY,KAClBp3O,EAAQvS,OAAO8sL,QAEV28D,GACH5+P,KAAKu8P,UAAUwC,eAAeF,GAEhCr3H,GAAQ,EAAK,EAEf9/G,EAAQs3O,gBAAkB,KACxBJ,GAAW,CAAK,EAGlBl3O,EAAQ81I,QAAU,WAChBO,GAAoB,QAAbjzI,EAAApD,EAAQ3N,aAAK,IAAA+Q,OAAA,EAAAA,EAAEzU,UAAW,GAAG,CAEvC,CAAC,MAAO0D,GACPgkJ,EAAOhkJ,EACR,KqBkCIk5F,MAAK,KAAM,IACXw0B,OAAM,KAAM,IAMnB,UAAM3pH,GAEJ,SAD8B1hB,KAAKqiQ,wBAG5B,CACL,MAAMQ,QDzLLhtF,eACLmoF,GAEA,IACE,MACMj6M,SADW+7M,MACH1F,YAAYwF,IACpB7mP,QAAegrC,EAAGi2M,YAAY4F,IAAY1nP,IAAI0oP,GAAW5C,IAI/D,aADMj6M,EAAG+2D,KACF/hG,CACR,CAAC,MAAO5iB,IACP,GAAIA,cAAao8P,GACf0J,GAAO1/L,KAAKpmE,GAAE8jB,aACT,CACL,MAAM4mP,EAAcrC,GAAcvtQ,OAAyB,WACzDwvQ,qBAAkC,OAAXtqQ,SAAA,IAAAA,QAAA,EAAAA,GAAa8jB,UAEtCgiP,GAAO1/L,KAAKskM,EAAY5mP,QACzB,CACF,CACH,CCoKuC6oP,CAA4B9iQ,KAAKg+P,KAClE,OAAI,OAAA6E,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBvB,YACfuB,EAEA,CAAEvB,WAAY,GAExB,CARC,MAAO,CAAEA,WAAY,IAWzB,eAAMI,CAAUqB,SAEd,SAD8B/iQ,KAAKqiQ,wBAG5B,CACL,MAAMW,QAAiChjQ,KAAK0hB,OAC5C,OAAOg/O,GAA2B1gQ,KAAKg+P,IAAK,CAC1CuD,sBAEE,QADA7yO,EAAAq0O,EAAiBxB,6BACjB,IAAA7yO,EAAAA,EAAAs0O,EAAyBzB,sBAC3BD,WAAYyB,EAAiBzB,YAEhC,EAGH,SAAMz6P,CAAIk8P,SAER,SAD8B/iQ,KAAKqiQ,wBAG5B,CACL,MAAMW,QAAiChjQ,KAAK0hB,OAC5C,OAAOg/O,GAA2B1gQ,KAAKg+P,IAAK,CAC1CuD,sBAEE,QADA7yO,EAAAq0O,EAAiBxB,6BACjB,IAAA7yO,EAAAA,EAAAs0O,EAAyBzB,sBAC3BD,WAAY,IACP0B,EAAyB1B,cACzByB,EAAiBzB,aAGzB,GASC,SAAUY,GAAWJ,GAEzB,OAAOxQ,GAELxlO,KAAKC,UAAU,CAAEX,QAAS,EAAGk2O,WAAYQ,KACzC3xQ,MACJ,CCzRM,IAAiCiI,MCMhB,GDLrB6lQ,GACE,IAAIhzG,GACF,mBACA3xJ,GAAa,IAAIsiQ,GAA0BtiQ,IAAU,YAIzD2kQ,GACE,IAAIhzG,GACF,aACA3xJ,GAAa,IAAIynQ,GAAqBznQ,IAAU,YAMpDgmQ,GAAgBnD,GAAM8G,GAAS7qQ,IAE/BknQ,GAAgBnD,GAAM8G,GAAS,WAE/B3D,GAAgB,UAAW,IExBhB,MAAA4D,GAUX7yQ,WAAAA,CAAqBsU,GAAA,KAAGw+P,IAAHx+P,EAErBy+P,eAAAA,GACE,OAAmB,MAAZpjQ,KAAKmjQ,IAOdE,KAAAA,GACE,OAAIrjQ,KAAKojQ,kBACA,OAASpjQ,KAAKmjQ,IAEd,iBAIXG,OAAAA,CAAQ3+P,GACN,OAAOA,EAAUw+P,MAAQnjQ,KAAKmjQ,KA3BhBD,GAAAK,gBAAkB,IAAIL,GAAK,MAI3BA,GAAAM,mBAAqB,IAAIN,GAAK,0BAC9BA,GAAAO,YAAc,IAAIP,GAAK,mBACvBA,GAAAQ,UAAY,IAAIR,GAAK,aCVhC,IAAIzqP,GAAA,UCKX,MAAMgS,GAAY,IAAI0sN,GAAO,uBAwBb,SAAAwsB,GAASh/P,GACvB,GAAI8lB,GAAU2tO,UAAYlqB,GAASwpB,MAAO,SAAA37O,EAAAjqB,UAAA3B,OADHgG,EAAA,IAAAJ,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAA9lB,EAAA8lB,EAAA,GAAAnqB,UAAAmqB,GAErC,MAAMrb,EAAOzK,EAAI4nB,IAAI6lP,IACrBn5O,GAAUq3F,MAAM,cAAcrpG,QAAiB9T,OAAU/D,IAI7C,SAAAijQ,GAASl/P,GACvB,GAAI8lB,GAAU2tO,UAAYlqB,GAAS4pB,MAAO,SAAAh6D,EAAAhsM,UAAA3B,OADHgG,EAAA,IAAAJ,MAAA+nM,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA5nM,EAAA4nM,EAAA,GAAAjsM,UAAAisM,GAErC,MAAMn9L,EAAOzK,EAAI4nB,IAAI6lP,IACrBn5O,GAAU9M,MAAM,cAAclF,QAAiB9T,OAAU/D,IAO7C,SAAAkjQ,GAAQn/P,GACtB,GAAI8lB,GAAU2tO,UAAYlqB,GAAS2pB,KAAM,SAAAc,EAAA7mQ,UAAA3B,OADHgG,EAAA,IAAAJ,MAAA4iQ,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAziQ,EAAAyiQ,EAAA,GAAA9mQ,UAAA8mQ,GAEpC,MAAMh4P,EAAOzK,EAAI4nB,IAAI6lP,IACrBn5O,GAAU8xC,KAAK,cAAc9jD,QAAiB9T,OAAU/D,IAO5D,SAASgjQ,GAAYj/P,GACnB,GAAmB,iBAARA,EACT,OAAOA,EAEP,IACE,OC9DA,SAAqBA,GACzB,OAAOmnB,KAAKC,UAAUpnB,GADlB,CD8DkBA,GAClB,MAAOxO,IAEP,OAAOwO,GEtDG,SAAAo/P,KAGd,MAAM5tQ,EACJ,cAAcsiB,mCAJqB3mB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,uBAUrC,MALA+xQ,GAAS1tQ,GAKH,IAAIxE,MAAMwE,GASF,SAAA6tQ,GACdr/P,EACAxO,GAEKwO,GACHo/P,KA2BE,SAAUE,GACdt/P,EAEAxO,GAMA,OAAOwO,ECPF,MAAMyJ,GAOA,YAPA+D,GAUF,UAVEgsI,GAkBO,mBAlBP7nC,GA2BQ,oBA3BRN,GA8BA,YA9BAI,GA6CQ,oBA7CR1oG,GAmDM,kBAnDNpB,GAyDS,qBAzDT1K,GA+EU,sBA/EV2Q,GAwFF,UAxFEk3H,GAyGG,eAzGH9zI,GA4GI,gBA5GJ2c,GAkHD,WAlHC3iB,GA2HE,cAOT,MAAOu0Q,WAAuB3R,GAKlCliQ,WAAAA,CAIWsU,EAIAxO,GAET+jB,MAAMvV,EAAMxO,GANH,KAAIoI,KAAJoG,EAIA,KAAOsV,QAAP9jB,EAOT6J,KAAK9F,SAAW,IAAM,GAAG8F,KAAKzO,eAAeyO,KAAKzB,UAAUyB,KAAKia,WCtJxD,MAAAkqP,GAIX9zQ,WAAAA,CAAYsU,EAAsBxO,GAAA,KAAI+iP,KAAJ/iP,EAHlC,KAAIqnB,KAAG,QACP,KAAA06J,QAAU,IAAI95J,IAGZpe,KAAKk4K,QAAQ75J,IAAI,gBAAiB,UAAU1Z,MA4CnC,MAAAy/P,GACXzV,QAAAA,GACE,OAAOl8I,QAAQ24B,QAAsB,MAGvCi5H,eAAAA,GAAA,CAEA1qQ,KAAAA,CACEgL,EACAxO,GAGAwO,EAAW2/P,kBAAiB,IAAMnuQ,EAAe+sQ,GAAKK,mBAGxDgB,QAAAA,GAAA,EAOW,MAAAC,GAGXn0Q,WAAAA,CAAoBsU,GAAA,KAAKi5J,MAALj5J,EAOZ,KAAc8/P,eAA0C,KAEhE9V,QAAAA,GACE,OAAOl8I,QAAQ24B,QAAQprI,KAAK49J,OAG9BymG,eAAAA,GAAA,CAEA1qQ,KAAAA,CACEgL,EACAxO,GAMA6J,KAAKykQ,eAAiBtuQ,EAEtBwO,EAAW2/P,kBAAkB,IAAKnuQ,EAAe6J,KAAK49J,MAAMs7E,QAG9DqrB,QAAAA,GACEvkQ,KAAKykQ,eAAiB,MAKb,MAAAC,GAGXr0Q,WAAAA,CAAYsU,GAFJ,KAAI0+L,KAAgC,KAG1C1+L,EAAaoyP,QAAOpyP,IAClB3E,KAAKqjM,KAAO1+L,CAAA,IAIhBgqP,QAAAA,GACE,OAAK3uP,KAAKqjM,KAIHrjM,KAAKqjM,KAAKsrD,WAAW93I,MAAKlyG,GAC3BA,GACFq/P,GACmC,iBAA1Br/P,EAAUmrM,aAGZ,IAAIq0D,GACTx/P,EAAUmrM,YACV,IAAIozD,GAAKljQ,KAAKqjM,KAAMshE,YAGf,OAdFlyJ,QAAQ24B,QAAQ,MAmB3Bi5H,eAAAA,GAAA,CAEA1qQ,KAAAA,CACEgL,EACAxO,GAAA,CAGFouQ,QAAAA,GAAA,EAsKW,MAAAK,GAKXv0Q,WAAAA,CACmBsU,EACAxO,EACAyK,GAFA,KAAA+D,EAAAA,EACA,KAAApP,EAAAY,EACA,KAAA8Q,EAAArG,EAPnB,KAAI4c,KAAG,aACP,KAAA07N,KAAOgqB,GAAKO,YACZ,KAAmB5rP,EAAA,IAAIuG,IAYf1R,CAAAA,GACN,OAAI1M,KAAKiH,EACAjH,KAAKiH,IAEL,KAIP,WAAAixK,GACFl4K,KAAK6X,EAASwG,IAAI,kBAAmBre,KAAK2E,GAE1C,MAAMA,EAAuB3E,KAAK0M,IAQlC,OAPI/H,GACF3E,KAAK6X,EAASwG,IAAI,gBAAiB1Z,GAEjC3E,KAAKzK,GACPyK,KAAK6X,EAASwG,IAAI,iCAAkCre,KAAKzK,GAGpDyK,KAAK6X,GASH,MAAAgtP,GAGXx0Q,WAAAA,CACUsU,EACAxO,EACAyK,GAFA,KAAA+D,EAAAA,EACA,KAAApP,EAAAY,EACA,KAAA8Q,EAAArG,EAGV+tP,QAAAA,GACE,OAAOl8I,QAAQ24B,QACb,IAAIw5H,GACF5kQ,KAAK2E,EACL3E,KAAKzK,EACLyK,KAAKiH,IAKXtN,KAAAA,CACEgL,EACAxO,GAGAwO,EAAW2/P,kBAAiB,IAAMnuQ,EAAe+sQ,GAAKO,eAGxDc,QAAAA,GAAA,CAEAF,eAAAA,GAAA,EAGW,MAAAS,GAIXz0Q,WAAAA,CAAoBsU,GAAA,KAAK/L,MAAL+L,EAHpB,KAAI6Y,KAAG,WACP,KAAA06J,QAAU,IAAI95J,IAGRzZ,GAASA,EAAMxU,OAAS,GAC1B6P,KAAKk4K,QAAQ75J,IAAI,sBAAuBre,KAAKpH,QAqItC,MAAAmsQ,GAGX10Q,WAAAA,CACUsU,GAAA,KAAAwL,EAAAxL,EAHF,KAAQqgQ,SAAoC,KAKlDrgQ,EAAiBoyP,QAAOpyP,IACtB3E,KAAKglQ,SAAWrgQ,CAAA,IAIpBgqP,QAAAA,GACE,OAAK3uP,KAAKglQ,SAIHhlQ,KAAKglQ,SAASrW,WAAW93I,MAAKlyG,GAC/BA,GACFq/P,GAC+B,iBAAtBr/P,EAAYi5J,OAGd,IAAIknG,GAAcngQ,EAAYi5J,QAE9B,OAXFnrD,QAAQ24B,QAAQ,MAgB3Bi5H,eAAAA,GAAA,CAEA1qQ,KAAAA,CACEgL,EACAxO,GAAA,CAGFouQ,QAAAA,GAAA,EC7mBW,MAAAU,GAmBX50Q,WAAAA,CACWsU,EACAxO,EACAyK,EACAuN,EACA5Y,EACA6X,EACAnG,EACApD,EACAgU,GARA,KAAUqtP,WAAVvgQ,EACA,KAAKm8P,MAAL3qQ,EACA,KAAcgvQ,eAAdvkQ,EACA,KAAIkgM,KAAJ3yL,EACA,KAAGi3P,IAAH7vQ,EACA,KAAgB8vQ,iBAAhBj4P,EACA,KAAqBk4P,sBAArBr+P,EACA,KAAkBs+P,mBAAlB1hQ,EACA,KAAe2hQ,gBAAf3tP,GAWA,MAAA4tP,GAEXp1Q,WAAAA,CAAqBsU,EAAmBxO,GAAnB,KAASuvQ,UAAT/gQ,EACnB3E,KAAK2lQ,SAAWxvQ,GATiB,YAYnC,YAAAyvQ,GACE,OAAO,IAAIH,GAAW,GAAI,IAGxB,qBAAAI,GACF,MAjBiC,cAiB1B7lQ,KAAK2lQ,SAGdrC,OAAAA,CAAQ3+P,GACN,OACEA,aAAiB8gQ,IACjB9gQ,EAAM+gQ,YAAc1lQ,KAAK0lQ,WACzB/gQ,EAAMghQ,WAAa3lQ,KAAK2lQ,UCtD9B,MAAeG,GAKbz1Q,WAAAA,CAAYsU,EAAoBxO,EAAiByK,QAChC,IAAXzK,EACFA,EAAS,EACAA,EAASwO,EAASxU,QAC3B4zQ,UAGa,IAAXnjQ,EACFA,EAAS+D,EAASxU,OAASgG,EAClByK,EAAS+D,EAASxU,OAASgG,GACpC4tQ,KAEF/jQ,KAAKqvB,SAAW1qB,EAChB3E,KAAKpP,OAASuF,EACd6J,KAAKpC,IAAMgD,EAqBT,UAAAzQ,GACF,OAAO6P,KAAKpC,IAGd0lQ,OAAAA,CAAQ3+P,GACN,OAA4C,IAArCmhQ,GAASC,WAAW/lQ,KAAM2E,GAGnCwyH,KAAAA,CAAMxyH,GACJ,MAAMxO,EAAW6J,KAAKqvB,SAASt1B,MAAMiG,KAAKpP,OAAQoP,KAAK4nB,SAQvD,OAPIjjB,aAAsBmhQ,GACxBnhQ,EAAW8Y,SAAQ9Y,IACjBxO,EAASX,KAAKmP,EAAA,IAGhBxO,EAASX,KAAKmP,GAET3E,KAAKuuH,UAAUp4H,GAIhByxB,KAAAA,GACN,OAAO5nB,KAAKpP,OAASoP,KAAK7P,OAG5B61Q,QAAAA,CAASrhQ,GAMP,OALAA,OAAgB,IAATA,EAAqB,EAAIA,EAKzB3E,KAAKuuH,UACVvuH,KAAKqvB,SACLrvB,KAAKpP,OAAS+T,EACd3E,KAAK7P,OAASwU,GAIlBshQ,OAAAA,GAEE,OAAOjmQ,KAAKuuH,UAAUvuH,KAAKqvB,SAAUrvB,KAAKpP,OAAQoP,KAAK7P,OAAS,GAGlE+1Q,YAAAA,GAEE,OAAOlmQ,KAAKqvB,SAASrvB,KAAKpP,QAG5Bu1Q,WAAAA,GAEE,OAAOnmQ,KAAKkY,IAAIlY,KAAK7P,OAAS,GAGhC+nB,GAAAA,CAAIvT,GAEF,OAAO3E,KAAKqvB,SAASrvB,KAAKpP,OAAS+T,GAGrCyhQ,OAAAA,GACE,OAAuB,IAAhBpmQ,KAAK7P,OAGdk2Q,UAAAA,CAAW1hQ,GACT,GAAIA,EAAMxU,OAAS6P,KAAK7P,OACtB,OAAO,EAGT,IAAK,IAAIgG,EAAI,EAAGA,EAAI6J,KAAK7P,OAAQgG,IAC/B,GAAI6J,KAAKkY,IAAI/hB,KAAOwO,EAAMuT,IAAI/hB,GAC5B,OAAO,EAIX,OAAO,EAGTmwQ,mBAAAA,CAAoB3hQ,GAClB,GAAI3E,KAAK7P,OAAS,IAAMwU,EAAexU,OACrC,OAAO,EAGT,IAAK,IAAIgG,EAAI,EAAGA,EAAI6J,KAAK7P,OAAQgG,IAC/B,GAAI6J,KAAKkY,IAAI/hB,KAAOwO,EAAeuT,IAAI/hB,GACrC,OAAO,EAIX,OAAO,EAGTsnB,OAAAA,CAAQ9Y,GACN,IAAK,IAAIxO,EAAI6J,KAAKpP,OAAQgQ,EAAMZ,KAAK4nB,QAASzxB,EAAIyK,EAAKzK,IACrDwO,EAAG3E,KAAKqvB,SAASl5B,IAIrBuL,OAAAA,GACE,OAAO1B,KAAKqvB,SAASt1B,MAAMiG,KAAKpP,OAAQoP,KAAK4nB,SAG/C,iBAAAm+O,CACEphQ,EACAxO,GAEA,MAAMyK,EAAM1O,KAAK6O,IAAI4D,EAAGxU,OAAQgG,EAAGhG,QACnC,IAAK,IAAIge,EAAI,EAAGA,EAAIvN,EAAKuN,IAAK,CAC5B,MAAMvN,EAAO+D,EAAGuT,IAAI/J,GACd5Y,EAAQY,EAAG+hB,IAAI/J,GACrB,GAAIvN,EAAOrL,EACT,OAAQ,EAEV,GAAIqL,EAAOrL,EACT,OAAO,EAGX,OAAIoP,EAAGxU,OAASgG,EAAGhG,QACT,EAENwU,EAAGxU,OAASgG,EAAGhG,OACV,EAEF,GAUL,MAAOo2Q,WAAqBT,GACtBv3I,SAAAA,CACR5pH,EACAxO,EACAyK,GAEA,OAAO,IAAI2lQ,GAAa5hQ,EAAUxO,EAAQyK,GAG5C4lQ,eAAAA,GAKE,OAAOxmQ,KAAK0B,UAAUpD,KAAK,KAG7BpE,QAAAA,GACE,OAAO8F,KAAKwmQ,kBAQdC,kBAAAA,GACE,OAAOzmQ,KAAK0B,UAAUqc,IAAI65F,oBAAoBt5G,KAAK,KAQrD,iBAAqBghB,GAKnB,MAAMnpB,EAAqB,WAAA0iQ,EAAA/mQ,UAAA3B,OALRwU,EAAA,IAAA5O,MAAA8iQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAn0P,EAAAm0P,GAAAhnQ,UAAAgnQ,GAMnB,IAAK,MAAMl4P,KAAQ+D,EAAgB,CACjC,GAAI/D,EAAKpC,QAAQ,OAAS,EACxB,MAAM,IAAI0lQ,GACR/lH,GACA,oBAAoBv9I,0CAIxBzK,EAASX,QAAQoL,EAAKhN,MAAM,KAAK04B,QAAO3nB,GAAWA,EAAQxU,OAAS,KAGtE,OAAO,IAAIo2Q,GAAapwQ,GAG1B,gBAAAuwQ,GACE,OAAO,IAAIH,GAAa,KAI5B,MAAMn0K,GAAmB,2BAMnB,MAAOu0K,WAAkBb,GACnBv3I,SAAAA,CACR5pH,EACAxO,EACAyK,GAEA,OAAO,IAAI+lQ,GAAUhiQ,EAAUxO,EAAQyK,GAOjC,wBAAyBgmQ,CAAAjiQ,GAC/B,OAAOytF,GAAiBp6D,KAAKrzB,GAG/B6hQ,eAAAA,GACE,OAAOxmQ,KAAK0B,UACTqc,KAAIpZ,IACHA,EAAMA,EAAIpD,QAAQ,MAAO,QAAQA,QAAQ,KAAM,OAC1ColQ,GAAUC,kBAAkBjiQ,KAC/BA,EAAM,IAAMA,EAAM,KAEbA,KAERrG,KAAK,KAGVpE,QAAAA,GACE,OAAO8F,KAAKwmQ,kBAMdK,UAAAA,GACE,OAAuB,IAAhB7mQ,KAAK7P,QAvRiB,aAuRD6P,KAAKkY,IAAI,GAMvC,eAAA4uP,GACE,OAAO,IAAIH,GAAU,CA9RQ,aA2S/B,uBAAwBI,CAAApiQ,GACtB,MAAMxO,EAAqB,GAC3B,IAAIyK,EAAU,GACVuN,EAAI,EAER,MAAM64P,EAAoBA,KACxB,GAAuB,IAAnBpmQ,EAAQzQ,OACV,MAAM,IAAI+zQ,GACR/lH,GACA,uBAAuBx5I,8EAI3BxO,EAASX,KAAKoL,GACdA,EAAU,IAGZ,IAAIrL,GAAc,EAElB,KAAO4Y,EAAIxJ,EAAKxU,QAAQ,CACtB,MAAMgG,EAAIwO,EAAKwJ,GACf,GAAU,OAANhY,EAAY,CACd,GAAIgY,EAAI,IAAMxJ,EAAKxU,OACjB,MAAM,IAAI+zQ,GACR/lH,GACA,uCAAyCx5I,GAG7C,MAAMxO,EAAOwO,EAAKwJ,EAAI,GACtB,GAAe,OAAThY,GAA0B,MAATA,GAAyB,MAATA,EACrC,MAAM,IAAI+tQ,GACR/lH,GACA,qCAAuCx5I,GAG3C/D,GAAWzK,EACXgY,GAAK,MACU,MAANhY,GACTZ,GAAeA,EACf4Y,KACe,MAANhY,GAAcZ,GAIvBqL,GAAWzK,EACXgY,MAJA64P,IACA74P,KAQJ,GAFA64P,IAEIzxQ,EACF,MAAM,IAAI2uQ,GACR/lH,GACA,2BAA6Bx5I,GAIjC,OAAO,IAAIgiQ,GAAUxwQ,GAGvB,gBAAAuwQ,GACE,OAAO,IAAIC,GAAU,KCpWZ,MAAAM,GACX52Q,WAAAA,CAAqBsU,GAAA,KAAIg4B,KAAJh4B,EAQrB,eAAgBuiQ,CAAAviQ,GACd,OAAO,IAAIsiQ,GAAYV,GAAajnP,WAAW3a,IAGjD,eAAgBwiQ,CAAAxiQ,GACd,OAAO,IAAIsiQ,GAAYV,GAAajnP,WAAW3a,GAAMqhQ,SAAS,IAGhE,YAAAJ,GACE,OAAO,IAAIqB,GAAYV,GAAaG,aAGlC,mBAAAU,GAKF,OAAOpnQ,KAAK28B,KAAKspO,UAAUE,cAI7BkB,eAAAA,CAAgB1iQ,GACd,OACE3E,KAAK28B,KAAKxsC,QAAU,GACpB6P,KAAK28B,KAAKzkB,IAAIlY,KAAK28B,KAAKxsC,OAAS,KAAOwU,EAK5C2iQ,kBAAAA,GAKE,OAAOtnQ,KAAK28B,KAAKzkB,IAAIlY,KAAK28B,KAAKxsC,OAAS,GAI1Co3Q,iBAAAA,GACE,OAAOvnQ,KAAK28B,KAAKspO,UAGnB3C,OAAAA,CAAQ3+P,GACN,OACY,OAAVA,GAAqE,IAAnD4hQ,GAAaR,WAAW/lQ,KAAK28B,KAAMh4B,EAAMg4B,MAI/DziC,QAAAA,GACE,OAAO8F,KAAK28B,KAAKziC,WAGnB,iBAAA6rQ,CAAkBphQ,EAAiBxO,GACjC,OAAOowQ,GAAaR,WAAWphQ,EAAGg4B,KAAMxmC,EAAGwmC,MAG7C,oBAAqB6qO,CAAA7iQ,GACnB,OAAOA,EAAKxU,OAAS,GAAM,EAS7B,mBAAoBs3Q,CAAA9iQ,GAClB,OAAO,IAAIsiQ,GAAY,IAAIV,GAAa5hQ,EAAS5K,WCnErC,SAAA2tQ,GACd/iQ,EACAxO,EACAyK,GAEA,IAAKA,EACH,MAAM,IAAIsjQ,GACR/lH,GACA,YAAYx5I,sCAAiDxO,MAwC7D,SAAUwxQ,GAAuBhjQ,GACrC,GAAIsiQ,GAAYO,cAAc7iQ,GAC5B,MAAM,IAAIu/P,GACR/lH,GACA,gGAAgGx5I,SAAYA,EAAKxU,WAmBjH,SAAUy3Q,GAAiBjjQ,GAC/B,QAAc,IAAVA,EACF,MAAO,YACF,GAAc,OAAVA,EACT,MAAO,OACF,GAAqB,iBAAVA,EAIhB,OAHIA,EAAMxU,OAAS,KACjBwU,EAAQ,GAAGA,EAAMs2F,UAAU,EAAG,UAEzBnvE,KAAKC,UAAUpnB,GACjB,GAAqB,iBAAVA,GAAuC,kBAAVA,EAC7C,MAAO,GAAKA,EACP,GAAqB,iBAAVA,EAAoB,CACpC,GAAIA,aAAiB5O,MACnB,MAAO,WACF,CACL,MAAMI,EAeN,SAAiCwO,GACrC,OAAIA,EAAMtU,YACDsU,EAAMtU,YAAYkB,KAEpB,KAJH,CAfgDoT,GAChD,OAAIxO,EACK,YAAYA,WAEZ,aAGN,MAAqB,mBAAVwO,EACT,aApGPo/P,KA0HE,SAAU8D,GACdljQ,EAEAxO,GAQA,GANI,cAAewO,IAGjBA,EAAOA,EAAYowP,aAGfpwP,aAAexO,GAAc,CACjC,GAAIA,EAAY5E,OAASoT,EAAItU,YAAYkB,KACvC,MAAM,IAAI2yQ,GACR/lH,GACA,uGAGG,CACL,MAAMv9I,EAAcgnQ,GAAiBjjQ,GACrC,MAAM,IAAIu/P,GACR/lH,GACA,kBAAkBhoJ,EAAY5E,sBAAsBqP,MAI1D,OAAO+D,EAGO,SAAAmjQ,GAAuBnjQ,EAAsBxO,GAC3D,GAAIA,GAAK,EACP,MAAM,IAAI+tQ,GACR/lH,GACA,YAAYx5I,+CAA0DxO,MCzHtE,SAAU4xQ,GACdpjQ,GAEA,MAAMxO,EAAwC,GAM9C,YAAO,IAJHwO,EAAQqjQ,iBACV7xQ,EAAM6xQ,eAAiBrjQ,EAAQqjQ,gBAG1B7xQ,EClDT,IAAIsW,GAAmC,KCOjC,SAAUw7P,GAAkBtjQ,GAChC,OAAO,MAAAA,EAIH,SAAUujQ,GAAevjQ,GAG7B,OAAiB,IAAVA,GAAe,EAAIA,IAAA,ICH5B,MAOMoxG,GAAkC,CAExCoyJ,kBAA4C,WAC5CC,OAAiC,SACjCC,SAAmC,WACnCC,oBAA8C,uBCd9C,IAAK34P,GAALyC,GA0MM,SAAUm2P,GAAsB5jQ,GACpC,QAAI,IAAAA,EAEF,OADAk/P,GAAS,YAAa,4BACf1xP,GAST,OAAQxN,GACN,KAAK,IACH,MVjKA,KUmKF,KAAK,IACH,OAAO/C,GAKT,KAAK,IACH,OAAO8L,GAET,KAAK,IACH,OAAO0oG,GAET,KAAK,IACH,OAAOJ,GAET,KAAK,IACH,OAAOzjG,GAIT,KAAK,IACH,OAAOk3H,GAET,KAAK,IACH,OAAOn9H,GAET,KAAK,IACH,OAAO8B,GAET,KAAK,IACH,OAAO+D,GAKT,KAAK,IACH,OAAOxc,GAET,KAAK,IACH,OAAOhG,GAET,KAAK,IACH,OAAO2mH,GAET,QACE,OAAI3xG,GAAU,KAAOA,EAAS,IVhN9B,KUmNIA,GAAU,KAAOA,EAAS,IACrB/C,GAEL+C,GAAU,KAAOA,EAAS,IACrB2N,GAEFH,KAhRbC,GAAKzC,KAAAA,GAkBJ,KAjBCyC,GAAAo2P,GAAA,QACAp2P,GAAAA,GAAAq2P,UAAA,eACAr2P,GAAAA,GAAAs2P,QAAA,aACAt2P,GAAAA,GAAAu2P,iBAAA,sBACAv2P,GAAAA,GAAAw2P,kBAAA,uBACAx2P,GAAAA,GAAAy2P,UAAA,eACAz2P,GAAAA,GAAA02P,eAAA,oBACA12P,GAAAA,GAAA22P,kBAAA,uBACA32P,GAAAA,GAAAmxP,gBAAA,sBACAnxP,GAAAA,GAAA42P,mBAAA,wBACA52P,GAAAA,GAAA62P,oBAAA,yBACA72P,GAAAA,GAAA82P,QAAA,cACA92P,GAAAA,GAAA+2P,aAAA,mBACA/2P,GAAAA,GAAAg3P,cAAA,oBACAh3P,GAAAA,GAAAwkP,SAAA,eACAxkP,GAAAA,GAAAi3P,YAAA,kBACAj3P,GAAAA,GAAAk3P,UAAA,gBCnBI,MAAOC,WF6BS,MAYpBl5Q,WAAAA,CAA6BsU,GAAA,KAAY6kQ,aAAZ7kQ,EAC3B3E,KAAKklQ,WAAavgQ,EAAaugQ,WAC/B,MAAM/uQ,EAAQwO,EAAaygQ,IAAM,QAAU,OACrCxkQ,EAAYg3G,mBAAmB53G,KAAKklQ,WAAWQ,WAC/Cv3P,EAAaypG,mBAAmB53G,KAAKklQ,WAAWS,UACtD3lQ,KAAKoO,EAAUjY,EAAQ,MAAQwO,EAAam8L,KAC5C9gM,KAAKmS,EAAe,YAAYvR,eAAuBuN,IACvDnO,KAAKm+I,EPtB4B,cOuB/Bn+I,KAAKklQ,WAAWS,SACZ,cAAc/kQ,IACd,cAAcA,iBAAyBuN,IAhB3C,KAAAmoG,GAGF,OAAO,EAgBTN,CAAAA,CACErxG,EACAxO,EACAyK,EACAuN,EACA5Y,GAEA,MAAM6X,GFpCkB,OAAtBX,GACFA,GApBgB,UAGGva,KAAKuc,MADN,WAC0Bvc,KAAKymC,UAmBjDlsB,KAEK,KAAOA,GAAkBvS,SAAS,KEgCjC+M,EAAMjH,KAAK2+I,EAAQh6I,EAASxO,EAAKswQ,sBACvC9C,GA3DY,iBA2DM,gBAAgBh/P,MAAYyI,KAAanG,EAAKrG,GAEhE,MAAMiD,EAAqB,CACzB,+BAAgC7D,KAAKmS,EACrC,wBAAyBnS,KAAKm+I,GAIhC,OAFAn+I,KAAKo2G,EAAwBvyG,EAASsK,EAAW5Y,GAE1CyK,KAAK0N,EAA6B/I,EAASsC,EAAKpD,EAASjD,GAAKi2G,MACnE1gH,IACEwtQ,GArEQ,iBAqEU,iBAAiBh/P,MAAYyI,MAAcjX,GACtDA,KAERA,IAUC,MATA2tQ,GAzEQ,iBA2EN,QAAQn/P,MAAYyI,wBACpBjX,EACA,QACA8Q,EACA,WACArG,GAEIzK,CAAA,IAKZoc,CAAAA,CACE5N,EACAxO,EACAyK,EACAuN,EACA5Y,EACA6X,GAIA,OAAOpN,KAAKg2G,EACVrxG,EACAxO,EACAyK,EACAuN,EACA5Y,GAcM6gH,CAAAA,CACRzxG,EACAxO,EACAyK,GAEA+D,EAAQ,qBAtGH,eAAiB8T,GA4GtB9T,EAAQ,gBAAkB,aAEtB3E,KAAKwpQ,aAAa1I,QACpBn8P,EAAQ,oBAAsB3E,KAAKwpQ,aAAa1I,OAG9C3qQ,GACFA,EAAU+hL,QAAQz6J,SAAQ,CAACtnB,EAAOyK,IAAS+D,EAAQ/D,GAAOzK,IAExDyK,GACFA,EAAcs3K,QAAQz6J,SAAQ,CAACtnB,EAAOyK,IAAS+D,EAAQ/D,GAAOzK,IAc1DwoJ,CAAAA,CAAQh6I,EAAiBxO,GAC/B,MAAMyK,EAAam1G,GAAqBpxG,GAKxC,MAAO,GAAG3E,KAAKoO,QAA8BjY,KAAQyK,IAQvD6oQ,SAAAA,MEpKAp5Q,WAAAA,CACEsU,EACiBxO,GAEjB+jB,MAAMvV,GAFW,KAAA8kI,EAAAtzI,EAKnBR,CAAAA,CACEgP,EACAxO,GAEA,MAAM,IAAIxE,MAAM,oCAGR,OACR+b,CAAA/I,EACAxO,EACAyK,EACAuN,SAEA,MAAMf,EAAc0e,KAAKC,UAAU5d,GACnC,IAAIlH,EAEJ,IACEA,QAAiBjH,KAAKypI,EAAUtzI,EAAK,CACnCo1B,OAAQ,OACR2sJ,QAAAt3K,EACA2tC,KAAMnhC,IAER,MAAOzI,GACP,MAAMxO,EAAMwO,EACZ,MAAM,IAAIu/P,GACRqE,GAAsBpyQ,EAAIorC,QAC1B,8BAAgCprC,EAAI24K,YAIxC,IAAK7nK,EAAS85I,GAAI,CAChB,IAAIp8I,QAAsBsC,EAAS2oK,OAC/B75K,MAAMC,QAAQ2O,KAChBA,EAAgBA,EAAc,IAEhC,MAAMxO,EAAqC,QAAtBZ,EAAA,MAAAoP,OAAA,EAAAA,EAAegZ,aAAO,IAAApoB,OAAA,EAAAA,EAAA0kB,QAC3C,MAAM,IAAIiqP,GACRqE,GAAsBthQ,EAASs6B,QAC/B,8BAA8B,MAAAprC,EAAAA,EAAgB8Q,EAAS6nK,cAI3D,OAAO7nK,EAAS2oK,QCrBJ,SAAA85F,GAAuB/kQ,EAASxO,GAC9C,OAAIwO,EAAOxO,GACD,EAENwO,EAAOxO,EACF,EAEF,EAYO,SAAAwzQ,GACdhlQ,EACAxO,EACAyK,GAEA,OAAI+D,EAAKxU,SAAWgG,EAAMhG,QAGnBwU,EAAK20J,OAAO,CAAA30J,EAAOwJ,IAAUvN,EAAW+D,EAAOxO,EAAMgY,MClExD,SAAUy7P,GAAWjlQ,GACzB,IAAIxO,EAAQ,EACZ,IAAK,MAAMyK,KAAO+D,EACZ3T,OAAOE,UAAU2G,eAAeC,KAAK6M,EAAK/D,IAC5CzK,IAGJ,OAAOA,EAGO,SAAAsnB,GACd9Y,EACAxO,GAEA,IAAK,MAAMyK,KAAO+D,EACZ3T,OAAOE,UAAU2G,eAAeC,KAAK6M,EAAK/D,IAC5CzK,EAAGyK,EAAK+D,EAAI/D,ICnBZ,MAAOipQ,WAA0Bl4Q,MAAvCtB,WAAAA,GACW,SAAAyB,WAAA,KAAIP,KAAG,qBCSL,MAAAu4Q,GAGXz5Q,WAAAA,CAAqCsU,GAAA,KAAYolQ,aAAZplQ,EAErC,uBAAwBqlQ,CAAArlQ,GACtB,MAAMxO,EChBJ,SAAuBwO,GAC3B,IACE,OAAO8pP,KAAK9pP,GACZ,MAAOA,GAIP,KAA4B,oBAAjBqkK,cAAgCrkK,aAAaqkK,aAChD,IAAI6gG,GAAkB,0BAA4BllQ,GAElDA,GAVN,CDgBgCA,GAClC,OAAO,IAAImlQ,GAAW3zQ,GAGxB,qBAAsB8zQ,CAAAtlQ,GAGpB,MAAMxO,EAyCJ,SAAqCwO,GACzC,IAAIxO,EAAe,GACnB,IAAK,IAAIyK,EAAI,EAAGA,EAAI+D,EAAMxU,SAAUyQ,EAClCzK,GAAgBiE,OAAOkpB,aAAa3e,EAAM/D,IAE5C,OAAOzK,EALH,CAzC8CwO,GAChD,OAAO,IAAImlQ,GAAW3zQ,GAGxB,CAACsM,OAAOi1B,YACN,IAAI/yB,EAAI,EACR,MAAO,CACLuS,KAAMA,IACAvS,EAAI3E,KAAK+pQ,aAAa55Q,OACjB,CAAEyI,MAAOoH,KAAK+pQ,aAAa5uQ,WAAWwJ,KAAMm2G,MAAM,GAElD,CAAEliH,WAAO,EAAWkiH,MAAM,IAMzCovJ,QAAAA,GACE,OCzBE,SAAuBvlQ,GAC3B,OAAOyyG,KAAKzyG,EDwBH,CCzBL,CDyBkB3E,KAAK+pQ,cAG3BI,YAAAA,GACE,OA8BE,SAAqCxlQ,GACzC,MAAMxO,EAAS,IAAIvG,WAAW+U,EAAaxU,QAC3C,IAAK,IAAIyQ,EAAI,EAAGA,EAAI+D,EAAaxU,OAAQyQ,IACvCzK,EAAOyK,GAAK+D,EAAaxJ,WAAWyF,GAEtC,OAAOzK,EALH,CA9BgC6J,KAAK+pQ,cAGzCK,mBAAAA,GACE,OAAkC,EAA3BpqQ,KAAK+pQ,aAAa55Q,OAG3Bk6Q,SAAAA,CAAU1lQ,GACR,OAAO+kQ,GAAoB1pQ,KAAK+pQ,aAAcplQ,EAAMolQ,cAGtDzG,OAAAA,CAAQ3+P,GACN,OAAO3E,KAAK+pQ,eAAiBplQ,EAAMolQ,cA9CrBD,GAAAQ,kBAAoB,IAAIR,GAAW,IETrD,MAAMp1G,GAAwB,IAAIzL,OAChC,iDAOI,SAAUshH,GAAmB5lQ,GASjC,GAM8Bq/P,KAXjBr/P,GAKO,iBAATA,EAAmB,CAK5B,IAAIxO,EAAQ,EACZ,MAAMyK,EAAW8zJ,GAAsBtC,KAAKztJ,GAE5C,GAF4Bq/P,KACfpjQ,GACTA,EAAS,GAAI,CAEf,IAAI+D,EAAU/D,EAAS,GACvB+D,GAAWA,EAAU,aAAawd,OAAO,EAAG,GAC5ChsB,EAAQ3F,OAAOmU,GAIjB,MAAMwJ,EAAa,IAAImsD,KAAK31D,GAG5B,MAAO,CAAE6lQ,QAFOt4Q,KAAKC,MAAMgc,EAAWu5M,UAAY,KAEhC+iD,MAAAt0Q,GAOlB,MAAO,CAAEq0Q,QAFOE,GAAgB/lQ,EAAK6lQ,SAEnBC,MADJC,GAAgB/lQ,EAAK8lQ,QASjC,SAAUC,GAAgB/lQ,GAE9B,MAAqB,iBAAVA,EACFA,EACmB,iBAAVA,EACTnU,OAAOmU,GAEP,EAKL,SAAUgmQ,GAAoBhmQ,GAClC,MAAoB,iBAATA,EACFmlQ,GAAWE,iBAAiBrlQ,GAE5BmlQ,GAAWG,eAAetlQ,GCjDxB,MAAAimQ,GA8CXv6Q,WAAAA,CAIWsU,EAIAxO,GAET,GANS,KAAOq0Q,QAAP7lQ,EAIA,KAAWkmQ,YAAX10Q,EAELA,EAAc,EAChB,MAAM,IAAI+tQ,GACR/lH,GACA,uCAAyChoJ,GAG7C,GAAIA,GAAe,IACjB,MAAM,IAAI+tQ,GACR/lH,GACA,uCAAyChoJ,GAG7C,GAAIwO,GAvFY,YAwFd,MAAM,IAAIu/P,GACR/lH,GACA,mCAAqCx5I,GAIzC,GAAIA,GAAW,aACb,MAAM,IAAIu/P,GACR/lH,GACA,mCAAqCx5I,GAxE3C,UAAA41D,GACE,OAAOqwM,GAAUE,WAAWxwM,KAAKC,OAUnC,eAAgBwwM,CAAApmQ,GACd,OAAOimQ,GAAUE,WAAWnmQ,EAAK+iN,WAWnC,iBAAkBojD,CAAAnmQ,GAChB,MAAMxO,EAAUjE,KAAKC,MAAMwS,EAAe,KACpC/D,EAAQ1O,KAAKC,MA/CH,KA+CUwS,EAAyB,IAAVxO,IACzC,OAAO,IAAIy0Q,GAAUz0Q,EAASyK,GA2DhCoqQ,MAAAA,GACE,OAAO,IAAI1wM,KAAKt6D,KAAKirQ,YAUvBA,QAAAA,GACE,OAAsB,IAAfjrQ,KAAKwqQ,QAAiBxqQ,KAAK6qQ,YAvHlB,IA0HlBK,UAAAA,CAAWvmQ,GACT,OAAI3E,KAAKwqQ,UAAY7lQ,EAAM6lQ,QAClBd,GAAoB1pQ,KAAK6qQ,YAAalmQ,EAAMkmQ,aAE9CnB,GAAoB1pQ,KAAKwqQ,QAAS7lQ,EAAM6lQ,SASjDlH,OAAAA,CAAQ3+P,GACN,OACEA,EAAM6lQ,UAAYxqQ,KAAKwqQ,SAAW7lQ,EAAMkmQ,cAAgB7qQ,KAAK6qQ,YAKjE3wQ,QAAAA,GACE,MACE,qBACA8F,KAAKwqQ,QACL,iBACAxqQ,KAAK6qQ,YACL,IAKJrnQ,MAAAA,GACE,MAAO,CAAEgnQ,QAASxqQ,KAAKwqQ,QAASK,YAAa7qQ,KAAK6qQ,aAOpD9qP,OAAAA,GAQE,MAAMpb,EAAkB3E,KAAKwqQ,UA5Kb,YAiLhB,OAFyBpwQ,OAAOuK,GAAiBzF,SAAS,GAAI,KAEpC,IADG9E,OAAO4F,KAAK6qQ,aAAa3rQ,SAAS,EAAG,MCpJhE,SAAUisQ,GAAkBxmQ,WAEhC,MAPgC,sBAMwB,QAA3C/D,IAAgB,QAAfzK,EAAA,MAAAwO,OAAA,EAAAA,EAAOymQ,gBAAA,IAAQj1Q,OAAA,EAAAA,EAAEN,SAAU,IAAYw1Q,gBAAA,IAAGzqQ,OAAA,EAAAA,EAAA+gG,aAiDpD,SAAU2pK,GAAiB3mQ,GAC/B,MAAMxO,EAAgBwO,EAAMymQ,SAAUv1Q,OAA0B01Q,mBAEhE,OAAIJ,GAAkBh1Q,GACbm1Q,GAAiBn1Q,GAEnBA,EAMH,SAAUq1Q,GAAkB7mQ,GAChC,MAAMxO,EAAiBo0Q,GACrB5lQ,EAAMymQ,SAAUv1Q,OAA4B41Q,qBAAEC,gBAEhD,OAAO,IAAId,GAAUz0Q,EAAeq0Q,QAASr0Q,EAAes0Q,OCvEvD,MAEM94J,GACD,CACR97G,OAAQ,CACNw1Q,SAAY,CAAE1pK,YAJG,aAiBjB,SAAUgqK,GAAUhnQ,GACxB,MAAI,cAAeA,EACU,EAClB,iBAAkBA,EACG,EACrB,iBAAkBA,GAAS,gBAAiBA,EACxB,EACpB,mBAAoBA,EACG,EACvB,gBAAiBA,EACG,EACpB,eAAgBA,EACE,EAClB,mBAAoBA,EACH,EACjB,kBAAmBA,EACG,EACtB,eAAgBA,EACG,EACnB,aAAcA,EACnBwmQ,GAAkBxmQ,GACkB,EA4jBtC,SAAqBA,GACzB,MAnmBqB,eAomBhBA,EAAMymQ,UAAY,CAAC,GAAGv1Q,QAAU,IAAcw1Q,UAAK,CAAC,GAAG1pK,YAFxD,CA3jBoBh9F,GACM,iBAyhB1B,SAAwBA,WAE5B,MA1jBmC,gBAyjBqB,QAA3C/D,IAAgB,QAAfzK,EAAA,MAAAwO,OAAA,EAAAA,EAAOymQ,gBAAA,IAAQj1Q,OAAA,EAAAA,EAAEN,SAAU,IAAYw1Q,gBAAA,IAAGzqQ,OAAA,EAAAA,EAAA+gG,aADpD,CAxhBuBh9F,GACM,GAEF,GA5DjCo/P,KAmEgB,SAAA6H,GAAYjnQ,EAAaxO,GACvC,GAAIwO,IAASxO,EACX,OAAO,EAGT,MAAMyK,EAAW+qQ,GAAUhnQ,GAE3B,GAAI/D,IADc+qQ,GAAUx1Q,GAE1B,OAAO,EAGT,OAAQyK,GACN,KAAK,EA2BL,KAAK,iBACH,OAAO,EA1BT,KAAK,EACH,OAAO+D,EAAKknQ,eAAiB11Q,EAAM01Q,aACrC,KAAK,EACH,OAAOL,GAAkB7mQ,GAAM2+P,QAAQkI,GAAkBr1Q,IAC3D,KAAK,EACH,OA2BN,SAAyBwO,EAAaxO,GACpC,GACiC,iBAAxBwO,EAAK+mQ,gBACoB,iBAAzBv1Q,EAAMu1Q,gBACb/mQ,EAAK+mQ,eAAev7Q,SAAWgG,EAAMu1Q,eAAev7Q,OAGpD,OAAOwU,EAAK+mQ,iBAAmBv1Q,EAAMu1Q,eAGvC,MAAM9qQ,EAAgB2pQ,GAAmB5lQ,EAAK+mQ,gBACxCv9P,EAAiBo8P,GAAmBp0Q,EAAMu1Q,gBAChD,OACE9qQ,EAAc4pQ,UAAYr8P,EAAeq8P,SACzC5pQ,EAAc6pQ,QAAUt8P,EAAes8P,KAzC9B,CA2Bb,CA3B6B9lQ,EAAMxO,GAC/B,KAAK,EACH,OAAOwO,EAAKg9F,cAAgBxrG,EAAMwrG,YACpC,KAAK,EACH,OAkDN,SAAoBh9F,EAAaxO,GAC/B,OAAOw0Q,GAAoBhmQ,EAAKmnQ,YAAaxI,QAC3CqH,GAAoBx0Q,EAAM21Q,YApDjB,CAkDb,CAlDwBnnQ,EAAMxO,GAC1B,KAAK,EACH,OAAOwO,EAAKonQ,iBAAmB51Q,EAAM41Q,eACvC,KAAK,EACH,OAqCN,SAAwBpnQ,EAAaxO,GACnC,OACEu0Q,GAAgB/lQ,EAAKqnQ,cAAeC,YAClCvB,GAAgBv0Q,EAAM61Q,cAAeC,WACvCvB,GAAgB/lQ,EAAKqnQ,cAAeE,aAClCxB,GAAgBv0Q,EAAM61Q,cAAeE,UA1C9B,CAqCb,CArC4BvnQ,EAAMxO,GAC9B,KAAK,EACH,OAkDU,SAAawO,EAAaxO,GACxC,GAAI,iBAAkBwO,GAAQ,iBAAkBxO,EAC9C,OACEu0Q,GAAgB/lQ,EAAKwnQ,gBAAkBzB,GAAgBv0Q,EAAMg2Q,cAE1D,GAAI,gBAAiBxnQ,GAAQ,gBAAiBxO,EAAO,CAC1D,MAAMyK,EAAK8pQ,GAAgB/lQ,EAAKynQ,aAC1Bj+P,EAAKu8P,GAAgBv0Q,EAAMi2Q,aAEjC,OAAIxrQ,IAAOuN,EACF+5P,GAAetnQ,KAAQsnQ,GAAe/5P,GAEtCkc,MAAMzpB,IAAOypB,MAAMlc,GAI9B,OAAO,CAlEI,CAkDG,CAlDUxJ,EAAMxO,GAC5B,KAAK,EACH,OAAOwzQ,GACLhlQ,EAAK0nQ,WAAYh7Q,QAAU,GAC3B8E,EAAMk2Q,WAAYh7Q,QAAU,GAC5Bu6Q,IAEJ,KAA2B,GAC3B,KAAK,GACH,OA4DN,SAAsBjnQ,EAAaxO,GACjC,MAAMyK,EAAU+D,EAAKymQ,SAAUv1Q,QAAU,CAAC,EACpCsY,EAAWhY,EAAMi1Q,SAAUv1Q,QAAU,GAE3C,GAAI+zQ,GAAWhpQ,KAAagpQ,GAAWz7P,GACrC,OAAO,EAGT,IAAK,MAAMxJ,KAAO/D,EAChB,GAAIA,EAAQ/I,eAAe8M,UAAA,IAEvBwJ,EAASxJ,KACRinQ,GAAYhrQ,EAAQ+D,GAAMwJ,EAASxJ,KAEpC,OAAO,EAIb,OAAO,EAlBT,CA5D0BA,EAAMxO,GAG5B,QACE,OA7GN4tQ,MA2LgB,SAAAuI,GACd3nQ,EACAxO,GAEA,YAAO,KACJwO,EAAStT,QAAU,IAAIihC,MAAK3tB,GAAKinQ,GAAYjnQ,EAAGxO,KAIrC,SAAAo2Q,GAAa5nQ,EAAaxO,GACxC,GAAIwO,IAASxO,EACX,OAAO,EAGT,MAAMyK,EAAW+qQ,GAAUhnQ,GACrBwJ,EAAYw9P,GAAUx1Q,GAE5B,GAAIyK,IAAauN,EACf,OAAOu7P,GAAoB9oQ,EAAUuN,GAGvC,OAAQvN,GACN,KAAyB,EACzB,KAAK,iBACH,OAAO,EACT,KAAK,EACH,OAAO8oQ,GAAoB/kQ,EAAKknQ,aAAe11Q,EAAM01Q,cACvD,KAAK,EACH,OA2BN,SAAwBlnQ,EAAaxO,GACnC,MAAMyK,EAAa8pQ,GAAgB/lQ,EAAKwnQ,cAAgBxnQ,EAAKynQ,aACvDj+P,EAAcu8P,GAAgBv0Q,EAAMg2Q,cAAgBh2Q,EAAMi2Q,aAEhE,OAAIxrQ,EAAauN,GACP,EACCvN,EAAauN,EACf,EACEvN,IAAeuN,EACjB,EAGHkc,MAAMzpB,GACDypB,MAAMlc,GAAe,GAAK,EAE1B,CA1CA,CA2Bb,CA3B4BxJ,EAAMxO,GAC9B,KAAK,EACH,OAAOq2Q,GAAkB7nQ,EAAK+mQ,eAAiBv1Q,EAAMu1Q,gBACvD,KAAK,EACH,OAAOc,GACLhB,GAAkB7mQ,GAClB6mQ,GAAkBr1Q,IAEtB,KAAK,EACH,OAAOuzQ,GAAoB/kQ,EAAKg9F,YAAcxrG,EAAMwrG,aACtD,KAAK,EACH,OAoFN,SACEh9F,EACAxO,GAEA,MAAMyK,EAAY+pQ,GAAoBhmQ,GAChCwJ,EAAaw8P,GAAoBx0Q,GACvC,OAAOyK,EAAUypQ,UAAUl8P,GAN7B,CApF0BxJ,EAAKmnQ,WAAa31Q,EAAM21Q,YAC9C,KAAK,EACH,OAwDN,SAA2BnnQ,EAAkBxO,GAC3C,MAAMyK,EAAe+D,EAAS/Q,MAAM,KAC9Bua,EAAgBhY,EAAUvC,MAAM,KACtC,IAAK,IAAI+Q,EAAI,EAAGA,EAAI/D,EAAazQ,QAAUwU,EAAIwJ,EAAche,OAAQwU,IAAK,CACxE,MAAMxO,EAAauzQ,GAAoB9oQ,EAAa+D,GAAIwJ,EAAcxJ,IACtE,GAAmB,IAAfxO,EACF,OAAOA,EAGX,OAAOuzQ,GAAoB9oQ,EAAazQ,OAAQge,EAAche,QAThE,CAxD+BwU,EAAKonQ,eAAiB51Q,EAAM41Q,gBACvD,KAAK,EACH,OAkEN,SAA0BpnQ,EAAcxO,GACtC,MAAMyK,EAAa8oQ,GACjBgB,GAAgB/lQ,EAAKsnQ,UACrBvB,GAAgBv0Q,EAAM81Q,WAExB,OAAmB,IAAfrrQ,EACKA,EAEF8oQ,GACLgB,GAAgB/lQ,EAAKunQ,WACrBxB,GAAgBv0Q,EAAM+1Q,YAV1B,CAlE8BvnQ,EAAKqnQ,cAAgB71Q,EAAM61Q,eACrD,KAAK,EACH,OAAOS,GAAc9nQ,EAAK0nQ,WAAal2Q,EAAMk2Q,YAC/C,KAAK,GACH,OAkGN,SAAwB1nQ,EAAgBxO,eACtC,MAAM8Q,EAAUtC,EAAK9O,QAAU,GACzBgO,EAAW1N,EAAMN,QAAU,CAAC,EAG5BgiB,EAAkD,QAAjCjX,EAAAqG,EAA8BrO,aAAG,IAAAgI,OAAA,EAAAA,EAAAyrQ,WAClDv9P,EAAoD,QAAlCX,EAAAtK,EAA+BjL,aAAG,IAAAuV,OAAA,EAAAA,EAAAk+P,WAEpD5rQ,EAAgBipQ,IAAA,QACpBn0Q,EAAA,MAAAsiB,OAAA,EAAAA,EAAgBxmB,cAAQ,IAAAkE,OAAA,EAAAA,EAAApF,SAAU,GACT,QAAzBid,EAAA,MAAA0B,OAAA,EAAAA,EAAiBzd,cAAA,IAAQ+b,OAAA,EAAAA,EAAAjd,SAAU,GAErC,OAAsB,IAAlBsQ,EACKA,EAGFgsQ,GAAc50P,EAAiB/I,GAhBxC,CAlG4BnK,EAAKymQ,SAAWj1Q,EAAMi1Q,UAC9C,KAAK,GACH,OAmHN,SAAqBzmQ,EAAgBxO,GACnC,GAAIwO,IAASgtG,IAAsBx7G,IAAUw7G,GAC3C,OAAO,EACF,GAAIhtG,IAASgtG,GAClB,OAAO,EACF,GAAIx7G,IAAUw7G,GACnB,OAAQ,EAGV,MAAM/wG,EAAU+D,EAAK9O,QAAU,GACzBsY,EAAWnd,OAAOg1C,KAAKplC,GACvBrL,EAAWY,EAAMN,QAAU,CAAC,EAC5BuX,EAAYpc,OAAOg1C,KAAKzwC,GAM9B4Y,EAASo8J,OACTn9J,EAAUm9J,OAEV,IAAK,IAAI5lK,EAAI,EAAGA,EAAIwJ,EAAShe,QAAUwU,EAAIyI,EAAUjd,SAAUwU,EAAG,CAChE,MAAMxO,EAAauzQ,GAAoBv7P,EAASxJ,GAAIyI,EAAUzI,IAC9D,GAAmB,IAAfxO,EACF,OAAOA,EAET,MAAM8Q,EAAUslQ,GAAa3rQ,EAAQuN,EAASxJ,IAAKpP,EAAS6X,EAAUzI,KACtE,GAAgB,IAAZsC,EACF,OAAOA,EAIX,OAAOyiQ,GAAoBv7P,EAAShe,OAAQid,EAAUjd,QAhCxD,CAnHyBwU,EAAKymQ,SAAWj1Q,EAAMi1Q,UAC3C,QACE,MA9ONrH,MAsQA,SAASyI,GAAkB7nQ,EAAiBxO,GAC1C,GACkB,iBAATwO,GACU,iBAAVxO,GACPwO,EAAKxU,SAAWgG,EAAMhG,OAEtB,OAAOu5Q,GAAoB/kQ,EAAMxO,GAGnC,MAAMyK,EAAgB2pQ,GAAmB5lQ,GACnCwJ,EAAiBo8P,GAAmBp0Q,GAEpCZ,EAAam0Q,GACjB9oQ,EAAc4pQ,QACdr8P,EAAeq8P,SAEjB,OAAmB,IAAfj1Q,EACKA,EAEFm0Q,GAAoB9oQ,EAAc6pQ,MAAOt8P,EAAes8P,OAsCjE,SAASgC,GAAc9nQ,EAAkBxO,GACvC,MAAMyK,EAAY+D,EAAKtT,QAAU,GAC3B8c,EAAahY,EAAM9E,QAAU,GAEnC,IAAK,IAAIsT,EAAI,EAAGA,EAAI/D,EAAUzQ,QAAUwU,EAAIwJ,EAAWhe,SAAUwU,EAAG,CAClE,MAAMxO,EAAUo2Q,GAAa3rQ,EAAU+D,GAAIwJ,EAAWxJ,IACtD,GAAIxO,EACF,OAAOA,EAGX,OAAOuzQ,GAAoB9oQ,EAAUzQ,OAAQge,EAAWhe,QAyM1C,SAAAu8Q,GAAS/nQ,EAAwBxO,GAC/C,MAAO,CACL41Q,eAAgB,YAAYpnQ,EAAW+gQ,uBACrC/gQ,EAAWghQ,sBACCxvQ,EAAIwmC,KAAK6pO,qBAwBrB,SAAUxwQ,GACd2O,GAEA,QAASA,GAAS,eAAgBA,EAW9B,SAAUgoQ,GACdhoQ,GAEA,QAASA,GAAS,cAAeA,EAI7B,SAAUioQ,GACdjoQ,GAEA,QAASA,GAAS,gBAAiBA,GAAS0lB,MAAM75B,OAAOmU,EAAMynQ,cAI3D,SAAUS,GACdloQ,GAEA,QAASA,GAAS,aAAcA,EAU5B,SAAUmoQ,GAAUnoQ,GACxB,GAAIA,EAAOqnQ,cACT,MAAO,CAAEA,cAAoBh7Q,OAAAG,OAAA,GAAAwT,EAAOqnQ,gBAC/B,GACLrnQ,EAAO+mQ,gBAC0B,iBAA1B/mQ,EAAO+mQ,eAEd,MAAO,CAAEA,eAAqB16Q,OAAAG,OAAA,GAAAwT,EAAO+mQ,iBAChC,GAAI/mQ,EAAOymQ,SAAU,CAC1B,MAAMj1Q,EAAgB,CAAEi1Q,SAAU,CAAEv1Q,OAAQ,KAK5C,OAJA4nB,GACE9Y,EAAOymQ,SAASv1Q,QAChB,CAAC8O,EAAK/D,IAASzK,EAAOi1Q,SAAUv1Q,OAAQ8O,GAAOmoQ,GAAUlsQ,KAEpDzK,EACF,GAAIwO,EAAO0nQ,WAAY,CAC5B,MAAMl2Q,EAAgB,CAAEk2Q,WAAY,CAAEh7Q,OAAQ,KAC9C,IAAK,IAAIuP,EAAI,EAAGA,GAAK+D,EAAO0nQ,WAAWh7Q,QAAU,IAAIlB,SAAUyQ,EAC7DzK,EAAOk2Q,WAAYh7Q,OAAQuP,GAAKksQ,GAAUnoQ,EAAO0nQ,WAAWh7Q,OAAQuP,IAEtE,OAAOzK,EAEP,OAAAnF,OAAAG,OAAA,GAAYwT,GCnmBH,MAAAooQ,GACX18Q,WAAAA,CAAqBsU,EAAiCxO,GAAjC,KAAQoO,SAARI,EAAiC,KAASqoQ,UAAT72Q,GCYlC,MAAA82Q,IAQhB,MAAOC,WAAoBD,GAC/B58Q,WAAAA,CACkBsU,EACAxO,EACAyK,GAEhBsZ,QAJgB,KAAK+D,MAALtZ,EACA,KAAE+6B,GAAFvpC,EACA,KAAKyC,MAALgI,EAQlB,aAAA3P,CACE0T,EACAxO,EACAyK,GAEA,OAAI+D,EAAMkiQ,aACF,OAAF1wQ,GAAsB,WAAAA,EACjB6J,KAAKmtQ,uBAAuBxoQ,EAAOxO,EAAIyK,GAUvC,IAAIwsQ,GAAezoQ,EAAOxO,EAAIyK,GAE9B,mBAAAzK,EACF,IAAIk3Q,GAAoB1oQ,EAAO/D,GAC7B,OAAAzK,EAKF,IAAIm3Q,GAAS3oQ,EAAO/D,GAClB,WAAAzK,EAKF,IAAIo3Q,GAAY5oQ,EAAO/D,GACrB,uBAAAzK,EAKF,IAAIq3Q,GAAuB7oQ,EAAO/D,GAElC,IAAIssQ,GAAYvoQ,EAAOxO,EAAIyK,GAI9B,6BAAAusQ,CACNxoQ,EACAxO,EACAyK,GAaA,MAAyB,OAAlBzK,EACH,IAAIs3Q,GAAiB9oQ,EAAO/D,GAC5B,IAAI8sQ,GAAoB/oQ,EAAO/D,GAGrCsxJ,OAAAA,CAAQvtJ,GACN,MAAMxO,EAAQwO,EAAIub,KAAKjC,MAAMje,KAAKie,OAElC,MAAW,OAAPje,KAAK0/B,GAEK,OAAVvpC,GACA6J,KAAK2tQ,kBAAkBpB,GAAap2Q,EAAQ6J,KAAKpH,QAMzC,OAAVzC,GACAw1Q,GAAU3rQ,KAAKpH,SAAW+yQ,GAAUx1Q,IACpC6J,KAAK2tQ,kBAAkBpB,GAAap2Q,EAAO6J,KAAKpH,QAI1C+0Q,iBAAAA,CAAkBhpQ,GAC1B,OAAQ3E,KAAK0/B,IACX,IAAK,IACH,OAAO/6B,EAAa,EACtB,IAAK,KACH,OAAOA,GAAc,EACvB,IAAK,KACH,OAAsB,IAAfA,EACT,IAAK,KACH,OAAsB,IAAfA,EACT,IAAK,IACH,OAAOA,EAAa,EACtB,IAAK,KACH,OAAOA,GAAc,EACvB,QACE,OA7IuCo/P,MAiJ7C6J,YAAAA,GACE,MACE,CAAC,IAAD,6BAOEpvQ,QAAQwB,KAAK0/B,KAAO,EAI1BmuO,mBAAAA,GACE,MAAO,CAAC7tQ,MAGV8tQ,UAAAA,GACE,MAAO,CAAC9tQ,OAIN,MAAO+tQ,WAAwBd,GAGnC58Q,WAAAA,CACkBsU,EACAxO,GAEhB+jB,QAHgB,KAAOquD,QAAP5jE,EACA,KAAE+6B,GAAFvpC,EAJlB,KAAAmc,EAAyD,KAYzD,aAAArhB,CAAc0T,EAAmBxO,GAC/B,OAAO,IAAI43Q,GAAgBppQ,EAASxO,GAGtC+7J,OAAAA,CAAQvtJ,GACN,OA2BE,SACJA,GAEA,MAAyB,QAAlBA,EAAgB+6B,EA9BjB,CA2BF,CA3B+B1/B,WAE8B,IAAtDA,KAAKuoE,QAAQj2C,MAAKn8B,IAAWA,EAAO+7J,QAAQvtJ,UAAA,IAG5C3E,KAAKuoE,QAAQj2C,MAAKn8B,GAAUA,EAAO+7J,QAAQvtJ,KAItDkpQ,mBAAAA,GACE,OAAsC,OAAlC7tQ,KAAKsS,IAITtS,KAAKsS,EAA2BtS,KAAKuoE,QAAQ7yE,QAAQ,CAAAiP,EAAQxO,IACpDwO,EAAO8V,OAAOtkB,EAAU03Q,wBAC9B,KALM7tQ,KAAKsS,EAWhBw7P,UAAAA,GACE,OAAO98Q,OAAOG,OAAO,GAAI6O,KAAKuoE,UA6J5B,MAAO6kM,WAAuBF,GAGlC78Q,WAAAA,CAAYsU,EAAkBxO,EAAcyK,GAC1CsZ,MAAMvV,EAAOxO,EAAIyK,GAKjBZ,KAAKuY,IAAM0uP,GAAYE,SAASvmQ,EAAMmrQ,gBAGxC75G,OAAAA,CAAQvtJ,GACN,MAAMxO,EAAa8wQ,GAAYlB,WAAWphQ,EAAI4T,IAAKvY,KAAKuY,KACxD,OAAOvY,KAAK2tQ,kBAAkBx3Q,IAK5B,MAAOs3Q,WAAyBP,GAGpC78Q,WAAAA,CAAYsU,EAAkBxO,GAC5B+jB,MAAMvV,EAAoB,KAAAxO,GAC1B6J,KAAKgmC,KAAOgoO,GAA+C,KAAA73Q,GAG7D+7J,OAAAA,CAAQvtJ,GACN,OAAO3E,KAAKgmC,KAAKm8H,MAAKhsK,GAAOA,EAAImtQ,QAAQ3+P,EAAI4T,QAK3C,MAAOm1P,WAA4BR,GAGvC78Q,WAAAA,CAAYsU,EAAkBxO,GAC5B+jB,MAAMvV,EAAwB,SAAAxO,GAC9B6J,KAAKgmC,KAAOgoO,GAAmD,SAAA73Q,GAGjE+7J,OAAAA,CAAQvtJ,GACN,OAAQ3E,KAAKgmC,KAAKm8H,MAAKhsK,GAAOA,EAAImtQ,QAAQ3+P,EAAI4T,QAIlD,SAASy1P,GACPrpQ,EACAxO,SAMA,QAA0B,QAAlByK,EAAAzK,EAAMk2Q,kBAAA,IAAYzrQ,OAAA,EAAAA,EAAAvP,SAAU,IAAI0sB,KAAIpZ,GAMnCsiQ,GAAYE,SAASxiQ,EAAEonQ,kBAK5B,MAAOsB,WAA4BH,GACvC78Q,WAAAA,CAAYsU,EAAkBxO,GAC5B+jB,MAAMvV,EAAgC,iBAAAxO,GAGxC+7J,OAAAA,CAAQvtJ,GACN,MAAMxO,EAAQwO,EAAIub,KAAKjC,MAAMje,KAAKie,OAClC,OAAOjoB,GAAQG,IAAUm2Q,GAAmBn2Q,EAAMk2Q,WAAYrsQ,KAAKpH,QAKjE,MAAO00Q,WAAiBJ,GAC5B78Q,WAAAA,CAAYsU,EAAkBxO,GAC5B+jB,MAAMvV,EAAoB,KAAAxO,GAI5B+7J,OAAAA,CAAQvtJ,GACN,MAAMxO,EAAQwO,EAAIub,KAAKjC,MAAMje,KAAKie,OAClC,OAAiB,OAAV9nB,GAAkBm2Q,GAAmBtsQ,KAAKpH,MAAMyzQ,WAAal2Q,IAKlE,MAAOo3Q,WAAoBL,GAC/B78Q,WAAAA,CAAYsU,EAAkBxO,GAC5B+jB,MAAMvV,EAAwB,SAAAxO,GAIhC+7J,OAAAA,CAAQvtJ,GACN,GACE2nQ,GAAmBtsQ,KAAKpH,MAAMyzQ,WAAa,CAAE4B,UAAW,eAExD,OAAO,EAET,MAAM93Q,EAAQwO,EAAIub,KAAKjC,MAAMje,KAAKie,OAClC,OAAiB,OAAV9nB,IAAmBm2Q,GAAmBtsQ,KAAKpH,MAAMyzQ,WAAal2Q,IAKnE,MAAOq3Q,WAA+BN,GAC1C78Q,WAAAA,CAAYsU,EAAkBxO,GAC5B+jB,MAAMvV,EAAoC,qBAAAxO,GAI5C+7J,OAAAA,CAAQvtJ,GACN,MAAMxO,EAAQwO,EAAIub,KAAKjC,MAAMje,KAAKie,OAClC,SAAKjoB,GAAQG,KAAWA,EAAMk2Q,WAAWh7Q,SAGlC8E,EAAMk2Q,WAAWh7Q,OAAO8wK,MAAKx9J,GAClC2nQ,GAAmBtsQ,KAAKpH,MAAMyzQ,WAAa1nQ,MCpepC,MAAAupQ,GACX79Q,WAAAA,CACWsU,GACoC,IAApCxO,EAAoCrE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,SADpC,KAAKmsB,MAALtZ,EACA,KAAGyc,IAAHjrB,GCVA,MAAAg4Q,GAaX99Q,WAAAA,CAA4BsU,GAAA,KAASg7L,UAATh7L,EAZ5B,oBAAqBypQ,CAAAzpQ,GACnB,OAAO,IAAIwpQ,GAAgBxpQ,GAG7B,UAAA5D,GACE,OAAO,IAAIotQ,GAAgB,IAAIvD,GAAU,EAAG,IAG9C,UAAA3pQ,GACE,OAAO,IAAIktQ,GAAgB,IAAIvD,GAAU,aAAc,YAKzDP,SAAAA,CAAU1lQ,GACR,OAAO3E,KAAK2/L,UAAUurE,WAAWvmQ,EAAMg7L,WAGzC2jE,OAAAA,CAAQ3+P,GACN,OAAO3E,KAAK2/L,UAAU2jE,QAAQ3+P,EAAMg7L,WAItC0uE,cAAAA,GAEE,OAAgC,IAAzBruQ,KAAK2/L,UAAU6qE,QAAgBxqQ,KAAK2/L,UAAUkrE,YAAc,IAGrE3wQ,QAAAA,GACE,MAAO,mBAAqB8F,KAAK2/L,UAAUzlM,WAAa,IAG1Do0Q,WAAAA,GACE,OAAOtuQ,KAAK2/L,WCfH,MAAA4uE,GAIXl+Q,WAAAA,CACSsU,EACPxO,GADO,KAAU4vQ,WAAVphQ,EAGP3E,KAAK22D,KAAOxgE,GAAcq4Q,GAASC,MAIrCC,MAAAA,CAAO/pQ,EAAQxO,GACb,OAAO,IAAIo4Q,GACTvuQ,KAAK+lQ,WACL/lQ,KAAK22D,KACF+3M,OAAO/pQ,EAAKxO,EAAO6J,KAAK+lQ,YACxBzrQ,KAAK,KAAM,KAAMk0Q,GAASG,MAAO,KAAM,OAK9CpqG,MAAAA,CAAO5/J,GACL,OAAO,IAAI4pQ,GACTvuQ,KAAK+lQ,WACL/lQ,KAAK22D,KACF4tG,OAAO5/J,EAAK3E,KAAK+lQ,YACjBzrQ,KAAK,KAAM,KAAMk0Q,GAASG,MAAO,KAAM,OAK9Cz2P,GAAAA,CAAIvT,GACF,IAAIxO,EAAO6J,KAAK22D,KAChB,MAAQxgE,EAAKiwQ,WAAW,CACtB,MAAMxlQ,EAAMZ,KAAK+lQ,WAAWphQ,EAAKxO,EAAKoiB,KACtC,GAAY,IAAR3X,EACF,OAAOzK,EAAKyC,MACHgI,EAAM,EACfzK,EAAOA,EAAK+K,KACHN,EAAM,IACfzK,EAAOA,EAAKgL,OAGhB,OAAO,KAKT3C,OAAAA,CAAQmG,GAEN,IAAIxO,EAAc,EACdyK,EAAOZ,KAAK22D,KAChB,MAAQ/1D,EAAKwlQ,WAAW,CACtB,MAAMj4P,EAAMnO,KAAK+lQ,WAAWphQ,EAAK/D,EAAK2X,KACtC,GAAY,IAARpK,EACF,OAAOhY,EAAcyK,EAAKM,KAAKpF,KACtBqS,EAAM,EACfvN,EAAOA,EAAKM,MAGZ/K,GAAeyK,EAAKM,KAAKpF,KAAO,EAChC8E,EAAOA,EAAKO,OAIhB,OAAQ,EAGVilQ,OAAAA,GACE,OAAOpmQ,KAAK22D,KAAKyvM,UAIf,QAAAtqQ,GACF,OAAOkE,KAAK22D,KAAK76D,KAInB8yQ,MAAAA,GACE,OAAO5uQ,KAAK22D,KAAKi4M,SAInBC,MAAAA,GACE,OAAO7uQ,KAAK22D,KAAKk4M,SAOnBC,gBAAAA,CAAoBnqQ,GAClB,OAAQ3E,KAAK22D,KAAwBm4M,iBAAiBnqQ,GAGxD8Y,OAAAA,CAAQ9Y,GACN3E,KAAK8uQ,kBAAiB,CAAC34Q,EAAGyK,KACxB+D,EAAGxO,EAAGyK,IACC,KAIX1G,QAAAA,GACE,MAAMyK,EAAyB,GAK/B,OAJA3E,KAAK8uQ,kBAAiB,CAAC34Q,EAAGyK,KACxB+D,EAAanP,KAAK,GAAGW,KAAKyK,MAAA,KAGrB,IAAI+D,EAAarG,KAAK,SAQ/BywQ,gBAAAA,CAAoBpqQ,GAClB,OAAQ3E,KAAK22D,KAAwBo4M,iBAAiBpqQ,GAIxDqqQ,WAAAA,GACE,OAAO,IAAIC,GAAwBjvQ,KAAK22D,KAAM,KAAM32D,KAAK+lQ,YAAY,GAGvEmJ,eAAAA,CAAgBvqQ,GACd,OAAO,IAAIsqQ,GAAwBjvQ,KAAK22D,KAAMhyD,EAAK3E,KAAK+lQ,YAAY,GAGtEoJ,kBAAAA,GACE,OAAO,IAAIF,GAAwBjvQ,KAAK22D,KAAM,KAAM32D,KAAK+lQ,YAAY,GAGvEqJ,sBAAAA,CAAuBzqQ,GACrB,OAAO,IAAIsqQ,GAAwBjvQ,KAAK22D,KAAMhyD,EAAK3E,KAAK+lQ,YAAY,IAK3D,MAAAkJ,GAIX5+Q,WAAAA,CACEsU,EACAxO,EACAyK,EACAuN,GAEAnO,KAAKqvQ,UAAYlhQ,EACjBnO,KAAKsvQ,UAAY,GAEjB,IAAI/5Q,EAAM,EACV,MAAQoP,EAAKyhQ,WAOX,GANA7wQ,EAAMY,EAAWyK,EAAW+D,EAAK4T,IAAKpiB,GAAY,EAE9CA,GAAYgY,IACd5Y,IAAQ,GAGNA,EAAM,EAGNoP,EADE3E,KAAKqvQ,UACA1qQ,EAAKzD,KAELyD,EAAKxD,UAET,IAAY,IAAR5L,EAAW,CAGpByK,KAAKsvQ,UAAU95Q,KAAKmP,GACpB,MAIA3E,KAAKsvQ,UAAU95Q,KAAKmP,GAElBA,EADE3E,KAAKqvQ,UACA1qQ,EAAKxD,MAELwD,EAAKzD,MAMpBquQ,OAAAA,GAME,IAAI5qQ,EAAO3E,KAAKsvQ,UAAUvkN,MAC1B,MAAM50D,EAAS,CAAEoiB,IAAK5T,EAAK4T,IAAK3f,MAAO+L,EAAK/L,OAE5C,GAAIoH,KAAKqvQ,UAEP,IADA1qQ,EAAOA,EAAKzD,MACJyD,EAAKyhQ,WACXpmQ,KAAKsvQ,UAAU95Q,KAAKmP,GACpBA,EAAOA,EAAKxD,WAId,IADAwD,EAAOA,EAAKxD,OACJwD,EAAKyhQ,WACXpmQ,KAAKsvQ,UAAU95Q,KAAKmP,GACpBA,EAAOA,EAAKzD,KAIhB,OAAO/K,EAGTq5Q,OAAAA,GACE,OAAOxvQ,KAAKsvQ,UAAUn/Q,OAAS,EAGjCs/Q,IAAAA,GACE,GAA8B,IAA1BzvQ,KAAKsvQ,UAAUn/Q,OACjB,OAAO,KAGT,MAAMwU,EAAO3E,KAAKsvQ,UAAUtvQ,KAAKsvQ,UAAUn/Q,OAAS,GACpD,MAAO,CAAEooB,IAAK5T,EAAK4T,IAAK3f,MAAO+L,EAAK/L,QAK3B,MAAA41Q,GAaXn+Q,WAAAA,CACSsU,EACAxO,EACPyK,EACAuN,EACA5Y,GAJO,KAAGgjB,IAAH5T,EACA,KAAK/L,MAALzC,EAKP6J,KAAKg7B,MAAiB,MAATp6B,EAAgBA,EAAQ4tQ,GAASkB,IAC9C1vQ,KAAKkB,KAAe,MAARiN,EAAeA,EAAOqgQ,GAASC,MAC3CzuQ,KAAKmB,MAAiB,MAAT5L,EAAgBA,EAAQi5Q,GAASC,MAC9CzuQ,KAAKlE,KAAOkE,KAAKkB,KAAKpF,KAAO,EAAIkE,KAAKmB,MAAMrF,KAI9CxB,IAAAA,CACEqK,EACAxO,EACAyK,EACAuN,EACA5Y,GAEA,OAAO,IAAIi5Q,GACF,MAAP7pQ,EAAcA,EAAM3E,KAAKuY,IAChB,MAATpiB,EAAgBA,EAAQ6J,KAAKpH,MACpB,MAATgI,EAAgBA,EAAQZ,KAAKg7B,MACrB,MAAR7sB,EAAeA,EAAOnO,KAAKkB,KAClB,MAAT3L,EAAgBA,EAAQyK,KAAKmB,OAIjCilQ,OAAAA,GACE,OAAO,EAOT0I,gBAAAA,CAAoBnqQ,GAClB,OACG3E,KAAKkB,KAAwB4tQ,iBAAiBnqQ,IAC/CA,EAAO3E,KAAKuY,IAAKvY,KAAKpH,QACrBoH,KAAKmB,MAAyB2tQ,iBAAiBnqQ,GAQpDoqQ,gBAAAA,CAAoBpqQ,GAClB,OACG3E,KAAKmB,MAAyB4tQ,iBAAiBpqQ,IAChDA,EAAO3E,KAAKuY,IAAKvY,KAAKpH,QACrBoH,KAAKkB,KAAwB6tQ,iBAAiBpqQ,GAK3C5D,GAAAA,GACN,OAAIf,KAAKkB,KAAKklQ,UACLpmQ,KAECA,KAAKkB,KAAwBH,MAKzC6tQ,MAAAA,GACE,OAAO5uQ,KAAKe,MAAMwX,IAIpBs2P,MAAAA,GACE,OAAI7uQ,KAAKmB,MAAMilQ,UACNpmQ,KAAKuY,IAELvY,KAAKmB,MAAM0tQ,SAKtBH,MAAAA,CAAO/pQ,EAAQxO,EAAUyK,GACvB,IAAIuN,EAAoBnO,KACxB,MAAMzK,EAAMqL,EAAW+D,EAAKwJ,EAAEoK,KAc9B,OAZEpK,EADE5Y,EAAM,EACJ4Y,EAAE7T,KAAK,KAAM,KAAM,KAAM6T,EAAEjN,KAAKwtQ,OAAO/pQ,EAAKxO,EAAOyK,GAAa,MACnD,IAARrL,EACL4Y,EAAE7T,KAAK,KAAMnE,EAAO,KAAM,KAAM,MAEhCgY,EAAE7T,KACJ,KACA,KACA,KACA,KACA6T,EAAEhN,MAAMutQ,OAAO/pQ,EAAKxO,EAAOyK,IAGxBuN,EAAEwhQ,QAGHC,SAAAA,GACN,GAAI5vQ,KAAKkB,KAAKklQ,UACZ,OAAOoI,GAASC,MAElB,IAAI9pQ,EAAoB3E,KAKxB,OAJK2E,EAAEzD,KAAK2uQ,SAAYlrQ,EAAEzD,KAAKA,KAAK2uQ,UAClClrQ,EAAIA,EAAEmrQ,eAERnrQ,EAAIA,EAAErK,KAAK,KAAM,KAAM,KAAOqK,EAAEzD,KAAwB0uQ,YAAa,MAC9DjrQ,EAAEgrQ,QAIXprG,MAAAA,CACE5/J,EACAxO,GAEA,IAAIyK,EACAuN,EAAoBnO,KACxB,GAAI7J,EAAWwO,EAAKwJ,EAAEoK,KAAO,EACtBpK,EAAEjN,KAAKklQ,WAAcj4P,EAAEjN,KAAK2uQ,SAAY1hQ,EAAEjN,KAAKA,KAAK2uQ,UACvD1hQ,EAAIA,EAAE2hQ,eAER3hQ,EAAIA,EAAE7T,KAAK,KAAM,KAAM,KAAM6T,EAAEjN,KAAKqjK,OAAO5/J,EAAKxO,GAAa,UACxD,CAOL,GANIgY,EAAEjN,KAAK2uQ,UACT1hQ,EAAIA,EAAE4hQ,eAEH5hQ,EAAEhN,MAAMilQ,WAAcj4P,EAAEhN,MAAM0uQ,SAAY1hQ,EAAEhN,MAAMD,KAAK2uQ,UAC1D1hQ,EAAIA,EAAE6hQ,gBAEuB,IAA3B75Q,EAAWwO,EAAKwJ,EAAEoK,KAAY,CAChC,GAAIpK,EAAEhN,MAAMilQ,UACV,OAAOoI,GAASC,MAEhB7tQ,EAAYuN,EAAEhN,MAAyBJ,MACvCoN,EAAIA,EAAE7T,KACJsG,EAAS2X,IACT3X,EAAShI,MACT,KACA,KACCuV,EAAEhN,MAAyByuQ,aAIlCzhQ,EAAIA,EAAE7T,KAAK,KAAM,KAAM,KAAM,KAAM6T,EAAEhN,MAAMojK,OAAO5/J,EAAKxO,IAEzD,OAAOgY,EAAEwhQ,QAGXE,KAAAA,GACE,OAAO7vQ,KAAKg7B,MAIN20O,KAAAA,GACN,IAAIhrQ,EAAoB3E,KAUxB,OATI2E,EAAExD,MAAM0uQ,UAAYlrQ,EAAEzD,KAAK2uQ,UAC7BlrQ,EAAIA,EAAEsrQ,cAEJtrQ,EAAEzD,KAAK2uQ,SAAWlrQ,EAAEzD,KAAKA,KAAK2uQ,UAChClrQ,EAAIA,EAAEorQ,eAEJprQ,EAAEzD,KAAK2uQ,SAAWlrQ,EAAExD,MAAM0uQ,UAC5BlrQ,EAAIA,EAAEurQ,aAEDvrQ,EAGDmrQ,WAAAA,GACN,IAAInrQ,EAAI3E,KAAKkwQ,YAYb,OAXIvrQ,EAAExD,MAAMD,KAAK2uQ,UACflrQ,EAAIA,EAAErK,KACJ,KACA,KACA,KACA,KACCqK,EAAExD,MAAyB4uQ,eAE9BprQ,EAAIA,EAAEsrQ,aACNtrQ,EAAIA,EAAEurQ,aAEDvrQ,EAGDqrQ,YAAAA,GACN,IAAIrrQ,EAAI3E,KAAKkwQ,YAKb,OAJIvrQ,EAAEzD,KAAKA,KAAK2uQ,UACdlrQ,EAAIA,EAAEorQ,cACNprQ,EAAIA,EAAEurQ,aAEDvrQ,EAGDsrQ,UAAAA,GACN,MAAMtrQ,EAAK3E,KAAK1F,KAAK,KAAM,KAAMk0Q,GAASkB,IAAK,KAAM1vQ,KAAKmB,MAAMD,MAChE,OAAQlB,KAAKmB,MAAyB7G,KACpC,KACA,KACA0F,KAAKg7B,MACLr2B,EACA,MAIIorQ,WAAAA,GACN,MAAMprQ,EAAK3E,KAAK1F,KAAK,KAAM,KAAMk0Q,GAASkB,IAAK1vQ,KAAKkB,KAAKC,MAAO,MAChE,OAAQnB,KAAKkB,KAAwB5G,KAAK,KAAM,KAAM0F,KAAKg7B,MAAO,KAAMr2B,GAGlEurQ,SAAAA,GACN,MAAMvrQ,EAAO3E,KAAKkB,KAAK5G,KAAK,KAAM,MAAO0F,KAAKkB,KAAK85B,MAAO,KAAM,MAC1D7kC,EAAQ6J,KAAKmB,MAAM7G,KAAK,KAAM,MAAO0F,KAAKmB,MAAM65B,MAAO,KAAM,MACnE,OAAOh7B,KAAK1F,KAAK,KAAM,MAAO0F,KAAKg7B,MAAOr2B,EAAMxO,GAIlDg6Q,aAAAA,GACE,MAAMxrQ,EAAa3E,KAAKo0N,QACxB,OAAIliO,KAAKmB,IAAI,EAAKsR,IAAe3E,KAAKlE,KAAO,EASrCs4N,KAAAA,GACR,GAAIp0N,KAAK6vQ,SAAW7vQ,KAAKkB,KAAK2uQ,QAC5B,MAvegB9L,KAyelB,GAAI/jQ,KAAKmB,MAAM0uQ,QACb,MA1egB9L,KA4elB,MAAMp/P,EAAc3E,KAAKkB,KAAwBkzN,QACjD,GAAIzvN,IAAgB3E,KAAKmB,MAAyBizN,QAChD,MA9egB2vC,KAgfhB,OAAOp/P,GAAc3E,KAAK6vQ,QAAU,EAAI,IArPhCrB,GAAAC,MAA4B,KAEjCD,GAAGkB,KAAG,EACNlB,GAAKG,OAAG,EAiUjBH,GAASC,MAAQ,IAzEJ,MAAbp+Q,WAAAA,GAgBE,KAAIyL,KAAG,EAfH,OAAAyc,GACF,MAxfkBwrP,KA0fhB,SAAAnrQ,GACF,MA3fkBmrQ,KA6fhB,SAAA/oO,GACF,MA9fkB+oO,KAggBhB,QAAA7iQ,GACF,MAjgBkB6iQ,KAmgBhB,SAAA5iQ,GACF,MApgBkB4iQ,KAygBpBzpQ,IAAAA,CACEqK,EACAxO,EACAyK,EACAuN,EACA5Y,GAEA,OAAOyK,KAIT0uQ,MAAAA,CAAO/pQ,EAAQxO,EAAUyK,GACvB,OAAO,IAAI4tQ,GAAe7pQ,EAAKxO,GAIjCouK,MAAAA,CAAO5/J,EAAQxO,GACb,OAAO6J,KAGTomQ,OAAAA,GACE,OAAO,EAGT0I,gBAAAA,CAAiBnqQ,GACf,OAAO,EAGToqQ,gBAAAA,CAAiBpqQ,GACf,OAAO,EAGTiqQ,MAAAA,GACE,OAAO,KAGTC,MAAAA,GACE,OAAO,KAGTgB,KAAAA,GACE,OAAO,EAITM,aAAAA,GACE,OAAO,EAGC/7C,KAAAA,GACR,OAAO,IC3jBE,MAAAg8C,GAGX//Q,WAAAA,CAAoBsU,GAAA,KAAUohQ,WAAVphQ,EAClB3E,KAAKkgB,KAAO,IAAIquP,GAAsBvuQ,KAAK+lQ,YAG7C98H,GAAAA,CAAItkI,GACF,OAA+B,OAAxB3E,KAAKkgB,KAAKhI,IAAIvT,GAGvB8hB,KAAAA,GACE,OAAOzmB,KAAKkgB,KAAK0uP,SAGnBloP,IAAAA,GACE,OAAO1mB,KAAKkgB,KAAK2uP,SAGf,QAAA/yQ,GACF,OAAOkE,KAAKkgB,KAAKpkB,KAGnB0C,OAAAA,CAAQmG,GACN,OAAO3E,KAAKkgB,KAAK1hB,QAAQmG,GAI3B8Y,OAAAA,CAAQ9Y,GACN3E,KAAKkgB,KAAK4uP,kBAAkB,CAAA34Q,EAAMyK,KAChC+D,EAAGxO,IACI,KAKXk6Q,cAAAA,CAAe1rQ,EAAexO,GAC5B,MAAMyK,EAAOZ,KAAKkgB,KAAKgvP,gBAAgBvqQ,EAAM,IAC7C,KAAO/D,EAAK4uQ,WAAW,CACrB,MAAMrhQ,EAAOvN,EAAK2uQ,UAClB,GAAIvvQ,KAAK+lQ,WAAW53P,EAAKoK,IAAK5T,EAAM,KAAO,EACzC,OAEFxO,EAAGgY,EAAKoK,MAOZ+3P,YAAAA,CAAa3rQ,EAA0BxO,GACrC,IAAIyK,EAMJ,IAJEA,OAAA,IADEzK,EACK6J,KAAKkgB,KAAKgvP,gBAAgB/4Q,GAE1B6J,KAAKkgB,KAAK8uP,cAEZpuQ,EAAK4uQ,WAGV,IADe7qQ,EADF/D,EAAK2uQ,UACKh3P,KAErB,OAMNg4P,iBAAAA,CAAkB5rQ,GAChB,MAAMxO,EAAO6J,KAAKkgB,KAAKgvP,gBAAgBvqQ,GACvC,OAAOxO,EAAKq5Q,UAAYr5Q,EAAKo5Q,UAAUh3P,IAAM,KAG/Cy2P,WAAAA,GACE,OAAO,IAAIwB,GAAqBxwQ,KAAKkgB,KAAK8uP,eAG5CE,eAAAA,CAAgBvqQ,GACd,OAAO,IAAI6rQ,GAAqBxwQ,KAAKkgB,KAAKgvP,gBAAgBvqQ,IAI5DkC,GAAAA,CAAIlC,GACF,OAAO3E,KAAK1F,KAAK0F,KAAKkgB,KAAKqkJ,OAAO5/J,GAAM+pQ,OAAO/pQ,GAAM,IAIvDk2H,OAAOl2H,GACL,OAAK3E,KAAKipI,IAAItkI,GAGP3E,KAAK1F,KAAK0F,KAAKkgB,KAAKqkJ,OAAO5/J,IAFzB3E,KAKXomQ,OAAAA,GACE,OAAOpmQ,KAAKkgB,KAAKkmP,UAGnBqK,SAAAA,CAAU9rQ,GACR,IAAIxO,EAAuB6J,KAW3B,OARI7J,EAAO2F,KAAO6I,EAAM7I,OACtB3F,EAASwO,EACTA,EAAQ3E,MAGV2E,EAAM8Y,SAAQ9Y,IACZxO,EAASA,EAAO0Q,IAAIlC,EAAA,IAEfxO,EAGTmtQ,OAAAA,CAAQ3+P,GACN,KAAMA,aAAiByrQ,IACrB,OAAO,EAET,GAAIpwQ,KAAKlE,OAAS6I,EAAM7I,KACtB,OAAO,EAGT,MAAM3F,EAAS6J,KAAKkgB,KAAK8uP,cACnBpuQ,EAAU+D,EAAMub,KAAK8uP,cAC3B,KAAO74Q,EAAOq5Q,WAAW,CACvB,MAAM7qQ,EAAWxO,EAAOo5Q,UAAUh3P,IAC5BpK,EAAYvN,EAAQ2uQ,UAAUh3P,IACpC,GAA6C,IAAzCvY,KAAK+lQ,WAAWphQ,EAAUwJ,GAC5B,OAAO,EAGX,OAAO,EAGTzM,OAAAA,GACE,MAAMiD,EAAW,GAIjB,OAHA3E,KAAKyd,SAAQtnB,IACXwO,EAAInP,KAAKW,EAAA,IAEJwO,EAGTzK,QAAAA,GACE,MAAMyK,EAAc,GAEpB,OADA3E,KAAKyd,SAAQtnB,GAAQwO,EAAOnP,KAAKW,KAC1B,aAAewO,EAAOzK,WAAa,IAGpCI,IAAAA,CAAKqK,GACX,MAAMxO,EAAS,IAAIi6Q,GAAUpwQ,KAAK+lQ,YAElC,OADA5vQ,EAAO+pB,KAAOvb,EACPxO,GAIE,MAAAq6Q,GACXngR,WAAAA,CAAoBsU,GAAA,KAAI2iN,KAAJ3iN,EAEpB4qQ,OAAAA,GACE,OAAOvvQ,KAAKsnN,KAAKioD,UAAUh3P,IAG7Bi3P,OAAAA,GACE,OAAOxvQ,KAAKsnN,KAAKkoD,WCvJR,MAAAkB,GACXrgR,WAAAA,CAAqBsU,GAAA,KAAK/L,MAAL+L,EAOrB,YAAAihQ,GACE,OAAO,IAAI8K,GAAY,CAAEtF,SAAU,KASrCntP,KAAAA,CAAMtZ,GACJ,GAAIA,EAAKyhQ,UACP,OAAOpmQ,KAAKpH,MACP,CACL,IAAIzC,EAA2B6J,KAAKpH,MACpC,IAAK,IAAIgI,EAAI,EAAGA,EAAI+D,EAAKxU,OAAS,IAAKyQ,EAErC,GADAzK,GAAgBA,EAAai1Q,SAAUv1Q,QAAU,IAAI8O,EAAKuT,IAAItX,KACzDisQ,GAAW12Q,GACd,OAAO,KAIX,OADAA,GAAgBA,EAAai1Q,SAAUv1Q,QAAW,CAAC,GAAG8O,EAAKwhQ,eACpDhwQ,GAAgB,MAU3BkoB,GAAAA,CAAI1Z,EAAiBxO,GAKD6J,KAAK2wQ,aAAahsQ,EAAKshQ,WAC/BthQ,EAAKwhQ,eAAiB2G,GAAU32Q,GAQ5Cy6Q,MAAAA,CAAOjsQ,GACL,IAAIxO,EAASwwQ,GAAUD,YAEnB9lQ,EAAyC,CAAC,EAC1CuN,EAAoB,GAExBxJ,EAAK8Y,SAAQ,CAAC9Y,EAAOpP,KACnB,IAAKY,EAAOmwQ,oBAAoB/wQ,GAAO,CAErC,MAAMoP,EAAY3E,KAAK2wQ,aAAax6Q,GACpC6J,KAAK6wQ,aAAalsQ,EAAW/D,EAASuN,GACtCvN,EAAU,CAAC,EACXuN,EAAU,GACVhY,EAASZ,EAAK0wQ,UAGZthQ,EACF/D,EAAQrL,EAAK4wQ,eAAiB2G,GAAUnoQ,GAExCwJ,EAAQ3Y,KAAKD,EAAK4wQ,cAAA,IAItB,MAAM5wQ,EAAYyK,KAAK2wQ,aAAax6Q,GACpC6J,KAAK6wQ,aAAat7Q,EAAWqL,EAASuN,GASxC0sH,OAAOl2H,GAKL,MAAMxO,EAAc6J,KAAKie,MAAMtZ,EAAKshQ,WAChC4G,GAAW12Q,IAAgBA,EAAYi1Q,SAASv1Q,eAC3CM,EAAYi1Q,SAASv1Q,OAAO8O,EAAKwhQ,eAI5C7C,OAAAA,CAAQ3+P,GACN,OAAOinQ,GAAY5rQ,KAAKpH,MAAO+L,EAAM/L,OAO/B+3Q,YAAAA,CAAahsQ,GACnB,IAAIxO,EAAU6J,KAAKpH,MAEdzC,EAAQi1Q,SAAUv1Q,SACrBM,EAAQi1Q,SAAW,CAAEv1Q,OAAQ,KAG/B,IAAK,IAAI+K,EAAI,EAAGA,EAAI+D,EAAKxU,SAAUyQ,EAAG,CACpC,IAAIuN,EAAOhY,EAAQi1Q,SAAUv1Q,OAAQ8O,EAAKuT,IAAItX,IACzCisQ,GAAW1+P,IAAUA,EAAKi9P,SAASv1Q,SACtCsY,EAAO,CAAEi9P,SAAU,CAAEv1Q,OAAQ,KAC7BM,EAAQi1Q,SAAUv1Q,OAAQ8O,EAAKuT,IAAItX,IAAMuN,GAE3ChY,EAAUgY,EAGZ,OAAOhY,EAAQi1Q,SAAUv1Q,OAOnBg7Q,YAAAA,CACNlsQ,EACAxO,EACAyK,GAEA6c,GAAQtnB,GAAS,CAACA,EAAKyK,IAAS+D,EAAUxO,GAAOyK,IACjD,IAAK,MAAMzK,KAASyK,SACX+D,EAAUxO,GAIrBmM,KAAAA,GACE,OAAO,IAAIouQ,GACT5D,GAAU9sQ,KAAKpH,SCZR,MAAAk4Q,GACXzgR,WAAAA,CACWsU,EACDxO,EACDyK,EACAuN,EACA5Y,EACA6X,EACCnG,GANC,KAAGsR,IAAH5T,EACD,KAAYosQ,aAAZ56Q,EACD,KAAOi1B,QAAPxqB,EACA,KAAQowQ,SAAR7iQ,EACA,KAAU8iQ,WAAV17Q,EACA,KAAI2qB,KAAJ9S,EACC,KAAa8jQ,cAAbjqQ,EAOV,yBAA0BkqQ,CAAAxsQ,GACxB,OAAO,IAAImsQ,GACTnsQ,EAAW,EAEGwpQ,GAAgBptQ,MACfotQ,GAAgBptQ,MACdotQ,GAAgBptQ,MACjC2vQ,GAAY9K,QAAO,GASvB,uBACEwL,CAAAzsQ,EACAxO,EACAyK,EACAuN,GAEA,OAAO,IAAI2iQ,GACTnsQ,EAAW,EAEGxO,EACCg4Q,GAAgBptQ,MACdH,EACjBuN,EAAA,GAMJ,oBAAAkjQ,CACE1sQ,EACAxO,GAEA,OAAO,IAAI26Q,GACTnsQ,EAAW,EAEGxO,EACCg4Q,GAAgBptQ,MACdotQ,GAAgBptQ,MACjC2vQ,GAAY9K,QAAO,GAUvB,yBAAA0L,CACE3sQ,EACAxO,GAEA,OAAO,IAAI26Q,GACTnsQ,EAAW,EAEGxO,EACCg4Q,GAAgBptQ,MACdotQ,GAAgBptQ,MACjC2vQ,GAAY9K,QAAO,GASvB2L,sBAAAA,CACE5sQ,EACAxO,GAkBA,OAVE6J,KAAKixQ,WAAW3N,QAAQ6K,GAAgBptQ,QACO,IAA9Cf,KAAK+wQ,cACsC,IAA1C/wQ,KAAK+wQ,eAEP/wQ,KAAKixQ,WAAatsQ,GAEpB3E,KAAKorB,QAAUzmB,EACf3E,KAAK+wQ,aAAe,EACpB/wQ,KAAKkgB,KAAO/pB,EACZ6J,KAAKkxQ,cAAa,EACXlxQ,KAOTwxQ,mBAAAA,CAAoB7sQ,GAKlB,OAJA3E,KAAKorB,QAAUzmB,EACf3E,KAAK+wQ,aAAe,EACpB/wQ,KAAKkgB,KAAOwwP,GAAY9K,QACxB5lQ,KAAKkxQ,cAAgB,EACdlxQ,KAQTyxQ,wBAAAA,CAAyB9sQ,GAKvB,OAJA3E,KAAKorB,QAAUzmB,EACf3E,KAAK+wQ,aAAe,EACpB/wQ,KAAKkgB,KAAOwwP,GAAY9K,QACxB5lQ,KAAKkxQ,cAAgB,EACdlxQ,KAGT0xQ,wBAAAA,GAME,OADA1xQ,KAAKkxQ,cAAa,EACXlxQ,KAGT2xQ,oBAAAA,GAGE,OAFA3xQ,KAAKkxQ,cAAa,EAClBlxQ,KAAKorB,QAAU+iP,GAAgBptQ,MACxBf,KAGT4xQ,WAAAA,CAAYjtQ,GAEV,OADA3E,KAAKgxQ,SAAWrsQ,EACT3E,KAGL,qBAAA6xQ,GACF,OAAyB,IAAlB7xQ,KAAKkxQ,cAGV,yBAAAY,GACF,OAAyB,IAAlB9xQ,KAAKkxQ,cAGV,oBAAAa,GACF,OAAO/xQ,KAAK6xQ,mBAAqB7xQ,KAAK8xQ,sBAGxCE,eAAAA,GACE,OAAwB,IAAjBhyQ,KAAK+wQ,aAGdkB,eAAAA,GACE,OAAwB,IAAjBjyQ,KAAK+wQ,aAGdmB,YAAAA,GACE,OAAwB,IAAjBlyQ,KAAK+wQ,aAGdoB,iBAAAA,GACE,OAAwB,IAAjBnyQ,KAAK+wQ,aAGdzN,OAAAA,CAAQ3+P,GACN,OACEA,aAAiBmsQ,IACjB9wQ,KAAKuY,IAAI+qP,QAAQ3+P,EAAM4T,MACvBvY,KAAKorB,QAAQk4O,QAAQ3+P,EAAMymB,UAC3BprB,KAAK+wQ,eAAiBpsQ,EAAMosQ,cAC5B/wQ,KAAKkxQ,gBAAkBvsQ,EAAMusQ,eAC7BlxQ,KAAKkgB,KAAKojP,QAAQ3+P,EAAMub,MAI5BkyP,WAAAA,GACE,OAAO,IAAItB,GACT9wQ,KAAKuY,IACLvY,KAAK+wQ,aACL/wQ,KAAKorB,QACLprB,KAAKgxQ,SACLhxQ,KAAKixQ,WACLjxQ,KAAKkgB,KAAK5d,QACVtC,KAAKkxQ,eAITh3Q,QAAAA,GACE,MACE,YAAY8F,KAAKuY,QAAQvY,KAAKorB,YAAYU,KAAKC,UAC7C/rB,KAAKkgB,KAAKtnB,wBAEIoH,KAAKixQ,gCACHjxQ,KAAK+wQ,mCACJ/wQ,KAAKkxQ,mBCnTjB,MAAAmB,GAEXhiR,WAAAA,CACWsU,GAMsB,IALtBxO,EAAiCrE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QACjC8O,EAAqB9O,UAAA3B,OAAA,QAAA4B,IAAAD,UAAC,GAADA,UAAC,GAAD,GACrBqc,EAAoBrc,UAAA3B,OAAA,QAAA4B,IAAAD,UAAC,GAADA,UAAC,GAAD,GACpByD,EAAuBzD,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QACvBsb,EAAwBtb,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QACxBmV,EAAsBnV,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QANtB,KAAI6qC,KAAJh4B,EACA,KAAeyiQ,gBAAfjxQ,EACA,KAAOm8Q,QAAP1xQ,EACA,KAAO2nE,QAAPp6D,EACA,KAAKyZ,MAALryB,EACA,KAAOg9Q,QAAPnlQ,EACA,KAAKolQ,MAALvrQ,EARX,KAAAoL,EAAqC,MAoBjC,SAAUogQ,GACd9tQ,GAQA,OAAO,IAAI0tQ,GACT1tQ,EAR+B7S,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QACZA,UAAA3B,OAAA,QAAA4B,IAAAD,UAAC,GAADA,UAAC,GAAD,GACDA,UAAA3B,OAAA,QAAA4B,IAAAD,UAAC,GAADA,UAAC,GAAD,GACGA,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QACCA,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QACFA,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,SClCX,MAAA4gR,GAiBXriR,WAAAA,CACWsU,GAOsB,IANtBxO,EAAArE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAiC,KACjC8O,EAAA9O,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAA6B,GAC7Bqc,EAAArc,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAoB,GACpByD,EAAAzD,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAuB,KACvBsb,EAAAtb,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAsC,IACtCmV,EAAAnV,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAwB,KACxB+R,EAAsB/R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,QAPtB,KAAI6qC,KAAJh4B,EACA,KAAeyiQ,gBAAfjxQ,EACA,KAAew8Q,gBAAf/xQ,EACA,KAAO2nE,QAAPp6D,EACA,KAAKyZ,MAALryB,EACA,KAASq9Q,UAATxlQ,EACA,KAAOmlQ,QAAPtrQ,EACA,KAAKurQ,MAAL3uQ,EAxBX,KAAAuuF,EAA8C,KAI9C,KAAA3lF,EAAgC,KAMhC,KAAAspG,EAAyC,KAgBnC/1G,KAAKuyQ,QAMLvyQ,KAAKwyQ,OAiHP,SAAUK,GAAuBluQ,GACrC,OAAiC,OAA1BA,EAAMyiQ,gBAUT,SAAU0L,GAAuBnuQ,GACrC,MAAMxO,EAAY8tQ,GAAUt/P,GAC5B,GAA4C,OAAxCxO,EAAUi8F,EAAoC,CAChDj8F,EAAUi8F,EAA4B,GACtC,MAAMztF,EAAmB,IAAIinH,IAG7B,IAAK,MAAMhrH,KAAWzK,EAAUw8Q,gBAC9Bx8Q,EAAUi8F,EAA0B58F,KAAKoL,GACzC+D,EAAiBkC,IAAIjG,EAAQqd,MAAMuoP,mBAIrC,MAAM5lQ,EACJzK,EAAUw8Q,gBAAgBxiR,OAAS,EAC/BgG,EAAUw8Q,gBAAgBx8Q,EAAUw8Q,gBAAgBxiR,OAAS,GAAGixB,IAQhE,MAAAjT,EAvEJ,SAAoCxJ,GACxC,IAAIxO,EAAS,IAAIi6Q,GAAqBzJ,GAAUZ,YAShD,OARAphQ,EAAM4jE,QAAQ9qD,SAAS9Y,IACFA,EAAOkpQ,sBACfpwP,SAAS9Y,IACdA,EAAOipQ,iBACTz3Q,EAASA,EAAO0Q,IAAIlC,EAAOsZ,OAAA,OAI1B9nB,EAVH,CAwE0BA,GAC5BgY,EAAiBsP,SAAQtP,IAEpBxJ,EAAiBskI,IAAI96H,EAAMq4P,oBAC3Br4P,EAAM04P,cAEP1wQ,EAAUi8F,EAA2B58F,KACnC,IAAI04Q,GAAQ//P,EAAOvN,GAAA,IAMpB+D,EAAiBskI,IAAI09H,GAAUG,WAAWN,oBAC7CrwQ,EAAUi8F,EAA0B58F,KAClC,IAAI04Q,GAAQvH,GAAUG,WAAYlmQ,IAIxC,OAAOzK,EAAUi8F,EAMb,SAAU2gL,GAAcpuQ,GAC5B,MAAMxO,EAAY8tQ,GAAUt/P,GAQ5B,OAPKxO,EAAUsW,IACbtW,EAAUsW,EAAiBumQ,GACzB78Q,EACA28Q,GAAuBnuQ,KAIpBxO,EAAUsW,EAuBnB,SAASumQ,GAAeruQ,EAAsBxO,GAC5C,GAAuB,MAAnBwO,EAAUiuQ,UACZ,OAAOH,GACL9tQ,EAAUg4B,KACVh4B,EAAUyiQ,gBACVjxQ,EACAwO,EAAU4jE,QACV5jE,EAAUijB,MACVjjB,EAAU4tQ,QACV5tQ,EAAU6tQ,OAEP,CAELr8Q,EAAWA,EAAS4nB,KAAIpZ,IACtB,MAAMxO,EACgC,SAApCwO,EAAQyc,IACL,aAEL,OAAO,IAAI8sP,GAAQvpQ,EAAQsZ,MAAO9nB,EAAA,IAIpC,MAAMyK,EAAU+D,EAAU6tQ,MACtB,IAAIzF,GAAMpoQ,EAAU6tQ,MAAMjuQ,SAAUI,EAAU6tQ,MAAMxF,WACpD,KACE7+P,EAAQxJ,EAAU4tQ,QACpB,IAAIxF,GAAMpoQ,EAAU4tQ,QAAQhuQ,SAAUI,EAAU4tQ,QAAQvF,WACxD,KAGJ,OAAOyF,GACL9tQ,EAAUg4B,KACVh4B,EAAUyiQ,gBACVjxQ,EACAwO,EAAU4jE,QACV5jE,EAAUijB,MACVhnB,EACAuN,IAKU,SAAA8kQ,GAAqBtuQ,EAAcxO,GAMjD,MAAMyK,EAAa+D,EAAM4jE,QAAQ9tD,OAAO,CAACtkB,IACzC,OAAO,IAAIu8Q,GACT/tQ,EAAMg4B,KACNh4B,EAAMyiQ,gBACNziQ,EAAMguQ,gBAAgB54Q,QACtB6G,EACA+D,EAAMijB,MACNjjB,EAAMiuQ,UACNjuQ,EAAM4tQ,QACN5tQ,EAAM6tQ,OC7UM,SAAAU,GAASvuQ,EAAwBxO,GAC/C,GAAIwO,EAAWwuQ,cAAe,CAC5B,GAAI9oP,MAAMl0B,GACR,MAAO,CAAEi2Q,YAAa,OACjB,GAAIj2Q,IAAU,IACnB,MAAO,CAAEi2Q,YAAa,YACjB,GAAIj2Q,KAAA,IACT,MAAO,CAAEi2Q,YAAa,aAG1B,MAAO,CAAEA,YAAalE,GAAe/xQ,GAAS,KAAOA,GAevC,SAAAmN,GAASqB,EAAwBxO,GAC/C,OvBZI,SAAwBwO,GAC5B,MACmB,iBAAVA,GACPnU,OAAOC,UAAUkU,KAChBujQ,GAAevjQ,IAChBA,GAASnU,OAAO4iR,kBAChBzuQ,GAASnU,OAAO6iR,iBANd,CuBYiBl9Q,GAVjB,SAAoBwO,GACxB,MAAO,CAAEwnQ,aAAc,GAAKxnQ,GADxB,CAUoCxO,GAAS+8Q,GAASvuQ,EAAYxO,GCoDxE,MAAMu7G,GACiD,CACrD4hK,IAA4B,YAC5B96P,KAA6B,cAIzBi3F,GAC8C,CAClD,IAA0B,YAC1B,KAAmC,qBACnC,IAA6B,eAC7B,KAAsC,wBACtC,KAAsB,QACtB,KAA0B,YAC1B,iBAA+B,iBAC/BmxG,GAAmB,KACnB,SAAuB,SACvB,qBAAmC,sBAI/B5lN,GACkD,CACtDgL,IAA6B,MAC7BJ,GAA4B,MAsBjB,MAAA2tQ,GACXljR,WAAAA,CACWsU,EACAxO,GADA,KAAU+uQ,WAAVvgQ,EACA,KAAawuQ,cAAbh9Q,GA+CG,SAAAm4Q,GACd3pQ,EACAxO,GAEA,OAAIwO,EAAWwuQ,cAUN,GANW,IAAI74M,KAAyB,IAApBnkE,EAAUq0Q,SAAgBnyE,cAEnB92L,QAAQ,QAAS,IAAIA,QAAQ,IAAK,QAEnD,YAAcpL,EAAU00Q,aAAa9wQ,OAAO,MAItD,CACLywQ,QAAS,GAAKr0Q,EAAUq0Q,QACxBC,MAAOt0Q,EAAU00Q,aAgBP,SAAA2I,GACd7uQ,EACAxO,GAEA,OAAIwO,EAAWwuQ,cACNh9Q,EAAM+zQ,WAEN/zQ,EAAMg0Q,eAuCX,SAAUsJ,GAAY9uQ,GAE1B,OAzOmBq/P,KAwONr/P,GACNwpQ,GAAgBC,cA1DzB,SAAuBzpQ,GACrB,MAAMxO,EAAYo0Q,GAAmB5lQ,GACrC,OAAO,IAAIimQ,GAAUz0Q,EAAUq0Q,QAASr0Q,EAAUs0Q,OAFpD,CA0DqD9lQ,IAGrC,SAAA+uQ,GACd/uQ,EACAxO,GAEA,OAAOw9Q,GAAehvQ,EAAYxO,GAAMqwQ,kBAG1B,SAAAmN,GACdhvQ,EACAxO,GAEA,MAAMyK,EA6ER,SAAkC+D,GAChC,OAAO,IAAI4hQ,GAAa,CACtB,WACA5hQ,EAAW+gQ,UACX,YACA/gQ,EAAWghQ,UAlFQ,CA6EvB,CA7EgDhhQ,GAAYwyH,MAAM,aAChE,YAAO,IAAAhhI,EAAqByK,EAAeA,EAAau2H,MAAMhhI,GAmBhD,SAAAgxQ,GACdxiQ,EACAxO,GAEA,MAAMyK,EApBR,SAA0B+D,GACxB,MAAMxO,EAAWowQ,GAAajnP,WAAW3a,GAKzC,OAjQmBq/P,GA8PjB4P,GAAoBz9Q,IAGfA,EANT,CAoBoCA,GAElC,GAAIyK,EAASsX,IAAI,KAAOvT,EAAWugQ,WAAWQ,UAC5C,MAAM,IAAIxB,GACR/lH,GACA,oDACEv9I,EAASsX,IAAI,GACb,OACAvT,EAAWugQ,WAAWQ,WAI5B,GAAI9kQ,EAASsX,IAAI,KAAOvT,EAAWugQ,WAAWS,SAC5C,MAAM,IAAIzB,GACR/lH,GACA,qDACEv9I,EAASsX,IAAI,GACb,OACAvT,EAAWugQ,WAAWS,UAG5B,OAAO,IAAIsB,GAyCb,SACEtiQ,GAMA,OApVmBq/P,GAiVjBr/P,EAAaxU,OAAS,GAA6B,cAAxBwU,EAAauT,IAAI,IAGvCvT,EAAaqhQ,SAAS,GAP/B,CAzC0DplQ,IAsf1C,SAAAizQ,GACdlvQ,EACAxO,GAGA,MAAMyK,EAAgC,CAAEkzQ,gBAAiB,IACnD3lQ,EAAOhY,EAAOwmC,KACpB,IAAIpnC,EAC2B,OAA3BY,EAAOixQ,iBAKT7xQ,EAAS4Y,EACTvN,EAAYkzQ,gBAAiB9jR,KAAO,CAClC,CACE+jR,aAAc59Q,EAAOixQ,gBACrB4M,gBAAgB,MAQpBz+Q,EAAS4Y,EAAK83P,UACdrlQ,EAAYkzQ,gBAAiB9jR,KAAO,CAAC,CAAE+jR,aAAc5lQ,EAAKg4P,iBAE5DvlQ,EAAYq4D,OA/gBd,SACEt0D,EACAxO,GAEA,OAAOu9Q,GAAe/uQ,EAAWugQ,WAAY/uQ,EA2gBxB,CA/gBvB,CA+gBmCwO,EAAYpP,GAE7C,MAAM6X,EAoNR,SAAmBzI,GACjB,GAAuB,IAAnBA,EAAQxU,OAIZ,OAAO8jR,GAASlG,GAAgB98Q,OAAO0T,EAA+B,OAzNxD,CAoNhB,CApN0BxO,EAAOoyE,SAC3Bn7D,IACFxM,EAAYkzQ,gBAAiBI,MAAQ9mQ,GAGvC,MAAMnG,EAgPR,SAAiBtC,GACf,GAAwB,IAApBA,EAASxU,OAGb,OAAOwU,EAASoZ,KAAIpZ,GAoHhB,SAA0BA,GAC9B,MAAO,CACLsZ,MAAOk2P,GAAqBxvQ,EAAQsZ,OACpCkR,UAAWilP,GAAYzvQ,EAAQyc,MAH7B,CApHyCzc,IApP7B,CAgPlB,CAhP0BxO,EAAOm8Q,SAC3BrrQ,IACFrG,EAAYkzQ,gBAAiBxB,QAAUrrQ,GAGzC,MAAMpD,EAxsBR,SACEc,EACAxO,GAEA,OAAIwO,EAAWwuQ,eAAiBlL,GAAkB9xQ,GACzCA,EAEA,CAAEyC,MAAOzC,EAisBJ,CAxsBhB,CAwsB6BwO,EAAYxO,EAAOyxB,OAY9C,OAXc,OAAV/jB,IACFjD,EAAYkzQ,gBAAiBlsP,MAAQ/jB,GAGnC1N,EAAOo8Q,UACT3xQ,EAAYkzQ,gBAAiBvB,QAgPjC,SAAyB5tQ,GACvB,MAAO,CACL0vQ,OAAQ1vQ,EAAOqoQ,UACf37Q,OAAQsT,EAAOJ,UAHnB,CAhP2DpO,EAAOo8Q,UAE5Dp8Q,EAAOq8Q,QACT5xQ,EAAYkzQ,gBAAiBtB,MAoPjC,SAAuB7tQ,GACrB,MAAO,CACL0vQ,QAAS1vQ,EAAOqoQ,UAChB37Q,OAAQsT,EAAOJ,UAHnB,CApPuDpO,EAAOq8Q,QAGrD,CAAEpgQ,EAAAxR,EAAaq4D,OAAA1jE,GAqQlB,SAAU6+Q,GAAYzvQ,GAC1B,OAAO+sG,GAAW/sG,YAkBJ2vQ,GAAe3vQ,GAC7B,OAAO8qG,GAAU9qG,GAGb,SAAU4vQ,GACd5vQ,GAEA,OAAO3J,GAAoB2J,GA6CvB,SAAUwvQ,GAAqBxvQ,GACnC,MAAO,CAAEwV,UAAWxV,EAAK6hQ,mBAyBrB,SAAUyN,GAAStvQ,GACvB,OAAIA,aAAkBuoQ,GAwBlB,SAA+BvoQ,GACnC,GAAa,OAATA,EAAO+6B,GAAuB,CAChC,GAAIktO,GAAWjoQ,EAAO/L,OACpB,MAAO,CACL47Q,YAAa,CACXv2P,MAAOk2P,GAAqBxvQ,EAAOsZ,OACnCyhB,GAAI,WAGH,GAAIitO,GAAYhoQ,EAAO/L,OAC5B,MAAO,CACL47Q,YAAa,CACXv2P,MAAOk2P,GAAqBxvQ,EAAOsZ,OACnCyhB,GAAI,iBAIL,GAAa,OAAT/6B,EAAO+6B,GAA2B,CAC3C,GAAIktO,GAAWjoQ,EAAO/L,OACpB,MAAO,CACL47Q,YAAa,CACXv2P,MAAOk2P,GAAqBxvQ,EAAOsZ,OACnCyhB,GAAI,eAGH,GAAIitO,GAAYhoQ,EAAO/L,OAC5B,MAAO,CACL47Q,YAAa,CACXv2P,MAAOk2P,GAAqBxvQ,EAAOsZ,OACnCyhB,GAAI,gBAKZ,MAAO,CACL+0O,YAAa,CACXx2P,MAAOk2P,GAAqBxvQ,EAAOsZ,OACnCyhB,GAAI40O,GAAe3vQ,EAAO+6B,IAC1B9mC,MAAO+L,EAAO/L,OA7DT,CAuBL,CAvB0B+L,GACnBA,aAAkBopQ,GAOzB,SAA4BppQ,GAChC,MAAMxO,EAASwO,EAAOmpQ,aAAa/vP,KAAIpZ,GAAUsvQ,GAAStvQ,KAE1D,OAAsB,IAAlBxO,EAAOhG,OACFgG,EAAO,GAGT,CACLu+Q,gBAAiB,CACfh1O,GAAI60O,GAAwB5vQ,EAAO+6B,IACnC6oC,QAASpyE,GAhBJ,CAML,CANuBwO,GAjtCsBo/P,KA40C7C,SAAU6P,GAAoBjvQ,GAElC,OACEA,EAAKxU,QAAU,GACC,aAAhBwU,EAAKuT,IAAI,IACO,cAAhBvT,EAAKuT,IAAI,GCx1CP,SAAUy8P,GAAchwQ,GAC5B,OAAO,IAAI4uQ,GAAoB5uQ,GAAiC,GCmDlE,MAAMiwQ,WATgB,QAYpBvkR,WAAAA,CACWsU,EACAxO,EACAyK,EACAuN,GAET+L,QALS,KAAe26P,gBAAflwQ,EACA,KAAmBmwQ,oBAAnB3+Q,EACA,KAAU4+Q,WAAVn0Q,EACA,KAAUo0Q,WAAV7mQ,EANX,KAAA6yI,GAAa,EAWbC,CAAAA,GAEE,GAAIjhJ,KAAKghJ,EACP,MAAM,IAAIkjH,GACRtiQ,GACA,2CAMNo0G,CAAAA,CACErxG,EACAxO,EACAyK,EACAuN,GAGA,OADAnO,KAAKihJ,IACExuC,QAAQ6tD,IAAI,CACjBtgK,KAAK60Q,gBAAgBlmB,WACrB3uP,KAAK80Q,oBAAoBnmB,aAExB93I,MAAK74F,IAAA,IAAEzoB,EAAW6X,GAAA4Q,EAAA,OACVhe,KAAK+0Q,WAAW/+J,EACrBrxG,EACAgvQ,GAAex9Q,EAAYyK,GAC3BuN,EACA5Y,EACA6X,EAAA,IAGHi+H,OAAO1mI,IACN,KAAmB,kBAAfA,EAAMpT,MACJoT,EAAMpG,OAASmP,KACjB1N,KAAK60Q,gBAAgBxQ,kBACrBrkQ,KAAK80Q,oBAAoBzQ,mBAErB1/P,GAEA,IAAIu/P,GAAe/xP,GAAcxN,EAAMzK,WAAA,IAMrDqY,CAAAA,CACE5N,EACAxO,EACAyK,EACAuN,EACA5Y,GAGA,OADAyK,KAAKihJ,IACExuC,QAAQ6tD,IAAI,CACjBtgK,KAAK60Q,gBAAgBlmB,WACrB3uP,KAAK80Q,oBAAoBnmB,aAExB93I,MAAKtkF,IAAA,IAAEnlB,EAAWnG,GACVsrB,EAAA,OAAAvyB,KAAK+0Q,WAAWxiQ,EACrB5N,EACAgvQ,GAAex9Q,EAAYyK,GAC3BuN,EACAf,EACAnG,EACA1R,EAAA,IAGH81I,OAAO1mI,IACN,KAAmB,kBAAfA,EAAMpT,MACJoT,EAAMpG,OAASmP,KACjB1N,KAAK60Q,gBAAgBxQ,kBACrBrkQ,KAAK80Q,oBAAoBzQ,mBAErB1/P,GAEA,IAAIu/P,GAAe/xP,GAAcxN,EAAMzK,WAAA,IAKrDuvQ,SAAAA,GACEzpQ,KAAKghJ,GAAA,EACLhhJ,KAAK+0Q,WAAWtL,aCvIb,MAyBD3lQ,GAAqB,IAAIsa,IAOzB,SAAU62P,GAAatwQ,GAC3B,GAAIA,EAAUuwQ,YACZ,MAAM,IAAIhR,GACRtiQ,GACA,2CAGJ,IAAKkC,GAAmBmlI,IAAItkI,GAAY,CACtCg/P,GAxCmB,oBAwCD,0BAClB,MAMMxtQ,ECtDJ,SAAwBwO,GAC5B,OAAO,IAAI4kQ,GAAgB5kQ,EAAcuvF,MAAM38F,KAAK,MDqD/B,CCtDjB,CDiFA,SACJoN,EACAxO,EACAyK,EACAuN,GAEA,OAAO,IAAI82P,GACTtgQ,EACAxO,EACAyK,EACAuN,EAAS2yL,KACT3yL,EAASi3P,IACTj3P,EAASgnQ,6BACThnQ,EAASinQ,kCACTrN,GAAwB55P,EAASknQ,gCACjClnQ,EAASq3P,iBAfP,CAhCA7gQ,EAAU2wQ,YACV3wQ,EAAUq5P,IAAIhzO,QAAQ81O,OAAS,GAC/Bn8P,EAAU4wQ,gBACV5wQ,EAAU6wQ,oBAGN50Q,EAAa+zQ,GAAchwQ,EAAU2wQ,aACrCnnQ,ED4FJ,SACJxJ,EACAxO,EACAyK,EACAuN,GAEA,OAAO,IAAIymQ,GACTjwQ,EACAxO,EACAyK,EACAuN,ECtGkB,CD4FhB,CC3FAxJ,EAAU8wQ,iBACV9wQ,EAAU+wQ,qBACVv/Q,EACAyK,GAGFkD,GAAmBua,IAAI1Z,EAAWwJ,GAEpC,OAAOrK,GAAmBoU,IAAIvT,GECnB,MAAAgxQ,GAwBXtlR,WAAAA,CAAYsU,WACV,QAAsB,IAAlBA,EAASm8L,KAAoB,CAC/B,QAAI,IAAAn8L,EAASygQ,IACX,MAAM,IAAIlB,GACR/lH,GACA,sDAGJn+I,KAAK8gM,KA1FiB,2BA2FtB9gM,KAAKolQ,KA1FgB,OA4FrBplQ,KAAK8gM,KAAOn8L,EAASm8L,KACrB9gM,KAAKolQ,IAAsB,QAAhBjvQ,EAAAwO,EAASygQ,WAAO,IAAAjvQ,GAAAA,EAO7B,GAJA6J,KAAKqnM,YAAc1iM,EAAS0iM,YAC5BrnM,KAAK41Q,4BAA8BjxQ,EAASixQ,0BAC5C51Q,KAAK61Q,WAAalxQ,EAASkxQ,gBAEK,IAA5BlxQ,EAASmxQ,eACX91Q,KAAK81Q,eCjGiC,aDkGjC,CACL,ICpGkC,IDqGhCnxQ,EAASmxQ,gBACTnxQ,EAASmxQ,eEhG2B,QFkGpC,MAAM,IAAI5R,GACR/lH,GACA,2CAGFn+I,KAAK81Q,eAAiBnxQ,EAASmxQ,gBhChGjC,SACJnxQ,EACAxO,EACAyK,EACAuN,GAEA,IAAkB,IAAdhY,IAAA,IAAsBgY,EACxB,MAAM,IAAI+1P,GACR/lH,GACA,GAAGx5I,SAAmB/D,6BgC2FxB,ChCpGE,CgCqGA,+BACA+D,EAASwwQ,6BACT,oCACAxwQ,EAASywQ,mCAGXp1Q,KAAKm1Q,+BAAiCxwQ,EAASwwQ,6BAE3Cn1Q,KAAKm1Q,6BACPn1Q,KAAKo1Q,mCAAoC,WAChCzwQ,EAASywQ,kCAClBp1Q,KAAKo1Q,mCAlH8B,EAuHnCp1Q,KAAKo1Q,oCACDzwQ,EAASywQ,kCAGfp1Q,KAAKq1Q,+BAAiCtN,GACG,QAAvCnnQ,EAAA+D,EAAS0wQ,sCAA8B,IAAAz0Q,EAAAA,EAAI,IA2BjD,SACE+D,GAEA,QAA+B,IAA3BA,EAAQqjQ,eAA8B,CACxC,GAAI39O,MAAM1lB,EAAQqjQ,gBAChB,MAAM,IAAI9D,GACR/lH,GAEE,iCAAGx5I,EAAQqjQ,oCAGjB,GAAIrjQ,EAAQqjQ,eA1KyB,EA2KnC,MAAM,IAAI9D,GACR/lH,GACA,iCAAiCx5I,EAAQqjQ,+CAI7C,GAAIrjQ,EAAQqjQ,eA5KyB,GA6KnC,MAAM,IAAI9D,GACR/lH,GACA,iCAAiCx5I,EAAQqjQ,iDArBjD,CAzB+BhoQ,KAAKq1Q,gCAEhCr1Q,KAAKwlQ,kBAAoB7gQ,EAAS6gQ,gBAGpClC,OAAAA,CAAQ3+P,GACN,OACE3E,KAAK8gM,OAASn8L,EAAMm8L,MACpB9gM,KAAKolQ,MAAQzgQ,EAAMygQ,KACnBplQ,KAAKqnM,cAAgB1iM,EAAM0iM,aAC3BrnM,KAAK81Q,iBAAmBnxQ,EAAMmxQ,gBAC9B91Q,KAAKm1Q,+BACHxwQ,EAAMwwQ,8BACRn1Q,KAAKo1Q,oCACHzwQ,EAAMywQ,mC/BzIE,SACdzwQ,EACAxO,GAEA,OAAOwO,EAASqjQ,iBAAmB7xQ,EAAS6xQ,eAJ9B,C+B2IRhoQ,KAAKq1Q,+BACL1wQ,EAAM0wQ,iCAERr1Q,KAAK41Q,4BAA8BjxQ,EAAMixQ,2BACzC51Q,KAAKwlQ,kBAAoB7gQ,EAAM6gQ,iBGnIxB,MAAAuQ,GAgBX1lR,WAAAA,CACSsU,EACAxO,EACEyK,EACAuN,GAHF,KAAgBsnQ,iBAAhB9wQ,EACA,KAAoB+wQ,qBAApBv/Q,EACE,KAAWm/Q,YAAX10Q,EACA,KAAIo1Q,KAAJ7nQ,EAhBX,KAAIqP,KAAmC,iBAE9B,KAAe+3P,gBAAW,SAE3B,KAAAU,UAAY,IAAIN,GAAsB,IACtC,KAAeO,iBAAG,EAkBtB,OAAAlY,GACF,IAAKh+P,KAAKg2Q,KACR,MAAM,IAAI9R,GACRtiQ,GACA,gFAIJ,OAAO5B,KAAKg2Q,KAGV,gBAAAG,GACF,OAAOn2Q,KAAKk2Q,gBAGV,eAAAhB,GACF,YAAO,IAAAl1Q,KAAKo2Q,eAGdC,YAAAA,CAAa1xQ,GACX,GAAI3E,KAAKk2Q,gBACP,MAAM,IAAIhS,GACRtiQ,GACA,sKAKJ5B,KAAKi2Q,UAAY,IAAIN,GAAsBhxQ,QACd,IAAzBA,EAAS0iM,cACXrnM,KAAKy1Q,iBvCkhBL,SACJ9wQ,GAEA,IAAKA,EACH,OAAO,IAAIy/P,GAEb,OAAQz/P,EAAkB6Y,MACxB,IAAK,aACH,OAAO,IAAIqnP,GACTlgQ,EAA0B2xQ,cAAK,IAC/B3xQ,EAAsB4xQ,UAAK,KAC3B5xQ,EAA8B6xQ,kBAAK,MAGvC,IAAK,WACH,OAAO7xQ,EAAoB8xQ,OAE7B,QACE,MAAM,IAAIvS,GACR/lH,GACA,qEuCtiBsB,CvCkhBxB,CuClhBoDx5I,EAAS0iM,cAIjEqvE,YAAAA,GACE,OAAO12Q,KAAKi2Q,UAGdT,eAAAA,GAEE,OADAx1Q,KAAKk2Q,iBAAkB,EAChBl2Q,KAAKi2Q,UAGdpf,OAAAA,GAIE,OAHK72P,KAAKo2Q,iBACRp2Q,KAAKo2Q,eAAiBp2Q,KAAK22Q,cAEtB32Q,KAAKo2Q,eAId5yQ,MAAAA,GACE,MAAO,CACLw6P,IAAKh+P,KAAKg2Q,KACV9Q,WAAYllQ,KAAKs1Q,YACjB/W,SAAUv+P,KAAKi2Q,WAWTU,UAAAA,GAER,OL7DE,SAA2BhyQ,GAC/B,MAAMxO,EAAY2N,GAAmBoU,IAAIvT,GACrCxO,IACFwtQ,GApEmB,oBAoED,sBAClB7/P,GAAmB+2H,OAAOl2H,GAC1BxO,EAAUszQ,YKuDV,CL5DE,CK4DezpQ,MACVyyG,QAAQ24B,WC5CN,MAAAwrI,GAgBXvmR,WAAAA,CACEsU,EAISxO,EAIAyK,GAJA,KAASi2Q,UAAT1gR,EAIA,KAAM2gR,OAANl2Q,EApBF,KAAI4c,KAA2B,QAsBtCxd,KAAK+2Q,UAAYpyQ,EA0BnBqyQ,aAAAA,CAIEryQ,GAEA,OAAO,IAAIiyQ,GACT52Q,KAAK+2Q,UACLpyQ,EACA3E,KAAK82Q,SAUE,MAAAG,GAcX5mR,WAAAA,CACEsU,EAISxO,EAIAyK,GAJA,KAASi2Q,UAAT1gR,EAIA,KAAI8lB,KAAJrb,EAlBF,KAAI4c,KAAG,WAoBdxd,KAAK+2Q,UAAYpyQ,EAGf,SAAAuyQ,GACF,OAAOl3Q,KAAKic,KAAK0gB,KAMf,MAAAlR,GACF,OAAOzrB,KAAKic,KAAK0gB,KAAKwpO,cAOpB,QAAAxpO,GACF,OAAO38B,KAAKic,KAAK0gB,KAAK6pO,kBAMpB,UAAAvtM,GACF,OAAO,IAAIk+M,GACTn3Q,KAAK+2Q,UACL/2Q,KAAK62Q,UACL72Q,KAAKic,KAAK0gB,KAAKspO,WA4BnB+Q,aAAAA,CAIEryQ,GAEA,OAAO,IAAIsyQ,GACTj3Q,KAAK+2Q,UACLpyQ,EACA3E,KAAKic,OASL,MAAOk7P,WAGHP,GAKRvmR,WAAAA,CACEsU,EACAxO,EACSyK,GAETsZ,MAAMvV,EAAWxO,EXtKf,SAA0BwO,GAC9B,OAAO,IAAI+tQ,GAAU/tQ,GADjB,CWsK0C/D,IAFnC,KAAKs2Q,MAALt2Q,EANF,KAAI4c,KAAG,aAYZ,MAAAiO,GACF,OAAOzrB,KAAK82Q,OAAOn6O,KAAKwpO,cAOtB,QAAAxpO,GACF,OAAO38B,KAAK82Q,OAAOn6O,KAAK6pO,kBAOtB,UAAAvtM,GACF,MAAMt0D,EAAa3E,KAAKk3Q,MAAMjR,UAC9B,OAAIthQ,EAAWyhQ,UACN,KAEA,IAAI6Q,GACTj3Q,KAAK+2Q,UACY,KACjB,IAAI9P,GAAYtiQ,IA+BtBqyQ,aAAAA,CAIEryQ,GAEA,OAAO,IAAIwyQ,GACTn3Q,KAAK+2Q,UACLpyQ,EACA3E,KAAKk3Q,QCxVE,MAAAE,GAIX/mR,WAAAA,CAAYsU,GACV3E,KAAKq3Q,YAAc1yQ,EASrB,uBAAwBqlQ,CAAArlQ,GACtB,IACE,OAAO,IAAIyyQ,GAAMtN,GAAWE,iBAAiBrlQ,IAC7C,MAAOA,GACP,MAAM,IAAIu/P,GACR/lH,GACA,gDAAkDx5I,IAUxD,qBAAsBslQ,CAAAtlQ,GACpB,OAAO,IAAIyyQ,GAAMtN,GAAWG,eAAetlQ,IAQ7CulQ,QAAAA,GACE,OAAOlqQ,KAAKq3Q,YAAYnN,WAQ1BC,YAAAA,GACE,OAAOnqQ,KAAKq3Q,YAAYlN,eAQ1BjwQ,QAAAA,GACE,MAAO,iBAAmB8F,KAAKkqQ,WAAa,IAS9C5G,OAAAA,CAAQ3+P,GACN,OAAO3E,KAAKq3Q,YAAY/T,QAAQ3+P,EAAM0yQ,cC5D7B,MAAAC,GAUXjnR,WAAAA,GAAe,QAAAknR,EAAAzlR,UAAA3B,OAAAwU,EAAA,IAAA5O,MAAAwhR,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA7yQ,EAAA6yQ,GAAA1lR,UAAA0lR,GACb,IAAK,IAAIrhR,EAAI,EAAGA,EAAIwO,EAAWxU,SAAUgG,EACvC,GAA6B,IAAzBwO,EAAWxO,GAAGhG,OAChB,MAAM,IAAI+zQ,GACR/lH,GACA,2EAMNn+I,KAAKy3Q,cAAgB,IAAI9Q,GAAkBhiQ,GAS7C2+P,OAAAA,CAAQ3+P,GACN,OAAO3E,KAAKy3Q,cAAcnU,QAAQ3+P,EAAM8yQ,gBCtCtB,MAAAC,GAKpBrnR,WAAAA,CAAmBsU,GAAA,KAAWgzQ,YAAXhzQ,GCFR,MAAAizQ,GAYXvnR,WAAAA,CAAYsU,EAAkBxO,GAC5B,IAAK4uB,SAASpgB,IAAaA,GAAY,IAAMA,EAAW,GACtD,MAAM,IAAIu/P,GACR/lH,GACA,0DAA4Dx5I,GAGhE,IAAKogB,SAAS5uB,IAAcA,GAAa,KAAOA,EAAY,IAC1D,MAAM,IAAI+tQ,GACR/lH,GACA,6DAA+DhoJ,GAInE6J,KAAK63Q,KAAOlzQ,EACZ3E,KAAK83Q,MAAQ3hR,EAMX,YAAA81Q,GACF,OAAOjsQ,KAAK63Q,KAMV,aAAA3L,GACF,OAAOlsQ,KAAK83Q,MASdxU,OAAAA,CAAQ3+P,GACN,OAAO3E,KAAK63Q,OAASlzQ,EAAMkzQ,MAAQ73Q,KAAK83Q,QAAUnzQ,EAAMmzQ,MAI1Dt0Q,MAAAA,GACE,MAAO,CAAEyoQ,SAAUjsQ,KAAK63Q,KAAM3L,UAAWlsQ,KAAK83Q,OAOhD5M,UAAAA,CAAWvmQ,GACT,OACE+kQ,GAAoB1pQ,KAAK63Q,KAAMlzQ,EAAMkzQ,OACrCnO,GAAoB1pQ,KAAK83Q,MAAOnzQ,EAAMmzQ,QCpE/B,MAAAC,GAOX1nR,WAAAA,CAAYsU,GAEV3E,KAAKg4Q,SAAWrzQ,GAAU,IAAIoZ,KAAIpZ,GAAKA,IAMzCjD,OAAAA,GACE,OAAO1B,KAAKg4Q,QAAQj6P,KAAIpZ,GAAKA,IAM/B2+P,OAAAA,CAAQ3+P,GACN,OCqGY,SACdA,EACAxO,GAEA,GAAIwO,EAAKxU,SAAWgG,EAAMhG,OACxB,OAAO,EAGT,IAAK,IAAIyQ,EAAI,EAAGA,EAAI+D,EAAKxU,SAAUyQ,EACjC,GAAI+D,EAAK/D,KAAOzK,EAAMyK,GACpB,OAAO,EAIX,OAAO,EAdO,CDrGiBZ,KAAKg4Q,QAASrzQ,EAAMqzQ,UE8BrD,MAAMx5H,GAAuB,WAyF7B,SAASy5H,GAAQtzQ,GACf,OAAQA,GACN,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAO,EACT,KAA6B,EAC7B,KAAK,EACH,OAAO,EACT,QACE,MAvJ6Co/P,MAuL7C,MAAAmU,GAqBJ7nR,WAAAA,CACWsU,EACAxO,EACAyK,EACAuN,EACT5Y,EACA6X,GALS,KAAQmxP,SAAR55P,EACA,KAAUugQ,WAAV/uQ,EACA,KAAU6+Q,WAAVp0Q,EACA,KAAyBg1Q,0BAAzBznQ,WAML5Y,GACFyK,KAAK6pE,KAEP7pE,KAAKm4Q,gBAAkB5iR,GAAmB,GAC1CyK,KAAKo4Q,UAAYhrQ,GAAa,GAG5B,QAAAuvB,GACF,OAAO38B,KAAKu+P,SAAS5hO,KAGnB,MAAA07O,GACF,OAAOr4Q,KAAKu+P,SAAS8Z,GAIvBjuP,EAAAA,CAAYzlB,GACV,OAAO,IAAIuzQ,GACJlnR,OAAAG,OAAAH,OAAAG,OAAA,GAAA6O,KAAKu+P,UAAa55P,GACvB3E,KAAKklQ,WACLllQ,KAAKg1Q,WACLh1Q,KAAK41Q,0BACL51Q,KAAKm4Q,gBACLn4Q,KAAKo4Q,WAITE,EAAAA,CAAqB3zQ,SACnB,MAAM/D,EAAqB,QAATzK,EAAA6J,KAAK28B,YAAI,IAAAxmC,OAAA,EAAAA,EAAEghI,MAAMxyH,GAC7BwJ,EAAUnO,KAAKoqB,GAAY,CAAEuS,KAAM/7B,EAAW89B,IAAc,IAElE,OADAvwB,EAAQwxB,GAAoBh7B,GACrBwJ,EAGToqQ,EAAAA,CAAyB5zQ,SACvB,MAAM/D,EAAqB,QAATzK,EAAA6J,KAAK28B,YAAI,IAAAxmC,OAAA,EAAAA,EAAEghI,MAAMxyH,GAC7BwJ,EAAUnO,KAAKoqB,GAAY,CAAEuS,KAAM/7B,EAAW89B,IAAc,IAElE,OADAvwB,EAAQ07D,KACD17D,EAGTqqQ,EAAAA,CAAqB7zQ,GAGnB,OAAO3E,KAAKoqB,GAAY,CAAEuS,UAAM,EAAW+B,IAAc,IAG3DykB,EAAAA,CAAYx+C,GACV,OAAO8zQ,GACL9zQ,EACA3E,KAAKu+P,SAASngE,WACdp+L,KAAKu+P,SAASma,KAAA,EACd14Q,KAAK28B,KACL38B,KAAKu+P,SAAS3qP,IAKlB0+F,QAAAA,CAAS3tG,GACP,YAAO,IACL3E,KAAKo4Q,UAAU9lP,MAAKn8B,GAASwO,EAAU0hQ,WAAWlwQ,WAG5C,IAFN6J,KAAKm4Q,gBAAgB7lP,MAAKn8B,GACxBwO,EAAU0hQ,WAAWlwQ,EAAU8nB,SAK7B4rD,EAAAA,GAGN,GAAK7pE,KAAK28B,KAGV,IAAK,IAAIh4B,EAAI,EAAGA,EAAI3E,KAAK28B,KAAKxsC,OAAQwU,IACpC3E,KAAK2/B,GAAoB3/B,KAAK28B,KAAKzkB,IAAIvT,IAInCg7B,EAAAA,CAAoBh7B,GAC1B,GAAuB,IAAnBA,EAAQxU,OACV,MAAM6P,KAAKmjD,GAAY,qCAEzB,GAAI80N,GAAQj4Q,KAAKq4Q,KAAe75H,GAAqBxmH,KAAKrzB,GACxD,MAAM3E,KAAKmjD,GAAY,mDAShB,MAAAw1N,GAGXtoR,WAAAA,CACmBsU,EACAxO,EACjByK,GAFiB,KAAUskQ,WAAVvgQ,EACA,KAAyBixQ,0BAAzBz/Q,EAGjB6J,KAAKg1Q,WAAap0Q,GAAc+zQ,GAAchwQ,GAIhDi0Q,EAAAA,CACEj0Q,EACAxO,EACAyK,GACe,IAAfuN,EAAerc,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEf,OAAO,IAAIomR,GACT,CACEG,GAAA1zQ,EACAy5L,WAAAjoM,EACAyd,GAAAhT,EACA+7B,KAAMgqO,GAAkBD,YACxBhoO,IAAc,EACdg6O,GAAAvqQ,GAEFnO,KAAKklQ,WACLllQ,KAAKg1Q,WACLh1Q,KAAK41Q,4BAKL,SAAUiD,GAAkBl0Q,GAChC,MAAMxO,EAAWwO,EAAU6wQ,kBACrB50Q,EAAa+zQ,GAAchwQ,EAAU2wQ,aAC3C,OAAO,IAAIqD,GACTh0Q,EAAU2wQ,cACRn/Q,EAASy/Q,0BACXh1Q,GAyUE,SAAUk4Q,GACdn0Q,EACAxO,EACAyK,GACc,IAAduN,EAAcrc,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAYd,OANeinR,GAAUn4Q,EAJT+D,EAAei0Q,GAC7BzqQ,EAAA,EAA4C,EAC5ChY,IAoBY,SAAA4iR,GACdp0Q,EACAxO,GAMA,GAAI6iR,GAFJr0Q,EAAQmwP,GAAmBnwP,IAIzB,OADAs0Q,GAAoB,2BAA4B9iR,EAASwO,GAClDu0Q,GAAYv0Q,EAAOxO,GACrB,GAAIwO,aAAiB+yQ,GAO1B,OAgFJ,SACE/yQ,EACAxO,GAGA,IAAK8hR,GAAQ9hR,EAAQkiR,IACnB,MAAMliR,EAAQgtD,GACZ,GAAGx+C,EAAMgzQ,0DAGb,IAAKxhR,EAAQwmC,KACX,MAAMxmC,EAAQgtD,GACZ,GAAGx+C,EAAMgzQ,0DAIb,MAAM/2Q,EAAiB+D,EAAMw0Q,kBAAkBhjR,GAC3CyK,GACFzK,EAAQgiR,gBAAgB3iR,KAAKoL,GAlBjC,CAjF4B+D,EAAOxO,GACxB,KACF,QAAc,IAAVwO,GAAuBxO,EAAQy/Q,0BAIxC,OAAO,KAQP,GAJIz/Q,EAAQwmC,MACVxmC,EAAQiiR,UAAU5iR,KAAKW,EAAQwmC,MAG7Bh4B,aAAiB5O,MAAO,CAO1B,GACEI,EAAQooQ,SAAS7/N,IACC,IAAlBvoC,EAAQkiR,GAER,MAAMliR,EAAQgtD,GAAY,mCAE5B,OA+BN,SAAoBx+C,EAAkBxO,GACpC,MAAMyK,EAAuB,GAC7B,IAAIuN,EAAa,EACjB,IAAK,MAAM5Y,KAASoP,EAAO,CACzB,IAAIA,EAAco0Q,GAChBxjR,EACAY,EAAQqiR,GAAqBrqQ,IAEZ,MAAfxJ,IAGFA,EAAc,CAAEspQ,UAAW,eAE7BrtQ,EAAOpL,KAAKmP,GACZwJ,IAEF,MAAO,CAAEk+P,WAAY,CAAEh7Q,OAAAuP,GA/CZ,CA+Bb,CA/BwB+D,EAAoBxO,GAEtC,OA+EN,SACEwO,EACAxO,GAIA,GAAc,QAFdwO,EAAQmwP,GAAmBnwP,IAGzB,MAAO,CAAEspQ,UAAW,cACf,GAAqB,iBAAVtpQ,EAChB,OAAOrB,GAASnN,EAAQ6+Q,WAAYrwQ,GAC/B,GAAqB,kBAAVA,EAChB,MAAO,CAAEknQ,aAAclnQ,GAClB,GAAqB,iBAAVA,EAChB,MAAO,CAAEg9F,YAAah9F,GACjB,GAAIA,aAAiB21D,KAAM,CAChC,MAAM15D,EAAYgqQ,GAAUG,SAASpmQ,GACrC,MAAO,CACL+mQ,eAAgB4C,GAAYn4Q,EAAQ6+Q,WAAYp0Q,IAE7C,GAAI+D,aAAiBimQ,GAAW,CAIrC,MAAMhqQ,EAAY,IAAIgqQ,GACpBjmQ,EAAM6lQ,QACiC,IAAvCt4Q,KAAKC,MAAMwS,EAAMkmQ,YAAc,MAEjC,MAAO,CACLa,eAAgB4C,GAAYn4Q,EAAQ6+Q,WAAYp0Q,IAE7C,GAAI+D,aAAiBizQ,GAC1B,MAAO,CACL5L,cAAe,CACbC,SAAUtnQ,EAAMsnQ,SAChBC,UAAWvnQ,EAAMunQ,YAGhB,GAAIvnQ,aAAiByyQ,GAC1B,MAAO,CAAEtL,WAAY0H,GAAQr9Q,EAAQ6+Q,WAAYrwQ,EAAM0yQ,cAClD,GAAI1yQ,aAAiBsyQ,GAAmB,CAC7C,MAAMr2Q,EAASzK,EAAQ+uQ,WACjB/2P,EAAUxJ,EAAMoyQ,UAAUzB,YAChC,IAAKnnQ,EAAQm1P,QAAQ1iQ,GACnB,MAAMzK,EAAQgtD,GAEV,sCAAGh1C,EAAQu3P,aAAav3P,EAAQw3P,uCAChB/kQ,EAAO8kQ,aAAa9kQ,EAAO+kQ,YAGjD,MAAO,CACLoG,eAAgB2H,GACd/uQ,EAAMoyQ,UAAUzB,aAAen/Q,EAAQ+uQ,WACvCvgQ,EAAMsX,KAAK0gB,OAGV,GAAIh4B,aAAiBozQ,GAC1B,OAWY,SACdpzQ,EACAxO,GAuBA,MAAO,CAAEi1Q,SArBuB,CAC9Bv1Q,OAAQ,CACNw1Q,SAAY,CACV1pK,Y5B12B6B,c4B42B/B/oG,MAA0B,CACxByzQ,WAAY,CACVh7Q,OAAQsT,EAAMjD,UAAUqc,KAAIpZ,IAC1B,GAAqB,iBAAVA,EACT,MAAMxO,EAAQgtD,GACZ,kDAIJ,OAAO+vN,GAAS/8Q,EAAQ6+Q,WAAYrwQ,EAAA,SAlBhC,CAXYA,EAAOxO,GAE/B,MAAMA,EAAQgtD,GACZ,4BAA4BykN,GAAiBjjQ,KA1ItC,CA+Eb,CA/E8BA,EAAOxO,GAKrC,SAAS+iR,GACPv0Q,EACAxO,GAEA,MAAMyK,EAA2B,GAiBjC,OnCxuBI,SAAqB+D,GAKzB,IAAK,MAAMxO,KAAOwO,EAChB,GAAI3T,OAAOE,UAAU2G,eAAeC,KAAK6M,EAAKxO,GAC5C,OAAO,EAGX,OAAO,CmC+sBH,CnCztBA,CmCytBQwO,GAGNxO,EAAQwmC,MAAQxmC,EAAQwmC,KAAKxsC,OAAS,GACxCgG,EAAQiiR,UAAU5iR,KAAKW,EAAQwmC,MAGjClf,GAAQ9Y,GAAK,CAACA,EAAawJ,KACzB,MAAM5Y,EAAcwjR,GAAU5qQ,EAAKhY,EAAQmiR,GAAqB3zQ,IAC7C,MAAfpP,IACFqL,EAAO+D,GAAOpP,EAAA,IAKb,CAAE61Q,SAAU,CAAEv1Q,OAAA+K,IA2JvB,SAASo4Q,GAAoBr0Q,GAC3B,QACmB,iBAAVA,GACG,OAAVA,GACEA,aAAiB5O,OACjB4O,aAAiB21D,MACjB31D,aAAiBimQ,IACjBjmQ,aAAiBizQ,IACjBjzQ,aAAiByyQ,IACjBzyQ,aAAiBsyQ,IACjBtyQ,aAAiB+yQ,IACjB/yQ,aAAiBozQ,IAIvB,SAASkB,GACPt0Q,EACAxO,EACAyK,GAEA,IAAKo4Q,GAAoBp4Q,K3Cl3BrB,SAAwB+D,GAC5B,MACmB,iBAAVA,GACG,OAAVA,IACC3T,OAAOivK,eAAet7J,KAAW3T,OAAOE,WACN,OAAjCF,OAAOivK,eAAet7J,G2C62BU,C3Cl3BhC,C2Ck3B8C/D,GAAQ,CACxD,MAAMuN,EAAcy5P,GAAiBhnQ,GACrC,KAAoB,cAAhBuN,EAEIhY,EAAQgtD,GAAYx+C,EAAU,oBAE9BxO,EAAQgtD,GAAYx+C,EAAU,IAAMwJ,IAoC1C,MAAApT,GAAsB,IAAIkuJ,OAAO,iBAWvB,SAAAmwH,GACdz0Q,EACAxO,EACAyK,GAGA,GADczK,EAAK6tI,OAAOjpI,KACb,EACX,MAAM09Q,GACJ,uBAAuBtiR,wDAEvBwO,GACoB,SAEpB/D,GAIJ,IACE,OAAO,IAAI02Q,MAAanhR,EAAKvC,MAAM,MAAM6jR,cACzC,MAAOtpQ,IACP,MAAMsqQ,GACJ,uBAAuBtiR,6EAEvBwO,GACoB,SAEpB/D,IAKN,SAAS63Q,GACP9zQ,EACAxO,EACAyK,EACAuN,EACA5Y,GAEA,MAAM6X,EAAUe,IAASA,EAAKi4P,UACxBn/P,OAAA,IAAc1R,EACpB,IAAIsO,EAAU,YAAY1N,+BACtByK,IACFiD,GAAW,0BAEbA,GAAW,KAEX,IAAIgU,EAAc,GAalB,OAZIzK,GAAWnG,KACb4Q,GAAe,UAEXzK,IACFyK,GAAe,aAAa1J,KAE1BlH,IACF4Q,GAAe,gBAAgBtiB,KAEjCsiB,GAAe,KAGV,IAAIqsP,GACT/lH,GACAt6I,EAAUc,EAASkT,GC5xBV,MAAAwhQ,GAUXhpR,WAAAA,CACSsU,EACAxO,EACAyK,EACAuN,EACA5Y,GAJA,KAAU+jR,WAAV30Q,EACA,KAAe40Q,gBAAfpjR,EACA,KAAI8lB,KAAJrb,EACA,KAAS44Q,UAATrrQ,EACA,KAAUsrQ,WAAVlkR,EAOL,MAAAk2B,GACF,OAAOzrB,KAAKic,KAAK0gB,KAAKwpO,cAMpB,OAAAn1O,GACF,OAAO,IAAIimP,GACTj3Q,KAAKs5Q,WACLt5Q,KAAKy5Q,WACLz5Q,KAAKic,MASTy9P,MAAAA,GACE,OAA0B,OAAnB15Q,KAAKw5Q,UAUdt5P,IAAAA,GACE,GAAKlgB,KAAKw5Q,UAEH,IAAIx5Q,KAAKy5Q,WAAY,CAG1B,MAAM90Q,EAAW,IAAIg1Q,GACnB35Q,KAAKs5Q,WACLt5Q,KAAKu5Q,gBACLv5Q,KAAKic,KACLjc,KAAKw5Q,UACY,MAEnB,OAAOx5Q,KAAKy5Q,WAAWG,cAAcj1Q,GAErC,OAAO3E,KAAKu5Q,gBAAgBnhF,aAC1Bp4L,KAAKw5Q,UAAUt5P,KAAKtnB,QAgB1Bsf,GAAAA,CAAIvT,GACF,GAAI3E,KAAKw5Q,UAAW,CAClB,MAAMrjR,EAAQ6J,KAAKw5Q,UAAUt5P,KAAKjC,MAChC47P,GAAsB,uBAAwBl1Q,IAEhD,GAAc,OAAVxO,EACF,OAAO6J,KAAKu5Q,gBAAgBnhF,aAAajiM,KAkB3C,MAAOwjR,WAGHN,GAORn5P,IAAAA,GACE,OAAOhG,MAAMgG,QAWJ,MAAA45P,GAWXzpR,WAAAA,CACEsU,EACSxO,GAAA,KAAK4jR,MAAL5jR,EAET6J,KAAKg6Q,MAAQr1Q,EAIX,QAAAs1Q,GACF,MAAO,IAAIj6Q,KAAK+5Q,OAId,QAAAj+Q,GACF,OAAOkE,KAAKi6Q,KAAK9pR,OAIf,SAAAy1Q,GACF,OAA4B,IAArB5lQ,KAAKi6Q,KAAK9pR,OAUnBstB,OAAAA,CACE9Y,EAGAxO,GAEA6J,KAAK+5Q,MAAMt8P,QAAQ9Y,EAAUxO,IA4CjB,SAAA0jR,GACdl1Q,EACAxO,GAEA,MAAmB,iBAARA,EACFijR,GAAgCz0Q,EAAYxO,GAC1CA,aAAemhR,GACjBnhR,EAAIshR,cAEJthR,EAAI4+P,UAAU0iB,cClbH,MAAAyC,IAkBhB,MAAgBC,WAAwBD,IA8ExC,MAAOE,WAAmCD,GAO9C9pR,WAAAA,CACmBsU,EACTxO,EACAyK,GAERsZ,QAJiB,KAAMmgQ,OAAN11Q,EACT,KAAG21Q,IAAHnkR,EACA,KAAM+gG,OAANt2F,EARD,KAAI4c,KAAG,QAahB,cAAA+zB,CACE5sC,EACAxO,EACAyK,GAEA,OAAO,IAAIw5Q,GAA2Bz1Q,EAAQxO,EAAKyK,GAGrD25Q,MAAAA,CACE51Q,GAEA,MAAMxO,EAAS6J,KAAKw6Q,OAAO71Q,GAE3B,OADA81Q,GAAuB91Q,EAAMmyQ,OAAQ3gR,GAC9B,IAAIygR,GACTjyQ,EAAMoyQ,UACNpyQ,EAAMkyQ,UACN5D,GAAqBtuQ,EAAMmyQ,OAAQ3gR,IAIvCqkR,MAAAA,CACE71Q,GAEA,MAAMxO,EAAS0iR,GAAkBl0Q,EAAMoyQ,WACjCn2Q,EAkkBM,SACd+D,EACAxO,EACAyK,EACAuN,EACA5Y,EACA6X,EACAnG,GAEA,IAAIpD,EACJ,GAAItO,EAAUsxQ,aAAc,CAC1B,GAAM,mBAAFz5P,GAAkC,uBAAAA,EACpC,MAAM,IAAI82P,GACR/lH,GACA,qCAAqC/wI,+BAElC,GAAM,OAAFA,GAAA,WAAsBA,EAAwB,CACvDstQ,GAAkCzzQ,EAAOmG,GACzC,MAAMjX,EAA8B,GACpC,IAAK,MAAMyK,KAAcqG,EACvB9Q,EAAcX,KAAKmlR,GAAqBxsQ,EAAYxJ,EAAO/D,IAE7DiD,EAAa,CAAEwoQ,WAAY,CAAEh7Q,OAAQ8E,SAErC0N,EAAa82Q,GAAqBxsQ,EAAYxJ,EAAOsC,EAInC,YAAlBmG,GACsB,WAAtBA,GACA,uBAAAA,GAEAstQ,GAAkCzzQ,EAAOmG,GAE3CvJ,EAAai1Q,GACXl4Q,EACAzK,EACA8Q,EACqB,OAAFmG,GAAwB,WAAFA,GAI7C,OADe8/P,GAAYj8Q,OAAOsE,EAAW6X,EAAIvJ,GAzCnC,CAjkBVc,EAAMmyQ,OACN,QACA3gR,EACAwO,EAAMoyQ,UAAUzB,YAChBt1Q,KAAKq6Q,OACLr6Q,KAAKs6Q,IACLt6Q,KAAKk3F,QAEP,OAAOt2F,GAkDL,MAAOg6Q,WAAuCV,GAIlD7pR,WAAAA,CAEWsU,EACQxO,GAEjB+jB,QAHS,KAAIsD,KAAJ7Y,EACQ,KAAiBk2Q,kBAAjB1kR,EAKnB,cAAAo7C,CACE5sC,EACAxO,GAEA,OAAO,IAAIykR,GAA+Bj2Q,EAAMxO,GAGlDqkR,MAAAA,CACE71Q,GAEA,MAAMxO,EAAgB6J,KAAK66Q,kBACxB98P,KAAI5nB,GACIA,EAAgBqkR,OAAO71Q,KAE/B2nB,QAAO3nB,GAAgBA,EAAampQ,aAAa39Q,OAAS,IAE7D,OAA6B,IAAzBgG,EAAchG,OACTgG,EAAc,GAGhB43Q,GAAgB98Q,OAAOkF,EAAe6J,KAAK86Q,gBAGpDP,MAAAA,CACE51Q,GAEA,MAAMxO,EAAe6J,KAAKw6Q,OAAO71Q,GACjC,OAAyC,IAArCxO,EAAa23Q,aAAa39Q,OAGrBwU,GA2xBb,SAA2BA,EAAsBxO,GAC/C,IAAIyK,EAAY+D,EAChB,MAAMwJ,EAAahY,EAAO03Q,sBAC1B,IAAK,MAAMlpQ,KAAawJ,EACtBssQ,GAAuB75Q,EAAW+D,GAClC/D,EAAYqyQ,GAAqBryQ,EAAW+D,GALhD,CAzxBsBA,EAAMmyQ,OAAQ3gR,GAEzB,IAAIygR,GACTjyQ,EAAMoyQ,UACNpyQ,EAAMkyQ,UACN5D,GAAqBtuQ,EAAMmyQ,OAAQ3gR,KAIvC4kR,oBAAAA,GACE,OAAO/6Q,KAAK66Q,kBAGdC,YAAAA,GACE,MAAqB,QAAd96Q,KAAKwd,KAAgB,MAAwB,MAuJlD,MAAOw9P,WAA6Bb,GAIxC9pR,WAAAA,CAEWsU,EACQxO,EACAyK,GAEjBsZ,QAJS,KAAIsD,KAAJ7Y,EACQ,KAAMs2Q,OAAN9kR,EACA,KAAU+kR,WAAVt6Q,EAKnB,cAAA2wC,CACE5sC,EACAxO,EACAyK,GAEA,OAAO,IAAIo6Q,GAAqBr2Q,EAAMxO,EAAQyK,GAGhD25Q,MAAAA,CACE51Q,GAEA,OAAO,IAAIiyQ,GACTjyQ,EAAMoyQ,UACNpyQ,EAAMkyQ,UpBtII,SACdlyQ,EACAxO,EACAyK,GAEA,OAAO,IAAI8xQ,GACT/tQ,EAAMg4B,KACNh4B,EAAMyiQ,gBACNziQ,EAAMguQ,gBAAgB54Q,QACtB4K,EAAM4jE,QAAQxuE,QACd5D,EACAyK,EACA+D,EAAM4tQ,QACN5tQ,EAAM6tQ,MoB0HJ,CpBvIU,CoBuIK7tQ,EAAMmyQ,OAAQ92Q,KAAKi7Q,OAAQj7Q,KAAKk7Q,cAoerD,SAASP,GACPh2Q,EACAxO,EACAyK,GAIA,GAA+B,iBAF/BA,EAAkBk0P,GAAmBl0P,IAEI,CACvC,GAAwB,KAApBA,EACF,MAAM,IAAIsjQ,GACR/lH,GACA,qHAIJ,IAAK00H,GAAuB18Q,KAA4C,IAAlCyK,EAAgBpC,QAAQ,KAC5D,MAAM,IAAI0lQ,GACR/lH,GAGE,yGAAIv9I,gCAGV,MAAMuN,EAAOhY,EAAMwmC,KAAKw6F,MAAMovI,GAAajnP,WAAW1e,IACtD,IAAKqmQ,GAAYO,cAAcr5P,GAC7B,MAAM,IAAI+1P,GACR/lH,GAGE,kIAAQhwI,uDAA0DA,EAAKhe,YAG7E,OAAOu8Q,GAAS/nQ,EAAY,IAAIsiQ,GAAY94P,IACvC,GAAIvN,aAA2Bq2Q,GACpC,OAAOvK,GAAS/nQ,EAAY/D,EAAgBqb,MAE5C,MAAM,IAAIioP,GACR/lH,GAGE,uHAAGypH,GAAiBhnQ,OAS5B,SAAS85Q,GACP/1Q,EACAxO,GAEA,IAAKJ,MAAMC,QAAQ2O,IAA2B,IAAjBA,EAAMxU,OACjC,MAAM,IAAI+zQ,GACR/lH,GAEE,qDAAIhoJ,EAAS+D,wBAkCrB,SAASugR,GACP91Q,EACAxO,GAEA,MAAMyK,EAiCR,SACE+D,EACAxO,GAEA,IAAK,MAAMyK,KAAU+D,EACnB,IAAK,MAAMA,KAAe/D,EAAOitQ,sBAC/B,GAAI13Q,EAAUqI,QAAQmG,EAAY+6B,KAAO,EACvC,OAAO/6B,EAAY+6B,GAIzB,OAAO,KAXT,CAhCI/6B,EAAM4jE,QAxBV,SAAwB5jE,GACtB,OAAQA,GACN,IAAK,KACH,MAAO,CAAC,KAAD,UACT,IAAiC,qBACjC,IAAK,KACH,MAAO,CAAC,UACV,IAAK,SACH,MAAO,CAAC,qBAAD,oBAMT,QACE,MAAO,GAUT,CAzBJ,CAyBmBxO,EAAYupC,KAE7B,GAAsB,OAAlB9+B,EAEF,MAAIA,IAAkBzK,EAAYupC,GAC1B,IAAIwkO,GACR/lH,GAEE,gDAAIhoJ,EAAYupC,GAAGxlC,uBAGjB,IAAIgqQ,GACR/lH,GACA,kCAAkChoJ,EAAYupC,GAAGxlC,6BACtC0G,EAAc1G,wBC5/B3B,MAAOihR,WCnCS,MACpB/iF,YAAAA,CACEzzL,GACmD,IAAnDxO,EAAmDrE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,UAEnD,OAAQ65Q,GAAUhnQ,IAChB,KAAK,EACH,OAAO,KACT,KAAK,EACH,OAAOA,EAAMknQ,aACf,KAAK,EACH,OAAOnB,GAAgB/lQ,EAAMwnQ,cAAgBxnQ,EAAMynQ,aACrD,KAAK,EACH,OAAOpsQ,KAAKo7Q,iBAAiBz2Q,EAAM+mQ,gBACrC,KAAK,EACH,OAAO1rQ,KAAKq7Q,uBAAuB12Q,EAAOxO,GAC5C,KAAK,EACH,OAAOwO,EAAMg9F,YACf,KAAK,EACH,OAAO3hG,KAAKs7Q,aAAa3Q,GAAoBhmQ,EAAMmnQ,aACrD,KAAK,EACH,OAAO9rQ,KAAKu7Q,iBAAiB52Q,EAAMonQ,gBACrC,KAAK,EACH,OAAO/rQ,KAAKw7Q,gBAAgB72Q,EAAMqnQ,eACpC,KAAK,EACH,OAAOhsQ,KAAKy7Q,aAAa92Q,EAAM0nQ,WAAal2Q,GAC9C,KAAK,GACH,OAAO6J,KAAK07Q,cAAc/2Q,EAAMymQ,SAAWj1Q,GAC7C,KAAK,GACH,OAAO6J,KAAK27Q,mBAAmBh3Q,EAAMymQ,UACvC,QACE,MA/DOrH,MAmEL2X,aAAAA,CACN/2Q,EACAxO,GAEA,OAAO6J,KAAK47Q,iBAAiBj3Q,EAAS9O,OAAQM,GAMhDylR,gBAAAA,CACEj3Q,GACmD,IAAnDxO,EAAmDrE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,UAEnD,MAAM8O,EAAuB,GAI7B,OAHA6c,GAAQ9Y,GAAQ,CAACA,EAAKwJ,KACpBvN,EAAO+D,GAAO3E,KAAKo4L,aAAajqL,EAAOhY,EAAA,IAElCyK,EAMT+6Q,kBAAAA,CAAmBh3Q,aACjB,MAAMpP,EAEc,QAFL4Y,EAAe,QAAAvN,EAAA,QAAfzK,EAAAwO,EAAS9O,cAAA,IAAMM,OAAA,EAAAA,EACNyC,MACtByzQ,kBAAA,IAAAzrQ,OAAA,EAAAA,EAAYvP,cAAA,IAAM8c,OAAA,EAAAA,EAAE4P,KAAIpZ,GACjB+lQ,GAAgB/lQ,EAAMynQ,eAG/B,OAAO,IAAI2L,GAAYxiR,GAGjBimR,eAAAA,CAAgB72Q,GACtB,OAAO,IAAIizQ,GACTlN,GAAgB/lQ,EAAMsnQ,UACtBvB,GAAgB/lQ,EAAMunQ,YAIlBuP,YAAAA,CACN92Q,EACAxO,GAEA,OAAQwO,EAAWtT,QAAU,IAAI0sB,KAAIpZ,GACnC3E,KAAKo4L,aAAazzL,EAAOxO,KAIrBklR,sBAAAA,CACN12Q,EACAxO,GAEA,OAAQA,GACN,IAAK,WACH,MAAMyK,EAAgB0qQ,GAAiB3mQ,GACvC,OAAqB,MAAjB/D,EACK,KAEFZ,KAAKo4L,aAAax3L,EAAezK,GAC1C,IAAK,WACH,OAAO6J,KAAKo7Q,iBAAiB5P,GAAkB7mQ,IACjD,QACE,OAAO,MAILy2Q,gBAAAA,CAAiBz2Q,GACvB,MAAMxO,EAAkBo0Q,GAAmB5lQ,GAC3C,OAAO,IAAIimQ,GAAUz0Q,EAAgBq0Q,QAASr0Q,EAAgBs0Q,OAGtDoR,kBAAAA,CACRl3Q,EACAxO,GAEA,MAAMyK,EAAe2lQ,GAAajnP,WAAW3a,GA3HvBq/P,GA6HpB4P,GAAoBhzQ,IAGtB,MAAMuN,EAAa,IAAIs3P,GAAW7kQ,EAAasX,IAAI,GAAItX,EAAasX,IAAI,IAClE3iB,EAAM,IAAI0xQ,GAAYrmQ,EAAaolQ,SAAS,IAalD,OAXK73P,EAAWm1P,QAAQntQ,IAEtB0tQ,GACE,YAAYtuQ,gEAEP4Y,EAAWu3P,aAAav3P,EAAWw3P,gGAEzBxvQ,EAAmBuvQ,aAAavvQ,EAAmBwvQ,sBAI/DpwQ,ID/FTlF,WAAAA,CAAsBsU,GACpBuV,QADoB,KAAS68P,UAATpyQ,EAIZ22Q,YAAAA,CAAa32Q,GACrB,OAAO,IAAIyyQ,GAAMzyQ,GAGT42Q,gBAAAA,CAAiB52Q,GACzB,MAAMxO,EAAM6J,KAAK67Q,mBAAmBl3Q,EAAM3E,KAAK+2Q,UAAUzB,aACzD,OAAO,IAAI2B,GAAkBj3Q,KAAK+2Q,UAA4B,KAAM5gR,IAsDlE,SAAU2lR,GACdn3Q,IDpGI,SACJA,GAEA,GACoC,MAAlCA,EAAMiuQ,WAC2B,IAAjCjuQ,EAAMguQ,gBAAgBxiR,OAEtB,MAAM,IAAI+zQ,GACRvuQ,GACA,0EATA,ECsGJgP,EAAQkjQ,GAAuCljQ,EAAOiyQ,KACPE,QAE/C,MAAM3gR,EAAY8+Q,GAAatwQ,EAAMoyQ,WAC/Bn2Q,EAAiB,IAAIu6Q,GAAmBx2Q,EAAMoyQ,WACpD,OjBoEKlhG,eACLlxK,EACAxO,GAEA,MAAMyK,EAAgBqjQ,GAAUt/P,IAC1ByN,EAAEjE,EAAW8qD,OAAE1jE,GAAWs+Q,GAC9BjzQ,EAAco0Q,WACdjC,GAAc58Q,IAQhB,aANuByK,EAAc2R,EAGnC,WAAY3R,EAAco0Q,WAAW9P,WAAY3vQ,EAAQ,CACzDu+Q,gBAAiB3lQ,EAAY2lQ,mBAK1BxnP,QAAO3nB,KAAWA,EAAMkuB,WACxB9U,KAAIpZ,GFyKK,SACdA,EACAxO,EACAyK,GAEA,MAAMuN,EAAMg5P,GAASxiQ,EAAYxO,EAAS5E,MACpCgE,EAAUk+Q,GAAYt9Q,EAAS4lR,YAI/B3uQ,EAAajX,EAAS86Q,WACxBwC,GAAYt9Q,EAAS86Q,YACrB9C,GAAgBptQ,MACdkG,EAAO,IAAIypQ,GAAY,CAAEtF,SAAU,CAAEv1Q,OAAQM,EAASN,UACtDgO,EAASitQ,GAAgBM,iBAC7BjjQ,EACA5Y,EACA6X,EACAnG,GAKF,OAHIrG,GACFiD,EAAO6tQ,2BAEF9wQ,EAAwBiD,EAAO6tQ,2BAA6B7tQ,EAvBrD,CExKKjD,EAAco0Q,WAAYrwQ,EAAMkuB,cAAW,KiBxFvDmpP,CAAkB7lR,EAAWwO,EAAMmyQ,QAAQjgK,MAAK1gH,IACrD,MAAMgY,EAAOhY,EAAO4nB,KAClB5nB,GACE,IAAIwjR,GACFh1Q,EAAMoyQ,UACNn2Q,EACAzK,EAAIoiB,IACJpiB,EACAwO,EAAMkyQ,aAWZ,MAAO,MAPHlyQ,EAAMmyQ,OAAOlE,WAIfzkQ,EAAKrP,UAGA,IAAIg7Q,GAAyCn1Q,EAAOwJ,EAAA,KvDvKzD,SAAwBxJ,GAC5B8T,GAAc9T,GADV,CyDoBU,GAAGq6P,WACjBf,GACE,IAAIhzG,GACF,kBACA,CAACtmJ,EAAAuuB,KAAsD,IAAzCijO,mBAAoBhgQ,EAAY60B,QAASpqB,GAAAsyB,EACrD,MAAM/kB,EAAMxJ,EAAU2yP,YAAY,OAAOlB,eACnC7gQ,EAAoB,IAAIwgR,GAC5B,IAAIrR,GACF//P,EAAU2yP,YAAY,kBAExB,IAAIyN,GACFpgQ,EAAU2yP,YAAY,uBnDiClB,SACd3yP,EACAxO,GAEA,IAAKnF,OAAOE,UAAU2G,eAAeqkB,MAAMvX,EAAIqmB,QAAS,CAAC,cACvD,MAAM,IAAIk5O,GACR/lH,GACA,uDAIJ,OAAO,IAAIsnH,GAAW9gQ,EAAIqmB,QAAQ06O,UAAYvvQ,GAXhC,CmD/BYgY,EAAKhY,GACvBgY,GAKF,OAHIvN,GACFrL,EAAkB8gR,aAAaz1Q,GAE1BrL,CAAA,GAET,UACA+/P,sBAAqB,IAGzBgK,GAAgB,yBAA2B,IAC3CA,GAAgB,iBAA2B,iFCrC7C,MACA,GAAe,sBAA0B,gFCFzC,SAjBA,SAAyBthP,GAIG,IAJF,UACxBi+P,EAAS,KACTniN,KACGoiL,GACoBl+N,EACvB,OACE2+L,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,6BAA8Bm+J,EAAS1tJ,SAAA,EAC1Dw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK6pR,GACLjrK,IAAI,iBACJlzB,UAAU,eAEZipF,EAAAA,GAAAA,KAAA,QAAMjpF,UAAW,IAAIk+L,cAAsBztL,SAAE10B,MAGnD,ECPAwlM,wBAA+B,OCYxB,IAAI3kJ,GAAW,WAQpB,OAPAA,GAAW3pH,OAAOG,QAAU,SAAkBwT,GAC1C,IAAK,IAAIyI,EAAG7X,EAAI,EAAG4Y,EAAIrc,UAAU3B,OAAQoF,EAAI4Y,EAAG5Y,IAE5C,IAAK,IAAImY,KADTN,EAAItb,UAAUyD,GACOvE,OAAOE,UAAU2G,eAAeC,KAAKsV,EAAGM,KAAI/I,EAAE+I,GAAKN,EAAEM,IAE9E,OAAO/I,CACX,EACOg2G,GAASz+F,MAAMlc,KAAMlO,UAC9B,EAEO,SAASqqR,GAAO/uQ,EAAGjX,GACxB,IAAIwO,EAAI,CAAC,EACT,IAAK,IAAI+I,KAAKN,EAAOpc,OAAOE,UAAU2G,eAAeC,KAAKsV,EAAGM,IAAMvX,EAAEqI,QAAQkP,GAAK,IAC9E/I,EAAE+I,GAAKN,EAAEM,IACb,GAAS,MAALN,GAAqD,oBAAjCpc,OAAOm4J,sBACtB,KAAI5zJ,EAAI,EAAb,IAAgBmY,EAAI1c,OAAOm4J,sBAAsB/7I,GAAI7X,EAAImY,EAAEvd,OAAQoF,IAC3DY,EAAEqI,QAAQkP,EAAEnY,IAAM,GAAKvE,OAAOE,UAAUk4J,qBAAqBtxJ,KAAKsV,EAAGM,EAAEnY,MACvEoP,EAAE+I,EAAEnY,IAAM6X,EAAEM,EAAEnY,IAF4B,CAItD,OAAOoP,CACT,CA8DO,SAASi2G,GAAU83E,EAAS6c,EAAYv5F,EAAG7qF,GAEhD,OAAO,IAAK6qF,IAAMA,EAAIvD,WAAU,SAAU24B,EAASu2B,GAC/C,SAASy3B,EAAUxgM,GAAS,IAAM42M,EAAKrkL,EAAUjU,KAAKte,GAAS,CAAE,MAAOzC,IAAKwrK,EAAOxrK,GAAI,CAAE,CAC1F,SAASkjM,EAASzgM,GAAS,IAAM42M,EAAKrkL,EAAiB,MAAEvyB,GAAS,CAAE,MAAOzC,IAAKwrK,EAAOxrK,GAAI,CAAE,CAC7F,SAASq5M,EAAKz2L,GAJlB,IAAengB,EAIamgB,EAAO+hG,KAAOswB,EAAQryH,EAAOngB,QAJ1CA,EAIyDmgB,EAAOngB,MAJhDA,aAAiBo9G,EAAIp9G,EAAQ,IAAIo9G,GAAE,SAAUo1B,GAAWA,EAAQxyI,EAAQ,KAIjBi+G,KAAKuiF,EAAWC,EAAW,CAC7GmW,GAAMrkL,EAAYA,EAAUjP,MAAMw2K,EAAS6c,GAAc,KAAKr4L,OAClE,GACF,CAEO,SAAS6jG,GAAY23E,EAASnkJ,GACnC,IAAsG9jB,EAAGne,EAAG3H,EAAG4N,EAA3GzD,EAAI,CAAEksG,MAAO,EAAGvG,KAAM,WAAa,GAAW,EAAP9vG,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGs2G,KAAM,GAAIC,IAAK,IAChG,OAAO3oG,EAAI,CAAE2E,KAAMklQ,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX35Q,SAA0B8P,EAAE9P,OAAOi1B,UAAY,WAAa,OAAO13B,IAAM,GAAIuS,EACvJ,SAAS6pQ,EAAKjuQ,GAAK,OAAO,SAAUxY,GAAK,OACzC,SAAc+pC,GACV,GAAIjV,EAAG,MAAM,IAAI56B,UAAU,mCAC3B,KAAO0iB,IAAMA,EAAI,EAAGmtB,EAAG,KAAO5wB,EAAI,IAAKA,OACnC,GAAI2b,EAAI,EAAGne,IAAM3H,EAAY,EAAR+6B,EAAG,GAASpzB,EAAU,OAAIozB,EAAG,GAAKpzB,EAAS,SAAO3H,EAAI2H,EAAU,SAAM3H,EAAE7M,KAAKwU,GAAI,GAAKA,EAAE4K,SAAWvS,EAAIA,EAAE7M,KAAKwU,EAAGozB,EAAG,KAAKo7E,KAAM,OAAOn2G,EAE3J,OADI2H,EAAI,EAAG3H,IAAG+6B,EAAK,CAAS,EAARA,EAAG,GAAQ/6B,EAAE/L,QACzB8mC,EAAG,IACP,KAAK,EAAG,KAAK,EAAG/6B,EAAI+6B,EAAI,MACxB,KAAK,EAAc,OAAX5wB,EAAEksG,QAAgB,CAAEpiH,MAAO8mC,EAAG,GAAIo7E,MAAM,GAChD,KAAK,EAAGhsG,EAAEksG,QAAS1uG,EAAIozB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAK5wB,EAAEosG,IAAInwD,MAAOj8C,EAAEmsG,KAAKlwD,MAAO,SACxC,QACI,KAAkBpmD,GAAZA,EAAImK,EAAEmsG,MAAY9qH,OAAS,GAAKwU,EAAEA,EAAExU,OAAS,MAAkB,IAAVuvC,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAE5wB,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAV4wB,EAAG,MAAc/6B,GAAM+6B,EAAG,GAAK/6B,EAAE,IAAM+6B,EAAG,GAAK/6B,EAAE,IAAM,CAAEmK,EAAEksG,MAAQt7E,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAY5wB,EAAEksG,MAAQr2G,EAAE,GAAI,CAAEmK,EAAEksG,MAAQr2G,EAAE,GAAIA,EAAI+6B,EAAI,KAAO,CACpE,GAAI/6B,GAAKmK,EAAEksG,MAAQr2G,EAAE,GAAI,CAAEmK,EAAEksG,MAAQr2G,EAAE,GAAImK,EAAEosG,IAAI1lH,KAAKkqC,GAAK,KAAO,CAC9D/6B,EAAE,IAAImK,EAAEosG,IAAInwD,MAChBj8C,EAAEmsG,KAAKlwD,MAAO,SAEtBrrB,EAAK6O,EAAKz2C,KAAK46L,EAAS5jL,EAC5B,CAAE,MAAO3Y,IAAKupC,EAAK,CAAC,EAAGvpC,IAAImW,EAAI,CAAG,CAAE,QAAUme,EAAI9lB,EAAI,CAAG,CACzD,GAAY,EAAR+6B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9mC,MAAO8mC,EAAG,GAAKA,EAAG,QAAK,EAAQo7E,MAAM,EAC9E,CAtBgD00F,CAAK,CAACrhM,EAAGxY,GAAK,CAAG,CAuBnE,CAE6B3E,OAAOC,OA6D7B,SAASorR,GAAcnkO,EAAIloD,EAAMssR,GACtC,GAAIA,GAA6B,IAArBxqR,UAAU3B,OAAc,IAAK,IAA4BosR,EAAxBhnR,EAAI,EAAGmX,EAAI1c,EAAKG,OAAYoF,EAAImX,EAAGnX,KACxEgnR,GAAQhnR,KAAKvF,IACRusR,IAAIA,EAAKxmR,MAAM7E,UAAU6I,MAAMjC,KAAK9H,EAAM,EAAGuF,IAClDgnR,EAAGhnR,GAAKvF,EAAKuF,IAGrB,OAAO2iD,EAAGz9B,OAAO8hQ,GAAMxmR,MAAM7E,UAAU6I,MAAMjC,KAAK9H,GACpD,CAsCyBgB,OAAOC,OA2DkB,oBAApBurR,iBAAiCA,gBC+E/D,SAASC,KAIP,MAAO,CACL,wCACE,0LAIN,CASO,MASMC,GAA6BD,GAuD7BE,GAA8B,IAAIlqB,GAG7C,OAAQ,WAlFD,CACL,wCACE,4LC7XAmqB,GAAY,IAAIzlC,GAAO,2BAuBb0lC,GAAUx9Q,GACxB,GAAIu9Q,GAAUxkB,UAAYlqB,GAAS4pB,MAAO,SAAAh6D,EAAAhsM,UAAA3B,OADF6rB,EAAc,IAAAjmB,MAAA+nM,EAAA,EAAAA,EAAA,KAAA86D,EAAA,EAAAA,EAAA96D,EAAA86D,IAAd58O,EAAc48O,EAAA,GAAA9mQ,UAAA8mQ,GAEpDgkB,GAAUj/P,MAAM,SAASqhP,QAAiB3/P,OAAU2c,EACrD,CACH,UCWgB8gQ,GACdC,GACkB,QAAApkB,EAAA7mQ,UAAA3B,OAAf09B,EAAe,IAAA93B,MAAA4iQ,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAfjrO,EAAeirO,EAAA,GAAAhnQ,UAAAgnQ,GAElB,MAAMkkB,GAAoBD,KAAelvP,EAC3C,UAagBovP,GACdF,GACkB,QAAAlkB,EAAA/mQ,UAAA3B,OAAf09B,EAAe,IAAA93B,MAAA8iQ,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAfnrO,EAAemrO,EAAA,GAAAlnQ,UAAAknQ,GAElB,OAAOgkB,GAAoBD,KAAelvP,EAC5C,UAEgBqvP,GACd75E,EACA9kM,EACA0b,GAEA,MAAMkjQ,EACAnsR,OAAAG,OAAAH,OAAAG,OAAA,GAAAurR,MAAoC,CACxC,CAACn+Q,GAAO0b,IAOV,OALgB,IAAIw4O,GAClB,OACA,WACA0qB,GAEalsR,OAAOsN,EAAM,CAC1BwgQ,QAAS17D,EAAK9xM,MAElB,CAEM,SAAU6rR,GACd/5E,GAEA,OAAO65E,GACL75E,EAEA,+IAEJ,CAsBA,SAAS25E,GACPD,GACkB,QAAAhkB,EAAAjnQ,UAAA3B,OAAf09B,EAAe,IAAA93B,MAAAgjQ,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAfrrO,EAAeqrO,EAAA,GAAApnQ,UAAAonQ,GAElB,GAA0B,kBAAf6jB,EAAyB,CAClC,MAAMx+Q,EAAOsvB,EAAK,GACZwvP,EAAa,IAAIxvP,EAAK9zB,MAAM,IAKlC,OAJIsjR,EAAW,KACbA,EAAW,GAAGte,QAAUge,EAAWxrR,MAG7BwrR,EAA4BO,cAAcrsR,OAChDsN,KACG8+Q,EAEN,CAED,OAAOV,GAA4B1rR,OACjC8rR,KACIlvP,EAER,CAeM,SAAU0vP,GACdC,EACAT,GAGA,IAAKS,EAAW,SAAAvkB,EAAAnnQ,UAAA3B,OAFb09B,EAAe,IAAA93B,MAAAkjQ,EAAA,EAAAA,EAAA,KAAAue,EAAA,EAAAA,EAAAve,EAAAue,IAAf3pP,EAAe2pP,EAAA,GAAA1lR,UAAA0lR,GAGhB,MAAMwF,GAAoBD,KAAelvP,EAC1C,CACH,CA4FM,SAAU4vP,GAAUC,GAGxB,MAAMzjQ,EAAU,8BAAgCyjQ,EAMhD,MALAb,GAAU5iQ,GAKJ,IAAItoB,MAAMsoB,EAClB,CASgB,SAAA0jQ,GACdH,EACAvjQ,GAEKujQ,GACHC,GAAUxjQ,EAEd,UCvRgB2jQ,WACd,MAAwB,qBAATh6Q,OAAqC,QAAb8qB,EAAA9qB,KAAKs+B,gBAAQ,IAAAxT,OAAA,EAAAA,EAAEg5B,OAAS,EACjE,UAEgBm2N,KACd,MAA+B,UAAxBC,MAA2D,WAAxBA,IAC5C,UAEgBA,WACd,MAAwB,qBAATl6Q,OAAqC,QAAb8qB,EAAA9qB,KAAKs+B,gBAAQ,IAAAxT,OAAA,EAAAA,EAAE22J,WAAa,IACrE,UCJgB04F,KACd,QACuB,qBAAd1pP,WACPA,WACA,WAAYA,WACgB,mBAArBA,UAAU2pP,SAMhBH,iB3FyEH,MAAM37G,EACc,kBAAX+7G,OACHA,OAAO/7G,QACY,kBAAZhvE,QACPA,QAAQgvE,aACRnwK,EACN,MAA0B,kBAAZmwK,QAAuCnwK,IAAfmwK,EAAQz2I,EAChD,C2FhFyByyP,IAAwB,eAAgB7pP,aAEtDA,UAAU2pP,MAIrB,OCVaG,GAIX9tR,WAAAA,CACmB+tR,EACAC,GADA,KAAUD,WAAVA,EACA,KAASC,UAATA,EAGjBV,GACEU,EAAYD,EACZ,+CAEFp+Q,KAAKs+Q,S5FMa,qBAAXh+Q,WAGJA,OAAgB,SAAKA,OAAiB,UAAKA,OAAiB,WAC/D,oDAAoD03B,KAAKo8H,OAsEpC,kBAAd//H,WAAmD,gBAAzBA,UAAmB,Q4F7EtDnc,GAAAA,GACE,OAAK6lQ,KAQE/9Q,KAAKs+Q,SAAWt+Q,KAAKq+Q,UAAYr+Q,KAAKo+Q,WANpClsR,KAAK6O,IAAI,IAAkBf,KAAKo+Q,aC7B7B,SAAAG,GAAazuP,EAAwB6M,GACnDghP,GAAY7tP,EAAO0uP,SAAU,sCAC7B,MAAM,IAAExhP,GAAQlN,EAAO0uP,SAEvB,OAAK7hP,EAIE,GAAGK,IAAML,EAAK0uI,WAAW,KAAO1uI,EAAK5iC,MAAM,GAAK4iC,IAH9CK,CAIX,OCVayhP,GAKX,iBAAOv4K,CACLw4K,EACAC,EACAC,GAEA5+Q,KAAK0+Q,UAAYA,EACbC,IACF3+Q,KAAK2+Q,YAAcA,GAEjBC,IACF5+Q,KAAK4+Q,aAAeA,GAIxB,YAAO1qL,GACL,OAAIl0F,KAAK0+Q,UACA1+Q,KAAK0+Q,UAEM,qBAAT96Q,MAAwB,UAAWA,KACrCA,KAAKswF,MAEY,qBAAfusE,YAA8BA,WAAWvsE,MAC3CusE,WAAWvsE,MAEC,qBAAVA,MACFA,WAETupL,GACE,mHAIJ,cAAOvlG,GACL,OAAIl4K,KAAK2+Q,YACA3+Q,KAAK2+Q,YAEM,qBAAT/6Q,MAAwB,YAAaA,KACvCA,KAAKshL,QAEY,qBAAfzkB,YAA8BA,WAAWykB,QAC3CzkB,WAAWykB,QAEG,qBAAZA,QACFA,aAETu4F,GACE,qHAIJ,eAAOzxP,GACL,OAAIhsB,KAAK4+Q,aACA5+Q,KAAK4+Q,aAEM,qBAATh7Q,MAAwB,aAAcA,KACxCA,KAAKsiM,SAEY,qBAAfzlC,YAA8BA,WAAWylC,SAC3CzlC,WAAWylC,SAEI,qBAAbA,SACFA,cAETu3E,GACE,uHC4CC,MAAMoB,GAAyD,CAEpE,oBAAoE,wBAEpE,qBAAgE,iBAGhE,mBAA6D,gBAE7D,qBAAgE,iBAGhE,iBAA8D,iBAE9D,iBAA8D,mBAG9D,0BAAyE,qBAGzE,aAAsD,uBACtD,wBAA0E,wBAG1E,qBAAoE,qBACpE,sBAAqE,qBACrE,iCACyC,4BAGzC,iBAA4D,iBAG5D,gBAAyD,iBACzD,4BAC2C,oBAE3C,iBAA8D,sBAC9D,iBAA8D,sBAE9D,iBAA4D,iBAG5D,+BAC8C,wBAC9C,iBAA0D,qBAC1D,cAAwD,qBACxD,eAAyD,qBAGzD,4BAC2C,oBAC3C,oCACmD,sCAGnD,aAAsD,4BACtD,qBAAsE,0BACtE,wBAAuE,qBACvE,qBAAsE,0BACtE,gBAAyD,eAKzD,6BAC4C,2BAC5C,oBAAoE,4BAGpE,wBAA4E,0BAG5E,qBAAsE,6BAGtE,+BACmC,+BACnC,yBAAwE,8BACxE,0BAAuE,4BACvE,+BACmC,+BACnC,qBAC8C,+BAC9C,6BAC4C,uCAG5C,iCAA4E,iBAG5E,sBAAwE,wBACxE,wBAA4E,0BAC5E,wBAA4E,0BAC5E,yBACwC,2BACxC,oBAAoE,sBACpE,0BACyC,4BACzC,0BACyC,4BACzC,iBAA8D,oBClInDC,GAAyB,IAAIX,GAAM,IAAQ,KAExC,SAAAY,GACd17E,EACA/3K,GAEA,OAAI+3K,EAAK27E,WAAa1zP,EAAQ0zP,SAC5BhuR,OAAAG,OAAAH,OAAAG,OAAA,GACKm6B,GACH,CAAA0zP,SAAU37E,EAAK27E,WAGZ1zP,CACT,CAEOuqJ,eAAeopG,GACpB57E,EACA93K,EACAoR,EACArR,GAGA,OAAO4zP,GAA+B77E,EAFtCvxM,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAuD,CAAC,GAEI+jL,UAC1D,IAAItnI,EAAO,CAAC,EACR/iB,EAAS,CAAC,EACVF,IACa,QAAXC,EACFC,EAASF,EAETijB,EAAO,CACLA,KAAMziB,KAAKC,UAAUT,KAK3B,MAAM0uP,EAAQ1mB,GAAWtiQ,OAAAG,OAAC,CACxBonB,IAAK8qL,EAAKvzK,OAAO2+M,QACdjjN,IACFzxB,MAAM,GAEHm+K,QAAiBmrB,EAAsB87E,wBAO7C,OANAjnG,EAAQ,gBAA2B,mBAE/BmrB,EAAK+7E,eACPlnG,EAAqC,qBAAGmrB,EAAK+7E,cAGxCX,GAAcvqL,OAAduqL,CACLY,GAAgBh8E,EAAMA,EAAKvzK,OAAOwvP,QAAS3iP,EAAMq9O,GAAMhpR,OAAAG,OAAA,CAErDo6B,SACA2sJ,UACAqnG,eAAgB,eACbhxO,GAEN,GAEL,CAEOsnI,eAAeqpG,GACpB77E,EACAm8E,EACAC,GAECp8E,EAAsBq8E,kBAAmB,EAC1C,MAAMvC,EAAgBnsR,OAAAG,OAAAH,OAAAG,OAAA,GAAA0tR,IAAqBW,GAC3C,IACE,MAAMG,EAAiB,IAAIC,GAAyBv8E,GAC9Cr3K,QAA2BymF,QAAQyxE,KAAwB,CAC/Du7F,IACAE,EAAej+G,UAKjBi+G,EAAeE,sBAEf,MAAMjwG,QAAa5jJ,EAAS4jJ,OAC5B,GAAI,qBAAsBA,EACxB,MAAMkwG,GAAiBz8E,EAAuC,2CAAAzzB,GAGhE,GAAI5jJ,EAAS+0H,MAAQ,iBAAkB6uB,GACrC,OAAOA,EACF,CACL,MAAMoW,EAAeh6J,EAAS+0H,GAAK6uB,EAAKoW,aAAepW,EAAKjyJ,MAAM1D,SAC3D8lQ,EAAiBC,GAAsBh6F,EAAapyL,MAAM,OACjE,GAAwB,qCAApBmsR,EACF,MAAMD,GACJz8E,EAEA,4BAAAzzB,GAEG,GAAwB,iBAApBmwG,EACT,MAAMD,GAAiBz8E,EAAkC,uBAAAzzB,GACpD,GAAwB,kBAApBmwG,EACT,MAAMD,GAAiBz8E,EAAmC,gBAAAzzB,GAE5D,MAAMqwG,EACJ9C,EAAS4C,IACRA,EACEr/P,cACAnf,QAAQ,UAAW,KACxB,GAAIy+Q,EACF,MAAM9C,GAAwB75E,EAAM48E,EAAWD,GAE/ClD,GAAMz5E,EAAM48E,EAEf,CACF,CAAC,MAAO9pR,IACP,GAAIA,cAAao8P,GACf,MAAMp8P,GAKR2mR,GAAMz5E,EAA4C,0BAAE,QAAWjpM,OAAOjE,KACvE,CACH,CAEO0/K,eAAeqqG,GACpB78E,EACA93K,EACAoR,EACArR,GACyD,IAAzDk0P,EAAA1tR,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAuD,CAAC,EAExD,MAAMquR,QAAwBlB,GAC5B57E,EACA93K,EACAoR,EACArR,EACAk0P,GAQF,MANI,yBAA0BW,GAC5BrD,GAAMz5E,EAAkC,8BACtC+8E,gBAAiBD,IAIdA,CACT,CAEM,SAAUd,GACdh8E,EACAvC,EACAnkK,EACAq9O,GAEA,MAAMn6Q,EAAO,GAAGihM,IAAOnkK,KAAQq9O,IAE/B,OAAM32E,EAAsBvzK,OAAO0uP,SAI5BD,GAAal7E,EAAKvzK,OAA0BjwB,GAH1C,GAAGwjM,EAAKvzK,OAAOuwP,eAAexgR,GAIzC,CAEM,SAAUygR,GACdC,GAEA,OAAQA,GACN,IAAK,UACH,MAAgC,UAClC,IAAK,QACH,MAA8B,QAChC,IAAK,MACH,MAA4B,MAC9B,QACE,MAAsD,gCAE5D,CAEA,MAAMX,GAiBJvvR,WAAAA,CAA6BgzM,GAAA,KAAIA,KAAJA,EAbrB,KAAK3D,MAAe,KACnB,KAAOh+B,QAAG,IAAIjvD,SAAW,CAAC3jG,EAAG6yJ,KACpC3hK,KAAK0/L,MAAQz0J,YAAW,IACf02H,EACLs7G,GAAaj9Q,KAAKqjM,KAA2C,4BAE9Dy7E,GAAuB5mQ,MAAM,IAGlC2nQ,mBAAAA,GACE78J,aAAahjH,KAAK0/L,iBAWNogF,GACdz8E,EACA9kM,EACAytB,GAEA,MAAMw0P,EAAgC,CACpCzhB,QAAS17D,EAAK9xM,MAGZy6B,EAAS63G,QACX28I,EAAY38I,MAAQ73G,EAAS63G,OAE3B73G,EAASy0P,cACXD,EAAYC,YAAcz0P,EAASy0P,aAGrC,MAAM9iQ,EAAQs/P,GAAa55E,EAAM9kM,EAAMiiR,GAIvC,OADC7iQ,EAAM60O,WAAwCkuB,eAAiB10P,EACzDrO,CACT,CCrQM,SAAUgjQ,GACdC,GAEA,YACiB7uR,IAAf6uR,QACkD7uR,IAAjD6uR,EAAkCC,UAEvC,OASaC,GAWXzwR,WAAAA,CAAY27B,GACV,GARF,KAAO+0P,QAAW,GAKlB,KAAyBC,0BAAwC,QAGjCjvR,IAA1Bi6B,EAASi1P,aACX,MAAM,IAAItvR,MAAM,0BAGlBqO,KAAK+gR,QAAU/0P,EAASi1P,aAAartR,MAAM,KAAK,GAChDoM,KAAKghR,0BAA4Bh1P,EAASg1P,0BAS5CE,2BAAAA,CAA4BC,GAC1B,IACGnhR,KAAKghR,2BACoC,IAA1ChhR,KAAKghR,0BAA0B7wR,OAE/B,OAAO,KAGT,IAAK,MAAM6wR,KAA6BhhR,KAAKghR,0BAC3C,GACEA,EAA0BxoE,UAC1BwoE,EAA0BxoE,WAAa2oE,EAEvC,OAAOb,GACLU,EAA0BI,kBAIhC,OAAO,KASTC,iBAAAA,CAAkBF,GAChB,MAE4B,YAD1BnhR,KAAKkhR,4BAA4BC,IAEiB,UAAlDnhR,KAAKkhR,4BAA4BC,IC1EhCtrG,eAAeyrG,GACpBj+E,EACA/3K,GAEA,OAAO2zP,GAIL57E,EAGA,4BAAA07E,GAAmB17E,EAAM/3K,GAE7B,CCeOuqJ,eAAe0rG,GACpBl+E,EACA/3K,GAEA,OAAO2zP,GACL57E,EAGA,6BAAA/3K,EAEJ,CCjFM,SAAUk2P,GACdC,GAEA,GAAKA,EAGL,IAEE,MAAM99I,EAAO,IAAIrpE,KAAK9pE,OAAOixR,IAE7B,IAAKp3P,MAAMs5G,EAAK+jF,WAEd,OAAO/jF,EAAK+9I,aAEf,CAAC,MAAOvrR,KAIX,CCsDA,SAASwrR,GAA4BnX,GACnC,OAAyB,IAAlBh6Q,OAAOg6Q,EAChB,CAEM,SAAUoX,GAAYhkH,GAC1B,MAAOikH,EAAWlgP,EAASmgP,GAAalkH,EAAMhqK,MAAM,KACpD,QACgB7B,IAAd8vR,QACY9vR,IAAZ4vC,QACc5vC,IAAd+vR,EAGA,OADAjF,GAAU,kDACH,KAGT,IACE,MAAM/xG,EAAU2mF,GAAa9vN,GAC7B,OAAKmpI,EAIEh/I,KAAKK,MAAM2+I,IAHhB+xG,GAAU,uCACH,KAGV,CAAC,MAAO1mR,IAKP,OAJA0mR,GACE,2CACC,OAAA1mR,SAAA,IAAAA,QAAA,EAAAA,GAAa+D,YAET,IACR,CACH,CAKM,SAAU6nR,GAAgBnkH,GAC9B,MAAMokH,EAAcJ,GAAYhkH,GAIhC,OAHA2/G,GAAQyE,EAAa,kBACrBzE,GAAmC,qBAApByE,EAAYC,IAAqB,kBAChD1E,GAAmC,qBAApByE,EAAYE,IAAqB,kBACzC1xR,OAAOwxR,EAAYC,KAAOzxR,OAAOwxR,EAAYE,IACtD,CC3GOrsG,eAAessG,GACpBjpC,EACAx3E,GAGA,GAFe5vK,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAGb,OAAO4vK,EAET,IACE,aAAaA,CACd,CAAC,MAAOvrK,IAOP,MANIA,cAAao8P,IAUrB,SAA0Bv0O,GAAwB,IAAvB,KAAEzf,GAAqByf,EAChD,MACW,uBAATzf,GACS,4BAATA,CAEJ,CAfsC6jR,CAAkBjsR,KAC9C+iP,EAAK71C,KAAKg/E,cAAgBnpC,SACtBA,EAAK71C,KAAKi/E,UAIdnsR,EACP,CACH,OCbaosR,GAUXlyR,WAAAA,CAA6B6oP,GAAA,KAAIA,KAAJA,EATrB,KAASspC,WAAG,EAMZ,KAAOC,QAAe,KACtB,KAAAC,aAA0C,IAIlDC,MAAAA,GACM3iR,KAAKwiR,YAITxiR,KAAKwiR,WAAY,EACjBxiR,KAAK4iR,YAGPC,KAAAA,GACO7iR,KAAKwiR,YAIVxiR,KAAKwiR,WAAY,EACI,OAAjBxiR,KAAKyiR,SACPz/J,aAAahjH,KAAKyiR,UAIdK,WAAAA,CAAYC,SAClB,GAAIA,EAAU,CACZ,MAAM7wC,EAAWlyO,KAAK0iR,aAKtB,OAJA1iR,KAAK0iR,aAAexwR,KAAK6O,IACH,EAApBf,KAAK0iR,aAAgB,MAGhBxwC,CACR,CAAM,CAELlyO,KAAK0iR,aAAe,IACpB,MACMxwC,GADsD,QAA5CxjN,EAAA1uB,KAAKk5O,KAAK8pC,gBAAgBn1H,sBAAkB,IAAAn/H,EAAAA,EAAA,GACjC4rC,KAAKC,MAAQ,IAExC,OAAOroE,KAAK+O,IAAI,EAAGixO,EACpB,EAGK0wC,QAAAA,GAAyB,IAAhBG,EAAQjxR,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GACvB,IAAKkO,KAAKwiR,UAER,OAGF,MAAMtwC,EAAWlyO,KAAK8iR,YAAYC,GAClC/iR,KAAKyiR,QAAUx3O,YAAW4qI,gBAClB71K,KAAK81D,WAAW,GACrBo8K,GAGG,eAAMp8K,GACZ,UACQ91D,KAAKk5O,KAAK+pC,YAAW,EAC5B,CAAC,MAAO9sR,IASP,YALE,iCADoB,OAAnBA,SAAA,IAAAA,QAAA,EAAAA,GAAqBoI,OAGtByB,KAAK4iR,UAAwB,GAIhC,CACD5iR,KAAK4iR,kBCnFIM,GAIX7yR,WAAAA,CACU0gM,EACAoyF,GADA,KAASpyF,UAATA,EACA,KAAWoyF,YAAXA,EAERnjR,KAAKojR,kBAGCA,eAAAA,GACNpjR,KAAKqjR,eAAiB7B,GAAyBxhR,KAAKmjR,aACpDnjR,KAAKsjR,aAAe9B,GAAyBxhR,KAAK+wL,WAGpDwyF,KAAAA,CAAM3hC,GACJ5hP,KAAK+wL,UAAY6wD,EAAS7wD,UAC1B/wL,KAAKmjR,YAAcvhC,EAASuhC,YAC5BnjR,KAAKojR,kBAGP5/Q,MAAAA,GACE,MAAO,CACLutL,UAAW/wL,KAAK+wL,UAChBoyF,YAAanjR,KAAKmjR,cChBjBttG,eAAe2tG,GAAqBtqC,SACzC,MAAM71C,EAAO61C,EAAK71C,KACZqrD,QAAgBxV,EAAK+pC,aACrBj3P,QAAiBm2P,GACrBjpC,EACAqoC,GAAel+E,EAAM,CAAEqrD,aAGzB6uB,GAAQ,OAAAvxP,QAAA,IAAAA,OAAA,EAAAA,EAAUy3P,MAAMtzR,OAAQkzM,EAAM,kBAEtC,MAAMqgF,EAAc13P,EAASy3P,MAAM,GAEnCvqC,EAAKyqC,sBAAsBD,GAE3B,MAAME,GAA8C,QAA5Bl1P,EAAAg1P,EAAYG,wBAAgB,IAAAn1P,OAAA,EAAAA,EAAEv+B,QAClD2zR,GAAoBJ,EAAYG,kBAChC,GAEEE,EA8CR,SACEC,EACA/sM,GAEA,MAAMgtM,EAAUD,EAAS13P,QACvBrlB,IAAMgwE,EAAQkrF,MAAKh0J,GAAKA,EAAE+1Q,aAAej9Q,EAAEi9Q,eAE7C,MAAO,IAAID,KAAYhtM,EACzB,CAtDuBktM,CAAkBjrC,EAAK6qC,aAAcH,GAOpDQ,EAAiBlrC,EAAKmrC,YACtBC,IACFprC,EAAKr1G,OAAS6/I,EAAYa,iBAAkB,OAAAR,QAAY,IAAZA,OAAY,EAAZA,EAAc5zR,QACxDk0R,IAAeD,GAAyBE,EAExC/qG,EAAiC,CACrC4pF,IAAKugB,EAAYc,QACjBh2J,YAAak1J,EAAYl1J,aAAe,KACxCi2J,SAAUf,EAAYgB,UAAY,KAClC7gJ,MAAO6/I,EAAY7/I,OAAS,KAC5B8gJ,cAAejB,EAAYiB,gBAAiB,EAC5ClE,YAAaiD,EAAYjD,aAAe,KACxCzB,SAAU0E,EAAY1E,UAAY,KAClC+E,eACAniC,SAAU,IAAIshC,GAAaQ,EAAY3yF,UAAW2yF,EAAYP,aAC9DkB,eAGFrzR,OAAOG,OAAO+nP,EAAM3/D,EACtB,CA8BM,SAAUuqG,GAAoB1sB,GAClC,OAAOA,EAAUr5O,KAAK2Q,IAAA,eAAEw1P,GAAyBx1P,EAAV8pL,EAAQ2jE,GAAAztP,EAAzB,gBACpB,MAAO,CACLw1P,aACA/gB,IAAK3qD,EAASosE,OAAS,GACvBp2J,YAAagqF,EAAShqF,aAAe,KACrCqV,MAAO20E,EAAS30E,OAAS,KACzB48I,YAAajoE,EAASioE,aAAe,KACrCgE,SAAUjsE,EAASksE,UAAY,KAChC,GAEL,OC3EaG,GAAbx0R,WAAAA,GACE,KAAYy0R,aAAkB,KAC9B,KAAWh1E,YAAkB,KAC7B,KAAcjiD,eAAkB,KAEhC,aAAIk3H,GACF,OACG/kR,KAAK6tJ,gBACNvzF,KAAKC,MAAQv6D,KAAK6tJ,eAAqC,IAI3Dm3H,wBAAAA,CACEh5P,GAEAuxP,GAAQvxP,EAAS0iO,QAAS,kBAC1B6uB,GAC8B,qBAArBvxP,EAAS0iO,QAAuB,kBAGzC6uB,GACmC,qBAA1BvxP,EAAS84P,aAA4B,kBAG9C,MAAMG,EACJ,cAAej5P,GAA0C,qBAAvBA,EAASi5P,UACvCz0R,OAAOw7B,EAASi5P,WAChBlD,GAAgB/1P,EAAS0iO,SAC/B1uP,KAAKklR,0BACHl5P,EAAS0iO,QACT1iO,EAAS84P,aACTG,GAIJE,iBAAAA,CAAkBz2B,GAChB6uB,GAA2B,IAAnB7uB,EAAQv+P,OAAc,kBAC9B,MAAM80R,EAAYlD,GAAgBrzB,GAClC1uP,KAAKklR,0BAA0Bx2B,EAAS,KAAMu2B,GAGhD,cAAMt2B,CACJtrD,GAGA,OAFYvxM,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,KAESkO,KAAK8vM,aAAgB9vM,KAAK+kR,WAI/CxH,GAAQv9Q,KAAK8kR,aAAczhF,EAAM,sBAE7BrjM,KAAK8kR,oBACD9kR,KAAKolR,QAAQ/hF,EAAMrjM,KAAK8kR,cACvB9kR,KAAK8vM,aAGP,MAVE9vM,KAAK8vM,YAahBu1E,iBAAAA,GACErlR,KAAK8kR,aAAe,KAGd,aAAMM,CAAQ/hF,EAAoBiiF,GACxC,MAAM,YAAEx1E,EAAW,aAAEg1E,EAAY,UAAEG,SC1ChCpvG,eACLwtB,EACAyhF,GAEA,MAAM94P,QACEkzP,GACJ77E,EACA,CAAC,GACDxtB,UACE,MAAMtnI,EAAO+kN,GAAY,CACvB,WAAc,gBACd,cAAiBwxB,IAChB/qR,MAAM,IACH,aAAEwrR,EAAY,OAAE92C,GAAWprC,EAAKvzK,OAChCkN,EAAMqiP,GACVh8E,EACAkiF,EAAY,YAEZ,OAAO92C,KAGHv2D,QAAiBmrB,EAAsB87E,wBAG7C,OAFAjnG,EAAQ,gBAA2B,oCAE5BumG,GAAcvqL,OAAduqL,CAAsBzhP,EAAK,CAChCzR,OAAuB,OACvB2sJ,UACA3pI,QACA,IAKR,MAAO,CACLuhK,YAAa9jL,EAASw5P,aACtBP,UAAWj5P,EAASy5P,WACpBX,aAAc94P,EAAS05P,cAE3B,CDI2DC,CACrDtiF,EACAiiF,GAEFtlR,KAAKklR,0BACHp1E,EACAg1E,EACAt0R,OAAOy0R,IAIHC,yBAAAA,CACNp1E,EACAg1E,EACAc,GAEA5lR,KAAK8kR,aAAeA,GAAgB,KACpC9kR,KAAK8vM,YAAcA,GAAe,KAClC9vM,KAAK6tJ,eAAiBvzF,KAAKC,MAAuB,IAAfqrN,EAGrC,eAAOC,CAAS9mB,EAAiBzpO,GAC/B,MAAM,aAAEwvP,EAAY,YAAEh1E,EAAW,eAAEjiD,GAAmBv4H,EAEhD6uM,EAAU,IAAI0gD,GAuBpB,OAtBIC,IACFvH,GAAgC,kBAAjBuH,EAAyD,kBACtE/lB,YAEF56B,EAAQ2gD,aAAeA,GAErBh1E,IACFytE,GAA+B,kBAAhBztE,EAAwD,kBACrEivD,YAEF56B,EAAQr0B,YAAcA,GAEpBjiD,IACF0vH,GAC4B,kBAAnB1vH,EAEP,kBACEkxG,YAGJ56B,EAAQt2E,eAAiBA,GAEpBs2E,EAGT3gO,MAAAA,GACE,MAAO,CACLshR,aAAc9kR,KAAK8kR,aACnBh1E,YAAa9vM,KAAK8vM,YAClBjiD,eAAgB7tJ,KAAK6tJ,gBAIzBi4H,OAAAA,CAAQ9C,GACNhjR,KAAK8vM,YAAckzE,EAAgBlzE,YACnC9vM,KAAK8kR,aAAe9B,EAAgB8B,aACpC9kR,KAAK6tJ,eAAiBm1H,EAAgBn1H,eAGxCk4H,MAAAA,GACE,OAAO/0R,OAAOG,OAAO,IAAI0zR,GAAmB7kR,KAAKwD,UAGnDwiR,eAAAA,GACE,OAAOvI,GAAU,oBE9HrB,SAASwI,GACPzI,EACAze,GAEAwe,GACuB,kBAAdC,GAA+C,qBAAdA,EAExC,kBAAEze,WAEN,OAEamnB,GAwBX71R,WAAAA,CAAYq+B,OAAA,IAAEy0O,EAAG,KAAE9/D,EAAI,gBAAE2/E,GAAet0P,EAAKg6K,EAAjCyzE,GAAAztP,EAAA,kCAtBH,KAAAw1P,WAAiC,WAoBzB,KAAAiC,iBAAmB,IAAI5D,GAAiBviR,MA6CjD,KAAcomR,eAAuB,KACrC,KAAcC,eAA+B,KA3CnDrmR,KAAKmjQ,IAAMA,EACXnjQ,KAAKqjM,KAAOA,EACZrjM,KAAKgjR,gBAAkBA,EACvBhjR,KAAK8vM,YAAckzE,EAAgBlzE,YACnC9vM,KAAKwuH,YAAck6E,EAAIl6E,aAAe,KACtCxuH,KAAK6jI,MAAQ6kE,EAAI7kE,OAAS,KAC1B7jI,KAAK2kR,cAAgBj8E,EAAIi8E,gBAAiB,EAC1C3kR,KAAKygR,YAAc/3E,EAAI+3E,aAAe,KACtCzgR,KAAKykR,SAAW/7E,EAAI+7E,UAAY,KAChCzkR,KAAKqkR,YAAc37E,EAAI27E,cAAe,EACtCrkR,KAAKg/Q,SAAWt2E,EAAIs2E,UAAY,KAChCh/Q,KAAK+jR,aAAer7E,EAAIq7E,aAAe,IAAIr7E,EAAIq7E,cAAgB,GAC/D/jR,KAAK4hP,SAAW,IAAIshC,GAClBx6E,EAAI3X,gBAAah/L,EACjB22M,EAAIy6E,kBAAepxR,GAIvB,gBAAMkxR,CAAWqD,GACf,MAAMx2E,QAAoBqyE,GACxBniR,KACAA,KAAKgjR,gBAAgBr0B,SAAS3uP,KAAKqjM,KAAMijF,IAU3C,OARA/I,GAAQztE,EAAa9vM,KAAKqjM,KAAM,kBAE5BrjM,KAAK8vM,cAAgBA,IACvB9vM,KAAK8vM,YAAcA,QACb9vM,KAAKqjM,KAAKkjF,sBAAsBvmR,MACtCA,KAAKqjM,KAAKmjF,0BAA0BxmR,OAG/B8vM,EAGT22E,gBAAAA,CAAiBH,GACf,OPhEGzwG,eACLqjE,GACoB,IAApBotC,EAAYx0R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEZ,MAAM40R,EAAe5xB,GAAmB5b,GAClCt7E,QAAc8oH,EAAazD,WAAWqD,GACtCK,EAAS/E,GAAYhkH,GAE3B2/G,GACEoJ,GAAUA,EAAO1E,KAAO0E,EAAOC,WAAaD,EAAOzE,IACnDwE,EAAarjF,KAAI,kBAGnB,MAAMwjF,EACuB,kBAApBF,EAAOE,SAAwBF,EAAOE,cAAW90R,EAEpD+0R,EAAqC,OAAAD,QAAQ,IAARA,OAAQ,EAARA,EAA6B,iBAExE,MAAO,CACLF,SACA/oH,QACAmpH,SAAUvF,GACRG,GAA4BgF,EAAOC,YAErCI,aAAcxF,GACZG,GAA4BgF,EAAOzE,MAErCr0H,eAAgB2zH,GACdG,GAA4BgF,EAAO1E,MAErC6E,eAAgBA,GAAkB,KAClCG,oBAAoB,OAAAJ,QAAA,IAAAA,OAAA,EAAAA,EAAkC,wBAAK,KAE/D,CO+BWJ,CAAiBzmR,KAAMsmR,GAGhCY,MAAAA,GACE,OHvCGrxG,eAAsBqjE,GAC3B,MAAMwtC,EAA6B5xB,GAAmB5b,SAChDsqC,GAAqBkD,SAKrBA,EAAarjF,KAAKkjF,sBAAsBG,GAC9CA,EAAarjF,KAAKmjF,0BAA0BE,EAC9C,CG8BWQ,CAAOlnR,MAMhB8lR,OAAAA,CAAQ5sC,GACFl5O,OAASk5O,IAGbqkC,GAAQv9Q,KAAKmjQ,MAAQjqB,EAAKiqB,IAAKnjQ,KAAKqjM,KAAM,kBAC1CrjM,KAAKwuH,YAAc0qH,EAAK1qH,YACxBxuH,KAAKykR,SAAWvrC,EAAKurC,SACrBzkR,KAAK6jI,MAAQq1G,EAAKr1G,MAClB7jI,KAAK2kR,cAAgBzrC,EAAKyrC,cAC1B3kR,KAAKygR,YAAcvnC,EAAKunC,YACxBzgR,KAAKqkR,YAAcnrC,EAAKmrC,YACxBrkR,KAAKg/Q,SAAW9lC,EAAK8lC,SACrBh/Q,KAAK+jR,aAAe7qC,EAAK6qC,aAAahmQ,KAAI8wO,GAAQ79P,OAAAG,OAAA,GAAU09P,KAC5D7uP,KAAK4hP,SAAS2hC,MAAMrqC,EAAK0I,UACzB5hP,KAAKgjR,gBAAgB8C,QAAQ5sC,EAAK8pC,kBAGpC+C,MAAAA,CAAO1iF,GACL,MAAM8jF,EAAU,IAAIjB,GACfl1R,OAAAG,OAAAH,OAAAG,OAAA,GAAA6O,MAAI,CACPqjM,OACA2/E,gBAAiBhjR,KAAKgjR,gBAAgB+C,YAGxC,OADAoB,EAAQvlC,SAAS2hC,MAAMvjR,KAAK4hP,UACrBulC,EAGTC,SAAAA,CAAU17P,GAER6xP,IAASv9Q,KAAKqmR,eAAgBrmR,KAAKqjM,KAAM,kBACzCrjM,KAAKqmR,eAAiB36P,EAClB1rB,KAAKomR,iBACPpmR,KAAK2jR,sBAAsB3jR,KAAKomR,gBAChCpmR,KAAKomR,eAAiB,MAI1BzC,qBAAAA,CAAsB90B,GAChB7uP,KAAKqmR,eACPrmR,KAAKqmR,eAAex3B,GAGpB7uP,KAAKomR,eAAiBv3B,EAI1Bw4B,sBAAAA,GACErnR,KAAKmmR,iBAAiBxD,SAGxB2E,qBAAAA,GACEtnR,KAAKmmR,iBAAiBtD,QAGxB,8BAAM0E,CACJv7P,GACc,IAAdk7P,EAAMp1R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEF01R,GAAkB,EAEpBx7P,EAAS0iO,SACT1iO,EAAS0iO,UAAY1uP,KAAKgjR,gBAAgBlzE,cAE1C9vM,KAAKgjR,gBAAgBgC,yBAAyBh5P,GAC9Cw7P,GAAkB,GAGhBN,SACI1D,GAAqBxjR,YAGvBA,KAAKqjM,KAAKkjF,sBAAsBvmR,MAClCwnR,GACFxnR,KAAKqjM,KAAKmjF,0BAA0BxmR,MAIxC,YAAM66H,GACJ,GAAIyjI,GAAqBt+P,KAAKqjM,KAAK26D,KACjC,OAAOvrJ,QAAQkvD,OACby7G,GAAgDp9Q,KAAKqjM,OAGzD,MAAMqrD,QAAgB1uP,KAAKijR,aAO3B,aANMd,GAAqBniR,KT3LxB61K,eACLwtB,EACA/3K,GAEA,OAAO2zP,GACL57E,EAGA,6BAAA/3K,EAEJ,CSiLqCm8P,CAAcznR,KAAKqjM,KAAM,CAAEqrD,aAC5D1uP,KAAKgjR,gBAAgBqC,oBAKdrlR,KAAKqjM,KAAKi/E,UAGnB9+Q,MAAAA,GACE,OAAAxS,OAAAG,OAAAH,OAAAG,OAAA,CACEgyQ,IAAKnjQ,KAAKmjQ,IACVt/H,MAAO7jI,KAAK6jI,YAAS9xI,EACrB4yR,cAAe3kR,KAAK2kR,cACpBn2J,YAAaxuH,KAAKwuH,kBAAez8H,EACjCsyR,YAAarkR,KAAKqkR,YAClBI,SAAUzkR,KAAKykR,eAAY1yR,EAC3B0uR,YAAazgR,KAAKygR,kBAAe1uR,EACjCitR,SAAUh/Q,KAAKg/Q,eAAYjtR,EAC3BgyR,aAAc/jR,KAAK+jR,aAAahmQ,KAAI8wO,GAAQ79P,OAAAG,OAAA,GAAU09P,KACtDm0B,gBAAiBhjR,KAAKgjR,gBAAgBx/Q,SAGtCkkR,iBAAkB1nR,KAAK0nR,kBACpB1nR,KAAK4hP,SAASp+O,UAAQ,CAGzBirO,OAAQzuO,KAAKqjM,KAAKvzK,OAAO2+M,OACzBswB,QAAS/+P,KAAKqjM,KAAK9xM,OAMvB,gBAAIuzR,GACF,OAAO9kR,KAAKgjR,gBAAgB8B,cAAgB,GAG9C,gBAAO6C,CAAUtkF,EAAoB/tK,uBACnC,MAAMk5F,EAAgC,QAAlB9/F,EAAA4G,EAAOk5F,mBAAW,IAAA9/F,EAAAA,OAAI38B,EACpC8xI,EAAoB,QAAZ/vG,EAAAwB,EAAOuuG,aAAK,IAAA/vG,EAAAA,OAAI/hC,EACxB0uR,EAAgC,QAAlB1sP,EAAAuB,EAAOmrP,mBAAW,IAAA1sP,EAAAA,OAAIhiC,EACpC0yR,EAA0B,QAAfmD,EAAAtyP,EAAOmvP,gBAAQ,IAAAmD,EAAAA,OAAI71R,EAC9BitR,EAA0B,QAAf6I,EAAAvyP,EAAO0pP,gBAAQ,IAAA6I,EAAAA,OAAI91R,EAC9B21R,EAA0C,QAAvBI,EAAAxyP,EAAOoyP,wBAAgB,IAAAI,EAAAA,OAAI/1R,EAC9Cg/L,EAA4B,QAAhBg3F,EAAAzyP,EAAOy7J,iBAAS,IAAAg3F,EAAAA,OAAIh2R,EAChCoxR,EAAgC,QAAlB6E,EAAA1yP,EAAO6tP,mBAAW,IAAA6E,EAAAA,OAAIj2R,GACpC,IACJoxQ,EAAG,cACHwhB,EAAa,YACbN,EAAW,aACXN,EACAf,gBAAiBiF,GACf3yP,EAEJioP,GAAQpa,GAAO8kB,EAAyB5kF,EAAM,kBAE9C,MAAM2/E,EAAkB6B,GAAgBgB,SACtC7lR,KAAKzO,KACL02R,GAGF1K,GAAuB,kBAARpa,EAAkB9/D,EAAM,kBACvC4iF,GAAwBz3J,EAAa60E,EAAK9xM,MAC1C00R,GAAwBpiJ,EAAOw/D,EAAK9xM,MACpCgsR,GAC2B,mBAAlBoH,EACPthF,EAAI,kBAGNk6E,GACyB,mBAAhB8G,EACPhhF,EAAI,kBAGN4iF,GAAwBxF,EAAap9E,EAAK9xM,MAC1C00R,GAAwBxB,EAAUphF,EAAK9xM,MACvC00R,GAAwBjH,EAAU37E,EAAK9xM,MACvC00R,GAAwByB,EAAkBrkF,EAAK9xM,MAC/C00R,GAAwBl1F,EAAWsS,EAAK9xM,MACxC00R,GAAwB9C,EAAa9/E,EAAK9xM,MAC1C,MAAM2nP,EAAO,IAAIgtC,GAAS,CACxB/iB,MACA9/D,OACAx/D,QACA8gJ,gBACAn2J,cACA61J,cACAI,WACAhE,cACAzB,WACAgE,kBACAjyF,YACAoyF,gBAWF,OARIY,GAAgBhuR,MAAMC,QAAQ+tR,KAChC7qC,EAAK6qC,aAAeA,EAAahmQ,KAAI8wO,GAAY79P,OAAAG,OAAC,CAAC,EAAI09P,MAGrD64B,IACFxuC,EAAKwuC,iBAAmBA,GAGnBxuC,EAQT,iCAAagvC,CACX7kF,EACA8kF,GAC4B,IAA5B9D,EAAAvyR,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEA,MAAMkxR,EAAkB,IAAI6B,GAC5B7B,EAAgBgC,yBAAyBmD,GAGzC,MAAMjvC,EAAO,IAAIgtC,GAAS,CACxB/iB,IAAKglB,EAAgB3D,QACrBnhF,OACA2/E,kBACAqB,gBAKF,aADMb,GAAqBtqC,GACpBA,EAQT,wCAAakvC,CACX/kF,EACAr3K,EACA0iO,GAEA,MAAMg1B,EAAc13P,EAASy3P,MAAM,GACnClG,QAAgCxrR,IAAxB2xR,EAAYc,QAAuB,kBAE3C,MAAMT,OAC6BhyR,IAAjC2xR,EAAYG,iBACRC,GAAoBJ,EAAYG,kBAChC,GAEAQ,IACFX,EAAY7/I,OAAS6/I,EAAYa,iBAAkB,OAAAR,QAAY,IAAZA,OAAY,EAAZA,EAAc5zR,QAE/D6yR,EAAkB,IAAI6B,GAC5B7B,EAAgBmC,kBAAkBz2B,GAGlC,MAAMxV,EAAO,IAAIgtC,GAAS,CACxB/iB,IAAKugB,EAAYc,QACjBnhF,OACA2/E,kBACAqB,gBAII9qG,EAAiC,CACrC4pF,IAAKugB,EAAYc,QACjBh2J,YAAak1J,EAAYl1J,aAAe,KACxCi2J,SAAUf,EAAYgB,UAAY,KAClC7gJ,MAAO6/I,EAAY7/I,OAAS,KAC5B8gJ,cAAejB,EAAYiB,gBAAiB,EAC5ClE,YAAaiD,EAAYjD,aAAe,KACxCzB,SAAU0E,EAAY1E,UAAY,KAClC+E,eACAniC,SAAU,IAAIshC,GACZQ,EAAY3yF,UACZ2yF,EAAYP,aAEdkB,cACIX,EAAY7/I,OAAS6/I,EAAYa,iBAClC,OAAAR,QAAY,IAAZA,OAAY,EAAZA,EAAc5zR,SAInB,OADAa,OAAOG,OAAO+nP,EAAM3/D,GACb2/D,GC/WX,MAAMmvC,GAAuC,IAAIjqQ,IAE3C,SAAUkqQ,GAAgBC,GAC9B5K,GAAY4K,aAAe7nH,SAAU,+BACrC,IAAI13B,EAAWq/I,GAAcnwQ,IAAIqwQ,GAEjC,OAAIv/I,GACF20I,GACE30I,aAAoBu/I,EACpB,kDAEKv/I,IAGTA,EAAW,IAAKu/I,EAChBF,GAAchqQ,IAAIkqQ,EAAKv/I,GAChBA,EACT,OCrBaw/I,GAAbn4R,WAAAA,GAEW,KAAAmtB,KAA4B,OACrC,KAAOirQ,QAAqC,CAAC,EAE7C,kBAAMC,GACJ,OAAO,EAGT,UAAMC,CAAKpwQ,EAAa3f,GACtBoH,KAAKyoR,QAAQlwQ,GAAO3f,EAGtB,UAAMgwR,CAAiCrwQ,GACrC,MAAM3f,EAAQoH,KAAKyoR,QAAQlwQ,GAC3B,YAAiBxmB,IAAV6G,EAAsB,KAAQA,EAGvC,aAAMiwR,CAAQtwQ,UACLvY,KAAKyoR,QAAQlwQ,GAGtBuwQ,YAAAA,CAAa7sQ,EAAc8sQ,IAK3BC,eAAAA,CAAgB/sQ,EAAc8sQ,KA1BvBP,GAAIhrQ,KAAW,OAqCjB,MAAMyrQ,GAAmCT,YC9BhCU,GACd3wQ,EACAk2N,EACAswB,GAEA,MAAO,YAA4BxmP,KAAOk2N,KAAUswB,GACtD,OAEaoqB,GAKX94R,WAAAA,CACS+4R,EACU/lF,EACAgmF,GAFV,KAAWD,YAAXA,EACU,KAAI/lF,KAAJA,EACA,KAAOgmF,QAAPA,EAEjB,MAAM,OAAEv5P,EAAM,KAAEv+B,GAASyO,KAAKqjM,KAC9BrjM,KAAKspR,YAAcJ,GAAoBlpR,KAAKqpR,QAASv5P,EAAO2+M,OAAQl9O,GACpEyO,KAAKupR,mBAAqBL,GAAoB,cAE5Cp5P,EAAO2+M,OACPl9O,GAEFyO,KAAKwpR,kBAAoBnmF,EAAKomF,gBAAgBlyR,KAAK8rM,GACnDrjM,KAAKopR,YAAYN,aAAa9oR,KAAKspR,YAAatpR,KAAKwpR,mBAGvDE,cAAAA,CAAexwC,GACb,OAAOl5O,KAAKopR,YAAYT,KAAK3oR,KAAKspR,YAAapwC,EAAK11O,UAGtD,oBAAMmmR,GACJ,MAAM5sP,QAAa/8B,KAAKopR,YAAYR,KAAoB5oR,KAAKspR,aAC7D,OAAOvsP,EAAOmpP,GAASyB,UAAU3nR,KAAKqjM,KAAMtmK,GAAQ,KAGtD6sP,iBAAAA,GACE,OAAO5pR,KAAKopR,YAAYP,QAAQ7oR,KAAKspR,aAGvCO,0BAAAA,GACE,OAAO7pR,KAAKopR,YAAYT,KACtB3oR,KAAKupR,mBACLvpR,KAAKopR,YAAY5rQ,MAIrB,oBAAMssQ,CAAeC,GACnB,GAAI/pR,KAAKopR,cAAgBW,EACvB,OAGF,MAAM1H,QAAoBriR,KAAK2pR,iBAK/B,aAJM3pR,KAAK4pR,oBAEX5pR,KAAKopR,YAAcW,EAEf1H,EACKriR,KAAK0pR,eAAerH,QAD7B,EAKFxnJ,SACE76H,KAAKopR,YAAYJ,gBAAgBhpR,KAAKspR,YAAatpR,KAAKwpR,mBAG1D,mBAAav4R,CACXoyM,EACA2mF,GAC2B,IAA3BX,EAAOv3R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAoB,WAE3B,IAAKk4R,EAAqB75R,OACxB,OAAO,IAAIg5R,GACTb,GAAaW,IACb5lF,EACAgmF,GAKJ,MAAMY,SACEx3K,QAAQ6tD,IACZ0pH,EAAqBjsQ,KAAI83J,UACvB,SAAUuzG,EAAYV,eACpB,OAAOU,CAEO,MAGpB98P,QAAO88P,GAAeA,IAGxB,IAAIc,EACFD,EAAsB,IACtB3B,GAAkCW,IAEpC,MAAM1wQ,EAAM2wQ,GAAoBG,EAAShmF,EAAKvzK,OAAO2+M,OAAQprC,EAAK9xM,MAIlE,IAAI44R,EAAqC,KAIzC,IAAK,MAAMf,KAAeY,EACxB,IACE,MAAMjtP,QAAaqsP,EAAYR,KAAoBrwQ,GACnD,GAAIwkB,EAAM,CACR,MAAMm8M,EAAOgtC,GAASyB,UAAUtkF,EAAMtmK,GAClCqsP,IAAgBc,IAClBC,EAAgBjxC,GAElBgxC,EAAsBd,EACtB,KACD,CACF,CAAC,MAAA16P,IAAO,CAKX,MAAM07P,EAAqBH,EAAsB39P,QAC/C5e,GAAKA,EAAE28Q,wBAIT,OACGH,EAAoBG,uBACpBD,EAAmBj6R,QAKtB+5R,EAAsBE,EAAmB,GACrCD,SAGID,EAAoBvB,KAAKpwQ,EAAK4xQ,EAAc3mR,gBAK9CivG,QAAQ6tD,IACZ0pH,EAAqBjsQ,KAAI83J,UACvB,GAAIuzG,IAAgBc,EAClB,UACQd,EAAYP,QAAQtwQ,EAC3B,CAAC,MAAAmW,IAAO,CACV,KAGE,IAAIy6P,GAAuBe,EAAqB7mF,EAAMgmF,IArBpD,IAAIF,GAAuBe,EAAqB7mF,EAAMgmF,ICrH7D,SAAUiB,GAAgBryP,GAC9B,MAAMg1F,EAAKh1F,EAAUvX,cACrB,GAAIusG,EAAGnoG,SAAS,WAAamoG,EAAGnoG,SAAS,SAAWmoG,EAAGnoG,SAAS,UAC9D,MAAyB,QACpB,GAAIylQ,GAAYt9J,GAErB,MAA4B,WACvB,GAAIA,EAAGnoG,SAAS,SAAWmoG,EAAGnoG,SAAS,YAC5C,MAAsB,KACjB,GAAImoG,EAAGnoG,SAAS,SACrB,MAAwB,OACnB,GAAI0lQ,GAAWv9J,GACpB,MAA2B,UACtB,GAAIA,EAAGnoG,SAAS,SACrB,MAAwB,OACnB,GAAI2lQ,GAAcx9J,GAEvB,MAA8B,aACzB,GAAIy9J,GAASz9J,GAElB,MAAyB,QACpB,GAAI09J,GAAU19J,GACnB,MAA0B,SACrB,IACJA,EAAGnoG,SAAS,YAAc8lQ,GAAa39J,MACvCA,EAAGnoG,SAAS,SAEb,MAA0B,SACrB,GAAI+lQ,GAAW59J,GAEpB,MAA2B,UACtB,CAEL,MAAMp/G,EAAK,kCACLqkJ,EAAUj6H,EAAUk6E,MAAMtkG,GAChC,GAAwB,KAAb,OAAPqkJ,QAAO,IAAPA,OAAO,EAAPA,EAAS/hK,QACX,OAAO+hK,EAAQ,EAElB,CACD,MAAyB,OAC3B,UAEgBs4H,KAAuB,IAAZv9J,EAAEn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,KAC9B,MAAO,aAAap8H,KAAKi1F,EAC3B,UAEgB09J,KACd,MAAM19J,GAD2Bn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,MACf1zI,cACrB,OACEusG,EAAGnoG,SAAS,aACXmoG,EAAGnoG,SAAS,aACZmoG,EAAGnoG,SAAS,YACZmoG,EAAGnoG,SAAS,UAEjB,UAEgB8lQ,KAAyB,IAAZ39J,EAAEn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,KAChC,MAAO,WAAWp8H,KAAKi1F,EACzB,UAEgBs9J,KAAwB,IAAZt9J,EAAEn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,KAC/B,MAAO,YAAYp8H,KAAKi1F,EAC1B,UAEgB49J,KAAuB,IAAZ59J,EAAEn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,KAC9B,MAAO,WAAWp8H,KAAKi1F,EACzB,UAEgBw9J,KAA0B,IAAZx9J,EAAEn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,KACjC,MAAO,cAAcp8H,KAAKi1F,EAC5B,UAEgBy9J,KAAqB,IAAZz9J,EAAEn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,KAC5B,MAAO,SAASp8H,KAAKi1F,EACvB,UAEgB69J,KAAmB,IAAZ79J,EAAEn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,KAC1B,MACE,oBAAoBp8H,KAAKi1F,IACxB,aAAaj1F,KAAKi1F,IAAO,UAAUj1F,KAAKi1F,EAE7C,UAagB89J,KACd,kBhHTA,MAAM99J,EAAKmnC,KACX,OAAOnnC,EAAGzuH,QAAQ,UAAY,GAAKyuH,EAAGzuH,QAAQ,aAAe,CAC/D,CgHOSwsR,IAAkD,KAAvCn4P,SAAsBswG,YAC1C,CAEgB,SAAA8nJ,KAAqC,IAApBh+J,EAAAn7H,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAasiK,KAE5C,OACE02H,GAAO79J,IACP49J,GAAW59J,IACXy9J,GAASz9J,IACTw9J,GAAcx9J,IACd,iBAAiBj1F,KAAKi1F,IACtBs9J,GAAYt9J,EAEhB,UCpHgBi+J,GACdC,GACkC,IAE9BC,EAFJC,EAAAv5R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAgC,GAGhC,OAAQq5R,GACN,IAAK,UAEHC,EAAmBd,GAAgBl2H,MACnC,MACF,IAAK,SAIHg3H,EAAmB,GAAGd,GAAgBl2H,SAAY+2H,IAClD,MACF,QACEC,EAAmBD,EAEvB,MAAMG,EAAqBD,EAAWl7R,OAClCk7R,EAAW/sR,KAAK,KAChB,mBACJ,MAAO,GAAG8sR,YAAiDpsB,MAAessB,GAC5E,OCrCaC,GAGXl7R,WAAAA,CAA6BgzM,GAAA,KAAIA,KAAJA,EAFZ,KAAK5uD,MAAsB,GAI5C+2I,YAAAA,CACE9/P,EACA+/P,GAIA,MAAMC,EACJxyC,GAEA,IAAIzmI,SAAQ,CAAC24B,EAASu2B,KACpB,IAIEv2B,EAHe1/G,EAASwtN,GAIzB,CAAC,MAAO/iP,IAEPwrK,EAAOxrK,GACR,KAGLu1R,EAAgBD,QAAUA,EAC1BzrR,KAAKy0I,MAAMj/I,KAAKk2R,GAEhB,MAAMlrR,EAAQR,KAAKy0I,MAAMtkJ,OAAS,EAClC,MAAO,KAGL6P,KAAKy0I,MAAMj0I,GAAS,IAAMiyG,QAAQ24B,SAAS,EAI/C,mBAAMugJ,CAAcC,GAClB,GAAI5rR,KAAKqjM,KAAKg/E,cAAgBuJ,EAC5B,OAMF,MAAMC,EAAkC,GACxC,IACE,IAAK,MAAMC,KAAuB9rR,KAAKy0I,YAC/Bq3I,EAAoBF,GAGtBE,EAAoBL,SACtBI,EAAar2R,KAAKs2R,EAAoBL,QAG3C,CAAC,MAAOt1R,IAGP01R,EAAa/sR,UACb,IAAK,MAAM2sR,KAAWI,EACpB,IACEJ,GACD,CAAC,MAAO38Q,IAKX,MAAM9O,KAAKqjM,KAAKi6E,cAAcrsR,OAAoC,iBAChEmpB,gBAA6B,OAAXjkB,SAAA,IAAAA,QAAA,EAAAA,GAAa8jB,SAElC,SC/DQ8xQ,GAOX17R,WAAAA,CAAY27B,eAEV,MAAMggQ,EAAkBhgQ,EAASigQ,sBACjCjsR,KAAKisR,sBAAwB,CAAC,EAE9BjsR,KAAKisR,sBAAsBC,kBACQ,QAAjCx9P,EAAAs9P,EAAgBE,yBAAiB,IAAAx9P,EAAAA,EApBH,EAqB5Bs9P,EAAgBG,oBAClBnsR,KAAKisR,sBAAsBE,kBACzBH,EAAgBG,wBAE+Bp6R,IAA/Ci6R,EAAgBI,6BAClBpsR,KAAKisR,sBAAsBI,wBACzBL,EAAgBI,iCAE+Br6R,IAA/Ci6R,EAAgBM,6BAClBtsR,KAAKisR,sBAAsBM,wBACzBP,EAAgBM,iCAE6Bv6R,IAA7Ci6R,EAAgBQ,2BAClBxsR,KAAKisR,sBAAsBO,yBACzBR,EAAgBQ,+BAEqCz6R,IAArDi6R,EAAgBS,mCAClBzsR,KAAKisR,sBAAsBQ,iCACzBT,EAAgBS,kCAGpBzsR,KAAKohR,iBAAmBp1P,EAASo1P,iBACH,kCAA1BphR,KAAKohR,mBACPphR,KAAKohR,iBAAmB,OAI1BphR,KAAK0sR,iCACoD,QAAvD34P,EAAyC,QAAzCD,EAAA9H,EAAS0gQ,wCAAgC,IAAA54P,OAAA,EAAAA,EAAEx1B,KAAK,WAAO,IAAAy1B,EAAAA,EAAA,GAEzD/zB,KAAK2sR,qBAAwD,QAAjC/E,EAAA57P,EAAS2gQ,4BAAwB,IAAA/E,GAAAA,EAC7D5nR,KAAK4sR,cAAgB5gQ,EAAS4gQ,cAGhCC,gBAAAA,CAAiB9oJ,mBACf,MAAMxiG,EAA2C,CAC/CurP,SAAS,EACTC,eAAgB/sR,MAelB,OAXAA,KAAKgtR,8BAA8BjpJ,EAAUxiG,GAC7CvhC,KAAKitR,iCAAiClpJ,EAAUxiG,GAGhDA,EAAOurP,UAAPvrP,EAAOurP,QAAyC,QAA7Bp+P,EAAA6S,EAAO2rP,8BAAsB,IAAAx+P,GAAAA,GAChD6S,EAAOurP,UAAPvrP,EAAOurP,QAAyC,QAA7Bh5P,EAAAyN,EAAO4rP,8BAAsB,IAAAr5P,GAAAA,GAChDyN,EAAOurP,UAAPvrP,EAAOurP,QAA0C,QAA9B/4P,EAAAwN,EAAO8qP,+BAAuB,IAAAt4P,GAAAA,GACjDwN,EAAOurP,UAAPvrP,EAAOurP,QAA0C,QAA9BlF,EAAArmP,EAAOgrP,+BAAuB,IAAA3E,GAAAA,GACjDrmP,EAAOurP,UAAPvrP,EAAOurP,QAA2C,QAA/BjF,EAAAtmP,EAAOirP,gCAAwB,IAAA3E,GAAAA,GAClDtmP,EAAOurP,UAAPvrP,EAAOurP,QAAmD,QAAvChF,EAAAvmP,EAAOkrP,wCAAgC,IAAA3E,GAAAA,GAEnDvmP,EASDyrP,6BAAAA,CACNjpJ,EACAxiG,GAEA,MAAM2qP,EAAoBlsR,KAAKisR,sBAAsBC,kBAC/CC,EAAoBnsR,KAAKisR,sBAAsBE,kBACjDD,IACF3qP,EAAO2rP,uBAAyBnpJ,EAAS5zI,QAAU+7R,GAEjDC,IACF5qP,EAAO4rP,uBAAyBppJ,EAAS5zI,QAAUg8R,GAU/Cc,gCAAAA,CACNlpJ,EACAxiG,GAWA,IAAI6rP,EARJptR,KAAKqtR,uCACH9rP,GACkC,GACA,GACF,GACQ,GAI1C,IAAK,IAAIhsC,EAAI,EAAGA,EAAIwuI,EAAS5zI,OAAQoF,IACnC63R,EAAerpJ,EAAS9oI,OAAO1F,GAC/ByK,KAAKqtR,uCACH9rP,EACkC6rP,GAAgB,KAChDA,GAAgB,IACgBA,GAAgB,KAChDA,GAAgB,IACcA,GAAgB,KAC9CA,GAAgB,IACsBptR,KAAK0sR,iCAAiC5nQ,SAC5EsoQ,IAiBAC,sCAAAA,CACN9rP,EACA6qP,EACAE,EACAE,EACAC,GAEIzsR,KAAKisR,sBAAsBI,0BAC7B9qP,EAAO8qP,0BAAP9qP,EAAO8qP,wBAA4BD,IAEjCpsR,KAAKisR,sBAAsBM,0BAC7BhrP,EAAOgrP,0BAAPhrP,EAAOgrP,wBAA4BD,IAEjCtsR,KAAKisR,sBAAsBO,2BAC7BjrP,EAAOirP,2BAAPjrP,EAAOirP,yBAA6BA,IAElCxsR,KAAKisR,sBAAsBQ,mCAC7BlrP,EAAOkrP,mCAAPlrP,EAAOkrP,iCACLA,WC5FKa,GAqCXj9R,WAAAA,CACkB2tQ,EACCuvB,EACAC,EACD19P,GAHA,KAAGkuO,IAAHA,EACC,KAAwBuvB,yBAAxBA,EACA,KAAuBC,wBAAvBA,EACD,KAAM19P,OAANA,EAxClB,KAAWuyP,YAAgB,KAC3B,KAAcoL,eAA0B,KAChC,KAAAC,WAAaj7K,QAAQ24B,UAGrB,KAAAuiJ,sBAAwB,IAAIC,GAAmB5tR,MAC/C,KAAA6tR,oBAAsB,IAAID,GAAmB5tR,MACpC,KAAA8tR,iBAAmB,IAAIvC,GAAoBvrR,MACpD,KAAY+tR,aAAwB,KACpC,KAAyBC,2BAAG,EACnB,KAAuCC,wCAAW,EAInE,KAAgBvO,kBAAG,EACnB,KAAcwO,gBAAG,EACjB,KAAQC,UAAG,EACX,KAAsBC,uBAAyB,KAC/C,KAAsBC,uBAAyC,KAC/D,KAAa/Q,cACXX,GACF,KAAqB2R,sBAA2B,KAChD,KAAuBC,wBAAoC,CAAC,EAC5D,KAAsBC,uBAAkC,KACxD,KAAuBC,wBAA2C,CAAC,EAM3D,KAAeC,qBAA8B38R,EAErD,KAAYqtR,aAAkB,KAC9B,KAAQJ,SAAkB,KAC1B,KAAAzgB,SAAyB,CAAEowB,mCAAmC,GA2pBtD,KAAUtD,WAAa,GAnpB7BrrR,KAAKzO,KAAOysQ,EAAIzsQ,KAChByO,KAAK4uR,cAAgB9+P,EAAO++P,iBAG9BC,0BAAAA,CACE9E,EACA+E,GA4CA,OA1CIA,IACF/uR,KAAKquR,uBAAyB/F,GAAayG,IAK7C/uR,KAAKouR,uBAAyBpuR,KAAKy0I,OAAMohC,kBACvC,IAAI71K,KAAKmuR,WAITnuR,KAAKgvR,yBAA2B7F,GAAuBl4R,OACrD+O,KACAgqR,IAGEhqR,KAAKmuR,UAAT,CAMA,GAA+B,QAA3Bz/P,EAAA1uB,KAAKquR,8BAAsB,IAAA3/P,OAAA,EAAAA,EAAEugQ,uBAE/B,UACQjvR,KAAKquR,uBAAuBa,YAAYlvR,KAC/C,CAAC,MAAO7J,WAKL6J,KAAKmvR,sBAAsBJ,GAEjC/uR,KAAK0uR,iBAAoC,QAAlB56P,EAAA9zB,KAAKqiR,mBAAa,IAAAvuP,OAAA,EAAAA,EAAAqvO,MAAO,KAE5CnjQ,KAAKmuR,WAITnuR,KAAKkuR,gBAAiB,EArBrB,CAqByB,IAGrBluR,KAAKouR,uBAMd,qBAAM3E,GACJ,GAAIzpR,KAAKmuR,SACP,OAGF,MAAMj1C,QAAal5O,KAAKovR,oBAAoBzF,iBAE5C,OAAK3pR,KAAKqiR,aAAgBnpC,EAMtBl5O,KAAKqiR,aAAenpC,GAAQl5O,KAAKqiR,YAAYlf,MAAQjqB,EAAKiqB,KAE5DnjQ,KAAKqvR,aAAavJ,QAAQ5sC,cAGpBl5O,KAAKqiR,YAAYY,yBAMnBjjR,KAAKsvR,mBAAmBp2C,GAAqC,QAjBnE,EAoBM,sCAAMq2C,CACZ7gC,GAEA,IACE,MAAM1iO,QAAiBu1P,GAAevhR,KAAM,CAAE0uP,YACxCxV,QAAagtC,GAASkC,4BAC1BpoR,KACAgsB,EACA0iO,SAEI1uP,KAAKwvR,uBAAuBt2C,EACnC,CAAC,MAAOrtN,GACPhI,QAAQ04C,KACN,qEACA1wC,SAEI7rB,KAAKwvR,uBAAuB,KACnC,EAGK,2BAAML,CACZJ,SAEA,GAAIzwB,GAAqBt+P,KAAKg+P,KAAM,CAClC,MAAMtP,EAAU1uP,KAAKg+P,IAAIO,SAASkxB,YAClC,OAAI/gC,EAGK,IAAIj8I,SAAc24B,IACvBngG,YAAW,IACTjrC,KAAKuvR,iCAAiC7gC,GAAS73I,KAC7Cu0B,EACAA,IAEH,IAGIprI,KAAKwvR,uBAAuB,KAEtC,CAGD,MAAME,QACG1vR,KAAKovR,oBAAoBzF,iBAClC,IAAIgG,EAAoBD,EACpBE,GAAyB,EAC7B,GAAIb,GAAyB/uR,KAAK8vB,OAAO+/P,WAAY,OAC7C7vR,KAAK8vR,sCACX,MAAMC,EAAuC,QAAjBrhQ,EAAA1uB,KAAK+tR,oBAAY,IAAAr/P,OAAA,EAAAA,EAAEg5P,iBACzCsI,EAAqC,OAAjBL,QAAA,IAAAA,OAAA,EAAAA,EAAmBjI,iBACvC3uQ,QAAe/Y,KAAKiwR,kBAAkBlB,GAOxCgB,GAAuBA,IAAwBC,KAC3C,OAANj3Q,QAAM,IAANA,OAAM,EAANA,EAAQmgO,QAERy2C,EAAoB52Q,EAAOmgO,KAC3B02C,GAAyB,EAE5B,CAGD,IAAKD,EACH,OAAO3vR,KAAKwvR,uBAAuB,MAGrC,IAAKG,EAAkBjI,iBAAkB,CAGvC,GAAIkI,EACF,UACQ5vR,KAAK8tR,iBAAiBnC,cAAcgE,EAC3C,CAAC,MAAOx5R,IACPw5R,EAAoBD,EAGpB1vR,KAAKquR,uBAAwB6B,wBAAwBlwR,MAAM,IACzDyyG,QAAQkvD,OAAOxrK,KAElB,CAGH,OAAIw5R,EACK3vR,KAAKmwR,+BAA+BR,GAEpC3vR,KAAKwvR,uBAAuB,KAEtC,CAQD,OANAjS,GAAQv9Q,KAAKquR,uBAAwBruR,KAAM,wBACrCA,KAAK8vR,sCAMT9vR,KAAK+tR,cACL/tR,KAAK+tR,aAAarG,mBAAqBiI,EAAkBjI,iBAElD1nR,KAAKwvR,uBAAuBG,GAG9B3vR,KAAKmwR,+BAA+BR,GAGrC,uBAAMM,CACZG,GAkBA,IAAIr3Q,EAAgC,KACpC,IAGEA,QAAe/Y,KAAKquR,uBAAwBgC,oBAC1CrwR,KACAowR,GACA,EAEH,CAAC,MAAOj6R,UAGD6J,KAAKswR,iBAAiB,KAC7B,CAED,OAAOv3Q,EAGD,oCAAMo3Q,CACZj3C,GAEA,UACQsqC,GAAqBtqC,EAC5B,CAAC,MAAO/iP,IACP,GAEE,iCADoB,OAAnBA,SAAA,IAAAA,QAAA,EAAAA,GAAqBoI,MAKtB,OAAOyB,KAAKwvR,uBAAuB,KAEtC,CAED,OAAOxvR,KAAKwvR,uBAAuBt2C,GAGrCq3C,iBAAAA,GACEvwR,KAAKo/Q,wBzBzVP,GAAyB,qBAAd/qP,UACT,OAAO,KAET,MAAMm8P,EAAuCn8P,UAC7C,OAEGm8P,EAAkBC,WAAaD,EAAkBC,UAAU,IAG5DD,EAAkBE,UAElB,IAEJ,CyB4UwBC,GAGtB,aAAM95B,GACJ72P,KAAKmuR,UAAW,EAGlB,uBAAMyC,CAAkBC,GACtB,GAAIvyB,GAAqBt+P,KAAKg+P,KAC5B,OAAOvrJ,QAAQkvD,OACby7G,GAAgDp9Q,OAKpD,MAAMk5O,EAAO23C,EACR/7B,GAAmB+7B,GACpB,KAQJ,OAPI33C,GACFqkC,GACErkC,EAAK71C,KAAKvzK,OAAO2+M,SAAWzuO,KAAK8vB,OAAO2+M,OACxCzuO,KAAI,sBAIDA,KAAKsvR,mBAAmBp2C,GAAQA,EAAK6sC,OAAO/lR,OAGrD,wBAAMsvR,CACJp2C,GACyC,IAAzC43C,EAAAh/R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEA,IAAIkO,KAAKmuR,SAeT,OAZIj1C,GACFqkC,GACEv9Q,KAAKg/Q,WAAa9lC,EAAK8lC,SACvBh/Q,KAAI,sBAKH8wR,SACG9wR,KAAK8tR,iBAAiBnC,cAAczyC,GAGrCl5O,KAAKy0I,OAAMohC,gBACV71K,KAAKwvR,uBAAuBt2C,GAClCl5O,KAAK+wR,qBAAqB,IAI9B,aAAMzO,GACJ,OAAIhkB,GAAqBt+P,KAAKg+P,KACrBvrJ,QAAQkvD,OACby7G,GAAgDp9Q,cAI9CA,KAAK8tR,iBAAiBnC,cAAc,OAEtC3rR,KAAKgxR,4BAA8BhxR,KAAKquR,+BACpCruR,KAAKswR,iBAAiB,MAKvBtwR,KAAKsvR,mBAAmB,MAAqC,IAGtExF,cAAAA,CAAeV,GACb,OAAI9qB,GAAqBt+P,KAAKg+P,KACrBvrJ,QAAQkvD,OACby7G,GAAgDp9Q,OAG7CA,KAAKy0I,OAAMohC,gBACV71K,KAAKovR,oBAAoBtF,eAAexB,GAAac,GAAa,IAI5E6H,mBAAAA,GACE,OAAqB,MAAjBjxR,KAAKg/Q,SACAh/Q,KAAKsuR,sBAELtuR,KAAKuuR,wBAAwBvuR,KAAKg/Q,UAI7C,sBAAM6N,CAAiB9oJ,GAChB/jI,KAAKkxR,oCACFlxR,KAAKmxR,wBAIb,MAAMpE,EACJ/sR,KAAKkxR,6BAIP,OACEnE,EAAeH,gBACf5sR,KAAKiuR,wCAEEx7K,QAAQkvD,OACb3hK,KAAKs9Q,cAAcrsR,OAAO,6CAExB,CAAC,IAKA87R,EAAeF,iBAAiB9oJ,GAGzCmtJ,0BAAAA,GACE,OAAsB,OAAlBlxR,KAAKg/Q,SACAh/Q,KAAKwuR,uBAELxuR,KAAKyuR,wBAAwBzuR,KAAKg/Q,UAI7C,2BAAMmS,GACJ,MAAMnlQ,QCxcH6pJ,eACLwtB,GAGA,OAAO47E,GAIL57E,EAGA,2BAAA07E,GAAmB17E,EATrBvxM,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAoC,CAAC,GAWvC,CD2b2Bs/R,CAAmBpxR,MAEpC+sR,EAAyC,IAAIhB,GACjD//P,GAGoB,OAAlBhsB,KAAKg/Q,SACPh/Q,KAAKwuR,uBAAyBzB,EAE9B/sR,KAAKyuR,wBAAwBzuR,KAAKg/Q,UAAY+N,EAIlDsE,eAAAA,GACE,OAAOrxR,KAAKovR,oBAAoBhG,YAAY5rQ,KAG9C8zQ,eAAAA,CAAgBnU,GACdn9Q,KAAKs9Q,cAAgB,IAAI7qB,GACvB,OACA,WACC0qB,KAILoU,kBAAAA,CACEh9B,EACA52O,EACA+f,GAEA,OAAO19B,KAAKwxR,sBACVxxR,KAAK2tR,sBACLp5B,EACA52O,EACA+f,GAIJ+zP,sBAAAA,CACE/lQ,EACA+/P,GAEA,OAAOzrR,KAAK8tR,iBAAiBtC,aAAa9/P,EAAU+/P,GAGtDiG,gBAAAA,CACEn9B,EACA52O,EACA+f,GAEA,OAAO19B,KAAKwxR,sBACVxxR,KAAK6tR,oBACLt5B,EACA52O,EACA+f,GAIJi0P,cAAAA,GACE,OAAO,IAAIl/K,SAAQ,CAAC24B,EAASu2B,KAC3B,GAAI3hK,KAAKqiR,YACPj3I,QACK,CACL,MAAMg5D,EAAcpkM,KAAKuxR,oBAAmB,KAC1CntF,IACAh5D,GAAS,GACRu2B,EACJ,KAOL,uBAAMiwH,CAAkBh0H,GACtB,GAAI59J,KAAKqiR,YAAa,CACpB,MAEM/2P,EAA8B,CAClC44P,WAAY,YACZ2N,UAAiC,eACjCj0H,QACA8wF,cANoB1uP,KAAKqiR,YAAYY,cAQlB,MAAjBjjR,KAAKg/Q,WACP1zP,EAAQ0zP,SAAWh/Q,KAAKg/Q,gBThfzBnpG,eACLwtB,EACA/3K,GAEA,OAAO2zP,GACL57E,EAGA,kCAAA07E,GAAmB17E,EAAM/3K,GAE7B,CSweYwmQ,CAAY9xR,KAAMsrB,EACzB,EAGH9nB,MAAAA,SACE,MAAO,CACLirO,OAAQzuO,KAAK8vB,OAAO2+M,OACpBohD,WAAY7vR,KAAK8vB,OAAO+/P,WACxB9wB,QAAS/+P,KAAKzO,KACd8wR,YAA8B,QAAjB3zP,EAAA1uB,KAAKqvR,oBAAY,IAAA3gQ,OAAA,EAAAA,EAAElrB,UAIpC,sBAAM8sR,CACJp3C,EACA61C,GAEA,MAAMgD,QAAwB/xR,KAAK8vR,oCACjCf,GAEF,OAAgB,OAAT71C,EACH64C,EAAgBnI,oBAChBmI,EAAgBrI,eAAexwC,GAG7B,yCAAM42C,CACZf,GAEA,IAAK/uR,KAAKgxR,2BAA4B,CACpC,MAAMgB,EACHjD,GAAyBzG,GAAayG,IACvC/uR,KAAKquR,uBACP9Q,GAAQyU,EAAUhyR,KAAM,kBACxBA,KAAKgxR,iCAAmC7H,GAAuBl4R,OAC7D+O,KACA,CAACsoR,GAAa0J,EAASC,uBAAsB,gBAG/CjyR,KAAK+tR,mBACG/tR,KAAKgxR,2BAA2BrH,gBACzC,CAED,OAAO3pR,KAAKgxR,2BAGd,wBAAMkB,CAAmBzmQ,WAOvB,OAJIzrB,KAAKkuR,sBACDluR,KAAKy0I,OAAMohC,eAGI,QAAnBnnJ,EAAA1uB,KAAKqvR,oBAAc,IAAA3gQ,OAAA,EAAAA,EAAAg5P,oBAAqBj8P,EACnCzrB,KAAKqvR,cAGS,QAAnBv7P,EAAA9zB,KAAK+tR,oBAAc,IAAAj6P,OAAA,EAAAA,EAAA4zP,oBAAqBj8P,EACnCzrB,KAAK+tR,aAGP,KAGT,2BAAMxH,CAAsBrtC,GAC1B,GAAIA,IAASl5O,KAAKqiR,YAChB,OAAOriR,KAAKy0I,OAAMohC,SAAY71K,KAAKwvR,uBAAuBt2C,KAK9DstC,yBAAAA,CAA0BttC,GACpBA,IAASl5O,KAAKqiR,aAChBriR,KAAK+wR,sBAIT90Q,IAAAA,GACE,MAAO,GAAGjc,KAAK8vB,OAAO+/P,cAAc7vR,KAAK8vB,OAAO2+M,UAAUzuO,KAAKzO,OAGjE81R,sBAAAA,GACErnR,KAAKguR,2BAA4B,EAC7BhuR,KAAKqiR,aACPriR,KAAKqvR,aAAahI,yBAItBC,qBAAAA,GACEtnR,KAAKguR,2BAA4B,EAC7BhuR,KAAKqiR,aACPriR,KAAKqvR,aAAa/H,wBAKtB,gBAAI+H,GACF,OAAOrvR,KAAKqiR,YAGN0O,mBAAAA,WACN,IAAK/wR,KAAKkuR,eACR,OAGFluR,KAAK6tR,oBAAoB32Q,KAAKlX,KAAKqiR,aAEnC,MAAM8P,EAAsC,QAAzBr+P,EAAkB,QAAlBpF,EAAA1uB,KAAKqiR,mBAAa,IAAA3zP,OAAA,EAAAA,EAAAy0O,WAAO,IAAArvO,EAAAA,EAAA,KACxC9zB,KAAK0uR,kBAAoByD,IAC3BnyR,KAAK0uR,gBAAkByD,EACvBnyR,KAAK2tR,sBAAsBz2Q,KAAKlX,KAAKqiR,cAIjCmP,qBAAAA,CACNY,EACA79B,EACA52O,EACA+f,GAEA,GAAI19B,KAAKmuR,SACP,MAAO,OAGT,MAAM5pP,EACsB,oBAAnBgwN,EACHA,EACAA,EAAer9O,KAAK3f,KAAKg9P,GAE/B,IAAI89B,GAAiB,EAErB,MAAM3wH,EAAU1hK,KAAKkuR,eACjBz7K,QAAQ24B,UACRprI,KAAKouR,uBAWT,GAVA7Q,GAAQ77G,EAAS1hK,KAAM,kBAGvB0hK,EAAQ7qD,MAAK,KACPw7K,GAGJ9tP,EAAGvkC,KAAKqiR,YAAY,IAGQ,oBAAnB9tB,EAA+B,CACxC,MAAMnwD,EAAcguF,EAAaE,YAC/B/9B,EACA52O,EACA+f,GAEF,MAAO,KACL20P,GAAiB,EACjBjuF,GAAa,CAEhB,CAAM,CACL,MAAMA,EAAcguF,EAAaE,YAAY/9B,GAC7C,MAAO,KACL89B,GAAiB,EACjBjuF,GAAa,CAEhB,EAQK,4BAAMorF,CACZt2C,GAEIl5O,KAAKqiR,aAAeriR,KAAKqiR,cAAgBnpC,GAC3Cl5O,KAAKqvR,aAAa/H,wBAEhBpuC,GAAQl5O,KAAKguR,2BACf90C,EAAKmuC,yBAGPrnR,KAAKqiR,YAAcnpC,EAEfA,QACIl5O,KAAKovR,oBAAoB1F,eAAexwC,SAExCl5O,KAAKovR,oBAAoBxF,oBAI3Bn1I,KAAAA,CAAMpiH,GAIZ,OADAryB,KAAK0tR,WAAa1tR,KAAK0tR,WAAW72K,KAAKxkF,EAAQA,GACxCryB,KAAK0tR,WAGd,uBAAY0B,GAEV,OADA7R,GAAQv9Q,KAAKgvR,mBAAoBhvR,KAAM,kBAChCA,KAAKgvR,mBAKduD,aAAAA,CAAcC,GACPA,IAAaxyR,KAAKqrR,WAAWvmQ,SAAS0tQ,KAG3CxyR,KAAKqrR,WAAW71R,KAAKg9R,GAIrBxyR,KAAKqrR,WAAW9gH,OAChBvqK,KAAK4uR,cAAgB1D,GACnBlrR,KAAK8vB,OAAOq7P,eACZnrR,KAAKyyR,mBAGTA,cAAAA,GACE,OAAOzyR,KAAKqrR,WAEd,2BAAMlM,SAEJ,MAAMjnG,EAAkC,CACtC,mBAA+Bl4K,KAAK4uR,eAGlC5uR,KAAKg+P,IAAIhzO,QAAQ81O,QACnB5oF,EAAQ,oBAA+Bl4K,KAAKg+P,IAAIhzO,QAAQ81O,OAI1D,MAAM4xB,QAIF,QAJ2BhkQ,EAAA1uB,KAAKutR,yBACjCn3B,aAAa,CACZC,UAAU,WAEV,IAAA3nO,OAAA,EAAAA,EAAAizO,uBACA+wB,IACFx6G,EAAQ,qBAAgCw6G,GAI1C,MAAMC,QAAsB3yR,KAAK4yR,oBAKjC,OAJID,IACFz6G,EAAQ,uBAAmCy6G,GAGtCz6G,EAGT,uBAAM06G,SACJ,MAAMC,QAEF,QAF8BnkQ,EAAA1uB,KAAKwtR,wBACpCp3B,aAAa,CAAEC,UAAU,WACxB,IAAA3nO,OAAA,EAAAA,EAAAigO,YAUJ,OATI,OAAAkkC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBl1Q,iB5B3yBJte,GACvB,GAAIu9Q,GAAUxkB,UAAYlqB,GAAS2pB,KAAM,SAAA97O,EAAAjqB,UAAA3B,OADF6rB,EAAc,IAAAjmB,MAAAgmB,EAAA,EAAAA,EAAA,KAAAgiL,EAAA,EAAAA,EAAAhiL,EAAAgiL,IAAd/hL,EAAc+hL,EAAA,GAAAjsM,UAAAisM,GAEnD6+E,GAAUrgN,KAAK,SAASyiM,QAAiB3/P,OAAU2c,EACpD,CACH,C4B4yBM82Q,CACE,2CAA2CD,EAAoBl1Q,SAG5D,OAAAk1Q,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBj1H,OAU1B,SAAUm1H,GAAU1vF,GACxB,OAAOyxD,GAAmBzxD,EAC5B,CAGA,MAAMuqF,GAMJv9R,WAAAA,CAAqBgzM,GAAA,KAAIA,KAAJA,EALb,KAAQgxD,SAA8B,KACrC,KAAAi+B,YhHhzBK,SACdloF,EACA0pD,GAEA,MAAM94F,EAAQ,IAAI64F,GAAiBzpD,EAAU0pD,GAC7C,OAAO94F,EAAMsf,UAAU/iL,KAAKyjK,EAC9B,CgH0yB8Cg4H,EAC1C3+B,GAAar0P,KAAKq0P,SAAWA,IAK/B,QAAIn9O,GAEF,OADAqmQ,GAAQv9Q,KAAKq0P,SAAUr0P,KAAKqjM,KAAM,kBAC3BrjM,KAAKq0P,SAASn9O,KAAK3f,KAAKyI,KAAKq0P,WE51BxC,IAAI4+B,GAAyC,CAC3C,YAAMC,GACJ,MAAM,IAAIvhS,MAAM,oCAGlBwhS,kBAAmB,GACnBC,0BAA2B,GAC3BC,WAAY,IAOR,SAAUC,GAAQt2P,GACtB,OAAOi2P,GAAmBC,OAAOl2P,EACnC,CAcM,SAAUu2P,GAAsB1rO,GACpC,MAAO,KAAKA,IAAS31D,KAAKC,MAAsB,IAAhBD,KAAKymC,WACvC,OCpBa66P,GAaXnjS,WAAAA,CAAYojS,GATH,KAAIj2Q,KAPmC,uBAiB9Cxd,KAAKqjM,KAAO0vF,GAAUU,GAQxB,YAAMC,GAEgB,IADpBrhQ,EAAAvgC,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAiB,SACjBw0R,EAAYx0R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAuCZ,SAAS6hS,EACP5S,EACA31I,EACAu2B,GAEA,MAAMi/G,EAAatgR,OAAOsgR,WACtBD,GAAaC,GACfA,EAAWC,WAAW+S,OAAM,KAC1BhT,EAAWC,WACRgT,QAAQ9S,EAAS,CAAE1uP,WACnBwkF,MAAK+mD,IACJxyB,EAAQwyB,EAAM,IAEfvyB,OAAM,KACLD,EA/EY,eA+EO,GACnB,IAGNu2B,EAAOhwK,MAAM,2CAIjB,OAAO,IAAI8gH,SAAgB,CAAC24B,EAASu2B,MA3DrCkU,eAA+BwtB,GAC7B,IAAKijF,EAAc,CACjB,GAAqB,MAAjBjjF,EAAK27E,UAAkD,MAA9B37E,EAAKirF,sBAChC,OAAOjrF,EAAKirF,sBAAsBvN,QAEpC,GACmB,MAAjB19E,EAAK27E,eAC2CjtR,IAAhDsxM,EAAKkrF,wBAAwBlrF,EAAK27E,UAElC,OAAO37E,EAAKkrF,wBAAwBlrF,EAAK27E,UAAU+B,OAEtD,CAED,OAAO,IAAItuK,SAAgBojE,MAAOzqC,EAASu2B,KACzC2/G,GAAmBj+E,EAAM,CACvBywF,WAAmC,kBACnC1oQ,QAAoC,yBAEnCyrF,MAAK7qF,IACJ,QAA8Bj6B,IAA1Bi6B,EAASi1P,aAEN,CACL,MAAMnxP,EAAS,IAAIgxP,GAAgB90P,GAMnC,OALqB,MAAjBq3K,EAAK27E,SACP37E,EAAKirF,sBAAwBx+P,EAE7BuzK,EAAKkrF,wBAAwBlrF,EAAK27E,UAAYlvP,EAEzCs7G,EAAQt7G,EAAOixP,QACvB,CATCp/G,EAAO,IAAIhwK,MAAM,2CASlB,IAEF05I,OAAM1tH,IACLgkJ,EAAOhkJ,EAAM,GACb,KA2BNo2Q,CAAgB/zR,KAAKqjM,MAClBxsF,MAAKkqK,IACJ,IAAKuF,GAAgB3F,GAAargR,OAAOsgR,YACvC+S,EAAuB5S,EAAS31I,EAASu2B,OACpC,CACL,GAAsB,qBAAXrhK,OAIT,YAHAqhK,EACE,IAAIhwK,MAAM,mDAId,IAAIqrC,EDtFPi2P,GAAmBG,0BCuFG,IAAfp2P,EAAI7sC,SACN6sC,GAAO+jP,GAETuS,GACWt2P,GACR65E,MAAK,KACJ88K,EAAuB5S,EAAS31I,EAASu2B,EAAO,IAEjDt2B,OAAM1tH,IACLgkJ,EAAOhkJ,EAAM,GAElB,KAEF0tH,OAAM1tH,IACLgkJ,EAAOhkJ,EAAM,GACb,KAKHk4J,eAAem+G,GACpB3wF,EACA/3K,EACA+G,GACmB,IAAnB4hQ,EAAWniS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEX,MAAMoiS,EAAW,IAAIV,GAA4BnwF,GACjD,IAAI8wF,EACJ,IACEA,QAAwBD,EAASR,OAAOrhQ,EACzC,CAAC,MAAO1U,GACPw2Q,QAAwBD,EAASR,OAAOrhQ,GAAQ,EACjD,CACD,MAAM+hQ,EAAUpjS,OAAAG,OAAA,GAAQm6B,GAUxB,OATK2oQ,EAGHjjS,OAAOG,OAAOijS,EAAY,CAAE,YAAeD,IAF3CnjS,OAAOG,OAAOijS,EAAY,CAAED,oBAI9BnjS,OAAOG,OAAOijS,EAAY,CAAE,WAAc,oBAC1CpjS,OAAOG,OAAOijS,EAAY,CACxB,iBAA+C,yBAE1CA,CACT,CAOOv+G,eAAew+G,GACpBC,EACAhpQ,EACAipQ,EACAC,SAEA,GAE0B,QADxB9lQ,EAAA4lQ,EACGrD,6BAAqB,IAAAviQ,OAAA,EAAAA,EACpB2yP,kBAAkB,2BACtB,CACA,MAAMoT,QAA6BT,GACjCM,EACAhpQ,EACAipQ,EACe,eAAfA,GAEF,OAAOC,EAAaF,EAAcG,EACnC,CACC,OAAOD,EAAaF,EAAchpQ,GAAS+/G,OAAMwqC,UAC/C,GAAmB,iCAAfl4J,EAAMpf,KAA0D,CAClEslB,QAAQtoB,IACN,GAAGg5R,iIAEL,MAAME,QAA6BT,GACjCM,EACAhpQ,EACAipQ,EACe,eAAfA,GAEF,OAAOC,EAAaF,EAAcG,EACnC,CACC,OAAOhiL,QAAQkvD,OAAOhkJ,EACvB,GAGP,UClLgB+2Q,GACdrxF,EACArmK,EACAhS,GAEA,MAAM2pQ,EAAe5B,GAAU1vF,GAC/Bk6E,GACEoX,EAAajV,iBACbiV,EAAY,0BAIdpX,GACE,eAAevlP,KAAKgF,GACpB23P,EAAY,2BAId,MAAMC,KAAoB,OAAA5pQ,QAAA,IAAAA,OAAA,EAAAA,EAAS4pQ,iBAE7BvvG,EAAWwvG,GAAgB73P,IAC3B,KAAE8jK,EAAI,KAAEE,GAuBhB,SAA4BhkK,GAI1B,MAAMqoJ,EAAWwvG,GAAgB73P,GAC3B83P,EAAY,mBAAmB1iI,KAAKp1H,EAAI7a,OAAOkjK,EAASl1L,SAC9D,IAAK2kS,EACH,MAAO,CAAEh0F,KAAM,GAAIE,KAAM,MAE3B,MAAM+zF,EAAcD,EAAU,GAAGlhS,MAAM,KAAKm3D,OAAS,GAC/CiqO,EAAgB,qBAAqB5iI,KAAK2iI,GAChD,GAAIC,EAAe,CACjB,MAAMl0F,EAAOk0F,EAAc,GAC3B,MAAO,CAAEl0F,OAAME,KAAMi0F,GAAUF,EAAY5yQ,OAAO2+K,EAAK3wM,OAAS,IACjE,CAAM,CACL,MAAO2wM,EAAME,GAAQ+zF,EAAYnhS,MAAM,KACvC,MAAO,CAAEktM,OAAME,KAAMi0F,GAAUj0F,GAChC,CACH,CAzCyBk0F,CAAmBl4P,GACpCm4P,EAAmB,OAATn0F,EAAgB,GAAK,IAAIA,IAGzC2zF,EAAa7kQ,OAAO0uP,SAAW,CAAExhP,IAAK,GAAGqoJ,MAAayb,IAAOq0F,MAC7DR,EAAap2B,SAASowB,mCAAoC,EAC1DgG,EAAalH,eAAiBz8R,OAAO09C,OAAO,CAC1CoyJ,OACAE,OACA3b,SAAUA,EAAS9jL,QAAQ,IAAK,IAChCypB,QAASh6B,OAAO09C,OAAO,CAAEkmP,sBAGtBA,GAyCP,WACE,SAASQ,IACP,MAAMxwI,EAAK/xH,SAAS9B,cAAc,KAC5BskQ,EAAMzwI,EAAGl4H,MACfk4H,EAAGn2G,UACD,oEACF4mP,EAAI9wR,SAAW,QACf8wR,EAAIp2R,MAAQ,OACZo2R,EAAI7oM,gBAAkB,UACtB6oM,EAAIC,OAAS,qBACbD,EAAIr6P,MAAQ,UACZq6P,EAAIp+N,OAAS,MACbo+N,EAAIn0R,KAAO,MACXm0R,EAAIrmM,OAAS,MACbqmM,EAAI9hK,OAAS,QACb8hK,EAAIE,UAAY,SAChB3wI,EAAGq7E,UAAUp5N,IAAI,6BACjBgsB,SAAS0b,KAAKnJ,YAAYw/G,GAGL,qBAAZ/gI,SAAmD,oBAAjBA,QAAQsqN,MACnDtqN,QAAQsqN,KACN,gIAKkB,qBAAX7tO,QAA8C,qBAAbuyB,WACd,YAAxBA,SAASyO,WACXhhC,OAAOowB,iBAAiB,mBAAoB0kQ,GAE5CA,IAGN,CA1EII,EAEJ,CAEA,SAASX,GAAgB73P,GACvB,MAAMy4P,EAAcz4P,EAAIx+B,QAAQ,KAChC,OAAOi3R,EAAc,EAAI,GAAKz4P,EAAI7a,OAAO,EAAGszQ,EAAc,EAC5D,CAsBA,SAASR,GAAUE,GACjB,IAAKA,EACH,OAAO,KAET,MAAMn0F,EAAOxwM,OAAO2kS,GACpB,OAAI9qQ,MAAM22K,GACD,KAEFA,CACT,OCtFa00F,GAEXrlS,WAAAA,CAOW6zR,EASAyR,GATA,KAAUzR,WAAVA,EASA,KAAYyR,aAAZA,EAQXnyR,MAAAA,GACE,OAAOi6Q,GAAU,mBAInBmY,mBAAAA,CAAoBC,GAClB,OAAOpY,GAAU,mBAGnBqY,cAAAA,CACED,EACAE,GAEA,OAAOtY,GAAU,mBAGnBuY,4BAAAA,CAA6BH,GAC3B,OAAOpY,GAAU,oBCCd5nG,eAAeogH,GACpB5yF,EACA/3K,GAEA,OAAO2zP,GACL57E,EAGA,6BAAA/3K,EAEJ,CCvCOuqJ,eAAeqgH,GACpB7yF,EACA/3K,GAEA,OAAO40P,GAIL78E,EAGA,yCAAA07E,GAAmB17E,EAAM/3K,GAE7B,CCZM,MAAO6qQ,WAA4BT,GAEvCrlS,WAAAA,CAEW+lS,EAEAC,EACTV,GAEwC,IAA/BW,EAAAxkS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAA2B,KAEpCooB,MAAM,WAAqBy7Q,GAPlB,KAAMS,OAANA,EAEA,KAASC,UAATA,EAGA,KAASC,UAATA,EAMX,4BAAOC,CACL1yJ,EACAE,GAEA,OAAO,IAAIoyJ,GACTtyJ,EACAE,EAAQ,YAMZ,wBAAOyyJ,CACL3yJ,EACA4yJ,GAGA,OAAO,IAAIN,GACTtyJ,EACA4yJ,EAAO,YAJT3kS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAA0B,MAW5B0R,MAAAA,GACE,MAAO,CACLqgI,MAAO7jI,KAAKo2R,OACZryJ,SAAU/jI,KAAKq2R,UACfV,aAAc31R,KAAK21R,aACnB3W,SAAUh/Q,KAAKs2R,WAYnB,eAAOzQ,CAASj2G,GACd,MAAMhyJ,EAAsB,kBAATgyJ,EAAoB9jJ,KAAKK,MAAMyjJ,GAAQA,EAC1D,IAAO,OAAHhyJ,QAAG,IAAHA,OAAG,EAAHA,EAAKimH,SAAY,OAAHjmH,QAAG,IAAHA,OAAG,EAAHA,EAAKmmH,UAAU,CAC/B,GAAyB,aAArBnmH,EAAI+3Q,aACN,OAAO31R,KAAKu2R,sBAAsB34Q,EAAIimH,MAAOjmH,EAAImmH,UAC5C,GAAyB,cAArBnmH,EAAI+3Q,aACb,OAAO31R,KAAKw2R,kBAAkB54Q,EAAIimH,MAAOjmH,EAAImmH,SAAUnmH,EAAIohQ,SAE9D,CACD,OAAO,KAIT,yBAAM4W,CAAoBvyF,GACxB,OAAQrjM,KAAK21R,cACX,IAAK,WAOH,OAAOtB,GACLhxF,EAPyC,CACzCqzF,mBAAmB,EACnB7yJ,MAAO7jI,KAAKo2R,OACZryJ,SAAU/jI,KAAKq2R,UACfvC,WAAmC,mBAMnC,qBAAAoC,IAEJ,IAAK,YACH,OChGDrgH,eACLwtB,EACA/3K,GAEA,OAAO40P,GAIL78E,EAGA,0CAAA07E,GAAmB17E,EAAM/3K,GAE7B,CDmFeqrQ,CAAoBtzF,EAAM,CAC/Bx/D,MAAO7jI,KAAKo2R,OACZK,QAASz2R,KAAKq2R,YAElB,QACEvZ,GAAMz5E,EAAM,mBAKlB,oBAAMyyF,CACJzyF,EACAqrD,GAEA,OAAQ1uP,KAAK21R,cACX,IAAK,WAQH,OAAOtB,GACLhxF,EAR6B,CAC7BqrD,UACAgoC,mBAAmB,EACnB7yJ,MAAO7jI,KAAKo2R,OACZryJ,SAAU/jI,KAAKq2R,UACfvC,WAAmC,mBAMnC,iBAAAmC,IAEJ,IAAK,YACH,OC1GDpgH,eACLwtB,EACA/3K,GAEA,OAAO40P,GAIL78E,EAGA,0CAAA07E,GAAmB17E,EAAM/3K,GAE7B,CD6FesrQ,CAA8BvzF,EAAM,CACzCqrD,UACA7qH,MAAO7jI,KAAKo2R,OACZK,QAASz2R,KAAKq2R,YAElB,QACEvZ,GAAMz5E,EAAM,mBAKlB2yF,4BAAAA,CAA6B3yF,GAC3B,OAAOrjM,KAAK41R,oBAAoBvyF,IE9H7BxtB,eAAeghH,GACpBxzF,EACA/3K,GAEA,OAAO40P,GACL78E,EAGA,oCAAA07E,GAAmB17E,EAAM/3K,GAE7B,CCDM,MAAOwrQ,WAAwBpB,GAArCrlS,WAAAA,uBAqBU,KAAY0mS,aAAkB,KAGtC,kBAAOC,CAAYxrQ,GACjB,MAAMyrQ,EAAO,IAAIH,GAAgBtrQ,EAAO04P,WAAY14P,EAAOmqQ,cA4B3D,OA1BInqQ,EAAOkjO,SAAWljO,EAAOskL,aAEvBtkL,EAAOkjO,UACTuoC,EAAKvoC,QAAUljO,EAAOkjO,SAGpBljO,EAAOskL,cACTmnF,EAAKnnF,YAActkL,EAAOskL,aAIxBtkL,EAAO0rQ,QAAU1rQ,EAAOurQ,eAC1BE,EAAKC,MAAQ1rQ,EAAO0rQ,OAGlB1rQ,EAAOurQ,eACTE,EAAKF,aAAevrQ,EAAOurQ,eAEpBvrQ,EAAO2rQ,YAAc3rQ,EAAO4rQ,kBAErCH,EAAKnnF,YAActkL,EAAO2rQ,WAC1BF,EAAKzoL,OAAShjF,EAAO4rQ,kBAErBta,GAAM,kBAGDma,EAITzzR,MAAAA,GACE,MAAO,CACLkrP,QAAS1uP,KAAK0uP,QACd5+C,YAAa9vM,KAAK8vM,YAClBthG,OAAQxuG,KAAKwuG,OACb0oL,MAAOl3R,KAAKk3R,MACZH,aAAc/2R,KAAK+2R,aACnB7S,WAAYlkR,KAAKkkR,WACjByR,aAAc31R,KAAK21R,cAavB,eAAO9P,CAASj2G,GACd,MAAMhyJ,EAAsB,kBAATgyJ,EAAoB9jJ,KAAKK,MAAMyjJ,GAAQA,GACpD,WAAEs0G,EAAU,aAAEyR,GAAiD/3Q,EAAhCiQ,EAAgCsuP,GAAAv+P,EAA/D,+BACN,IAAKsmQ,IAAeyR,EAClB,OAAO,KAGT,MAAMsB,EAAO,IAAIH,GAAgB5S,EAAYyR,GAM7C,OALAsB,EAAKvoC,QAAU7gO,EAAK6gO,cAAW38P,EAC/BklS,EAAKnnF,YAAcjiL,EAAKiiL,kBAAe/9M,EACvCklS,EAAKzoL,OAAS3gF,EAAK2gF,OACnByoL,EAAKC,MAAQrpQ,EAAKqpQ,MAClBD,EAAKF,aAAelpQ,EAAKkpQ,cAAgB,KAClCE,EAITrB,mBAAAA,CAAoBvyF,GAElB,OAAOwzF,GAAcxzF,EADLrjM,KAAKq3R,gBAKvBvB,cAAAA,CACEzyF,EACAqrD,GAEA,MAAMpjO,EAAUtrB,KAAKq3R,eAErB,OADA/rQ,EAAQojO,QAAUA,EACXmoC,GAAcxzF,EAAM/3K,GAI7B0qQ,4BAAAA,CAA6B3yF,GAC3B,MAAM/3K,EAAUtrB,KAAKq3R,eAErB,OADA/rQ,EAAQgsQ,YAAa,EACdT,GAAcxzF,EAAM/3K,GAGrB+rQ,YAAAA,GACN,MAAM/rQ,EAAgC,CACpCisQ,WApJkB,mBAqJlBb,mBAAmB,GAGrB,GAAI12R,KAAK+2R,aACPzrQ,EAAQyrQ,aAAe/2R,KAAK+2R,iBACvB,CACL,MAAMS,EAAmC,CAAC,EACtCx3R,KAAK0uP,UACP8oC,EAAmB,SAAIx3R,KAAK0uP,SAE1B1uP,KAAK8vM,cACP0nF,EAAuB,aAAIx3R,KAAK8vM,aAE9B9vM,KAAKwuG,SACPgpL,EAA6B,mBAAIx3R,KAAKwuG,QAGxCgpL,EAAqB,WAAIx3R,KAAKkkR,WAC1BlkR,KAAKk3R,QAAUl3R,KAAK+2R,eACtBS,EAAgB,MAAIx3R,KAAKk3R,OAG3B5rQ,EAAQksQ,SAAWlkC,GAAYkkC,EAChC,CAED,OAAOlsQ,GCrFX,MAAMmsQ,GAEF,CACF,eAAwD,kBC/EpD,MAAOC,WAA4BhC,GACvCrlS,WAAAA,CAAqCm7B,GACnCtR,MAAM,QAAD,SAD8B,KAAMsR,OAANA,EAKrC,wBAAOmsQ,CACLC,EACAC,GAEA,OAAO,IAAIH,GAAoB,CAAEE,iBAAgBC,qBAInD,yBAAOC,CACLrX,EACAsX,GAEA,OAAO,IAAIL,GAAoB,CAAEjX,cAAasX,mBAIhDnC,mBAAAA,CAAoBvyF,GAClB,ODcGxtB,eACLwtB,EACA/3K,GAEA,OAAO40P,GAIL78E,EAGA,4CAAA07E,GAAmB17E,EAAM/3K,GAE7B,CC3BW0sQ,CAAsB30F,EAAMrjM,KAAKi4R,4BAI1CnC,cAAAA,CACEzyF,EACAqrD,GAEA,ODqBG74E,eACLwtB,EACA/3K,GAEA,MAAMU,QAAiBk0P,GAIrB78E,EAAI,4CAGJ07E,GAAmB17E,EAAM/3K,IAE3B,GAAIU,EAAS+rQ,eACX,MAAMjY,GAAiBz8E,EAAuC,2CAAAr3K,GAEhE,OAAOA,CACT,CCtCWksQ,CAAoB70F,EACzBryM,OAAAG,OAAA,CAAAu9P,WACG1uP,KAAKi4R,6BAKZjC,4BAAAA,CAA6B3yF,GAC3B,OD2CGxtB,eACLwtB,EACA/3K,GAMA,OAAO40P,GAIL78E,EAAI,4CAGJ07E,GAAmB17E,EAXLryM,OAAAG,OAAAH,OAAAG,OAAA,GACXm6B,GAAO,CACV6sQ,UAAW,YAUXV,GAEJ,CC7DWW,CAA6B/0F,EAAMrjM,KAAKi4R,4BAIjDA,wBAAAA,GACE,MAAM,eAAEF,EAAc,YAAEtX,EAAW,eAAEmX,EAAc,iBAAEC,GACnD73R,KAAKwrB,OACP,OAAIusQ,GAAkBtX,EACb,CAAEsX,iBAAgBtX,eAGpB,CACL4X,YAAaT,EACbr5R,KAAMs5R,GAKVr0R,MAAAA,GACE,MAAMoa,EAA8B,CAClCsmQ,WAAYlkR,KAAKkkR,YAenB,OAbIlkR,KAAKwrB,OAAOi1P,cACd7iQ,EAAI6iQ,YAAczgR,KAAKwrB,OAAOi1P,aAE5BzgR,KAAKwrB,OAAOusQ,iBACdn6Q,EAAIm6Q,eAAiB/3R,KAAKwrB,OAAOusQ,gBAE/B/3R,KAAKwrB,OAAOqsQ,mBACdj6Q,EAAIi6Q,iBAAmB73R,KAAKwrB,OAAOqsQ,kBAEjC73R,KAAKwrB,OAAOosQ,iBACdh6Q,EAAIg6Q,eAAiB53R,KAAKwrB,OAAOosQ,gBAG5Bh6Q,EAIT,eAAOioQ,CAASj2G,GACM,kBAATA,IACTA,EAAO9jJ,KAAKK,MAAMyjJ,IAGpB,MAAM,eAAEgoH,EAAc,iBAAEC,EAAgB,YAAEpX,EAAW,eAAEsX,GACrDnoH,EACF,OACGioH,GACAD,GACAnX,GACAsX,EAKI,IAAIL,GAAoB,CAC7BE,iBACAC,mBACApX,cACAsX,mBAPO,YC7CAO,GAiCXjoS,WAAAA,CAAYkoS,mBACV,MAAM/3G,EAAeizE,GAAkBC,GAAmB6kC,IACpD9pD,EAAyC,QAAhC//M,EAAA8xJ,EAAgC,kBAAA9xJ,EAAAA,EAAI,KAC7CnwB,EAAoC,QAA7Bu1B,EAAA0sJ,EAA6B,mBAAA1sJ,EAAAA,EAAI,KACxCqkQ,EApFV,SAAmBhnR,GACjB,OAAQA,GACN,IAAK,eACH,MAAyC,gBAC3C,IAAK,gBACH,MAA0C,iBAC5C,IAAK,SACH,MAAwC,eAC1C,IAAK,cACH,MAAwC,eAC1C,IAAK,uBACH,MAAmD,0BACrD,IAAK,6BACH,MAAyD,gCAC3D,QACE,OAAO,KAEb,CAmEsBqnR,CAAuC,QAA7BzkQ,EAAAysJ,EAA6B,gBAAAzsJ,EAAAA,EAAI,MAE7DwpP,GAAQ9uC,GAAUlwO,GAAQ45R,EAAW,kBACrCn4R,KAAKyuO,OAASA,EACdzuO,KAAKm4R,UAAYA,EACjBn4R,KAAKzB,KAAOA,EACZyB,KAAKy4R,YAAmD,QAArC7Q,EAAApnG,EAAqC,uBAAAonG,EAAAA,EAAI,KAC5D5nR,KAAKo/Q,aAAqD,QAAtCyI,EAAArnG,EAAsC,wBAAAqnG,EAAAA,EAAI,KAC9D7nR,KAAKg/Q,SAA6C,QAAlC8I,EAAAtnG,EAAkC,oBAAAsnG,EAAAA,EAAI,KAYxD,gBAAO4Q,CAAUhkK,GACf,MAAM6jK,EAjFV,SAAuBv7P,GACrB,MAAM03F,EAAO++H,GAAkBC,GAAmB12N,IAAY,KAGxD27P,EAAiBjkK,EACnB++H,GAAkBC,GAAmBh/H,IAAqB,aAC1D,KAEEkkK,EAAcnlC,GAAkBC,GAAmB12N,IACzC,aAKhB,OAH0B47P,EACtBnlC,GAAkBC,GAAmBklC,IAAoB,KACzD,OACwBA,GAAeD,GAAkBjkK,GAAQ13F,CACvE,CAkEuB67P,CAAcnkK,GACjC,IACE,OAAO,IAAI4jK,GAAcC,EAC1B,CAAC,MAAM7pQ,IACN,OAAO,IACR,SCzHQoqQ,GAAbzoS,WAAAA,GAkBW,KAAA6zR,WAAa4U,GAAkBC,YAoBxC,iBAAOC,CAAWn1J,EAAeE,GAC/B,OAAOoyJ,GAAoBI,sBAAsB1yJ,EAAOE,GAyB1D,yBAAOk1J,CACLp1J,EACAq1J,GAEA,MAAMC,EAAgBb,GAAcI,UAAUQ,GAG9C,OAFA3b,GAAQ4b,EAAe,kBAEhBhD,GAAoBK,kBACzB3yJ,EACAs1J,EAAc56R,KACd46R,EAAcna,WAtEF8Z,GAAAC,YAA8C,WAI9CD,GAAAM,8BACc,WAIdN,GAAAO,0BACU,kBCXNC,GAWpBjpS,WAAAA,CAAqB6zR,GAAA,KAAUA,WAAVA,EATrB,KAAmBqV,oBAAkB,KAE7B,KAAgBC,iBAAqB,CAAC,EAc9CC,kBAAAA,CAAmBra,GACjBp/Q,KAAKu5R,oBAAsBna,EAa7Bsa,mBAAAA,CAAoBC,GAElB,OADA35R,KAAKw5R,iBAAmBG,EACjB35R,KAMT45R,mBAAAA,GACE,OAAO55R,KAAKw5R,kBCZV,MAAgBK,WACZP,GADVjpS,WAAAA,uBAKU,KAAMypS,OAAa,GAO3BC,QAAAA,CAASC,GAKP,OAHKh6R,KAAK85R,OAAOh1Q,SAASk1Q,IACxBh6R,KAAK85R,OAAOtkS,KAAKwkS,GAEZh6R,KAMTi6R,SAAAA,GACE,MAAO,IAAIj6R,KAAK85R,SCrBd,MAAOI,WAA6BL,GAOxCxpS,WAAAA,GACE6pB,MAAM,gBAeR,iBAAO8+Q,CAAWlpF,GAChB,OAAOgnF,GAAgBE,YAAY,CACjC9S,WAAYgW,GAAqBnB,YACjCpD,aAAcuE,GAAqBC,wBACnCrqF,gBASJ,2BAAOsqF,CACLC,GAEA,OAAOH,GAAqBI,2BAC1BD,GAUJ,0BAAOE,CAAoB58Q,GACzB,OAAOu8Q,GAAqBI,2BACzB38Q,EAAM60O,YAAc,CAAC,GAIlB,iCAAO8nC,CAA0BpnQ,GAEf,IADxBwtP,eAAgB8Z,GACQtnQ,EACxB,IAAKsnQ,KAAmB,qBAAsBA,GAC5C,OAAO,KAGT,IAAKA,EAAcC,iBACjB,OAAO,KAGT,IACE,OAAOP,GAAqBlB,WAAWwB,EAAcC,iBACtD,CAAC,MAAM/rQ,IACN,OAAO,IACR,GArEawrQ,GAAAC,wBACQ,eAERD,GAAAnB,YAAkD,eCF9D,MAAO2B,WAA2Bb,GAMtCxpS,WAAAA,GACE6pB,MAAM,cACNla,KAAK+5R,SAAS,WAgBhB,iBAAOf,CACLtqC,EACA5+C,GAEA,OAAOgnF,GAAgBE,YAAY,CACjC9S,WAAYwW,GAAmB3B,YAC/BpD,aAAc+E,GAAmBC,sBACjCjsC,UACA5+C,gBASJ,2BAAOsqF,CACLC,GAEA,OAAOK,GAAmBJ,2BACxBD,GASJ,0BAAOE,CAAoB58Q,GACzB,OAAO+8Q,GAAmBJ,2BACvB38Q,EAAM60O,YAAc,CAAC,GAIlB,iCAAO8nC,CAA0B3mQ,GAEf,IADxB+sP,eAAgB8Z,GACQ7mQ,EACxB,IAAK6mQ,EACH,OAAO,KAGT,MAAM,aAAEI,EAAY,iBAAEH,GACpBD,EACF,IAAKI,IAAiBH,EAEpB,OAAO,KAGT,IACE,OAAOC,GAAmB1B,WAAW4B,EAAcH,EACpD,CAAC,MAAM/rQ,IACN,OAAO,IACR,GA5EagsQ,GAAAC,sBAA0D,aAE1DD,GAAA3B,YAA8C,aCJ1D,MAAO8B,WAA2BhB,GAMtCxpS,WAAAA,GACE6pB,MAAM,cAQR,iBAAO8+Q,CAAWlpF,GAChB,OAAOgnF,GAAgBE,YAAY,CACjC9S,WAAY2W,GAAmB9B,YAC/BpD,aAAckF,GAAmBC,sBACjChrF,gBASJ,2BAAOsqF,CACLC,GAEA,OAAOQ,GAAmBP,2BACxBD,GAUJ,0BAAOE,CAAoB58Q,GACzB,OAAOk9Q,GAAmBP,2BACvB38Q,EAAM60O,YAAc,CAAC,GAIlB,iCAAO8nC,CAA0Bx5G,GAEf,IADxB4/F,eAAgB8Z,GACQ15G,EACxB,IAAK05G,KAAmB,qBAAsBA,GAC5C,OAAO,KAGT,IAAKA,EAAcC,iBACjB,OAAO,KAGT,IACE,OAAOI,GAAmB7B,WAAWwB,EAAcC,iBACpD,CAAC,MAAM/rQ,IACN,OAAO,IACR,GA7DamsQ,GAAAC,sBAA0D,aAE1DD,GAAA9B,YAA8C,aCW1D,MAAOgC,WAA4BlB,GAMvCxpS,WAAAA,GACE6pB,MAAM,eASR,iBAAO8+Q,CAAWp7H,EAAepvD,GAC/B,OAAOsoL,GAAgBE,YAAY,CACjC9S,WAAY6W,GAAoBhC,YAChCpD,aAAcoF,GAAoBC,uBAClC7D,WAAYv5H,EACZw5H,iBAAkB5oL,IAStB,2BAAO4rL,CACLC,GAEA,OAAOU,GAAoBT,2BACzBD,GAUJ,0BAAOE,CAAoB58Q,GACzB,OAAOo9Q,GAAoBT,2BACxB38Q,EAAM60O,YAAc,CAAC,GAIlB,iCAAO8nC,CAA0BhsG,GAEf,IADxBoyF,eAAgB8Z,GACQlsG,EACxB,IAAKksG,EACH,OAAO,KAET,MAAM,iBAAEC,EAAgB,iBAAErD,GACxBoD,EACF,IAAKC,IAAqBrD,EACxB,OAAO,KAGT,IACE,OAAO2D,GAAoB/B,WAAWyB,EAAkBrD,EACzD,CAAC,MAAM1oQ,IACN,OAAO,IACR,GCzGEmnJ,eAAeolH,GACpB53F,EACA/3K,GAEA,OAAO40P,GACL78E,EAGA,6BAAA07E,GAAmB17E,EAAM/3K,GAE7B,CD+BkByvQ,GAAAC,uBAA6D,cAE7DD,GAAAhC,YAAgD,oBExDrDmC,GAQX7qS,WAAAA,CAAYm7B,GACVxrB,KAAKk5O,KAAO1tN,EAAO0tN,KACnBl5O,KAAKkkR,WAAa14P,EAAO04P,WACzBlkR,KAAK0gR,eAAiBl1P,EAAOk1P,eAC7B1gR,KAAKm7R,cAAgB3vQ,EAAO2vQ,cAG9B,iCAAajT,CACX7kF,EACA83F,EACAhT,GAC4B,IAA5B9D,EAAAvyR,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEA,MAAMonP,QAAagtC,GAASgC,qBAC1B7kF,EACA8kF,EACA9D,GAEIH,EAAakX,GAAsBjT,GAOzC,OANiB,IAAI+S,GAAmB,CACtChiD,OACAgrC,aACAxD,eAAgByH,EAChBgT,kBAKJ,0BAAaE,CACXniD,EACAiiD,EACAnvQ,SAEMktN,EAAKquC,yBAAyBv7P,GAAuB,GAC3D,MAAMk4P,EAAakX,GAAsBpvQ,GACzC,OAAO,IAAIkvQ,GAAmB,CAC5BhiD,OACAgrC,aACAxD,eAAgB10P,EAChBmvQ,mBAKN,SAASC,GACPpvQ,GAEA,OAAIA,EAASk4P,WACJl4P,EAASk4P,WAGd,gBAAiBl4P,EACK,QAGnB,IACT,CChEM,MAAOsvQ,WACH/oC,GAKRliQ,WAAAA,CACEgzM,EACA1lL,EACSw9Q,EACAjiD,SAETh/N,MAAMyD,EAAMpf,KAAMof,EAAM1D,SAHf,KAAakhR,cAAbA,EACA,KAAIjiD,KAAJA,EAITloP,OAAOiuB,eAAejf,KAAMs7R,GAAiBpqS,WAC7C8O,KAAKwyP,WAAa,CAChBuM,QAAS17D,EAAK9xM,KACdytR,SAAuB,QAAbtwP,EAAA20K,EAAK27E,gBAAQ,IAAAtwP,EAAAA,OAAI38B,EAC3BquR,gBAAiBziQ,EAAM60O,WAAY4tB,gBACnC+a,iBAIJ,6BAAOI,CACLl4F,EACA1lL,EACAw9Q,EACAjiD,GAEA,OAAO,IAAIoiD,GAAiBj4F,EAAM1lL,EAAOw9Q,EAAejiD,IAItD,SAAUsiD,GACdn4F,EACA83F,EACAnC,EACA9/C,GAOA,OAJgD,mBAA9CiiD,EACInC,EAAWhD,6BAA6B3yF,GACxC21F,EAAWpD,oBAAoBvyF,IAEdh4D,OAAM1tH,IAC3B,GAAmB,oCAAfA,EAAMpf,KACR,MAAM+8R,GAAiBC,uBACrBl4F,EACA1lL,EACAw9Q,EACAjiD,GAIJ,MAAMv7N,CAAK,GAEf,CC3BOk4J,eAAe4lH,GACpBviD,EACA8/C,GACuB,IAAvB0C,EAAe5pS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEf,MAAMk6B,QAAiBm2P,GACrBjpC,EACA8/C,EAAWlD,eAAe58C,EAAK71C,WAAY61C,EAAK+pC,cAChDyY,GAEF,OAAOR,GAAmBG,cAAcniD,EAA0B,OAAAltN,EACpE,CCzCO6pJ,eAAe8lH,GACpBziD,EACA8/C,GACuB,IAAvB0C,EAAe5pS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEf,MAAM,KAAEuxM,GAAS61C,EACjB,GAAIolB,GAAqBj7D,EAAK26D,KAC5B,OAAOvrJ,QAAQkvD,OACby7G,GAAgD/5E,IAGpD,MAAM83F,EAAgB,iBAEtB,IACE,MAAMnvQ,QAAiBm2P,GACrBjpC,EACAsiD,GACEn4F,EACA83F,EACAnC,EACA9/C,GAEFwiD,GAEFne,GAAQvxP,EAAS0iO,QAASrrD,EAAM,kBAChC,MAAMphL,EAAS2/P,GAAY51P,EAAS0iO,SACpC6uB,GAAQt7P,EAAQohL,EAAM,kBAEtB,MAAQv8L,IAAK09Q,GAAYviQ,EAGzB,OAFAs7P,GAAQrkC,EAAKiqB,MAAQqhB,EAASnhF,EAAM,iBAE7B63F,GAAmBG,cAAcniD,EAAMiiD,EAAenvQ,EAC9D,CAAC,MAAO71B,IAKP,KAHmC,yBAA9B,OAAAA,SAAA,IAAAA,QAAA,EAAAA,GAAqBoI,OACxBu+Q,GAAMz5E,EAAM,iBAERltM,EACP,CACH,CCrCO0/K,eAAe+lH,GACpBv4F,EACA21F,GACuB,IAAvB0C,EAAe5pS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEf,GAAIwsQ,GAAqBj7D,EAAK26D,KAC5B,OAAOvrJ,QAAQkvD,OACby7G,GAAgD/5E,IAGpD,MAAM83F,EAAgB,SAChBnvQ,QAAiBwvQ,GACrBn4F,EACA83F,EACAnC,GAEIqB,QAAuBa,GAAmBhT,qBAC9C7kF,EACA83F,EACAnvQ,GAMF,OAHK0vQ,SACGr4F,EAAKisF,mBAAmB+K,EAAenhD,MAExCmhD,CACT,CC6C6B,IAAIzgJ,QCvE1B,MAAMiiJ,GAAwB,cCLfC,GACpBzrS,WAAAA,CACqB0rS,EACVv+Q,GADU,KAAgBu+Q,iBAAhBA,EACV,KAAIv+Q,KAAJA,EAGXkrQ,YAAAA,GACE,IACE,OAAK1oR,KAAKyoR,SAGVzoR,KAAKyoR,QAAQhrG,QAAQo+G,GAAuB,KAC5C77R,KAAKyoR,QAAQtwC,WAAW0jD,IACjBppL,QAAQ24B,SAAQ,IAJd34B,QAAQ24B,SAAQ,EAK1B,CAAC,MAAM18G,IACN,OAAO+jF,QAAQ24B,SAAQ,EACxB,EAGHu9I,IAAAA,CAAKpwQ,EAAa3f,GAEhB,OADAoH,KAAKyoR,QAAQhrG,QAAQllK,EAAKuT,KAAKC,UAAUnzB,IAClC65G,QAAQ24B,UAGjBw9I,IAAAA,CAAiCrwQ,GAC/B,MAAMq3J,EAAO5vK,KAAKyoR,QAAQnrG,QAAQ/kK,GAClC,OAAOk6F,QAAQ24B,QAAQwkC,EAAO9jJ,KAAKK,MAAMyjJ,GAAQ,MAGnDi5G,OAAAA,CAAQtwQ,GAEN,OADAvY,KAAKyoR,QAAQtwC,WAAW5/N,GACjBk6F,QAAQ24B,UAGjB,WAAcq9I,GACZ,OAAOzoR,KAAK+7R,oBC5BhB,MAAMC,WACIF,GAKRzrS,WAAAA,GACE6pB,OAAM,IAAM5Z,OAAO03O,cAAc,SAGlB,KAAAwxC,kBAAoB,CACnC3nP,EACAo6P,IACSj8R,KAAKk8R,eAAer6P,EAAOo6P,GACrB,KAAS3rQ,UAA8C,CAAC,EACxD,KAAUulP,WAAkC,CAAC,EAGtD,KAASsmB,UAAe,KAGf,KAAiBC,kBAAGnR,KAC5B,KAAqBZ,uBAAG,EAEzBgS,iBAAAA,CACN93P,GAGA,IAAK,MAAMhsB,KAAOvnB,OAAOg1C,KAAKhmC,KAAKswB,WAAY,CAE7C,MAAM6mB,EAAWn3C,KAAKyoR,QAAQnrG,QAAQ/kK,GAChC+jR,EAAWt8R,KAAK61Q,WAAWt9P,GAG7B4+B,IAAamlP,GACf/3P,EAAGhsB,EAAK+jR,EAAUnlP,EAErB,EAGK+kP,cAAAA,CAAer6P,GAAiC,IAAZo6P,EAAInqS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAE9C,IAAK+vC,EAAMtpB,IAMT,YALAvY,KAAKq8R,mBACH,CAAC9jR,EAAagkR,EAA0BplP,KACtCn3C,KAAKw8R,gBAAgBjkR,EAAK4+B,EAAS,IAMzC,MAAM5+B,EAAMspB,EAAMtpB,IAId0jR,EAGFj8R,KAAKy8R,iBAILz8R,KAAK08R,cAGP,MAAMC,EAAmBA,KAGvB,MAAMC,EAAc58R,KAAKyoR,QAAQnrG,QAAQ/kK,IACpC0jR,GAAQj8R,KAAK61Q,WAAWt9P,KAASqkR,IAKtC58R,KAAKw8R,gBAAgBjkR,EAAKqkR,EAAY,EAGlCA,EAAc58R,KAAKyoR,QAAQnrG,QAAQ/kK,GAEvCwyQ,MACA6R,IAAgB/6P,EAAMsV,UACtBtV,EAAMsV,WAAatV,EAAMy6P,SAMzBrxP,WAAW0xP,EAzFqB,IA2FhCA,IAIIH,eAAAA,CAAgBjkR,EAAa3f,GACnCoH,KAAK61Q,WAAWt9P,GAAO3f,EACvB,MAAM03B,EAAYtwB,KAAKswB,UAAU/X,GACjC,GAAI+X,EACF,IAAK,MAAME,KAAYz6B,MAAM/F,KAAKsgC,GAChCE,EAAS53B,EAAQkzB,KAAKK,MAAMvzB,GAASA,GAKnCikS,YAAAA,GACN78R,KAAK08R,cAEL18R,KAAKm8R,UAAYv4P,aAAY,KAC3B5jC,KAAKq8R,mBACH,CAAC9jR,EAAa+jR,EAAyBnlP,KACrCn3C,KAAKk8R,eACH,IAAIY,aAAa,UAAW,CAC1BvkR,MACA+jR,WACAnlP,cAES,EACZ,GAEJ,GA3H6B,KA+H1BulP,WAAAA,GACF18R,KAAKm8R,YACPp4P,cAAc/jC,KAAKm8R,WACnBn8R,KAAKm8R,UAAY,MAIbY,cAAAA,GACNz8R,OAAOowB,iBAAiB,UAAW1wB,KAAKwpR,mBAGlCiT,cAAAA,GACNn8R,OAAOqwB,oBAAoB,UAAW3wB,KAAKwpR,mBAG7CV,YAAAA,CAAavwQ,EAAaiY,GACmB,IAAvCx/B,OAAOg1C,KAAKhmC,KAAKswB,WAAWngC,SAK1B6P,KAAKo8R,kBACPp8R,KAAK68R,eAEL78R,KAAK+8R,kBAGJ/8R,KAAKswB,UAAU/X,KAClBvY,KAAKswB,UAAU/X,GAAO,IAAIqzG,IAE1B5rH,KAAK61Q,WAAWt9P,GAAOvY,KAAKyoR,QAAQnrG,QAAQ/kK,IAE9CvY,KAAKswB,UAAU/X,GAAK1R,IAAI2pB,GAG1Bw4P,eAAAA,CAAgBzwQ,EAAaiY,GACvBxwB,KAAKswB,UAAU/X,KACjBvY,KAAKswB,UAAU/X,GAAKsiH,OAAOrqG,GAEM,IAA7BxwB,KAAKswB,UAAU/X,GAAKzc,aACfkE,KAAKswB,UAAU/X,IAIiB,IAAvCvnB,OAAOg1C,KAAKhmC,KAAKswB,WAAWngC,SAC9B6P,KAAKy8R,iBACLz8R,KAAK08R,eAMT,UAAM/T,CAAKpwQ,EAAa3f,SAChBshB,MAAMyuQ,KAAKpwQ,EAAK3f,GACtBoH,KAAK61Q,WAAWt9P,GAAOuT,KAAKC,UAAUnzB,GAGxC,UAAMgwR,CAAiCrwQ,GACrC,MAAM3f,QAAcshB,MAAM0uQ,KAAQrwQ,GAElC,OADAvY,KAAK61Q,WAAWt9P,GAAOuT,KAAKC,UAAUnzB,GAC/BA,EAGT,aAAMiwR,CAAQtwQ,SACN2B,MAAM2uQ,QAAQtwQ,UACbvY,KAAK61Q,WAAWt9P,IAvLlByjR,GAAIx+Q,KAAY,QAiMlB,MAAMw/Q,GAAuChB,GC7MpD,MAAMiB,WACInB,GAKRzrS,WAAAA,GACE6pB,OAAM,IAAM5Z,OAAO+8K,gBAAgB,WAGrCyrG,YAAAA,CAAa7sQ,EAAc8sQ,IAK3BC,eAAAA,CAAgB/sQ,EAAc8sQ,KAXvBkU,GAAIz/Q,KAAc,UAuBpB,MAAM0/Q,GAAyCD,SCtBzCE,GAUX9sS,WAAAA,CAA6Bq1P,GAAA,KAAWA,YAAXA,EANZ,KAAW03C,YAIxB,CAAC,EAGHp9R,KAAKwpR,kBAAoBxpR,KAAKq9R,YAAY9lS,KAAKyI,MASjD,mBAAOsoR,CAAa5iC,GAIlB,MAAMuR,EAAmBj3P,KAAKs9R,UAAUhrQ,MAAKunO,GAC3CA,EAAS0jC,cAAc73C,KAEzB,GAAIuR,EACF,OAAOA,EAET,MAAMumC,EAAc,IAAIL,GAASz3C,GAEjC,OADA1lP,KAAKs9R,UAAU9nS,KAAKgoS,GACbA,EAGDD,aAAAA,CAAc73C,GACpB,OAAO1lP,KAAK0lP,cAAgBA,EAatB,iBAAM23C,CAGZx7P,GACA,MAAM47P,EAAe57P,GACf,QAAE67P,EAAO,UAAEj9K,EAAS,KAAEvgG,GAASu9Q,EAAav9Q,KAE5C+sI,EACJjtJ,KAAKo9R,YAAY38K,GACnB,KAAK,OAAAwsC,QAAQ,IAARA,OAAQ,EAARA,EAAUnxJ,MACb,OAGF2hS,EAAaE,MAAM,GAAGjhQ,YAAY,CAChC6E,OAAmB,MACnBm8P,UACAj9K,cAGF,MAAM8/C,EAAWxqK,MAAM/F,KAAKi9J,GAAUlvI,KAAI83J,SACxCtlJ,EAAQktQ,EAAat7P,OAAQjiB,KAEzB8L,QChEJ,SACJu0I,GAEA,OAAO9tD,QAAQ6tD,IACbC,EAASxiJ,KAAI83J,UACX,IAEE,MAAO,CACLujB,WAAW,EACXxgM,YAHkB8oK,EAKrB,CAAC,MAAOgrB,GACP,MAAO,CACL0M,WAAW,EACX1M,SAEH,KAGP,CD6C2BkxG,CAAYr9H,GACnCk9H,EAAaE,MAAM,GAAGjhQ,YAAY,CAChC6E,OAAoB,OACpBm8P,UACAj9K,YACAz0F,aAWJ6xQ,UAAAA,CACEp9K,EACAq9K,GAE6C,IAAzC9sS,OAAOg1C,KAAKhmC,KAAKo9R,aAAajtS,QAChC6P,KAAK0lP,YAAYh1N,iBAAiB,UAAW1wB,KAAKwpR,mBAG/CxpR,KAAKo9R,YAAY38K,KACpBzgH,KAAKo9R,YAAY38K,GAAa,IAAImL,KAGpC5rH,KAAKo9R,YAAY38K,GAAW55G,IAAIi3R,GAUlCC,YAAAA,CACEt9K,EACAq9K,GAEI99R,KAAKo9R,YAAY38K,IAAcq9K,GACjC99R,KAAKo9R,YAAY38K,GAAWoa,OAAOijK,GAEhCA,GAAqD,IAArC99R,KAAKo9R,YAAY38K,GAAW3kH,aACxCkE,KAAKo9R,YAAY38K,GAGmB,IAAzCzvH,OAAOg1C,KAAKhmC,KAAKo9R,aAAajtS,QAChC6P,KAAK0lP,YAAY/0N,oBAAoB,UAAW3wB,KAAKwpR,oBEvIrD,SAAUwU,KAAyC,IAAxBn2O,EAAM/1D,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAAImsS,EAAMnsS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GACjD6mC,EAAS,GACb,IAAK,IAAIpjC,EAAI,EAAGA,EAAI0oS,EAAQ1oS,IAC1BojC,GAAUzmC,KAAKC,MAAsB,GAAhBD,KAAKymC,UAE5B,OAAOkvB,EAASlvB,CAClB,CFS0BwkQ,GAASG,UAAe,SGOrCY,GAGX7tS,WAAAA,CAA6BioB,GAAA,KAAMA,OAANA,EAFZ,KAAA20I,SAAW,IAAIrhC,IASxBuyK,oBAAAA,CAAqB5tQ,GACvBA,EAAQ6tQ,iBACV7tQ,EAAQ6tQ,eAAejwI,MAAMx9H,oBAC3B,UACAJ,EAAQ8tQ,WAEV9tQ,EAAQ6tQ,eAAejwI,MAAM03C,SAE/B7lM,KAAKitJ,SAASpyB,OAAOtqG,GAgBvB,WAAM+tQ,CACJ79K,EACAvgG,GAC8B,IAA9B+gJ,EAAOnvK,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAuB,GAE9B,MAAMssS,EACsB,qBAAnBnwI,eAAiC,IAAIA,eAAmB,KACjE,IAAKmwI,EACH,MAAM,IAAIzsS,MAAM,0BAMlB,IAAI4sS,EACAhuQ,EACJ,OAAO,IAAIkiF,SAAqC,CAAC24B,EAASu2B,KACxD,MAAM+7H,EAAUM,GAAiB,GAAI,IACrCI,EAAejwI,MAAMx0J,QACrB,MAAM6kS,EAAWvzP,YAAW,KAC1B02H,EAAO,IAAIhwK,MAAM,qBAAiC,GACjDsvK,GACH1wI,EAAU,CACR6tQ,iBACAC,SAAAA,CAAUx8P,GACR,MAAM47P,EAAe57P,EACrB,GAAI47P,EAAav9Q,KAAKw9Q,UAAYA,EAGlC,OAAQD,EAAav9Q,KAAKqhB,QACxB,IAAK,MAEHyhF,aAAaw7K,GACbD,EAAkBtzP,YAAW,KAC3B02H,EAAO,IAAIhwK,MAAM,WAAuB,GACvC,KACH,MACF,IAAK,OAEHqxH,aAAau7K,GACbnzJ,EAAQqyJ,EAAav9Q,KAAK8L,UAC1B,MACF,QACEg3F,aAAaw7K,GACbx7K,aAAau7K,GACb58H,EAAO,IAAIhwK,MAAM,wBAKzBqO,KAAKitJ,SAASpmJ,IAAI0pB,GAClB6tQ,EAAejwI,MAAMz9H,iBAAiB,UAAWH,EAAQ8tQ,WACzDr+R,KAAKsY,OAAOokB,YACV,CACE+jF,YACAi9K,UACAx9Q,QAEF,CAACk+Q,EAAelwI,OACjB,IACA4/B,SAAQ,KACLv9J,GACFvwB,KAAKm+R,qBAAqB5tQ,EAC3B,cC7FS4sJ,KACd,OAAO78K,MACT,UC1BgBm+R,KACd,MAC4C,qBAAnCthH,KAA6B,mBACE,oBAA/BA,KAAyB,aAEpC,CCmBO,MAAMuiF,GAAU,yBAEjBg/B,GAAsB,uBACtBC,GAAkB,YAaxB,MAAMC,GACJvuS,WAAAA,CAA6Bi7B,GAAA,KAAOA,QAAPA,EAE7BuzQ,SAAAA,GACE,OAAO,IAAIpsL,SAAW,CAAC24B,EAASu2B,KAC9B3hK,KAAKsrB,QAAQoF,iBAAiB,WAAW,KACvC06G,EAAQprI,KAAKsrB,QAAQvS,OAAO,IAE9B/Y,KAAKsrB,QAAQoF,iBAAiB,SAAS,KACrCixI,EAAO3hK,KAAKsrB,QAAQ3N,MAAM,GAC1B,KAKR,SAASmhR,GAAe1uK,EAAiB2uK,GACvC,OAAO3uK,EACJgqI,YAAY,CAACskC,IAAsBK,EAAc,YAAc,YAC/D/kC,YAAY0kC,GACjB,UAYgBM,KACd,MAAM1zQ,EAAU60O,UAAU3+N,KAAKk+N,GA/Cd,GAgDjB,OAAO,IAAIjtJ,SAAQ,CAAC24B,EAASu2B,KAC3Br2I,EAAQoF,iBAAiB,SAAS,KAChCixI,EAAOr2I,EAAQ3N,MAAM,IAGvB2N,EAAQoF,iBAAiB,iBAAiB,KACxC,MAAM0/F,EAAK9kG,EAAQvS,OAEnB,IACEq3G,EAAGowI,kBAAkBk+B,GAAqB,CAAEO,QAASN,IACtD,CAAC,MAAOxoS,IACPwrK,EAAOxrK,GACR,KAGHm1B,EAAQoF,iBAAiB,WAAWmlJ,UAClC,MAAMzlD,EAAkB9kG,EAAQvS,OAM3Bq3G,EAAG2pI,iBAAiBznJ,SAASosL,IAMhCtzJ,EAAQhb,IAJRA,EAAGy1E,yBA9BT,MAAMv6K,EAAU60O,UAAUwC,eAAejD,IACzC,OAAO,IAAIk/B,GAAgBtzQ,GAASuzQ,WACtC,CA6BcK,GACN9zJ,QAAc4zJ,MAGf,GACD,GAEN,CAEOnpH,eAAespH,GACpB/uK,EACA73G,EACA3f,GAEA,MAAM0yB,EAAUwzQ,GAAe1uK,GAAI,GAAMrgB,IAAI,CAC3C,CAAC4uL,IAAkBpmR,EACnB3f,UAEF,OAAO,IAAIgmS,GAAgBtzQ,GAASuzQ,WACtC,CAWgB,SAAAO,GAAchvK,EAAiB73G,GAC7C,MAAM+S,EAAUwzQ,GAAe1uK,GAAI,GAAMyK,OAAOtiH,GAChD,OAAO,IAAIqmR,GAAgBtzQ,GAASuzQ,WACtC,CAKA,MAAMQ,GAqBJhvS,WAAAA,GAlBA,KAAAmtB,KAA6B,QAEpB,KAAqB6sQ,uBAAG,EAEhB,KAAS/5P,UAA8C,CAAC,EACxD,KAAUulP,WAA4C,CAAC,EAGhE,KAASsmB,UAAe,KACxB,KAAamD,cAAG,EAEhB,KAAQzlC,SAAoB,KAC5B,KAAM0lC,OAAkB,KACxB,KAA8BC,gCAAG,EACjC,KAAmBC,oBAAyB,KAMlDz/R,KAAK0/R,6BACH1/R,KAAK2/R,mCAAmC9oL,MACtC,SACA,SAIN,aAAM+oL,GACJ,OAAI5/R,KAAKowH,KAGTpwH,KAAKowH,SAAW4uK,MAFPh/R,KAAKowH,GAMhB,kBAAMyvK,CAAgBngQ,GACpB,IAAIogQ,EAAc,EAElB,OACE,IACE,MAAM1vK,QAAWpwH,KAAK4/R,UACtB,aAAalgQ,EAAG0wF,EACjB,CAAC,MAAOj6H,IACP,GAAI2pS,IAhD4B,EAiD9B,MAAM3pS,GAEJ6J,KAAKowH,KACPpwH,KAAKowH,GAAGy1E,QACR7lM,KAAKowH,QAAKr+H,EAGb,EAQG,sCAAM4tS,GACZ,OAAOlB,KAAcz+R,KAAK+/R,qBAAuB//R,KAAKggS,mBAMhD,wBAAMD,GACZ//R,KAAK65P,SAAWsjC,GAAS7U,aDtLpBmW,KAAe76R,KAAoC,MCwLxD5D,KAAK65P,SAASgkC,WAAW,cAEvBhoH,MAAOoqH,EAAiB//Q,KAEf,CACLggR,oBAFiBlgS,KAAKmgS,SAEHr7Q,SAAS5E,EAAK3H,SAKvCvY,KAAK65P,SAASgkC,WAAW,QAEvBhoH,MAAOoqH,EAAiB9jM,IACf,CAAC,gBAYN,sBAAM6jM,WAGZ,GADAhgS,KAAKy/R,0BDpOF5pH,iBACL,KAAK,OAAAxhJ,gBAAS,IAATA,eAAS,EAATA,UAAW+rQ,eACd,OAAO,KAET,IAEE,aAD2B/rQ,UAAU+rQ,cAAcxM,OAC/B96L,MACrB,CAAC,MAAMpqE,GACN,OAAO,IACR,CACH,CC0NqC2xQ,IAC5BrgS,KAAKy/R,oBACR,OAEFz/R,KAAKu/R,OAAS,IAAIrB,GAAOl+R,KAAKy/R,qBAE9B,MAAM1kH,QAAgB/6K,KAAKu/R,OAAOjB,MAAK,OAErC,CAAC,EAAC,KAGCvjH,IAIO,QAAVrsJ,EAAAqsJ,EAAQ,UAAE,IAAArsJ,OAAA,EAAAA,EAAE0qK,aACF,QAAVtlK,EAAAinJ,EAAQ,UAAE,IAAAjnJ,OAAA,EAAAA,EAAEl7B,MAAMksB,SAAgC,iBAElD9kB,KAAKw/R,gCAAiC,GAalC,yBAAMc,CAAoB/nR,GAChC,GACGvY,KAAKu/R,QACLv/R,KAAKy/R,sCDzPV,OAA+B,QAAxB/wQ,EAAS,OAAT2F,gBAAS,IAATA,eAAS,EAATA,UAAW+rQ,qBAAa,IAAA1xQ,OAAA,EAAAA,EAAEkrJ,aAAc,IACjD,CCyPM2mH,KAAkCvgS,KAAKy/R,oBAIzC,UACQz/R,KAAKu/R,OAAOjB,MAEhB,cAAE/lR,OAEFvY,KAAKw/R,+BACF,IACA,GAEN,CAAC,MAAM9wQ,MAKV,kBAAMg6P,GACJ,IACE,IAAKvoB,UACH,OAAO,EAET,MAAM/vI,QAAW4uK,KAGjB,aAFMG,GAAW/uK,EAAIyrK,GAAuB,WACtCuD,GAAchvK,EAAIyrK,KACjB,CACR,CAAC,MAAAntQ,IAAO,CACT,OAAO,EAGD,uBAAM8xQ,CAAkBvmS,GAC9B+F,KAAKs/R,gBACL,UACQrlS,GACP,SACC+F,KAAKs/R,eACN,EAGH,UAAM3W,CAAKpwQ,EAAa3f,GACtB,OAAOoH,KAAKwgS,mBAAkB3qH,gBACtB71K,KAAK6/R,cAAczvK,GAAoB+uK,GAAW/uK,EAAI73G,EAAK3f,KACjEoH,KAAK61Q,WAAWt9P,GAAO3f,EAChBoH,KAAKsgS,oBAAoB/nR,MAIpC,UAAMqwQ,CAAiCrwQ,GACrC,MAAMqF,QAAa5d,KAAK6/R,cAAczvK,GAxM1CylD,eACEzlD,EACA73G,GAEA,MAAM+S,EAAUwzQ,GAAe1uK,GAAI,GAAOl4G,IAAIK,GACxC2H,QAAa,IAAI0+Q,GAAgCtzQ,GAASuzQ,YAChE,YAAgB9sS,IAATmuB,EAAqB,KAAOA,EAAKtnB,KAC1C,CAkMM6nS,CAAUrwK,EAAI73G,KAGhB,OADAvY,KAAK61Q,WAAWt9P,GAAOqF,EAChBA,EAGT,aAAMirQ,CAAQtwQ,GACZ,OAAOvY,KAAKwgS,mBAAkB3qH,gBACtB71K,KAAK6/R,cAAczvK,GAAoBgvK,GAAchvK,EAAI73G,YACxDvY,KAAK61Q,WAAWt9P,GAChBvY,KAAKsgS,oBAAoB/nR,MAI5B,WAAM4nR,GAEZ,MAAMpnR,QAAe/Y,KAAK6/R,cAAczvK,IACtC,MAAMswK,EAAgB5B,GAAe1uK,GAAI,GAAOi2D,SAChD,OAAO,IAAIu4G,GAA6B8B,GAAe7B,WAAW,IAGpE,IAAK9lR,EACH,MAAO,GAIT,GAA2B,IAAvB/Y,KAAKs/R,cACP,MAAO,GAGT,MAAMt5P,EAAO,GACP26P,EAAe,IAAI/0K,IACzB,GAAsB,IAAlB7yG,EAAO5oB,OACT,IAAK,MAAQywS,UAAWroR,EAAG,MAAE3f,KAAWmgB,EACtC4nR,EAAa95R,IAAI0R,GACbuT,KAAKC,UAAU/rB,KAAK61Q,WAAWt9P,MAAUuT,KAAKC,UAAUnzB,KAC1DoH,KAAKw8R,gBAAgBjkR,EAAK3f,GAC1BotC,EAAKxwC,KAAK+iB,IAKhB,IAAK,MAAMsoR,KAAY7vS,OAAOg1C,KAAKhmC,KAAK61Q,YAClC71Q,KAAK61Q,WAAWgrB,KAAcF,EAAa13J,IAAI43J,KAEjD7gS,KAAKw8R,gBAAgBqE,EAAU,MAC/B76P,EAAKxwC,KAAKqrS,IAGd,OAAO76P,EAGDw2P,eAAAA,CACNjkR,EACA4+B,GAEAn3C,KAAK61Q,WAAWt9P,GAAO4+B,EACvB,MAAM7mB,EAAYtwB,KAAKswB,UAAU/X,GACjC,GAAI+X,EACF,IAAK,MAAME,KAAYz6B,MAAM/F,KAAKsgC,GAChCE,EAAS2mB,GAKP0lP,YAAAA,GACN78R,KAAK08R,cAEL18R,KAAKm8R,UAAYv4P,aACfiyI,SAAY71K,KAAKmgS,SAhQa,KAqQ1BzD,WAAAA,GACF18R,KAAKm8R,YACPp4P,cAAc/jC,KAAKm8R,WACnBn8R,KAAKm8R,UAAY,MAIrBrT,YAAAA,CAAavwQ,EAAaiY,GACmB,IAAvCx/B,OAAOg1C,KAAKhmC,KAAKswB,WAAWngC,QAC9B6P,KAAK68R,eAEF78R,KAAKswB,UAAU/X,KAClBvY,KAAKswB,UAAU/X,GAAO,IAAIqzG,IAErB5rH,KAAK4oR,KAAKrwQ,IAEjBvY,KAAKswB,UAAU/X,GAAK1R,IAAI2pB,GAG1Bw4P,eAAAA,CAAgBzwQ,EAAaiY,GACvBxwB,KAAKswB,UAAU/X,KACjBvY,KAAKswB,UAAU/X,GAAKsiH,OAAOrqG,GAEM,IAA7BxwB,KAAKswB,UAAU/X,GAAKzc,aACfkE,KAAKswB,UAAU/X,IAIiB,IAAvCvnB,OAAOg1C,KAAKhmC,KAAKswB,WAAWngC,QAC9B6P,KAAK08R,eA9RF2C,GAAI7hR,KAAY,QAySlB,MAAMsjR,GAAyCzB,GCvatB9L,GAAgC,OAClC,IAAIpV,GAAM,IAAO,KCGxC,MAAM4iB,GAA0B,YCkKhClrH,eAAemrH,GACpB39F,EACAr4K,EACAkpQ,SAEA,MAAM+M,QAAuB/M,EAASR,SAEtC,IAYE,IAAIwN,EAUJ,GArBA3jB,GAC4B,kBAAnB0jB,EACP59F,EAAI,kBAGNk6E,GACE2W,EAAS12Q,OAASujR,GAClB19F,EAAI,kBAOJ69F,EADqB,kBAAZl2Q,EACU,CACjBy1P,YAAaz1P,GAGIA,EAGjB,YAAak2Q,EAAkB,CACjC,MAAMC,EAAUD,EAAiBC,QAEjC,GAAI,gBAAiBD,EAAkB,CACrC3jB,GACmB,WAAjB4jB,EAAQ3jR,KACR6lL,EAAI,kBAGN,MAAMr3K,QCtKE,SACdq3K,EACA/3K,GAEA,OAAO2zP,GAIL57E,EAGA,0CAAA07E,GAAmB17E,EAAM/3K,GAE7B,CDyJ+B81Q,CAAoB/9F,EAAM,CAC/CqrD,QAASyyC,EAAQnI,WACjBqI,oBAAqB,CACnB5gB,YAAaygB,EAAiBzgB,YAC9BwgB,oBAGJ,OAAOj1Q,EAASs1Q,iBAAiBjJ,WAClC,CAAM,CACL9a,GACmB,WAAjB4jB,EAAQ3jR,KACR6lL,EAAI,kBAGN,MAAMk+F,GAC4B,QAAhC7yQ,EAAAwyQ,EAAiBM,uBAAe,IAAA9yQ,OAAA,EAAAA,EAAEy0O,MAClC+9B,EAAiBO,eACnBlkB,GAAQgkB,EAAiBl+F,EAAM,6BAC/B,MAAMr3K,QEhME,SACdq3K,EACA/3K,GAEA,OAAO2zP,GAIL57E,EAGA,sCAAA07E,GAAmB17E,EAAM/3K,GAE7B,CFmL+Bo2Q,CAAoBr+F,EAAM,CAC/Cs+F,qBAAsBR,EAAQnI,WAC9BuI,kBACAK,gBAAiB,CACfX,oBAGJ,OAAOj1Q,EAAS61Q,kBAAkBxJ,WACnC,CACF,CAAM,CACL,MAAM,YAAEA,S9B9NPxiH,eACLwtB,EACA/3K,GAEA,OAAO2zP,GAIL57E,EAGA,2CAAA07E,GAAmB17E,EAAM/3K,GAE7B,C8BiNoCw2Q,CAA0Bz+F,EAAM,CAC5Do9E,YAAaygB,EAAiBzgB,YAC9BwgB,mBAEF,OAAO5I,CACR,CACF,SACCnE,EAAS6N,QACV,CACH,OGxNaC,GAcX3xS,WAAAA,CAAYgzM,GAPH,KAAA6gF,WAAa8d,GAAkBjJ,YAQtC/4R,KAAKqjM,KAAO0vF,GAAU1vF,GAkCxB4+F,iBAAAA,CACEC,EACAC,GAEA,OAAOnB,GACLhhS,KAAKqjM,KACL6+F,EACAptC,GAAmBqtC,IA+BvB,iBAAOnJ,CACLpB,EACAC,GAEA,OAAOH,GAAoBC,kBACzBC,EACAC,GAQJ,2BAAOuC,CACLC,GAEA,MAAMrB,EAAaqB,EACnB,OAAO2H,GAAkB1H,2BAA2BtB,GAmCtD,0BAAOuB,CAAoB58Q,GACzB,OAAOqkR,GAAkB1H,2BACtB38Q,EAAM60O,YAAc,CAAC,GAIlB,iCAAO8nC,CAA0B8H,GAEf,IADxB1hB,eAAgB8Z,GACQ4H,EACxB,IAAK5H,EACH,OAAO,KAET,MAAM,YAAE/Z,EAAW,eAAEsX,GACnByC,EACF,OAAI/Z,GAAesX,EACVL,GAAoBI,mBACzBrX,EACAsX,GAGG,MC1LK,SAAAsK,GACdh/F,EACAi/F,GAEA,OAAIA,EACKha,GAAaga,IAGtB/kB,GAAQl6E,EAAKgrF,uBAAwBhrF,EAAM,kBAEpCA,EAAKgrF,uBACd,CDiBkB2T,GAAAjJ,YAAwC,QAExCiJ,GAAAO,qBAAmD,QEXrE,MAAMC,WAAsB9M,GAC1BrlS,WAAAA,CAAqBm7B,GACnBtR,MAAM,SAAD,UADc,KAAMsR,OAANA,EAIrBoqQ,mBAAAA,CAAoBvyF,GAClB,OAAOwzF,GAAcxzF,EAAMrjM,KAAKyiS,oBAGlC3M,cAAAA,CACEzyF,EACAqrD,GAEA,OAAOmoC,GAAcxzF,EAAMrjM,KAAKyiS,iBAAiB/zC,IAGnDsnC,4BAAAA,CAA6B3yF,GAC3B,OAAOwzF,GAAcxzF,EAAMrjM,KAAKyiS,oBAG1BA,gBAAAA,CAAiB/zC,GACvB,MAAMpjO,EAAgC,CACpCisQ,WAAYv3R,KAAKwrB,OAAO+rQ,WACxBmL,UAAW1iS,KAAKwrB,OAAOk3Q,UACvBlL,SAAUx3R,KAAKwrB,OAAOgsQ,SACtBxY,SAAUh/Q,KAAKwrB,OAAOwzP,SACtB+X,aAAc/2R,KAAKwrB,OAAOurQ,aAC1BL,mBAAmB,EACnBiM,qBAAqB,GAOvB,OAJIj0C,IACFpjO,EAAQojO,QAAUA,GAGbpjO,GAIL,SAAUs3Q,GACdp3Q,GAEA,OAAOowQ,GACLpwQ,EAAO63K,KACP,IAAIm/F,GAAch3Q,GAClBA,EAAOkwQ,gBAEX,CAEM,SAAUmH,GACdr3Q,GAEA,MAAM,KAAE63K,EAAI,KAAE61C,GAAS1tN,EAEvB,OADA+xP,GAAQrkC,EAAM71C,EAAM,kBACbs4F,GACLziD,EACA,IAAIspD,GAAch3Q,GAClBA,EAAOkwQ,gBAEX,CAEO7lH,eAAeitH,GACpBt3Q,GAEA,MAAM,KAAE63K,EAAI,KAAE61C,GAAS1tN,EAEvB,OADA+xP,GAAQrkC,EAAM71C,EAAM,kBACbo4F,GAAUviD,EAAM,IAAIspD,GAAch3Q,GAASA,EAAOkwQ,gBAC3D,OCpEsBqH,GASpB1yS,WAAAA,CACqBgzM,EACnB/2K,EACmB0lQ,EACT94C,GACgC,IAAvBwiD,EAAA5pS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAJA,KAAIuxM,KAAJA,EAEA,KAAQ2uF,SAARA,EACT,KAAI94C,KAAJA,EACS,KAAewiD,gBAAfA,EAXb,KAAcsH,eAA0B,KACxC,KAAYC,aAAwB,KAY1CjjS,KAAKssB,OAASv2B,MAAMC,QAAQs2B,GAAUA,EAAS,CAACA,GAKlDunQ,OAAAA,GACE,OAAO,IAAIphL,SACTojE,MAAOzqC,EAASu2B,KACd3hK,KAAKgjS,eAAiB,CAAE53J,UAASu2B,UAEjC,IACE3hK,KAAKijS,mBAAqBjjS,KAAKgyR,SAAS9C,YAAYlvR,KAAKqjM,YACnDrjM,KAAKkjS,cACXljS,KAAKijS,aAAaE,iBAAiBnjS,KACpC,CAAC,MAAO7J,IACP6J,KAAK2hK,OAAOxrK,GACb,KAKP,iBAAMitS,CAAYvhQ,GAChB,MAAM,YAAEwhQ,EAAW,UAAEX,EAAS,SAAElL,EAAQ,SAAExY,EAAQ,MAAErhQ,EAAK,KAAEH,GAASqkB,EACpE,GAAIlkB,EAEF,YADA3d,KAAK2hK,OAAOhkJ,GAId,MAAM6N,EAAwB,CAC5B63K,KAAMrjM,KAAKqjM,KACXk0F,WAAY8L,EACZX,UAAWA,EACX1jB,SAAUA,QAAYjtR,EACtBylS,SAAUA,QAAYzlS,EACtBmnP,KAAMl5O,KAAKk5O,KACXwiD,gBAAiB17R,KAAK07R,iBAGxB,IACE17R,KAAKorI,cAAcprI,KAAKsjS,WAAW9lR,EAAhBxd,CAAsBwrB,GAC1C,CAAC,MAAOr1B,IACP6J,KAAK2hK,OAAOxrK,GACb,EAGH4rC,OAAAA,CAAQpkB,GACN3d,KAAK2hK,OAAOhkJ,GAGN2lR,UAAAA,CAAW9lR,GACjB,OAAQA,GACN,IAAqC,iBACrC,IAAK,oBACH,OAAOolR,GACT,IAAkC,eAClC,IAAK,kBACH,OAAOE,GACT,IAAoC,iBACpC,IAAK,oBACH,OAAOD,GACT,QACE/lB,GAAM98Q,KAAKqjM,KAAM,mBAIbj4D,OAAAA,CAAQ6rJ,GAChBtZ,GAAY39Q,KAAKgjS,eAAgB,iCACjChjS,KAAKgjS,eAAe53J,QAAQ6rJ,GAC5Bj3R,KAAKujS,uBAGG5hI,MAAAA,CAAOhkJ,GACfggQ,GAAY39Q,KAAKgjS,eAAgB,iCACjChjS,KAAKgjS,eAAerhI,OAAOhkJ,GAC3B3d,KAAKujS,uBAGCA,oBAAAA,GACFvjS,KAAKijS,cACPjjS,KAAKijS,aAAaO,mBAAmBxjS,MAGvCA,KAAKgjS,eAAiB,KACtBhjS,KAAKyjS,WCzFF,MAAMC,GAA6B,IAAIvlB,GAAM,IAAM,KA2J1D,MAAMwlB,WAAuBZ,GAO3B1yS,WAAAA,CACEgzM,EACA/2K,EACiBksL,EACjBw5E,EACA94C,GAEAh/N,MAAMmpL,EAAM/2K,EAAQ0lQ,EAAU94C,GAJb,KAAQ1gC,SAARA,EANX,KAAUorF,WAAqB,KAC/B,KAAMC,OAAkB,KAU1BF,GAAeG,oBACjBH,GAAeG,mBAAmBpnH,SAGpCinH,GAAeG,mBAAqB9jS,KAGtC,oBAAM+jS,GACJ,MAAMhrR,QAAe/Y,KAAK6zR,UAE1B,OADAtW,GAAQxkQ,EAAQ/Y,KAAKqjM,KAAM,kBACpBtqL,EAGT,iBAAMmqR,GACJvlB,GACyB,IAAvB39Q,KAAKssB,OAAOn8B,OACZ,0CAEF,MAAMutS,EAAUM,KAChBh+R,KAAK4jS,iBAAmB5jS,KAAKgyR,SAASgS,WACpChkS,KAAKqjM,KACLrjM,KAAKw4M,SACLx4M,KAAKssB,OAAO,GACZoxQ,GAEF19R,KAAK4jS,WAAWK,gBAAkBvG,EASlC19R,KAAKgyR,SAASkS,kBAAkBlkS,KAAKqjM,MAAMh4D,OAAMl1I,IAC/C6J,KAAK2hK,OAAOxrK,EAAE,IAGhB6J,KAAKgyR,SAASmS,6BAA6BnkS,KAAKqjM,MAAM+gG,IAC/CA,GACHpkS,KAAK2hK,OACHs7G,GAAaj9Q,KAAKqjM,KAA4C,2BAEjE,IAIHrjM,KAAKqkS,uBAGP,WAAI3G,SACF,OAAwB,QAAjBhvQ,EAAA1uB,KAAK4jS,kBAAY,IAAAl1Q,OAAA,EAAAA,EAAAu1Q,kBAAmB,KAG7CvnH,MAAAA,GACE18K,KAAK2hK,OAAOs7G,GAAaj9Q,KAAKqjM,KAA0C,4BAG1EogG,OAAAA,GACMzjS,KAAK4jS,YACP5jS,KAAK4jS,WAAW/9F,QAGd7lM,KAAK6jS,QACPvjS,OAAO0iH,aAAahjH,KAAK6jS,QAG3B7jS,KAAK4jS,WAAa,KAClB5jS,KAAK6jS,OAAS,KACdF,GAAeG,mBAAqB,KAG9BO,oBAAAA,GACN,MAAMpI,EAAOA,cACkB,QAAzBnoQ,EAAiB,QAAjBpF,EAAA1uB,KAAK4jS,kBAAY,IAAAl1Q,OAAA,EAAAA,EAAApuB,cAAQ,IAAAwzB,OAAA,EAAAA,EAAAuM,QAM3BrgC,KAAK6jS,OAASvjS,OAAO2qC,YAAW,KAC9BjrC,KAAK6jS,OAAS,KACd7jS,KAAK2hK,OACHs7G,GAAaj9Q,KAAKqjM,KAAyC,wBAC5D,GACA,KAILrjM,KAAK6jS,OAASvjS,OAAO2qC,WAAWgxP,EAAMyH,GAA2BxrR,MAAM,EAGzE+jR,KAxGa0H,GAAkBG,mBAA0B,KC1L7D,MAAMQ,GAAuB,kBAIvBC,GAGF,IAAInmR,IAEF,MAAOomR,WAAuBzB,GAGlC1yS,WAAAA,CACEgzM,EACA2uF,GAGA93Q,MACEmpL,EACA,CAAC,oBAAD,iDAMA2uF,OACAjgS,EAXaD,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,IALjB,KAAO4rS,QAAG,KAyBV,aAAM7J,GACJ,IAAI4Q,EAAeF,GAAmBrsR,IAAIlY,KAAKqjM,KAAKpnL,QACpD,IAAKwoR,EAAc,CACjB,IACE,MAAMC,QA+CP7uH,eACLm8G,EACA3uF,GAEA,MAAM9qL,EAAMosR,GAAmBthG,GACzB+lF,EAAcwb,GAAoB5S,GACxC,UAAY5I,EAAYV,eACtB,OAAO,EAET,MAAMgc,EAAuD,eAA3Btb,EAAYR,KAAKrwQ,GAEnD,aADM6wQ,EAAYP,QAAQtwQ,GACnBmsR,CACT,CA3DyCG,CAC/B7kS,KAAKgyR,SACLhyR,KAAKqjM,MAEDtqL,EAAS2rR,QAA2BxqR,MAAM25Q,UAAY,KAC5D4Q,EAAeA,IAAMhyL,QAAQ24B,QAAQryH,EACtC,CAAC,MAAO5iB,IACPsuS,EAAeA,IAAMhyL,QAAQkvD,OAAOxrK,GACrC,CAEDouS,GAAmBlmR,IAAIre,KAAKqjM,KAAKpnL,OAAQwoR,EAC1C,CAQD,OAJKzkS,KAAK07R,iBACR6I,GAAmBlmR,IAAIre,KAAKqjM,KAAKpnL,QAAQ,IAAMw2F,QAAQ24B,QAAQ,QAG1Dq5J,IAGT,iBAAMrB,CAAYvhQ,GAChB,GAAmB,sBAAfA,EAAMrkB,KACR,OAAOtD,MAAMkpR,YAAYvhQ,GACpB,GAAmB,YAAfA,EAAMrkB,MAMjB,GAAIqkB,EAAM67P,QAAS,CACjB,MAAMxkD,QAAal5O,KAAKqjM,KAAK6uF,mBAAmBrwP,EAAM67P,SACtD,GAAIxkD,EAEF,OADAl5O,KAAKk5O,KAAOA,EACLh/N,MAAMkpR,YAAYvhQ,GAEzB7hC,KAAKorI,QAAQ,KAEhB,OAZCprI,KAAKorI,QAAQ,MAejB,iBAAM83J,GAAW,CAEjBO,OAAAA,GAAO,EA4BO,SAAAvT,GACd7sF,EACAtqL,GAEAwrR,GAAmBlmR,IAAIglL,EAAKpnL,OAAQlD,EACtC,CAEA,SAAS6rR,GACP5S,GAEA,OAAO1J,GAAa0J,EAASC,qBAC/B,CAEA,SAAS0S,GAAmBthG,GAC1B,OAAO6lF,GACLob,GACAjhG,EAAKvzK,OAAO2+M,OACZprC,EAAK9xM,KAET,CCqJOskL,eAAeivH,GACpBzhG,EACA0hG,GACuB,IAAvBrJ,EAAe5pS,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAEf,GAAIwsQ,GAAqBj7D,EAAK26D,KAC5B,OAAOvrJ,QAAQkvD,OACby7G,GAAgD/5E,IAGpD,MAAMsxF,EAAe5B,GAAU1vF,GACzB2uF,EAAWqQ,GAAqB1N,EAAcoQ,GAC9C1yQ,EAAS,IAAImyQ,GAAe7P,EAAc3C,EAAU0J,GACpD3iR,QAAesZ,EAAOwhQ,UAQ5B,OANI96Q,IAAW2iR,WACN3iR,EAAOmgO,KAAKwuC,uBACbiN,EAAapO,sBAAsBxtQ,EAAOmgO,YAC1Cy7C,EAAarE,iBAAiB,KAAMyU,IAGrChsR,CACT,OC3SaisR,GAOX30S,WAAAA,CAA6BgzM,GAAA,KAAIA,KAAJA,EANZ,KAAA4hG,gBAA+B,IAAIr5K,IACnC,KAAAs5K,UAAoC,IAAIt5K,IAC/C,KAAmBu5K,oBAAqB,KACxC,KAA2BC,6BAAG,EAChC,KAAAC,uBAAyB/qO,KAAKC,MAItC4oO,gBAAAA,CAAiBmC,GACftlS,KAAKklS,UAAUr+R,IAAIy+R,GAGjBtlS,KAAKmlS,qBACLnlS,KAAKulS,mBAAmBvlS,KAAKmlS,oBAAqBG,KAElDtlS,KAAKwlS,eAAexlS,KAAKmlS,oBAAqBG,GAC9CtlS,KAAKylS,iBAAiBzlS,KAAKmlS,qBAC3BnlS,KAAKmlS,oBAAsB,MAI/B3B,kBAAAA,CAAmB8B,GACjBtlS,KAAKklS,UAAUrqK,OAAOyqK,GAGxBI,OAAAA,CAAQ7jQ,GAEN,GAAI7hC,KAAK2lS,oBAAoB9jQ,GAC3B,OAAO,EAGT,IAAI+jQ,GAAU,EASd,OARA5lS,KAAKklS,UAAUznR,SAAQooR,IACjB7lS,KAAKulS,mBAAmB1jQ,EAAOgkQ,KACjCD,GAAU,EACV5lS,KAAKwlS,eAAe3jQ,EAAOgkQ,GAC3B7lS,KAAKylS,iBAAiB5jQ,GACvB,IAGC7hC,KAAKolS,8BAkEb,SAAyBvjQ,GACvB,OAAQA,EAAMrkB,MACZ,IAAwC,oBACxC,IAAqC,kBACrC,IAAK,oBACH,OAAO,EACT,IAAK,UACH,OAAOsoR,GAAoBjkQ,GAC7B,QACE,OAAO,EAEb,CA7E6CkkQ,CAAgBlkQ,KAMzD7hC,KAAKolS,6BAA8B,EAG9BQ,IACH5lS,KAAKmlS,oBAAsBtjQ,EAC3B+jQ,GAAU,IARHA,EAcHJ,cAAAA,CAAe3jQ,EAAkBgkQ,SACvC,GAAIhkQ,EAAMlkB,QAAUmoR,GAAoBjkQ,GAAQ,CAC9C,MAAMtjC,GACa,QAAhBmwB,EAAAmT,EAAMlkB,MAAMpf,YAAI,IAAAmwB,OAAA,EAAAA,EAAE96B,MAAM,SAAS,KAAoB,iBAExDiyS,EAAS9jQ,QAAQk7O,GAAaj9Q,KAAKqjM,KAAM9kM,GAC1C,MACCsnS,EAASzC,YAAYvhQ,GAIjB0jQ,kBAAAA,CACN1jQ,EACAgkQ,GAEA,MAAMG,EACiB,OAArBH,EAASnI,WACN77P,EAAM67P,SAAW77P,EAAM67P,UAAYmI,EAASnI,QACjD,OAAOmI,EAASv5Q,OAAOxH,SAAS+c,EAAMrkB,OAASwoR,EAGzCL,mBAAAA,CAAoB9jQ,GAQ1B,OANEy4B,KAAKC,MAAQv6D,KAAKqlS,wBAnFoB,KAsFtCrlS,KAAKilS,gBAAgBzlH,QAGhBx/K,KAAKilS,gBAAgBh8J,IAAIg9J,GAASpkQ,IAGnC4jQ,gBAAAA,CAAiB5jQ,GACvB7hC,KAAKilS,gBAAgBp+R,IAAIo/R,GAASpkQ,IAClC7hC,KAAKqlS,uBAAyB/qO,KAAKC,OAIvC,SAAS0rO,GAAS9vS,GAChB,MAAO,CAACA,EAAEqnB,KAAMrnB,EAAEunS,QAASvnS,EAAEusS,UAAWvsS,EAAE6oR,UAAU1yP,QAAO32B,GAAKA,IAAG2I,KAAK,IAC1E,CAEA,SAASwnS,GAAmBI,GAA2B,IAA1B,KAAE1oR,EAAI,MAAEG,GAAkBuoR,EACrD,MACgC,YAA9B1oR,GACgB,wBAAX,OAALG,QAAK,IAALA,OAAK,EAALA,EAAOpf,KAEX,CCjHA,MAAM4nS,GAAmB,uCACnBC,GAAa,UAEZvwH,eAAewwH,GAAgBhjG,GAEpC,GAAIA,EAAKvzK,OAAO0uP,SACd,OAGF,MAAM,kBAAE8nB,SCHHzwH,eACLwtB,GAGA,OAAO47E,GACL57E,EAGA,qBANFvxM,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAmC,CAAC,EAQtC,CDPsCy0S,CAAkBljG,GAEtD,IAAK,MAAMlC,KAAUmlG,EACnB,IACE,GAAIE,GAAYrlG,GACd,MAEH,CAAC,MAAMzyK,KAMVouP,GAAMz5E,EAAM,sBACd,CAEA,SAASmjG,GAAYC,GACnB,MAAMplH,EAAau8F,MACb,SAAEv4F,EAAQ,SAAE0b,GAAa,IAAI9jK,IAAIokJ,GACvC,GAAIolH,EAASp7H,WAAW,uBAAwB,CAC9C,MAAMq7H,EAAQ,IAAIzpQ,IAAIwpQ,GAEtB,MAAuB,KAAnBC,EAAM3lG,UAAgC,KAAbA,EAGZ,sBAAb1b,GACAohH,EAASllS,QAAQ,sBAAuB,MACtC8/K,EAAW9/K,QAAQ,sBAAuB,IAI5B,sBAAb8jL,GAAoCqhH,EAAM3lG,WAAaA,CAC/D,CAED,IAAKqlG,GAAWpuQ,KAAKqtJ,GACnB,OAAO,EAGT,GAAI8gH,GAAiBnuQ,KAAKyuQ,GAGxB,OAAO1lG,IAAa0lG,EAItB,MAAME,EAAuBF,EAASllS,QAAQ,MAAO,OAOrD,OAJW,IAAI0nJ,OACb,UAAY09I,EAAuB,IAAMA,EAAuB,KAChE,KAEQ3uQ,KAAK+oK,EACjB,CE7DA,MAAM6lG,GAAkB,IAAIzoB,GAAM,IAAO,KAMzC,SAAS0oB,KAIP,MAAMC,EAAS3pH,KAAU4pH,OAEzB,GAAI,OAAAD,QAAM,IAANA,OAAM,EAANA,EAAQl1L,EAEV,IAAK,MAAM3hG,KAAQjf,OAAOg1C,KAAK8gQ,EAAOl1L,GAQpC,GANAk1L,EAAOl1L,EAAE3hG,GAAMrP,EAAIkmS,EAAOl1L,EAAE3hG,GAAMrP,GAAK,GAEvCkmS,EAAOl1L,EAAE3hG,GAAMyhG,EAAIo1L,EAAOl1L,EAAE3hG,GAAMyhG,GAAK,GAEvCo1L,EAAOl1L,EAAE3hG,GAAMrP,EAAI,IAAIkmS,EAAOl1L,EAAE3hG,GAAMyhG,GAElCo1L,EAAOE,GACT,IAAK,IAAIzxS,EAAI,EAAGA,EAAIuxS,EAAOE,GAAG72S,OAAQoF,IAEpCuxS,EAAOE,GAAGzxS,GAAK,IAKzB,CAEA,SAAS0xS,GAAS5jG,GAChB,OAAO,IAAI5wF,SAA8B,CAAC24B,EAASu2B,eAEjD,SAASulI,IAGPL,KACAM,KAAKlmQ,KAAK,eAAgB,CACxBvV,SAAUA,KACR0/G,EAAQ+7J,KAAKC,QAAQzkQ,aAAa,EAEpCgiK,UAAWA,KAOTkiG,KACAllI,EAAOs7G,GAAa55E,EAAM,0BAAsC,EAElEpiC,QAAS2lI,GAAgB1uR,QAI7B,GAA6B,QAAzB4b,EAAgB,QAAhBpF,EAAAyuJ,KAAUgqH,YAAM,IAAAz4Q,OAAA,EAAAA,EAAA04Q,eAAS,IAAAtzQ,OAAA,EAAAA,EAAAuzQ,OAE3Bj8J,EAAQ+7J,KAAKC,QAAQzkQ,kBAChB,MAAoB,QAAd5O,EAAAopJ,KAAUgqH,YAAI,IAAApzQ,OAAA,EAAAA,EAAEkN,MAGtB,CAML,MAAMqmQ,EAAS/T,GAAyB,aAYxC,OAVAp2G,KAAUmqH,GAAU,KAEZH,KAAKlmQ,KACTimQ,IAGAvlI,EAAOs7G,GAAa55E,EAAM,0BAC3B,EAGIiwF,GACI,GrDvDRL,GAAmBI,qBqDuDsBiU,KACzCj8J,OAAMl1I,GAAKwrK,EAAOxrK,IACtB,CAtBC+wS,GAsBD,KACA77J,OAAM1tH,IAGP,MADA4pR,GAAmB,KACb5pR,CAAK,GAEf,CAEA,IAAI4pR,GAAyD,KCvF7D,MAAMC,GAAe,IAAIrpB,GAAM,IAAM,MAC/BspB,GAAc,iBACdC,GAAuB,uBAEvBC,GAAoB,CACxBj7Q,MAAO,CACLnoB,SAAU,WACV+sB,IAAK,SACLryB,MAAO,MACPsyB,OAAQ,OAEV,cAAe,OACf6xI,SAAU,MAKNwkI,GAAmB,IAAIxpR,IAAI,CAC/B,CAAC,iCAAwB,KACzB,CAAC,iDAAkD,KACnD,CAAC,8CAA+C,OAGlD,SAASypR,GAAaxkG,GACpB,MAAMvzK,EAASuzK,EAAKvzK,OACpBytP,GAAQztP,EAAO+/P,WAAYxsF,EAAM,+BACjC,MAAMrmK,EAAMlN,EAAO0uP,SACfD,GAAazuP,EAAQ43Q,IACrB,WAAWrkG,EAAKvzK,OAAO+/P,cAAc4X,KAEnCj8Q,EAAiC,CACrCijN,OAAQ3+M,EAAO2+M,OACfswB,QAAS17D,EAAK9xM,KACdoE,EAAGqpQ,IAEC8oC,EAAMF,GAAiB1vR,IAAImrL,EAAKvzK,OAAOwvP,SACzCwoB,IACFt8Q,EAAOs8Q,IAAMA,GAEf,MAAMzc,EAAahoF,EAAKovF,iBAIxB,OAHIpH,EAAWl7R,SACbq7B,EAAOu8Q,GAAK1c,EAAW/sR,KAAK,MAEvB,GAAG0+B,KAAOs2N,GAAY9nO,GAAQzxB,MAAM,IAC7C,CAEO87K,eAAemyH,GACpB3kG,GAEA,MAAM3+G,QDuCF,SAAoB2+G,GAExB,OADAkkG,GAAmBA,IAAoBN,GAAS5jG,GACzCkkG,EACT,CC1CwBU,CAAqB5kG,GACrC8jG,EAAOhqH,KAAUgqH,KAEvB,OADA5pB,GAAQ4pB,EAAM9jG,EAAM,kBACb3+G,EAAQljD,KACb,CACE0yO,MAAOrhP,SAAS0b,KAChBvR,IAAK6qQ,GAAaxkG,GAClB6kG,sBAAuBf,EAAKC,QAAQe,4BACpCz+P,WAAYi+P,GACZS,WAAW,IAEZC,GACC,IAAI51L,SAAQojE,MAAOzqC,EAASu2B,WACpB0mI,EAAOC,QAAQ,CAEnBC,gBAAgB,IAGlB,MAAMC,EAAevrB,GACnB55E,EAAI,0BAKAolG,EAAoBtrH,KAAUlyI,YAAW,KAC7C02H,EAAO6mI,EAAa,GACnBhB,GAAatvR,OAEhB,SAASwwR,IACPvrH,KAAUn6D,aAAaylL,GACvBr9J,EAAQi9J,GAIVA,EAAOM,KAAKD,GAAsB7xL,KAAK6xL,GAAsB,KAC3D/mI,EAAO6mI,EAAa,GACpB,KAGV,CCzFA,MAAMI,GAAqB,CACzB1mQ,SAAU,MACV2mQ,UAAW,MACXC,UAAW,MACXC,QAAS,YASEC,GAGX34S,WAAAA,CAAqBiQ,GAAA,KAAMA,OAANA,EAFrB,KAAe2jS,gBAAkB,KAIjCp+F,KAAAA,GACE,GAAI7lM,KAAKM,OACP,IACEN,KAAKM,OAAOulM,OACb,CAAC,MAAO1vM,IAAI,GAKH,SAAA8yS,GACd5lG,EACArmK,EACAzrC,GAEuB,IADvB0N,EAAKnN,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAxBe,IAyBpBy/B,EAAMz/B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAxBe,IA0BrB,MAAMw/B,EAAMp/B,KAAK+O,KAAKX,OAAO8yF,OAAO81M,YAAc33Q,GAAU,EAAG,GAAGr3B,WAC5DgH,EAAOhP,KAAK+O,KAAKX,OAAO8yF,OAAO+1M,WAAalqS,GAAS,EAAG,GAAG/E,WACjE,IAAIoe,EAAS,GAEb,MAAM0S,EACDh6B,OAAAG,OAAAH,OAAAG,OAAA,GAAAy3S,IAAkB,CACrB3pS,MAAOA,EAAM/E,WACbq3B,OAAQA,EAAOr3B,WACfo3B,MACApwB,SAKI+rH,EAAKmnC,KAAQ1zI,cAEfnvB,IACF+mB,EAASsyQ,GAAa39J,GA1CL,SA0C0B17H,GAGzCi5R,GAAWv9J,KAEbjwF,EAAMA,GA7CgB,mBAgDtBhS,EAAQo+Q,WAAa,OAGvB,MAAMC,EAAgBr4S,OAAOg4J,QAAQh+H,GAASt1B,QAC5C,CAAC4zS,EAAKC,KAAA,IAAGhxR,EAAK3f,GAAM2wS,EAAA,MAAK,GAAGD,IAAQ/wR,KAAO3f,IAAQ,GACnD,IAGF,oB7D4CA,OAAOkyR,GAD0Bh5R,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsiK,UAC8B,QAA3C1lI,EAACpuB,OAAO+zB,iBAAmC,IAAA3F,OAAA,EAAAA,EAAAwf,WACpE,C6D7CMs7P,CAAiBv8K,IAAkB,UAAX30G,EAE1B,OAgBJ,SAA4B0kB,EAAa1kB,GACvC,MAAMssI,EAAK/xH,SAAS9B,cAAc,KAClC6zH,EAAGl9F,KAAO1qB,EACV4nH,EAAGtsI,OAASA,EACZ,MAAMk6F,EAAQ3/E,SAAS4wL,YAAY,cACnCjxG,EAAMi3L,eACJ,SACA,GACA,EACAnpS,OACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,MAEFskJ,EAAGhpB,cAAcppB,EACnB,CAxCIk3L,CAAmB1sQ,GAAO,GAAI1kB,GACvB,IAAI0wR,GAAU,MAKvB,MAAMW,EAASrpS,OAAOkhC,KAAKxE,GAAO,GAAI1kB,EAAQ+wR,GAC9C9rB,GAAQosB,EAAQtmG,EAAM,iBAGtB,IACEsmG,EAAOriK,OACR,CAAC,MAAOnxI,IAAI,CAEb,OAAO,IAAI6yS,GAAUW,EACvB,CC9EA,MAAMC,GAAc,kBAOdC,GAAuB,wBAOvBC,GAAiClyL,mBAAmB,OAgBnDi+D,eAAek0H,GACpB1mG,EACAmV,EACAwxF,EACAp+C,EACA8xC,EACAuM,GAEA1sB,GAAQl6E,EAAKvzK,OAAO+/P,WAAYxsF,EAAM,+BACtCk6E,GAAQl6E,EAAKvzK,OAAO2+M,OAAQprC,EAAM,mBAElC,MAAM73K,EAAuB,CAC3BijN,OAAQprC,EAAKvzK,OAAO2+M,OACpBswB,QAAS17D,EAAK9xM,KACdy4S,WACAp+C,cACAj2P,EAAGqpQ,GACH0+B,WAGF,GAAIllF,aAAoB8gF,GAAuB,CAC7C9gF,EAASihF,mBAAmBp2F,EAAK+7E,cACjC5zP,EAAO04P,WAAa1rE,EAAS0rE,YAAc,G5KrDzC,SAAkBtmQ,GACtB,IAAK,MAAMrF,KAAOqF,EAChB,GAAI5sB,OAAOE,UAAU2G,eAAeC,KAAK8lB,EAAKrF,GAC5C,OAAO,EAGX,OAAO,CACT,C4K+CS6tP,CAAQ5tD,EAASohF,yBACpBpuQ,EAAOguQ,iBAAmB1tQ,KAAKC,UAAUysL,EAASohF,wBAIpD,IAAK,MAAOrhR,EAAK3f,KAAU5H,OAAOg4J,QAAQihJ,GAAoB,CAAC,GAC7Dz+Q,EAAOjT,GAAO3f,CAEjB,CAED,GAAI4/M,aAAoBqhF,GAAmB,CACzC,MAAMC,EAASthF,EAASyhF,YAAY3tQ,QAAO0tQ,GAAmB,KAAVA,IAChDF,EAAO3pS,OAAS,IAClBq7B,EAAOsuQ,OAASA,EAAOx7R,KAAK,KAE/B,CAEG+kM,EAAK27E,WACPxzP,EAAO0+Q,IAAM7mG,EAAK27E,UAMpB,MAAMmrB,EAAa3+Q,EACnB,IAAK,MAAMjT,KAAOvnB,OAAOg1C,KAAKmkQ,QACJp4S,IAApBo4S,EAAW5xR,WACN4xR,EAAW5xR,GAKtB,MAAMo6Q,QAAsBtvF,EAAKuvF,oBAC3BwX,EAAwBzX,EAC1B,IAAImX,MAAkClyL,mBAAmB+6K,KACzD,GAGJ,MAAO,GAKT,SAAuB0X,GAAyB,IAAxB,OAAEv6Q,GAAsBu6Q,EAC9C,IAAKv6Q,EAAO0uP,SACV,MAAO,WAAW1uP,EAAO+/P,cAAc+Z,KAGzC,OAAOrrB,GAAazuP,EAAQ+5Q,GAC9B,CAXYS,CAAejnG,MAASiwD,GAAY62C,GAAYpwS,MACxD,KACEqwS,GACN,CCjFA,MAAMG,GAA0B,oBAuJzB,MAAMC,GA5Ib,MAAAn6S,WAAAA,GACmB,KAAao6S,cAAqC,CAAC,EACnD,KAAOrD,QAAwC,CAAC,EAChD,KAAwBsD,yBAAkC,CAAC,EAEnE,KAAoBzY,qBAAGiL,GAyHhC,KAAmB7M,oBAAGyU,GAEtB,KAAuB5U,wBAAGA,GAvH1B,gBAAM8T,CACJ3gG,EACAmV,EACAwxF,EACAtM,SAEA/f,GACmC,QAAjCjvP,EAAA1uB,KAAKyqS,cAAcpnG,EAAKpnL,eAAS,IAAAyS,OAAA,EAAAA,EAAAy1M,QACjC,gDAUF,OAAO8kE,GAAM5lG,QAPK0mG,GAChB1mG,EACAmV,EACAwxF,EACApsB,KACA8f,GAEsBM,MAG1B,mBAAM2M,CACJtnG,EACAmV,EACAwxF,EACAtM,SAEM19R,KAAKkkS,kBAAkB7gG,GAS7B,OtBvDE,SAA6BrmK,GACjCmgJ,KAAUj7I,SAASwlB,KAAO1qB,CAC5B,CsBoDI4tQ,OAPkBb,GAChB1mG,EACAmV,EACAwxF,EACApsB,KACA8f,IAGK,IAAIjrL,SAAQ,SAGrBy8K,WAAAA,CAAY7rF,GACV,MAAM9qL,EAAM8qL,EAAKpnL,OACjB,GAAIjc,KAAKyqS,cAAclyR,GAAM,CAC3B,MAAM,QAAE4rN,EAAO,QAAEziE,GAAY1hK,KAAKyqS,cAAclyR,GAChD,OAAI4rN,EACK1xH,QAAQ24B,QAAQ+4F,IAEvBw5C,GAAYj8G,EAAS,4CACdA,EAEV,CAED,MAAMA,EAAU1hK,KAAK6qS,kBAAkBxnG,GASvC,OARArjM,KAAKyqS,cAAclyR,GAAO,CAAEmpJ,WAI5BA,EAAQr2B,OAAM,YACLrrI,KAAKyqS,cAAclyR,EAAI,IAGzBmpJ,EAGD,uBAAMmpI,CAAkBxnG,GAC9B,MAAMglG,QAAeL,GAAY3kG,GAC3B8gC,EAAU,IAAI6gE,GAAiB3hG,GAerC,OAdAglG,EAAOyC,SACL,aACCC,IACCxtB,GAAmB,OAAXwtB,QAAW,IAAXA,OAAW,EAAXA,EAAaC,UAAW3nG,EAAM,sBAItC,MAAO,CAAE9hK,OADO4iM,EAAQuhE,QAAQqF,EAAYC,WACD,MAAmB,QAAE,GAElE7D,KAAKC,QAAQe,6BAGfnoS,KAAKyqS,cAAcpnG,EAAKpnL,QAAU,CAAEkoN,WACpCnkO,KAAKonS,QAAQ/jG,EAAKpnL,QAAUosR,EACrBlkE,EAGTggE,4BAAAA,CACE9gG,EACA9+J,GAEevkC,KAAKonS,QAAQ/jG,EAAKpnL,QAC1BwlB,KACL8oQ,GACA,CAAE/sR,KAAM+sR,KACRxxR,UACE,MAAMqrR,EAA4B,QAAd11Q,EAAM,OAAN3V,QAAM,IAANA,OAAM,EAANA,EAAS,UAAK,IAAA2V,OAAA,EAAAA,EAAA67Q,SACdx4S,IAAhBqyS,GACF7/P,IAAK6/P,GAGPtnB,GAAMz5E,EAAM,iBAA6B,GAE3C8jG,KAAKC,QAAQe,6BAIjBjE,iBAAAA,CAAkB7gG,GAChB,MAAM9qL,EAAM8qL,EAAKpnL,OAKjB,OAJKjc,KAAK0qS,yBAAyBnyR,KACjCvY,KAAK0qS,yBAAyBnyR,GAAO8tR,GAAgBhjG,IAGhDrjM,KAAK0qS,yBAAyBnyR,GAGvC,0BAAI02Q,GAEF,OAAOhE,MAAsBN,MAAeG,gDCvJnCmgB,GAIX56S,WAAAA,CAA6BgzM,GAAA,KAAIA,KAAJA,EAHZ,KAAA6nG,kBACf,IAAI9sR,IAINumP,MAAAA,SAEE,OADA3kQ,KAAKmrS,wBACyB,QAAvBz8Q,EAAA1uB,KAAKqjM,KAAKg/E,mBAAa,IAAA3zP,OAAA,EAAAA,EAAAy0O,MAAO,KAGvC,cAAMxU,CACJ23B,GAIA,GAFAtmR,KAAKmrS,6BACCnrS,KAAKqjM,KAAK+qF,wBACXpuR,KAAKqjM,KAAKg/E,YACb,OAAO,KAIT,MAAO,CAAEvyE,kBADiB9vM,KAAKqjM,KAAKg/E,YAAYY,WAAWqD,IAI7D8kB,oBAAAA,CAAqB56Q,GAEnB,GADAxwB,KAAKmrS,uBACDnrS,KAAKkrS,kBAAkBjiK,IAAIz4G,GAC7B,OAGF,MAAM4zK,EAAcpkM,KAAKqjM,KAAKquF,kBAAiBx4C,IAC7C1oN,GAC+B,OAA5B0oN,QAAA,IAAAA,OAAA,EAAAA,EAA8B8pC,gBAAgBlzE,cAAe,KAC/D,IAEH9vM,KAAKkrS,kBAAkB7sR,IAAImS,EAAU4zK,GACrCpkM,KAAKqrS,yBAGPC,uBAAAA,CAAwB96Q,GACtBxwB,KAAKmrS,uBACL,MAAM/mG,EAAcpkM,KAAKkrS,kBAAkBhzR,IAAIsY,GAC1C4zK,IAILpkM,KAAKkrS,kBAAkBrwK,OAAOrqG,GAC9B4zK,IACApkM,KAAKqrS,0BAGCF,oBAAAA,GACN5tB,GACEv9Q,KAAKqjM,KAAK+qF,uBAAsB,yCAK5Bid,sBAAAA,GACFrrS,KAAKkrS,kBAAkBpvS,KAAO,EAChCkE,KAAKqjM,KAAKgkF,yBAEVrnR,KAAKqjM,KAAKikF,yBCtDhB,MACMikB,GACJl5C,GAAuB,sBAFQ,IAIjC,IAAIm5C,GAA+C,KCkB7C,IAAuBrgB,I5DzBvB,SAAiCz9Q,GACrCulR,GAAqBvlR,CACvB,C2DqFA+9R,CAAuB,CACrBvY,OAAOl2P,GAEE,IAAIy1E,SAAQ,CAAC24B,EAASu2B,KAC3B,MAAM/c,EAAK/xH,SAAS9B,cAAc,UAClC6zH,EAAGt2G,aAAa,MAAOtR,GACvB4nH,EAAGlyC,OAAS04B,EACZwZ,EAAGwc,QAAUjrK,IACX,MAAMwnB,EAAQs/P,GAAa,kBAC3Bt/P,EAAM60O,WAAar8P,EACnBwrK,EAAOhkJ,EAAM,EAEfinI,EAAGpnI,KAAO,kBACVonI,EAAGoc,QAAU,QAjBnB,mBACE,OAAiD,QAA1CltI,EAAwC,QAAxCpF,EAAAmE,SAAS2b,qBAAqB,eAAU,IAAA9f,OAAA,EAAAA,EAAA,UAAE,IAAAoF,EAAAA,EAAIjB,QACvD,CAgBM64Q,GAAyBtmQ,YAAYw/G,EAAG,IAI5CyuI,WAAY,oCACZF,kBAAmB,0CACnBC,0BACE,2DCnFyBjI,GDsFhB,UCrFXltB,GACE,IAAIhzG,GAAU,QAEZ,CAAC3xJ,EAASqyS,KAAmD,IAA/C3gR,QAASgrH,GAAkC21J,EACvD,MAAM3tC,EAAM1kQ,EAAUg+P,YAAY,OAAOlB,eACnCm3B,EACJj0R,EAAUg+P,YAAyB,aAC/Bk2B,EACJl0R,EAAUg+P,YAAkC,uBACxC,OAAE7oB,EAAM,WAAEohD,GAAe7xB,EAAIhzO,QAEnCuyP,GACE9uC,IAAWA,EAAO3pN,SAAS,KAE3B,mBAAEi6O,QAASf,EAAIzsQ,OAGjB,MAAMu+B,EAAyB,CAC7B2+M,SACAohD,aACA1E,kBACA7L,QAA+B,iCAC/BiG,aAA0C,6BAC1ClF,UAAmC,QACnCwO,iBAAkB3D,GAAkBC,KAGhCmJ,EAAe,IAAIhH,GACvBtvB,EACAuvB,EACAC,EACA19P,GAIF,OCzBQ,SACduzK,EACArtD,GAEA,MAAMozI,GAAc,OAAApzI,QAAA,IAAAA,OAAA,EAAAA,EAAMozI,cAAe,GACnCzlN,GACJ5tE,MAAMC,QAAQozR,GAAeA,EAAc,CAACA,IAC5CrrQ,IAAyBuqQ,KACvB,OAAAtyI,QAAI,IAAJA,OAAI,EAAJA,EAAMmnI,WACR95E,EAAKiuF,gBAAgBt7I,EAAKmnI,UAM5B95E,EAAKyrF,2BAA2BnrN,EAAW,OAAAqyE,QAAA,IAAAA,OAAA,EAAAA,EAAM+4I,sBACnD,CDOQ6c,CAAwBtX,EAAct+I,GAE/Bs+I,CAAY,GAGtB,UAKEj/B,qBAAgD,YAKhDG,4BACC,CAACl8P,EAAWuyS,EAAqBC,KACFxyS,EAAUg+P,YAAY,iBAG9BpxJ,YAAY,KAKzC+3J,GACE,IAAIhzG,GAEF,iBAAA3xJ,GAIS,CAAC+pM,GAAQ,IAAI4nG,GAAY5nG,GAAzB,CAHM0vF,GACXz5R,EAAUg+P,YAAY,QAAqBlB,kBAKhD,WAACf,qBAAqB,aAGzBiK,GAAgB/tQ,GAAM65B,GA5FxB,SACE+/P,GAEA,OAAQA,GACN,IAAK,OACH,MAAO,OACT,IAAK,cACH,MAAO,KACT,IAAK,SACH,MAAO,YACT,IAAK,UACH,MAAO,UACT,IAAK,eACH,MAAO,gBACT,QACE,OAEN,CA2EiC4gB,CAAsB5gB,KAErD7rB,GAAgB/tQ,GAAM65B,GAAS,WEjIjC,MAUM4yO,GAAMiB,GAVW,CACrBxwB,OAAQ3sM,0CACR+tP,WAAY,8BACZnqB,UAAW5jO,cACXkqQ,cAAe,0BACfC,kBAAmBnqQ,eACnBg/N,MAAOh/N,4CACPoqQ,cAAepqQ,iBAKJsuF,G/GkPG,SACdj6H,EACAyK,GAEA,MAEMrL,EACuB,iBAApBY,EACHA,EACAyK,GAAsB,YACtBwM,EAAK+wP,GALkB,iBAApBhoQ,EAA+BA,EAAkBkpQ,KAK7B,kBAAkBjJ,aAAa,CAC1DP,WAAYtgQ,IAEd,IAAK6X,EAAG+oQ,aAAc,CACpB,MAAMxxQ,ExEzIRutP,KAEA,MAAMpxD,EAAOmxD,GAAuBC,GACpC,IAAKpxD,EACH,OAEF,MAAMqrG,EAAiBrrG,EAAKx/K,YAAY,KACxC,GAAI6qR,GAAkB,GAAKA,EAAiB,IAAMrrG,EAAK3wM,OACrD,MAAM,IAAIwB,MAAM,gBAAgBmvM,yCAGlC,MAAME,EAAO9+K,SAAS4+K,EAAK7lG,UAAUkxM,EAAiB,GAAI,IAC1D,MAAgB,MAAZrrG,EAAK,GAEA,CAACA,EAAK7lG,UAAU,EAAGkxM,EAAiB,GAAInrG,GAExC,CAACF,EAAK7lG,UAAU,EAAGkxM,GAAiBnrG,EAC5C,EwEwHkBorG,CAAkC,aAC/CznS,GAoBF,SACJA,EACAxO,EACAyK,GAGI,IAFJuN,EAEIrc,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,YAGJ,MAAMsb,GADNzI,EAAYkjQ,GAAKljQ,EAAWoxQ,KACDW,eACrBzvQ,EAAiB,GAAG9Q,KAAQyK,IAelC,GH7R0B,6BGgRtBwM,EAAS0zL,MAAyB1zL,EAAS0zL,OAAS75L,GACtD68P,GACE,oGAKJn/P,EAAU0xQ,aACLrlR,OAAAG,OAAAH,OAAAG,OAAA,GAAAic,GACH,CAAA0zL,KAAM75L,EACNm+P,KAAK,KAGHj3P,EAAQk+R,cAAe,CACzB,IAAIl2S,EACAyK,EACJ,GAAqC,iBAA1BuN,EAAQk+R,cACjBl2S,EAAQgY,EAAQk+R,cAChBzrS,EAAOsiQ,GAAKQ,cACP,CAGLvtQ,EgHzOU,SACdynK,EACA8nG,GAEA,GAAI9nG,EAAMulG,IACR,MAAM,IAAIxxQ,MACR,gHAIJ,MAKM26S,EAAU5mC,GAAa,eACvBwc,EAAMtkH,EAAMskH,KAAO,EACnBp7Q,EAAM82J,EAAM92J,KAAO82J,EAAM0xF,QAC/B,IAAKxoP,EACH,MAAM,IAAInV,MAAM,wDAGlB,MAAMgwC,EAAO3wC,OAAAG,OAAA,CAEXo7S,IAAK,kCAAkCD,IACvCE,IAAKF,EACLpqB,MACAD,IAAKC,EAAM,KACX0E,UAAW1E,EACXp7Q,MACAwoP,QAASxoP,EACT+/Q,SAAU,CACR4lB,iBAAkB,SAClBC,WAAY,CAAC,IAIZ9uI,GAKL,MAAO,CACL0zF,GAA8BxlO,KAAKC,UAjCtB,CACb4gR,IAAK,OACLnvR,KAAM,SAgCN8zO,GAA8BxlO,KAAKC,UAAU4V,IAH7B,IAKhBrjC,KAAK,IACT,ChH0LcsuS,CACNz+R,EAAQk+R,cACQ,QAAhB92S,EAAAoP,EAAUqxQ,YAAA,IAAMzgR,OAAA,EAAAA,EAAAy1B,QAAQ06O,WAE1B,MAAMt4P,EAAMe,EAAQk+R,cAAcvlS,KAAOqH,EAAQk+R,cAAc/8C,QAC/D,IAAKliP,EACH,MAAM,IAAI82P,GACR/lH,GACA,wDAGJv9I,EAAO,IAAIsiQ,GAAK91P,GAGlBzI,EAAU8wQ,iBAAmB,IAAIjR,GAC/B,IAAIL,GAAWhuQ,EAAOyK,KApEtBisS,CAAyBz/R,KAAOzI,GAGpC,OAAOyI,E+GrQS0/R,CAAa9uC,IAClB36D,GH0DG,WAAmC,IAA3B26D,EAAAlsQ,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAmButQ,KACzC,MAAM7mD,EAAW2lD,GAAaH,EAAK,QAEnC,GAAIxlD,EAASw9C,gBACX,OAAOx9C,EAAS49C,eAGlB,MAAM/yD,EE9BQ,SAAe26D,EAAkBhoH,GAC/C,MAAMwiE,EAAW2lD,GAAaH,EAAK,QAEnC,GAAIxlD,EAASw9C,gBAAiB,CAC5B,MAAM3yD,EAAOmV,EAAS49C,eAEtB,GAAInD,GADmBz6C,EAASjhD,aACE,OAAJvhB,QAAI,IAAJA,EAAAA,EAAQ,CAAC,GACrC,OAAOqtD,EAEPy5E,GAAMz5E,EAAM,sBAEf,CAID,OAFamV,EAAStyG,WAAW,CAAEl7E,QAASgrH,GAG9C,CFce+2J,CAAe/uC,EAAK,CAC/B+wB,sBAAuByb,GACvBphB,YAAa,CACX0X,GACA9D,GACAE,MAIE8P,EAAoB36C,GAAuB,oBAEjD,GACE26C,GAC2B,mBAApBC,iBACPA,gBACA,CAEA,MAAMC,EAAmB,IAAIjwQ,IAAI+vQ,EAAmB9qQ,SAASC,QAC7D,GAAID,SAASC,SAAW+qQ,EAAiB/qQ,OAAQ,CAC/C,MAAMgrQ,GA1DenwQ,EA0DgBkwQ,EAAiBhzS,WA1DjB27K,UACzC,MAAMu3H,EAAgBl0D,SAAeA,EAAKutC,mBACpC4mB,EACJD,KACC,IAAI9yO,MAAOotJ,UAAYptJ,KAAKnuC,MAAMihR,EAAcpmB,eAAiB,IACpE,GAAIqmB,GAAcA,EAAa9B,GAC7B,OAGF,MAAM78C,EAAuB,OAAb0+C,QAAA,IAAAA,OAAA,EAAAA,EAAexvI,MAC3B4tI,KAAsB98C,IAG1B88C,GAAoB98C,QACdx6J,MAAMl3D,EAAK,CACfzR,OAAQmjO,EAAU,OAAS,SAC3Bx2E,QAASw2E,EACL,CACE,cAAiB,UAAUA,KAE7B,CAAC,IACL,aK0GFrrD,EACA33K,EACA+/P,GAEO32B,GAAmBzxD,GAAMouF,uBAAuB/lQ,EAAU+/P,EACnE,CLzEMgG,CAAuBpuF,EAAM8pG,GAAY,IACvCA,EAAW9pG,EAAKg/E,eK4ClB,SACJh/E,EACAkxD,EACA52O,EACA+f,GAEOo3N,GAAmBzxD,GAAMquF,iBAC9Bn9B,EACA52O,EACA+f,EAEJ,CLrDMg0P,CAAiBruF,GAAM61C,GAAQi0D,EAAWj0D,IAC3C,CACF,CAhEwBl8M,MAkEzB,MAAMswQ,EAAmBr7C,GAAuB,QAKhD,OAJIq7C,GACF5Y,GAAoBrxF,EAAM,UAAUiqG,KAG/BjqG,CACT,CGlGoBkqG,CAAQvvC,KGuBrBnoF,eAAiCwtB,SACtC,GAAIi7D,GAAqBj7D,EAAK26D,KAC5B,OAAOvrJ,QAAQkvD,OACby7G,GAAgD/5E,IAGpD,MAAMsxF,EAAe5B,GAAU1vF,GAE/B,SADMsxF,EAAavG,uBACS,QAAxB1/P,EAAAimQ,EAAatS,mBAAW,IAAA3zP,OAAA,EAAAA,EAAE21P,YAE5B,OAAO,IAAI6W,GAAmB,CAC5BhiD,KAAMy7C,EAAatS,YACnB6B,WAAY,KACZiX,cAAoC,WAGxC,MAAMnvQ,QAAiBivQ,GAAOtG,EAAc,CAC1C+B,mBAAmB,IAEf2D,QAAuBa,GAAmBhT,qBAC9CyM,EAEA,SAAA3oQ,GACA,GAGF,aADM2oQ,EAAarF,mBAAmB+K,EAAenhD,MAC9CmhD,CACT,EH/CAmT,CAAkBnqG,IACfxsF,MAAK,SAGLw0B,OAAO1tH,IACNkG,QAAQlG,MAAMA,EAAM,IIiCxB,MClDM8vR,GAAkB,IAAIp4F,GAC1Bo6B,QACA19O,EACAinP,IAGI00D,GAAwB73H,UAC5B,IACE,MAAM,KAAE31J,SAAeutR,GAAgB34F,gBAAgBC,GACvD,OAAO70L,CACT,CAAE,MACA,MACF,GCiDF,MACA,GAAe,sBAA0B,wDC/BnCytR,GAAkB,GAAGtgE,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAWogB,WACjEkgD,GxQ0CC,WACL,MAAMA,EAAqB51D,aAAa16D,QAAQ+5D,IAChD,OAAOu2D,EAAqB9hR,KAAKK,MAAMyhR,GAAsB,IAC/D,CwQ7C2BC,GA+H3B,SA7HA,WACE,MAAM9vH,EAAWoJ,MACVulD,EAAcohE,IAAmB3/Q,EAAAA,EAAAA,WACpB,OAAlBy/Q,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBrvS,OAAQ,KAEvB0rP,EAAWC,IAAgB/7N,EAAAA,EAAAA,WAAS,GACrCkqN,EAAaD,KACb21D,EAXY,IAWarhE,EAAav8O,OACtC69S,EAAqC,OAAlBJ,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBtqG,SAEvC2qG,EAAWD,EACb,iBAAiBA,oBACjB,+DAmDJ,OACErxF,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CACGi6J,GAAc,CACbprK,MACE,mEACFG,YACE,uEAEJwpF,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,kDAAiDyQ,UAC9DmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,SAAQyQ,SAAA,EACrBw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,yBAAwByQ,UACrCw4E,EAAAA,GAAAA,KAAC2jF,GAAgB,CAACrC,aAAc,OAGlC3rC,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,yCAAwCyQ,SAAA,EACrDw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,6BAA4ByQ,SAAC,0BAC1CmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,mCAAkCyQ,SAAA,CAAC,kCAChBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK67S,GAAUj9L,IAAI,QAAS,IAAI,4CAGvE+1D,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,0BAAyByQ,UACtCw4E,EAAAA,GAAAA,KAACmnI,KAAiB,CAChBh+S,OAzFI,EA0FJo5J,YAAY,GACZI,WAAY,CACVrwJ,UAAW,sBACXiyG,UAAW,YACX6+C,kBAAmB,uBAErBxxJ,MAAO8zO,EACP9iF,SAAWhxJ,GAAUk1S,EAAgBl1S,QAGzCouK,EAAAA,GAAAA,KAAConI,GAAgB,CACfnyB,UAAU,YACVniN,KAAMm0O,EACNvhR,MAAO,CAAEsiE,OAAQ,aAEnB2tH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uBAAsByQ,SAAA,EACnCw4E,EAAAA,GAAAA,KAAColF,GAAmB,CAClBj+J,UAAW,UACXr0B,KAAMmwL,GAAYjjF,EAAAA,GAAAA,KAAC6hF,GAAa,IAAM,WACtC7kI,QA3FW6xD,UACvB,IAAKwiE,EAAY,OACjB6R,GAAa,GACb,MAAMn1C,QA8GVl/B,eAAqC62D,GACnC,MAAM/8N,E5GdF,SACJhL,EACAxO,GAKA,IAAIgY,EAA0C,WAAAkgS,EAAAv8S,UAAA3B,OAJ3CyQ,EAAA,IAAA7K,MAAAs4S,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA1tS,EAAA0tS,EAAA,GAAAx8S,UAAAw8S,GAMCn4S,aAA2B+jR,IAC7B/rQ,EAAiB3Y,KAAKW,GAGxBgY,EAAmBA,EAAiBsM,OAAO7Z,GAg+B7C,SACE+D,GAEA,MAAMxO,EAAuBwO,EAAgB2nB,QAC3C3nB,GAAUA,aAAkBi2Q,KAC5BzqR,OACIyQ,EAAmB+D,EAAgB2nB,QACvC3nB,GAAUA,aAAkBy1Q,KAC5BjqR,OAEF,GACEgG,EAAuB,GACtBA,EAAuB,GAAKyK,EAAmB,EAEhD,MAAM,IAAIsjQ,GACR/lH,GACA,gRAhBN,CA99B+BhwI,GAE7B,IAAK,MAAMhY,KAAcgY,EACvBxJ,EAAQxO,EAAWokR,OAAO51Q,GAE5B,OAAOA,E4GNGq1Q,CrH6PN,SACJr1Q,EAIAxO,GACG,QAAA4iQ,EAAAjnQ,UAAA3B,OAAAyQ,EAAA,IAAA7K,MAAAgjQ,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAp4P,EAAAo4P,EAAA,GAAAlnQ,UAAAknQ,GAKH,GAHAr0P,EAASmwP,GAAmBnwP,GAE5B+iQ,GAAyB,aAAc,OAAQvxQ,GAC3CwO,aAAkBoxQ,GAAW,CAC/B,MAAM5nQ,EAAeo4P,GAAajnP,WAAWnpB,KAASyK,GAEtD,OADA+mQ,GAAuBx5P,GAChB,IAAIgpQ,GAAoBxyQ,EAAyB,KAAMwJ,GACzD,CACL,KACIxJ,aAAkBsyQ,IAClBtyQ,aAAkBwyQ,IAEpB,MAAM,IAAIjT,GACR/lH,GACA,iHAIJ,MAAMhwI,EAAexJ,EAAOuyQ,MAAM//I,MAChCovI,GAAajnP,WAAWnpB,KAASyK,IAGnC,OADA+mQ,GAAuBx5P,GAChB,IAAIgpQ,GACTxyQ,EAAOoyQ,UACU,KACjB5oQ,IqH7RFogS,CAAWn+K,GAAI48G,GAAqBC,U5G+FxB,SACdtoO,EACAxO,EACAyK,GAEA,MAAMuN,EAAKhY,EACLZ,EAAQskR,GAAsB,QAASl1Q,GAC7C,OAAOy1Q,GAA2B7oO,QAAQh8C,EAAO4Y,EAAIvN,G4GrGnDszQ,CAAM,OAAQ,KAAMxnC,G5GwWlB,SAAgB/nO,GAEpB,OADAmjQ,GAAuB,QAASnjQ,GACzBq2Q,GAAqBzpO,QAAQ,QAAS5sC,EAAA,K4GzW3CijB,CAAM,IAGR,IACE,MAAM4mR,QAAsB1yB,GAAQnsQ,GACpC,GAAI6+R,EAAc5oC,MAEhB,OH9HC,SAAe56O,GACpB1qB,OAAO24D,OAAOv8B,YAAY1R,EAAS,IACrC,CG2HMulK,CAAM,CAAE+oD,aAAc,wBAAyBlhP,QAAS,UACjD,KAGT,MAAM+mN,EAAMqvF,EAAcv0B,KAAK,GAEzBw0B,EADWtvF,EAAIj/L,OACyBwuR,SAE9C,IAAKD,IAAaA,EAAS3pR,SAAS,aAClC,OAAO,KAIT,OADmB2pR,EAAS76S,MAAM,aAAa,EAEjD,CAAE,MAAOuC,IAEP,OADA0tB,QAAQlG,MAAM,SAAUxnB,IACjB,IACT,CACF,CA1I6Bw4S,CAAsBjiE,GAC/C,IAAK33B,EAEH,YADAm1C,GAAa,GAGf,MAAM9a,QAAqBs+D,GAAsB34F,GACjD,IAAKq6B,EAEH,YADA8a,GAAa,GAGf,MAAM0kD,OF9CmB/4H,WAC3B,IACE,MAAM,KAAE31J,SAAeutR,GAAgBv4F,iBAAiB3mK,GACxD,OAAOruB,CACT,CAAE,MACA,MACF,GEwCgC2uR,CAAqB,CACjD95F,aACA+5F,WAAYz2D,EAAWa,KAAKztN,KAG9By+N,GAAa,GACbhS,KACK02D,UACCriD,GAA4B,CAAEiB,kBAAkB,IACtD3T,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CACP2tN,QAASjX,EAAWa,KAAKztN,GACzBo4G,MAAOw0G,EAAWa,KAAKr1G,MACvBkrK,kBAAmB3/D,EAAa9rC,SAChC0rG,gBAAiBj6F,EACjB/3K,IAAKg9M,QAGTj8D,EAAS4vH,IAAgB,EA4Db5iD,aAAa,YACbt6H,UAAWs9K,EACXrhR,MAAO,CAAE09F,UAAW,WAEtB48C,EAAAA,GAAAA,KAAColF,GAAmB,CAClBj+J,UAAW,UACXr0B,KAAK,sBACLkqD,QAhEK6xD,UAAa,IAADo5H,EAAAC,QACvB3iD,GAA4B,CAAEiB,kBAAkB,IACtD3T,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CACP2tN,QAAmB,OAAVjX,QAAU,IAAVA,GAAgB,QAAN42D,EAAV52D,EAAYa,YAAI,IAAA+1D,OAAN,EAAVA,EAAkBxjR,GAC3Bo4G,MAAiB,OAAVw0G,QAAU,IAAVA,GAAgB,QAAN62D,EAAV72D,EAAYa,YAAI,IAAAg2D,OAAN,EAAVA,EAAkBrrK,MACzB7mG,IAAKg9M,QAGT9B,KACAn6D,EAAS4vH,GAAgB,EAsDb5iD,aAAa,YACbr+N,MAAO,CAAE07N,WAAY,UAAWh+H,UAAW,uBAQ3D,EClIA,SAvBA,SAAuBpsG,GAAwD,IAAvD,KAAE/N,EAAI,SAAE25I,EAAQ,MAAEhxJ,EAAQ,IAA0BolB,EAC1E,MAAMmxR,EAAiBv2S,EAAMzI,OAE7B,OACE62K,EAAAA,GAAAA,KAACL,GAAS,CAACE,OAAK,EAAC9oF,UAAU,0CAAyCyQ,UAClEmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,mBAAkByQ,SAAA,EAC/BmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,4CAA2CyQ,SAAA,CACvDv+E,IAAQ+2J,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,wBAAuByQ,SAAEv+E,KAC/C+2J,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mCAAkCyQ,SAAE2gN,QAEnDnoI,EAAAA,GAAAA,KAAA,YACEpd,SAAUA,EACV7rE,UAAU,6BACVqxN,KAAM,EACN7lJ,YAAY,GACZ3wJ,MAAOA,EACPqjN,KAAM,SAKhB,EClBMozF,IAAsB9jJ,EAAAA,EAAAA,eAC1B,CAAC,GAGG+jJ,GAA2DtxR,IAE1D,IAF2D,SAChEwwE,GACDxwE,EACC,MAAOuxR,EAASC,IAAcrhR,EAAAA,EAAAA,UAA8B,MACtDv1B,GAAQ2+I,EAAAA,EAAAA,UAAQ,MAASg4J,UAASC,gBAAe,CAACD,IAExD,OACEvoI,EAAAA,GAAAA,KAACqoI,GAAoB3jJ,SAAQ,CAAC9yJ,MAAOA,EAAM41F,SACxCA,GAC4B,EAI7BihN,GAAyBA,KAC7B,MAAMC,GAAsBv4J,EAAAA,EAAAA,YAAWk4J,IACvC,QAA4Bt9S,IAAxB29S,EACF,MAAM,IAAI/9S,MACR,8EAIJ,OAAO+9S,CAAmB,ECC5B,SA5BA,SAAuB1xR,GAOG,IAPF,MACtBgd,EAAK,QACLgpF,EAAO,SACPyM,EAAQ,MACRlc,EAAK,WACLo7L,EAAU,YACVC,GACqB5xR,EACrB,MAAM6xR,EAAc,CAClBznD,WAAYptN,GAGd,OACEgsI,EAAAA,GAAAA,KAACg2C,GAAM,CACLvsF,SAAUA,EACVzM,QAASA,EACTjmC,UAAW,IAAI6xN,oBACfljR,MAAOmjR,EAAYrhN,UAEnBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJjS,UAAW,IAAI4xN,kBACft9S,IAAKkiH,EACLtD,IAAI,oBAIZ,ECfA,MACA,GAAe,sBAA0B,qECKzC,MACA,GAAe,sBAA0B,2DC1BnC6+L,GAAgB,IrdggSf,cAAiC7gG,GAQpCiK,mBAAAA,CAAoBluL,GAChB,OAAOguL,GAAqBh5M,KAAKkvM,eAAegK,oBAAoBluL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC5H,GqdzgSFsgC,QACA19O,EACAinP,ICcI+2D,GAAS,CACb,UACA,UACA,UACA,UACA,UACA,WAGIC,GAAiBA,KACrB,MAAMC,EAAc/9S,KAAKC,MAAMD,KAAKymC,SAAWo3Q,GAAO5/S,QACtD,OAAO4/S,GAAOE,EAAY,EAGtBC,GAAkB,wBA6GxB,SA3GA,SAAoBlyR,GAA2C,IAADmyR,EAAA,IAAzC,OAAE5+D,EAAM,UAAEC,GAA6BxzN,EAC1D,MAAMoyR,GAAgB7hR,EAAAA,EAAAA,QAAgC,OAC/C8hR,EAAaC,IAAkBniR,EAAAA,EAAAA,UAA0B,OACzDoiR,EAASC,IAAcriR,EAAAA,EAAAA,aACvBsiR,EAAkBC,IAAuBviR,EAAAA,EAAAA,UAAS,KAClD87N,EAAWC,IAAgB/7N,EAAAA,EAAAA,WAAS,IACrC,WAAEqhR,EAAU,QAAED,GAAYE,KAgDhC,OA9CAx/Q,EAAAA,EAAAA,YAAU,KACR,IAAKogR,EAAa,OAEGx6H,WACnBq0E,GAAa,GACb,MAAMymD,O9MlBe96H,OAAO+6H,EAAc51L,KAC9C,IAEE,aADuBsxI,GAAYx0C,iBAAiB84F,EAAQ51L,IAAQ96F,IAEtE,CAAE,MACA,MACF,G8MY8B2wR,CAAmBR,EAAY,IACzDnmD,GAAa,GACbomD,EAAe,MACVK,IACL93D,GAAiBq3D,IACjBV,EAAWmB,GACXn/D,GAAU,GAAM,EAGlBs/D,EAAc,GACb,CAACT,EAAa7+D,EAAWg+D,KAE5Bv/Q,EAAAA,EAAAA,YAAU,KACR,WACE,MAAM8gR,ODtDel7H,WACzB,IAEE,aADuBi6H,GAAc52F,uBAAuBh5L,IAE9D,CAAE,MACA,MACF,GCgD8B8wR,GAC1BR,EAAWO,EACZ,EAHD,EAGI,GACH,KAQH9gR,EAAAA,EAAAA,YAAU,KACHwgR,GAEL56H,iBACEq0E,GAAa,GACb,MAAMhR,O9M9BarjE,WACvB,IAEE,aADoBy2E,GAAY50C,WAAWm3C,IAAW3uO,IAExD,CAAE,MACA,MACF,G8MwBuB+wR,CAAiB,CAAEC,SAAUT,IAChDvmD,GAAa,GACRhR,IACLL,GAAiBq3D,IACjBV,EAAWt2D,GACX1H,GAAU,GACZ,CAEA2/D,EAAc,GACb,CAACV,EAAkBj/D,EAAWg+D,KAG/B7yF,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,uCAAuC,YAAWwzJ,EAAO/iJ,SAAA,EACtEw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,cAAayQ,UAC1Bw4E,EAAAA,GAAAA,KAACg2C,GAAM,CACLj/H,UAAU,0BACV,aAAW,UACXimC,QAASA,IAAMwtH,GAAU,GAAOhjJ,UAEhCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK++S,GAAengM,IAAI,cAGnC+1D,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,6BAA4ByQ,SAAC,4BAC1Cy7J,IACCjjF,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,uCAAsCyQ,UACnDw4E,EAAAA,GAAAA,KAAC6hF,GAAa,CAAC9qK,UAAU,kBAG7B4+H,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,mEAAkEyQ,SAAA,EAC/Ew4E,EAAAA,GAAAA,KAACg2C,GAAM,CACLj/H,UAAU,8BACVimC,QA1CiBqtL,KACnBjB,EAAc14R,SAChB04R,EAAc14R,QAAQ86F,OACxB,EAuCgChkB,UAE1Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKi/S,OAEN,OAAPf,QAAO,IAAPA,GAAgB,QAATJ,EAAPI,EAASxgE,eAAO,IAAAogE,OAAT,EAAPA,EAAkBpyR,KAAI,CAAC6yR,EAAQr7S,KAAC,IAAAg8S,EAAA,OAC/BvqI,EAAAA,GAAAA,KAAA,QACEjpF,UAAU,uBACVrxD,MAAO,CAAE8/D,gBAAiBwjN,MAAmBxhN,UAG7CmuH,EAAAA,GAAAA,MAACK,GAAM,CACLj/H,UAAU,0BACVimC,QAASA,IAAM0sL,EAAoBE,EAAOnlR,IAC1C,aAAY,iBAAiBl2B,EAAI,IAAIi5F,SAAA,EAErCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKu+S,EAAO5zQ,IAAK+gD,UAAU,aAAakzB,IAAI,YAC3C,OAAPs+L,QAAO,IAAPA,GAAe,QAARgC,EAAPhC,EAASqB,cAAM,IAAAW,OAAR,EAAPA,EAAiB9lR,MAAOmlR,EAAOnlR,KAC9Bu7I,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKm/S,GAAezzN,UAAU,yBATpC6yN,EAAOnlR,GAYP,KAETu7I,EAAAA,GAAAA,KAAA,SACExpJ,KAAK,OACLwT,IAAKo/Q,EACLryN,UAAU,SACV6rE,SAAWzzJ,GAAMm6S,EAAen6S,EAAEmiB,OAAOm5R,cAKnD,EC3GA,SA5BA,WAA0B,IAADF,EACvB,MAAOhgE,EAAQC,IAAarjN,EAAAA,EAAAA,WAAS,IAC/B,QAAEohR,GAAYE,KAEdiC,EAAqBA,KACzBlgE,GAAWv6N,IAAUA,GAAK,EAG5B,OACE0lM,EAAAA,GAAAA,MAAA,WAAS5+H,UAAU,mCAAkCyQ,SAAA,EACnDw4E,EAAAA,GAAAA,KAAC2qI,GAAc,CACb32Q,MAAM,UACNu5E,MAAOq9L,GACPhC,YAAY,+BACZ5rL,QAAS0tL,KAEX1qI,EAAAA,GAAAA,KAAC2qI,GAAc,CACb32Q,MAAM,UACNu5E,OAAc,OAAPg7L,QAAO,IAAPA,GAAe,QAARgC,EAAPhC,EAASqB,cAAM,IAAAW,OAAR,EAAPA,EAAiBv0Q,mmBACxB4yQ,YAAY,6CACZD,WAAW,iBACX3rL,QAAS0tL,KAEX1qI,EAAAA,GAAAA,KAAC6qI,GAAW,CAACtgE,OAAQA,EAAQC,UAAWA,MAG9C,ECXA,SAASsgE,GAAqB/6R,GAE5B,MADc,aACDihB,KAAKjhB,EACpB,CAiIA,SA7HA,WACE,MAAMgnK,EAAWoJ,MACV8iE,EAAWC,IAAgB/7N,EAAAA,EAAAA,WAAS,IACrC,QAAEohR,EAAO,WAAEC,GAAeC,MACzBnsG,EAAUyuG,IAAe5jR,EAAAA,EAAAA,UAAS,KAClCxQ,EAAOq0R,IAAY7jR,EAAAA,EAAAA,UAAS,IAC7B8jR,GACG,OAAP1C,QAAO,IAAPA,OAAO,EAAPA,EAASjsG,WAAYisG,EAAQjsG,WAAaA,EAuD5C,OAdArzK,EAAAA,EAAAA,YAAU,KACW4lJ,WACjBq0E,GAAa,GACb,MAAMymD,OhNlEa96H,WACvB,IAEE,aAD2By2E,GAAYl1C,wBAAwBl3L,IAEjE,CAAE,MACA,MACF,GgN4D8BgyR,GAC1BhoD,GAAa,GACRymD,IACLnB,EAAWmB,GACXoB,EAAYpB,EAAYrtG,UACxB0uG,EAAS,IAAG,EAGdG,EAAY,GACX,CAAC3C,KAGF7yF,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CACGi6J,GAAc,CACbprK,MAAO,6CACPG,YAAa,iDAEfwpF,EAAAA,GAAAA,KAACL,GAAS,CAAC5oF,UAAU,0DAAyDyQ,UAC5EmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,SAAQyQ,SAAA,EACrBw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,0BAAyByQ,UACtCw4E,EAAAA,GAAAA,KAAC2jF,GAAgB,CAACrC,aAAc,OAElC3rC,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uCAAsCyQ,SAAA,EACnDw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,6BAA4ByQ,SAAC,oBAC3Cw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,4BAA2ByQ,SAAC,iFAIzCw4E,EAAAA,GAAAA,KAACL,GAAS,CAAC5oF,UAAU,gCAA+ByQ,UAClDw4E,EAAAA,GAAAA,KAACorI,GAAa,OAEhBprI,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,OAAMyQ,UACnBw4E,EAAAA,GAAAA,KAACqrI,GAAc,CACbpiS,KAAK,WACL25I,SA5EazzJ,IACrB27S,GAAqB37S,EAAEgnI,cAAcvkI,QACvC+kB,GAASq0R,EAAS,IAEpBD,EAAY57S,EAAEgnI,cAAcvkI,MAAM,EAyEtBA,MAAO0qM,MAGV3lL,IACCqpJ,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,aAAakzG,KAAK,QAAOziG,SACnC7wE,KAGLqpJ,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,OAAMyQ,UACnBw4E,EAAAA,GAAAA,KAAConI,GAAgB,CACfnyB,UAAU,YACVniN,KAAK,gEAGTktG,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,uCAAsCyQ,UACnDw4E,EAAAA,GAAAA,KAAColF,GAAmB,CAClBj+J,UAAW,UACX68J,cAAc,aACdlxL,KACEmwL,GACEttC,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CAAE,sBACkBw4E,EAAAA,GAAAA,KAAC6hF,GAAa,CAAC/sP,KAAK,UAGxC,kBAGJkoH,QAjGd6xD,iBACE,MAAMymE,EAAe,GAAGjP,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAWglE,UACpE,IAAKR,GAAqBxuG,GAExB,YADA0uG,EArBJ,kGAoCE,GAZAA,EAAS,IACTzC,GACE11D,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CACP2tN,QAASigD,EAAQ9jR,GACjBo4G,MAAO0rK,EAAQ1rK,MACfy/D,SAAUisG,EAAQjsG,SAClBtmK,IAAKg9M,cAGLuS,GAA4B,CAAEgB,iBAAiB,IACjD0kD,EAGF,OAFAp5D,GAAiB,mBAAoB,CAAEvnN,KAAM,SAC7CysJ,EAASu+D,GAGX4N,GAAa,GACb,MAAMymD,OhN9CmB96H,WAC3B,IACE,MAAM,KAAE31J,SAAeosO,GAAYx1C,eAAe,CAAExT,aACpD,OAAOpjL,CACT,CAAE,MACA,MACF,GgNwC4BqyR,CAAqBjvG,GAC/C4mD,GAAa,GACRymD,KjRoFF,SAA8BpB,GACnCz3D,GAAcH,GAAc43D,EAC9B,CiRrFIiD,CAAqB7B,GACrB93D,GAAiB,mBAAoB,CAAEvnN,KAAM,IAC7CysJ,EAASu+D,GACX,EAoEcyO,aAAa,YACbt6H,SAAUw5H,gBAQ1B,qFCxGA,MACA,GAAe,sBAA0B,6DCsEzC,SAvGA,WAAsC,IAADuC,EACnC,MAAOnU,IAAclqN,EAAAA,EAAAA,UAAwB,QAAhBq+N,EAACpU,YAAe,IAAAoU,OAAA,EAAfA,EAAiBtT,OACxCu5D,EAAgBC,IAAqBvkR,EAAAA,EAAAA,WAAS,GAC/CwkR,GAAwBpkR,EAAAA,EAAAA,SAAO,GAwBrC,OAtBA0B,EAAAA,EAAAA,YAAU,KACHooN,GACLwB,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CACP2tN,QAASjX,EAAW5sN,GACpBo4G,MAAOw0G,EAAWx0G,MAClBy/D,SAAU+0C,EAAW/0C,SACrBtmK,IAAKg9M,OAEP,GACD,CAAC3B,KAEJpoN,EAAAA,EAAAA,YAAU,KACHwiR,IAAkBE,EAAsBj7R,SAE7C,iBACQ60O,GAA4B,CAAEqmD,iBAAiB,IACrDD,EAAsBj7R,SAAU,CACjC,EAHD,EAGI,GACH,CAAC+6R,KAGF91F,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CACGi6J,GAAc,CACbprK,MAAO,4CACPG,YACE,uEAEJm/H,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,+CAA8CyQ,SAAA,EACjEmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,oCAAmCyQ,SAAA,EAChDmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,kCAAiCyQ,SAAA,EAC9CmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,kBAAiByQ,SAAA,EAC9Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK65P,GACLj7I,IAAI,aACJlzB,UAAU,sBAEZipF,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK65P,GACLj7I,IAAI,aACJlzB,UAAU,yBAGd4+H,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,iCAAgCyQ,SAAA,EAC5Cw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,wBAAuByQ,SAAC,SAAW,KAACw4E,EAAAA,GAAAA,KAAA,SAAO,IAAI,yBAInE21C,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,sCAAqCyQ,SAAA,EAChDw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,WAAUyQ,UAAY,OAAV6pJ,QAAU,IAAVA,OAAU,EAAVA,EAAY/0C,WAAY,QAAc,8EAKpEt8B,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKwgT,GACL5hM,IAAI,yBACJlzB,UAAU,gCAId4+H,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,uCAAsCyQ,SAAA,EACzDw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,4BAA2ByQ,SAAC,2BACzCmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,aAAYyQ,SAAA,EACzBw4E,EAAAA,GAAAA,KAAColF,GAAmB,CAClBj+J,UAAW,UACXr0B,KAAK,iBACLkxL,cAAc,cACdC,gBAAgB,wBAChBjnI,QAASA,IAAM0uL,GAAkB,MAEnC1rI,EAAAA,GAAAA,KAAColF,GAAmB,CAClBtlF,GAAG,IACHxuJ,OAAO,SACP6jD,IAAI,aACJzU,KAAMsmL,GAAMjC,OAAO+mE,SACnB93Q,MAAO,UACPmzD,UAAW,UACXr0B,KAAK,WACL+wL,UAAWkoD,GACXhoD,aAAa,aACbC,cAAc,cACdC,gBAAgB,2BAItBjkF,EAAAA,GAAAA,KAACsrE,GAAQ,CACPjgP,IAAK27O,GAAMlC,MAAMyG,qBACjBl1J,MAhGS,kCAiGTk0J,OAAQkhE,EACRjhE,UAAWkhE,SAKrB,oPCvGMp2D,GAAe,GAAGjP,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAW+f,gBAmEpE,SAjEA,WACE,MAAM,IAAEhwC,GAAQk8B,KACVyQ,GAAez7N,EAAAA,EAAAA,QAA8B,MAC7CwvJ,EAAWoJ,KAYjB,OACEngB,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,iEAAgEyQ,UAC7EmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,2EAA0EyQ,SAAA,EACvFw4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,UACVw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK2gT,GAAiB/hM,IAAI,yBAEnC0rG,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,OAAMyQ,SAAA,EACnBw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,oCAAmCyQ,SAAC,uBAGlDmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,uCAAsCyQ,SAAA,CAAC,QAC9Cw4E,EAAAA,GAAAA,KAAA,KAAAx4E,SAAG,sBAAqB,6CAE9Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK4gT,GACLhiM,IAAI,8BACJlzB,UAAU,wBAEZipF,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK6gT,GAAUjiM,IAAI,YAAYlzB,UAAU,oBAEhD4+H,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,mCAAkCyQ,SAAA,EAC/CmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,kCAAiCyQ,SAAA,CAC3C,KACDw4E,EAAAA,GAAAA,KAAA,KAAAx4E,SAAG,2CAELw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,YAAY1rF,IAAK8gT,GAAUliM,IAAI,qBAIpD+1D,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,+CAA8CyQ,UAC3Dw4E,EAAAA,GAAAA,KAAColF,GAAmB,CAClB3gO,GAAG,eACH0iE,UAAW,UACXr0B,KAAK,iBACLkxL,cAAc,0BACdhnI,QA7CV,WACEgmI,EAAatyO,SAAWsrG,aAAagnI,EAAatyO,SAClDmiO,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CAAEg7M,UAAW3Q,GAAWE,cAAelvM,IAAKg9M,QAEvDnB,GAAiB,oBACjB96D,EAASu+D,GACX,EAsCU50L,KAAM21J,EAAIrgL,IACVtQ,MAAO,CACL0M,QAAS,OACTq5J,eAAgB,SAChB2gH,cAAe,YACf7hR,OAAQ,YAOtB,ECtEM8hR,GAAsB,eAAehmE,GAAOC,WAAW6c,UAE7D,SAASmpD,GAAct1R,GAGgB,IAHf,SACtBwwE,EAAQ,aACRs+J,EAAeumD,IACKr1R,EACpB,MAAOk7N,IAAQ/qN,EAAAA,EAAAA,UAASiqN,MAExB,OAAKc,GAIElyE,EAAAA,GAAAA,KAAA0/D,GAAAA,SAAA,CAAAl4I,SAAGA,KAHDw4E,EAAAA,GAAAA,KAAC4jB,GAAQ,CAAC1yI,GAAI40M,EAAcvrP,SAAO,GAI9C,CCwCA,SAlDA,WAAgC,IAADirP,EAC7B,MAAMtT,EAAsB,QAAlBsT,EAAGpU,YAAe,IAAAoU,OAAA,EAAfA,EAAiBtT,KACxB0V,EAAetW,KAiCrB,OA/BAroN,EAAAA,EAAAA,YAAU,KACHipN,GAAS0V,IAEd/U,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CACP2tN,QAASpW,EAAKztN,GACdo4G,MAAOq1G,EAAKr1G,MACZ7mG,IAAKg9M,QAITH,GAAsB,CACpBtoP,KACEq9P,IAAiB58C,GAAcnhD,OAC3Bi8E,GACAA,GACNnrM,QAAS,CACP2tN,QAASpW,EAAKztN,GACdo4G,MAAOq1G,EAAKr1G,MACZ7mG,IAAKg9M,QAITC,GAAsBf,EAAKztN,GAAI,CAC7Bl6B,KAAM,GAAG2nP,EAAKvJ,aAAauJ,EAAKqW,WAChC1rH,MAAOq1G,EAAKr1G,MACZy/D,SAAU41C,EAAK51C,WACf,GACD,CAACsrD,EAAc1V,KAGhBlyE,EAAAA,GAAAA,KAACmoF,GAA2B,CAC1BzC,UAAU,mBACVC,cAAc,4CACdC,aAAc4C,GACdzC,SAAU,CACR1vK,MAAO,+CACPG,YACE,4EAEJyvK,cAAe,KAGrB,ECpDA,IAAYsmD,GAMAC,GAgPAC,GA4SAC,IAliBZ,SAAYH,GACVA,EAAA,kBACAA,EAAA,YACAA,EAAA,WACD,CAJD,CAAYA,KAAAA,GAAc,KAM1B,SAAYC,GACVA,EAAA,kBACAA,EAAA,cACAA,EAAA,WACD,CAJD,CAAYA,KAAAA,GAAa,KAgPzB,SAAYC,GACVA,EAAA,4BACAA,EAAA,4BACAA,EAAA,qBACD,CAJD,CAAYA,KAAAA,GAA0B,KA4StC,SAAYC,GACVA,EAAA,YACAA,EAAA,kBACAA,EAAA,YACAA,EAAA,eACD,CALD,CAAYA,KAAAA,GAAQ,sCCriBpB,SAASC,GAAQxlS,GACf,IAAK3d,OAAOojT,cAAczlS,IAAMA,EAAI,EAAG,MAAM,IAAIxc,MAAM,kCAAoCwc,EAC7F,CAQA,SAAS0lS,GAAOlkT,GACd,IANF,SAAiBkU,GACf,OAAOA,aAAajU,YAAe2vB,YAAYC,OAAO3b,IAA6B,eAAvBA,EAAExT,YAAYkB,IAC5E,CAIOuiT,CAAQnkT,GAAI,MAAM,IAAIgC,MAAM,uBAAuB,QAAAoqB,EAAAjqB,UAAA3B,OADZ8hD,EAAiB,IAAAl8C,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAjBg2B,EAAiBh2B,EAAA,GAAAnqB,UAAAmqB,GAE7D,GAAIg2B,EAAQ9hD,OAAS,IAAM8hD,EAAQntB,SAASn1B,EAAEQ,QAC5C,MAAM,IAAIwB,MAAM,iCAAmCsgD,EAAU,gBAAkBtiD,EAAEQ,OACrF,CAmBA,SAAS4jT,GAAQ/qK,GAAmC,IAApBgrK,IAAaliT,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,KAAAA,UAAA,GAC3C,GAAIk3I,EAAS7qD,UAAW,MAAM,IAAIxsF,MAAM,oCACxC,GAAIqiT,GAAiBhrK,EAAS60B,SAAU,MAAM,IAAIlsK,MAAM,wCAC1D,CAGA,SAASsiT,GAAQjxS,EAAUgmI,GACzB6qK,GAAO7wS,GACP,MAAMjC,EAAMioI,EAASkrK,UACrB,GAAIlxS,EAAI7S,OAAS4Q,EACf,MAAM,IAAIpP,MAAM,yDAA2DoP,EAE/E,CC5CO,MAAMgyF,GACW,kBAAf0tE,YAA2B,WAAYA,WAAaA,WAAW1tE,YAAShhG,ECyB3E,SAAUoiT,GAAW32S,GACzB,OAAO,IAAImqN,SAASnqN,EAAIvN,OAAQuN,EAAItN,WAAYsN,EAAIR,WACtD,CAGM,SAAUo3S,GAAK17S,EAAchC,GACjC,OAAQgC,GAAS,GAAKhC,EAAWgC,IAAShC,CAC5C,CAOO,MAAMkzB,GAAgC,KACiB,KAA5D,IAAIh6B,WAAW,IAAIykT,YAAY,CAAC,YAAapkT,QAAQ,GADV,GAGvC,SAAUqkT,GAAS57S,GACvB,OACIA,GAAQ,GAAM,WACdA,GAAQ,EAAK,SACbA,IAAS,EAAK,MACdA,IAAS,GAAM,GAErB,CAOM,SAAU67S,GAAW/2S,GACzB,IAAK,IAAIjI,EAAI,EAAGA,EAAIiI,EAAIrN,OAAQoF,IAC9BiI,EAAIjI,GAAK++S,GAAS92S,EAAIjI,GAE1B,CA+FM,SAAUi/S,GAAQt0R,GAGtB,MAFoB,kBAATA,IAAmBA,EAb1B,SAAsBtjB,GAC1B,GAAmB,kBAARA,EAAkB,MAAM,IAAIjL,MAAM,2CAA6CiL,GAC1F,OAAO,IAAIhN,YAAW,IAAI0uK,aAAclsK,OAAOwK,GACjD,CAUuC4jB,CAAYN,IACjD2zR,GAAO3zR,GACAA,CACT,CAsBM,MAAgBu0R,GAsBpBnyS,KAAAA,GACE,OAAOtC,KAAK00S,YACd,EAiCI,SAAUC,GACdC,GAOA,MAAMC,EAASx1S,GAA2Bu1S,IAAWvgO,OAAOmgO,GAAQn1S,IAAMm6I,SACpEj8I,EAAMq3S,IAIZ,OAHAC,EAAMX,UAAY32S,EAAI22S,UACtBW,EAAMC,SAAWv3S,EAAIu3S,SACrBD,EAAM5jT,OAAS,IAAM2jT,IACdC,CACT,CAmCM,SAAU/hN,KAA4B,IAAhBiiN,EAAWjjT,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GACxC,GAAIihG,IAA4C,oBAA3BA,GAAOE,gBAC1B,OAAOF,GAAOE,gBAAgB,IAAIrjG,WAAWmlT,IAG/C,GAAIhiN,IAAwC,oBAAvBA,GAAOD,YAC1B,OAAOC,GAAOD,YAAYiiN,GAE5B,MAAM,IAAIpjT,MAAM,yCAClB,CCtRM,SAAUqjT,GAAInxS,EAAWlU,EAAW8Q,GACxC,OAAQoD,EAAIlU,GAAOkU,EAAIpD,CACzB,CAGM,SAAUw0S,GAAIpxS,EAAWlU,EAAW8Q,GACxC,OAAQoD,EAAIlU,EAAMkU,EAAIpD,EAAM9Q,EAAI8Q,CAClC,CAMM,MAAgBy0S,WAAoCT,GAcxDpkT,WAAAA,CACWykT,EACFZ,EACEiB,EACAvrR,GAET1P,QALS,KAAA46R,SAAAA,EACF,KAAAZ,UAAAA,EACE,KAAAiB,UAAAA,EACA,KAAAvrR,KAAAA,EATD,KAAAi0I,UAAW,EACX,KAAA1tK,OAAS,EACT,KAAAg0B,IAAM,EACN,KAAAg6D,WAAY,EASpBn+E,KAAK/P,OAAS,IAAIL,WAAWklT,GAC7B90S,KAAK4/F,KAAOu0M,GAAWn0S,KAAK/P,OAC9B,CACAokF,MAAAA,CAAOn0D,GACL6zR,GAAQ/zS,MACR,MAAM,KAAE4/F,EAAI,OAAE3vG,EAAM,SAAE6kT,GAAa90S,KAE7BpC,GADNsiB,EAAOs0R,GAAQt0R,IACE/vB,OACjB,IAAK,IAAIg0B,EAAM,EAAGA,EAAMvmB,GAAO,CAC7B,MAAMw3S,EAAOljT,KAAK6O,IAAI+zS,EAAW90S,KAAKmkB,IAAKvmB,EAAMumB,GAEjD,GAAIixR,IAASN,EAKb7kT,EAAOouB,IAAI6B,EAAK9E,SAAS+I,EAAKA,EAAMixR,GAAOp1S,KAAKmkB,KAChDnkB,KAAKmkB,KAAOixR,EACZjxR,GAAOixR,EACHp1S,KAAKmkB,MAAQ2wR,IACf90S,KAAK8hC,QAAQ89D,EAAM,GACnB5/F,KAAKmkB,IAAM,OAVb,CACE,MAAMkxR,EAAWlB,GAAWj0R,GAC5B,KAAO40R,GAAYl3S,EAAMumB,EAAKA,GAAO2wR,EAAU90S,KAAK8hC,QAAQuzQ,EAAUlxR,EAExE,CAQF,CAGA,OAFAnkB,KAAK7P,QAAU+vB,EAAK/vB,OACpB6P,KAAKs1S,aACEt1S,IACT,CACAu1S,UAAAA,CAAWvyS,GACT+wS,GAAQ/zS,MACRi0S,GAAQjxS,EAAKhD,MACbA,KAAK69J,UAAW,EAIhB,MAAM,OAAE5tK,EAAM,KAAE2vG,EAAI,SAAEk1M,EAAQ,KAAElrR,GAAS5pB,KACzC,IAAI,IAAEmkB,GAAQnkB,KAEd/P,EAAOk0B,KAAS,IAChBnkB,KAAK/P,OAAOmrB,SAAS+I,GAAK9nB,KAAK,GAG3B2D,KAAKm1S,UAAYL,EAAW3wR,IAC9BnkB,KAAK8hC,QAAQ89D,EAAM,GACnBz7E,EAAM,GAGR,IAAK,IAAI5uB,EAAI4uB,EAAK5uB,EAAIu/S,EAAUv/S,IAAKtF,EAAOsF,GAAK,GAnG/C,SACJqqG,EACA1vG,EACA0I,EACAgxB,GAEA,GAAiC,oBAAtBg2E,EAAK41M,aAA6B,OAAO51M,EAAK41M,aAAatlT,EAAY0I,EAAOgxB,GACzF,MAAM6rR,EAAOz2S,OAAO,IACd02S,EAAW12S,OAAO,YAClB4zI,EAAKpiJ,OAAQoI,GAAS68S,EAAQC,GAC9BC,EAAKnlT,OAAOoI,EAAQ88S,GACpBvlS,EAAIyZ,EAAO,EAAI,EACfld,EAAIkd,EAAO,EAAI,EACrBg2E,EAAKg2M,UAAU1lT,EAAaigB,EAAGyiI,EAAIhpH,GACnCg2E,EAAKg2M,UAAU1lT,EAAawc,EAAGipS,EAAI/rR,EACrC,CAwFI4rR,CAAa51M,EAAMk1M,EAAW,EAAG91S,OAAqB,EAAdgB,KAAK7P,QAAay5B,GAC1D5pB,KAAK8hC,QAAQ89D,EAAM,GACnB,MAAMi2M,EAAQ1B,GAAWnxS,GACnBpF,EAAMoC,KAAKk0S,UAEjB,GAAIt2S,EAAM,EAAG,MAAM,IAAIjM,MAAM,+CAC7B,MAAMqlB,EAASpZ,EAAM,EACfg2F,EAAQ5zF,KAAKkY,MACnB,GAAIlB,EAAS48E,EAAMzjG,OAAQ,MAAM,IAAIwB,MAAM,sCAC3C,IAAK,IAAI4D,EAAI,EAAGA,EAAIyhB,EAAQzhB,IAAKsgT,EAAMD,UAAU,EAAIrgT,EAAGq+F,EAAMr+F,GAAIq0B,EACpE,CACA4vH,MAAAA,GACE,MAAM,OAAEvpJ,EAAM,UAAEikT,GAAcl0S,KAC9BA,KAAKu1S,WAAWtlT,GAChB,MAAMmU,EAAMnU,EAAO8J,MAAM,EAAGm6S,GAE5B,OADAl0S,KAAK2vB,UACEvrB,CACT,CACAswS,UAAAA,CAAWx8P,GACTA,IAAAA,EAAO,IAAKl4C,KAAK3P,aACjB6nD,EAAG75B,OAAOre,KAAKkY,OACf,MAAM,SAAE48R,EAAQ,OAAE7kT,EAAM,OAAEE,EAAM,SAAE0tK,EAAQ,UAAE1/E,EAAS,IAAEh6D,GAAQnkB,KAM/D,OALAk4C,EAAG/nD,OAASA,EACZ+nD,EAAG/zB,IAAMA,EACT+zB,EAAG2lH,SAAWA,EACd3lH,EAAGimC,UAAYA,EACXhuF,EAAS2kT,GAAU58P,EAAGjoD,OAAOouB,IAAIpuB,GAC9BioD,CACT,ECtIF,MAAM49P,GAA6B92S,OAAO,GAAK,GAAK,GAC9Cy2S,GAAuBz2S,OAAO,IAEpC,SAAS+2S,GACP5nS,GAMA,OALErc,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAKa,CAAEqe,EAAG3f,OAAO2d,EAAI2nS,IAAappS,EAAGlc,OAAQ2d,GAAKsnS,GAAQK,KAC7D,CAAE3lS,EAAsC,EAAnC3f,OAAQ2d,GAAKsnS,GAAQK,IAAiBppS,EAA4B,EAAzBlc,OAAO2d,EAAI2nS,IAClE,CAEA,SAASliT,GAAMoiT,GAAyB,IAAVtyK,EAAE5xI,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAC1BmhJ,EAAK,IAAIohK,YAAY2B,EAAI7lT,QACzB8lT,EAAK,IAAI5B,YAAY2B,EAAI7lT,QAC7B,IAAK,IAAIoF,EAAI,EAAGA,EAAIygT,EAAI7lT,OAAQoF,IAAK,CACnC,MAAM,EAAE4a,EAAC,EAAEzD,GAAMqpS,GAAQC,EAAIzgT,GAAImuI,IAChCuP,EAAG19I,GAAI0gT,EAAG1gT,IAAM,CAAC4a,EAAGzD,EACvB,CACA,MAAO,CAACumI,EAAIgjK,EACd,CAEA,MAcMC,GAASA,CAAC/lS,EAAWzD,EAAWU,IAAuB+C,GAAK/C,EAAMV,IAAO,GAAKU,EAC9E+oS,GAASA,CAAChmS,EAAWzD,EAAWU,IAAuBV,GAAKU,EAAM+C,IAAO,GAAK/C,EAE9EgpS,GAASA,CAACjmS,EAAWzD,EAAWU,IAAuBV,GAAMU,EAAI,GAAQ+C,IAAO,GAAK/C,EACrFipS,GAASA,CAAClmS,EAAWzD,EAAWU,IAAuB+C,GAAM/C,EAAI,GAAQV,IAAO,GAAKU,EAiB3F,MAsBMkpS,GAAqpC,CACzpCP,WAASniT,SAAO2iT,MA1DJA,CAACpmS,EAAWzD,IAAuB1N,OAAOmR,IAAM,IAAMslS,GAAQz2S,OAAO0N,IAAM,GA2DvF8pS,MAzDYA,CAACrmS,EAAWsmS,EAAYrpS,IAAsB+C,IAAM/C,EAyDzDspS,MAxDKA,CAACvmS,EAAWzD,EAAWU,IAAuB+C,GAAM,GAAK/C,EAAOV,IAAMU,EAyDlFupS,OAvDaA,CAACxmS,EAAWzD,EAAWU,IAAuB+C,IAAM/C,EAAMV,GAAM,GAAKU,EAuD1EwpS,OAtDKA,CAACzmS,EAAWzD,EAAWU,IAAuB+C,GAAM,GAAK/C,EAAOV,IAAMU,EAsDnEypS,OApDHA,CAAC1mS,EAAWzD,EAAWU,IAAuB+C,GAAM,GAAK/C,EAAOV,IAAOU,EAAI,GAoDhE0pS,OAnDXA,CAAC3mS,EAAWzD,EAAWU,IAAuB+C,IAAO/C,EAAI,GAAQV,GAAM,GAAKU,EAoDzF2pS,QAlDcA,CAAC/uB,EAAYt7Q,IAAsBA,EAkDxCsqS,QAjDKA,CAAC7mS,EAAWsmS,IAAuBtmS,EAkDjD+lS,UAAQC,UAAQC,UAAQC,UACxBxvS,IAzCF,SACEosI,EACAgjK,EACA/iK,EACA+jK,GAKA,MAAMvqS,GAAKupS,IAAO,IAAMgB,IAAO,GAC/B,MAAO,CAAE9mS,EAAI8iI,EAAKC,GAAOxmI,EAAI,GAAK,GAAM,GAAM,EAAGA,EAAO,EAAJA,EACtD,EA8BOwqS,MA5BOA,CAACjB,EAAYgB,EAAYE,KAAwBlB,IAAO,IAAMgB,IAAO,IAAME,IAAO,GA4BlFC,MA3BAA,CAACC,EAAapkK,EAAYC,EAAYC,IACjDF,EAAKC,EAAKC,GAAOkkK,EAAM,GAAK,GAAM,GAAM,EA0BtBC,MAzBPA,CAACrB,EAAYgB,EAAYE,EAAYI,KAChDtB,IAAO,IAAMgB,IAAO,IAAME,IAAO,IAAMI,IAAO,GAwBrBC,MAvBdA,CAACH,EAAapkK,EAAYC,EAAYC,EAAYE,IAC7DJ,EAAKC,EAAKC,EAAKE,GAAOgkK,EAAM,GAAK,GAAM,GAAM,EAsBbI,MAnBrBA,CAACJ,EAAapkK,EAAYC,EAAYC,EAAYE,EAAYC,IACzEL,EAAKC,EAAKC,EAAKE,EAAKC,GAAO+jK,EAAM,GAAK,GAAM,GAAM,EAkBXK,MArB5BA,CAACzB,EAAYgB,EAAYE,EAAYI,EAAYI,KAC5D1B,IAAO,IAAMgB,IAAO,IAAME,IAAO,IAAMI,IAAO,IAAMI,IAAO,IAsB9D,OCjFOC,GAAWC,IAA6B,KAAOvB,GAAAA,MAAU,CAC9D,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,sBAClEv4R,KAAI5P,GAAKnP,OAAOmP,MArB6B,GAwBzC2pS,GAA6B,IAAIzD,YAAY,IAC7C0D,GAA6B,IAAI1D,YAAY,IAC7C,MAAO2D,WAAe9C,GAsB1B7kT,WAAAA,GACE6pB,MAAM,IAAK,GAAI,IAAI,GAlBX,KAAA+4H,GAAa,WACb,KAAAgjK,IAAa,UACb,KAAA/iK,IAAa,WACb,KAAA+jK,IAAa,WACb,KAAA9jK,GAAa,WACb,KAAAgkK,IAAa,SACb,KAAA9jK,IAAa,WACb,KAAAkkK,GAAa,WACb,KAAAjkK,GAAa,WACb,KAAAqkK,IAAa,WACb,KAAAnkK,IAAa,WACb,KAAAykK,GAAa,UACb,KAAAvkK,GAAa,UACb,KAAAwkK,IAAa,SACb,KAAAvkK,GAAa,WACb,KAAAwkK,GAAa,SAIvB,CAEUjgS,GAAAA,GAIR,MAAM,GAAE+6H,EAAE,GAAEgjK,EAAE,GAAE/iK,EAAE,GAAE+jK,EAAE,GAAE9jK,EAAE,GAAEgkK,EAAE,GAAE9jK,EAAE,GAAEkkK,EAAE,GAAEjkK,EAAE,GAAEqkK,EAAE,GAAEnkK,EAAE,GAAEykK,EAAE,GAAEvkK,EAAE,GAAEwkK,EAAE,GAAEvkK,EAAE,GAAEwkK,GAAOn4S,KAC3E,MAAO,CAACizI,EAAIgjK,EAAI/iK,EAAI+jK,EAAI9jK,EAAIgkK,EAAI9jK,EAAIkkK,EAAIjkK,EAAIqkK,EAAInkK,EAAIykK,EAAIvkK,EAAIwkK,EAAIvkK,EAAIwkK,EACtE,CAEU95R,GAAAA,CACR40H,EAAYgjK,EAAY/iK,EAAY+jK,EAAY9jK,EAAYgkK,EAAY9jK,EAAYkkK,EACpFjkK,EAAYqkK,EAAYnkK,EAAYykK,EAAYvkK,EAAYwkK,EAAYvkK,EAAYwkK,GAEpFn4S,KAAKizI,GAAU,EAALA,EACVjzI,KAAKi2S,GAAU,EAALA,EACVj2S,KAAKkzI,GAAU,EAALA,EACVlzI,KAAKi3S,GAAU,EAALA,EACVj3S,KAAKmzI,GAAU,EAALA,EACVnzI,KAAKm3S,GAAU,EAALA,EACVn3S,KAAKqzI,GAAU,EAALA,EACVrzI,KAAKu3S,GAAU,EAALA,EACVv3S,KAAKszI,GAAU,EAALA,EACVtzI,KAAK23S,GAAU,EAALA,EACV33S,KAAKwzI,GAAU,EAALA,EACVxzI,KAAKi4S,GAAU,EAALA,EACVj4S,KAAK0zI,GAAU,EAALA,EACV1zI,KAAKk4S,GAAU,EAALA,EACVl4S,KAAK2zI,GAAU,EAALA,EACV3zI,KAAKm4S,GAAU,EAALA,CACZ,CACUr2Q,OAAAA,CAAQ89D,EAAgBhvG,GAEhC,IAAK,IAAI2E,EAAI,EAAGA,EAAI,GAAIA,IAAK3E,GAAU,EACrCknT,GAAWviT,GAAKqqG,EAAKw4M,UAAUxnT,GAC/BmnT,GAAWxiT,GAAKqqG,EAAKw4M,UAAWxnT,GAAU,GAE5C,IAAK,IAAI2E,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAE5B,MAAM8iT,EAA4B,EAArBP,GAAWviT,EAAI,IACtB+iT,EAA4B,EAArBP,GAAWxiT,EAAI,IACtBgjT,EAAMjC,GAAAA,OAAW+B,EAAMC,EAAM,GAAKhC,GAAAA,OAAW+B,EAAMC,EAAM,GAAKhC,GAAAA,MAAU+B,EAAMC,EAAM,GACpFE,EAAMlC,GAAAA,OAAW+B,EAAMC,EAAM,GAAKhC,GAAAA,OAAW+B,EAAMC,EAAM,GAAKhC,GAAAA,MAAU+B,EAAMC,EAAM,GAEpFG,EAA0B,EAApBX,GAAWviT,EAAI,GACrBmjT,EAA0B,EAApBX,GAAWxiT,EAAI,GACrBojT,EAAMrC,GAAAA,OAAWmC,EAAKC,EAAK,IAAMpC,GAAAA,OAAWmC,EAAKC,EAAK,IAAMpC,GAAAA,MAAUmC,EAAKC,EAAK,GAChFE,EAAMtC,GAAAA,OAAWmC,EAAKC,EAAK,IAAMpC,GAAAA,OAAWmC,EAAKC,EAAK,IAAMpC,GAAAA,MAAUmC,EAAKC,EAAK,GAEhFG,EAAOvC,GAAAA,MAAUkC,EAAKI,EAAKb,GAAWxiT,EAAI,GAAIwiT,GAAWxiT,EAAI,KAC7DujT,EAAOxC,GAAAA,MAAUuC,EAAMN,EAAKI,EAAKb,GAAWviT,EAAI,GAAIuiT,GAAWviT,EAAI,KACzEuiT,GAAWviT,GAAY,EAAPujT,EAChBf,GAAWxiT,GAAY,EAAPsjT,CAClB,CACA,IAAI,GAAE5lK,EAAE,GAAEgjK,EAAE,GAAE/iK,EAAE,GAAE+jK,EAAE,GAAE9jK,EAAE,GAAEgkK,EAAE,GAAE9jK,EAAE,GAAEkkK,EAAE,GAAEjkK,EAAE,GAAEqkK,EAAE,GAAEnkK,EAAE,GAAEykK,EAAE,GAAEvkK,EAAE,GAAEwkK,EAAE,GAAEvkK,EAAE,GAAEwkK,GAAOn4S,KAEzE,IAAK,IAAIzK,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAE3B,MAAMwjT,EAAUzC,GAAAA,OAAWhjK,EAAIqkK,EAAI,IAAMrB,GAAAA,OAAWhjK,EAAIqkK,EAAI,IAAMrB,GAAAA,OAAWhjK,EAAIqkK,EAAI,IAC/EqB,EAAU1C,GAAAA,OAAWhjK,EAAIqkK,EAAI,IAAMrB,GAAAA,OAAWhjK,EAAIqkK,EAAI,IAAMrB,GAAAA,OAAWhjK,EAAIqkK,EAAI,IAE/EsB,EAAQ3lK,EAAKE,GAAQF,EAAKI,EAC1BwlK,EAAQvB,EAAKM,GAAQN,EAAKO,EAG1BiB,EAAO7C,GAAAA,MAAU6B,EAAIa,EAASE,EAAMrB,GAAUtiT,GAAIwiT,GAAWxiT,IAC7D6jT,EAAM9C,GAAAA,MAAU6C,EAAMxlK,EAAIolK,EAASE,EAAMrB,GAAUriT,GAAIuiT,GAAWviT,IAClE8jT,EAAa,EAAPF,EAENG,EAAUhD,GAAAA,OAAWrjK,EAAIgjK,EAAI,IAAMK,GAAAA,OAAWrjK,EAAIgjK,EAAI,IAAMK,GAAAA,OAAWrjK,EAAIgjK,EAAI,IAC/EsD,EAAUjD,GAAAA,OAAWrjK,EAAIgjK,EAAI,IAAMK,GAAAA,OAAWrjK,EAAIgjK,EAAI,IAAMK,GAAAA,OAAWrjK,EAAIgjK,EAAI,IAC/EuD,EAAQvmK,EAAKC,EAAOD,EAAKE,EAAOD,EAAKC,EACrCsmK,EAAQxD,EAAKgB,EAAOhB,EAAKkB,EAAOF,EAAKE,EAC3CxjK,EAAU,EAALD,EACLykK,EAAU,EAALD,EACLxkK,EAAU,EAALF,EACL0kK,EAAU,EAALD,EACLzkK,EAAU,EAALF,EACL2kK,EAAU,EAALN,IACFxnS,EAAGmjI,EAAI5mI,EAAGirS,GAAOrB,GAAAA,IAAa,EAALjjK,EAAa,EAALkkK,EAAc,EAAN6B,EAAe,EAANC,IACrDhmK,EAAU,EAALF,EACLokK,EAAU,EAALJ,EACLhkK,EAAU,EAALD,EACLikK,EAAU,EAALF,EACL/jK,EAAU,EAALD,EACLgkK,EAAU,EAALhB,EACL,MAAMyD,EAAMpD,GAAAA,MAAU+C,EAAKE,EAASE,GACpCxmK,EAAKqjK,GAAAA,MAAUoD,EAAKN,EAAKE,EAASE,GAClCvD,EAAW,EAANyD,CACP,GAEGvpS,EAAG8iI,EAAIvmI,EAAGupS,GAAOK,GAAAA,IAAkB,EAAVt2S,KAAKizI,GAAkB,EAAVjzI,KAAKi2S,GAAa,EAALhjK,EAAa,EAALgjK,MAC3D9lS,EAAG+iI,EAAIxmI,EAAGuqS,GAAOX,GAAAA,IAAkB,EAAVt2S,KAAKkzI,GAAkB,EAAVlzI,KAAKi3S,GAAa,EAAL/jK,EAAa,EAAL+jK,MAC3D9mS,EAAGgjI,EAAIzmI,EAAGyqS,GAAOb,GAAAA,IAAkB,EAAVt2S,KAAKmzI,GAAkB,EAAVnzI,KAAKm3S,GAAa,EAALhkK,EAAa,EAALgkK,MAC3DhnS,EAAGkjI,EAAI3mI,EAAG6qS,GAAOjB,GAAAA,IAAkB,EAAVt2S,KAAKqzI,GAAkB,EAAVrzI,KAAKu3S,GAAa,EAALlkK,EAAa,EAALkkK,MAC3DpnS,EAAGmjI,EAAI5mI,EAAGirS,GAAOrB,GAAAA,IAAkB,EAAVt2S,KAAKszI,GAAkB,EAAVtzI,KAAK23S,GAAa,EAALrkK,EAAa,EAALqkK,MAC3DxnS,EAAGqjI,EAAI9mI,EAAGurS,GAAO3B,GAAAA,IAAkB,EAAVt2S,KAAKwzI,GAAkB,EAAVxzI,KAAKi4S,GAAa,EAALzkK,EAAa,EAALykK,MAC3D9nS,EAAGujI,EAAIhnI,EAAGwrS,GAAO5B,GAAAA,IAAkB,EAAVt2S,KAAK0zI,GAAkB,EAAV1zI,KAAKk4S,GAAa,EAALxkK,EAAa,EAALwkK,MAC3D/nS,EAAGwjI,EAAIjnI,EAAGyrS,GAAO7B,GAAAA,IAAkB,EAAVt2S,KAAK2zI,GAAkB,EAAV3zI,KAAKm4S,GAAa,EAALxkK,EAAa,EAALwkK,IAC9Dn4S,KAAKqe,IAAI40H,EAAIgjK,EAAI/iK,EAAI+jK,EAAI9jK,EAAIgkK,EAAI9jK,EAAIkkK,EAAIjkK,EAAIqkK,EAAInkK,EAAIykK,EAAIvkK,EAAIwkK,EAAIvkK,EAAIwkK,EACvE,CACU7C,UAAAA,GACRwC,GAAWz7S,KAAK,GAChB07S,GAAW17S,KAAK,EAClB,CACAszB,OAAAA,GACE3vB,KAAK/P,OAAOoM,KAAK,GACjB2D,KAAKqe,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACxD,EA+EK,MAAMs7R,GAAgChF,IAAgB,IAAM,IAAIqD,KChPjE4B,GAAsB56S,OAAO,GAC7B66S,GAAsB76S,OAAO,GAC7B86S,GAAsB96S,OAAO,GAW7B,SAAU80S,GAAQjwS,GACtB,OAAOA,aAAajU,YAAe2vB,YAAYC,OAAO3b,IAA6B,eAAvBA,EAAExT,YAAYkB,IAC5E,CAEM,SAAUsiT,GAAOv2R,GACrB,IAAKw2R,GAAQx2R,GAAO,MAAM,IAAI3rB,MAAM,sBACtC,CAEM,SAAUooT,GAAM18N,EAAezkF,GACnC,GAAqB,mBAAVA,EAAqB,MAAM,IAAIjH,MAAM0rF,EAAQ,0BAA4BzkF,EACtF,CAGA,MAAMohT,GAAwBjkT,MAAM/F,KAAK,CAAEG,OAAQ,MAAO,CAAC2e,EAAGvZ,IAC5DA,EAAE2E,SAAS,IAAIgF,SAAS,EAAG,OAKvB,SAAU+6S,GAAW/0R,GACzB2uR,GAAO3uR,GAEP,IAAInmB,EAAM,GACV,IAAK,IAAIxJ,EAAI,EAAGA,EAAI2vB,EAAM/0B,OAAQoF,IAChCwJ,GAAOi7S,GAAM90R,EAAM3vB,IAErB,OAAOwJ,CACT,CAEM,SAAUm7S,GAAoBx7S,GAClC,MAAMK,EAAML,EAAIxE,SAAS,IACzB,OAAoB,EAAb6E,EAAI5O,OAAa,IAAM4O,EAAMA,CACtC,CAEM,SAAUo7S,GAAYp7S,GAC1B,GAAmB,kBAARA,EAAkB,MAAM,IAAIpN,MAAM,mCAAqCoN,GAClF,MAAe,KAARA,EAAa66S,GAAM56S,OAAO,KAAOD,EAC1C,CAGA,MAAMq7S,GAAS,CAAEC,GAAI,GAAIC,GAAI,GAAInoS,EAAG,GAAIs3H,EAAG,GAAI5lI,EAAG,GAAI4mB,EAAG,KACzD,SAAS8vR,GAAch/O,GACrB,OAAIA,GAAM6+O,GAAOC,IAAM9+O,GAAM6+O,GAAOE,GAAW/+O,EAAK6+O,GAAOC,GACvD9+O,GAAM6+O,GAAOjoS,GAAKopD,GAAM6+O,GAAO3wK,EAAUluE,GAAM6+O,GAAOjoS,EAAI,IAC1DopD,GAAM6+O,GAAOv2S,GAAK03D,GAAM6+O,GAAO3vR,EAAU8wC,GAAM6+O,GAAOv2S,EAAI,SAA9D,CAEF,CAKM,SAAU22S,GAAWz7S,GACzB,GAAmB,kBAARA,EAAkB,MAAM,IAAIpN,MAAM,mCAAqCoN,GAClF,MAAMgmJ,EAAKhmJ,EAAI5O,OACTo0J,EAAKQ,EAAK,EAChB,GAAIA,EAAK,EAAG,MAAM,IAAIpzJ,MAAM,mDAAqDozJ,GACjF,MAAMxpI,EAAQ,IAAI3rB,WAAW20J,GAC7B,IAAK,IAAIjP,EAAK,EAAGxwI,EAAK,EAAGwwI,EAAKiP,EAAIjP,IAAMxwI,GAAM,EAAG,CAC/C,MAAM0gD,EAAK+0P,GAAcx7S,EAAI5D,WAAW2J,IAClC4/C,EAAK61P,GAAcx7S,EAAI5D,WAAW2J,EAAK,IAC7C,QAAW/S,IAAPyzD,QAA2BzzD,IAAP2yD,EAAkB,CACxC,MAAM0lF,EAAOrrI,EAAI+F,GAAM/F,EAAI+F,EAAK,GAChC,MAAM,IAAInT,MAAM,+CAAiDy4I,EAAO,cAAgBtlI,EAC1F,CACAyW,EAAM+5H,GAAW,GAAL9vF,EAAUd,CACxB,CACA,OAAOnpC,CACT,CAGM,SAAUk/R,GAAgBv1R,GAC9B,OAAOi1R,GAAYF,GAAW/0R,GAChC,CACM,SAAUw1R,GAAgBx1R,GAE9B,OADA2uR,GAAO3uR,GACAi1R,GAAYF,GAAWrqT,WAAWI,KAAKk1B,GAAOpmB,WACvD,CAEM,SAAU67S,GAAgBxsS,EAAoBvQ,GAClD,OAAO48S,GAAWrsS,EAAEjU,SAAS,IAAIgF,SAAe,EAANtB,EAAS,KACrD,CACM,SAAUg9S,GAAgBzsS,EAAoBvQ,GAClD,OAAO+8S,GAAgBxsS,EAAGvQ,GAAKkB,SACjC,CAeM,SAAU+7S,GAAYx9N,EAAet+E,EAAU+7S,GACnD,IAAI12S,EACJ,GAAmB,kBAARrF,EACT,IACEqF,EAAMo2S,GAAWz7S,EACnB,CAAE,MAAO5I,IACP,MAAM,IAAIxE,MAAM0rF,EAAQ,6CAA+ClnF,GACzE,KACK,KAAI29S,GAAQ/0S,GAKjB,MAAM,IAAIpN,MAAM0rF,EAAQ,qCAFxBj5E,EAAMxU,WAAWI,KAAK+O,EAGxB,CACA,MAAMnB,EAAMwG,EAAIjU,OAChB,GAA8B,kBAAnB2qT,GAA+Bl9S,IAAQk9S,EAChD,MAAM,IAAInpT,MAAM0rF,EAAQ,cAAgBy9N,EAAiB,kBAAoBl9S,GAC/E,OAAOwG,CACT,CAKM,SAAU22S,KACd,IAAIthT,EAAM,EACV,IAAK,IAAIlE,EAAI,EAAGA,EAAIzD,UAAO3B,OAAQoF,IAAK,CACtC,MAAMsO,EAAWtO,EAAC,GAAAzD,UAAA3B,QAADoF,OAACxD,EAAAD,UAADyD,GACjBs+S,GAAOhwS,GACPpK,GAAOoK,EAAE1T,MACX,CACA,MAAMiU,EAAM,IAAIxU,WAAW6J,GAC3B,IAAK,IAAIlE,EAAI,EAAGylT,EAAM,EAAGzlT,EAAIzD,UAAO3B,OAAQoF,IAAK,CAC/C,MAAMsO,EAAWtO,EAAC,GAAAzD,UAAA3B,QAADoF,OAACxD,EAAAD,UAADyD,GACjB6O,EAAIia,IAAIxa,EAAGm3S,GACXA,GAAOn3S,EAAE1T,MACX,CACA,OAAOiU,CACT,CAuBA,MAAM62S,GAAY9sS,GAA2B,kBAANA,GAAkByrS,IAAOzrS,EAE1D,SAAUmvJ,GAAQnvJ,EAAWpN,EAAaE,GAC9C,OAAOg6S,GAAS9sS,IAAM8sS,GAASl6S,IAAQk6S,GAASh6S,IAAQF,GAAOoN,GAAKA,EAAIlN,CAC1E,CAOM,SAAUi6S,GAAS79N,EAAelvE,EAAWpN,EAAaE,GAM9D,IAAKq8J,GAAQnvJ,EAAGpN,EAAKE,GACnB,MAAM,IAAItP,MAAM,kBAAoB0rF,EAAQ,KAAOt8E,EAAM,WAAaE,EAAM,SAAWkN,EAC3F,CAQM,SAAUgtS,GAAOhtS,GACrB,IAAIvQ,EACJ,IAAKA,EAAM,EAAGuQ,EAAIyrS,GAAKzrS,IAAM0rS,GAAKj8S,GAAO,GACzC,OAAOA,CACT,CAsBO,MAAMw9S,GAAWjtS,IAAuB2rS,IAAO96S,OAAOmP,EAAI,IAAM0rS,GAIjEwB,GAAOn7R,GAAe,IAAItwB,WAAWswB,GACrCo7R,GAAQ99S,GAAa5N,WAAWI,KAAKwN,GASrC,SAAU+9S,GACdC,EACAC,EACAC,GAEA,GAAuB,kBAAZF,GAAwBA,EAAU,EAAG,MAAM,IAAI7pT,MAAM,4BAChE,GAAwB,kBAAb8pT,GAAyBA,EAAW,EAAG,MAAM,IAAI9pT,MAAM,6BAClE,GAAsB,oBAAX+pT,EAAuB,MAAM,IAAI/pT,MAAM,6BAElD,IAAIgE,EAAI0lT,GAAIG,GACR13S,EAAIu3S,GAAIG,GACRjmT,EAAI,EACR,MAAM2qD,EAAQA,KACZvqD,EAAE0G,KAAK,GACPyH,EAAEzH,KAAK,GACP9G,EAAI,CAAC,EAED4a,EAAI,mBAAA4L,EAAAjqB,UAAA3B,OAAIR,EAAe,IAAAoG,MAAAgmB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAftsB,EAAessB,GAAAnqB,UAAAmqB,GAAA,OAAKy/R,EAAO53S,EAAGnO,KAAMhG,EAAE,EAC9CgsT,EAAS,WAAiB,IAAhBnpN,EAAI1gG,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGupT,KAErBv3S,EAAIqM,EAAEmrS,GAAK,CAAC,IAAQ9oN,GACpB78F,EAAIwa,IACgB,IAAhBqiF,EAAKriG,SACT2T,EAAIqM,EAAEmrS,GAAK,CAAC,IAAQ9oN,GACpB78F,EAAIwa,IACN,EACMyrS,EAAMA,KAEV,GAAIrmT,KAAO,IAAM,MAAM,IAAI5D,MAAM,2BACjC,IAAIiM,EAAM,EACV,MAAMoF,EAAoB,GAC1B,KAAOpF,EAAM69S,GAAU,CACrB9lT,EAAIwa,IACJ,MAAM41I,EAAKpwJ,EAAEoE,QACbiJ,EAAIxN,KAAKuwJ,GACTnoJ,GAAOjI,EAAExF,MACX,CACA,OAAO4qT,MAAe/3S,EAAI,EAU5B,MARiB64S,CAACrpN,EAAkBspN,KAGlC,IAAI13S,EACJ,IAHA87C,IACAy7P,EAAOnpN,KAEEpuF,EAAM03S,EAAKF,OAASD,IAE7B,OADAz7P,IACO97C,CAAG,CAGd,CAIA,MAAM23S,GAAe,CACnBntM,OAASxvG,GAAqC,kBAARA,EACtCmqM,SAAWnqM,GAAqC,oBAARA,EACxCkqM,QAAUlqM,GAAqC,mBAARA,EACvCtC,OAASsC,GAAqC,kBAARA,EACtC48S,mBAAqB58S,GAAqC,kBAARA,GAAoB00S,GAAQ10S,GAC9Ew0S,cAAgBx0S,GAAsB5O,OAAOojT,cAAcx0S,GAC3Dmc,MAAQnc,GAAsBrJ,MAAMC,QAAQoJ,GAC5C6e,MAAOA,CAAC7e,EAAUk2B,IAAsBA,EAAe2mR,GAAGnvB,QAAQ1tR,GAClEkoK,KAAOloK,GAAqC,oBAARA,GAAsB5O,OAAOojT,cAAcx0S,EAAI80S,YAM/E,SAAUgI,GACd5mR,EACAgzK,GAC6B,IAA7B6zG,EAAArqT,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAA2B,CAAC,EAE5B,MAAMsqT,EAAaA,CAAC9hS,EAAoBkD,EAAiBmuJ,KACvD,MAAM0wI,EAAWN,GAAav+R,GAC9B,GAAwB,oBAAb6+R,EAAyB,MAAM,IAAI1qT,MAAM,8BAEpD,MAAMyN,EAAMk2B,EAAOhb,GACnB,KAAIqxJ,QAAsB55K,IAARqN,KACbi9S,EAASj9S,EAAKk2B,GACjB,MAAM,IAAI3jC,MACR,SAAWyI,OAAOkgB,GAAa,yBAA2BkD,EAAO,SAAWpe,EAEhF,EAEF,IAAK,MAAOkb,EAAWkD,KAASxsB,OAAOg4J,QAAQs/C,GAAa8zG,EAAW9hS,EAAWkD,GAAO,GACzF,IAAK,MAAOlD,EAAWkD,KAASxsB,OAAOg4J,QAAQmzJ,GAAgBC,EAAW9hS,EAAWkD,GAAO,GAC5F,OAAO8X,CACT,CAqBM,SAAUgnR,GACd7gS,GAEA,MAAMsC,EAAM,IAAI67H,QAChB,OAAO,SAAC16H,GACN,MAAM9f,EAAM2e,EAAI7F,IAAIgH,GACpB,QAAYntB,IAARqN,EAAmB,OAAOA,EAAI,QAAA0+L,EAAAhsM,UAAA3B,OAFjB6rB,EAAO,IAAAjmB,MAAA+nM,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAP/hL,EAAO+hL,EAAA,GAAAjsM,UAAAisM,GAGxB,MAAMF,EAAWpiL,EAAGyD,KAAQlD,GAE5B,OADA+B,EAAIM,IAAIa,EAAK2+K,GACNA,CACT,CACF,CC9VA,MAAM+7G,GAAM56S,OAAO,GAAI66S,GAAM76S,OAAO,GAAI86S,GAAsB96S,OAAO,GAAIu9S,GAAsBv9S,OAAO,GAEhGw9S,GAAsBx9S,OAAO,GAAIy9S,GAAsBz9S,OAAO,GAAI09S,GAAsB19S,OAAO,GAK/F,SAAUkD,GAAI2B,EAAWlU,GAC7B,MAAMopB,EAASlV,EAAIlU,EACnB,OAAOopB,GAAU6gS,GAAM7gS,EAASppB,EAAIopB,CACtC,CAQM,SAAU1lB,GAAIqL,EAAagvG,EAAeivM,GAC9C,GAAIjvM,EAAQksM,GAAK,MAAM,IAAIjoT,MAAM,2CACjC,GAAIgrT,GAAU/C,GAAK,MAAM,IAAIjoT,MAAM,mBACnC,GAAIgrT,IAAW9C,GAAK,OAAOD,GAC3B,IAAIx1S,EAAMy1S,GACV,KAAOnsM,EAAQksM,IACTlsM,EAAQmsM,KAAKz1S,EAAOA,EAAM1F,EAAOi+S,GACrCj+S,EAAOA,EAAMA,EAAOi+S,EACpBjvM,IAAUmsM,GAEZ,OAAOz1S,CACT,CAGM,SAAUw4S,GAAK5hT,EAAW0yG,EAAeivM,GAC7C,IAAIv4S,EAAMpJ,EACV,KAAO0yG,KAAUksM,IACfx1S,GAAOA,EACPA,GAAOu4S,EAET,OAAOv4S,CACT,CAMM,SAAUy4S,GAAOj9S,EAAgB+8S,GACrC,GAAI/8S,IAAWg6S,GAAK,MAAM,IAAIjoT,MAAM,oCACpC,GAAIgrT,GAAU/C,GAAK,MAAM,IAAIjoT,MAAM,0CAA4CgrT,GAE/E,IAAI94S,EAAI3B,GAAItC,EAAQ+8S,GAChBhtT,EAAIgtT,EAEJ3hT,EAAI4+S,GAAKttS,EAAIutS,GAAKhiS,EAAIgiS,GAAKlkT,EAAIikT,GACnC,KAAO/1S,IAAM+1S,IAAK,CAEhB,MAAMjqS,EAAIhgB,EAAIkU,EACRjD,EAAIjR,EAAIkU,EACRuK,EAAIpT,EAAI6c,EAAIlI,EACZxB,EAAI7B,EAAI3W,EAAIga,EAElBhgB,EAAIkU,EAAGA,EAAIjD,EAAG5F,EAAI6c,EAAGvL,EAAI3W,EAAGkiB,EAAIzJ,EAAGzY,EAAIwY,CACzC,CAEA,GADYxe,IACAkqT,GAAK,MAAM,IAAIloT,MAAM,0BACjC,OAAOuQ,GAAIlH,EAAG2hT,EAChB,CAgFM,SAAUG,GAAO9mM,GAGrB,GAAIA,EAAIwmM,KAAQD,GAAK,CAKnB,MAAMQ,GAAU/mM,EAAI6jM,IAAO2C,GAC3B,OAAO,SAAsBP,EAAe9tS,GAC1C,MAAMwoD,EAAOslP,EAAG5oT,IAAI8a,EAAG4uS,GAEvB,IAAKd,EAAGe,IAAIf,EAAGzsS,IAAImnD,GAAOxoD,GAAI,MAAM,IAAIxc,MAAM,2BAC9C,OAAOglE,CACT,CACF,CAGA,GAAIq/C,EAAI0mM,KAAQD,GAAK,CACnB,MAAM3hQ,GAAMk7D,EAAIymM,IAAOC,GACvB,OAAO,SAAsBT,EAAe9tS,GAC1C,MAAMu2C,EAAKu3P,EAAGn7S,IAAIqN,EAAG2rS,IACfnkT,EAAIsmT,EAAG5oT,IAAIqxD,EAAI5J,GACfmiQ,EAAKhB,EAAGn7S,IAAIqN,EAAGxY,GACfJ,EAAI0mT,EAAGn7S,IAAIm7S,EAAGn7S,IAAIm8S,EAAInD,IAAMnkT,GAC5BghE,EAAOslP,EAAGn7S,IAAIm8S,EAAIhB,EAAGn1S,IAAIvR,EAAG0mT,EAAGiB,MACrC,IAAKjB,EAAGe,IAAIf,EAAGzsS,IAAImnD,GAAOxoD,GAAI,MAAM,IAAIxc,MAAM,2BAC9C,OAAOglE,CACT,CACF,CAyBA,OA5HI,SAAwBq/C,GAM5B,MAAMmnM,GAAannM,EAAI6jM,IAAOC,GAE9B,IAAInoM,EAAWvf,EAAW6uD,EAG1B,IAAKtvC,EAAIqE,EAAI6jM,GAAKznN,EAAI,EAAGuf,EAAImoM,KAAQF,GAAKjoM,GAAKmoM,GAAK1nN,KAGpD,IAAK6uD,EAAI64J,GAAK74J,EAAIjrC,GAAK3iH,GAAI4tJ,EAAGk8J,EAAWnnM,KAAOA,EAAI6jM,GAAK54J,IAEvD,GAAIA,EAAI,IAAM,MAAM,IAAItvJ,MAAM,+CAIhC,GAAU,IAANygG,EAAS,CACX,MAAM2qN,GAAU/mM,EAAI6jM,IAAO2C,GAC3B,OAAO,SAAwBP,EAAe9tS,GAC5C,MAAMwoD,EAAOslP,EAAG5oT,IAAI8a,EAAG4uS,GACvB,IAAKd,EAAGe,IAAIf,EAAGzsS,IAAImnD,GAAOxoD,GAAI,MAAM,IAAIxc,MAAM,2BAC9C,OAAOglE,CACT,CACF,CAGA,MAAMymP,GAAUzrM,EAAIkoM,IAAOC,GAC3B,OAAO,SAAwBmC,EAAe9tS,GAE5C,GAAI8tS,EAAG5oT,IAAI8a,EAAGgvS,KAAelB,EAAGx2S,IAAIw2S,EAAGiB,KAAM,MAAM,IAAIvrT,MAAM,2BAC7D,IAAIiP,EAAIwxF,EAEJ7/E,EAAI0pS,EAAG5oT,IAAI4oT,EAAGn7S,IAAIm7S,EAAGiB,IAAKj8J,GAAItvC,GAC9B32G,EAAIihT,EAAG5oT,IAAI8a,EAAGivS,GACdztT,EAAIssT,EAAG5oT,IAAI8a,EAAGwjG,GAElB,MAAQsqM,EAAGe,IAAIrtT,EAAGssT,EAAGiB,MAAM,CACzB,GAAIjB,EAAGe,IAAIrtT,EAAGssT,EAAGoB,MAAO,OAAOpB,EAAGoB,KAElC,IAAIjvS,EAAI,EACR,IAAK,IAAIggD,EAAK6tP,EAAGzsS,IAAI7f,GAAIye,EAAIxN,IACvBq7S,EAAGe,IAAI5uP,EAAI6tP,EAAGiB,KADY9uS,IAE9BggD,EAAK6tP,EAAGzsS,IAAI4+C,GAGd,MAAMo1E,EAAKy4K,EAAG5oT,IAAIkf,EAAGsnS,IAAO76S,OAAO4B,EAAIwN,EAAI,IAC3CmE,EAAI0pS,EAAGzsS,IAAIg0H,GACXxoI,EAAIihT,EAAGn7S,IAAI9F,EAAGwoI,GACd7zI,EAAIssT,EAAGn7S,IAAInR,EAAG4iB,GACd3R,EAAIwN,CACN,CACA,OAAOpT,CACT,CACF,CAmESsiT,CAActnM,EACvB,CAGO,MAAMunM,GAAeA,CAAC7+S,EAAai+S,KACvCz6S,GAAIxD,EAAKi+S,GAAU9C,MAASA,GA8CzB2D,GAAe,CACnB,SAAU,UAAW,MAAO,MAAO,MAAO,OAAQ,MAClD,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,OAAQ,OAAQ,OAAQ,QAsFpB,SAAUC,GACdtvS,EACAuvS,GAMA,MAAMC,OAA6B5rT,IAAf2rT,EAA2BA,EAAavvS,EAAEjU,SAAS,GAAG/J,OAE1E,MAAO,CAAEutT,WAAYC,EAAaC,YADd1rT,KAAKyP,KAAKg8S,EAAc,GAE9C,CAkBM,SAAUE,GACdC,EACA3C,GAEmC,IADnCvxR,EAAI93B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GACJisT,EAAAjsT,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAiC,CAAC,EAElC,GAAIgsT,GAASlE,GAAK,MAAM,IAAIjoT,MAAM,0CAA4CmsT,GAC9E,MAAQJ,WAAYM,EAAMJ,YAAaK,GAAUR,GAAQK,EAAO3C,GAChE,GAAI8C,EAAQ,KAAM,MAAM,IAAItsT,MAAM,kDAClC,IAAIusT,EACJ,MAAMzzR,EAAuBz5B,OAAO09C,OAAO,CACzCovQ,QACAl0R,OACAo0R,OACAC,QACAE,KAAM/C,GAAQ4C,GACdX,KAAMzD,GACNsD,IAAKrD,GACL5oT,OAASyN,GAAQwD,GAAIxD,EAAKo/S,GAC1BhxB,QAAUpuR,IACR,GAAmB,kBAARA,EACT,MAAM,IAAI/M,MAAM,sDAAwD+M,GAC1E,OAAOk7S,IAAOl7S,GAAOA,EAAMo/S,CAAK,EAElCM,IAAM1/S,GAAQA,IAAQk7S,GACtBhnS,MAAQlU,IAASA,EAAMm7S,MAASA,GAChCp0S,IAAM/G,GAAQwD,IAAKxD,EAAKo/S,GACxBd,IAAKA,CAACqB,EAAKC,IAAQD,IAAQC,EAE3B9uS,IAAM9Q,GAAQwD,GAAIxD,EAAMA,EAAKo/S,GAC7Bj3S,IAAKA,CAACw3S,EAAKC,IAAQp8S,GAAIm8S,EAAMC,EAAKR,GAClCh3S,IAAKA,CAACu3S,EAAKC,IAAQp8S,GAAIm8S,EAAMC,EAAKR,GAClCh9S,IAAKA,CAACu9S,EAAKC,IAAQp8S,GAAIm8S,EAAMC,EAAKR,GAClCzqT,IAAKA,CAACqL,EAAKgvG,IA9HT,SAAmBjjF,EAAc/rB,EAAQgvG,GAG7C,GAAIA,EAAQksM,GAAK,MAAM,IAAIjoT,MAAM,2CACjC,GAAI+7G,IAAUksM,GAAK,OAAOnvR,EAAEyyR,IAC5B,GAAIxvM,IAAUmsM,GAAK,OAAOn7S,EAC1B,IAAIgP,EAAI+c,EAAEyyR,IACNzkS,EAAI/Z,EACR,KAAOgvG,EAAQksM,IACTlsM,EAAQmsM,KAAKnsS,EAAI+c,EAAE3pB,IAAI4M,EAAG+K,IAC9BA,EAAIgS,EAAEjb,IAAIiJ,GACVi1F,IAAUmsM,GAEZ,OAAOnsS,CACT,CAgHyB6wS,CAAM9zR,EAAG/rB,EAAKgvG,GACnCn8F,IAAKA,CAAC8sS,EAAKC,IAAQp8S,GAAIm8S,EAAMxB,GAAOyB,EAAKR,GAAQA,GAGjDU,KAAO9/S,GAAQA,EAAMA,EACrB+/S,KAAMA,CAACJ,EAAKC,IAAQD,EAAMC,EAC1BI,KAAMA,CAACL,EAAKC,IAAQD,EAAMC,EAC1BK,KAAMA,CAACN,EAAKC,IAAQD,EAAMC,EAE1B9mS,IAAM9Y,GAAQm+S,GAAOn+S,EAAKo/S,GAC1BxoS,KACEyoS,EAAMzoS,MAAI,CACRnH,IACK+vS,IAAOA,EAAQpB,GAAOgB,IACpBI,EAAMzzR,EAAGtc,KAEpBywS,YAAc5I,GA1HZ,SAA2BvrR,EAAco0R,GAC7C,MAAMthT,EAAM,IAAIxH,MAAM8oT,EAAK1uT,QAErB2uT,EAAiBD,EAAKnpT,QAAO,CAACO,EAAKyI,EAAKnJ,IACxCk1B,EAAE2zR,IAAI1/S,GAAazI,GACvBsH,EAAIhI,GAAKU,EACFw0B,EAAE3pB,IAAI7K,EAAKyI,KACjB+rB,EAAEyyR,KAEC6B,EAAWt0R,EAAEjT,IAAIsnS,GAOvB,OALAD,EAAKx0H,aAAY,CAACp0L,EAAKyI,EAAKnJ,IACtBk1B,EAAE2zR,IAAI1/S,GAAazI,GACvBsH,EAAIhI,GAAKk1B,EAAE3pB,IAAI7K,EAAKsH,EAAIhI,IACjBk1B,EAAE3pB,IAAI7K,EAAKyI,KACjBqgT,GACIxhT,CACT,CAyG0ByhT,CAAcv0R,EAAGurR,GAGvCiJ,KAAMA,CAACp7S,EAAGlU,EAAG8Q,IAAOA,EAAI9Q,EAAIkU,EAC5B2wS,QAAU91S,GAASkrB,EAAOgxR,GAAgBl8S,EAAKu/S,GAAStD,GAAgBj8S,EAAKu/S,GAC7EiB,UAAYh6R,IACV,GAAIA,EAAM/0B,SAAW8tT,EACnB,MAAM,IAAItsT,MAAM,6BAA+BssT,EAAQ,eAAiB/4R,EAAM/0B,QAChF,OAAOy5B,EAAO8wR,GAAgBx1R,GAASu1R,GAAgBv1R,EAAM,IAGjE,OAAOl0B,OAAO09C,OAAOjkB,EACvB,CA0CM,SAAU00R,GAAoBC,GAClC,GAA0B,kBAAfA,EAAyB,MAAM,IAAIztT,MAAM,8BACpD,MAAMkT,EAAYu6S,EAAWllT,SAAS,GAAG/J,OACzC,OAAO+B,KAAKyP,KAAKkD,EAAY,EAC/B,CASM,SAAUw6S,GAAiBD,GAC/B,MAAMjvT,EAASgvT,GAAoBC,GACnC,OAAOjvT,EAAS+B,KAAKyP,KAAKxR,EAAS,EACrC,CChfA,MAAMypT,GAAM56S,OAAO,GACb66S,GAAM76S,OAAO,GAsBnB,SAASsgT,GAAoC/0R,EAAoBjN,GAC/D,MAAM7X,EAAM6X,EAAKiiS,SACjB,OAAOh1R,EAAY9kB,EAAM6X,CAC3B,CAEA,SAASkiS,GAAU3gK,EAAW7lJ,GAC5B,IAAKxI,OAAOojT,cAAc/0J,IAAMA,GAAK,GAAKA,EAAI7lJ,EAC5C,MAAM,IAAIrH,MAAM,qCAAuCqH,EAAO,YAAc6lJ,EAChF,CAEA,SAAS4gK,GAAU5gK,EAAW7lJ,GAC5BwmT,GAAU3gK,EAAG7lJ,GAGb,MAAO,CAAE0mT,QAFOxtT,KAAKyP,KAAK3I,EAAO6lJ,GAAK,EAEpB8gK,WADC,IAAM9gK,EAAI,GAE/B,CAEA,SAAS+gK,GAAkBlwQ,EAAejvC,GACxC,IAAK1K,MAAMC,QAAQ05C,GAAS,MAAM,IAAI/9C,MAAM,kBAC5C+9C,EAAOjyB,SAAQ,CAAC/P,EAAGnY,KACjB,KAAMmY,aAAajN,GAAI,MAAM,IAAI9O,MAAM,0BAA4B4D,EAAE,GAEzE,CACA,SAASsqT,GAAmBC,EAAgB7hS,GAC1C,IAAKloB,MAAMC,QAAQ8pT,GAAU,MAAM,IAAInuT,MAAM,6BAC7CmuT,EAAQriS,SAAQ,CAACrQ,EAAG7X,KAClB,IAAK0oB,EAAM6uQ,QAAQ1/Q,GAAI,MAAM,IAAIzb,MAAM,2BAA6B4D,EAAE,GAE1E,CAIA,MAAMwqT,GAAmB,IAAInmK,QACvBomK,GAAmB,IAAIpmK,QAE7B,SAASqmK,GAAKjqM,GACZ,OAAOgqM,GAAiB9nS,IAAI89F,IAAM,CACpC,CA6BM,SAAUkqM,GAAyBz/S,EAAwBzH,GAC/D,MAAO,CACLsmT,mBAEAa,eAAeC,GACQ,IAAdH,GAAKG,GAIdC,YAAAA,CAAaD,EAAQjyS,GAAqB,IAAVT,EAAC5b,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG2O,EAAE48S,KAChC5kS,EAAO2nS,EACX,KAAOjyS,EAAIyrS,IACLzrS,EAAI0rS,KAAKnsS,EAAIA,EAAE7G,IAAI4R,IACvBA,EAAIA,EAAE6nS,SACNnyS,IAAM0rS,GAER,OAAOnsS,CACT,EAcA6yS,gBAAAA,CAAiBH,EAAQvhK,GACvB,MAAM,QAAE6gK,EAAO,WAAEC,GAAeF,GAAU5gK,EAAG7lJ,GACvC02C,EAAc,GACpB,IAAIhiC,EAAO0yS,EACPvgT,EAAO6N,EACX,IAAK,IAAIpN,EAAS,EAAGA,EAASo/S,EAASp/S,IAAU,CAC/CT,EAAO6N,EACPgiC,EAAOl6C,KAAKqK,GAEZ,IAAK,IAAItK,EAAI,EAAGA,EAAIoqT,EAAYpqT,IAC9BsK,EAAOA,EAAKgH,IAAI6G,GAChBgiC,EAAOl6C,KAAKqK,GAEd6N,EAAI7N,EAAKygT,QACX,CACA,OAAO5wQ,CACT,EASAwwQ,IAAAA,CAAKrhK,EAAW2hK,EAAkBryS,GAGhC,MAAM,QAAEuxS,EAAO,WAAEC,GAAeF,GAAU5gK,EAAG7lJ,GAE7C,IAAI0U,EAAIjN,EAAE48S,KACN5yR,EAAIhqB,EAAErF,KAEV,MAAMgV,EAAOpR,OAAO,GAAK6/I,EAAI,GACvB4hK,EAAY,GAAK5hK,EACjB6hK,EAAU1hT,OAAO6/I,GAEvB,IAAK,IAAIv+I,EAAS,EAAGA,EAASo/S,EAASp/S,IAAU,CAC/C,MAAM1P,EAAS0P,EAASq/S,EAExB,IAAIgB,EAAQnwT,OAAO2d,EAAIiC,GAGvBjC,IAAMuyS,EAIFC,EAAQhB,IACVgB,GAASF,EACTtyS,GAAK0rS,IAWP,MAAM+G,EAAUhwT,EACViwT,EAAUjwT,EAASsB,KAAK+S,IAAI07S,GAAS,EACrCG,EAAQxgT,EAAS,IAAM,EACvBygT,EAAQJ,EAAQ,EACR,IAAVA,EAEFl2R,EAAIA,EAAE5jB,IAAIy4S,GAAgBwB,EAAON,EAAYI,KAE7ClzS,EAAIA,EAAE7G,IAAIy4S,GAAgByB,EAAOP,EAAYK,IAEjD,CAMA,MAAO,CAAEnzS,IAAG+c,IACd,EAUAu2R,UAAAA,CAAWniK,EAAW2hK,EAAkBryS,GAA0B,IAAflY,EAAAnE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAS2O,EAAE48S,KAC5D,MAAM,QAAEqC,EAAO,WAAEC,GAAeF,GAAU5gK,EAAG7lJ,GACvCoX,EAAOpR,OAAO,GAAK6/I,EAAI,GACvB4hK,EAAY,GAAK5hK,EACjB6hK,EAAU1hT,OAAO6/I,GACvB,IAAK,IAAIv+I,EAAS,EAAGA,EAASo/S,EAASp/S,IAAU,CAC/C,MAAM1P,EAAS0P,EAASq/S,EACxB,GAAIxxS,IAAMyrS,GAAK,MAEf,IAAI+G,EAAQnwT,OAAO2d,EAAIiC,GASvB,GAPAjC,IAAMuyS,EAGFC,EAAQhB,IACVgB,GAASF,EACTtyS,GAAK0rS,IAEO,IAAV8G,EAAa,SACjB,IAAIM,EAAOT,EAAY5vT,EAASsB,KAAK+S,IAAI07S,GAAS,GAC9CA,EAAQ,IAAGM,EAAOA,EAAK1B,UAE3BtpT,EAAMA,EAAI4Q,IAAIo6S,EAChB,CACA,OAAOhrT,CACT,EAEAirT,cAAAA,CAAeriK,EAAW7oC,EAAM7oG,GAE9B,IAAImxB,EAAOyhR,GAAiB7nS,IAAI89F,GAKhC,OAJK13E,IACHA,EAAOt+B,KAAKugT,iBAAiBvqM,EAAG6oC,GACtB,IAANA,GAASkhK,GAAiB1hS,IAAI23F,EAAG7oG,EAAUmxB,KAE1CA,CACT,EAEA6iR,UAAAA,CAAWnrM,EAAM7nG,EAAWhB,GAC1B,MAAM0xI,EAAIohK,GAAKjqM,GACf,OAAOh2G,KAAKkgT,KAAKrhK,EAAG7+I,KAAKkhT,eAAeriK,EAAG7oC,EAAG7oG,GAAYgB,EAC5D,EAEAizS,gBAAAA,CAAiBprM,EAAM7nG,EAAWhB,EAAsB8J,GACtD,MAAM4nI,EAAIohK,GAAKjqM,GACf,OAAU,IAAN6oC,EAAgB7+I,KAAKqgT,aAAarqM,EAAG7nG,EAAG8I,GACrCjX,KAAKghT,WAAWniK,EAAG7+I,KAAKkhT,eAAeriK,EAAG7oC,EAAG7oG,GAAYgB,EAAG8I,EACrE,EAMAoqS,aAAAA,CAAcrrM,EAAM6oC,GAClB2gK,GAAU3gK,EAAG7lJ,GACbgnT,GAAiB3hS,IAAI23F,EAAG6oC,GACxBkhK,GAAiBllL,OAAO7kB,EAC1B,EAEJ,CAYM,SAAUsrM,GACd7gT,EACA8gT,EACA7xQ,EACAowQ,GAUA,GAFAF,GAAkBlwQ,EAAQjvC,GAC1Bo/S,GAAmBC,EAASyB,GACxB7xQ,EAAOv/C,SAAW2vT,EAAQ3vT,OAC5B,MAAM,IAAIwB,MAAM,uDAClB,MAAM6vT,EAAO/gT,EAAE48S,KACTsD,EAAQxF,GAAOn8S,OAAO0wC,EAAOv/C,SAC7BwvT,EAAagB,EAAQ,GAAKA,EAAQ,EAAIA,EAAQ,EAAIA,EAAQ,EAAIA,EAAQ,EAAI,EAC1ExC,GAAQ,GAAKwB,GAAc,EAC3B8B,EAAU,IAAI1rT,MAAMooT,EAAO,GAAG9hT,KAAKmlT,GAEzC,IAAI/nT,EAAM+nT,EACV,IAAK,IAAIjsT,EAFQrD,KAAKC,OAAOovT,EAAOvD,KAAO,GAAK2B,GAAcA,EAEvCpqT,GAAK,EAAGA,GAAKoqT,EAAY,CAC9C8B,EAAQplT,KAAKmlT,GACb,IAAK,IAAIzmT,EAAI,EAAGA,EAAI+kT,EAAQ3vT,OAAQ4K,IAAK,CACvC,MAAM2mT,EAAS5B,EAAQ/kT,GACjB4lT,EAAQnwT,OAAQkxT,GAAU1iT,OAAOzJ,GAAMyJ,OAAOm/S,IACpDsD,EAAQd,GAASc,EAAQd,GAAO95S,IAAI6oC,EAAO30C,GAC7C,CACA,IAAI4mT,EAAOH,EAEX,IAAK,IAAIzmT,EAAI0mT,EAAQtxT,OAAS,EAAGyxT,EAAOJ,EAAMzmT,EAAI,EAAGA,IACnD6mT,EAAOA,EAAK/6S,IAAI46S,EAAQ1mT,IACxB4mT,EAAOA,EAAK96S,IAAI+6S,GAGlB,GADAnoT,EAAMA,EAAIoN,IAAI86S,GACJ,IAANpsT,EAAS,IAAK,IAAIwF,EAAI,EAAGA,EAAI4kT,EAAY5kT,IAAKtB,EAAMA,EAAI6mT,QAC9D,CACA,OAAO7mT,CACT,CAmGM,SAAUooT,GACdC,GAyBA,ODlLI,SAA2B7jS,GAC/B,MAMMs2J,EAAOipI,GAAa9nT,QAAO,CAACqoB,EAAK3e,KACrC2e,EAAI3e,GAAO,WACJ2e,IARO,CACd+/R,MAAO,SACPK,KAAM,SACNF,MAAO,gBACPD,KAAM,kBAMD9B,GAAej+R,EAAOs2J,EAC/B,CCuJEwtI,CAAcD,EAAM7F,IACpBC,GACE4F,EACA,CACE3zS,EAAG,SACHgC,EAAG,SACH6xS,GAAI,QACJC,GAAI,SAEN,CACEvE,WAAY,gBACZE,YAAa,kBAIV5sT,OAAO09C,OAAO,IAChB+uQ,GAAQqE,EAAM3zS,EAAG2zS,EAAMpE,eACvBoE,EACEp0S,EAAGo0S,EAAM7F,GAAG6B,OAErB,CCnbA,MAAMlE,GAAM56S,OAAO,GAAI66S,GAAM76S,OAAO,GAAI86S,GAAM96S,OAAO,GAAI09S,GAAM19S,OAAO,GAkBhEkjT,GAAiB,CAAEC,QAAQ,GAsF3B,SAAUC,GAAeC,GAC7B,MAAMC,EArFR,SAAsBR,GACpB,MAAMvtI,EAAOstI,GAAcC,GAiB3B,OAhBAtpC,GACEspC,EACA,CACEx6I,KAAM,WACNzjK,EAAG,SACH4U,EAAG,SACHq6E,YAAa,YAEf,CACEyvN,kBAAmB,WACnBphH,OAAQ,WACRqhH,QAAS,WACTC,WAAY,aAITzxT,OAAO09C,OAAO,IAAK6lI,GAC5B,CAkEgBmuI,CAAaL,IACrB,GACJpG,EACA9tS,EAAGw0S,EACHC,QAASA,EACTt7I,KAAMu7I,EAAK,YACX/vN,EAAW,YACX8qN,EACAztS,EAAG2yS,GACDR,EAKEnE,EAAOrE,IAAQ96S,OAAqB,EAAd4+S,GAAmB/D,GACzCkJ,EAAO9G,EAAGhrT,OACV+xT,EAAKnF,GAAMyE,EAAMn0S,EAAGm0S,EAAM5E,YAG1B8E,EACJF,EAAME,SAAO,EACX3qS,EAAWliB,KACX,IACE,MAAO,CAAEm3R,SAAS,EAAMl0R,MAAOqjT,EAAG3mS,KAAKuC,EAAIokS,EAAGzkS,IAAI7hB,IACpD,CAAE,MAAOQ,IACP,MAAO,CAAE22R,SAAS,EAAOl0R,MAAOghT,GAClC,CACD,GACG2I,EAAoBD,EAAMC,mBAAqB,CAAEr9R,GAAsBA,GACvEi8K,EACJmhH,EAAMnhH,QAAM,EACVjhL,EAAkB/L,EAAiB8uS,KAEnC,GADAlJ,GAAM,SAAUkJ,GACZ9uS,EAAIhkB,QAAU8yT,EAAQ,MAAM,IAAItxT,MAAM,uCAC1C,OAAOuuB,CACR,GAGH,SAASgjS,EAAY7lO,EAAelvE,GAClCqqQ,GAAY,cAAgBn7L,EAAOlvE,EAAGyrS,GAAKuE,EAC7C,CAEA,SAASgF,EAAYjsP,GACnB,KAAMA,aAAiBksP,GAAQ,MAAM,IAAIzxT,MAAM,yBACjD,CAGA,MAAM0xT,EAAe/G,IAAS,CAAC5uS,EAAU41S,KACvC,MAAQC,GAAIvoT,EAAGwoT,GAAIl3S,EAAGm3S,GAAIlsS,GAAM7J,EAC1B0wS,EAAM1wS,EAAE0wS,MACJ,MAANkF,IAAYA,EAAKlF,EAAM1B,GAAOT,EAAGzkS,IAAID,IACzC,MAAMoiC,EAAKopQ,EAAK/nT,EAAIsoT,GACd1pQ,EAAKmpQ,EAAKz2S,EAAIg3S,GACdI,EAAKX,EAAKxrS,EAAI+rS,GACpB,GAAIlF,EAAK,MAAO,CAAEpjT,EAAG4+S,GAAKttS,EAAGutS,IAC7B,GAAI6J,IAAO7J,GAAK,MAAM,IAAIloT,MAAM,oBAChC,MAAO,CAAEqJ,EAAG2+C,EAAIrtC,EAAGstC,EAAI,IAEnB+pQ,EAAkBrH,IAAU5uS,IAChC,MAAM,EAAE7J,EAAC,EAAE4U,GAAM6pS,EACjB,GAAI50S,EAAE0wS,MAAO,MAAM,IAAIzsT,MAAM,mBAG7B,MAAQ4xT,GAAI9jK,EAAG+jK,GAAIxiK,EAAGyiK,GAAIxiK,EAAGo3H,GAAIl6H,GAAMzwI,EACjCk2S,EAAKb,EAAKtjK,EAAIA,GACdokK,EAAKd,EAAK/hK,EAAIA,GACd8iK,EAAKf,EAAK9hK,EAAIA,GACd8iK,EAAKhB,EAAKe,EAAKA,GACfE,EAAMjB,EAAKa,EAAK//S,GAGtB,GAFak/S,EAAKe,EAAKf,EAAKiB,EAAMH,MACpBd,EAAKgB,EAAKhB,EAAKtqS,EAAIsqS,EAAKa,EAAKC,KACvB,MAAM,IAAIlyT,MAAM,yCAIpC,GAFWoxT,EAAKtjK,EAAIuB,KACT+hK,EAAK9hK,EAAI9C,GACL,MAAM,IAAIxsJ,MAAM,yCAC/B,OAAO,CAAI,IAKb,MAAMyxT,EAIJ/yT,WAAAA,CACWkzT,EACAC,EACAC,EACAprC,GAHA,KAAAkrC,GAAAA,EACA,KAAAC,GAAAA,EACA,KAAAC,GAAAA,EACA,KAAAprC,GAAAA,EAET6qC,EAAY,IAAKK,GACjBL,EAAY,IAAKM,GACjBN,EAAY,IAAKO,GACjBP,EAAY,IAAK7qC,GACjBrnR,OAAO09C,OAAO1uC,KAChB,CAEA,KAAIhF,GACF,OAAOgF,KAAKikT,WAAWjpT,CACzB,CACA,KAAIsR,GACF,OAAOtM,KAAKikT,WAAW33S,CACzB,CAEA,iBAAO43S,CAAWx2S,GAChB,GAAIA,aAAa01S,EAAO,MAAM,IAAIzxT,MAAM,8BACxC,MAAM,EAAEqJ,EAAC,EAAEsR,GAAMoB,GAAK,CAAC,EAGvB,OAFAw1S,EAAY,IAAKloT,GACjBkoT,EAAY,IAAK52S,GACV,IAAI82S,EAAMpoT,EAAGsR,EAAGutS,GAAKkJ,EAAK/nT,EAAIsR,GACvC,CACA,iBAAO63S,CAAWz0Q,GAChB,MAAM00Q,EAAQnI,EAAG2C,YAAYlvQ,EAAO3xB,KAAKrQ,GAAMA,EAAE+1S,MACjD,OAAO/zQ,EAAO3xB,KAAI,CAACrQ,EAAGnY,IAAMmY,EAAEu2S,SAASG,EAAM7uT,MAAKwoB,IAAIqlS,EAAMc,WAC9D,CAEA,UAAOG,CAAI30Q,EAAiBowQ,GAC1B,OAAOwB,GAAU8B,EAAOJ,EAAItzQ,EAAQowQ,EACtC,CAGAwE,cAAAA,CAAe3E,GACb4E,EAAKlD,cAAcrhT,KAAM2/S,EAC3B,CAGA6E,cAAAA,GACEb,EAAgB3jT,KAClB,CAGAwkB,MAAAA,CAAO0yC,GACLisP,EAAYjsP,GACZ,MAAQqsP,GAAIkB,EAAIjB,GAAIkB,EAAIjB,GAAIkB,GAAO3kT,MAC3BujT,GAAIK,EAAIJ,GAAIK,EAAIJ,GAAIK,GAAO5sP,EAC7B0tP,EAAO7B,EAAK0B,EAAKX,GACjBe,EAAO9B,EAAKa,EAAKe,GACjBG,EAAO/B,EAAK2B,EAAKZ,GACjBiB,EAAOhC,EAAKc,EAAKc,GACvB,OAAOC,IAASC,GAAQC,IAASC,CACnC,CAEA3G,GAAAA,GACE,OAAOp+S,KAAKwkB,OAAO4+R,EAAM/F,KAC3B,CAEAkC,MAAAA,GAEE,OAAO,IAAI6D,EAAML,GAAM/iT,KAAKujT,IAAKvjT,KAAKwjT,GAAIxjT,KAAKyjT,GAAIV,GAAM/iT,KAAKq4Q,IAChE,CAKAioC,MAAAA,GACE,MAAM,EAAEz8S,GAAMy+S,GACNiB,GAAIkB,EAAIjB,GAAIkB,EAAIjB,GAAIkB,GAAO3kT,KAC7BmS,EAAI4wS,EAAK0B,EAAKA,GACdryS,EAAI2wS,EAAK2B,EAAKA,GACdryS,EAAI0wS,EAAKjJ,GAAMiJ,EAAK4B,EAAKA,IACzBryS,EAAIywS,EAAKl/S,EAAIsO,GACb6yS,EAAOP,EAAKC,EACZr8R,EAAI06R,EAAKA,EAAKiC,EAAOA,GAAQ7yS,EAAIC,GACjC+5H,EAAI75H,EAAIF,EACRq3H,EAAI0C,EAAI95H,EACRu/F,EAAIt/F,EAAIF,EACR6yS,EAAKlC,EAAK16R,EAAIohH,GACdy7K,EAAKnC,EAAK52K,EAAIv6B,GACduzM,EAAKpC,EAAK16R,EAAIupF,GACdwzM,EAAKrC,EAAKt5K,EAAI0C,GACpB,OAAO,IAAIi3K,EAAM6B,EAAIC,EAAIE,EAAID,EAC/B,CAKAt+S,GAAAA,CAAIqwD,GACFisP,EAAYjsP,GACZ,MAAM,EAAErzD,EAAC,EAAE4U,GAAM6pS,GACTiB,GAAIkB,EAAIjB,GAAIkB,EAAIjB,GAAIkB,EAAItsC,GAAIgtC,GAAOrlT,MACnCujT,GAAIK,EAAIJ,GAAIK,EAAIJ,GAAIK,EAAIzrC,GAAIitC,GAAOpuP,EAK3C,GAAIrzD,IAAM7E,QAAQ,GAAI,CACpB,MAAMmT,EAAI4wS,GAAM2B,EAAKD,IAAOZ,EAAKD,IAC3BxxS,EAAI2wS,GAAM2B,EAAKD,IAAOZ,EAAKD,IAC3Bn6K,EAAIs5K,EAAK3wS,EAAID,GACnB,GAAIs3H,IAAMmwK,GAAK,OAAO55S,KAAKsgT,SAC3B,MAAMjuS,EAAI0wS,EAAK4B,EAAK7K,GAAMwL,GACpBhzS,EAAIywS,EAAKsC,EAAKvL,GAAMgK,GACpBz7R,EAAI/V,EAAID,EACR85H,EAAI/5H,EAAID,EACRy/F,EAAIt/F,EAAID,EACR4yS,EAAKlC,EAAK16R,EAAIohH,GACdy7K,EAAKnC,EAAK52K,EAAIv6B,GACduzM,EAAKpC,EAAK16R,EAAIupF,GACdwzM,EAAKrC,EAAKt5K,EAAI0C,GACpB,OAAO,IAAIi3K,EAAM6B,EAAIC,EAAIE,EAAID,EAC/B,CACA,MAAMhzS,EAAI4wS,EAAK0B,EAAKb,GACdxxS,EAAI2wS,EAAK2B,EAAKb,GACdxxS,EAAI0wS,EAAKsC,EAAK5sS,EAAI6sS,GAClBhzS,EAAIywS,EAAK4B,EAAKb,GACdz7R,EAAI06R,GAAM0B,EAAKC,IAAOd,EAAKC,GAAM1xS,EAAIC,GACrCq3H,EAAIn3H,EAAID,EACR85H,EAAI75H,EAAID,EACRu/F,EAAImxM,EAAK3wS,EAAIvO,EAAIsO,GACjB8yS,EAAKlC,EAAK16R,EAAIohH,GACdy7K,EAAKnC,EAAK52K,EAAIv6B,GACduzM,EAAKpC,EAAK16R,EAAIupF,GACdwzM,EAAKrC,EAAKt5K,EAAI0C,GAEpB,OAAO,IAAIi3K,EAAM6B,EAAIC,EAAIE,EAAID,EAC/B,CAEAI,QAAAA,CAASruP,GACP,OAAOl3D,KAAK6G,IAAIqwD,EAAMqoP,SACxB,CAEQW,IAAAA,CAAK/xS,GACX,OAAOo2S,EAAKpD,WAAWnhT,KAAMmO,EAAGi1S,EAAMe,WACxC,CAGAz+P,QAAAA,CAASg8P,GACP,MAAMvzS,EAAIuzS,EACVlpC,GAAY,SAAUrqQ,EAAG0rS,GAAK8I,GAC9B,MAAM,EAAEj1S,EAAC,EAAE+c,GAAMzqB,KAAKkgT,KAAK/xS,GAC3B,OAAOi1S,EAAMe,WAAW,CAACz2S,EAAG+c,IAAI,EAClC,CAOA+6R,cAAAA,CAAe9D,GAAgC,IAAhBzrT,EAAGnE,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsxT,EAAM/F,KACzC,MAAMlvS,EAAIuzS,EAEV,OADAlpC,GAAY,SAAUrqQ,EAAGyrS,GAAK+I,GAC1Bx0S,IAAMyrS,GAAYxjM,EAClBp2G,KAAKo+S,OAASjwS,IAAM0rS,GAAY75S,KAC7BukT,EAAKnD,iBAAiBphT,KAAMmO,EAAGi1S,EAAMe,WAAYluT,EAC1D,CAMAwvT,YAAAA,GACE,OAAOzlT,KAAKwlT,eAAe1C,GAAU1E,KACvC,CAIAsH,aAAAA,GACE,OAAOnB,EAAKlE,aAAargT,KAAM2iT,GAAavE,KAC9C,CAIA6F,QAAAA,CAASX,GACP,OAAOD,EAAarjT,KAAMsjT,EAC5B,CAEAqC,aAAAA,GACE,MAAQx1S,EAAG2yS,GAAaR,EACxB,OAAIQ,IAAajJ,GAAY75S,KACtBA,KAAKwlT,eAAe1C,EAC7B,CAIA,cAAO8C,CAAQ7mT,GAAwB,IAAdojT,EAAMrwT,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAC7B,MAAM,EAAE2mB,EAAC,EAAE5U,GAAMy+S,EACX1kT,EAAMq+S,EAAGgC,MACfl/S,EAAM87S,GAAY,WAAY97S,EAAKnB,GACnCm8S,GAAM,SAAUoI,GAChB,MAAM0D,EAAS9mT,EAAIhF,QACb+rT,EAAW/mT,EAAInB,EAAM,GAC3BioT,EAAOjoT,EAAM,IAAgB,IAAXkoT,EAClB,MAAMx5S,EAAIksQ,GAAmBqtC,GAMvB5kT,EAAMkhT,EAAShE,EAAOlC,EAAG6B,MAC/BtlC,GAAY,aAAclsQ,EAAGstS,GAAK34S,GAIlC,MAAMuxC,EAAKuwQ,EAAKz2S,EAAIA,GACduL,EAAIkrS,EAAKvwQ,EAAKqnQ,IACdlkT,EAAIotT,EAAKtqS,EAAI+5B,EAAK3uC,GACxB,IAAI,QAAEipR,EAASl0R,MAAOoC,GAAMwnT,EAAQ3qS,EAAGliB,GACvC,IAAKm3R,EAAS,MAAM,IAAIn7R,MAAM,uCAC9B,MAAMo0T,GAAU/qT,EAAI6+S,MAASA,GACvBmM,EAAsC,KAAV,IAAXF,GACvB,IAAK3D,GAAUnnT,IAAM4+S,IAAOoM,EAE1B,MAAM,IAAIr0T,MAAM,gCAElB,OADIq0T,IAAkBD,IAAQ/qT,EAAI+nT,GAAM/nT,IACjCooT,EAAMc,WAAW,CAAElpT,IAAGsR,KAC/B,CACA,qBAAO25S,CAAeC,GACpB,OAAOC,EAAqBD,GAAS7yQ,KACvC,CACA+yQ,UAAAA,GACE,MAAM,EAAEprT,EAAC,EAAEsR,GAAMtM,KAAKikT,WAChB/+R,EAAQszP,GAAmBlsQ,EAAG2vS,EAAGgC,OAEvC,OADA/4R,EAAMA,EAAM/0B,OAAS,IAAM6K,EAAI6+S,GAAM,IAAO,EACrC30R,CACT,CACAmhS,KAAAA,GACE,OAAO7tC,GAAcx4Q,KAAKomT,aAC5B,EA5OgBhD,EAAAhoT,KAAO,IAAIgoT,EAAMd,EAAMN,GAAIM,EAAML,GAAIpI,GAAKkJ,EAAKT,EAAMN,GAAKM,EAAML,KAChEmB,EAAA/F,KAAO,IAAI+F,EAAMxJ,GAAKC,GAAKA,GAAKD,IA6OlD,MAAQx+S,KAAM+wI,EAAGkxK,KAAMjnM,GAAMgtM,EACvBmB,EAAOrE,GAAKkD,EAAqB,EAAdxF,GAEzB,SAAS0I,EAAKziT,GACZ,OAAO3B,GAAI2B,EAAG8+S,EAChB,CAEA,SAAS4D,EAAQj/I,GACf,OAAOg/I,EAAK9tC,GAAmBlxG,GACjC,CAGA,SAAS6+I,EAAqB5tS,GAC5B,MAAM3a,EAAMq+S,EAAGgC,MACf1lS,EAAMsiS,GAAY,cAAetiS,EAAK3a,GAGtC,MAAM4oT,EAAS3L,GAAY,qBAAsBgI,EAAMtqS,GAAM,EAAI3a,GAC3D0jK,EAAOihJ,EAAkBiE,EAAOzsT,MAAM,EAAG6D,IACzCiqD,EAAS2+P,EAAOzsT,MAAM6D,EAAK,EAAIA,GAC/B8jT,EAAS6E,EAAQjlJ,GACjBjuH,EAAQ84F,EAAEzmF,SAASg8P,GACnB+E,EAAapzQ,EAAM+yQ,aACzB,MAAO,CAAE9kJ,OAAMz5G,SAAQ65P,SAAQruQ,QAAOozQ,aACxC,CAQA,SAASC,IAAyE,IAAtDhiO,EAAA5yF,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAe,IAAIlC,WAAY,QAAAmsB,EAAAjqB,UAAA3B,OAAKw2T,EAAkB,IAAA5wT,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAlB0qS,EAAkB1qS,EAAA,GAAAnqB,UAAAmqB,GAChF,MAAM5c,EAAMm5Q,MAAkBmuC,GAC9B,OAAOJ,EAAQ1D,EAAM1hH,EAAO9hM,EAAKw7S,GAAY,UAAWn2N,KAAYk+N,IACtE,CAgBA,MAAMgE,EAAkD1E,GAoCxD/1K,EAAEm4K,eAAe,GAEjB,MAAMjtH,EAAQ,CACZ8uH,uBAEAU,iBAAkBA,IAAkB/zN,EAAYmpN,EAAGgC,OAQnD6I,UAAAA,GAA2D,IAAhDnH,EAAU7tT,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAAGuhD,EAAAvhD,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAsBsxT,EAAMhoT,KAGrD,OAFAi4C,EAAMixQ,eAAe3E,GACrBtsQ,EAAMqS,SAAS1mD,OAAO,IACfq0C,CACT,GAGF,MAAO,CACLivQ,QACAyE,aAlFF,SAAsBb,GACpB,OAAOC,EAAqBD,GAASO,UACvC,EAiFEO,KAxEF,SAAc3nT,EAAU6mT,GAA6C,IAA/Bl7R,EAAAl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAA6B,CAAC,EAClEuN,EAAMw7S,GAAY,UAAWx7S,GACzBujT,IAASvjT,EAAMujT,EAAQvjT,IAC3B,MAAM,OAAEwoD,EAAM,OAAE65P,EAAM,WAAE+E,GAAeN,EAAqBD,GACtDtlT,EAAI8lT,EAAmB17R,EAAQ05D,QAAS78B,EAAQxoD,GAChDi3G,EAAI61B,EAAEzmF,SAAS9kD,GAAGwlT,aAElBh5S,EAAIk5S,EAAK1lT,EADL8lT,EAAmB17R,EAAQ05D,QAAS4xB,EAAGmwM,EAAYpnT,GACtCqiT,GAGvB,OAFAlpC,GAAY,cAAeprQ,EAAGwsS,GAAK+I,GAE5B9H,GAAY,SADPriC,GAAeliK,EAAGkiK,GAAmBprQ,EAAG6uS,EAAGgC,QACV,EAAXhC,EAAGgC,MACvC,EA8DEvqB,OAtDF,SAAgBuzB,EAAU5nT,EAAU6nT,GAAoC,IAApBl8R,EAAOl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG80T,EAC5D,MAAM,QAAEliO,EAAO,OAAEy9N,GAAWn3R,EACtBptB,EAAMq+S,EAAGgC,MACfgJ,EAAMpM,GAAY,YAAaoM,EAAK,EAAIrpT,GACxCyB,EAAMw7S,GAAY,UAAWx7S,GAC7B6nT,EAAYrM,GAAY,YAAaqM,EAAWtpT,QACjC7L,IAAXowT,GAAsBpI,GAAM,SAAUoI,GACtCS,IAASvjT,EAAMujT,EAAQvjT,IAE3B,MAAM+N,EAAIorQ,GAAmByuC,EAAIltT,MAAM6D,EAAK,EAAIA,IAChD,IAAIuU,EAAGmkG,EAAG6wM,EACV,IAIEh1S,EAAIixS,EAAMwC,QAAQsB,EAAW/E,GAC7B7rM,EAAI8sM,EAAMwC,QAAQqB,EAAIltT,MAAM,EAAG6D,GAAMukT,GACrCgF,EAAKh7K,EAAEq5K,eAAep4S,EACxB,CAAE,MAAOuQ,GACP,OAAO,CACT,CACA,IAAKwkS,GAAUhwS,EAAEszS,eAAgB,OAAO,EAExC,MAAM3hT,EAAI4iT,EAAmBhiO,EAAS4xB,EAAE8vM,aAAcj0S,EAAEi0S,aAAc/mT,GAItE,OAHYi3G,EAAEzvG,IAAIsL,EAAEqzS,eAAe1hT,IAGxByhT,SAAS4B,GAAIxB,gBAAgBnhS,OAAO4+R,EAAM/F,KACvD,EA2BE+J,cAAehE,EACf/rH,QAEJ,CCphBA,MAAMgwH,GAAYroT,OAChB,iFAGIsoT,GAAkCtoT,OACtC,iFAIqB66S,IAAX76S,OAAO,GAAUA,OAAO,IAAI86S,GAAM96S,OAAO,GAE/Cy9S,IAFyDz9S,OAAO,GAE1DA,OAAO,IAAI09S,GAAM19S,OAAO,GAEpC,SAASuoT,GAAoBvsT,GAE3B,MAAMwsT,EAAOxoT,OAAO,IAAKyoT,EAAOzoT,OAAO,IAAK0oT,EAAO1oT,OAAO,IAAK2oT,EAAO3oT,OAAO,IACvEg3G,EAAIqxM,GAEJ/9S,EADMtO,EAAIA,EAAKg7G,EACJh7G,EAAKg7G,EAChBpsG,EAAMgzS,GAAKtzS,EAAIwwS,GAAK9jM,GAAK1sG,EAAM0sG,EAC/BjsG,EAAM6yS,GAAKhzS,EAAIiwS,GAAK7jM,GAAKh7G,EAAKg7G,EAC9B4xM,EAAOhL,GAAK7yS,EAAI0yS,GAAKzmM,GAAKjsG,EAAMisG,EAChC6xM,EAAOjL,GAAKgL,EAAKJ,EAAMxxM,GAAK4xM,EAAO5xM,EACnC8xM,EAAOlL,GAAKiL,EAAKJ,EAAMzxM,GAAK6xM,EAAO7xM,EACnC+xM,EAAOnL,GAAKkL,EAAKJ,EAAM1xM,GAAK8xM,EAAO9xM,EACnCgyM,EAAQpL,GAAKmL,EAAKJ,EAAM3xM,GAAK+xM,EAAO/xM,EACpCiyM,EAAQrL,GAAKoL,EAAML,EAAM3xM,GAAK+xM,EAAO/xM,EACrCkyM,EAAQtL,GAAKqL,EAAMT,EAAMxxM,GAAK4xM,EAAO5xM,EAG3C,MAAO,CAAEmyM,UAFUvL,GAAKsL,EAAMpO,GAAK9jM,GAAKh7G,EAAKg7G,EAEzB1sG,KACtB,CAEA,SAASi5S,GAAkBr9R,GAQzB,OALAA,EAAM,IAAM,IAEZA,EAAM,KAAO,IAEbA,EAAM,KAAO,GACNA,CACT,CAGA,SAASs9R,GAAQ3qS,EAAWliB,GAC1B,MAAMqgH,EAAIqxM,GACJ73P,EAAKttD,GAAIvM,EAAIA,EAAIA,EAAGqgH,GACpBoyM,EAAKlmT,GAAIstD,EAAKA,EAAK75D,EAAGqgH,GAG5B,IAAIh7G,EAAIkH,GAAI2V,EAAI23C,EADJ+3P,GAAoB1vS,EAAIuwS,GAAID,UACdnyM,GAC1B,MAAMqyM,EAAMnmT,GAAIvM,EAAIqF,EAAIA,EAAGg7G,GACrBsyM,EAAQttT,EACRutT,EAAQrmT,GAAIlH,EAAIssT,GAAiBtxM,GACjCwyM,EAAWH,IAAQxwS,EACnB4wS,EAAWJ,IAAQnmT,IAAK2V,EAAGm+F,GAC3B0yM,EAASL,IAAQnmT,IAAK2V,EAAIyvS,GAAiBtxM,GAIjD,OAHIwyM,IAAUxtT,EAAIstT,IACdG,GAAYC,KAAQ1tT,EAAIutT,GACxBhL,GAAaviT,EAAGg7G,KAAIh7G,EAAIkH,IAAKlH,EAAGg7G,IAC7B,CAAE82K,QAAS07B,GAAYC,EAAU7vT,MAAOoC,EACjD,CAGO,MAWDihT,GAAqB,KAAO4B,GAAMwJ,QAAWt1T,GAAW,GAAnC,GAErB42T,GAAkC,MAAC,CAGrC9kT,EAAG7E,QAAQ,GAGXyZ,EAAGzZ,OAAO,iFAEVi9S,MAGA9tS,EAAGnP,OAAO,gFAEVmR,EAAGusS,GAEHsF,GAAIhjT,OAAO,iFACXijT,GAAIjjT,OAAO,iFACXsoK,KAAMqyI,GACN7mN,YAAW,GACXyvN,qBAIAC,aAvBoC,GAqC3BoG,GAAmC,KAAOxG,GAAeuG,IAAtB,2HClIhD,MAAME,GAA2B,IAAIxU,YAAY,CAC/C,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,aAKhFyU,GAA4B,IAAIzU,YAAY,CAChD,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,aAOhF0U,GAA2B,IAAI1U,YAAY,IAC3C,MAAO2U,WAAe9T,GAY1B7kT,WAAAA,GACE6pB,MAAM,GAAI,GAAI,GAAG,GAVT,KAAA/H,EAA2B,EAAf22S,GAAU,GACtB,KAAA12S,EAA2B,EAAf02S,GAAU,GACtB,KAAAz2S,EAA2B,EAAfy2S,GAAU,GACtB,KAAAx2S,EAA2B,EAAfw2S,GAAU,GACtB,KAAAzgS,EAA2B,EAAfygS,GAAU,GACtB,KAAAr/K,EAA2B,EAAfq/K,GAAU,GACtB,KAAA38K,EAA2B,EAAf28K,GAAU,GACtB,KAAAl3M,EAA2B,EAAfk3M,GAAU,EAIhC,CACU5wS,GAAAA,GACR,MAAM,EAAE/F,EAAC,EAAEC,EAAC,EAAEC,EAAC,EAAEC,EAAC,EAAE+V,EAAC,EAAEohH,EAAC,EAAE0C,EAAC,EAAEv6B,GAAM5xG,KACnC,MAAO,CAACmS,EAAGC,EAAGC,EAAGC,EAAG+V,EAAGohH,EAAG0C,EAAGv6B,EAC/B,CAEUvzF,GAAAA,CACRlM,EAAWC,EAAWC,EAAWC,EAAW+V,EAAWohH,EAAW0C,EAAWv6B,GAE7E5xG,KAAKmS,EAAQ,EAAJA,EACTnS,KAAKoS,EAAQ,EAAJA,EACTpS,KAAKqS,EAAQ,EAAJA,EACTrS,KAAKsS,EAAQ,EAAJA,EACTtS,KAAKqoB,EAAQ,EAAJA,EACTroB,KAAKypI,EAAQ,EAAJA,EACTzpI,KAAKmsI,EAAQ,EAAJA,EACTnsI,KAAK4xG,EAAQ,EAAJA,CACX,CACU9vE,OAAAA,CAAQ89D,EAAgBhvG,GAEhC,IAAK,IAAI2E,EAAI,EAAGA,EAAI,GAAIA,IAAK3E,GAAU,EAAGm4T,GAASxzT,GAAKqqG,EAAKw4M,UAAUxnT,GAAQ,GAC/E,IAAK,IAAI2E,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC5B,MAAM0zT,EAAMF,GAASxzT,EAAI,IACnB2zT,EAAKH,GAASxzT,EAAI,GAClBmrD,EAAK0zP,GAAK6U,EAAK,GAAK7U,GAAK6U,EAAK,IAAOA,IAAQ,EAC7ChuQ,EAAKm5P,GAAK8U,EAAI,IAAM9U,GAAK8U,EAAI,IAAOA,IAAO,GACjDH,GAASxzT,GAAM0lD,EAAK8tQ,GAASxzT,EAAI,GAAKmrD,EAAKqoQ,GAASxzT,EAAI,IAAO,CACjE,CAEA,IAAI,EAAE4c,EAAC,EAAEC,EAAC,EAAEC,EAAC,EAAEC,EAAC,EAAE+V,EAAC,EAAEohH,EAAC,EAAE0C,EAAC,EAAEv6B,GAAM5xG,KACjC,IAAK,IAAIzK,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,MACM8vT,EAAMzzM,GADGwiM,GAAK/rR,EAAG,GAAK+rR,GAAK/rR,EAAG,IAAM+rR,GAAK/rR,EAAG,KACzB2sR,GAAI3sR,EAAGohH,EAAG0C,GAAK08K,GAAStzT,GAAKwzT,GAASxzT,GAAM,EAE/D+vT,GADSlR,GAAKjiS,EAAG,GAAKiiS,GAAKjiS,EAAG,IAAMiiS,GAAKjiS,EAAG,KAC7B8iS,GAAI9iS,EAAGC,EAAGC,GAAM,EACrCu/F,EAAIu6B,EACJA,EAAI1C,EACJA,EAAIphH,EACJA,EAAK/V,EAAI+yS,EAAM,EACf/yS,EAAID,EACJA,EAAID,EACJA,EAAID,EACJA,EAAKkzS,EAAKC,EAAM,CAClB,CAEAnzS,EAAKA,EAAInS,KAAKmS,EAAK,EACnBC,EAAKA,EAAIpS,KAAKoS,EAAK,EACnBC,EAAKA,EAAIrS,KAAKqS,EAAK,EACnBC,EAAKA,EAAItS,KAAKsS,EAAK,EACnB+V,EAAKA,EAAIroB,KAAKqoB,EAAK,EACnBohH,EAAKA,EAAIzpI,KAAKypI,EAAK,EACnB0C,EAAKA,EAAInsI,KAAKmsI,EAAK,EACnBv6B,EAAKA,EAAI5xG,KAAK4xG,EAAK,EACnB5xG,KAAKqe,IAAIlM,EAAGC,EAAGC,EAAGC,EAAG+V,EAAGohH,EAAG0C,EAAGv6B,EAChC,CACU0jM,UAAAA,GACRyT,GAAS1sT,KAAK,EAChB,CACAszB,OAAAA,GACE3vB,KAAKqe,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9Bre,KAAK/P,OAAOoM,KAAK,EACnB,EAsBK,MAAM8sT,GAAgCxU,IAAgB,IAAM,IAAIqU,gGC7GjE,MAAOI,WAAoBv5T,UAU/BQ,WAAAA,CAAYqtR,EAAkB2rC,GAC5B,IAAIC,EACJ,MAAM,QAAErvS,EAAO,YAAEsvS,KAAgB17R,GAAS6vP,GACpC,KAAE/gP,GAAS+gP,EACXr+Q,EACY,IAAhBs9B,EAAKxsC,OAAe8pB,EAAU,YAAY0iB,EAAKr+B,KAAK,WAAW2b,IACjE,MAAMsvS,GAAelqT,GACF,MAAfkqT,IAAqB,KAAK9xH,MAAQp4L,GACtCrO,OAAOG,OAAO,KAAM08B,GACpB,KAAKt8B,KAAO,KAAKlB,YAAYkB,KAC7B,KAAK83T,SAAW,IACNC,IAAAA,EAAW,CAAC5rC,KAAY2rC,OC9BhC,SAAUj2H,GAASp4L,GACvB,MAAoB,kBAANA,GAAuB,MAALA,CAClC,CAMM,SAAUwuT,GAAiBxuT,GAC/B,OAAOo4L,GAASp4L,KAAOjF,MAAMC,QAAQgF,EACvC,CAmBM,SAAUyuT,GAAM7wT,GACpB,MAAqB,kBAAVA,EACFA,EAAMsB,WAGS,kBAAVtB,EAAqBkzB,KAAKC,UAAUnzB,GAAS,GAAGA,GAChE,CAgBM,SAAU8wT,GACd3wS,EACA2rE,EACAilO,EACA/wT,GAEA,IAAe,IAAXmgB,EACF,QACoB,IAAXA,EACTA,EAAS,GACkB,kBAAXA,IAChBA,EAAS,CAAEkB,QAASlB,IAGtB,MAAM,KAAE4jB,EAAI,OAAE6vI,GAAW9nF,GACnB,KAAElnE,GAASmsS,GACX,WACJC,EAAU,QACV3vS,EAAU,8BAA8BuD,MACtCosS,EAAa,sBAAsBA,MAAiB,uBACjCH,GAAM7wT,QACzBmgB,EAEJ,MAAO,CACLngB,QACA4kB,OACAosS,aACArxS,IAAKokB,EAAKA,EAAKxsC,OAAS,GACxBwsC,OACA6vI,YACGzzJ,EACHkB,UAEJ,CAMM,SAAW4vS,GACf9wS,EACA2rE,EACAilO,EACA/wT,IAtGF,SAAuBoC,GACrB,OAAOo4L,GAASp4L,IAAoC,oBAAvBA,EAAEyH,OAAOi1B,SACxC,EAsGOoyR,CAAW/wS,KACdA,EAAS,CAACA,IAGZ,IAAK,MAAMnY,KAAKmY,EAAQ,CACtB,MAAM2kQ,EAAUgsC,GAAU9oT,EAAG8jF,EAASilO,EAAQ/wT,GAE1C8kR,UACIA,EAET,CACH,CAOM,SAAWqsC,GACfnxT,EACA+wT,GAAoB,IACpB3+R,EAAAl5B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAMI,GAAE,mBAEN,MAAM,KAAE6qC,EAAO,GAAE,OAAE6vI,EAAS,CAAC5zK,GAAM,OAAEoxT,GAAS,EAAK,KAAE55S,GAAO,GAAU4a,EAChE7W,EAAe,CAAEwoB,OAAM6vI,SAAQp8J,QAEjC45S,IACFpxT,EAAQ+wT,EAAOM,QAAQrxT,EAAOub,IAGhC,IAAIotB,EAAgD,QAEpD,IAAK,MAAMm8O,KAAWisC,EAAOnhH,UAAU5vM,EAAOub,GAC5CupQ,EAAQ6rC,YAAcv+R,EAAQ/Q,QAC9BsnB,EAAS,iBACH,CAACm8O,OAAS3rR,GAGlB,IAAK,IAAK+R,EAAGnO,EAAGyX,KAAMu8S,EAAO3gK,QAAQpwJ,EAAOub,GAAM,CAChD,MAAM+1S,EAAKH,GAAIp0T,EAAGyX,EAAa,CAC7BuvB,UAAY5qC,IAAN+R,EAAkB64B,EAAO,IAAIA,EAAM74B,GACzC0oK,YAAcz6K,IAAN+R,EAAkB0oK,EAAS,IAAIA,EAAQ72K,GAC/Cq0T,SACA55S,OACA6J,QAAS+Q,EAAQ/Q,UAGnB,IAAK,MAAMtV,KAAKulT,EACVvlT,EAAE,IACJ48B,EAA4B,MAAnB58B,EAAE,GAAGilT,WAAqB,cAAgB,iBAC7C,CAACjlT,EAAE,QAAI5S,IACJi4T,IACTr0T,EAAIgP,EAAE,QAEI5S,IAAN+R,EACFlL,EAAQjD,EACCiD,aAAiBwlB,IAC1BxlB,EAAMylB,IAAIva,EAAGnO,GACJiD,aAAiBgzH,IAC1BhzH,EAAMiO,IAAIlR,GACDy9L,GAASx6L,UACR7G,IAAN4D,GAAmBmO,KAAKlL,KAAOA,EAAMkL,GAAKnO,GAIrD,CAED,GAAe,cAAX4rC,EACF,IAAK,MAAMm8O,KAAWisC,EAAOQ,QAAQvxT,EAAYub,GAC/CupQ,EAAQ6rC,YAAcv+R,EAAQ/Q,QAC9BsnB,EAAS,mBACH,CAACm8O,OAAS3rR,GAIL,UAAXwvC,SACI,MAACxvC,EAAW6G,GAEtB,CAzDQ,EAyDR,OC1LawxT,GAYX/5T,WAAAA,CAAYo8B,GAQV,MAAM,KACJjP,EAAI,OACJL,EAAM,UACNqrL,EAAS,QACT2hH,EAAO,QACPF,EAAWrxT,GAAmBA,EAAK,QACnCowJ,EAAU,YAAS,GACjBv8H,EAEJ,KAAKjP,KAAOA,EACZ,KAAKL,OAASA,EACd,KAAK6rI,QAAUA,EACf,KAAKihK,QAAUA,EAGb,KAAKzhH,UADHA,EACe,CAAC5vM,EAAO8rF,IAEhBmlO,GADQrhH,EAAU5vM,EAAO8rF,GACNA,EAAS,KAAM9rF,GAG1B,IAAM,GAIvB,KAAKuxT,QADHA,EACa,CAACvxT,EAAO8rF,IAEdmlO,GADQM,EAAQvxT,EAAO8rF,GACJA,EAAS,KAAM9rF,GAG5B,IAAM,GAQzBuG,MAAAA,CAAOvG,EAAgBqhB,GACrB,OAAO9a,GAAOvG,EAAO,KAAMqhB,GAO7BhpB,MAAAA,CAAO2H,EAAgBqhB,GACrB,OAAOhpB,GAAO2H,EAAO,KAAMqhB,GAO7BgnC,EAAAA,CAAGroD,GACD,OAAOqoD,GAAGroD,EAAO,MASnBwX,IAAAA,CAAKxX,EAAgBqhB,GACnB,gBAgEFrhB,EACA+wT,EACA1vS,GAEA,MAAMlB,EAASm8I,GAASt8J,EAAO+wT,EAAQ,CAAEK,QAAQ,EAAM55S,MAAM,EAAM6J,YAEnE,GAAIlB,EAAO,GACT,MAAMA,EAAO,GAEb,OAAOA,EAAO,EAElB,CA3EW3I,CAAKxX,EAAO,KAAMqhB,GAa3Bi7I,QAAAA,CACEt8J,GAOA,OAAOs8J,GAASt8J,EAAO,KANvB9G,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAII,cAUQqN,GACdvG,EACA+wT,EACA1vS,GAEA,MAAMlB,EAASm8I,GAASt8J,EAAO+wT,EAAQ,CAAE1vS,YAEzC,GAAIlB,EAAO,GACT,MAAMA,EAAO,EAEjB,UAMgB9nB,GACd2H,EACA+wT,EACA1vS,GAEA,MAAMlB,EAASm8I,GAASt8J,EAAO+wT,EAAQ,CAAEK,QAAQ,EAAM/vS,YAEvD,GAAIlB,EAAO,GACT,MAAMA,EAAO,GAEb,OAAOA,EAAO,EAElB,CAwBgB,SAAAkoC,GAASroD,EAAgB+wT,GAEvC,OADez0J,GAASt8J,EAAO+wT,GAChB,EACjB,CAOM,SAAUz0J,GACdt8J,EACA+wT,GAOA,MAAMU,EAASN,GAAInxT,EAAO+wT,EAN1B73T,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAII,IAGEw4T,EDzIF,SAA2BvzS,GAC/B,MAAM,KAAE+jG,EAAI,MAAEliH,GAAUme,EAAMG,OAC9B,OAAO4jG,OAAO/oH,EAAY6G,CAC5B,CCsIgB2xT,CAAcF,GAE5B,GAAIC,EAAM,GAAI,CACZ,MAAM3sS,EAAQ,IAAIyrS,GAAYkB,EAAM,IAAI,YACtC,IAAK,MAAM3lT,KAAK0lT,EACV1lT,EAAE,WACEA,EAAE,GAGd,IAEA,MAAO,CAACgZ,OAAO5rB,EAChB,CAEC,MAAO,MAACA,EADEu4T,EAAM,GAGpB,CC5IgB,SAAAthQ,GAAUz3D,EAAci3M,GACtC,OAAO,IAAI4hH,GAAO,CAAE5sS,KAAMjsB,EAAM4rB,OAAQ,KAAMqrL,aAChD,CCxCM,SAAUjtL,GAA6BsuG,GAC3C,OAAO,IAAIugM,GAAO,CAChB5sS,KAAM,QACNL,OAAQ0sG,EACR,QAACm/B,CAAQpwJ,GACP,GAAIixH,GAAW9zH,MAAMC,QAAQ4C,GAC3B,IAAK,MAAOrD,EAAGI,KAAMiD,EAAMowJ,eACnB,CAACzzJ,EAAGI,EAAGk0H,IAInBogM,QAAQrxT,GACC7C,MAAMC,QAAQ4C,GAASA,EAAMmB,QAAUnB,EAEhD4vM,UAAU5vM,GAEN7C,MAAMC,QAAQ4C,IACd,0CAA0C6wT,GAAM7wT,MAIxD,UAgBgB0wM,KACd,OAAOtgJ,GAAO,WAAYpwD,GACA,mBAAVA,GAElB,CAsEM,SAAUowI,GACdwhL,GAEA,OAAOxhQ,GAAO,YAAapwD,GAEvBA,aAAiB4xT,GACjB,gBAAgBA,EAAMj5T,kCAAkCk4T,GAAM7wT,MAGpE,CAmDM,SAAU6xT,GAAWC,GACzB,MAAMltO,EAAcisO,GAAMiB,GACpB/lT,SAAW+lT,EACjB,OAAO,IAAIN,GAAO,CAChB5sS,KAAM,UACNL,OACQ,WAANxY,GAAwB,WAANA,GAAwB,YAANA,EAAkB+lT,EAAW,KACnEliH,UAAU5vM,GAENA,IAAU8xT,GACV,0BAA0BltO,sBAAgCisO,GAAM7wT,MAIxE,UAwCgB+xT,KACd,OAAO3hQ,GAAO,SAAS,KAAM,GAC/B,CAMM,SAAU4hQ,GAAejB,GAC7B,OAAO,IAAIS,GAAO,IACbT,EACHnhH,UAAWA,CAAC5vM,EAAOub,IAAkB,OAAVvb,GAAkB+wT,EAAOnhH,UAAU5vM,EAAOub,GACrEg2S,QAASA,CAACvxT,EAAOub,IAAkB,OAAVvb,GAAkB+wT,EAAOQ,QAAQvxT,EAAOub,IAErE,UAMgBvU,KACd,OAAOopD,GAAO,UAAWpwD,GAEH,kBAAVA,IAAuByxB,MAAMzxB,IACrC,oCAAoC6wT,GAAM7wT,MAGhD,CAkEM,SAAUy9P,GAAeszD,GAC7B,OAAO,IAAIS,GAAO,IACbT,EACHnhH,UAAWA,CAAC5vM,EAAOub,SACPpiB,IAAV6G,GAAuB+wT,EAAOnhH,UAAU5vM,EAAOub,GACjDg2S,QAASA,CAACvxT,EAAOub,SAAkBpiB,IAAV6G,GAAuB+wT,EAAOQ,QAAQvxT,EAAOub,IAE1E,CASgB,SAAA02S,GACdC,EACAC,GAEA,OAAO,IAAIX,GAAO,CAChB5sS,KAAM,SACNL,OAAQ,KACR,QAAC6rI,CAAQpwJ,GACP,GAAIw6L,GAASx6L,GACX,IAAK,MAAMkL,KAAKlL,EAAO,CACrB,MAAMjD,EAAIiD,EAAMkL,QACV,CAACA,EAAGA,EAAGgnT,QACP,CAAChnT,EAAGnO,EAAGo1T,EACd,GAGLviH,UAAU5vM,GAEN4wT,GAAiB5wT,IACjB,qCAAqC6wT,GAAM7wT,KAG/CqxT,QAAQrxT,GACC4wT,GAAiB5wT,GAAS,IAAKA,GAAUA,GAGtD,UAiDgBkE,KACd,OAAOksD,GAAO,UAAWpwD,GAEJ,kBAAVA,GACP,oCAAoC6wT,GAAM7wT,MAGhD,CAOM,SAAU0xT,GACdU,GAEA,MAAMC,EAAQN,KAEd,OAAO,IAAIP,GAAO,CAChB5sS,KAAM,QACNL,OAAQ,KACR,QAAC6rI,CAAQpwJ,GACP,GAAI7C,MAAMC,QAAQ4C,GAAQ,CACxB,MAAMzI,EAAS+B,KAAK+O,IAAI+pT,EAAQ76T,OAAQyI,EAAMzI,QAE9C,IAAK,IAAIoF,EAAI,EAAGA,EAAIpF,EAAQoF,SACpB,CAACA,EAAGqD,EAAMrD,GAAIy1T,EAAQz1T,IAAM01T,EAErC,GAEHziH,UAAU5vM,GAEN7C,MAAMC,QAAQ4C,IACd,oCAAoC6wT,GAAM7wT,KAG9CqxT,QAAQrxT,GACC7C,MAAMC,QAAQ4C,GAASA,EAAMmB,QAAUnB,GAGpD,CASM,SAAU4kB,GACdL,GAEA,MAAM6oB,EAAOh1C,OAAOg1C,KAAK7oB,GACzB,OAAO,IAAIitS,GAAO,CAChB5sS,KAAM,OACNL,SACA,QAAC6rI,CAAQpwJ,GACP,GAAIw6L,GAASx6L,GACX,IAAK,MAAMkL,KAAKkiC,OACR,CAACliC,EAAGlL,EAAMkL,GAAIqZ,EAAOrZ,KAIjC0kM,UAAU5vM,GAEN4wT,GAAiB5wT,IACjB,qCAAqC6wT,GAAM7wT,KAG/CqxT,QAAQrxT,GACC4wT,GAAiB5wT,GAAS,IAAKA,GAAUA,GAGtD,CAMM,SAAUL,GACdyyT,GAEA,MAAMxtO,EAAcwtO,EAAQjtS,KAAK3Q,GAAMA,EAAEoQ,OAAMlf,KAAK,OACpD,OAAO,IAAI8rT,GAAO,CAChB5sS,KAAM,QACNL,OAAQ,KACR8sS,OAAAA,CAAQrxT,EAAOub,GACb,IAAK,MAAMi+E,KAAK44N,EAAS,CACvB,MAAOrtS,EAAOutS,GAAW94N,EAAE8iE,SAASt8J,EAAO,CACzCoxT,QAAQ,EACR55S,KAAM+D,EAAI/D,OAEZ,IAAKuN,EACH,OAAOutS,CAEV,CAED,OAAOtyT,GAET4vM,SAAAA,CAAU5vM,EAAOub,GACf,MAAMk1S,EAAW,GAEjB,IAAK,MAAMj3N,KAAK44N,EAAS,CACvB,SAAUX,GAAUN,GAAInxT,EAAOw5F,EAAGj+E,IAC3BsS,GAAS4jS,EAEhB,IAAK5jS,EAAM,GACT,MAAO,GAEP,IAAK,MAAOi3P,KAAY2sC,EAClB3sC,GACF2rC,EAAS7zT,KAAKkoR,EAIrB,CAED,MAAO,CACL,8CAA8ClgM,sBAAgCisO,GAC5E7wT,QAECywT,KAIX,UAMgB8B,KACd,OAAOniQ,GAAO,WAAW,KAAM,GACjC,UChjBgBghQ,GACdL,EACAp/R,EACA0/R,GAEA,OAAO,IAAIG,GAAO,IACbT,EACHM,QAASA,CAACrxT,EAAOub,IACR8sC,GAAGroD,EAAO2xB,GACbo/R,EAAOM,QAAQA,EAAQrxT,EAAOub,GAAMA,GACpCw1S,EAAOM,QAAQrxT,EAAOub,IAGhC,4FCrBA,IAAAi3S,GAAS,cAAoBv+J,GAQ7Bw+J,OAEIh7T,WAAAA,CAAAi7T,EAAAtgS,EAAA4uK,GASA,QAEI,KAAAyxH,OAAM,IAAA/qT,OAAAirT,UAAAD,EAAA1xH,GAEN55L,KAAKqrT,OAAAG,OAAa,IAAO,KAAAr+J,KAAU,QAEnCntJ,KAAKqrT,OAAO5uR,UAASoF,GAAW,KAAKsrH,KAAM,UAAAtrH,EAAA3hB,MAC3ClgB,KAAKqrT,OAAOjqJ,QAAAzjJ,GAAa,KAAUwvI,KAAK,QAAKxvI,GAC7C3d,KAAKqrT,OAAOI,QAAW5pR,IACvB7hC,KAAKmtJ,KAAO,QAAAtrH,EAAWtjC,KACvBsjC,EAAA6qJ,OAAA,CAC+C,CAEnDjrJ,IAAAA,CAAAvhB,EAAAwrS,EAAAhgS,GAUA,MACI6Y,EACA7Y,GAAAggS,EAMA,IAEA,KACAL,OAAA5pR,KAAAvhB,GACIqkB,GACA,OAAG5mB,GACP4mB,EAAA5mB,EAGI,CAAQ,CAEhBkoL,KAAAA,CAAAtnM,EAAAmuL,GAUA,KAAM2+H,OAAexlH,MACrBtnM,EAAAmuL,EACI,CACJh8J,gBAAAA,CAAAlT,EAAAgT,EAAAxF,GAEA,KAAAqgS,OAAA36R,iBAEIlT,EACAgT,EAEJxF,EACI,GAER,SAAAugS,GAAAD,EAAAtgS,GASO,OAAS,IAAAogS,GAEZE,EAEJtgS,EACI,cChGJ54B,MAAAA,CAASwG,4BCCF5G,MAAAA,CAAM4G,GAET,OAAOkzB,KACPK,MAAAvzB,EACI,GAMJ+yT,GAAA,cAAA9+J,GACJy+J,qBDeOtgS,QAEK4gS,YACAh4B,MACAi4B,UACAC,mBACAC,mBACAC,eACAC,aACAC,mBACAC,oBACAd,OACAe,iBAEAC,SAOAh8T,WAAAA,CAAA+7T,GAiBY,IAjBZd,EAAAx5T,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,sCAAA85T,GAAA,YAAAC,GAAA,qBAAAE,EAAA,mBAYRC,EACI,KAGIC,GAAcn6T,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GACd,GAAAq6T,EAAYr6T,UAAA3B,OAAA,EAAA2B,UAAA,QAAAC,EAAAs6T,EAAAv6T,UAAA3B,OAAA,EAAA2B,UAAA,QAAAC,EACZ,QACA,KAAAq6T,iBAAiBA,EACjB,KAAG33K,MAAA,GACP,KAAK63K,OACL,EAOA,KAAAhB,QAAMA,EAENtrT,KAAK4rT,YAAAA,EAEL5rT,KAAK4zR,OAAQ,EACb5zR,KAAK6rT,UAASA,EAEd7rT,KAAK8rT,wBAAU,EACf9rT,KAAK+rT,mBAAcA,EACnB/rT,KAAKgsT,eAAQA,EACbhsT,KAAKisT,aAAYA,EACjBjsT,KAAKksT,mBAAqB,EAC1BlsT,KAAKmsT,oBAAqBA,GAAA,YAAAG,QAErB,KAAAD,SADAA,GAAiB,IAAAE,GAEtBvsT,KAAK4rT,aACL5rT,KAAKwsT,SAAA,KAAAlB,QAAsB,CAEvBM,YAAW5rT,KAAK4rT,YACfC,UAAK,KAAAA,UAENE,mBAAK,KAAAA,mBACLC,eAAchsT,KAAKgsT,kBACf,KAAAC,cACgB,CAK5BQ,OAAAA,GAAA,KAAApB,QAAA,KAAAmB,SAAA,KAAAlB,QAAA,CAAAM,YAAA,KAAAA,YAOAC,UACA,KAAAA,UACIE,mBAAiB,KAAAA,mBAEjBC,eAAchsT,KAAKgsT,kBACf,KAAAC,cACgB,CAKxBn0T,IAAAA,CAAAyzB,EAAAC,EAAAy1I,EAAAyrJ,GAkBI,OAlBJA,GAAA,kBAAAzrJ,IAAAyrJ,EAAAzrJ,EAAAA,EAAA,MAkBS,IAAAxuD,SAAW,CAAA24B,EAAau2B,KAEzB,SAAUiyH,MAAA,OAAAjyH,EAAA,IAAAhwK,MAAA,qBACV,MAAA26T,EAAU,KAAAH,oBAAA5gS,EAAAC,GACdvR,EAAA,CAEAsS,QAAW,MAEPhB,SAEAC,OAAMA,QAAc,EAEpBC,GAAM6gS,GACO,KACTjB,OAAA5pR,KAAA,KAAA4qR,SAAAj6T,OAAA6nB,GAAAyyS,GAAA/uS,IACA,GAAAA,EAAQ,OAAUgkJ,EAAAhkJ,GAClB,KAAI82H,MAAA63K,GAAA,CAAA5qJ,QAAA,CAAAt2B,EAAAu2B,IACRV,IAEAjhK,KAAKy0I,MAAO63K,GAAUrrJ,QAASh2H,YAAO,YAEvB,KAAAwpG,MAAO63K,GAElB3qJ,EAAW,IAAAhwK,MAAU,iBAAY,GAE7BsvK,GAEA,GAEI,GACiC,CAKrD,WAAA0rJ,CAAAnhS,GAAA,MAAAohS,QAAA,KAAA90T,KAAA,YAAA0zB,GAAA,IAAAohS,EAAA,UAAAj7T,MAAA,gCAAAi7T,CAQA,CAOA,iBAAAC,GAAA,kBAAA/0T,KAAA,iBAUAg1T,MAAAA,CAAAvhS,EAAAC,GAAA,WAAAinF,SAAA,CAAA24B,EAAAu2B,KAAA,SAAAiyH,MAAA,OAAAjyH,EAAA,IAAAhwK,MAAA,2BAAAsoB,EAAA,CASAsS,QAAuB,MAEnBhB,SAEIC,UAEgB,KACZ6/R,OAAS5pR,KAAA,KAAA4qR,SAAAj6T,OAAA6nB,IAAA0D,IACT,GAAAA,EAAA,OAAAgkJ,EAAAhkJ,GACAytH,GAAA,GACJ,GAII,CAKZ,eAAAkvC,CAAAz4I,GAAA,kBAAAA,IAAAA,EAAA,CAAAA,IAAA,MAAA9oB,QAAA,KAAAjhB,KAAA,SAAA+pC,GAAA,qBAAAA,GAAA,OAAA9oB,EAAA8oB,GASA,MAAM,IAAAlwC,MAEE,mCAAoCkwC,EAAK,WAAA9oB,EAAA8oB,IAI7C,OAAI9oB,CACA,CAKR,iBAAAqrL,CAAAviK,GAAA,kBAAAA,IAAAA,EAAA,CAAAA,IAAA,MAAA9oB,QAAA,KAAAjhB,KAAA,UAAA+pC,GAAA,qBAAAA,GAAA,OAAA9oB,EAAA8oB,GASA,MAAM,IAAAlwC,MAAY,4CAClBonB,GACI,OAAIA,CAEJ,CAMJ8sL,KAAAA,CAAAtnM,EAAA2hB,GAAA,KAAAmrS,OAAAxlH,MAAAtnM,GAAA,IAAA2hB,EAAA,CAYA6sS,gBAAAA,CAAAlB,GAAA,KAAAA,UAAAA,CAAA,CAWAmB,oBAAAA,CAAA96E,GAAA,KAAA65E,mBAAA75E,CAAA,CAWA+6E,gBAAAA,CAAAjB,GAAA,KAAAA,eAAAA,CAAA,CAWAQ,QAAAA,CAAAlB,EAAAtgS,GAAAg4F,aAAA,KAAA8oM,oBAAA,KAAAT,OAAA,KAAAe,iBAAAd,EAAAtgS,GAAA,KAAAqgS,OAAA36R,iBAAA,aAUQ,KACJkjQ,OAAA,EAIA,KAAAzmI,KAAA,QACAntJ,KAAKksT,mBAAc,KAIflsT,KAAAqrT,OAAK36R,iBAAQ,WAAA1S,IAAA,IAAAkC,KAAAjG,GAAA+D,EACb/D,aAAgBsF,cAChBtF,EAAKlqB,GAAAA,OAAAC,KAAAiqB,GAAqB/f,YAC7B,IAED+f,EAAY,KAAAoyS,SAAAr6T,OAAiBioB,EAEzB,OAAI0D,GACA,MAEJ,CAEI,GAAA1D,EAAUizS,cAAc,KAAO58R,UAAOrW,EAAAizS,cAAA/8T,OAAA,CAC1C,IAAAa,OACOg1C,KACP/rB,EAAAuR,QAAAr7B,OACI,YAAAg9J,KAAAlzI,EAAAizS,cACJ,MAAAlxS,EAAA,CAAA/B,EAAAizS,cAGA,GAAIjzS,EAAQuR,OAAAn7B,cAAqBW,OAAUgrB,EAAAxmB,KAAQykB,EAAYuR,aAGvD,QAAOj2B,EAAK,EAAAA,EAAK0kB,EAAQuR,OAAAr7B,OAAYoF,IAEzCymB,EAAMxmB,KAAQykB,EAAQuR,OAAAj2B,IAEtB,OAAIk9G,QAAQ24B,UAAOv0B,MAAA,KAAgD,KAAAs2C,KAAAjxI,MAAA,KAAAF,EAAC,GAI5D,CAIR,SAAOy4H,MAAAx6H,EAAQwR,IAGX,OAAAxR,EAAUsR,OACbknF,QAAA24B,UAAAv0B,MAAA,KACL,KAAAs2C,KAAAlzI,EAAAsR,OAAAtR,GAAAuR,OAAA,SAQQ,EAGA,UAACvR,IAAA,WAAAA,GACL,KAAAw6H,MAAAx6H,EAAAwR,IAAAi2I,QAAA,GAEA,IAAA/vK,MACJ,+FAKQ,KAAI8iJ,MAAAx6H,EAAAwR,IAAAw1I,SAAAj+C,aACA,KAAAyxB,MAAAx6H,EAAAwR,IAAAw1I,SAEJhnJ,EAAA0D,MAAA,KAAA82H,MAAAx6H,EAAAwR,IAAAi2I,QAAA,GAAAznJ,EAAA0D,OACJ,KAAA82H,MAAAx6H,EAAAwR,IAAAi2I,QAAA,GAAAznJ,EAAAlB,eAEA/Y,KAAKy0I,MAAMx6H,EAAUwR,GAAE,IAG3B,KAAA4/R,OAAI36R,iBAAoB,SAAM/S,GAAY,KAASwvI,KAAE,QAAaxvI,KAAA,KAAA0tS,OACxD36R,iBAAgB,SAAU6B,IAAiB,IAAhB,KAAEh0B,EAAA,OAAAmuL,GAAcn6J,EAErD,KAAOqhQ,OACV3oP,YAAA,SAAAkiH,KAAA,QAAA5uJ,EAAAmuL,IAAA,GAED1sL,KAAK4zR,OAAO,EAEZ5zR,KAAKqrT,YAAO,EAEC,MAAL9sT,IAEA,KAAA2tT,qBAEJlsT,KAAK6rT,YAAQ,KAAAG,eAAA,KAAAE,oBAAA,SAAAF,kBACbhsT,KAAK8rT,mBAAS7gR,YAEV,SAASuhR,SAAMlB,EAAAtgS,IAEnBhrB,KAAK+rT,qBAEL,GAK8B,GE3Z1C,MAAMoB,GAAoB,GACpBC,GAAsB,GACtBC,GAAuB,GACvBzT,GAAsB56S,OAAO,GAC7B66S,GAAsB76S,OAAO,GAC7B86S,GAAsB96S,OAAO,GAC7BsuT,GAAsBtuT,OAAO,GAC7BuuT,GAAwBvuT,OAAO,KAC/BwuT,GAAyBxuT,OAAO,KACtC,IAAK,IAAIyP,GAAQ,EAAG6nG,GAAIujM,GAAK7+S,GAAI,EAAGsR,GAAI,EAAGmC,GAAQ,GAAIA,KAAS,EAE7DzT,GAAGsR,IAAK,CAACA,IAAI,EAAItR,GAAI,EAAIsR,IAAK,GAC/B6gT,GAAQ33T,KAAK,GAAK,EAAI8W,GAAItR,KAE1BoyT,GAAU53T,MAAQiZ,GAAQ,IAAMA,GAAQ,GAAM,EAAK,IAEnD,IAAI9J,EAAIi1S,GACR,IAAK,IAAI7+S,EAAI,EAAGA,EAAI,EAAGA,IACrBu7G,IAAMA,IAAKujM,IAASvjM,IAAKg3M,IAAOE,IAAWD,GACvCj3M,GAAIwjM,KAAKn1S,GAAKk1S,KAASA,IAAuB76S,OAAOjE,IAAM8+S,IAEjEwT,GAAW73T,KAAKmP,EAClB,CACA,MAAO8oT,GAAaC,IAA+B95T,GAAMy5T,IAAY,GAG/DM,GAAQA,CAACx9S,EAAWzD,EAAWU,IAAeA,EAAI,GAAKgpS,GAAOjmS,EAAGzD,EAAGU,GAAK8oS,GAAO/lS,EAAGzD,EAAGU,GACtFwgT,GAAQA,CAACz9S,EAAWzD,EAAWU,IAAeA,EAAI,GAAKipS,GAAOlmS,EAAGzD,EAAGU,GAAK+oS,GAAOhmS,EAAGzD,EAAGU,GA+CtF,MAAOygT,WAAepZ,GAQ1BpkT,WAAAA,CACSykT,EACA/tI,EACAmtI,GAEsB,IADnB4Z,EAAAh8T,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GACAi8T,EAAAj8T,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAiB,GAO3B,GALAooB,QANO,KAAA46R,SAAAA,EACA,KAAA/tI,OAAAA,EACA,KAAAmtI,UAAAA,EACG,KAAA4Z,UAAAA,EACA,KAAAC,OAAAA,EAXF,KAAA5pS,IAAM,EACN,KAAA6pS,OAAS,EACT,KAAAnwJ,UAAW,EAEX,KAAA1/E,WAAY,EAWpBw1N,GAAQO,GAGJ,GAAKl0S,KAAK80S,UAAY90S,KAAK80S,UAAY,IACzC,MAAM,IAAInjT,MAAM,4CnB/FhB,IAAc6L,EmBgGhBwC,KAAK4zF,MAAQ,IAAIhkG,WAAW,KAC5BoQ,KAAKiuT,SnBjGWzwT,EmBiGGwC,KAAK4zF,MnBhGnB,IAAIygN,YAAY72S,EAAIvN,OAAQuN,EAAItN,WAAYgC,KAAKC,MAAMqL,EAAIR,WAAa,ImBiG/E,CACUkxT,MAAAA,GACHtkS,IAAM2qR,GAAWv0S,KAAKiuT,SAtEzB,SAAkB7gT,GAAmC,IAAnB2gT,EAAAj8T,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAiB,GACvD,MAAMsgB,EAAI,IAAIiiS,YAAY,IAE1B,IAAK,IAAI5lS,EAAQ,GAAKs/S,EAAQt/S,EAAQ,GAAIA,IAAS,CAEjD,IAAK,IAAIzT,EAAI,EAAGA,EAAI,GAAIA,IAAKoX,EAAEpX,GAAKoS,EAAEpS,GAAKoS,EAAEpS,EAAI,IAAMoS,EAAEpS,EAAI,IAAMoS,EAAEpS,EAAI,IAAMoS,EAAEpS,EAAI,IACrF,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,MAAMmzT,GAAQnzT,EAAI,GAAK,GACjBozT,GAAQpzT,EAAI,GAAK,GACjBqzT,EAAKj8S,EAAEg8S,GACPE,EAAKl8S,EAAEg8S,EAAO,GACd75K,EAAKo5K,GAAMU,EAAIC,EAAI,GAAKl8S,EAAE+7S,GAC1BI,EAAKX,GAAMS,EAAIC,EAAI,GAAKl8S,EAAE+7S,EAAO,GACvC,IAAK,IAAI7hT,EAAI,EAAGA,EAAI,GAAIA,GAAK,GAC3Bc,EAAEpS,EAAIsR,IAAMioI,EACZnnI,EAAEpS,EAAIsR,EAAI,IAAMiiT,CAEpB,CAEA,IAAIC,EAAOphT,EAAE,GACTqhT,EAAOrhT,EAAE,GACb,IAAK,IAAIzI,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,MAAMjO,EAAQ02T,GAAUzoT,GAClB4vI,EAAKo5K,GAAMa,EAAMC,EAAM/3T,GACvB63T,EAAKX,GAAMY,EAAMC,EAAM/3T,GACvB6W,EAAK4/S,GAAQxoT,GACnB6pT,EAAOphT,EAAEG,GACTkhT,EAAOrhT,EAAEG,EAAK,GACdH,EAAEG,GAAMgnI,EACRnnI,EAAEG,EAAK,GAAKghT,CACd,CAEA,IAAK,IAAIjiT,EAAI,EAAGA,EAAI,GAAIA,GAAK,GAAI,CAC/B,IAAK,IAAItR,EAAI,EAAGA,EAAI,GAAIA,IAAKoX,EAAEpX,GAAKoS,EAAEd,EAAItR,GAC1C,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,IAAKoS,EAAEd,EAAItR,KAAOoX,GAAGpX,EAAI,GAAK,IAAMoX,GAAGpX,EAAI,GAAK,GAC1E,CAEAoS,EAAE,IAAMqgT,GAAYh/S,GACpBrB,EAAE,IAAMsgT,GAAYj/S,EACtB,CACA2D,EAAE/V,KAAK,EACT,CA8BIqyT,CAAQ1uT,KAAKiuT,QAASjuT,KAAK+tT,QACtBnkS,IAAM2qR,GAAWv0S,KAAKiuT,SAC3BjuT,KAAKguT,OAAS,EACdhuT,KAAKmkB,IAAM,CACb,CACAkwD,MAAAA,CAAOn0D,GACL6zR,GAAQ/zS,MACR,MAAM,SAAE80S,EAAQ,MAAElhN,GAAU5zF,KAEtBpC,GADNsiB,EAAOs0R,GAAQt0R,IACE/vB,OACjB,IAAK,IAAIg0B,EAAM,EAAGA,EAAMvmB,GAAO,CAC7B,MAAMw3S,EAAOljT,KAAK6O,IAAI+zS,EAAW90S,KAAKmkB,IAAKvmB,EAAMumB,GACjD,IAAK,IAAI5uB,EAAI,EAAGA,EAAI6/S,EAAM7/S,IAAKq+F,EAAM5zF,KAAKmkB,QAAUjE,EAAKiE,KACrDnkB,KAAKmkB,MAAQ2wR,GAAU90S,KAAKkuT,QAClC,CACA,OAAOluT,IACT,CACU2uT,MAAAA,GACR,GAAI3uT,KAAK69J,SAAU,OACnB79J,KAAK69J,UAAW,EAChB,MAAM,MAAEjqE,EAAK,OAAEmzE,EAAM,IAAE5iJ,EAAG,SAAE2wR,GAAa90S,KAEzC4zF,EAAMzvE,IAAQ4iJ,EACU,KAAV,IAATA,IAAwB5iJ,IAAQ2wR,EAAW,GAAG90S,KAAKkuT,SACxDt6N,EAAMkhN,EAAW,IAAM,IACvB90S,KAAKkuT,QACP,CACUU,SAAAA,CAAU5rT,GAClB+wS,GAAQ/zS,MAAM,GACd6zS,GAAO7wS,GACPhD,KAAK2uT,SACL,MAAME,EAAY7uT,KAAK4zF,OACjB,SAAEkhN,GAAa90S,KACrB,IAAK,IAAImkB,EAAM,EAAGvmB,EAAMoF,EAAI7S,OAAQg0B,EAAMvmB,GAAO,CAC3CoC,KAAKguT,QAAUlZ,GAAU90S,KAAKkuT,SAClC,MAAM9Y,EAAOljT,KAAK6O,IAAI+zS,EAAW90S,KAAKguT,OAAQpwT,EAAMumB,GACpDnhB,EAAIqb,IAAIwwS,EAAUzzS,SAASpb,KAAKguT,OAAQhuT,KAAKguT,OAAS5Y,GAAOjxR,GAC7DnkB,KAAKguT,QAAU5Y,EACfjxR,GAAOixR,CACT,CACA,OAAOpyS,CACT,CACA8rT,OAAAA,CAAQ9rT,GAEN,IAAKhD,KAAK8tT,UAAW,MAAM,IAAIn8T,MAAM,yCACrC,OAAOqO,KAAK4uT,UAAU5rT,EACxB,CACA+rT,GAAAA,CAAI7pS,GAEF,OADAyuR,GAAQzuR,GACDllB,KAAK8uT,QAAQ,IAAIl/T,WAAWs1B,GACrC,CACAqwR,UAAAA,CAAWvyS,GAET,GADAixS,GAAQjxS,EAAKhD,MACTA,KAAK69J,SAAU,MAAM,IAAIlsK,MAAM,+BAGnC,OAFAqO,KAAK4uT,UAAU5rT,GACfhD,KAAK2vB,UACE3sB,CACT,CACAw2I,MAAAA,GACE,OAAOx5I,KAAKu1S,WAAW,IAAI3lT,WAAWoQ,KAAKk0S,WAC7C,CACAvkR,OAAAA,GACE3vB,KAAKm+E,WAAY,EACjBn+E,KAAK4zF,MAAMv3F,KAAK,EAClB,CACAq4S,UAAAA,CAAWx8P,GACT,MAAM,SAAE48P,EAAQ,OAAE/tI,EAAM,UAAEmtI,EAAS,OAAE6Z,EAAM,UAAED,GAAc9tT,KAY3D,OAXAk4C,IAAAA,EAAO,IAAI21Q,GAAO/Y,EAAU/tI,EAAQmtI,EAAW4Z,EAAWC,IAC1D71Q,EAAG+1Q,QAAQ5vS,IAAIre,KAAKiuT,SACpB/1Q,EAAG/zB,IAAMnkB,KAAKmkB,IACd+zB,EAAG81Q,OAAShuT,KAAKguT,OACjB91Q,EAAG2lH,SAAW79J,KAAK69J,SACnB3lH,EAAG61Q,OAASA,EAEZ71Q,EAAG6uH,OAASA,EACZ7uH,EAAGg8P,UAAYA,EACfh8P,EAAG41Q,UAAYA,EACf51Q,EAAGimC,UAAYn+E,KAAKm+E,UACbjmC,CACT,EAGF,MAAM0jQ,GAAMA,CAAC70I,EAAgB+tI,EAAkBZ,IAC7CS,IAAgB,IAAM,IAAIkZ,GAAO/Y,EAAU/tI,EAAQmtI,KAcxC8a,GAAoCpT,GAAI,EAAM,IAAK,IC3N1D,MAAOqT,WAAgCxa,GAQ3CpkT,WAAAA,CAAYi3K,EAAarrJ,GACvB/B,QAJM,KAAA2jJ,UAAW,EACX,KAAA1/E,WAAY,EtBkBtB,SAAehuE,GACb,GAAiB,oBAANA,GAAwC,oBAAbA,EAAElf,OACtC,MAAM,IAAIU,MAAM,mDAClBgiT,GAAQxjS,EAAE+jS,WACVP,GAAQxjS,EAAE2kS,SACZ,CsBnBIoa,CAAM5nJ,GACN,MAAM/uJ,EAAMi8R,GAAQv4R,GAEpB,GADAjc,KAAKmvT,MAAQ7nJ,EAAKr2K,SACe,oBAAtB+O,KAAKmvT,MAAM96O,OACpB,MAAM,IAAI1iF,MAAM,uDAClBqO,KAAK80S,SAAW90S,KAAKmvT,MAAMra,SAC3B90S,KAAKk0S,UAAYl0S,KAAKmvT,MAAMjb,UAC5B,MAAMY,EAAW90S,KAAK80S,SAChBkG,EAAM,IAAIprT,WAAWklT,GAE3BkG,EAAI38R,IAAI9F,EAAIpoB,OAAS2kT,EAAWxtI,EAAKr2K,SAASojF,OAAO97D,GAAKihI,SAAWjhI,GACrE,IAAK,IAAIhjB,EAAI,EAAGA,EAAIylT,EAAI7qT,OAAQoF,IAAKylT,EAAIzlT,IAAM,GAC/CyK,KAAKmvT,MAAM96O,OAAO2mO,GAElBh7S,KAAKovT,MAAQ9nJ,EAAKr2K,SAElB,IAAK,IAAIsE,EAAI,EAAGA,EAAIylT,EAAI7qT,OAAQoF,IAAKylT,EAAIzlT,IAAM,IAC/CyK,KAAKovT,MAAM/6O,OAAO2mO,GAClBA,EAAI3+S,KAAK,EACX,CACAg4E,MAAAA,CAAOz1E,GAGL,OAFAm1S,GAAQ/zS,MACRA,KAAKmvT,MAAM96O,OAAOz1E,GACXoB,IACT,CACAu1S,UAAAA,CAAWvyS,GACT+wS,GAAQ/zS,MACR6zS,GAAO7wS,EAAKhD,KAAKk0S,WACjBl0S,KAAK69J,UAAW,EAChB79J,KAAKmvT,MAAM5Z,WAAWvyS,GACtBhD,KAAKovT,MAAM/6O,OAAOrxE,GAClBhD,KAAKovT,MAAM7Z,WAAWvyS,GACtBhD,KAAK2vB,SACP,CACA6pH,MAAAA,GACE,MAAMx2I,EAAM,IAAIpT,WAAWoQ,KAAKovT,MAAMlb,WAEtC,OADAl0S,KAAKu1S,WAAWvyS,GACTA,CACT,CACA0xS,UAAAA,CAAWx8P,GAETA,IAAAA,EAAOlnD,OAAOC,OAAOD,OAAOivK,eAAejgK,MAAO,CAAC,IACnD,MAAM,MAAEovT,EAAK,MAAED,EAAK,SAAEtxJ,EAAQ,UAAE1/E,EAAS,SAAE22N,EAAQ,UAAEZ,GAAcl0S,KAQnE,OANAk4C,EAAG2lH,SAAWA,EACd3lH,EAAGimC,UAAYA,EACfjmC,EAAG48P,SAAWA,EACd58P,EAAGg8P,UAAYA,EACfh8P,EAAGk3Q,MAAQA,EAAM1a,WAAWx8P,EAAGk3Q,OAC/Bl3Q,EAAGi3Q,MAAQA,EAAMza,WAAWx8P,EAAGi3Q,OACxBj3Q,CACT,CACAvoB,OAAAA,GACE3vB,KAAKm+E,WAAY,EACjBn+E,KAAKovT,MAAMz/R,UACX3vB,KAAKmvT,MAAMx/R,SACb,EAaK,MAAM0/R,GAGTA,CAAC/nJ,EAAa/uJ,EAAY0B,IAC5B,IAAIg1S,GAAU3nJ,EAAM/uJ,GAAK87D,OAAOp6D,GAASu/H,SChB3C,SAAS81K,GAAmB/6I,QACRxiL,IAAdwiL,EAAKg7I,MAAoBxV,GAAM,OAAQxlI,EAAKg7I,WAC3Bx9T,IAAjBwiL,EAAKquI,SAAuB7I,GAAM,UAAWxlI,EAAKquI,QACxD,CDcAyM,GAAKp+T,OAAS,CAACq2K,EAAa/uJ,IAAe,IAAI02S,GAAU3nJ,EAAM/uJ,GCsE/D,MAAQkiS,GAAiB+U,GAAKhV,GAAYiV,IAAQj3C,EAE5C,MAAOk3C,WAAe/9T,MAC1BtB,WAAAA,GACE6pB,MADWpoB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAEhB,EA6BK,MAAM69T,GAAY,CAEvBC,IAAKF,GAELG,KAAM,CACJz9T,OAAQA,CAAC2F,EAAamoB,KACpB,MAAQ0vS,IAAKvnS,GAAMsnS,GACnB,GAAI53T,EAAM,GAAKA,EAAM,IAAK,MAAM,IAAIswB,EAAE,yBACtC,GAAkB,EAAdnI,EAAK/vB,OAAY,MAAM,IAAIk4B,EAAE,6BACjC,MAAMynS,EAAU5vS,EAAK/vB,OAAS,EACxByN,EAAM46Q,GAAuBs3C,GACnC,GAAKlyT,EAAIzN,OAAS,EAAK,IAAa,MAAM,IAAIk4B,EAAE,wCAEhD,MAAM0nS,EAASD,EAAU,IAAMt3C,GAAwB56Q,EAAIzN,OAAS,EAAK,KAAe,GAExF,OADUqoR,GAAuBzgR,GACtBg4T,EAASnyT,EAAMsiB,CAAI,EAGhCluB,MAAAA,CAAO+F,EAAamoB,GAClB,MAAQ0vS,IAAKvnS,GAAMsnS,GACnB,IAAIxrS,EAAM,EACV,GAAIpsB,EAAM,GAAKA,EAAM,IAAK,MAAM,IAAIswB,EAAE,yBACtC,GAAInI,EAAK/vB,OAAS,GAAK+vB,EAAKiE,OAAWpsB,EAAK,MAAM,IAAIswB,EAAE,yBACxD,MAAM5B,EAAQvG,EAAKiE,KAEnB,IAAIh0B,EAAS,EACb,MAF0B,IAARs2B,GAGb,CAEH,MAAMspS,EAAiB,IAARtpS,EACf,IAAKspS,EAAQ,MAAM,IAAI1nS,EAAE,qDACzB,GAAI0nS,EAAS,EAAG,MAAM,IAAI1nS,EAAE,4CAC5B,MAAM2nS,EAAc9vS,EAAK9E,SAAS+I,EAAKA,EAAM4rS,GAC7C,GAAIC,EAAY7/T,SAAW4/T,EAAQ,MAAM,IAAI1nS,EAAE,yCAC/C,GAAuB,IAAnB2nS,EAAY,GAAU,MAAM,IAAI3nS,EAAE,wCACtC,IAAK,MAAM14B,KAAKqgU,EAAa7/T,EAAUA,GAAU,EAAKR,EAEtD,GADAw0B,GAAO4rS,EACH5/T,EAAS,IAAK,MAAM,IAAIk4B,EAAE,yCAChC,MAZal4B,EAASs2B,EAatB,MAAM9wB,EAAIuqB,EAAK9E,SAAS+I,EAAKA,EAAMh0B,GACnC,GAAIwF,EAAExF,SAAWA,EAAQ,MAAM,IAAIk4B,EAAE,kCACrC,MAAO,CAAE1yB,IAAG+W,EAAGwT,EAAK9E,SAAS+I,EAAMh0B,GACrC,GAMF8/T,KAAM,CACJ79T,MAAAA,CAAOsM,GACL,MAAQkxT,IAAKvnS,GAAMsnS,GACnB,GAAIjxT,EAAMk7S,GAAK,MAAM,IAAIvxR,EAAE,8CAC3B,IAAItpB,EAAMy5Q,GAAuB95Q,GAGjC,GADkC,EAA9BlO,OAAO0xB,SAASnjB,EAAI,GAAI,MAAcA,EAAM,KAAOA,GACtC,EAAbA,EAAI5O,OAAY,MAAM,IAAIk4B,EAAE,kDAChC,OAAOtpB,CACT,EACA/M,MAAAA,CAAOkuB,GACL,MAAQ0vS,IAAKvnS,GAAMsnS,GACnB,GAAc,IAAVzvS,EAAK,GAAkB,MAAM,IAAImI,EAAE,uCACvC,GAAgB,IAAZnI,EAAK,MAA2B,IAAVA,EAAK,IAC7B,MAAM,IAAImI,EAAE,uDACd,OAAOmnS,GAAItvS,EACb,GAEFgwS,KAAAA,CAAMnxT,GAEJ,MAAQ6wT,IAAKvnS,EAAG4nS,KAAME,EAAKN,KAAMO,GAAQT,GACnCzvS,EAAsB,kBAARnhB,EAAmB0wT,GAAI1wT,GAAOA,EAClDy5Q,GAAUt4P,GACV,MAAQvqB,EAAG06T,EAAU3jT,EAAG4jT,GAAiBF,EAAIp+T,OAAO,GAAMkuB,GAC1D,GAAIowS,EAAangU,OAAQ,MAAM,IAAIk4B,EAAE,+CACrC,MAAQ1yB,EAAG46T,EAAQ7jT,EAAG8jT,GAAeJ,EAAIp+T,OAAO,EAAMq+T,IAC9C16T,EAAG86T,EAAQ/jT,EAAGgkT,GAAeN,EAAIp+T,OAAO,EAAMw+T,GACtD,GAAIE,EAAWvgU,OAAQ,MAAM,IAAIk4B,EAAE,+CACnC,MAAO,CAAEznB,EAAGuvT,EAAIn+T,OAAOu+T,GAASnjT,EAAG+iT,EAAIn+T,OAAOy+T,GAChD,EACAE,UAAAA,CAAW1J,GACT,MAAQ4I,KAAMO,EAAKH,KAAME,GAAQR,GAG3BiB,EAFKR,EAAIh+T,OAAO,EAAM+9T,EAAI/9T,OAAO60T,EAAIrmT,IAChCwvT,EAAIh+T,OAAO,EAAM+9T,EAAI/9T,OAAO60T,EAAI75S,IAE3C,OAAOgjT,EAAIh+T,OAAO,GAAMw+T,EAC1B,GAKIhX,GAAM56S,OAAO,GAAI66S,GAAM76S,OAAO,GAAqBu9S,IAAXv9S,OAAO,GAAUA,OAAO,IAAUA,OAAO,GAEjF,SAAU6xT,GAAqBt8I,GACnC,MAAM+tI,EAxKR,SAA8BR,GAC5B,MAAMvtI,EAAOstI,GAAcC,GAC3BtpC,GACEjkG,EACA,CACE1wK,EAAG,QACHlU,EAAG,SAEL,CACEmhU,yBAA0B,QAC1BC,eAAgB,UAChBrL,cAAe,WACfC,cAAe,WACfqL,mBAAoB,UACpB9R,UAAW,WACX1K,QAAS,aAGb,MAAM,KAAEyc,EAAI,GAAEhV,EAAE,EAAEp4S,GAAM0wK,EACxB,GAAI08I,EAAM,CACR,IAAKhV,EAAGe,IAAIn5S,EAAGo4S,EAAGoB,MAChB,MAAM,IAAI1rT,MAAM,8EAElB,GACkB,kBAATs/T,GACc,kBAAdA,EAAKC,MACgB,oBAArBD,EAAKE,YAEZ,MAAM,IAAIx/T,MAAM,wEAEpB,CACA,OAAOX,OAAO09C,OAAO,IAAK6lI,GAC5B,CAwIgB68I,CAAkB78I,IAC1B,GAAE0nI,GAAOqG,EACTU,EAAKnF,GAAMyE,EAAMn0S,EAAGm0S,EAAM5E,YAE1BlJ,EACJ8N,EAAM9N,SAAO,EACXzgR,EAAwBsf,EAAyBg+Q,KACjD,MAAMxtT,EAAIwvC,EAAM4wQ,WAChB,OAAOzrC,GAAe5oR,WAAWI,KAAK,CAAC,IAAQisT,EAAGzH,QAAQ3wS,EAAE7I,GAAIihT,EAAGzH,QAAQ3wS,EAAEyI,GAC9E,GACG4yS,EACJoD,EAAMpD,WAAS,CACbh6R,IAEA,MAAMq4H,EAAOr4H,EAAM9J,SAAS,GAI5B,MAAO,CAAEpgB,EAFCihT,EAAGiD,UAAU3hK,EAAKniI,SAAS,EAAG6gS,EAAGgC,QAE/B3xS,EADF2vS,EAAGiD,UAAU3hK,EAAKniI,SAAS6gS,EAAGgC,MAAO,EAAIhC,EAAGgC,QAEvD,GAMH,SAASqT,EAAoBt2T,GAC3B,MAAM,EAAE6I,EAAC,EAAElU,GAAM2yT,EACXrvS,EAAKgpS,EAAGzsS,IAAIxU,GACZy3C,EAAKwpQ,EAAGn7S,IAAImS,EAAIjY,GACtB,OAAOihT,EAAGp1S,IAAIo1S,EAAGp1S,IAAI4rC,EAAIwpQ,EAAGn7S,IAAI9F,EAAG6I,IAAKlU,EAC1C,CAKA,IAAKssT,EAAGe,IAAIf,EAAGzsS,IAAI8yS,EAAML,IAAKqP,EAAoBhP,EAAMN,KACtD,MAAM,IAAIrwT,MAAM,+CAQlB,SAAS4/T,EAAuBh5S,GAC9B,MAAQu4S,yBAA0B7+Q,EAAO,YAAE2rQ,EAAW,eAAEmT,EAAgB5iT,EAAG1B,GAAM61S,EACjF,GAAIrwQ,GAA0B,kBAAR15B,EAAkB,CAGtC,GAFIigQ,GAAWjgQ,KAAMA,EAAMigQ,GAAcjgQ,IAEtB,kBAARA,IAAqB05B,EAAQntB,SAASvM,EAAIpoB,QACnD,MAAM,IAAIwB,MAAM,uBAClB4mB,EAAMA,EAAIrZ,SAAuB,EAAd0+S,EAAiB,IACtC,CACA,IAAIl/S,EACJ,IACEA,EACiB,kBAAR6Z,EACHA,EACAigQ,GAAmBqiC,GAAY,cAAetiS,EAAKqlS,GAC3D,CAAE,MAAOjgS,GACP,MAAM,IAAIhsB,MACR,wCAA0CisT,EAAc,sBAAwBrlS,EAEpF,CAGA,OAFIw4S,IAAgBryT,EAAMwD,GAAIxD,EAAK+N,IACnC+rQ,GAAY,cAAe95Q,EAAKm7S,GAAKptS,GAC9B/N,CACT,CAEA,SAAS8yT,EAAet6P,GACtB,KAAMA,aAAiBksP,GAAQ,MAAM,IAAIzxT,MAAM,2BACjD,CAOA,MAAM0xT,EAAe/G,IAAS,CAAC5uS,EAAU41S,KACvC,MAAQp3P,GAAIlxD,EAAGmxD,GAAI7/C,EAAG8/C,GAAI70C,GAAM7J,EAEhC,GAAIuuS,EAAGe,IAAIzlS,EAAG0kS,EAAGiB,KAAM,MAAO,CAAEliT,IAAGsR,KACnC,MAAM8xS,EAAM1wS,EAAE0wS,MAGJ,MAANkF,IAAYA,EAAKlF,EAAMnC,EAAGiB,IAAMjB,EAAGzkS,IAAID,IAC3C,MAAMoiC,EAAKsiQ,EAAGn7S,IAAI9F,EAAGsoT,GACf1pQ,EAAKqiQ,EAAGn7S,IAAIwL,EAAGg3S,GACfI,EAAKzH,EAAGn7S,IAAIyW,EAAG+rS,GACrB,GAAIlF,EAAK,MAAO,CAAEpjT,EAAGihT,EAAGoB,KAAM/wS,EAAG2vS,EAAGoB,MACpC,IAAKpB,EAAGe,IAAI0G,EAAIzH,EAAGiB,KAAM,MAAM,IAAIvrT,MAAM,oBACzC,MAAO,CAAEqJ,EAAG2+C,EAAIrtC,EAAGstC,EAAI,IAInB+pQ,EAAkBrH,IAAU5uS,IAChC,GAAIA,EAAE0wS,MAAO,CAIX,GAAIkE,EAAM0O,qBAAuB/U,EAAGmC,IAAI1wS,EAAEy+C,IAAK,OAC/C,MAAM,IAAIx6D,MAAM,kBAClB,CAEA,MAAM,EAAEqJ,EAAC,EAAEsR,GAAMoB,EAAEu2S,WAEnB,IAAKhI,EAAGnvB,QAAQ9xR,KAAOihT,EAAGnvB,QAAQxgR,GAAI,MAAM,IAAI3a,MAAM,4BACtD,MAAMuP,EAAO+6S,EAAGzsS,IAAIlD,GACdnL,EAAQmwT,EAAoBt2T,GAClC,IAAKihT,EAAGe,IAAI97S,EAAMC,GAAQ,MAAM,IAAIxP,MAAM,qCAC1C,IAAK+b,EAAEg4S,gBAAiB,MAAM,IAAI/zT,MAAM,0CACxC,OAAO,CAAI,IAQb,MAAMyxT,EAIJ/yT,WAAAA,CACW67D,EACAC,EACAC,GAET,GAJS,KAAAF,GAAAA,EACA,KAAAC,GAAAA,EACA,KAAAC,GAAAA,EAEC,MAANF,IAAe+vP,EAAGnvB,QAAQ5gO,GAAK,MAAM,IAAIv6D,MAAM,cACnD,GAAU,MAANw6D,IAAe8vP,EAAGnvB,QAAQ3gO,GAAK,MAAM,IAAIx6D,MAAM,cACnD,GAAU,MAANy6D,IAAe6vP,EAAGnvB,QAAQ1gO,GAAK,MAAM,IAAIz6D,MAAM,cACnDX,OAAO09C,OAAO1uC,KAChB,CAIA,iBAAOkkT,CAAWx2S,GAChB,MAAM,EAAE1S,EAAC,EAAEsR,GAAMoB,GAAK,CAAC,EACvB,IAAKA,IAAMuuS,EAAGnvB,QAAQ9xR,KAAOihT,EAAGnvB,QAAQxgR,GAAI,MAAM,IAAI3a,MAAM,wBAC5D,GAAI+b,aAAa01S,EAAO,MAAM,IAAIzxT,MAAM,gCACxC,MAAMysT,EAAO7oT,GAAS0mT,EAAGe,IAAIznT,EAAG0mT,EAAGoB,MAEnC,OAAIe,EAAIpjT,IAAMojT,EAAI9xS,GAAW82S,EAAM/F,KAC5B,IAAI+F,EAAMpoT,EAAGsR,EAAG2vS,EAAGiB,IAC5B,CAEA,KAAIliT,GACF,OAAOgF,KAAKikT,WAAWjpT,CACzB,CACA,KAAIsR,GACF,OAAOtM,KAAKikT,WAAW33S,CACzB,CAQA,iBAAO63S,CAAWz0Q,GAChB,MAAM00Q,EAAQnI,EAAG2C,YAAYlvQ,EAAO3xB,KAAKrQ,GAAMA,EAAE0+C,MACjD,OAAO1c,EAAO3xB,KAAI,CAACrQ,EAAGnY,IAAMmY,EAAEu2S,SAASG,EAAM7uT,MAAKwoB,IAAIqlS,EAAMc,WAC9D,CAMA,cAAO0B,CAAQ7mT,GACb,MAAMi3G,EAAIotM,EAAMc,WAAWhF,EAAUrE,GAAY,WAAY97S,KAE7D,OADAi3G,EAAEwuM,iBACKxuM,CACT,CAGA,qBAAOiwM,CAAewL,GACpB,OAAOrO,EAAMhoT,KAAKsqD,SAAS6rQ,EAAuBE,GACpD,CAGA,UAAOpN,CAAI30Q,EAAiBowQ,GAC1B,OAAOwB,GAAU8B,EAAOJ,EAAItzQ,EAAQowQ,EACtC,CAGAwE,cAAAA,CAAe3E,GACb4E,EAAKlD,cAAcrhT,KAAM2/S,EAC3B,CAGA6E,cAAAA,GACEb,EAAgB3jT,KAClB,CAEA0xT,QAAAA,GACE,MAAM,EAAEplT,GAAMtM,KAAKikT,WACnB,GAAIhI,EAAGrpS,MAAO,OAAQqpS,EAAGrpS,MAAMtG,GAC/B,MAAM,IAAI3a,MAAM,8BAClB,CAKA6yB,MAAAA,CAAO0yC,GACLs6P,EAAet6P,GACf,MAAQhL,GAAIu4P,EAAIt4P,GAAIu4P,EAAIt4P,GAAIu4P,GAAO3kT,MAC3BksD,GAAI03P,EAAIz3P,GAAI03P,EAAIz3P,GAAI03P,GAAO5sP,EAC7By6P,EAAK1V,EAAGe,IAAIf,EAAGn7S,IAAI2jT,EAAIX,GAAK7H,EAAGn7S,IAAI8iT,EAAIe,IACvCiN,EAAK3V,EAAGe,IAAIf,EAAGn7S,IAAI4jT,EAAIZ,GAAK7H,EAAGn7S,IAAI+iT,EAAIc,IAC7C,OAAOgN,GAAMC,CACf,CAKArS,MAAAA,GACE,OAAO,IAAI6D,EAAMpjT,KAAKksD,GAAI+vP,EAAGx2S,IAAIzF,KAAKmsD,IAAKnsD,KAAKosD,GAClD,CAMAk0P,MAAAA,GACE,MAAM,EAAEz8S,EAAC,EAAElU,GAAM2yT,EACX74S,EAAKwyS,EAAGn7S,IAAInR,EAAG4sT,KACbrwP,GAAIu4P,EAAIt4P,GAAIu4P,EAAIt4P,GAAIu4P,GAAO3kT,KACnC,IAAIilT,EAAKhJ,EAAGoB,KAAM6H,EAAKjJ,EAAGoB,KAAM+H,EAAKnJ,EAAGoB,KACpCtoQ,EAAKknQ,EAAGn7S,IAAI2jT,EAAIA,GAChBzvQ,EAAKinQ,EAAGn7S,IAAI4jT,EAAIA,GAChBt2P,EAAK6tP,EAAGn7S,IAAI6jT,EAAIA,GAChBkN,EAAK5V,EAAGn7S,IAAI2jT,EAAIC,GA4BpB,OA3BAmN,EAAK5V,EAAGp1S,IAAIgrT,EAAIA,GAChBzM,EAAKnJ,EAAGn7S,IAAI2jT,EAAIE,GAChBS,EAAKnJ,EAAGp1S,IAAIu+S,EAAIA,GAChBH,EAAKhJ,EAAGn7S,IAAI+C,EAAGuhT,GACfF,EAAKjJ,EAAGn7S,IAAI2I,EAAI2kD,GAChB82P,EAAKjJ,EAAGp1S,IAAIo+S,EAAIC,GAChBD,EAAKhJ,EAAGn1S,IAAIkuC,EAAIkwQ,GAChBA,EAAKjJ,EAAGp1S,IAAImuC,EAAIkwQ,GAChBA,EAAKjJ,EAAGn7S,IAAImkT,EAAIC,GAChBD,EAAKhJ,EAAGn7S,IAAI+wT,EAAI5M,GAChBG,EAAKnJ,EAAGn7S,IAAI2I,EAAI27S,GAChBh3P,EAAK6tP,EAAGn7S,IAAI+C,EAAGuqD,GACfyjQ,EAAK5V,EAAGn1S,IAAIiuC,EAAIqZ,GAChByjQ,EAAK5V,EAAGn7S,IAAI+C,EAAGguT,GACfA,EAAK5V,EAAGp1S,IAAIgrT,EAAIzM,GAChBA,EAAKnJ,EAAGp1S,IAAIkuC,EAAIA,GAChBA,EAAKknQ,EAAGp1S,IAAIu+S,EAAIrwQ,GAChBA,EAAKknQ,EAAGp1S,IAAIkuC,EAAIqZ,GAChBrZ,EAAKknQ,EAAGn7S,IAAIi0C,EAAI88Q,GAChB3M,EAAKjJ,EAAGp1S,IAAIq+S,EAAInwQ,GAChBqZ,EAAK6tP,EAAGn7S,IAAI4jT,EAAIC,GAChBv2P,EAAK6tP,EAAGp1S,IAAIunD,EAAIA,GAChBrZ,EAAKknQ,EAAGn7S,IAAIstD,EAAIyjQ,GAChB5M,EAAKhJ,EAAGn1S,IAAIm+S,EAAIlwQ,GAChBqwQ,EAAKnJ,EAAGn7S,IAAIstD,EAAIpZ,GAChBowQ,EAAKnJ,EAAGp1S,IAAIu+S,EAAIA,GAChBA,EAAKnJ,EAAGp1S,IAAIu+S,EAAIA,GACT,IAAIhC,EAAM6B,EAAIC,EAAIE,EAC3B,CAMAv+S,GAAAA,CAAIqwD,GACFs6P,EAAet6P,GACf,MAAQhL,GAAIu4P,EAAIt4P,GAAIu4P,EAAIt4P,GAAIu4P,GAAO3kT,MAC3BksD,GAAI03P,EAAIz3P,GAAI03P,EAAIz3P,GAAI03P,GAAO5sP,EACnC,IAAI+tP,EAAKhJ,EAAGoB,KAAM6H,EAAKjJ,EAAGoB,KAAM+H,EAAKnJ,EAAGoB,KACxC,MAAMx5S,EAAIy+S,EAAMz+S,EACV4F,EAAKwyS,EAAGn7S,IAAIwhT,EAAM3yT,EAAG4sT,IAC3B,IAAIxnQ,EAAKknQ,EAAGn7S,IAAI2jT,EAAIb,GAChB5uQ,EAAKinQ,EAAGn7S,IAAI4jT,EAAIb,GAChBz1P,EAAK6tP,EAAGn7S,IAAI6jT,EAAIb,GAChB+N,EAAK5V,EAAGp1S,IAAI49S,EAAIC,GAChBoN,EAAK7V,EAAGp1S,IAAI+8S,EAAIC,GACpBgO,EAAK5V,EAAGn7S,IAAI+wT,EAAIC,GAChBA,EAAK7V,EAAGp1S,IAAIkuC,EAAIC,GAChB68Q,EAAK5V,EAAGn1S,IAAI+qT,EAAIC,GAChBA,EAAK7V,EAAGp1S,IAAI49S,EAAIE,GAChB,IAAIoN,EAAK9V,EAAGp1S,IAAI+8S,EAAIE,GA+BpB,OA9BAgO,EAAK7V,EAAGn7S,IAAIgxT,EAAIC,GAChBA,EAAK9V,EAAGp1S,IAAIkuC,EAAIqZ,GAChB0jQ,EAAK7V,EAAGn1S,IAAIgrT,EAAIC,GAChBA,EAAK9V,EAAGp1S,IAAI69S,EAAIC,GAChBM,EAAKhJ,EAAGp1S,IAAIg9S,EAAIC,GAChBiO,EAAK9V,EAAGn7S,IAAIixT,EAAI9M,GAChBA,EAAKhJ,EAAGp1S,IAAImuC,EAAIoZ,GAChB2jQ,EAAK9V,EAAGn1S,IAAIirT,EAAI9M,GAChBG,EAAKnJ,EAAGn7S,IAAI+C,EAAGiuT,GACf7M,EAAKhJ,EAAGn7S,IAAI2I,EAAI2kD,GAChBg3P,EAAKnJ,EAAGp1S,IAAIo+S,EAAIG,GAChBH,EAAKhJ,EAAGn1S,IAAIkuC,EAAIowQ,GAChBA,EAAKnJ,EAAGp1S,IAAImuC,EAAIowQ,GAChBF,EAAKjJ,EAAGn7S,IAAImkT,EAAIG,GAChBpwQ,EAAKinQ,EAAGp1S,IAAIkuC,EAAIA,GAChBC,EAAKinQ,EAAGp1S,IAAImuC,EAAID,GAChBqZ,EAAK6tP,EAAGn7S,IAAI+C,EAAGuqD,GACf0jQ,EAAK7V,EAAGn7S,IAAI2I,EAAIqoT,GAChB98Q,EAAKinQ,EAAGp1S,IAAImuC,EAAIoZ,GAChBA,EAAK6tP,EAAGn1S,IAAIiuC,EAAIqZ,GAChBA,EAAK6tP,EAAGn7S,IAAI+C,EAAGuqD,GACf0jQ,EAAK7V,EAAGp1S,IAAIirT,EAAI1jQ,GAChBrZ,EAAKknQ,EAAGn7S,IAAIk0C,EAAI88Q,GAChB5M,EAAKjJ,EAAGp1S,IAAIq+S,EAAInwQ,GAChBA,EAAKknQ,EAAGn7S,IAAIixT,EAAID,GAChB7M,EAAKhJ,EAAGn7S,IAAI+wT,EAAI5M,GAChBA,EAAKhJ,EAAGn1S,IAAIm+S,EAAIlwQ,GAChBA,EAAKknQ,EAAGn7S,IAAI+wT,EAAI78Q,GAChBowQ,EAAKnJ,EAAGn7S,IAAIixT,EAAI3M,GAChBA,EAAKnJ,EAAGp1S,IAAIu+S,EAAIrwQ,GACT,IAAIquQ,EAAM6B,EAAIC,EAAIE,EAC3B,CAEAG,QAAAA,CAASruP,GACP,OAAOl3D,KAAK6G,IAAIqwD,EAAMqoP,SACxB,CAEAnB,GAAAA,GACE,OAAOp+S,KAAKwkB,OAAO4+R,EAAM/F,KAC3B,CACQ6C,IAAAA,CAAK/xS,GACX,OAAOo2S,EAAKpD,WAAWnhT,KAAMmO,EAAGi1S,EAAMe,WACxC,CAOAqB,cAAAA,CAAeppP,GACb,MAAM,KAAE60P,EAAM9iT,EAAG1B,GAAM61S,EACvB9pC,GAAY,SAAUp8M,EAAIw9O,GAAKntS,GAC/B,MAAM2pG,EAAIgtM,EAAM/F,KAChB,GAAIjhP,IAAOw9O,GAAK,OAAOxjM,EACvB,GAAIp2G,KAAKo+S,OAAShiP,IAAOy9O,GAAK,OAAO75S,KAGrC,IAAKixT,GAAQ1M,EAAKpE,eAAengT,MAC/B,OAAOukT,EAAKnD,iBAAiBphT,KAAMo8D,EAAIgnP,EAAMe,YAG/C,IAAI,MAAE6N,EAAK,GAAE3sQ,EAAE,MAAE4sQ,EAAK,GAAEl6S,GAAOk5S,EAAKE,YAAY/0P,GAC5C81P,EAAM97M,EACN+7M,EAAM/7M,EACN39F,EAAWzY,KACf,KAAOqlD,EAAKu0P,IAAO7hS,EAAK6hS,IAClBv0P,EAAKw0P,KAAKqY,EAAMA,EAAIrrT,IAAI4R,IACxBV,EAAK8hS,KAAKsY,EAAMA,EAAItrT,IAAI4R,IAC5BA,EAAIA,EAAE6nS,SACNj7P,IAAOw0P,GACP9hS,IAAO8hS,GAKT,OAHImY,IAAOE,EAAMA,EAAI3S,UACjB0S,IAAOE,EAAMA,EAAI5S,UACrB4S,EAAM,IAAI/O,EAAMnH,EAAGn7S,IAAIqxT,EAAIjmQ,GAAI+kQ,EAAKC,MAAOiB,EAAIhmQ,GAAIgmQ,EAAI/lQ,IAChD8lQ,EAAIrrT,IAAIsrT,EACjB,CAWAzsQ,QAAAA,CAASg8P,GACP,MAAM,KAAEuP,EAAM9iT,EAAG1B,GAAM61S,EAEvB,IAAIjvQ,EAAc++Q,EAClB,GAFA55C,GAAY,SAAUkpC,EAAQ7H,GAAKptS,GAE/BwkT,EAAM,CACR,MAAM,MAAEe,EAAK,GAAE3sQ,EAAE,MAAE4sQ,EAAK,GAAEl6S,GAAOk5S,EAAKE,YAAYzP,GAClD,IAAMh0S,EAAGwkT,EAAKznS,EAAG4nS,GAAQryT,KAAKkgT,KAAK76P,IAC7B33C,EAAGykT,EAAK1nS,EAAG6nS,GAAQtyT,KAAKkgT,KAAKnoS,GACnCm6S,EAAM3N,EAAKjF,gBAAgB0S,EAAOE,GAClCC,EAAM5N,EAAKjF,gBAAgB2S,EAAOE,GAClCA,EAAM,IAAI/O,EAAMnH,EAAGn7S,IAAIqxT,EAAIjmQ,GAAI+kQ,EAAKC,MAAOiB,EAAIhmQ,GAAIgmQ,EAAI/lQ,IACvD/Y,EAAQ6+Q,EAAIrrT,IAAIsrT,GAChBC,EAAOC,EAAIxrT,IAAIyrT,EACjB,KAAO,CACL,MAAM,EAAE5kT,EAAC,EAAE+c,GAAMzqB,KAAKkgT,KAAKwB,GAC3BruQ,EAAQ3lC,EACR0kT,EAAO3nS,CACT,CAEA,OAAO24R,EAAMe,WAAW,CAAC9wQ,EAAO++Q,IAAO,EACzC,CAQAG,oBAAAA,CAAqB5gN,EAAU9tG,EAAWlU,GACxC,MAAMw8I,EAAIi3K,EAAMhoT,KACV0F,EAAMA,CACVk1G,EACAnyG,IACIA,IAAM+1S,IAAO/1S,IAAMg2S,IAAQ7jM,EAAExxF,OAAO2nH,GAA2Bn2B,EAAEtwD,SAAS7hD,GAAjCmyG,EAAEwvM,eAAe3hT,GAC1DpK,EAAMqH,EAAId,KAAM6D,GAAGgD,IAAI/F,EAAI6wG,EAAGhiH,IACpC,OAAO8J,EAAI2kT,WAAQrsT,EAAY0H,CACjC,CAKAwqT,QAAAA,CAASX,GACP,OAAOD,EAAarjT,KAAMsjT,EAC5B,CACAoC,aAAAA,GACE,MAAQv1S,EAAG2yS,EAAQ,cAAE4C,GAAkBpD,EACvC,GAAIQ,IAAajJ,GAAK,OAAO,EAC7B,GAAI6L,EAAe,OAAOA,EAActC,EAAOpjT,MAC/C,MAAM,IAAIrO,MAAM,+DAClB,CACAg0T,aAAAA,GACE,MAAQx1S,EAAG2yS,EAAQ,cAAE6C,GAAkBrD,EACvC,OAAIQ,IAAajJ,GAAY75S,KACzB2lT,EAAsBA,EAAcvC,EAAOpjT,MACxCA,KAAKwlT,eAAelD,EAAMnyS,EACnC,CAEAi2S,UAAAA,GAA8B,IAAnBoM,IAAY1gU,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,KAAAA,UAAA,GAGrB,OAFAioT,GAAM,eAAgByY,GACtBxyT,KAAKwkT,iBACEhQ,EAAQ4O,EAAOpjT,KAAMwyT,EAC9B,CAEAnM,KAAAA,GAAyB,IAAnBmM,IAAY1gU,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,KAAAA,UAAA,GAEhB,OADAioT,GAAM,eAAgByY,GACfh6C,GAAcx4Q,KAAKomT,WAAWoM,GACvC,EA5TgBpP,EAAAhoT,KAAO,IAAIgoT,EAAMd,EAAMN,GAAIM,EAAML,GAAIhG,EAAGiB,KACxCkG,EAAA/F,KAAO,IAAI+F,EAAMnH,EAAGoB,KAAMpB,EAAGiB,IAAKjB,EAAGoB,MA6TvD,MAAMoV,EAAQnQ,EAAM5E,WACd6G,EAAOrE,GAAKkD,EAAOd,EAAM2O,KAAO/+T,KAAKyP,KAAK8wT,EAAQ,GAAKA,GAE7D,MAAO,CACLnQ,QACAoQ,gBAAiBtP,EACjBmO,yBACAD,sBACAqB,mBAvZF,SAA4Bj0T,GAC1B,OAAO85Q,GAAW95Q,EAAKm7S,GAAKyI,EAAMn0S,EACpC,EAuZF,CAmFM,SAAUykT,GAAYvQ,GAC1B,MAAMC,EA5CR,SACER,GAEA,MAAMvtI,EAAOstI,GAAcC,GAc3B,OAbAtpC,GACEjkG,EACA,CACEjN,KAAM,OACN+nJ,KAAM,WACNv8N,YAAa,YAEf,CACE+/N,SAAU,WACVC,cAAe,WACfvD,KAAM,YAGHv+T,OAAO09C,OAAO,CAAE6gR,MAAM,KAASh7I,GACxC,CA0BgBmuI,CAAaL,IACrB,GAAEpG,EAAI9tS,EAAGw0S,GAAgBL,EACzByQ,EAAgB9W,EAAGgC,MAAQ,EAC3B+U,EAAkB,EAAI/W,EAAGgC,MAAQ,EAEvC,SAASqI,EAAKziT,GACZ,OAAO3B,GAAI2B,EAAG8+S,EAChB,CACA,SAASsQ,EAAKpvT,GACZ,OAAOg5S,GAAOh5S,EAAG8+S,EACnB,CAEA,MACE+P,gBAAiBtP,EAAK,uBACtBmO,EAAsB,oBACtBD,EAAmB,mBACnBqB,GACE9B,GAAkB,IACjBvO,EACH9N,OAAAA,CAAQzgR,EAAIsf,EAAOm/Q,GACjB,MAAM3uT,EAAIwvC,EAAM4wQ,WACVjpT,EAAIihT,EAAGzH,QAAQ3wS,EAAE7I,GACjBk4T,EAAM16C,GAEZ,OADAuhC,GAAM,eAAgByY,GAClBA,EACKU,EAAItjU,WAAWI,KAAK,CAACqjD,EAAMq+Q,WAAa,EAAO,IAAQ12T,GAEvDk4T,EAAItjU,WAAWI,KAAK,CAAC,IAAQgL,EAAGihT,EAAGzH,QAAQ3wS,EAAEyI,GAExD,EACA4yS,SAAAA,CAAUh6R,GACR,MAAMtnB,EAAMsnB,EAAM/0B,OACZmxK,EAAOp8I,EAAM,GACbq4H,EAAOr4H,EAAM9J,SAAS,GAE5B,GAAIxd,IAAQm1T,GAA2B,IAATzxJ,GAA0B,IAATA,EAgBxC,IAAI1jK,IAAQo1T,GAA4B,IAAT1xJ,EAAe,CAGnD,MAAO,CAAEtmK,EAFCihT,EAAGiD,UAAU3hK,EAAKniI,SAAS,EAAG6gS,EAAGgC,QAE/B3xS,EADF2vS,EAAGiD,UAAU3hK,EAAKniI,SAAS6gS,EAAGgC,MAAO,EAAIhC,EAAGgC,QAExD,CAGE,MAAM,IAAItsT,MACR,qCAHSohU,EAGmC,qBAFnCC,EAE+D,SAAWp1T,EAEvF,CA1B+D,CAC7D,MAAM5C,EAAIw9Q,GAAmBj7H,GAC7B,IAAKi7H,GAAWx9Q,EAAG6+S,GAAKoC,EAAG6B,OAAQ,MAAM,IAAInsT,MAAM,yBACnD,MAAM6gD,EAAK8+Q,EAAoBt2T,GAC/B,IAAIsR,EACJ,IACEA,EAAI2vS,EAAG3mS,KAAKk9B,EACd,CAAE,MAAO2gR,GACP,MAAMpsJ,EAASosJ,aAAqBxhU,MAAQ,KAAOwhU,EAAUl5S,QAAU,GACvE,MAAM,IAAItoB,MAAM,wBAA0Bo1K,EAC5C,CAKA,OAFiC,KAAP,EAAPzF,OAFHh1J,EAAIutS,MAASA,MAGHvtS,EAAI2vS,EAAGx2S,IAAI6G,IAC9B,CAAEtR,IAAGsR,IACd,CAWF,IAEI8mT,EAAiB10T,GACrB85Q,GAAcA,GAAmB95Q,EAAK4jT,EAAM1E,cAE9C,SAASyV,EAAsBzzT,GAE7B,OAAOA,EADM+iT,GAAe9I,EAE9B,CAMA,MAAMyZ,EAASA,CAAC3jU,EAAeK,EAAckoD,IAAesgO,GAAmB7oR,EAAEoK,MAAM/J,EAAMkoD,IAK7F,MAAMq7Q,EACJljU,WAAAA,CACWuQ,EACAwM,EACAomT,GAFA,KAAA5yT,EAAAA,EACA,KAAAwM,EAAAA,EACA,KAAAomT,SAAAA,EAETxzT,KAAKwkT,gBACP,CAGA,kBAAOiP,CAAY10T,GACjB,MAAM2N,EAAI41S,EAAM1E,YAEhB,OADA7+S,EAAM87S,GAAY,mBAAoB97S,EAAS,EAAJ2N,GACpC,IAAI6mT,EAAUD,EAAOv0T,EAAK,EAAG2N,GAAI4mT,EAAOv0T,EAAK2N,EAAG,EAAIA,GAC7D,CAIA,cAAOgnT,CAAQ30T,GACb,MAAM,EAAE6B,EAAC,EAAEwM,GAAMuiT,GAAIO,MAAMrV,GAAY,MAAO97S,IAC9C,OAAO,IAAIw0T,EAAU3yT,EAAGwM,EAC1B,CAEAo3S,cAAAA,GACEhsC,GAAY,IAAKx4Q,KAAKY,EAAGi5S,GAAK8I,GAC9BnqC,GAAY,IAAKx4Q,KAAKoN,EAAGysS,GAAK8I,EAChC,CAEAgR,cAAAA,CAAeH,GACb,OAAO,IAAID,EAAUvzT,KAAKY,EAAGZ,KAAKoN,EAAGomT,EACvC,CAEAI,gBAAAA,CAAiBC,GACf,MAAM,EAAEjzT,EAAC,EAAEwM,EAAGomT,SAAUM,GAAQ9zT,KAC1BmQ,EAAI2iT,EAAcjY,GAAY,UAAWgZ,IAC/C,GAAW,MAAPC,IAAgB,CAAC,EAAG,EAAG,EAAG,GAAGhvS,SAASgvS,GAAM,MAAM,IAAIniU,MAAM,uBAChE,MAAMoiU,EAAe,IAARD,GAAqB,IAARA,EAAYlzT,EAAI0hT,EAAMn0S,EAAIvN,EACpD,GAAImzT,GAAQ9X,EAAG6B,MAAO,MAAM,IAAInsT,MAAM,8BACtC,MAAMk2D,EAAuB,KAAP,EAANisQ,GAAiB,KAAO,KAClCx9M,EAAI8sM,EAAMwC,QAAQ/9P,EAASurQ,EAAcW,IACzC/yQ,EAAKiyQ,EAAKc,GACV7+Q,EAAKoxQ,GAAMn2S,EAAI6wC,GACfgzQ,EAAK1N,EAAKl5S,EAAI4zC,GACd2wD,EAAIyxM,EAAMhoT,KAAKm3T,qBAAqBj8M,EAAGphE,EAAI8+Q,GACjD,IAAKriN,EAAG,MAAM,IAAIhgH,MAAM,qBAExB,OADAggH,EAAE6yM,iBACK7yM,CACT,CAGAsiN,QAAAA,GACE,OAAOZ,EAAsBrzT,KAAKoN,EACpC,CAEA8mT,UAAAA,GACE,OAAOl0T,KAAKi0T,WAAa,IAAIV,EAAUvzT,KAAKY,EAAG0lT,GAAMtmT,KAAKoN,GAAIpN,KAAKwzT,UAAYxzT,IACjF,CAGAm0T,aAAAA,GACE,OAAO37C,GAAcx4Q,KAAKo0T,WAC5B,CACAA,QAAAA,GACE,OAAOzE,GAAIgB,WAAW,CAAE/vT,EAAGZ,KAAKY,EAAGwM,EAAGpN,KAAKoN,GAC7C,CAGAinT,iBAAAA,GACE,OAAO77C,GAAcx4Q,KAAKs0T,eAC5B,CACAA,YAAAA,GACE,OAAOlB,EAAcpzT,KAAKY,GAAKwyT,EAAcpzT,KAAKoN,EACpD,EAIF,MAAMiqL,EAAQ,CACZk9H,iBAAAA,CAAkB9C,GAChB,IAEE,OADAF,EAAuBE,IAChB,CACT,CAAE,MAAO9zS,GACP,OAAO,CACT,CACF,EACA4zS,uBAAwBA,EAMxB1K,iBAAkBA,KAChB,MAAM12T,EAASkvT,GAAiBiD,EAAMn0S,GACtC,OhBzdA,SAAyBoK,EAAiB6mS,GAAgC,IAAZx1R,EAAI93B,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GACtE,MAAM8L,EAAM2a,EAAIpoB,OACVqkU,EAAWrV,GAAoBC,GAC/BxpF,EAASypF,GAAiBD,GAEhC,GAAIxhT,EAAM,IAAMA,EAAMg4N,GAAUh4N,EAAM,KACpC,MAAM,IAAIjM,MAAM,YAAcikO,EAAS,6BAA+Bh4N,GACxE,MAEM62T,EAAUvyT,GAFJ0nB,EAAO8wR,GAAgBniS,GAAOkiS,GAAgBliS,GAEjC6mS,EAAavF,IAAOA,GAC7C,OAAOjwR,EAAOgxR,GAAgB6Z,EAASD,GAAY7Z,GAAgB8Z,EAASD,EAC9E,CgB8caE,CAAepS,EAAMxvN,YAAY3iG,GAASmyT,EAAMn0S,EAAE,EAW3D24S,UAAAA,GAA6C,IAAlCnH,EAAU7tT,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAAGuhD,EAAKvhD,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGsxT,EAAMhoT,KAGvC,OAFAi4C,EAAMixQ,eAAe3E,GACrBtsQ,EAAMqS,SAAS1mD,OAAO,IACfq0C,CACT,GAgBF,SAASshR,EAAUr3S,GACjB,MAAM9f,EAAMg7Q,GAAWl7P,GACjB1gB,EAAsB,kBAAT0gB,EACb1f,GAAOJ,GAAOZ,IAAS0gB,EAAantB,OAC1C,OAAIqN,EAAYI,IAAQm1T,GAAiBn1T,IAAQo1T,EAC7Cp2T,EAAYgB,IAAQ,EAAIm1T,GAAiBn1T,IAAQ,EAAIo1T,EACrD11S,aAAgB8lS,CAEtB,CAuBA,MAAMyP,EACJvQ,EAAMuQ,UACN,SAAU3tS,GAER,GAAIA,EAAM/0B,OAAS,KAAM,MAAM,IAAIwB,MAAM,sBAGzC,MAAM+M,EAAM85Q,GAAmBtzP,GACzBhS,EAAuB,EAAfgS,EAAM/0B,OAAamyT,EAAM5E,WACvC,OAAOxqS,EAAQ,EAAIxU,GAAOM,OAAOkU,GAASxU,CAC5C,EACIo0T,EACJxQ,EAAMwQ,eACN,SAAU5tS,GACR,OAAOohS,EAAKuM,EAAS3tS,GACvB,EAEI0vS,EAAap8C,GAAW8pC,EAAM5E,YAIpC,SAASmX,EAAWn2T,GAGlB,OAFA85Q,GAAY,WAAa8pC,EAAM5E,WAAYh/S,EAAKk7S,GAAKgb,GAE9Cp8C,GAAmB95Q,EAAK4jT,EAAM1E,YACvC,CAOA,SAASkX,EAAQjB,EAAcpC,GAA0C,IAArBl9I,EAAIziL,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGijU,EACzD,GAAI,CAAC,YAAa,aAAa5yJ,MAAMr+J,GAAMA,KAAKywK,IAC9C,MAAM,IAAI5iL,MAAM,uCAClB,MAAM,KAAE21K,EAAI,YAAEx0E,GAAgBwvN,EAC9B,IAAI,KAAEiN,EAAI,QAAE3M,EAASoS,aAAcC,GAAQ1gJ,EAC/B,MAARg7I,IAAcA,GAAO,GACzBsE,EAAUhZ,GAAY,UAAWgZ,GACjCvE,GAAmB/6I,GACfquI,IAASiR,EAAUhZ,GAAY,oBAAqBvzI,EAAKusJ,KAK7D,MAAMqB,EAAQpC,EAAce,GACtBp7S,EAAI84S,EAAuBE,GAC3B0D,EAAW,CAACN,EAAWp8S,GAAIo8S,EAAWK,IAE5C,GAAW,MAAPD,IAAuB,IAARA,EAAe,CAEhC,MAAM9+T,GAAY,IAAR8+T,EAAeniO,EAAYmpN,EAAGgC,OAASgX,EACjDE,EAAS3/T,KAAKqlT,GAAY,eAAgB1kT,GAC5C,CACA,MAAMq8F,EAAOgmL,MAAkB28C,GACzB/mT,EAAI8mT,EAuBV,MAAO,CAAE1iO,OAAM4iO,MArBf,SAAeC,GAEb,MAAMvxT,EAAI+uT,EAASwC,GACnB,IAAK1C,EAAmB7uT,GAAI,OAC5B,MAAMy8I,EAAK0yK,EAAKnvT,GACV6L,EAAIyzS,EAAMhoT,KAAKsqD,SAAS5hD,GAAGmgT,WAC3BrjT,EAAI0lT,EAAK32S,EAAE3U,GACjB,GAAI4F,IAAMg5S,GAAK,OAIf,MAAMxsS,EAAIk5S,EAAK/lK,EAAK+lK,EAAKl4S,EAAIxN,EAAI6X,IACjC,GAAIrL,IAAMwsS,GAAK,OACf,IAAI4Z,GAAY7jT,EAAE3U,IAAM4F,EAAI,EAAI,GAAKpQ,OAAOmf,EAAErD,EAAIutS,IAC9Cyb,EAAQloT,EAKZ,OAJImiT,GAAQ8D,EAAsBjmT,KAChCkoT,EA7ON,SAAoBloT,GAClB,OAAOimT,EAAsBjmT,GAAKk5S,GAAMl5S,GAAKA,CAC/C,CA2Oc8mT,CAAW9mT,GACnBomT,GAAY,GAEP,IAAID,EAAU3yT,EAAG00T,EAAO9B,EACjC,EAEF,CACA,MAAMuB,EAA2B,CAAExF,KAAMjN,EAAMiN,KAAM3M,SAAS,GACxD2S,EAA0B,CAAEhG,KAAMjN,EAAMiN,KAAM3M,SAAS,GAiG7D,OA1EAQ,EAAMhoT,KAAKkpT,eAAe,GA0EnB,CACLhC,QACAyE,aA1NF,SAAsB0K,GAAwC,IAAnBe,IAAY1gU,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,KAAAA,UAAA,GACrD,OAAOsxT,EAAM6C,eAAewL,GAAYrL,WAAWoM,EACrD,EAyNEgD,gBAhMF,SAAyBC,EAAmBC,GAAiC,IAAnBlD,IAAY1gU,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,KAAAA,UAAA,GACpE,GAAI6iU,EAAUc,GAAW,MAAM,IAAI9jU,MAAM,iCACzC,IAAKgjU,EAAUe,GAAU,MAAM,IAAI/jU,MAAM,iCAEzC,OADUyxT,EAAMwC,QAAQ8P,GACfhwQ,SAAS6rQ,EAAuBkE,IAAWrP,WAAWoM,EACjE,EA4LExL,KAtFF,SAAc6M,EAAc3N,GAAuC,IAArB3xI,EAAIziL,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGijU,EACnD,MAAM,KAAEviO,EAAI,MAAE4iO,GAAUN,EAAQjB,EAAS3N,EAAS3xI,GAC5CliK,EAAIiwS,EAEV,OADa9pC,GAAsCnmQ,EAAEi1J,KAAK4sI,UAAW7hS,EAAEurS,YAAavrS,EAAEg9S,KAC/EsG,CAAKnjO,EAAM4iO,EACpB,EAkFE1hC,OA/DF,SACE5R,EACA+xC,EACA3M,GACqB,IAArB3yI,EAAIziL,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAGyjU,EAEP,MAAMvnL,EAAK8zI,EACX+xC,EAAUhZ,GAAY,UAAWgZ,GACjC3M,EAAYrM,GAAY,YAAaqM,GACrC,MAAM,KAAEqI,EAAI,QAAE3M,EAAO,OAAEp4R,GAAW+pJ,EAIlC,GADA+6I,GAAmB/6I,GACf,WAAYA,EAAM,MAAM,IAAI5iL,MAAM,sCACtC,QAAeI,IAAXy4B,GAAmC,YAAXA,GAAmC,QAAXA,EAClD,MAAM,IAAI74B,MAAM,iCAClB,MAAMikU,EAAsB,kBAAP5nL,GAAmBwqI,GAAWxqI,GAC7C6nL,GACHD,IACAprS,GACa,kBAAPwjH,GACA,OAAPA,GACgB,kBAATA,EAAGptI,GACM,kBAATotI,EAAG5gI,EACZ,IAAKwoT,IAAUC,EACb,MAAM,IAAIlkU,MAAM,4EAElB,IAAImkU,EACA9/M,EACJ,IAEE,GADI6/M,IAAOC,EAAO,IAAIvC,EAAUvlL,EAAGptI,EAAGotI,EAAG5gI,IACrCwoT,EAAO,CAGT,IACiB,YAAXprS,IAAsBsrS,EAAOvC,EAAUG,QAAQ1lL,GACrD,CAAE,MAAO+nL,GACP,KAAMA,aAAoBpG,GAAIC,KAAM,MAAMmG,CAC5C,CACKD,GAAmB,QAAXtrS,IAAkBsrS,EAAOvC,EAAUE,YAAYzlL,GAC9D,CACAh4B,EAAIotM,EAAMwC,QAAQsB,EACpB,CAAE,MAAOvpS,GACP,OAAO,CACT,CACA,IAAKm4S,EAAM,OAAO,EAClB,GAAIvG,GAAQuG,EAAK7B,WAAY,OAAO,EAChCrR,IAASiR,EAAUvR,EAAMh7I,KAAKusJ,IAClC,MAAM,EAAEjzT,EAAC,EAAEwM,GAAM0oT,EACX3lT,EAAI2iT,EAAce,GAClB5yQ,EAAKgyQ,EAAK7lT,GACV8nC,EAAKoxQ,EAAKn2S,EAAI8wC,GACd+yQ,EAAK1N,EAAK1lT,EAAIqgD,GACdq1D,EAAI8sM,EAAMhoT,KAAKm3T,qBAAqBv8M,EAAG9gE,EAAI8+Q,IAAK/P,WACtD,QAAK3tM,GACKgwM,EAAKhwM,EAAEt7G,KACJ4F,CACf,EAOE8xT,gBAAiBtP,EACjBmQ,YACAl8H,QAEJ,CChtCM,SAAU2+H,GAAQ1uJ,GAKtB,MAAO,CACLA,OACA+nJ,KAAM,SAAC92S,GAAe,QAAAwD,EAAAjqB,UAAA3B,OAAKw2T,EAAkB,IAAA5wT,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAlB0qS,EAAkB1qS,EAAA,GAAAnqB,UAAAmqB,GAAA,OAAKozS,GAAK/nJ,EAAM/uJ,EtB0J3D,WACJ,IAAI9e,EAAM,EACV,IAAK,IAAIlE,EAAI,EAAGA,EAAIzD,UAAO3B,OAAQoF,IAAK,CACtC,MAAMsO,EAAWtO,EAAC,GAAAzD,UAAA3B,QAADoF,OAACxD,EAAAD,UAADyD,GACjBs+S,GAAOhwS,GACPpK,GAAOoK,EAAE1T,MACX,CACA,MAAMiU,EAAM,IAAIxU,WAAW6J,GAC3B,IAAK,IAAIlE,EAAI,EAAGylT,EAAM,EAAGzlT,EAAIzD,UAAO3B,OAAQoF,IAAK,CAC/C,MAAMsO,EAAWtO,EAAC,GAAAzD,UAAA3B,QAADoF,OAACxD,EAAAD,UAADyD,GACjB6O,EAAIia,IAAIxa,EAAGm3S,GACXA,GAAOn3S,EAAE1T,MACX,CACA,OAAOiU,CACT,CsBxKsE22S,IAAe4L,GAAM,EACvF7zN,YAAWA,GAEf,CCQA,MAAMmjO,GAAaj3T,OAAO,sEACpBk3T,GAAal3T,OAAO,sEACpB66S,GAAM76S,OAAO,GACb86S,GAAM96S,OAAO,GACbm3T,GAAaA,CAACtyT,EAAWlU,KAAekU,EAAIlU,EAAImqT,IAAOnqT,EAM7D,SAASymU,GAAQ9pT,GACf,MAAM0pG,EAAIigN,GAEJ1Z,EAAMv9S,OAAO,GAAIq3T,EAAMr3T,OAAO,GAAIs3T,EAAOt3T,OAAO,IAAKu3T,EAAOv3T,OAAO,IAEnEw3T,EAAOx3T,OAAO,IAAKy3T,EAAOz3T,OAAO,IAAK03T,EAAO13T,OAAO,IACpDsK,EAAMgD,EAAIA,EAAIA,EAAK0pG,EACnBvsG,EAAMH,EAAKA,EAAKgD,EAAK0pG,EACrB9rG,EAAM0yS,GAAKnzS,EAAI8yS,EAAKvmM,GAAKvsG,EAAMusG,EAC/BrrG,EAAMiyS,GAAK1yS,EAAIqyS,EAAKvmM,GAAKvsG,EAAMusG,EAC/B2gN,EAAO/Z,GAAKjyS,EAAImvS,GAAK9jM,GAAK1sG,EAAM0sG,EAChC4gN,EAAOha,GAAK+Z,EAAKL,EAAMtgN,GAAK2gN,EAAO3gN,EACnC6gN,EAAOja,GAAKga,EAAKL,EAAMvgN,GAAK4gN,EAAO5gN,EACnC8gN,EAAOla,GAAKia,EAAKJ,EAAMzgN,GAAK6gN,EAAO7gN,EACnC+gN,EAAQna,GAAKka,EAAKJ,EAAM1gN,GAAK8gN,EAAO9gN,EACpCghN,EAAQpa,GAAKma,EAAMN,EAAMzgN,GAAK6gN,EAAO7gN,EACrCihN,EAAQra,GAAKoa,EAAMza,EAAKvmM,GAAKvsG,EAAMusG,EACnChhE,EAAM4nQ,GAAKqa,EAAMT,EAAMxgN,GAAK4gN,EAAO5gN,EACnC5nD,EAAMwuP,GAAK5nQ,EAAIqhR,EAAKrgN,GAAK1sG,EAAM0sG,EAC/Br/C,EAAOimP,GAAKxuP,EAAI0rP,GAAK9jM,GAC3B,IAAKkhN,GAAKla,IAAIka,GAAK1nT,IAAImnD,GAAOrqD,GAAI,MAAM,IAAI3a,MAAM,2BAClD,OAAOglE,CACT,CAEA,MAAMugQ,GAAOrZ,GAAMoY,QAAYlkU,OAAWA,EAAW,CAAEujB,KAAM8gT,KAchDe,GDnDP,SAAsB9U,EAAoB+U,GAC9C,MAAMnmU,EAAUq2K,GAAyBsrJ,GAAY,IAAKvQ,KAAa2T,GAAQ1uJ,KAC/E,MAAO,IAAKr2K,EAAOmmU,GAAUnmU,SAC/B,CCgD4ComU,CAC1C,CACExzT,EAAG7E,OAAO,GACVrP,EAAGqP,OAAO,GACVi9S,GAAIib,GACJ/oT,EAAG+nT,GAEHlU,GAAIhjT,OAAO,iFACXijT,GAAIjjT,OAAO,iFACXmR,EAAGnR,OAAO,GACVuwT,MAAM,EACN0B,KAAM,CAEJC,KAAMlyT,OAAO,sEACbmyT,YAAcrtT,IACZ,MAAMqK,EAAI+nT,GACJ7uT,EAAKrI,OAAO,sCACZmK,GAAM0wS,GAAM76S,OAAO,sCACnBwI,EAAKxI,OAAO,uCACZsK,EAAKjC,EACLiwT,EAAYt4T,OAAO,uCAEnB87C,EAAKq7Q,GAAW7sT,EAAKxF,EAAGqK,GACxB4sC,EAAKo7Q,IAAYhtT,EAAKrF,EAAGqK,GAC/B,IAAIk3C,EAAKnjD,GAAI4B,EAAIg3C,EAAKzzC,EAAK0zC,EAAKvzC,EAAI2G,GAChC4J,EAAK7V,IAAK44C,EAAK3xC,EAAK4xC,EAAKzxC,EAAI6E,GACjC,MAAM6jT,EAAQ3sQ,EAAKiyQ,EACbrF,EAAQl6S,EAAKu/S,EAGnB,GAFItF,IAAO3sQ,EAAKl3C,EAAIk3C,GAChB4sQ,IAAOl6S,EAAK5J,EAAI4J,GAChBstC,EAAKiyQ,GAAav/S,EAAKu/S,EACzB,MAAM,IAAI3lU,MAAM,uCAAyCmS,GAE3D,MAAO,CAAEkuT,QAAO3sQ,KAAI4sQ,QAAOl6S,KAAI,IAIrCoxS,IAKUnqT,OAAO,GAkBLm4T,GAAUzE,gBAkHjB,MC1OM6E,GAAqB3O,GAAQvxH,MAAMwvH,iBACnC2Q,GAAkBA,KAC7B,MAAMC,EAAgB7O,GAAQvxH,MAAMwvH,mBAC9BK,EAAYH,GAAa0Q,GACzBC,EAAY,IAAI9nU,WAAW,IAGjC,OAFA8nU,EAAUr5S,IAAIo5S,GACdC,EAAUr5S,IAAI6oS,EAAW,IAClB,CACLA,YACAwQ,YACD,EAEU3Q,GAAe6B,GAAQ7B,aAC7B,SAAS4Q,GAAUzQ,GACxB,IAEE,OADA0B,GAAQxB,cAAcxB,QAAQsB,IACvB,CACT,CAAE,MACA,OAAO,CACT,CACF,CACO,MAAMF,GAAOA,CAClB/sS,EACAy9S,IACG9O,GAAQ5B,KAAK/sS,EAASy9S,EAAU39T,MAAM,EAAG,KACjC25R,GAASk1B,GAAQl1B,OCxCjBjwR,GAAYjG,GACnBzN,GAAAA,OAAOuM,SAASkB,GACXA,EACEA,aAAe5N,WACjBG,GAAAA,OAAOC,KAAKwN,EAAIvN,OAAQuN,EAAItN,WAAYsN,EAAIR,YAE5CjN,GAAAA,OAAOC,KAAKwN,GCJhB,MAAM4sT,GACX/5T,WAAAA,CAAY00E,GACV/zE,OAAOG,OAAO6O,KAAM+kE,EACtB,CAEA3yE,MAAAA,GACE,OAAOrC,GAAAA,OAAOC,MAAKmpB,EAAAA,GAAAA,WAAUy+S,GAAe53T,MAC9C,CAEA,aAAOhO,CAAOkuB,GACZ,OAAOhH,EAAAA,GAAAA,aAAY0+S,GAAe53T,KAAMkgB,EAC1C,CAEA,sBAAO23S,CAAgB33S,GACrB,OAAOjH,EAAAA,GAAAA,sBAAqB2+S,GAAe53T,KAAMkgB,EACnD,EAKK,MAAM43S,WAAa1N,GAExB/5T,WAAAA,CAAY00E,GAEV,GADA7qD,MAAM6qD,GAAY,KAFpBgzP,KAAe,GAG0B,IAAnC/mU,OAAOg1C,KAAK++B,GAAY50E,OAC1B,MAAM,IAAIwB,MAAM,mCAElBX,OAAOg1C,KAAK++B,GAAYhnD,KAAIxF,IAC1BvY,KAAK+3T,KAAOx/S,CAAG,GAEnB,QAGWq/S,GAAoC,IAAIx5S,WCzB9C,MAAM45S,GAAkB,GAKlBC,GAAoB,GAyBjC,IAAIC,GAAyB,EAKtB,MAAMC,WAAkB/N,GAQ7B/5T,WAAAA,CAAYuI,GAEV,GADAshB,MAAM,CAAC,GART,KACAk+S,SAAG,EAZL,SAAyBx/T,GACvB,YAAwC7G,IAAhC6G,EAAwBw/T,GAClC,CAkBQC,CAAgBz/T,GAClBoH,KAAKo4T,IAAMx/T,EAAMw/T,QACZ,CACL,GAAqB,kBAAVx/T,EAAoB,CAE7B,MAAMkyK,EAAUwtJ,KAAAA,OAAY1/T,GAC5B,GAAIkyK,EAAQ36K,QAAU8nU,GACpB,MAAM,IAAItmU,MAAM,4BAElBqO,KAAKo4T,IAAM,IAAIz4T,KAAJ,CAAOmrK,EACpB,MACE9qK,KAAKo4T,IAAM,IAAIz4T,KAAJ,CAAO/G,GAGpB,GAAIoH,KAAKo4T,IAAIp7T,aAAei7T,GAC1B,MAAM,IAAItmU,MAAM,2BAEpB,CACF,CAKA,aAAO4mU,GACL,MAAMhgT,EAAM,IAAI4/S,GAAUD,IAE1B,OADAA,IAA0B,EACnB,IAAIC,GAAU5/S,EAAI9U,WAC3B,CAWA+gB,MAAAA,CAAO0iS,GACL,OAAOlnT,KAAKo4T,IAAIpkT,GAAGkzS,EAAUkR,IAC/B,CAKAI,QAAAA,GACE,OAAOF,KAAAA,OAAYt4T,KAAKw0S,UAC1B,CAEAhxS,MAAAA,GACE,OAAOxD,KAAKw4T,UACd,CAKAhkB,OAAAA,GACE,MAAM51S,EAAMoB,KAAKyD,WACjB,OAAO,IAAI7T,WAAWgP,EAAI3O,OAAQ2O,EAAI1O,WAAY0O,EAAI5B,WACxD,CAKAyG,QAAAA,GACE,MAAM9T,EAAIqQ,KAAKo4T,IAAI10T,YAAY3T,GAAAA,QAC/B,GAAIJ,EAAEQ,SAAW8nU,GACf,OAAOtoU,EAGT,MAAM8oU,EAAU1oU,GAAAA,OAAO4L,MAAM,IAE7B,OADAhM,EAAE2K,KAAKm+T,EAAS,GAAK9oU,EAAEQ,QAChBsoU,CACT,CAEA,IAAKh2T,OAAOymJ,eACV,MAAO,aAAalpJ,KAAK9F,aAC3B,CAKAA,QAAAA,GACE,OAAO8F,KAAKw4T,UACd,CAQA,2BAAaE,CACXC,EACAnmO,EACAomO,GAEA,MAAM3oU,EAASF,GAAAA,OAAO0qB,OAAO,CAC3Bk+S,EAAcl1T,WACd1T,GAAAA,OAAOC,KAAKwiG,GACZomO,EAAUn1T,aAENo1T,EAAiB1P,GAAOl5T,GAC9B,OAAO,IAAIkoU,GAAUU,EACvB,CAMA,+BAAOC,CACLC,EACAH,GAEA,IAAI3oU,EAASF,GAAAA,OAAO4L,MAAM,GAC1Bo9T,EAAMt7S,SAAQ,SAAU+0E,GACtB,GAAIA,EAAKriG,OAAS6nU,GAChB,MAAM,IAAInoU,UAAU,4BAEtBI,EAASF,GAAAA,OAAO0qB,OAAO,CAACxqB,EAAQwT,GAAS+uF,IAC3C,IACAviG,EAASF,GAAAA,OAAO0qB,OAAO,CACrBxqB,EACA2oU,EAAUn1T,WACV1T,GAAAA,OAAOC,KAAK,2BAEd,MAAM6oU,EAAiB1P,GAAOl5T,GAC9B,GAAI0nU,GAAUkB,GACZ,MAAM,IAAIlnU,MAAM,kDAElB,OAAO,IAAIwmU,GAAUU,EACvB,CASA,iCAAaG,CACXD,EACAH,GAEA,OAAO54T,KAAK84T,yBAAyBC,EAAOH,EAC9C,CASA,6BAAOK,CACLF,EACAH,GAEA,IACItN,EADAp0B,EAAQ,IAEZ,KAAgB,GAATA,GAAY,CACjB,IACE,MAAMgiC,EAAiBH,EAAMt+S,OAAO1qB,GAAAA,OAAOC,KAAK,CAACknS,KACjDo0B,EAAUtrT,KAAK84T,yBAAyBI,EAAgBN,GACxD,MAAO/sS,GACP,GAAIA,aAAeh8B,UACjB,MAAMg8B,EAERqrQ,IACA,QACF,CACA,MAAO,CAACo0B,EAASp0B,EACnB,CACA,MAAM,IAAIvlS,MAAM,gDAClB,CAQA,+BAAawnU,CACXJ,EACAH,GAEA,OAAO54T,KAAKi5T,uBAAuBF,EAAOH,EAC5C,CAKA,gBAAOjB,CAAUyB,GAEf,OAAOzB,GADQ,IAAIQ,GAAUiB,GACL5kB,UAC1B,EACD6kB,GA9MYlB,GAAAA,GA2CJp+S,QAAqB,IAAIs/S,GAAU,oCAqK5CzB,GAAcv5S,IAAI85S,GAAW,CAC3B56S,KAAM,SACN1nB,OAAQ,CAAC,CAAC,MAAO,WCtPZ,MAAMyjU,GAcXjpU,WAAAA,CAAYqnU,GACV,GAdF,KACQ6B,gBAAU,EAClB,KACQC,gBAAU,EAWZ9B,EAAW,CACb,MAAM+B,EAAkBh2T,GAASi0T,GACjC,GAAyB,KAArBA,EAAUvnU,OACZ,MAAM,IAAIwB,MAAM,uBAElBqO,KAAKu5T,WAAaE,EAAgB1/T,MAAM,GAAI,IAC5CiG,KAAKw5T,WAAaC,EAAgB1/T,MAAM,EAAG,GAC7C,MACEiG,KAAKw5T,WAAa/1T,GAAS8zT,MAC3Bv3T,KAAKu5T,WAAa91T,GAASsjT,GAAa/mT,KAAKw5T,YAEjD,CAKA,aAAItS,GACF,OAAO,IAAIiR,GAAUn4T,KAAKu5T,WAC5B,CAOA,aAAI7B,GACF,OAAO3nU,GAAAA,OAAO0qB,OAAO,CAACza,KAAKw5T,WAAYx5T,KAAKu5T,YAAa,GAC3D,QCnDWG,GAAmC,IAAIvB,GAClD,+CCIWwB,GAAmB,KAEnBC,GAAsB,IAEtBC,GAA4B,GCXlC,MAAMC,WAAmDnoU,MAG9DtB,WAAAA,CAAYyxR,GACV5nQ,MAAM,aAAa4nQ,yCAAiD,KAHtEA,eAAS,EAIP9hR,KAAK8hR,UAAYA,CACnB,EAGF9wR,OAAOgnB,eACL8hT,GAA2C5oU,UAC3C,OACA,CACE0H,MAAO,+CAIJ,MAAMmhU,WAAuCpoU,MAGlDtB,WAAAA,CAAYyxR,EAAmB9Z,GAC7B9tP,MACE,oCAAoC8tP,EAAegyD,QACjD,wEAGGl4C,6CACL,KATJA,eAAS,EAUP9hR,KAAK8hR,UAAYA,CACnB,EAGF9wR,OAAOgnB,eAAe+hT,GAA+B7oU,UAAW,OAAQ,CACtE0H,MAAO,mCAGF,MAAMqhU,WAA4CtoU,MAGvDtB,WAAAA,CAAYyxR,GACV5nQ,MAAM,aAAa4nQ,gDAAwD,KAH7EA,eAAS,EAIP9hR,KAAK8hR,UAAYA,CACnB,EAGF9wR,OAAOgnB,eAAeiiT,GAAoC/oU,UAAW,OAAQ,CAC3E0H,MAAO,wCCvCF,MAAMshU,GAIX7pU,WAAAA,CACE8pU,EACAC,GACA,KANFD,uBAAiB,OACjBC,4BAAsB,EAMpBp6T,KAAKm6T,kBAAoBA,EACzBn6T,KAAKo6T,uBAAyBA,CAChC,CAEAC,WAAAA,GACE,MAAMA,EAAc,CAACr6T,KAAKm6T,mBAK1B,OAJIn6T,KAAKo6T,yBACPC,EAAY7kU,KAAKwK,KAAKo6T,uBAAuB3xS,UAC7C4xS,EAAY7kU,KAAKwK,KAAKo6T,uBAAuBE,WAExCD,CACT,CAEAniT,GAAAA,CAAI1X,GACF,IAAK,MAAM+5T,KAAcv6T,KAAKq6T,cAAe,CAC3C,GAAI75T,EAAQ+5T,EAAWpqU,OACrB,OAAOoqU,EAAW/5T,GAElBA,GAAS+5T,EAAWpqU,MAExB,CAEF,CAEA,UAAIA,GACF,OAAO6P,KAAKq6T,cAAcG,OAAOrqU,MACnC,CAEAsqU,mBAAAA,CACEC,GAIA,GAAI16T,KAAK7P,OAASwqU,IAChB,MAAM,IAAIhpU,MAAM,yDAGlB,MAAMipU,EAAc,IAAIx8S,IACxBpe,KAAKq6T,cACFG,OACA/8S,SAAQ,CAAClF,EAAK/X,KACbo6T,EAAYv8S,IAAI9F,EAAIigT,WAAYh4T,EAAM,IAG1C,MAAMq6T,EAAgBtiT,IACpB,MAAMuiT,EAAWF,EAAY1iT,IAAIK,EAAIigT,YACrC,QAAiBzmU,IAAb+oU,EACF,MAAM,IAAInpU,MACR,qEAEJ,OAAOmpU,CAAQ,EAGjB,OAAOJ,EAAa38S,KAAKg9S,IAChB,CACLC,eAAgBH,EAAaE,EAAYnC,WACzCqC,kBAAmBF,EAAY/0R,KAAKjoB,KAAI42G,GACtCkmM,EAAalmM,EAAKumM,UAEpBh7S,KAAM66S,EAAY76S,QAGxB,ECrEK,MAAMgnS,GAAY,WAAoC,IAAnC32T,EAAgBuB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,YAC3C,OAAOqpU,GAAAA,GAAkB,GAAI5qU,EAC/B,EAKauxR,GAAY,WAAoC,IAAnCvxR,EAAgBuB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,YAC3C,OAAOqpU,GAAAA,GAAkB,GAAI5qU,EAC/B,EA6Ba6qU,GAAa,WAEQ,IADhC7qU,EAAgBuB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,SAEnB,MAAMupU,EAAMF,GAAAA,GAOV,CACEA,GAAAA,GAAiB,UACjBA,GAAAA,GAAiB,iBACjBA,GAAAA,GAAkBA,GAAAA,GAAoBA,GAAAA,MAAqB,GAAI,UAEjE5qU,GAEI+qU,EAAUD,EAAIrpU,OAAOuF,KAAK8jU,GAC1BviI,EAAUuiI,EAAIjpU,OAAOmF,KAAK8jU,GAE1BE,EAAUF,EAsBhB,OApBAE,EAAQvpU,OAAS,CAACrC,EAAeiB,IAClB0qU,EAAQ3rU,EAAGiB,GACL,MAAEsJ,WAGvBqhU,EAAQnpU,OAAS,CAACwK,EAAajN,EAAeiB,KAC5C,MAAMsvB,EAAO,CACXqf,MAAOxvC,GAAAA,OAAOC,KAAK4M,EAAK,SAE1B,OAAOk8L,EAAQ54K,EAAMvwB,EAAGiB,EAAO,EAGjC2qU,EAAQ5/T,MAASiB,GAEbu+T,GAAAA,KAAmB7qU,KACnB6qU,GAAAA,KAAmB7qU,KACnBP,GAAAA,OAAOC,KAAK4M,EAAK,QAAQzM,OAItBorU,CACT,EAyEO,SAASC,GAASh+S,EAAW3nB,GAClC,MAAM4lU,EAAgBn+S,IACpB,GAAIA,EAAKhtB,MAAQ,EACf,OAAOgtB,EAAKhtB,KACP,GAA0B,oBAAfgtB,EAAK3hB,MACrB,OAAO2hB,EAAK3hB,MAAM9F,EAAOynB,EAAK/sB,WACzB,GAAI,UAAW+sB,GAAQ,kBAAmBA,EAAM,CACrD,MAAMW,EAAQpoB,EAAOynB,EAAK/sB,UAC1B,GAAIwF,MAAMC,QAAQioB,GAChB,OAAOA,EAAM9tB,OAASsrU,EAAan+S,EAAKloB,cAE5C,MAAO,GAAI,WAAYkoB,EAErB,OAAOk+S,GAAS,CAACjpU,OAAQ+qB,GAAOznB,EAAOynB,EAAK/sB,WAG9C,OAAO,CAAC,EAGV,IAAIoL,EAAQ,EAKZ,OAJA6hB,EAAKjrB,OAAOsD,OAAO4nB,SAASH,IAC1B3hB,GAAS8/T,EAAan+S,EAAK,IAGtB3hB,CACT,CC3LO,SAAS+/T,GAAax2S,GAC3B,IAAItnB,EAAM,EACN9B,EAAO,EACX,OAAS,CACP,IAAI4f,EAAOwJ,EAAMxuB,QAGjB,GAFAkH,IAAe,IAAP8d,IAAwB,EAAP5f,EACzBA,GAAQ,EACc,KAAV,IAAP4f,GACH,KAEJ,CACA,OAAO9d,CACT,CAEO,SAAS+9T,GAAaz2S,EAAsBtnB,GACjD,IAAIg+T,EAAUh+T,EACd,OAAS,CACP,IAAI8d,EAAiB,IAAVkgT,EAEX,GADAA,IAAY,EACG,GAAXA,EAAc,CAChB12S,EAAM1vB,KAAKkmB,GACX,KACF,CACEA,GAAQ,IACRwJ,EAAM1vB,KAAKkmB,EAEf,CACF,CC3Be,SAAAvc,GACborB,EACAtQ,GAEA,IAAKsQ,EACH,MAAM,IAAI54B,MAAMsoB,GAAW,mBAE/B,CCQO,MAAM4hT,GAIXxrU,WAAAA,CAAYyrU,EAAkBC,GAAwB,KAHtDD,WAAK,OACLC,gBAAU,EAGR/7T,KAAK87T,MAAQA,EACb97T,KAAK+7T,WAAaA,CACpB,CAEA,cAAOC,CACLtB,EACAoB,GAEA,MAAMC,EAAyB,IAAI39S,IAC7B69S,EAAsBf,IAC1B,MAAM5P,EAAU4P,EAAO1C,WACvB,IAAI0D,EAAUH,EAAW7jT,IAAIozS,GAS7B,YARgBv5T,IAAZmqU,IACFA,EAAU,CACRC,UAAU,EACVC,YAAY,EACZC,WAAW,GAEbN,EAAW19S,IAAIitS,EAAS4Q,IAEnBA,CAAO,EAGVI,EAAeL,EAAmBH,GACxCQ,EAAaH,UAAW,EACxBG,EAAaF,YAAa,EAE1B,IAAK,MAAM/mQ,KAAMqlQ,EAAc,CAC7BuB,EAAmB5mQ,EAAGujQ,WAAWyD,WAAY,EAC7C,IAAK,MAAME,KAAelnQ,EAAGrvB,KAAM,CACjC,MAAMk2R,EAAUD,EAAmBM,EAAYrB,QAC/CgB,EAAQC,WAAaI,EAAYJ,SACjCD,EAAQE,aAAeG,EAAYH,UACrC,CACF,CAEA,OAAO,IAAIP,GAAaC,EAAOC,EACjC,CAEAS,oBAAAA,GACE,MAAMC,EAAa,IAAIz8T,KAAK+7T,WAAW/yK,WACvC7pJ,GAAOs9T,EAAWtsU,QAAU,IAAK,2CAEjC,MAAMusU,EAAkBD,EAAWnwS,QACjCtO,IAAA,IAAE,CAAE22G,GAAK32G,EAAA,OAAK22G,EAAKwnM,UAAYxnM,EAAKynM,UACtC,IACMO,EAAkBF,EAAWnwS,QACjCiG,IAAA,IAAE,CAAEoiG,GAAKpiG,EAAA,OAAKoiG,EAAKwnM,WAAaxnM,EAAKynM,UACvC,IACMQ,EAAqBH,EAAWnwS,QACpC4G,IAAA,IAAE,CAAEyhG,GAAKzhG,EAAA,OAAMyhG,EAAKwnM,UAAYxnM,EAAKynM,UACvC,IACMS,EAAqBJ,EAAWnwS,QACpCqH,IAAA,IAAE,CAAEghG,GAAKhhG,EAAA,OAAMghG,EAAKwnM,WAAaxnM,EAAKynM,UACxC,IAEM7/H,EAAwB,CAC5BugI,sBAAuBJ,EAAgBvsU,OAASwsU,EAAgBxsU,OAChE4sU,0BAA2BJ,EAAgBxsU,OAC3C6sU,4BAA6BH,EAAmB1sU,QAIlD,CACEgP,GACEu9T,EAAgBvsU,OAAS,EACzB,6CAEF,MAAO8sU,GAAgBP,EAAgB,GACvCv9T,GACE89T,IAAiBj9T,KAAK87T,MAAMtD,WAC5B,yDAEJ,CASA,MAAO,CAACj8H,EAPkB,IACrBmgI,EAAgB3+S,KAAI+iK,IAAA,IAAEwqI,GAAQxqI,EAAA,OAAK,IAAIq3I,GAAU7M,EAAQ,OACzDqR,EAAgB5+S,KAAIm/S,IAAA,IAAE5R,GAAQ4R,EAAA,OAAK,IAAI/E,GAAU7M,EAAQ,OACzDsR,EAAmB7+S,KAAIuwK,IAAA,IAAEg9H,GAAQh9H,EAAA,OAAK,IAAI6pI,GAAU7M,EAAQ,OAC5DuR,EAAmB9+S,KAAIo/S,IAAA,IAAE7R,GAAQ6R,EAAA,OAAK,IAAIhF,GAAU7M,EAAQ,KAInE,CAEA8R,kBAAAA,CACEC,GAEA,MAAOC,EAAiBC,GACtBv9T,KAAKw9T,4BACHH,EAAYzpO,MAAM6pO,WAClBvB,IACGA,EAAQC,WAAaD,EAAQG,WAAaH,EAAQE,cAElDsB,EAAiBC,GACtB39T,KAAKw9T,4BACHH,EAAYzpO,MAAM6pO,WAClBvB,IACGA,EAAQC,WAAaD,EAAQG,YAAcH,EAAQE,aAI1D,GAA+B,IAA3BkB,EAAgBntU,QAA2C,IAA3ButU,EAAgBvtU,OAIpD,MAAO,CACL,CACEytU,WAAYP,EAAY9kT,IACxB+kT,kBACAI,mBAEF,CACEj1S,SAAU80S,EACVjD,SAAUqD,GAGhB,CAGQH,2BAAAA,CACNK,EACAC,GAEA,MAAMC,EAAqB,IAAIhoU,MACzBioU,EAAc,IAAIjoU,MAExB,IAAK,MAAOu1T,EAAS4Q,KAAYl8T,KAAK+7T,WAAW/yK,UAC/C,GAAI80K,EAAc5B,GAAU,CAC1B,MAAM3jT,EAAM,IAAI4/S,GAAU7M,GACpB2S,EAAmBJ,EAAmBpzM,WAAU1c,GACpDA,EAAMvpF,OAAOjM,KAEX0lT,GAAoB,IACtB9+T,GAAO8+T,EAAmB,IAAK,mCAC/BF,EAAmBvoU,KAAKyoU,GACxBD,EAAYxoU,KAAK+iB,GACjBvY,KAAK+7T,WAAWlhM,OAAOywL,GAE3B,CAGF,MAAO,CAACyS,EAAoBC,EAC9B,ECnKF,MAAME,GAA8B,qCAK7B,SAASC,GAAgB57S,GAC9B,GAAyB,IAArBA,EAAUpyB,OACZ,MAAM,IAAIwB,MAAMusU,IAElB,OAAO37S,EAAU7rB,OACnB,CAMO,SAAS0nU,GACd77S,GAIK,QAAAxG,EAAAjqB,UAAA3B,OAHF6rB,EAEoD,IAAAjmB,MAAAgmB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAFpDD,EAEoDC,EAAA,GAAAnqB,UAAAmqB,GAEvD,MAAOtiB,GAASqiB,EAChB,GACkB,IAAhBA,EAAK7rB,OACDwJ,GAASqiB,EAAK,IAAM,GAAKuG,EAAUpyB,OACnCwJ,GAAS4oB,EAAUpyB,OAEvB,MAAM,IAAIwB,MAAMusU,IAElB,OAAO37S,EAAUhI,UACXyB,EAER,CC0BO,MAAMqiT,GAWXhuU,WAAAA,CAAY2rB,GAAmB,KAV/BugL,YAAM,OACN+hI,iBAAW,OACXC,qBAAe,OACf7D,kBAAY,OAEJ8D,kBAA4C,IAAIpgT,IAMtDpe,KAAKu8L,OAASvgL,EAAKugL,OACnBv8L,KAAKs+T,YAActiT,EAAKsiT,YAAYvgT,KAAI0gT,GAAW,IAAItG,GAAUsG,KACjEz+T,KAAKu+T,gBAAkBviT,EAAKuiT,gBAC5Bv+T,KAAK06T,aAAe1+S,EAAK0+S,aACzB16T,KAAK06T,aAAaj9S,SAAQ43C,GACxBr1D,KAAKw+T,kBAAkBngT,IACrBg3C,EAAG2lQ,eACHh7T,KAAKs+T,YAAYjpQ,EAAG2lQ,kBAG1B,CAEA,WAAI5vS,GACF,MAAO,QACT,CAEA,qBAAI+uS,GACF,OAAOn6T,KAAKs+T,WACd,CAEA,wBAAII,GACF,OAAO1+T,KAAK06T,aAAa38S,KACtBs3C,IAAE,CACD2lQ,eAAgB3lQ,EAAG2lQ,eACnBC,kBAAmB5lQ,EAAGspQ,SACtBz+S,KAAMo4S,KAAAA,OAAYjjQ,EAAGn1C,SAG3B,CAEA,uBAAI0+S,GACF,MAAO,EACT,CAEAC,cAAAA,GACE,OAAO,IAAI3E,GAAmBl6T,KAAKm6T,kBACrC,CAEA,cAAO6B,CAAQhgT,GACb,MAAM8iT,EAAejD,GAAaG,QAAQhgT,EAAK0+S,aAAc1+S,EAAK+iT,WAC3DxiI,EAAQ49H,GAAqB2E,EAAatC,uBAE3C9B,EADc,IAAIR,GAAmBC,GACVM,oBAAoBz+S,EAAK0+S,cAAc38S,KACrEs3C,IAA8B,CAC7B2lQ,eAAgB3lQ,EAAG2lQ,eACnB2D,SAAUtpQ,EAAG4lQ,kBACb/6S,KAAMo4S,KAAAA,OAAYjjQ,EAAGn1C,UAGzB,OAAO,IAAIm+S,GAAQ,CACjB9hI,SACA+hI,YAAanE,EACboE,gBAAiBviT,EAAKuiT,gBACtB7D,gBAEJ,CAEAsE,eAAAA,CAAgBx+T,GACd,OAAOA,EAAQR,KAAKu8L,OAAOugI,qBAC7B,CAEAmC,iBAAAA,CAAkBz+T,GAChB,MAAM0+T,EAAoBl/T,KAAKu8L,OAAOugI,sBACtC,GAAIt8T,GAASR,KAAKu8L,OAAOugI,sBAAuB,CAK9C,OAJ6Bt8T,EAAQ0+T,EACTl/T,KAAKs+T,YAAYnuU,OAAS+uU,EAE9Bl/T,KAAKu8L,OAAOygI,2BAEtC,CAGE,OAAOx8T,EADL0+T,EAAoBl/T,KAAKu8L,OAAOwgI,yBAGtC,CAEAoC,WAAAA,CAAY3+T,GACV,OAAOR,KAAKw+T,kBAAkBv1L,IAAIzoI,EACpC,CAEA4+T,UAAAA,GACE,MAAO,IAAIp/T,KAAKw+T,kBAAkBntU,SACpC,CAEAguU,aAAAA,GACE,OAAOr/T,KAAKs+T,YAAYhyS,QAAO,CAACxd,EAAGtO,KAAWR,KAAKm/T,YAAY3+T,IACjE,CAEA2Y,SAAAA,GACE,MAAM0/E,EAAU74F,KAAKs+T,YAAYnuU,OAEjC,IAAImvU,EAAqB,GACzB3D,GAAsB2D,EAAUzmO,GAEhC,MAAM6hO,EAAe16T,KAAK06T,aAAa38S,KAAIg9S,IACzC,MAAM,SAAC4D,EAAQ,eAAE3D,GAAkBD,EAC7B76S,EAAOnqB,MAAM/F,KAAKsoU,KAAAA,OAAYyC,EAAY76S,OAEhD,IAAIq/S,EAA4B,GAChC5D,GAAsB4D,EAAiBZ,EAASxuU,QAEhD,IAAIggH,EAAsB,GAG1B,OAFAwrN,GAAsBxrN,EAAWjwF,EAAK/vB,QAE/B,CACL6qU,iBACAuE,gBAAiBxvU,GAAAA,OAAOC,KAAKuvU,GAC7BC,WAAYb,EACZc,WAAY1vU,GAAAA,OAAOC,KAAKmgH,GACxBjwF,OACD,IAGH,IAAIw/S,EAA6B,GACjC/D,GAAsB+D,EAAkBhF,EAAavqU,QACrD,IAAIwvU,EAAoB5vU,GAAAA,OAAO4L,MAAMg+T,IACrC5pU,GAAAA,OAAOC,KAAK0vU,GAAkBplU,KAAKqlU,GACnC,IAAIC,EAA0BF,EAAiBvvU,OAE/CuqU,EAAaj9S,SAAQs9S,IACnB,MA2BM5qU,EA3BoBgrU,GAAAA,GAQxB,CACAA,GAAAA,GAAgB,kBAEhBA,GAAAA,GACEJ,EAAYwE,gBAAgBpvU,OAC5B,mBAEFgrU,GAAAA,GACEA,GAAAA,GAAgB,YAChBJ,EAAYyE,WAAWrvU,OACvB,cAEFgrU,GAAAA,GAAkBJ,EAAY0E,WAAWtvU,OAAQ,cACjDgrU,GAAAA,GACEA,GAAAA,GAAgB,aAChBJ,EAAY76S,KAAK/vB,OACjB,UAG6BiC,OAC/B2oU,EACA4E,EACAC,GAEFA,GAA2BzvU,CAAM,IAEnCwvU,EAAoBA,EAAkB5lU,MAAM,EAAG6lU,GAE/C,MAAMC,EAAiB1E,GAAAA,GASrB,CACAA,GAAAA,GAAkB,EAAG,yBACrBA,GAAAA,GAAkB,EAAG,6BACrBA,GAAAA,GAAkB,EAAG,+BACrBA,GAAAA,GAAkBmE,EAASnvU,OAAQ,YACnCgrU,GAAAA,GAAiBjU,GAAiB,OAAQruN,EAAS,QACnDquN,GAAiB,qBAGb9sD,EAAc,CAClB0iE,sBAAuB/sU,GAAAA,OAAOC,KAAK,CAACgQ,KAAKu8L,OAAOugI,wBAChDC,0BAA2BhtU,GAAAA,OAAOC,KAAK,CACrCgQ,KAAKu8L,OAAOwgI,4BAEdC,4BAA6BjtU,GAAAA,OAAOC,KAAK,CACvCgQ,KAAKu8L,OAAOygI,8BAEdsC,SAAUvvU,GAAAA,OAAOC,KAAKsvU,GACtBt5R,KAAMhmC,KAAKs+T,YAAYvgT,KAAIxF,GAAO9U,GAAS8U,EAAIi8R,aAC/C+pB,gBAAiBjG,KAAAA,OAAYt4T,KAAKu+T,kBAGpC,IAAIuB,EAAW/vU,GAAAA,OAAO4L,MAAM,MAC5B,MAAMxL,EAAS0vU,EAAeztU,OAAOgoQ,EAAa0lE,GAElD,OADAH,EAAkBrlU,KAAKwlU,EAAU3vU,GAC1B2vU,EAAS/lU,MAAM,EAAG5J,EAASwvU,EAAkBxvU,OACtD,CAKA,WAAOH,CAAKC,GAEV,IAAIsyB,EAAY,IAAItyB,GAEpB,MAAM6sU,EAAwBqB,GAAa57S,GAC3C,GACEu6S,KACCA,EAAwBlD,IAEzB,MAAM,IAAIjoU,MACR,+EAIJ,MAAMorU,EAA4BoB,GAAa57S,GACzCy6S,EAA8BmB,GAAa57S,GAE3Cw9S,EAAerE,GAAsBn5S,GAC3C,IAAI+7S,EAAc,GAClB,IAAK,IAAI/oU,EAAI,EAAGA,EAAIwqU,EAAcxqU,IAAK,CACrC,MAAMkpU,EAAUL,GAAc77S,EAAW,EAAG01S,IAC5CqG,EAAY9oU,KAAK,IAAI2iU,GAAUpoU,GAAAA,OAAOC,KAAKyuU,IAC7C,CAEA,MAAMF,EAAkBH,GAAc77S,EAAW,EAAG01S,IAE9CyH,EAAmBhE,GAAsBn5S,GAC/C,IAAIm4S,EAAsC,GAC1C,IAAK,IAAInlU,EAAI,EAAGA,EAAImqU,EAAkBnqU,IAAK,CACzC,MAAMylU,EAAiBmD,GAAa57S,GAE9Bo8S,EAAWP,GAAc77S,EAAW,EADrBm5S,GAAsBn5S,IAGrCy9S,EAAY5B,GAAc77S,EAAW,EADxBm5S,GAAsBn5S,IAEnCrC,EAAOo4S,KAAAA,OAAYvoU,GAAAA,OAAOC,KAAKgwU,IACrCtF,EAAallU,KAAK,CAChBwlU,iBACA2D,WACAz+S,QAEJ,CAEA,MAAM+/S,EAAc,CAClB1jI,OAAQ,CACNugI,wBACAC,4BACAC,+BAEFuB,gBAAiBjG,KAAAA,OAAYvoU,GAAAA,OAAOC,KAAKuuU,IACzCD,cACA5D,gBAGF,OAAO,IAAI2D,GAAQ4B,EACrB,EC9QK,MAAMC,GAOX7vU,WAAAA,CAAY2rB,GAAqB,KANjCugL,YAAM,OACN49H,uBAAiB,OACjBoE,qBAAe,OACfG,0BAAoB,OACpBE,yBAAmB,EAGjB5+T,KAAKu8L,OAASvgL,EAAKugL,OACnBv8L,KAAKm6T,kBAAoBn+S,EAAKm+S,kBAC9Bn6T,KAAKu+T,gBAAkBviT,EAAKuiT,gBAC5Bv+T,KAAK0+T,qBAAuB1iT,EAAK0iT,qBACjC1+T,KAAK4+T,oBAAsB5iT,EAAK4iT,mBAClC,CAEA,WAAIxzS,GACF,OAAO,CACT,CAEA,6BAAI+0S,GACF,IAAI9qU,EAAQ,EACZ,IAAK,MAAMgJ,KAAU2B,KAAK4+T,oBACxBvpU,GAASgJ,EAAOq/T,gBAAgBvtU,OAASkO,EAAOi/T,gBAAgBntU,OAElE,OAAOkF,CACT,CAEAwpU,cAAAA,CAAe7iT,GACb,IAAIo+S,EACJ,GACEp+S,GACA,2BAA4BA,GAC5BA,EAAKo+S,uBACL,CACA,GACEp6T,KAAKmgU,2BACLnkT,EAAKo+S,uBAAuB3xS,SAASt4B,OACnC6rB,EAAKo+S,uBAAuBE,SAASnqU,OAEvC,MAAM,IAAIwB,MACR,+FAGJyoU,EAAyBp+S,EAAKo+S,4BACzB,GACLp+S,GACA,+BAAgCA,GAChCA,EAAKokT,2BAELhG,EAAyBp6T,KAAKqgU,2BAC5BrkT,EAAKokT,iCAEF,GAAIpgU,KAAK4+T,oBAAoBzuU,OAAS,EAC3C,MAAM,IAAIwB,MACR,8EAGJ,OAAO,IAAIuoU,GACTl6T,KAAKm6T,kBACLC,EAEJ,CAEA4E,eAAAA,CAAgBx+T,GACd,OAAOA,EAAQR,KAAKu8L,OAAOugI,qBAC7B,CAEAmC,iBAAAA,CAAkBz+T,GAChB,MAAM0+T,EAAoBl/T,KAAKu8L,OAAOugI,sBAChCwD,EAAuBtgU,KAAKm6T,kBAAkBhqU,OACpD,GAAIqQ,GAAS8/T,EAAsB,CACjC,MAAMC,EAAyB//T,EAAQ8/T,EACjCE,EAA+BxgU,KAAK4+T,oBAAoBlpU,QAC5D,CAACL,EAAOgJ,IAAWhJ,EAAQgJ,EAAOi/T,gBAAgBntU,QAClD,GAEF,OAAOowU,EAAyBC,EAC3B,GAAIhgU,GAASR,KAAKu8L,OAAOugI,sBAAuB,CAKrD,OAJ6Bt8T,EAAQ0+T,EACToB,EAAuBpB,EAE3Bl/T,KAAKu8L,OAAOygI,2BAEtC,CAGE,OAAOx8T,EADL0+T,EAAoBl/T,KAAKu8L,OAAOwgI,yBAGtC,CAEAsD,0BAAAA,CACED,GAEA,MAAMhG,EAAiD,CACrD3xS,SAAU,GACV6xS,SAAU,IAGZ,IAAK,MAAMmG,KAAezgU,KAAK4+T,oBAAqB,CAClD,MAAM8B,EAAeN,EAA2B9tS,MAAKmsS,GACnDA,EAAQlmT,IAAIiM,OAAOi8S,EAAY7C,cAEjC,IAAK8C,EACH,MAAM,IAAI/uU,MACR,6DAA6D8uU,EAAY7C,WAAWpF,cAIxF,IAAK,MAAMh4T,KAASigU,EAAYnD,gBAAiB,CAC/C,KAAI98T,EAAQkgU,EAAa9sO,MAAM6pO,UAAUttU,QAKvC,MAAM,IAAIwB,MACR,oCAAoC6O,6BAAiCigU,EAAY7C,WAAWpF,cAL9F4B,EAAuB3xS,SAASjzB,KAC9BkrU,EAAa9sO,MAAM6pO,UAAUj9T,GAOnC,CAEA,IAAK,MAAMA,KAASigU,EAAY/C,gBAAiB,CAC/C,KAAIl9T,EAAQkgU,EAAa9sO,MAAM6pO,UAAUttU,QAKvC,MAAM,IAAIwB,MACR,oCAAoC6O,6BAAiCigU,EAAY7C,WAAWpF,cAL9F4B,EAAuBE,SAAS9kU,KAC9BkrU,EAAa9sO,MAAM6pO,UAAUj9T,GAOnC,CACF,CAEA,OAAO45T,CACT,CAEA,cAAO4B,CAAQhgT,GACb,MAAM8iT,EAAejD,GAAaG,QAAQhgT,EAAK0+S,aAAc1+S,EAAK+iT,UAE5DH,EAAsB,IAAI7oU,MAC1BqkU,EAAiD,CACrD3xS,SAAU,IAAI1yB,MACdukU,SAAU,IAAIvkU,OAEV4qU,EAAsB3kT,EAAKokT,4BAA8B,GAC/D,IAAK,MAAM/C,KAAesD,EAAqB,CAC7C,MAAMC,EAAgB9B,EAAa1B,mBAAmBC,GACtD,QAAsBtrU,IAAlB6uU,EAA6B,CAC/B,MAAOC,GAAoB,SAACp4S,EAAQ,SAAE6xS,IAAasG,EACnDhC,EAAoBppU,KAAKqrU,GACzBzG,EAAuB3xS,SAASjzB,QAAQizB,GACxC2xS,EAAuBE,SAAS9kU,QAAQ8kU,EAC1C,CACF,CAEA,MAAO/9H,EAAQ49H,GAAqB2E,EAAatC,uBAK3CkC,EAJc,IAAIxE,GACtBC,EACAC,GAEuCK,oBACvCz+S,EAAK0+S,cAEP,OAAO,IAAIwF,GAAU,CACnB3jI,SACA49H,oBACAoE,gBAAiBviT,EAAKuiT,gBACtBG,uBACAE,uBAEJ,CAEAzlT,SAAAA,GACE,MAAM2nT,EAAiC/qU,QACvC4lU,GACEmF,EACA9gU,KAAKm6T,kBAAkBhqU,QAGzB,MAAM4wU,EAAyB/gU,KAAKghU,wBAC9BC,EAA4BlrU,QAClC4lU,GACEsF,EACAjhU,KAAK0+T,qBAAqBvuU,QAG5B,MAAM+wU,EAAgClhU,KAAKmhU,+BACrCC,EAAmCrrU,QACzC4lU,GACEyF,EACAphU,KAAK4+T,oBAAoBzuU,QAG3B,MAAMkxU,EAAgBlG,GAAAA,GAUnB,CACDA,GAAAA,GAAgB,UAChBA,GAAAA,GACE,CACEA,GAAAA,GAAgB,yBAChBA,GAAAA,GAAgB,6BAChBA,GAAAA,GAAgB,gCAElB,UAEFA,GAAAA,GACE2F,EAA+B3wU,OAC/B,2BAEFgrU,GAAAA,GACEjU,KACAlnT,KAAKm6T,kBAAkBhqU,OACvB,qBAEF+2T,GAAiB,mBACjBiU,GAAAA,GAAkB8F,EAA0B9wU,OAAQ,sBACpDgrU,GAAAA,GACE4F,EAAuB5wU,OACvB,0BAEFgrU,GAAAA,GACEiG,EAAiCjxU,OACjC,6BAEFgrU,GAAAA,GACE+F,EAA8B/wU,OAC9B,mCAIEmxU,EAAoB,IAAI1xU,WAAW+pU,IAEnC4H,EAA0BF,EAAcjvU,OAC5C,CACEy1D,OAH6B,IAI7B00I,OAAQv8L,KAAKu8L,OACbilI,wBAAyB,IAAI5xU,WAAWkxU,GACxC3G,kBAAmBn6T,KAAKm6T,kBAAkBp8S,KAAIxF,GAAOA,EAAIi8R,YACzD+pB,gBAAiBjG,KAAAA,OAAYt4T,KAAKu+T,iBAClCkD,mBAAoB,IAAI7xU,WAAWqxU,GACnCF,yBACAW,0BAA2B,IAAI9xU,WAC7BwxU,GAEFF,iCAEFI,GAEF,OAAOA,EAAkBvnU,MAAM,EAAGwnU,EACpC,CAEQP,qBAAAA,GACN,IAAIW,EAAmB,EACvB,MAAMZ,EAAyB,IAAInxU,WAAW+pU,IAC9C,IAAK,MAAMoB,KAAe/6T,KAAK0+T,qBAAsB,CACnD,MAAMkD,EAAiC7rU,QACvC4lU,GACEiG,EACA7G,EAAYE,kBAAkB9qU,QAGhC,MAAM0xU,EAAoB9rU,QAC1B4lU,GAAsBkG,EAAmB9G,EAAY76S,KAAK/vB,QAuB1DwxU,GArB0BxG,GAAAA,GAMvB,CACDA,GAAAA,GAAgB,kBAChBA,GAAAA,GACEyG,EAA+BzxU,OAC/B,kCAEFgrU,GAAAA,GACEA,GAAAA,KACAJ,EAAYE,kBAAkB9qU,OAC9B,qBAEFgrU,GAAAA,GAAkB0G,EAAkB1xU,OAAQ,qBAC5CgrU,GAAAA,GAAkBJ,EAAY76S,KAAK/vB,OAAQ,UAGPiC,OACpC,CACE4oU,eAAgBD,EAAYC,eAC5B4G,+BAAgC,IAAIhyU,WAClCgyU,GAEF3G,kBAAmBF,EAAYE,kBAC/B4G,kBAAmB,IAAIjyU,WAAWiyU,GAClC3hT,KAAM66S,EAAY76S,MAEpB6gT,EACAY,EAEJ,CAEA,OAAOZ,EAAuBhnU,MAAM,EAAG4nU,EACzC,CAEQR,4BAAAA,GACN,IAAIQ,EAAmB,EACvB,MAAMT,EAAgC,IAAItxU,WAAW+pU,IACrD,IAAK,MAAMt7T,KAAU2B,KAAK4+T,oBAAqB,CAC7C,MAAMkD,EAA+B/rU,QACrC4lU,GACEmG,EACAzjU,EAAOi/T,gBAAgBntU,QAGzB,MAAM4xU,EAA+BhsU,QACrC4lU,GACEoG,EACA1jU,EAAOq/T,gBAAgBvtU,QA+BzBwxU,GA5BiCxG,GAAAA,GAM9B,CACDjU,GAAiB,cACjBiU,GAAAA,GACE2G,EAA6B3xU,OAC7B,gCAEFgrU,GAAAA,GACEA,GAAAA,KACA98T,EAAOi/T,gBAAgBntU,OACvB,mBAEFgrU,GAAAA,GACE4G,EAA6B5xU,OAC7B,gCAEFgrU,GAAAA,GACEA,GAAAA,KACA98T,EAAOq/T,gBAAgBvtU,OACvB,qBAIyCiC,OAC3C,CACEwrU,WAAYv/T,EAAOu/T,WAAWppB,UAC9BstB,6BAA8B,IAAIlyU,WAChCkyU,GAEFxE,gBAAiBj/T,EAAOi/T,gBACxByE,6BAA8B,IAAInyU,WAChCmyU,GAEFrE,gBAAiBr/T,EAAOq/T,iBAE1BwD,EACAS,EAEJ,CAEA,OAAOT,EAA8BnnU,MAAM,EAAG4nU,EAChD,CAEA,kBAAOzoT,CAAYooT,GACjB,IAAI/+S,EAAY,IAAI++S,GAEpB,MAAMz5Q,EAASs2Q,GAAa57S,GACtBy/S,EAAen6Q,EAAS+xQ,GAC9Bz6T,GACE0oD,IAAWm6Q,EACX,0DAIF7iU,GACc,IAFE6iU,EAGd,+DAHcA,KAMhB,MAAMzlI,EAAwB,CAC5BugI,sBAAuBqB,GAAa57S,GACpCw6S,0BAA2BoB,GAAa57S,GACxCy6S,4BAA6BmB,GAAa57S,IAGtC43S,EAAoB,GACpBqH,EAA0B9F,GAAsBn5S,GACtD,IAAK,IAAIhtB,EAAI,EAAGA,EAAIisU,EAAyBjsU,IAC3C4kU,EAAkB3kU,KAChB,IAAI2iU,GAAUiG,GAAc77S,EAAW,EAAG01S,MAI9C,MAAMsG,EAAkBjG,KAAAA,OACtB8F,GAAc77S,EAAW,EAAG01S,KAGxByH,EAAmBhE,GAAsBn5S,GACzCm8S,EAAqD,GAC3D,IAAK,IAAInpU,EAAI,EAAGA,EAAImqU,EAAkBnqU,IAAK,CACzC,MAAMylU,EAAiBmD,GAAa57S,GAE9B04S,EAAoBmD,GACxB77S,EACA,EAH8Bm5S,GAAsBn5S,IAMhDk9S,EAAa/D,GAAsBn5S,GACnCrC,EAAO,IAAItwB,WAAWwuU,GAAc77S,EAAW,EAAGk9S,IACxDf,EAAqBlpU,KAAK,CACxBwlU,iBACAC,oBACA/6S,QAEJ,CAEA,MAAM+hT,EAA2BvG,GAAsBn5S,GACjDq8S,EAAmD,GACzD,IAAK,IAAIrpU,EAAI,EAAGA,EAAI0sU,EAA0B1sU,IAAK,CACjD,MAAMqoU,EAAa,IAAIzF,GACrBiG,GAAc77S,EAAW,EAAG01S,KAGxBqF,EAAkBc,GACtB77S,EACA,EAH4Bm5S,GAAsBn5S,IAO9Cm7S,EAAkBU,GACtB77S,EACA,EAH4Bm5S,GAAsBn5S,IAMpDq8S,EAAoBppU,KAAK,CACvBooU,aACAN,kBACAI,mBAEJ,CAEA,OAAO,IAAIwC,GAAU,CACnB3jI,SACA49H,oBACAoE,kBACAG,uBACAE,uBAEJ,ECzfK,MAAMsD,GAAmB,CAC9BC,yBAAAA,CAA0Bb,GACxB,MAAMz5Q,EAASy5Q,EAAkB,GAC3BU,EAAen6Q,EAAS+xQ,GAG9B,OAAIoI,IAAiBn6Q,EACZ,SAIFm6Q,GAGT9oT,YAAcooT,IACZ,MAAMl2S,EACJ82S,GAAiBC,0BAA0Bb,GAC7C,GAAgB,WAAZl2S,EACF,OAAOizS,GAAQruU,KAAKsxU,GAGtB,GAAgB,IAAZl2S,EACF,OAAO80S,GAAUhnT,YAAYooT,GAE7B,MAAM,IAAI3vU,MACR,+BAA+By5B,qCAEnC,GCNc,IAAA4nL,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAAA,EAAiB,+CAAjBA,EAAAA,EAAiB,yBAAjBA,EAAAA,EAAiB,yBAAjBA,EAAAA,EAAiB,iCAAjBA,CAAiB,MAUnC,MAAMovH,GAAoBryU,GAAAA,OAAO4L,MAAMk+T,IAA2Bx9T,KAAK,GAiDhE,MAAMgmU,GAiBXhyU,WAAAA,CAAYkkL,GAhBZ,KAIAvuI,UAAI,EAEJ,KAGA4yR,eAAS,EAET,KAGA14S,KAAenwB,GAAAA,OAAO4L,MAAM,GAG1BqE,KAAK44T,UAAYrkJ,EAAKqkJ,UACtB54T,KAAKgmC,KAAOuuI,EAAKvuI,KACbuuI,EAAKr0J,OACPlgB,KAAKkgB,KAAOq0J,EAAKr0J,KAErB,CAKA1c,MAAAA,GACE,MAAO,CACLwiC,KAAMhmC,KAAKgmC,KAAKjoB,KAAIukT,IAAA,IAAC,OAACpH,EAAM,SAAEiB,EAAQ,WAAEC,GAAWkG,EAAA,MAAM,CACvDpH,OAAQA,EAAO13T,SACf24T,WACAC,aACD,IACDxD,UAAW54T,KAAK44T,UAAUp1T,SAC1B0c,KAAM,IAAIlgB,KAAKkgB,MAEnB,EAqFK,MAAMqiT,GAYX,aAAIzgD,GACF,OAAI9hR,KAAKwiU,WAAWryU,OAAS,EACpB6P,KAAKwiU,WAAW,GAAG1gD,UAErB,IACT,CA8DAzxR,WAAAA,CACEkkL,GAKA,GApFF,KAIAiuJ,WAAyC,GAAE,KAiB3CC,cAAQ,EAER,KAGA/H,aAA8C,GAE9C,KAGA6D,qBAAe,EAEf,KAGAmE,0BAAoB,EAEpB,KAIAC,eAAS,EAET,KAOAC,yBAAmB,EAEnB,KAGAC,cAAQ,EAER,KAGAC,WAAK,EAuBEvuJ,EASL,GANIA,EAAKkuJ,WACPziU,KAAKyiU,SAAWluJ,EAAKkuJ,UAEnBluJ,EAAKiuJ,aACPxiU,KAAKwiU,WAAajuJ,EAAKiuJ,YAErBxxU,OAAOE,UAAU2G,eAAeC,KAAKy8K,EAAM,aAAc,CAC3D,MAAM,eAACwuJ,EAAc,UAAEJ,GAAapuJ,EACpCv0K,KAAK4iU,oBAAsBG,EAC3B/iU,KAAK2iU,UAAYA,CACnB,MAAO,GACL3xU,OAAOE,UAAU2G,eAAeC,KAAKy8K,EAAM,wBAC3C,CACA,MAAM,UAACyuJ,EAAS,qBAAEN,GAChBnuJ,EACFv0K,KAAKu+T,gBAAkByE,EACvBhjU,KAAK0iU,qBAAuBA,CAC9B,KAAO,CACL,MAAM,gBAACnE,EAAe,UAAEoE,GACtBpuJ,EACEouJ,IACF3iU,KAAK2iU,UAAYA,GAEnB3iU,KAAKu+T,gBAAkBA,CACzB,CACF,CAKA/6T,MAAAA,GACE,MAAO,CACL+6T,gBAAiBv+T,KAAKu+T,iBAAmB,KACzCkE,SAAUziU,KAAKyiU,SAAWziU,KAAKyiU,SAASj/T,SAAW,KACnDm/T,UAAW3iU,KAAK2iU,UACZ,CACEzrC,MAAOl3R,KAAK2iU,UAAUzrC,MACtB+rC,iBAAkBjjU,KAAK2iU,UAAUM,iBAAiBz/T,UAEpD,KACJk3T,aAAc16T,KAAK06T,aAAa38S,KAAIg9S,GAAeA,EAAYv3T,WAC/D0/T,QAASljU,KAAKwiU,WAAWzkT,KAAIolT,IAAiB,IAAhB,UAACjc,GAAUic,EACvC,OAAOjc,EAAU1jT,QAAQ,IAG/B,CAOAqD,GAAAA,GAIe,QAAAi3L,EAAAhsM,UAAA3B,OAHV4kE,EAEF,IAAAh/D,MAAA+nM,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAFEhpI,EAEFgpI,GAAAjsM,UAAAisM,GAED,GAAqB,IAAjBhpI,EAAM5kE,OACR,MAAM,IAAIwB,MAAM,mBAYlB,OATAojE,EAAMt3C,SAASH,IACT,iBAAkBA,EACpBtd,KAAK06T,aAAe16T,KAAK06T,aAAajgT,OAAO6C,EAAKo9S,cACzC,SAAUp9S,GAAQ,cAAeA,GAAQ,SAAUA,EAC5Dtd,KAAK06T,aAAallU,KAAK8nB,GAEvBtd,KAAK06T,aAAallU,KAAK,IAAI6sU,GAAuB/kT,GACpD,IAEKtd,IACT,CAKAojU,cAAAA,GACE,GACEpjU,KAAK6iU,UACL/2S,KAAKC,UAAU/rB,KAAKwD,YAAcsoB,KAAKC,UAAU/rB,KAAK8iU,OAEtD,OAAO9iU,KAAK6iU,SAGd,IAAItE,EACA7D,EAoBA+H,EARJ,GAXIziU,KAAK2iU,WACPpE,EAAkBv+T,KAAK2iU,UAAUzrC,MAE/BwjC,EADE16T,KAAK06T,aAAa,IAAM16T,KAAK2iU,UAAUM,iBAC1B,CAACjjU,KAAK2iU,UAAUM,oBAAqBjjU,KAAK06T,cAE1C16T,KAAK06T,eAGtB6D,EAAkBv+T,KAAKu+T,gBACvB7D,EAAe16T,KAAK06T,eAEjB6D,EACH,MAAM,IAAI5sU,MAAM,wCAQlB,GALI+oU,EAAavqU,OAAS,GACxB0zB,QAAQ04C,KAAK,4BAIXv8D,KAAKyiU,SACPA,EAAWziU,KAAKyiU,aACX,MAAIziU,KAAKwiU,WAAWryU,OAAS,GAAK6P,KAAKwiU,WAAW,GAAGtb,WAI1D,MAAM,IAAIv1T,MAAM,kCAFhB8wU,EAAWziU,KAAKwiU,WAAW,GAAGtb,SAGhC,CAEA,IAAK,IAAI3xT,EAAI,EAAGA,EAAImlU,EAAavqU,OAAQoF,IACvC,QAAkCxD,IAA9B2oU,EAAanlU,GAAGqjU,UAClB,MAAM,IAAIjnU,MACR,iCAAiC4D,8BAKvC,MAAM6pU,EAAuB,GACvBiE,EAA8B,GACpC3I,EAAaj9S,SAAQs9S,IACnBA,EAAY/0R,KAAKvoB,SAAQ8+S,IACvB8G,EAAa7tU,KAAK,IAAI+mU,GAAa,IAGrC,MAAM3D,EAAYmC,EAAYnC,UAAU1+T,WACnCklU,EAAWt6S,SAAS8zS,IACvBwG,EAAW5pU,KAAKojU,EAClB,IAIFwG,EAAW3hT,SAAQm7S,IACjByK,EAAa7tU,KAAK,CAChB0lU,OAAQ,IAAI/C,GAAUS,GACtBuD,UAAU,EACVC,YAAY,GACZ,IAIJ,MAAMkH,EAA6B,GACnCD,EAAa5lT,SAAQ8+S,IACnB,MAAMgH,EAAehH,EAAYrB,OAAOhhU,WAClCspU,EAAcF,EAAY74M,WAAUzvH,GACjCA,EAAEkgU,OAAOhhU,aAAeqpU,IAE7BC,GAAe,GACjBF,EAAYE,GAAapH,WACvBkH,EAAYE,GAAapH,YAAcG,EAAYH,WACrDkH,EAAYE,GAAarH,SACvBmH,EAAYE,GAAarH,UAAYI,EAAYJ,UAEnDmH,EAAY9tU,KAAK+mU,EACnB,IAIF+G,EAAY/4J,MAAK,SAAUvvK,EAAGsR,GAC5B,GAAItR,EAAEmhU,WAAa7vT,EAAE6vT,SAEnB,OAAOnhU,EAAEmhU,UAAY,EAAI,EAE3B,GAAInhU,EAAEohU,aAAe9vT,EAAE8vT,WAErB,OAAOphU,EAAEohU,YAAc,EAAI,EAW7B,OAAOphU,EAAEkgU,OACN1C,WACAiL,cAAcn3T,EAAE4uT,OAAO1C,WAAY,KAVtB,CACdkL,cAAe,WACfC,MAAO,OACPC,YAAa,UACbC,mBAAmB,EACnBC,SAAS,EACTC,UAAW,SAKf,IAGA,MAAMC,EAAgBV,EAAY74M,WAAUzvH,GACnCA,EAAEkgU,OAAO12S,OAAOi+S,KAEzB,GAAIuB,GAAiB,EAAG,CACtB,MAAOC,GAAaX,EAAY/oT,OAAOypT,EAAe,GACtDC,EAAU9H,UAAW,EACrB8H,EAAU7H,YAAa,EACvBkH,EAAYhvQ,QAAQ2vQ,EACtB,MACEX,EAAYhvQ,QAAQ,CAClB4mQ,OAAQuH,EACRtG,UAAU,EACVC,YAAY,IAKhB,IAAK,MAAMt6C,KAAa9hR,KAAKwiU,WAAY,CACvC,MAAMgB,EAAcF,EAAY74M,WAAUzvH,GACjCA,EAAEkgU,OAAO12S,OAAOs9P,EAAUolC,aAEnC,KAAIsc,GAAe,GAUjB,MAAM,IAAI7xU,MAAM,mBAAmBmwR,EAAUolC,UAAUhtT,cATlDopU,EAAYE,GAAarH,WAC5BmH,EAAYE,GAAarH,UAAW,EACpCt4S,QAAQ04C,KACN,gOAQR,CAEA,IAAIugQ,EAAwB,EACxBC,EAA4B,EAC5BC,EAA8B,EAGlC,MAAMkH,EAAuB,GACvBC,EAAyB,GAC/Bb,EAAY7lT,SAAQ2mT,IAAoC,IAAnC,OAAClJ,EAAM,SAAEiB,EAAQ,WAAEC,GAAWgI,EAC7CjI,GACF+H,EAAW1uU,KAAK0lU,EAAOhhU,YACvB4iU,GAAyB,EACpBV,IACHW,GAA6B,KAG/BoH,EAAa3uU,KAAK0lU,EAAOhhU,YACpBkiU,IACHY,GAA+B,GAEnC,IAGF,MAAMsB,EAAc4F,EAAWzpT,OAAO0pT,GAChCzF,EAA8ChE,EAAa38S,KAC/Dg9S,IACE,MAAM,KAAC76S,EAAI,UAAE04S,GAAamC,EAC1B,MAAO,CACLC,eAAgBsD,EAAY9/T,QAAQo6T,EAAU1+T,YAC9CykU,SAAU5D,EAAY/0R,KAAKjoB,KAAI42G,GAC7B2pM,EAAY9/T,QAAQm2H,EAAKumM,OAAOhhU,cAElCgmB,KAAMo4S,KAAAA,OAAYp4S,GACnB,IASL,OALAw+S,EAAqBjhT,SAAQs9S,IAC3B57T,GAAU47T,EAAYC,gBAAkB,GACxCD,EAAY4D,SAASlhT,SAAQq9S,GAAY37T,GAAU27T,GAAY,IAAG,IAG7D,IAAIuD,GAAQ,CACjB9hI,OAAQ,CACNugI,wBACAC,4BACAC,+BAEFsB,cACAC,kBACA7D,aAAcgE,GAElB,CAKA2F,QAAAA,GACE,MAAMpqT,EAAUja,KAAKojU,iBACfc,EAAajqT,EAAQqkT,YAAYvkU,MACrC,EACAkgB,EAAQsiL,OAAOugI,uBAGjB,GAAI98T,KAAKwiU,WAAWryU,SAAW+zU,EAAW/zU,OAAQ,CAKhD,GAJc6P,KAAKwiU,WAAWlpK,OAAM,CAAC7wG,EAAMjoD,IAClC0jU,EAAW1jU,GAAOgkB,OAAOikC,EAAKy+P,aAG5B,OAAOjtS,CACpB,CAOA,OALAja,KAAKwiU,WAAa0B,EAAWnmT,KAAImpS,IAAa,CAC5CplC,UAAW,KACXolC,gBAGKjtS,CACT,CAKAqqT,gBAAAA,GACE,OAAOtkU,KAAKqkU,WAAWlrT,WACzB,CASA,qBAAMorT,CAAgBxvD,GACpB,aAAcA,EAAWyvD,iBAAiBxkU,KAAKojU,mBAAmBxqU,KACpE,CAYA6rU,UAAAA,GAAyC,QAAA9rE,EAAA7mQ,UAAA3B,OAA3B+yU,EAAyB,IAAAntU,MAAA4iQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAzBsqE,EAAyBtqE,GAAA9mQ,UAAA8mQ,GACrC,GAAuB,IAAnBsqE,EAAQ/yU,OACV,MAAM,IAAIwB,MAAM,cAGlB,MAAM+yU,EAAO,IAAI94M,IACjB5rH,KAAKwiU,WAAaU,EACf52S,QAAO46R,IACN,MAAM3uS,EAAM2uS,EAAUhtT,WACtB,OAAIwqU,EAAKz7L,IAAI1wH,KAGXmsT,EAAK79T,IAAI0R,IACF,EACT,IAEDwF,KAAImpS,IAAa,CAAEplC,UAAW,KAAMolC,eACzC,CAkBAF,IAAAA,GAAgC,QAAAnuD,EAAA/mQ,UAAA3B,OAAxB+yU,EAAsB,IAAAntU,MAAA8iQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAtBoqE,EAAsBpqE,GAAAhnQ,UAAAgnQ,GAC5B,GAAuB,IAAnBoqE,EAAQ/yU,OACV,MAAM,IAAIwB,MAAM,cAIlB,MAAM+yU,EAAO,IAAI94M,IACX+4M,EAAgB,GACtB,IAAK,MAAMC,KAAU1B,EAAS,CAC5B,MAAM3qT,EAAMqsT,EAAO1d,UAAUhtT,WACzBwqU,EAAKz7L,IAAI1wH,KAGXmsT,EAAK79T,IAAI0R,GACTosT,EAAcnvU,KAAKovU,GAEvB,CAEA5kU,KAAKwiU,WAAamC,EAAc5mT,KAAI6mT,IAAU,CAC5C9iD,UAAW,KACXolC,UAAW0d,EAAO1d,cAGpB,MAAMjtS,EAAUja,KAAKqkU,WACrBrkU,KAAK6kU,aAAa5qT,KAAY0qT,EAChC,CAWAG,WAAAA,GAAuC,QAAA/rE,EAAAjnQ,UAAA3B,OAAxB+yU,EAAsB,IAAAntU,MAAAgjQ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAtBkqE,EAAsBlqE,GAAAlnQ,UAAAknQ,GACnC,GAAuB,IAAnBkqE,EAAQ/yU,OACV,MAAM,IAAIwB,MAAM,cAIlB,MAAM+yU,EAAO,IAAI94M,IACX+4M,EAAgB,GACtB,IAAK,MAAMC,KAAU1B,EAAS,CAC5B,MAAM3qT,EAAMqsT,EAAO1d,UAAUhtT,WACzBwqU,EAAKz7L,IAAI1wH,KAGXmsT,EAAK79T,IAAI0R,GACTosT,EAAcnvU,KAAKovU,GAEvB,CAEA,MAAM3qT,EAAUja,KAAKqkU,WACrBrkU,KAAK6kU,aAAa5qT,KAAY0qT,EAChC,CAKAE,YAAAA,CAAa5qT,GACX,MAAM6lT,EAAW7lT,EAAQd,YAAW,QAAA8/O,EAAAnnQ,UAAA3B,OADJ+yU,EAAsB,IAAAntU,MAAAkjQ,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAtBgqE,EAAsBhqE,EAAA,GAAApnQ,UAAAonQ,GAEtDgqE,EAAQzlT,SAAQmnT,IACd,MAAM9iD,EAAYklC,GAAK8Y,EAAU8E,EAAOlN,WACxC13T,KAAK+kU,cAAcH,EAAO1d,UAAWzjT,GAASq+Q,GAAW,GAE7D,CAUAkjD,YAAAA,CAAa9J,EAAmBp5C,GAC9B9hR,KAAKqkU,WACLrkU,KAAK+kU,cAAc7J,EAAQp5C,EAC7B,CAKAijD,aAAAA,CAAc7J,EAAmBp5C,GAC/B3iR,GAA+B,KAArB2iR,EAAU3xR,QAEpB,MAAMqQ,EAAQR,KAAKwiU,WAAW/3M,WAAUw6M,GACtC/J,EAAO12S,OAAOygT,EAAQ/d,aAExB,GAAI1mT,EAAQ,EACV,MAAM,IAAI7O,MAAM,mBAAmBupU,EAAOhhU,cAG5C8F,KAAKwiU,WAAWhiU,GAAOshR,UAAY/xR,GAAAA,OAAOC,KAAK8xR,EACjD,CASAojD,gBAAAA,GAAgE,IAA/CC,IAA6BrzU,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,KAAAA,UAAA,GAK5C,OAJwBkO,KAAKolU,4BAC3BplU,KAAKskU,mBACLa,EAGJ,CAKAC,2BAAAA,CACEnrT,EACAkrT,GAEA,MAAM/8S,EAAkC,CAAC,EACzC,IAAK,MAAM,UAAC05P,EAAS,UAAEolC,KAAclnT,KAAKwiU,WACtB,OAAd1gD,EACEqjD,IACD/8S,EAAOi9S,UAAY,IAAI7vU,KAAK0xT,GAG1BxzB,GAAO5R,EAAW7nQ,EAASitS,EAAU1S,aACvCpsR,EAAOk9S,UAAY,IAAI9vU,KAAK0xT,GAInC,OAAO9+R,EAAOk9S,SAAWl9S,EAAOi9S,QAAUj9S,OAASr2B,CACrD,CASAonB,SAAAA,CAAU2W,GACR,MAAM,qBAACq1S,EAAoB,iBAAED,GAAoBl0U,OAAOG,OACtD,CAACg0U,sBAAsB,EAAMD,kBAAkB,GAC/Cp1S,GAGIgwS,EAAW9/T,KAAKskU,mBACtB,GAAIY,EAAkB,CACpB,MAAMK,EAAYvlU,KAAKolU,4BACrBtF,EACAqF,GAEF,GAAII,EAAW,CACb,IAAIv/I,EAAe,iCAWnB,MAVIu/I,EAAUD,UACZt/I,GAAgB,qCACe,IAA7Bu/I,EAAUD,QAAQn1U,OAAe,GAAK,YACjCo1U,EAAUD,QAAQvnT,KAAIrQ,GAAKA,EAAE8qT,aAAYl6T,KAAK,eAEnDinU,EAAUF,UACZr/I,GAAgB,qCACe,IAA7Bu/I,EAAUF,QAAQl1U,OAAe,GAAK,YACjCo1U,EAAUF,QAAQtnT,KAAIrQ,GAAKA,EAAE8qT,aAAYl6T,KAAK,eAEjD,IAAI3M,MAAMq0L,EAClB,CACF,CAEA,OAAOhmL,KAAKwlU,WAAW1F,EACzB,CAKA0F,UAAAA,CAAW1F,GACT,MAAM,WAAC0C,GAAcxiU,KACfylU,EAA2B,GACjC9J,GAAsB8J,EAAgBjD,EAAWryU,QACjD,MAAMu1U,EACJD,EAAet1U,OAA6B,GAApBqyU,EAAWryU,OAAc2vU,EAAS3vU,OACtDw1U,EAAkB51U,GAAAA,OAAO4L,MAAM+pU,GAoBrC,OAnBAvmU,GAAUqjU,EAAWryU,OAAS,KAC9BJ,GAAAA,OAAOC,KAAKy1U,GAAgBnrU,KAAKqrU,EAAiB,GAClDnD,EAAW/kT,SAAQ,CAAA2kR,EAAc5hS,KAAU,IAAvB,UAACshR,GAAUsgB,EACX,OAAdtgB,IACF3iR,GAA+B,KAArB2iR,EAAU3xR,OAAe,gCACnCJ,GAAAA,OAAOC,KAAK8xR,GAAWxnR,KACrBqrU,EACAF,EAAet1U,OAAiB,GAARqQ,GAE5B,IAEFs/T,EAASxlU,KACPqrU,EACAF,EAAet1U,OAA6B,GAApBqyU,EAAWryU,QAErCgP,GACEwmU,EAAgBx1U,QAAUwpU,GAC1B,0BAA0BgM,EAAgBx1U,YAAYwpU,MAEjDgM,CACT,CAMA,QAAI3/R,GAEF,OADA7mC,GAAuC,IAA7Ba,KAAK06T,aAAavqU,QACrB6P,KAAK06T,aAAa,GAAG10R,KAAKjoB,KAAI6nT,GAAUA,EAAO1K,QACxD,CAMA,aAAItC,GAEF,OADAz5T,GAAuC,IAA7Ba,KAAK06T,aAAavqU,QACrB6P,KAAK06T,aAAa,GAAG9B,SAC9B,CAMA,QAAI14S,GAEF,OADA/gB,GAAuC,IAA7Ba,KAAK06T,aAAavqU,QACrB6P,KAAK06T,aAAa,GAAGx6S,IAC9B,CASA,WAAOlwB,CAAKC,GAEV,IAAIsyB,EAAY,IAAItyB,GAEpB,MAAMw1U,EAAiB/J,GAAsBn5S,GAC7C,IAAIigT,EAAa,GACjB,IAAK,IAAIjtU,EAAI,EAAGA,EAAIkwU,EAAgBlwU,IAAK,CACvC,MAAMusR,EAAYs8C,GAAc77S,EAAW,EAAGs3S,IAC9C2I,EAAWhtU,KAAK8iU,KAAAA,OAAYvoU,GAAAA,OAAOC,KAAK8xR,IAC1C,CAEA,OAAOygD,GAAYsD,SAASxH,GAAQruU,KAAKuyB,GAAYigT,EACvD,CAUA,eAAOqD,CACL5rT,GAEa,IADbuoT,EAAyB1wU,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAE5B,MAAMsoQ,EAAc,IAAImoE,GAyCxB,OAxCAnoE,EAAYmkE,gBAAkBtkT,EAAQskT,gBAClCtkT,EAAQsiL,OAAOugI,sBAAwB,IACzC1iE,EAAYqoE,SAAWxoT,EAAQqkT,YAAY,IAE7CkE,EAAW/kT,SAAQ,CAACqkQ,EAAWthR,KAC7B,MAAMslU,EAAgB,CACpBhkD,UACEA,GAAaw2C,KAAAA,OAAY8J,IACrB,KACA9J,KAAAA,OAAYx2C,GAClBolC,UAAWjtS,EAAQqkT,YAAY99T,IAEjC45P,EAAYooE,WAAWhtU,KAAKswU,EAAc,IAG5C7rT,EAAQygT,aAAaj9S,SAAQs9S,IAC3B,MAAM/0R,EAAO+0R,EAAY4D,SAAS5gT,KAAI0gT,IACpC,MAAMvD,EAASjhT,EAAQqkT,YAAYG,GACnC,MAAO,CACLvD,SACAiB,SACE/hE,EAAYooE,WAAWrgK,MACrByjK,GAAUA,EAAO1e,UAAUhtT,aAAeghU,EAAOhhU,cAC9C+f,EAAQ+kT,gBAAgBP,GAC/BrC,WAAYniT,EAAQglT,kBAAkBR,GACvC,IAGHrkE,EAAYsgE,aAAallU,KACvB,IAAI6sU,GAAuB,CACzBr8R,OACA4yR,UAAW3+S,EAAQqkT,YAAYvD,EAAYC,gBAC3C96S,KAAMo4S,KAAAA,OAAYyC,EAAY76S,QAEjC,IAGHk6O,EAAYyoE,SAAW5oT,EACvBmgP,EAAY0oE,MAAQ1oE,EAAY52P,SAEzB42P,CACT,ECj7BK,MAAM2rE,GAKX11U,WAAAA,CAAY2rB,GAA8B,KAJ1C+iT,cAAQ,OACRrE,kBAAY,OACZ6D,qBAAe,EAGbv+T,KAAK++T,SAAW/iT,EAAK+iT,SACrB/+T,KAAK06T,aAAe1+S,EAAK0+S,aACzB16T,KAAKu+T,gBAAkBviT,EAAKuiT,eAC9B,CAEA,gBAAOyH,CACL/rT,EACA+B,GAEA,MAAM,OAACugL,EAAM,qBAAEmiI,EAAoB,gBAAEH,GAAmBtkT,GAElD,sBACJ6iT,EAAqB,0BACrBC,EAAyB,4BACzBC,GACEzgI,EAEE0pI,EACJnJ,EAAwBC,EAC1B59T,GAAO8mU,EAA4B,EAAG,6BAEtC,MAAMC,EACJjsT,EAAQkgT,kBAAkBhqU,OAC1B2sU,EACAE,EACF79T,GAAO+mU,GAA+B,EAAG,6BAEzC,MAAM5H,EAAcrkT,EAAQ4kT,eAAe7iT,GACrC+iT,EAAWT,EAAYpmT,IAAI,GACjC,QAAiBnmB,IAAbgtU,EACF,MAAM,IAAIptU,MACR,kEAIJ,MAAM+oU,EAAyC,GAC/C,IAAK,MAAMyL,KAAczH,EAAsB,CAC7C,MAAM14R,EAAsB,GAE5B,IAAK,MAAM80R,KAAYqL,EAAWlL,kBAAmB,CACnD,MAAMC,EAASoD,EAAYpmT,IAAI4iT,GAC/B,QAAe/oU,IAAXmpU,EACF,MAAM,IAAIvpU,MACR,4CAA4CmpU,KAMhD,IAAIsB,EAEFA,EAJetB,EAAWgC,EAIbhC,EAAWmL,EACfnL,EAAWwD,EAAYnE,kBAAkBhqU,OAEhD2qU,EAAWgC,EAAwBoJ,EAGnCpL,EAAWwD,EAAYnE,kBAAkBhqU,OAEzCmuU,EAAYlE,uBAAwB3xS,SAASt4B,OAGjD61C,EAAKxwC,KAAK,CACR0lU,SACAiB,SAAUrB,EAAWv+H,EAAOugI,sBAC5BV,cAEJ,CAEA,MAAMxD,EAAY0F,EAAYpmT,IAAIiuT,EAAWnL,gBAC7C,QAAkBjpU,IAAd6mU,EACF,MAAM,IAAIjnU,MACR,kDAAkDw0U,EAAWnL,kBAIjEN,EAAallU,KACX,IAAI6sU,GAAuB,CACzBzJ,YACA14S,KAAMzc,GAAS0iU,EAAWjmT,MAC1B8lB,SAGN,CAEA,OAAO,IAAI+/R,GAAmB,CAC5BhH,WACArE,eACA6D,mBAEJ,CAEA6H,sBAAAA,GACE,OAAO/H,GAAQrC,QAAQ,CACrB+C,SAAU/+T,KAAK++T,SACfR,gBAAiBv+T,KAAKu+T,gBACtB7D,aAAc16T,KAAK06T,cAEvB,CAEA2L,kBAAAA,CACEjG,GAEA,OAAOF,GAAUlE,QAAQ,CACvB+C,SAAU/+T,KAAK++T,SACfR,gBAAiBv+T,KAAKu+T,gBACtB7D,aAAc16T,KAAK06T,aACnB0F,8BAEJ,ECzHK,MAAMkG,GAIX,WAAIl7S,GACF,OAAOprB,KAAKia,QAAQmR,OACtB,CAEA/6B,WAAAA,CAAY4pB,EAA2BuoT,GACrC,GADqE,KAPvEA,gBAAU,OACVvoT,aAAO,OAOcloB,IAAfywU,EACFrjU,GACEqjU,EAAWryU,SAAW8pB,EAAQsiL,OAAOugI,sBACrC,+EAEF98T,KAAKwiU,WAAaA,MACb,CACL,MAAM+D,EAAoB,GAC1B,IAAK,IAAIhxU,EAAI,EAAGA,EAAI0kB,EAAQsiL,OAAOugI,sBAAuBvnU,IACxDgxU,EAAkB/wU,KAAK,IAAI5F,WAAWiqU,KAExC75T,KAAKwiU,WAAa+D,CACpB,CACAvmU,KAAKia,QAAUA,CACjB,CAEAd,SAAAA,GACE,MAAMmoT,EAAoBthU,KAAKia,QAAQd,YAEjCqtT,EAA0BzwU,QAChC4lU,GAAsB6K,EAAyBxmU,KAAKwiU,WAAWryU,QAE/D,MAAMs2U,EAAoBtL,GAAAA,GAIvB,CACDA,GAAAA,GACEqL,EAAwBr2U,OACxB,2BAEFgrU,GAAAA,GACEr5C,KACA9hR,KAAKwiU,WAAWryU,OAChB,cAEFgrU,GAAAA,GAAkBmG,EAAkBnxU,OAAQ,uBAGxCu2U,EAAwB,IAAI92U,WAAW,MACvC+2U,EAA8BF,EAAkBr0U,OACpD,CACEo0U,wBAAyB,IAAI52U,WAAW42U,GACxChE,WAAYxiU,KAAKwiU,WACjBlB,qBAEFoF,GAGF,OAAOA,EAAsB3sU,MAAM,EAAG4sU,EACxC,CAEA,kBAAOztT,CAAYwtT,GACjB,IAAInkT,EAAY,IAAImkT,GAEpB,MAAMlE,EAAa,GACboE,EAAmBlL,GAAsBn5S,GAC/C,IAAK,IAAIhtB,EAAI,EAAGA,EAAIqxU,EAAkBrxU,IACpCitU,EAAWhtU,KACT,IAAI5F,WAAWwuU,GAAc77S,EAAW,EAAGs3S,MAI/C,MAAM5/S,EAAUioT,GAAiBhpT,YAAY,IAAItpB,WAAW2yB,IAC5D,OAAO,IAAI+jT,GAAqBrsT,EAASuoT,EAC3C,CAEAxb,IAAAA,CAAKkc,GACH,MAAM2D,EAAc7mU,KAAKia,QAAQd,YAC3B2tT,EAAgB9mU,KAAKia,QAAQkgT,kBAAkBpgU,MACnD,EACAiG,KAAKia,QAAQsiL,OAAOugI,uBAEtB,IAAK,MAAM8H,KAAU1B,EAAS,CAC5B,MAAM6D,EAAcD,EAAcr8M,WAAUywM,GAC1CA,EAAO12S,OAAOogT,EAAO1d,aAEvB/nT,GACE4nU,GAAe,EACf,mCAAmCnC,EAAO1d,UAAUsR,cAEtDx4T,KAAKwiU,WAAWuE,GAAe/f,GAAK6f,EAAajC,EAAOlN,UAC1D,CACF,CAEAsN,YAAAA,CAAa9d,EAAsBplC,GACjC3iR,GAAgC,KAAzB2iR,EAAU9kR,WAAmB,mCACpC,MAIM+pU,EAJgB/mU,KAAKia,QAAQkgT,kBAAkBpgU,MACnD,EACAiG,KAAKia,QAAQsiL,OAAOugI,uBAEYryM,WAAUywM,GAC1CA,EAAO12S,OAAO0iS,KAEhB/nT,GACE4nU,GAAe,EACf,4BAA4B7f,EAAUsR,yDAExCx4T,KAAKwiU,WAAWuE,GAAejlD,CACjC,ECvHK,MCJMklD,GAAsB,IAAI7O,GACrC,+CAGW8O,GAA+B,IAAI9O,GAC9C,+CAGW+O,GAA6B,IAAI/O,GAC5C,+CAGWgP,GAAmC,IAAIhP,GAClD,+CAGWiP,GAAqB,IAAIjP,GACpC,+CAGWkP,GAAwB,IAAIlP,GACvC,+CAGWmP,GAA4B,IAAInP,GAC3C,+CAGWoP,GAA6B,IAAIpP,GAC5C,+CAGWqP,GAA8B,IAAIrP,GAC7C,+CChCK,MAAMsP,WAA6B91U,MAKxCtB,WAAAA,CAAW61S,GAUR,IAVS,OACV7zQ,EAAM,UACNyvP,EAAS,mBACT4lD,EAAkB,KAClBC,GAMDzhC,EACC,MAAM0hC,EAAkBD,EACpB,WAAW77S,KAAKC,UAAU47S,EAAK5tU,OAAO,IAAK,KAAM,OACjD,GACE8tU,EACJ,kFACF,IAAI5tT,EACJ,OAAQoY,GACN,IAAK,OACHpY,EACE,eAAe6nQ,6BACZ4lD,MACHE,EACAC,EACF,MACF,IAAK,WACH5tT,EACE,iCAAiCytT,QACjCE,EACAC,EACF,MACF,QACE5tT,EAAU,mBAAqCoY,KAGnDnY,MAAMD,GAAS,KAvCT6nQ,eAAS,OACT4lD,wBAAkB,OAClBI,qBAAe,EAuCrB9nU,KAAK8hR,UAAYA,EACjB9hR,KAAK0nU,mBAAqBA,EAC1B1nU,KAAK8nU,gBAAkBH,QAAc51U,CACvC,CAEA,oBAAIg2U,GACF,MAAO,CACL9tT,QAASja,KAAK0nU,mBACdC,KAAM5xU,MAAMC,QAAQgK,KAAK8nU,iBACrB9nU,KAAK8nU,qBACL/1U,EAER,CAGA,QAAI41U,GACF,MAAMK,EAAahoU,KAAK8nU,gBACxB,GACgB,MAAdE,GACsB,kBAAfA,KACP,SAAUA,GAIZ,OAAOA,CACT,CAEA,aAAMC,CAAQlzD,GAiBZ,OAhBKh/Q,MAAMC,QAAQgK,KAAK8nU,mBACtB9nU,KAAK8nU,gBAAkB,IAAIr1N,SAAQ,CAAC24B,EAASu2B,KAC3CozG,EACGmzD,eAAeloU,KAAK8hR,WACpBjrK,MAAK9yD,IACJ,GAAIA,GAAMA,EAAG4wE,MAAQ5wE,EAAG4wE,KAAKwzM,YAAa,CACxC,MAAMR,EAAO5jR,EAAG4wE,KAAKwzM,YACrBnoU,KAAK8nU,gBAAkBH,EACvBv8L,EAAQu8L,EACV,MACEhmK,EAAO,IAAIhwK,MAAM,0BACnB,IAED05I,MAAMs2B,EAAO,WAGP3hK,KAAK8nU,eACpB,EAKK,MAAMM,GAAyB,CACpCC,wCAAyC,MACzCC,0DAA2D,MAC3DC,kEAAmE,MACnEC,2CAA4C,MAC5CC,sCAAuC,MACvCC,mEAAoE,MACpEC,oCAAqC,MACrCC,mCAAoC,MACpCC,sDAAuD,MACvDC,yDAA0D,MAC1DC,yDAA0D,MAC1DC,qBAAsB,MACtBC,0DAA2D,MAC3DC,sDAAuD,MACvDC,uDAAwD,MACxDC,oDAAqD,OAKhD,MAAMC,WAA2B13U,MAGtCtB,WAAAA,CAAWk5S,EAMT+/B,GACA,IANA,KACE/qU,EAAI,QACJ0b,EAAO,KACPiG,GACuDqpR,EAGzDrvR,MAAuB,MAAjBovT,EAAwB,GAAGA,MAAkBrvT,IAAYA,GAAS,KAV1E1b,UAAI,OACJ2hB,UAAI,EAUFlgB,KAAKzB,KAAOA,EACZyB,KAAKkgB,KAAOA,EACZlgB,KAAKzO,KAAO,oBACd,ECjHKskL,eAAe0zJ,GACpBx0D,EACA3a,EACA8oE,EACAl4S,GAMA,MAAMw+S,EAAcx+S,GAAW,CAC7By+S,cAAez+S,EAAQy+S,cACvBC,oBAAqB1+S,EAAQ0+S,qBAAuB1+S,EAAQ2+S,WAC5DC,WAAY5+S,EAAQ4+S,WACpB7G,eAAgB/3S,EAAQ+3S,gBAGpBjhD,QAAkB/M,EAAW80D,gBACjCzvE,EACA8oE,EACAsG,GAGF,IAAIjoS,EACJ,GACiC,MAA/B64N,EAAYmkE,iBACwB,MAApCnkE,EAAYsoE,qBAEZnhS,SACQwzO,EAAW+0D,mBACf,CACEC,YAAa/+S,GAAS++S,YACtBjoD,UAAWA,EACXkhD,UAAW5oE,EAAYmkE,gBACvBmE,qBAAsBtoE,EAAYsoE,sBAEpC13S,GAAWA,EAAQ2+S,aAErB/wU,WACG,GAC8B,MAAnCwhQ,EAAYwoE,qBACa,MAAzBxoE,EAAYuoE,UACZ,CACA,MAAM,iBAACM,GAAoB7oE,EAAYuoE,UACjCqH,EAAqB/G,EAAiBj9R,KAAK,GAAGk1R,OACpD35R,SACQwzO,EAAW+0D,mBACf,CACEC,YAAa/+S,GAAS++S,YACtBhH,eAAgB3oE,EAAYwoE,oBAC5BoH,qBACAC,WAAY7vE,EAAYuoE,UAAUzrC,MAClCpV,aAEF92P,GAAWA,EAAQ2+S,aAErB/wU,KACJ,MAC8B,MAAxBoyB,GAAS++S,aACXlmT,QAAQ04C,KACN,yPAKJh7B,SACQwzO,EAAW+0D,mBACfhoD,EACA92P,GAAWA,EAAQ2+S,aAErB/wU,MAGJ,GAAI2oC,EAAO1V,IAAK,CACd,GAAiB,MAAbi2P,EACF,MAAM,IAAI2lD,GAAqB,CAC7Bp1S,OAAQ,OACRyvP,UAAWA,EACX4lD,mBAAoB,YAAY57S,KAAKC,UAAUwV,QAGnD,MAAM,IAAI5vC,MACR,eAAemwR,aAAqBh2P,KAAKC,UAAUwV,MAEvD,CAEA,OAAOugP,CACT,CCxGO,SAASooD,GAAMl7P,GACpB,OAAO,IAAIyjC,SAAQ24B,GAAWngG,WAAWmgG,EAASp8D,IACpD,CCoBO,SAASm7P,GACd3sT,EACA3nB,GAEA,MAAMu0U,EACJ5sT,EAAKjrB,OAAOjC,MAAQ,EAAIktB,EAAKjrB,OAAOjC,KAAOkrU,GAAgBh+S,EAAM3nB,GAC7DqqB,EAAOnwB,GAAAA,OAAO4L,MAAMyuU,GACpBC,EAAer5U,OAAOG,OAAO,CAAC4pU,YAAav9S,EAAKhd,OAAQ3K,GAE9D,OADA2nB,EAAKjrB,OAAOH,OAAOi4U,EAAcnqT,GAC1BA,CACT,CAMO,SAASoqT,GACd9sT,EACAvtB,GAEA,IAAIiwB,EACJ,IACEA,EAAO1C,EAAKjrB,OAAOP,OAAO/B,GAC1B,MAAO47B,GACP,MAAM,IAAIl6B,MAAM,wBAA0Bk6B,EAC5C,CAEA,GAAI3L,EAAK66S,cAAgBv9S,EAAKhd,MAC5B,MAAM,IAAI7O,MACR,mDAAmDuuB,EAAK66S,kBAAkBv9S,EAAKhd,SAInF,OAAO0f,CACT,CClDO,MAAMqqT,GAAsBpP,GAAAA,GAAkB,wBCO/CqP,GAAqBrP,GAAAA,GAUzB,CACAA,GAAAA,GAAiB,WACjBA,GAAAA,GAAiB,SACjBjU,GAAiB,oBACjBA,GAAiB,SACjBiU,GAAAA,GACE,CAACoP,IACD,mBAISE,GAAuBD,GAAmBl6U,KAgBhD,MAAMo6U,GAQXr6U,WAAAA,CAAY2rB,GAAwB,KAPpC2uT,sBAAgB,OAChBzzC,WAAK,OACL0zC,mBAAa,EAMX5qU,KAAK2qU,iBAAmB3uT,EAAK2uT,iBAC7B3qU,KAAKk3R,MAAQl7Q,EAAKk7Q,MAClBl3R,KAAK4qU,cAAgB5uT,EAAK4uT,aAC5B,CAQA,sBAAOC,CACL56U,GAEA,MAAM66U,EAAeN,GAAmBx4U,OAAOyR,GAASxT,GAAS,GACjE,OAAO,IAAIy6U,GAAa,CACtBC,iBAAkB,IAAIxS,GAAU2S,EAAaH,kBAC7CzzC,MAAO,IAAIihC,GAAU2S,EAAa5zC,OAAOh9R,WACzC0wU,cAAeE,EAAaF,eAEhC,ECvEF,MA2Bat0B,IApBVnmT,GAoBuB,EAnBvBI,IACC,MAAMgC,GAASwqC,EAAAA,GAAAA,IAAK5sC,GAAQI,IACtB,OAAC6B,EAAM,OAAEJ,GAVMO,KAGhB,CAACP,OAFOO,EAAOP,OAAOuF,KAAKhF,GAElBH,OADDG,EAAOH,OAAOmF,KAAKhF,KAQPw4U,CAAax4U,GAEhCy4U,EAAez4U,EAYrB,OAVAy4U,EAAah5U,OAAS,CAAC/B,EAAgBW,KACrC,MAAMyB,EAAML,EAAO/B,EAAQW,GAC3B,OAAOq6U,EAAAA,GAAAA,IAAWl7U,GAAAA,OAAOC,KAAKqC,GAAK,EAGrC24U,EAAa54U,OAAS,CAAC84U,EAAgBj7U,EAAgBW,KACrD,MAAMyB,GAAM84U,EAAAA,GAAAA,IAAWD,EAAQ/6U,IAC/B,OAAOiC,EAAOC,EAAKpC,EAAQW,EAAO,EAG7Bo6U,CAAY,GAjBpB76U,OC+NI,MAAMi7U,GAIX/6U,WAAAA,GAAe,CAKf,4BAAOg7U,CACLtQ,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAEhC,MACM2S,EADwBpQ,GAAAA,GAAiB,eACPnpU,OAAO+oU,EAAY76S,MAE3D,IAAI1C,EACJ,IAAK,MAAOguT,EAAQj5U,KAAWvB,OAAOg4J,QAAQyiL,IAC5C,GAAIl5U,EAAOiO,OAAS+qU,EAAW,CAC7B/tT,EAAOguT,EACP,KACF,CAGF,IAAKhuT,EACH,MAAM,IAAI7rB,MAAM,uDAGlB,OAAO6rB,CACT,CAKA,0BAAOkuT,CACL3Q,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,SAAC4lS,EAAQ,MAAEC,EAAK,UAAEjT,GAAa0R,GACnCmB,GAA2BK,OAC3B/Q,EAAY76S,MAGd,MAAO,CACL6rT,WAAYhR,EAAY/0R,KAAK,GAAGk1R,OAChC8Q,iBAAkBjR,EAAY/0R,KAAK,GAAGk1R,OACtC0Q,WACAC,QACAjT,UAAW,IAAIT,GAAUS,GAE7B,CAKA,qBAAOqT,CACLlR,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,SAAC4lS,GAAYtB,GACjBmB,GAA2BS,SAC3BnR,EAAY76S,MAGd,MAAO,CACL6rT,WAAYhR,EAAY/0R,KAAK,GAAGk1R,OAChCiR,SAAUpR,EAAY/0R,KAAK,GAAGk1R,OAC9B0Q,WAEJ,CAKA,6BAAOQ,CACLrR,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,SAAC4lS,EAAQ,KAAEp5O,EAAI,UAAEomO,GAAa0R,GAClCmB,GAA2BY,iBAC3BtR,EAAY76S,MAGd,MAAO,CACL6rT,WAAYhR,EAAY/0R,KAAK,GAAGk1R,OAChCoR,WAAYvR,EAAY/0R,KAAK,GAAGk1R,OAChCiR,SAAUpR,EAAY/0R,KAAK,GAAGk1R,OAC9B0Q,WACAp5O,OACAomO,UAAW,IAAIT,GAAUS,GAE7B,CAKA,qBAAO2T,CAAexR,GACpB/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,MAAC6lS,GAASvB,GACdmB,GAA2Be,SAC3BzR,EAAY76S,MAGd,MAAO,CACLusT,cAAe1R,EAAY/0R,KAAK,GAAGk1R,OACnC2Q,QAEJ,CAKA,6BAAOa,CACL3R,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,KAACnmC,EAAI,KAAE2yF,EAAI,MAAEq5O,EAAK,UAAEjT,GAAa0R,GACrCmB,GAA2BkB,iBAC3B5R,EAAY76S,MAGd,MAAO,CACLusT,cAAe1R,EAAY/0R,KAAK,GAAGk1R,OACnCoR,WAAY,IAAInU,GAAUt4T,GAC1B2yF,OACAq5O,QACAjT,UAAW,IAAIT,GAAUS,GAE7B,CAKA,mBAAOgU,CAAa7R,GAClB/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,UAAC4yR,GAAa0R,GAClBmB,GAA2BoB,OAC3B9R,EAAY76S,MAGd,MAAO,CACLusT,cAAe1R,EAAY/0R,KAAK,GAAGk1R,OACnCtC,UAAW,IAAIT,GAAUS,GAE7B,CAKA,2BAAOkU,CACL/R,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,KAACnmC,EAAI,KAAE2yF,EAAI,UAAEomO,GAAa0R,GAC9BmB,GAA2BsB,eAC3BhS,EAAY76S,MAGd,MAAO,CACLusT,cAAe1R,EAAY/0R,KAAK,GAAGk1R,OACnCoR,WAAY,IAAInU,GAAUt4T,GAC1B2yF,OACAomO,UAAW,IAAIT,GAAUS,GAE7B,CAKA,2BAAOoU,CACLjS,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,KAACnmC,EAAI,KAAE2yF,EAAI,SAAEo5O,EAAQ,MAAEC,EAAK,UAAEjT,GAAa0R,GAC/CmB,GAA2BwB,eAC3BlS,EAAY76S,MAGd,MAAO,CACL6rT,WAAYhR,EAAY/0R,KAAK,GAAGk1R,OAChC8Q,iBAAkBjR,EAAY/0R,KAAK,GAAGk1R,OACtCoR,WAAY,IAAInU,GAAUt4T,GAC1B2yF,OACAo5O,WACAC,QACAjT,UAAW,IAAIT,GAAUS,GAE7B,CAKA,4BAAOsU,CACLnS,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,WAACmnS,GAAc7C,GACnBmB,GAA2B2B,uBAC3BrS,EAAY76S,MAGd,MAAO,CACLmtT,YAAatS,EAAY/0R,KAAK,GAAGk1R,OACjCyP,iBAAkB,IAAIxS,GAAUgV,GAEpC,CAKA,yBAAOG,CACLvS,GAUA,OARA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtCskS,GACEmB,GAA2B8B,oBAC3BxS,EAAY76S,MAGP,CACLmtT,YAAatS,EAAY/0R,KAAK,GAAGk1R,OACjCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OAE1C,CAKA,0BAAOsS,CACLzS,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,SAAC4lS,GAAYtB,GACjBmB,GAA2BgC,qBAC3B1S,EAAY76S,MAGd,MAAO,CACLmtT,YAAatS,EAAY/0R,KAAK,GAAGk1R,OACjCiR,SAAUpR,EAAY/0R,KAAK,GAAGk1R,OAC9ByP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OACtC0Q,WAEJ,CAKA,2BAAO8B,CACL3S,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,WAACmnS,GAAc7C,GACnBmB,GAA2BkC,sBAC3B5S,EAAY76S,MAGd,MAAO,CACLmtT,YAAatS,EAAY/0R,KAAK,GAAGk1R,OACjCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OACtC0S,oBAAqB,IAAIzV,GAAUgV,GAEvC,CAKA,qBAAO7B,CAAe1S,GACpB,IAAKA,EAAUp0S,OAAOqpT,GAAcjV,WAClC,MAAM,IAAIjnU,MAAM,sDAEpB,CAKA,qBAAOg6U,CAAe3lS,EAAkB80Q,GACtC,GAAI90Q,EAAK71C,OAAS2qT,EAChB,MAAM,IAAInpT,MACR,8BAA8Bq0C,EAAK71C,kCAAkC2qT,IAG3E,QAgFW2wB,GAA6Bz6U,OAAO09C,OAI9C,CACDo9R,OAAQ,CACNtrU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA0D,CAChEA,GAAAA,GAAiB,eACjBA,GAAAA,GAAkB,YAClBA,GAAAA,GAAkB,SAClBjU,GAAiB,gBAGrB2lB,OAAQ,CACNrsU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA0D,CAChEA,GAAAA,GAAiB,eACjBjU,GAAiB,gBAGrBglB,SAAU,CACR1rU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA4D,CAClEA,GAAAA,GAAiB,eACjB7kB,GAAI,eAGR22B,eAAgB,CACdzsU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAAkE,CACxEA,GAAAA,GAAiB,eACjBjU,GAAiB,QACjBkU,GAAkB,QAClBD,GAAAA,GAAkB,YAClBA,GAAAA,GAAkB,SAClBjU,GAAiB,gBAGrBqmB,oBAAqB,CACnB/sU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,kBAEtBsS,qBAAsB,CACpBjtU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,eAAgBA,GAAAA,GAAkB,eAExDiS,uBAAwB,CACtB5sU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,eAAgBjU,GAAiB,iBAEvDymB,sBAAuB,CACrBntU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,eAAgBjU,GAAiB,iBAEvDslB,SAAU,CACRhsU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA4D,CAClEA,GAAAA,GAAiB,eACjBA,GAAAA,GAAkB,YAGtBwR,iBAAkB,CAChBnsU,MAAO,EACPjO,OAAQ4oU,GAAAA,GACN,CACEA,GAAAA,GAAiB,eACjBjU,GAAiB,QACjBkU,GAAkB,QAClBD,GAAAA,GAAkB,SAClBjU,GAAiB,gBAIvB6lB,eAAgB,CACdvsU,MAAO,GACPjO,OAAQ4oU,GAAAA,GAAkE,CACxEA,GAAAA,GAAiB,eACjBjU,GAAiB,QACjBkU,GAAkB,QAClBlU,GAAiB,gBAGrBmlB,iBAAkB,CAChB7rU,MAAO,GACPjO,OAAQ4oU,GAAAA,GACN,CACEA,GAAAA,GAAiB,eACjB7kB,GAAI,YACJ8kB,GAAkB,QAClBlU,GAAiB,gBAIvB4mB,oBAAqB,CACnBttU,MAAO,GACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,oBAOjB,MAAM0S,GAIXx9U,WAAAA,GAAe,CAYf,oBAAO09U,CAAcviT,GACnB,MACMtL,EAAOiqT,GADAsB,GAA2BK,OACV,CAC5BF,SAAUpgT,EAAOogT,SACjBC,MAAOrgT,EAAOqgT,MACdjT,UAAWn1T,GAAS+nB,EAAOotS,UAAUn1T,cAGvC,OAAO,IAAI4+T,GAAuB,CAChCr8R,KAAM,CACJ,CAACk1R,OAAQ1vS,EAAOugT,WAAY5P,UAAU,EAAMC,YAAY,GACxD,CAAClB,OAAQ1vS,EAAOwgT,iBAAkB7P,UAAU,EAAMC,YAAY,IAEhExD,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,eAAO8tT,CACLxiT,GAEA,IAAItL,EACA8lB,EACJ,GAAI,eAAgBxa,EAAQ,CAE1BtL,EAAOiqT,GADMsB,GAA2BY,iBAChB,CACtBT,SAAU5sU,OAAOwsB,EAAOogT,UACxBp5O,KAAMhnE,EAAOgnE,KACbomO,UAAWn1T,GAAS+nB,EAAOotS,UAAUn1T,cAEvCuiC,EAAO,CACL,CAACk1R,OAAQ1vS,EAAOugT,WAAY5P,UAAU,EAAOC,YAAY,GACzD,CAAClB,OAAQ1vS,EAAO8gT,WAAYnQ,UAAU,EAAMC,YAAY,GACxD,CAAClB,OAAQ1vS,EAAO2gT,SAAUhQ,UAAU,EAAOC,YAAY,GAE3D,KAAO,CAELl8S,EAAOiqT,GADMsB,GAA2BS,SAChB,CAACN,SAAU5sU,OAAOwsB,EAAOogT,YACjD5lS,EAAO,CACL,CAACk1R,OAAQ1vS,EAAOugT,WAAY5P,UAAU,EAAMC,YAAY,GACxD,CAAClB,OAAQ1vS,EAAO2gT,SAAUhQ,UAAU,EAAOC,YAAY,GAE3D,CAEA,OAAO,IAAIiG,GAAuB,CAChCr8R,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,aAAO/uB,CACLq6B,GAEA,IAAItL,EACA8lB,EACJ,GAAI,eAAgBxa,EAAQ,CAE1BtL,EAAOiqT,GADMsB,GAA2BsB,eAChB,CACtBltU,KAAM4D,GAAS+nB,EAAO8gT,WAAW7oU,YACjC+uF,KAAMhnE,EAAOgnE,KACbomO,UAAWn1T,GAAS+nB,EAAOotS,UAAUn1T,cAEvCuiC,EAAO,CACL,CAACk1R,OAAQ1vS,EAAOihT,cAAetQ,UAAU,EAAOC,YAAY,GAC5D,CAAClB,OAAQ1vS,EAAO8gT,WAAYnQ,UAAU,EAAMC,YAAY,GAE5D,KAAO,CAELl8S,EAAOiqT,GADMsB,GAA2BoB,OAChB,CACtBjU,UAAWn1T,GAAS+nB,EAAOotS,UAAUn1T,cAEvCuiC,EAAO,CAAC,CAACk1R,OAAQ1vS,EAAOihT,cAAetQ,UAAU,EAAMC,YAAY,GACrE,CAEA,OAAO,IAAIiG,GAAuB,CAChCr8R,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAMA,4BAAO+tT,CACLziT,GAEA,MACMtL,EAAOiqT,GADAsB,GAA2BwB,eACV,CAC5BptU,KAAM4D,GAAS+nB,EAAO8gT,WAAW7oU,YACjC+uF,KAAMhnE,EAAOgnE,KACbo5O,SAAUpgT,EAAOogT,SACjBC,MAAOrgT,EAAOqgT,MACdjT,UAAWn1T,GAAS+nB,EAAOotS,UAAUn1T,cAEvC,IAAIuiC,EAAO,CACT,CAACk1R,OAAQ1vS,EAAOugT,WAAY5P,UAAU,EAAMC,YAAY,GACxD,CAAClB,OAAQ1vS,EAAOwgT,iBAAkB7P,UAAU,EAAOC,YAAY,IAUjE,OARK5wS,EAAO8gT,WAAW9nT,OAAOgH,EAAOugT,aACnC/lS,EAAKxwC,KAAK,CACR0lU,OAAQ1vS,EAAO8gT,WACfnQ,UAAU,EACVC,YAAY,IAIT,IAAIiG,GAAuB,CAChCr8R,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,yBAAOguT,CACL1iT,GAEA,MAAM4uO,EAAc,IAAImoE,GACpB,eAAgB/2S,GAAU,SAAUA,EACtC4uO,EAAYvzP,IACVgnU,GAAcI,sBAAsB,CAClClC,WAAYvgT,EAAOugT,WACnBC,iBAAkBxgT,EAAO6hT,YACzBf,WAAY9gT,EAAO8gT,WACnB95O,KAAMhnE,EAAOgnE,KACbo5O,SAAUpgT,EAAOogT,SACjBC,MAAOpB,GACP7R,UAAW54T,KAAK44T,aAIpBx+D,EAAYvzP,IACVgnU,GAAcE,cAAc,CAC1BhC,WAAYvgT,EAAOugT,WACnBC,iBAAkBxgT,EAAO6hT,YACzBzB,SAAUpgT,EAAOogT,SACjBC,MAAOpB,GACP7R,UAAW54T,KAAK44T,aAKtB,MAAMuV,EAAa,CACjBd,YAAa7hT,EAAO6hT,YACpB1C,iBAAkBn/S,EAAOm/S,kBAI3B,OADAvwE,EAAYvzP,IAAI7G,KAAKouU,gBAAgBD,IAC9B/zE,CACT,CAKA,sBAAOg0E,CACL5iT,GAEA,MACMtL,EAAOiqT,GADAsB,GAA2B2B,uBACV,CAC5BD,WAAY1pU,GAAS+nB,EAAOm/S,iBAAiBlnU,cAEzC4qU,EAAkB,CACtBroS,KAAM,CACJ,CAACk1R,OAAQ1vS,EAAO6hT,YAAalR,UAAU,EAAOC,YAAY,GAC1D,CACElB,OAAQiM,GACRhL,UAAU,EACVC,YAAY,GAEd,CAAClB,OAAQkM,GAAoBjL,UAAU,EAAOC,YAAY,IAE5DxD,UAAW54T,KAAK44T,UAChB14S,QAEF,OAAO,IAAImiT,GAAuBgM,EACpC,CAKA,mBAAOC,CAAa9iT,GAClB,MACMtL,EAAOiqT,GADAsB,GAA2B8B,qBAElCc,EAAkB,CACtBroS,KAAM,CACJ,CAACk1R,OAAQ1vS,EAAO6hT,YAAalR,UAAU,EAAOC,YAAY,GAC1D,CACElB,OAAQiM,GACRhL,UAAU,EACVC,YAAY,GAEd,CAAClB,OAAQ1vS,EAAOm/S,iBAAkBxO,UAAU,EAAMC,YAAY,IAEhExD,UAAW54T,KAAK44T,UAChB14S,QAEF,OAAO,IAAImiT,GAAuBgM,EACpC,CAKA,oBAAOE,CAAc/iT,GACnB,MACMtL,EAAOiqT,GADAsB,GAA2BgC,qBACV,CAAC7B,SAAUpgT,EAAOogT,WAEhD,OAAO,IAAIvJ,GAAuB,CAChCr8R,KAAM,CACJ,CAACk1R,OAAQ1vS,EAAO6hT,YAAalR,UAAU,EAAOC,YAAY,GAC1D,CAAClB,OAAQ1vS,EAAO2gT,SAAUhQ,UAAU,EAAOC,YAAY,GACvD,CACElB,OAAQiM,GACRhL,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQkM,GACRjL,UAAU,EACVC,YAAY,GAEd,CAAClB,OAAQ1vS,EAAOm/S,iBAAkBxO,UAAU,EAAMC,YAAY,IAEhExD,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAMA,qBAAOsuT,CAAehjT,GACpB,MACMtL,EAAOiqT,GADAsB,GAA2BkC,sBACV,CAC5BR,WAAY1pU,GAAS+nB,EAAOoiT,oBAAoBnqU,cAGlD,OAAO,IAAI4+T,GAAuB,CAChCr8R,KAAM,CACJ,CAACk1R,OAAQ1vS,EAAO6hT,YAAalR,UAAU,EAAOC,YAAY,GAC1D,CAAClB,OAAQ1vS,EAAOm/S,iBAAkBxO,UAAU,EAAMC,YAAY,IAEhExD,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,eAAO7b,CACLmnB,GAEA,IAAItL,EACA8lB,EACJ,GAAI,eAAgBxa,EAAQ,CAE1BtL,EAAOiqT,GADMsB,GAA2BkB,iBAChB,CACtB9sU,KAAM4D,GAAS+nB,EAAO8gT,WAAW7oU,YACjC+uF,KAAMhnE,EAAOgnE,KACbq5O,MAAOrgT,EAAOqgT,MACdjT,UAAWn1T,GAAS+nB,EAAOotS,UAAUn1T,cAEvCuiC,EAAO,CACL,CAACk1R,OAAQ1vS,EAAOihT,cAAetQ,UAAU,EAAOC,YAAY,GAC5D,CAAClB,OAAQ1vS,EAAO8gT,WAAYnQ,UAAU,EAAMC,YAAY,GAE5D,KAAO,CAELl8S,EAAOiqT,GADMsB,GAA2Be,SAChB,CACtBX,MAAOrgT,EAAOqgT,QAEhB7lS,EAAO,CAAC,CAACk1R,OAAQ1vS,EAAOihT,cAAetQ,UAAU,EAAMC,YAAY,GACrE,CAEA,OAAO,IAAIiG,GAAuB,CAChCr8R,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,EAnTW2tT,GASJjV,UAAuB,IAAIT,GAChC,oCC1tBJ,MAAMsW,GAAa9U,GAAmB,IAK/B,MAAM+U,GAIXr+U,WAAAA,GAAe,CAaf,0BAAOs+U,CAAoBlP,GACzB,OACE,GACCvtU,KAAKyP,KAAK89T,EAAaiP,GAAOtpI,WAC7B,EACA,EAEN,CAYA,iBAAankK,CACX8zO,EACA+mD,EACA8S,EACAhW,EACA14S,GAEA,CACE,MAAM2uT,QAAsB95D,EAAW+5D,kCACrC5uT,EAAK/vB,QAID4+U,QAAoBh6D,EAAWwM,eACnCqtD,EAAQ1nB,UACR,aAGF,IAAI9sD,EAAkC,KACtC,GAAoB,OAAhB20E,EAAsB,CACxB,GAAIA,EAAYC,WAEd,OADAnrT,QAAQlG,MAAM,uDACP,EAGLoxT,EAAY7uT,KAAK/vB,SAAW+vB,EAAK/vB,SACnCiqQ,EAAcA,GAAe,IAAImoE,GACjCnoE,EAAYvzP,IACVgnU,GAAcxpU,SAAS,CACrBooU,cAAemC,EAAQ1nB,UACvB2kB,MAAO3rT,EAAK/vB,WAKb4+U,EAAYE,MAAMzqT,OAAOo0S,KAC5Bx+D,EAAcA,GAAe,IAAImoE,GACjCnoE,EAAYvzP,IACVgnU,GAAc18U,OAAO,CACnBs7U,cAAemC,EAAQ1nB,UACvB0R,gBAKFmW,EAAYnD,SAAWiD,IACzBz0E,EAAcA,GAAe,IAAImoE,GACjCnoE,EAAYvzP,IACVgnU,GAAcG,SAAS,CACrBjC,WAAYjQ,EAAM5U,UAClBilB,SAAUyC,EAAQ1nB,UAClB0kB,SAAUiD,EAAgBE,EAAYnD,YAI9C,MACExxE,GAAc,IAAImoE,IAAc17T,IAC9BgnU,GAAcE,cAAc,CAC1BhC,WAAYjQ,EAAM5U,UAClB8kB,iBAAkB4C,EAAQ1nB,UAC1B0kB,SAAUiD,EAAgB,EAAIA,EAAgB,EAC9ChD,MAAO3rT,EAAK/vB,OACZyoU,eAOc,OAAhBx+D,SACImvE,GACJx0D,EACA3a,EACA,CAAC0hE,EAAO8S,GACR,CACEjF,WAAY,aAIpB,CAEA,MAAMuF,EAAa/T,GAAAA,GAQjB,CACAA,GAAAA,GAAiB,eACjBA,GAAAA,GAAiB,UACjBA,GAAAA,GAAiB,eACjBA,GAAAA,GAAiB,sBACjBA,GAAAA,GACEA,GAAAA,GAAgB,QAChBA,GAAAA,GAAoBA,GAAAA,MAAqB,GACzC,WAIE/1H,EAAYspI,GAAOtpI,UACzB,IAAIx0M,EAAS,EACT2qB,EAAQ2E,EACRivT,EAAe,GACnB,KAAO5zT,EAAMprB,OAAS,GAAG,CACvB,MAAM+0B,EAAQ3J,EAAMxhB,MAAM,EAAGqrM,GACvBllL,EAAOnwB,GAAAA,OAAO4L,MAAMypM,EAAY,IACtC8pI,EAAW98U,OACT,CACE2oU,YAAa,EACbnqU,SACAs0B,MAAOA,EACP6vR,YAAa,EACbq6B,mBAAoB,GAEtBlvT,GAGF,MAAMk6O,GAAc,IAAImoE,IAAc17T,IAAI,CACxCm/B,KAAM,CAAC,CAACk1R,OAAQ0T,EAAQ1nB,UAAWiV,UAAU,EAAMC,YAAY,IAC/DxD,YACA14S,SASF,GAPAivT,EAAa35U,KACX+zU,GAA0Bx0D,EAAY3a,EAAa,CAAC0hE,EAAO8S,GAAU,CACnEjF,WAAY,eAKZ50D,EAAWs6D,aAAavqT,SAAS,cAAe,CAClD,MAAMwqT,EAAsB,QACtBpF,GAAM,IAAOoF,EACrB,CAEA1+U,GAAUw0M,EACV7pL,EAAQA,EAAMxhB,MAAMqrM,EACtB,OACM3yF,QAAQ6tD,IAAI6uK,GAGlB,CACE,MAAMD,EAAa/T,GAAAA,GAA2C,CAC5DA,GAAAA,GAAiB,iBAGbj7S,EAAOnwB,GAAAA,OAAO4L,MAAMuzU,EAAW5+U,MACrC4+U,EAAW98U,OACT,CACE2oU,YAAa,GAEf76S,GAGF,MAAMk6O,GAAc,IAAImoE,IAAc17T,IAAI,CACxCm/B,KAAM,CACJ,CAACk1R,OAAQ0T,EAAQ1nB,UAAWiV,UAAU,EAAMC,YAAY,GACxD,CAAClB,OAAQkM,GAAoBjL,UAAU,EAAOC,YAAY,IAE5DxD,YACA14S,SAEIqvT,EAAmB,YACnBC,QAA0Bz6D,EAAW80D,gBACzCzvE,EACA,CAAC0hE,EAAO8S,GACR,CAAClF,oBAAqB6F,KAElB,QAAC7qP,EAAO,MAAE9rF,SAAem8Q,EAAW+0D,mBACxC,CACEhoD,UAAW0tD,EACX9M,qBAAsBtoE,EAAYsoE,qBAClCM,UAAW5oE,EAAYmkE,iBAEzBgR,GAEF,GAAI32U,EAAMizB,IACR,MAAM,IAAIl6B,MACR,eAAe69U,aAA6B1jT,KAAKC,UAAUnzB,OAK/D,OAEE,CACA,IAIE,SAH0Bm8Q,EAAW06D,QAAQ,CAC3C9F,WAAY4F,IAEI7qP,EAAQgrP,KACxB,KAEJ,CAAE,MACA,OAEI,IAAIj9N,SAAQ24B,GAChBngG,WAAWmgG,EAASl5I,KAAKuc,MAAMkhU,OAEnC,CACF,CAGA,OAAO,CACT,EAjPWjB,GASJtpI,UAAoBqpI,SCvBhBmB,GAAwB,IAAIzX,GACvC,+CAQK,MAAM0X,GAOX,0BAAOlB,CAAoBlP,GACzB,OAAOiP,GAAOC,oBAAoBlP,EACpC,CAYA,WAAOx+R,CACL8zO,EACA+mD,EACA8S,EACAkB,EACAC,GAEA,OAAOrB,GAAOztS,KAAK8zO,EAAY+mD,EAAO8S,EAASmB,EAAiBD,EAClE,oJChDF,IAAIE,EAAch/U,OAAOE,UAAUgJ,SAC/B+1U,EAAUj/U,OAAOg1C,MAAQ,SAASpoB,GACpC,IAAIooB,EAAO,GACX,IAAK,IAAIz0C,KAAQqsB,EAChBooB,EAAKxwC,KAAKjE,GAEX,OAAOy0C,CACT,EAEA,SAASja,EAAU3sB,EAAK8wU,GACvB,IAAI36U,EAAG0L,EAAKrE,EAAKopC,EAAMztB,EAAK43T,EAASC,EACrC,IAAY,IAARhxU,EACH,MAAO,OAER,IAAY,IAARA,EACH,MAAO,QAER,cAAeA,GACd,IAAK,SACJ,GAAY,OAARA,EACH,OAAO,KACD,GAAIA,EAAIoE,QAAgC,oBAAfpE,EAAIoE,OACnC,OAAOuoB,EAAU3sB,EAAIoE,SAAU0sU,GAG/B,GAAc,oBADdE,EAAQJ,EAAYl4U,KAAKsH,IACO,CAG/B,IAFAxC,EAAM,IACNqE,EAAM7B,EAAIjP,OAAS,EACfoF,EAAI,EAAGA,EAAI0L,EAAK1L,IACnBqH,GAAOmvB,EAAU3sB,EAAI7J,IAAI,GAAQ,IAKlC,OAHI0L,GAAO,IACVrE,GAAOmvB,EAAU3sB,EAAI7J,IAAI,IAEnBqH,EAAM,GAClB,CAAW,GAAc,oBAAVwzU,EAA6B,CAMvC,IAHAnvU,GADA+kC,EAAOiqS,EAAQ7wU,GAAKmrK,QACTp6K,OACXyM,EAAM,GACNrH,EAAI,EACGA,EAAI0L,QAGMlP,KADhBo+U,EAAUpkT,EAAU3sB,EADpBmZ,EAAMytB,EAAKzwC,KACmB,MAEzBqH,IACHA,GAAO,KAERA,GAAOkvB,KAAKC,UAAUxT,GAAO,IAAM43T,GAEpC56U,IAED,MAAO,IAAMqH,EAAM,GACxB,CACK,OAAOkvB,KAAKC,UAAU3sB,GAGzB,IAAK,WACL,IAAK,YACJ,OAAO8wU,EAAc,UAAOn+U,EAC7B,IAAK,SACJ,OAAO+5B,KAAKC,UAAU3sB,GACvB,QACC,OAAO2lB,SAAS3lB,GAAOA,EAAM,aAIlBixU,GAAG,SAASjxU,GACzB,IAAIkxU,EAAYvkT,EAAU3sB,GAAK,GAC/B,QAAkBrN,IAAdu+U,EACH,MAAO,GAAIA,mBCnEb,SAASC,GAAcpiU,GACrB,IAAIoiU,EAAgB,EACpB,KAAOpiU,EAAI,GACTA,GAAK,EACLoiU,IAEF,OAAOA,CACT,CAoBO,MAAMC,GAYXngV,WAAAA,CACEogV,EACAC,EACAC,EACAC,EACAC,GAhBF,KACOJ,mBAAa,EACpB,KACOC,8BAAwB,EAC/B,KACOC,YAAM,EACb,KACOC,sBAAgB,EACvB,KACOC,qBAAe,EASpB7wU,KAAKywU,cAAgBA,EACrBzwU,KAAK0wU,yBAA2BA,EAChC1wU,KAAK2wU,OAASA,EACd3wU,KAAK4wU,iBAAmBA,EACxB5wU,KAAK6wU,gBAAkBA,CACzB,CAEAC,QAAAA,CAASpB,GACP,OAAO1vU,KAAK+wU,qBAAqBrB,GAAM,EACzC,CAEAqB,oBAAAA,CAAqBrB,GACnB,GAAIA,EAAO1vU,KAAK6wU,gBAAiB,CAC/B,MAAMG,EACJT,GAlDR,SAAwBpiU,GACtB,OAAU,IAANA,EAAgB,GACpBA,IACAA,GAAKA,GAAK,EACVA,GAAKA,GAAK,EACVA,GAAKA,GAAK,EACVA,GAAKA,GAAK,EACVA,GAAKA,GAAK,GAEC,GADXA,GAAKA,GAAK,IAEZ,CAwCsB8iU,CAAevB,EA/DN,GA+DsC,IAC7Da,GAhEuB,IAiEvB,EAIF,MAAO,CAACS,EADUtB,GADD1vU,KAAKkxU,gBAAgBF,GAnEb,IAsE3B,CAAO,CACL,MAAMG,EAAkBzB,EAAO1vU,KAAK6wU,gBAC9BO,EAAmBl/U,KAAKC,MAAMg/U,EAAkBnxU,KAAKywU,eAG3D,MAAO,CAFOzwU,KAAK4wU,iBAAmBQ,EACpBD,EAAkBnxU,KAAKywU,cAE3C,CACF,CAEAY,mBAAAA,CAAoBL,GAClB,OAAIA,GAAShxU,KAAK4wU,iBAhFS,IAiFjB1+U,KAAKmB,IAAI,EAAG29U,GAAS,IAG1BA,EAAQhxU,KAAK4wU,kBAAoB5wU,KAAKywU,cACvCzwU,KAAK6wU,eAGX,CAEAS,kBAAAA,CAAmBN,GACjB,OAAOhxU,KAAKqxU,oBAAoBL,GAAShxU,KAAKkxU,gBAAgBF,GAAS,CACzE,CAEAE,eAAAA,CAAgBF,GACd,OAAIA,EAAQhxU,KAAK4wU,iBACR1+U,KAAKmB,IAAI,EAAG29U,EAAQT,GAhGF,KAkGlBvwU,KAAKywU,aAEhB,ECjGF,IAAA/xD,GAAej+G,WAAWvsE,MCUX,MAAMq9O,WAA2B5lB,GAE9Ct7T,WAAAA,CACEi7T,EACAtgS,EACAmhS,GAoBAjyS,OAf0B8iB,IACxB,MAAMw0S,EAAMjmB,GAAUvuR,EAAK,CACzB4uR,aAAa,EACbI,eAAgB,EAChBH,WAAW,EACXE,mBAAoB,OACjB/gS,IAOL,OAJEhrB,KAAKyxU,iBADH,WAAYD,EACUA,EAAInmB,OAEJmmB,EAEnBA,CAAG,GAEYlmB,EAAStgS,EAASmhS,GAAqB,KAxBzDslB,sBAAgB,CAyBxB,CACA35U,IAAAA,GAGE,MAAMwpC,EAAathC,KAAKyxU,kBAAkBnwS,WAC1C,OAAmB,IAAfA,EACKpnB,MAAMpiB,QAAKhG,WAEb2gH,QAAQkvD,OACb,IAAIhwK,MACF,qCAAmCG,UAAA3B,QAAA,OAAA4B,EAAAD,UAAA,IAEjC,qEACAwvC,EACA,KAGR,CACAwrR,MAAAA,GAGE,MAAMxrR,EAAathC,KAAKyxU,kBAAkBnwS,WAC1C,OAAmB,IAAfA,EACKpnB,MAAM4yS,UAAOh7T,WAEf2gH,QAAQkvD,OACb,IAAIhwK,MACF,2CAAyCG,UAAA3B,QAAA,OAAA4B,EAAAD,UAAA,IAEvC,qEACAwvC,EACA,KAGR,ECjDK,MAAMowS,GAIXrhV,WAAAA,CAAY2rB,GAAqC,KAHjDzD,SAAG,OACHq7E,WAAK,EAGH5zF,KAAKuY,IAAMyD,EAAKzD,IAChBvY,KAAK4zF,MAAQ53E,EAAK43E,KACpB,CAEAm3B,QAAAA,GACE,MAAM4mN,EAAU3yU,OAAO,sBACvB,OAAOgB,KAAK4zF,MAAMg+O,mBAAqBD,CACzC,CAEA,kBAAOz4T,CAAY24T,GACjB,MAAMl9M,ECnBH,SACLn3G,EACA0C,GAEA,IAAI4qJ,EACJ,IACEA,EAAUttJ,EAAKjrB,OAAOP,OAAOkuB,GAC7B,MAAO2L,GACP,MAAM,IAAIl6B,MAAM,wBAA0Bk6B,EAC5C,CAEA,GAAIi/I,EAAQygK,YAAc/tT,EAAKhd,MAC7B,MAAM,IAAI7O,MACR,+CAA+Cm5K,EAAQygK,gBAAgB/tT,EAAKhd,SAIhF,OAAOsqK,CACT,CDCiBgnK,CAAWC,GAAuBF,GAEzCG,EAAyBH,EAAY1hV,OAnBhB,GAoB3BgP,GAAO6yU,GAA0B,EAAG,2BACpC7yU,GAAO6yU,EAAyB,KAAO,EAAG,2BAE1C,MAAMC,EAAyBD,EAAyB,IAClD,UAACvU,GAAatC,GAAAA,GAAoD,CACtEA,GAAAA,GAAiBjU,KAAoB+qB,EAAwB,eAC5DjgV,OAAO6/U,EAAY93U,MA1BK,KA4B3B,MAAO,CACL63U,iBAAkBj9M,EAAKi9M,iBACvBM,iBAAkBv9M,EAAKu9M,iBACvBC,2BAA4Bx9M,EAAKy9M,uBACjCt9C,UAC4B,IAA1BngK,EAAKmgK,UAAU3kS,OACX,IAAIgoU,GAAUxjM,EAAKmgK,UAAU,SAC7B/iS,EACN0rU,UAAWA,EAAU1/S,KAAIutS,GAAW,IAAI6M,GAAU7M,KAEtD,EAGF,MAAMymB,GAAwB,CAC5BvxU,MAAO,EACPjO,OAAQ4oU,GAAAA,GAML,CACDA,GAAAA,GAAiB,aACjB7kB,GAAI,oBACJ6kB,GAAAA,GAAkB,oBAClBA,GAAAA,GAAgB,0BAChBA,GAAAA,KACAA,GAAAA,GACEjU,KACAiU,GAAAA,GAAoBA,GAAAA,MAAoB,GACxC,gBEhFAkX,GAAS,6CC6Df,MAAMC,GAAsBtoB,GAC1BhhL,GAASmvL,IACTr7T,MACAlE,GAAS,IAAIu/T,GAAUv/T,KAGnB25U,GAAuBjoB,GAAM,CAACxtT,KAAU2tT,GAAQ,YAEhD+nB,GAA2BxoB,GAC/BhhL,GAASj5I,GAAAA,QACTwiV,IACA35U,GAAS7I,GAAAA,OAAOC,KAAK4I,EAAM,GAAI,YAOpB65U,GAA6B,IAgS1C,SAASC,GACPC,GAEA,IAAIhJ,EACA75S,EACJ,GAAkC,kBAAvB6iT,EACThJ,EAAagJ,OACR,GAAIA,EAAoB,CAC7B,MAAOhJ,WAAYiJ,KAAwBC,GACzCF,EACFhJ,EAAaiJ,EACb9iT,EAAS+iT,CACX,CACA,MAAO,CAAClJ,aAAY75S,SACtB,CAKA,SAASgjT,GACPvqQ,GAEA,OAAOA,EAAQxqD,KAAIuO,GACjB,WAAYA,EACR,IACKA,EACHymT,OAAQ,IACHzmT,EAAOymT,OACVp5T,SAAU2S,EAAOymT,OAAOp5T,UAAY,WAGxC2S,GAER,CAKA,SAAS0mT,GAAsBj6T,GAC7B,OAAOxgB,GAAM,CACXilB,GAAK,CACH+O,QAASk+R,GAAQ,OACjBh/R,GAAI3uB,KACJic,WAEFyE,GAAK,CACH+O,QAASk+R,GAAQ,OACjBh/R,GAAI3uB,KACJ6gB,MAAOH,GAAK,CACVjf,KAAM4sT,KACNlxS,QAASnd,KACTojB,KAAMm2O,GjD/YLrtM,GAAO,OAAO,KAAM,UiDmZ7B,CAEA,MAAMiqR,GAAmBD,GAAgB7nB,MAKzC,SAAS+nB,GAAoB/1T,GAC3B,OAAO6sS,GAAOgpB,GAAgB71T,GAAS81T,IAAkBr6U,GACnD,UAAWA,EACNA,EAEA,IACFA,EACHmgB,OAAQ9nB,GAAO2H,EAAMmgB,OAAQoE,KAIrC,CAKA,SAASg2T,GAA8Bv6U,GACrC,OAAOs6U,GACL11T,GAAK,CACHknE,QAASlnE,GAAK,CACZkyT,KAAM9vU,OAERhH,UAGN,CAKA,SAASw6U,GAAmCx6U,GAC1C,OAAO4kB,GAAK,CACVknE,QAASlnE,GAAK,CACZkyT,KAAM9vU,OAERhH,SAEJ,CAKA,SAASy6U,GACPjoT,EACAY,GAEA,OAAgB,IAAZZ,EACK,IAAI80S,GAAU,CACnB3jI,OAAQvwK,EAASuwK,OACjB49H,kBAAmBnuS,EAASsyS,YAAYvgT,KACtC6/S,GAAc,IAAIzF,GAAUyF,KAE9BW,gBAAiBvyS,EAASuyS,gBAC1BG,qBAAsB1yS,EAAS0uS,aAAa38S,KAAIs3C,IAAM,CACpD2lQ,eAAgB3lQ,EAAG2lQ,eACnBC,kBAAmB5lQ,EAAGspQ,SACtBz+S,KAAMo4S,KAAAA,OAAYjjQ,EAAGn1C,UAEvB0+S,oBAAqB5yS,EAAS4yS,sBAGzB,IAAIP,GAAQryS,EAEvB,CA8RA,MAAMsnT,GAA6B91T,GAAK,CACtC+1T,WAAY3zU,KACZ4zU,eAAgB5zU,KAChBo/N,QAASp/N,KACT6zU,MAAO7zU,KACP8zU,SAAU9zU,OAsBN+zU,GAA2BT,GAC/B33T,GACEqvS,GACEptS,GAAK,CACHwzT,MAAOpxU,KACPg0U,cAAeh0U,KACf4rD,OAAQ5rD,KACRi0U,YAAaj0U,KACbk0U,WAAYz9E,GAASu0D,GAAShrT,YA2BhCm0U,GAAoCx4T,GACxCiC,GAAK,CACHkyT,KAAM9vU,KACNo0U,kBAAmBp0U,QAkBjBq0U,GAAyBz2T,GAAK,CAClCvb,MAAOrC,KACP4oM,UAAW5oM,KACX2zU,WAAY3zU,KACZoxU,MAAOpxU,OAeHs0U,GAAqB12T,GAAK,CAC9BwzT,MAAOpxU,KACPu0U,UAAWv0U,KACXw0U,aAAcx0U,KACdy0U,aAAcz0U,KACd00U,YAAaj+E,GAASz2P,MACtB20U,iBAAkBl+E,GAASz2P,QAGvB40U,GAAyBh3T,GAAK,CAClCizT,cAAe7wU,KACf8wU,yBAA0B9wU,KAC1B+wU,OAAQrnI,KACRsnI,iBAAkBhxU,KAClBixU,gBAAiBjxU,OAWb60U,GAA0B5pB,GAAO/tT,KAAUye,GAAM3b,OAKjD80U,GAAyB9pB,GAASryT,GAAM,CAACilB,GAAK,CAAC,GAAI1gB,QAKnD63U,GAAwBn3T,GAAK,CACjCqO,IAAK6oT,KAMDE,GAA0BnqB,GAAQ,qBAWlCoqB,GAAgBr3T,GAAK,CACzB,cAAe1gB,KACf,cAAeu5P,GAASz2P,QAkDpBk1U,GAA0Bt3T,GAAK,CACnCoxT,QAAS9xU,KACT87T,UAAW0Z,GACXrwT,OAAQkpS,OAGJ4pB,GAAoCv3T,GAAK,CAC7Co7S,UAAW0Z,GACX3T,SAAUpjT,GAAM+2T,IAChBpyT,KAAMpjB,OAGFk4U,GAAqC7B,GACzC31T,GAAK,CACHqO,IAAK++R,GAASryT,GAAM,CAACilB,GAAK,CAAC,GAAI1gB,QAC/B6qU,KAAM/c,GAASrvS,GAAMze,OACrB6hU,SAAUtoE,GACRu0D,GACErvS,GACEqvS,GACEptS,GAAK,CACHwxT,WAAY1lI,KACZ2lI,MAAOnyU,KACP8uU,SAAUhsU,KACVsgB,KAAM3E,GAAMze,MACZm4U,UAAW5+E,GAASz2P,YAM9Bs1U,cAAe7+E,GAASz2P,MACxBu1U,WAAY9+E,GACVu0D,GACEptS,GAAK,CACHo7S,UAAW97T,KACXojB,KAAMoqS,GAAM,CAACxtT,KAAU2tT,GAAQ,gBAIrC2qB,kBAAmB/+E,GACjBu0D,GACErvS,GACEiC,GAAK,CACHhd,MAAOZ,KACP86T,aAAcn/S,GACZhjB,GAAM,CACJu8U,GACAC,cAwgBVM,GAAgClC,GACpC31T,GAAK,CACH83T,WAAYzqB,GAAO/tT,KAAUye,GAAM3b,OACnCipB,MAAOrL,GAAK,CACV+3T,UAAW31U,KACX41U,SAAU51U,UA4LhB,MAAM61U,GAAgCvC,GAAcI,IAK9CoC,GAA4BxC,GAAce,IAK1C0B,GAAuCzC,GAC3Ca,IAMI6B,GAAwB1C,GAAcgB,IAKtC2B,GAA4B3C,GAAcsB,IAK1CsB,GAA6B5C,GAAcuB,IAK3CsB,GAAgB7C,GAActzU,MAmB9Bo2U,GAAqB7C,GACzB31T,GAAK,CACHvb,MAAOrC,KACPq2U,YAAar2U,KACbs2U,eAAgBt2U,KAChBu2U,uBAAwB56T,GAAM+2T,OAsB5B8D,GAAoB54T,GAAK,CAC7BguC,OAAQ1uD,KACRu5U,SAAUzrB,GAAShrT,MACnB02U,SAAU12U,KACV22U,eAAgBlgF,GAASv5P,QAsBrB05U,GAAgCrD,GACpC53T,GACEiC,GAAK,CACH8tS,QAASgnB,GACT9mR,OAAQ1uD,KACRu5U,SAAUzrB,GAAShrT,MACnB02U,SAAU12U,KACV22U,eAAgBlgF,GAASv5P,UAQzB25U,GAA0BtD,GAC9B53T,GACEiC,GAAK,CACH09S,OAAQoX,GACR7T,QAASjhT,GAAK,CACZwxT,WAAY1lI,KACZ2lI,MAAOqD,GACP1G,SAAUhsU,KACVsgB,KAAMsyT,GACNyC,UAAWr1U,WAMb82U,GAA0Bl5T,GAAK,CACnCoxT,QAAS9xU,KACTmlB,OAAQkpS,KACR0gB,MAAOjsU,OAMH+2U,GAAgCxD,GACpC53T,GACEiC,GAAK,CACH09S,OAAQoX,GACR7T,QAASjhT,GAAK,CACZwxT,WAAY1lI,KACZ2lI,MAAOqD,GACP1G,SAAUhsU,KACVsgB,KAAMw2T,GACNzB,UAAWr1U,WAiBbg3U,GAA8BzD,GAClC53T,GACEiC,GAAK,CACHouT,SAAUhsU,KACV0rT,QAASgnB,OAQTuE,GAAoBr5T,GAAK,CAC7BwxT,WAAY1lI,KACZ2lI,MAAOqD,GACP1G,SAAUhsU,KACVsgB,KAAMsyT,GACNyC,UAAWr1U,OAMPk3U,GAAyBt5T,GAAK,CAClC09S,OAAQoX,GACR7T,QAASoY,KAGLE,GAAyB/sB,GAC7BzxT,GAAM,CAACywI,GAASj5I,GAAAA,QAAS2mV,KACzBn+U,GAAM,CAACg6U,GAAsBmE,MAC7B99U,GACM7C,MAAMC,QAAQ4C,GACT3H,GAAO2H,EAAO45U,IAEd55U,IAQPo+U,GAA0Bx5T,GAAK,CACnCwxT,WAAY1lI,KACZ2lI,MAAOqD,GACP1G,SAAUhsU,KACVsgB,KAAM62T,GACN9B,UAAWr1U,OAGPq3U,GAA+Bz5T,GAAK,CACxC09S,OAAQoX,GACR7T,QAASuY,KAMLE,GAAwB15T,GAAK,CACjCo2E,MAAOr7F,GAAM,CACXkyT,GAAQ,UACRA,GAAQ,YACRA,GAAQ,cACRA,GAAQ,kBAEV3xN,OAAQl5F,KACRu3U,SAAUv3U,OAONw3U,GAA6ClE,GACjD33T,GACEiC,GAAK,CACHskQ,UAAWhlR,KACX4yU,KAAM9vU,KACNisB,IAAK6oT,GACLxoL,KAAM0+J,GAAS9tT,MACfu6U,UAAWhhF,GAASu0D,GAAShrT,WAQ7B03U,GAAmCpE,GACvC33T,GACEiC,GAAK,CACHskQ,UAAWhlR,KACX4yU,KAAM9vU,KACNisB,IAAK6oT,GACLxoL,KAAM0+J,GAAS9tT,MACfu6U,UAAWhhF,GAASu0D,GAAShrT,WAQ7B23U,GAA4B/5T,GAAK,CACrC40Q,aAAcxyR,KACdmZ,OAAQq6T,GAA6ByD,MAMjCW,GAA2Bh6T,GAAK,CACpC09S,OAAQoX,GACR7T,QAASoY,KAMLY,GAAmCj6T,GAAK,CAC5C40Q,aAAcxyR,KACdmZ,OAAQq6T,GAA6BoE,MAMjCE,GAAiBl6T,GAAK,CAC1By7C,OAAQr5D,KACR8vU,KAAM9vU,KACN+2D,KAAM/2D,OAMF+3U,GAAyBn6T,GAAK,CAClC40Q,aAAcxyR,KACdmZ,OAAQ2+T,KAiEJE,GAAmBr/U,GAAM,CAC7BilB,GAAK,CACHA,KAAMjlB,GAAM,CACVkyT,GAAQ,sBACRA,GAAQ,aACRA,GAAQ,0BACRA,GAAQ,UAEVilB,KAAM9vU,KACN+/L,UAAW//L,OAEb4d,GAAK,CACHA,KAAMitS,GAAQ,eACdxxP,OAAQr5D,KACR8vU,KAAM9vU,KACN+/L,UAAW//L,OAEb4d,GAAK,CACHA,KAAMitS,GAAQ,UACdilB,KAAM9vU,KACN+/L,UAAW//L,KACXi4U,MAAOr6T,GAAK,CACVs6T,sBAAuBl4U,KACvBm4U,0BAA2Bn4U,KAC3Bo4U,sBAAuBp4U,KACvBq4U,wBAAyBr4U,SAG7B4d,GAAK,CACHA,KAAMitS,GAAQ,QACdilB,KAAM9vU,KACN+/L,UAAW//L,KACXisB,IAAK/uB,SAOHo7U,GAA+B16T,GAAK,CACxC40Q,aAAcxyR,KACdmZ,OAAQ6+T,KAMJO,GAA8B36T,GAAK,CACvC40Q,aAAcxyR,KACdmZ,OAAQq6T,GACN76U,GAAM,CAACo8U,GAAuBC,QAO5BwD,GAAyB56T,GAAK,CAClC40Q,aAAcxyR,KACdmZ,OAAQnZ,OAGJy4U,GAAoB76T,GAAK,CAC7B09S,OAAQp+T,KACRw7U,OAAQ1tB,GAAS9tT,MACjBy7U,IAAK3tB,GAAS9tT,MACd00U,IAAK5mB,GAAS9tT,MACdsuB,QAASw/R,GAAS9tT,QAGd07U,GAAwBh7T,GAAK,CACjCi7T,WAAY37U,KACZ47U,WAAY57U,KACZ67U,eAAgB/4U,KAChBg5U,iBAAkBtvI,KAClBuvI,aAAct9T,GAAM+uS,GAAM,CAAC1qT,KAAUA,KAAUA,QAC/Ck0U,WAAYl0U,KACZk5U,SAAUl5U,KACVm5U,SAAUnuB,GAAShrT,QAMfo5U,GAAkB9F,GACtB11T,GAAK,CACH9F,QAAS6D,GAAMi9T,IACfS,WAAY19T,GAAMi9T,OAIhBU,GAAqB3gV,GAAM,CAC/BkyT,GAAQ,aACRA,GAAQ,aACRA,GAAQ,eAGJ0uB,GAA0B37T,GAAK,CACnCkyT,KAAM9vU,KACNw5U,cAAexuB,GAAShrT,MACxBisB,IAAK6oT,GACL2E,mBAAoBhjF,GAAS6iF,MAMzBI,GAAgCnG,GACpC53T,GAAMqvS,GAASuuB,MAMXI,GAA6CrG,GAActzU,MAE3D45U,GAA2Bh8T,GAAK,CACpCogT,WAAY0U,GACZhV,gBAAiB/hT,GAAM3b,MACvB89T,gBAAiBniT,GAAM3b,QAGnB65U,GAA6Bj8T,GAAK,CACtCglT,WAAYjnT,GAAMze,MAClBmd,QAASuD,GAAK,CACZ8gT,YAAa/iT,GAAMze,MACnBy/L,OAAQ/+K,GAAK,CACXs/S,sBAAuBl9T,KACvBm9T,0BAA2Bn9T,KAC3Bo9T,4BAA6Bp9T,OAE/B86T,aAAcn/S,GACZiC,GAAK,CACHmhT,SAAUpjT,GAAM3b,MAChBsgB,KAAMpjB,KACNk+T,eAAgBp7T,QAGpB2+T,gBAAiBzhU,KACjB8hU,oBAAqBvoE,GAAS96O,GAAMi+T,SAIlCE,GAAsBl8T,GAAK,CAC/B09S,OAAQoX,GACR1N,OAAQt7H,KACR7gL,SAAU6gL,KACV5tM,OAAQ26P,GAAS99P,GAAM,CAACkyT,GAAQ,eAAgBA,GAAQ,oBAGpDkvB,GAAyCn8T,GAAK,CAClD8gT,YAAa/iT,GAAMm+T,IACnBlX,WAAYjnT,GAAMze,QAGd88U,GAA0Bp8T,GAAK,CACnCyE,OAAQkpS,KACRyjB,QAAS9xU,KACT87T,UAAW0Z,KAGPuH,GAAuBr8T,GAAK,CAChCmhT,SAAUpjT,GAAM+2T,IAChBpyT,KAAMpjB,KACN87T,UAAW0Z,KAqBPwH,GAAyB9vB,GAlBLzxT,GAAM,CAC9BshV,GACAD,KAG+BrhV,GAAM,CACrCilB,GAAK,CACHyE,OAAQkpS,KACRyjB,QAAS9xU,KACT87T,UAAW97T,OAEb0gB,GAAK,CACHmhT,SAAUpjT,GAAMze,MAChBojB,KAAMpjB,KACN87T,UAAW97T,UAOblE,GAEW3H,GAAO2H,EADZ,aAAcA,EACKihV,GAEAD,MAQrBG,GAAmCv8T,GAAK,CAC5CglT,WAAYjnT,GAAMze,MAClBmd,QAASuD,GAAK,CACZ8gT,YAAa/iT,GAAMm+T,IACnBhf,aAAcn/S,GAAMu+T,IACpBvb,gBAAiBzhU,KACjB8hU,oBAAqBvoE,GAASu0D,GAASrvS,GAAMi+T,UAI3CQ,GAAqBx8T,GAAK,CAC9By8T,aAAcr6U,KACds6U,KAAMp9U,KACNmyU,MAAO54E,GAASv5P,MAChB87T,UAAWviE,GAASv5P,MACpBq9U,cAAe/D,KAGXgE,GAAwB58T,GAAK,CACjCiL,SAAUlN,GAAM+2T,IAChBhY,SAAU/+S,GAAM+2T,MAMZ+H,GAAiC78T,GAAK,CAC1CqO,IAAK6oT,GACL4F,IAAK16U,KACLw1U,kBAAmB/+E,GACjBu0D,GACErvS,GACEiC,GAAK,CACHhd,MAAOZ,KACP86T,aAAcn/S,GACZiC,GAAK,CACHmhT,SAAUpjT,GAAM3b,MAChBsgB,KAAMpjB,KACNk+T,eAAgBp7T,aAO5B26U,YAAah/T,GAAM3b,MACnB46U,aAAcj/T,GAAM3b,MACpBuoU,YAAa9xE,GAASu0D,GAASrvS,GAAMze,QACrC29U,iBAAkBpkF,GAASu0D,GAASrvS,GAAMy+T,MAC1CU,kBAAmBrkF,GAASu0D,GAASrvS,GAAMy+T,MAC3CW,gBAAiBtkF,GAAS+jF,IAC1BQ,qBAAsBvkF,GAASz2P,QAM3Bi7U,GAAuCr9T,GAAK,CAChDqO,IAAK6oT,GACL4F,IAAK16U,KACLw1U,kBAAmB/+E,GACjBu0D,GACErvS,GACEiC,GAAK,CACHhd,MAAOZ,KACP86T,aAAcn/S,GAAMu+T,SAK5BS,YAAah/T,GAAM3b,MACnB46U,aAAcj/T,GAAM3b,MACpBuoU,YAAa9xE,GAASu0D,GAASrvS,GAAMze,QACrC29U,iBAAkBpkF,GAASu0D,GAASrvS,GAAMy+T,MAC1CU,kBAAmBrkF,GAASu0D,GAASrvS,GAAMy+T,MAC3CW,gBAAiBtkF,GAAS+jF,IAC1BQ,qBAAsBvkF,GAASz2P,QAG3Bk7U,GAA2BviV,GAAM,CAACkyT,GAAQ,GAAIA,GAAQ,YAGtDswB,GAAgBv9T,GAAK,CACzB09S,OAAQp+T,KACR8uU,SAAUhsU,KACVi0U,YAAajpB,GAAShrT,MACtBo7U,WAAYpwB,GAAS9tT,MACrBg3U,WAAYz9E,GAASu0D,GAAShrT,SAM1Bq7U,GAAoB/H,GACxBtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZuvU,aAAc5zT,GACZiC,GAAK,CACH48O,YAAaq/E,GACb9kN,KAAMi2L,GAASyvB,IACfjvT,QAASirO,GAASykF,OAGtBM,QAAS/kF,GAAS96O,GAAMw/T,KACxB1D,UAAWzsB,GAAShrT,MACpB00U,YAAa1pB,GAAShrT,UAQtBy7U,GAA4BnI,GAChCtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZw7U,QAAS/kF,GAAS96O,GAAMw/T,KACxB1D,UAAWzsB,GAAShrT,MACpB00U,YAAa1pB,GAAShrT,UAQtB07U,GAAgCpI,GACpCtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZuvU,aAAc5zT,GACZiC,GAAK,CACH48O,YAAau/E,GACbhlN,KAAMi2L,GAASyvB,IACfjvT,QAASirO,GAASykF,OAGtBM,QAAS/kF,GAAS96O,GAAMw/T,KACxB1D,UAAWzsB,GAAShrT,MACpB00U,YAAa1pB,GAAShrT,UAQtB27U,GAA0BrI,GAC9BtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZuvU,aAAc5zT,GACZiC,GAAK,CACH48O,YAAa2/E,GACbplN,KAAMi2L,GAASiwB,IACfzvT,QAASirO,GAASykF,OAGtBM,QAAS/kF,GAAS96O,GAAMw/T,KACxB1D,UAAWzsB,GAAShrT,MACpB00U,YAAa1pB,GAAShrT,UAQtB47U,GAAsCtI,GAC1CtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZuvU,aAAc5zT,GACZiC,GAAK,CACH48O,YAAau/E,GACbhlN,KAAMi2L,GAASiwB,IACfzvT,QAASirO,GAASykF,OAGtBM,QAAS/kF,GAAS96O,GAAMw/T,KACxB1D,UAAWzsB,GAAShrT,MACpB00U,YAAa1pB,GAAShrT,UAQtB67U,GAAkCvI,GACtCtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZw7U,QAAS/kF,GAAS96O,GAAMw/T,KACxB1D,UAAWzsB,GAAShrT,MACpB00U,YAAa1pB,GAAShrT,UAUtB87U,GAA6BxI,GACjCtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZuvU,aAAc5zT,GACZiC,GAAK,CACH48O,YAAaq/E,GACb9kN,KAAMi2L,GAASyvB,OAGnBe,QAAS/kF,GAAS96O,GAAMw/T,KACxB1D,UAAWzsB,GAAShrT,UAQpB+7U,GAA8BzI,GAClCtoB,GACEptS,GAAK,CACHwlT,UAAWlmU,KACXo+U,kBAAmBp+U,KACnBq+U,WAAYv7U,KACZ4iU,WAAYjnT,GAAMze,MAClBu6U,UAAWzsB,GAAShrT,UAQpBg8U,GAA0B1I,GAC9BtoB,GACEptS,GAAK,CACHkyT,KAAM9vU,KACN+0H,KAAMi2L,GAASyvB,IACfhD,UAAWhhF,GAASu0D,GAAShrT,OAC7Bw6P,YAAaq/E,GACbruT,QAASirO,GAASykF,QAQlBe,GAAgC3I,GACpCtoB,GACEptS,GAAK,CACHkyT,KAAM9vU,KACNw6P,YAAa2/E,GACbplN,KAAMi2L,GAASiwB,IACfxD,UAAWhhF,GAASu0D,GAAShrT,OAC7BwrB,QAASirO,GAASykF,QAQlBgB,GAA8B3I,GAClC31T,GAAK,CACHwlT,UAAWlmU,KACX4lU,qBAAsB9iU,QAOpBm8U,GAA4B5I,GAAwB7pI,MAYpD0yI,GAAuC9I,GAC3C33T,GAXuBiC,GAAK,CAC5BkyT,KAAM9vU,KACNq8U,gBAAiBr8U,KACjBs8U,SAAUt8U,KACVu8U,iBAAkBv8U,SAadw8U,GAA4BjJ,GAChCvoB,GACEptS,GAAK,CACHotT,cAAeptT,GAAK,CAClB6+T,qBAAsBz8U,WASxB08U,GAA0BpJ,GAAcp2U,MAKxCy/U,GAA2BrJ,GAAcp2U,MA0TzC0/U,GAAah/T,GAAK,CACtBqO,IAAK6oT,GACL/M,KAAMpsT,GAAMze,MACZglR,UAAWhlR,OAeP2/U,GAAyBj/T,GAAK,CAClCzE,OAAQq6T,GAA6BoJ,IACrCpqD,aAAcxyR,OAyHV88U,GAAsB,CAC1B,gBAAiB,wBAMZ,MAAMC,GAoFXtsV,WAAAA,CACEusV,EACAC,GAEA,IAAIC,EACAC,EACA7oP,EACA8oP,EACAC,EACAn6I,EA5FN,KAAiBo6I,iBAAW,EAC5B,KAAiBC,uCAAiC,EAClD,KAAiB9N,kBAAY,EAC7B,KAAiB+N,oBAAc,EAC/B,KAAiBC,gBAAU,EAC3B,KAAiBC,iBAAW,EAC5B,KAAiBC,sBAAgB,EACjC,KAAiBC,mBAAa,EAC9B,KAAiBC,wBAAkC,EACnD,KAAiBC,uBAEN,KACX,KAAiBC,yBAEN,KACX,KAMYC,wBAAkC,EAE9C,KAAiBC,0BAAoC,EACrD,KAAiBC,mBAA6B,EAC9C,KAAiBC,eAKb,CACFC,gBAAiB,KACjBC,UAAW,EACXC,sBAAuB,GACvBC,oBAAqB,IAGvB,KAAyBC,0BAAkD,EAC3E,KAAyBC,oDAIrB,CAAC,EACL,KAAyBC,wCAIrB,CAAC,EACL,KAAyBC,wCAIrB,CAAC,EACL,KAAyBC,6CAIrB,CAAC,EACL,KAAyBC,qBAErB,CAAC,EAcL,KAAyBC,gCACvB,IAAI9yN,IA8uDN,KAGA+yN,eAAiB,MACf,MAAMC,EAAqD,CAAC,EAC5D,OAAO/oK,UAGL,MAAM,WAAC8zJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,GACAlV,OACA53U,EACA+9B,GAEIgvT,EAAcC,GAAoB/iU,GAkBxC,OAjBA4iU,EAAgBE,GACdF,EAAgBE,IAChB,WACE,IACE,MACM16U,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAC7Bk3T,GAActzU,OAC5C,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,0CAGJ,OAAOvZ,EAAI2U,MACb,CAAE,eACO6lU,EAAgBE,EACzB,CACD,EAdD,SAeWF,EAAgBE,EAAY,CAE5C,EAjCgB,GA/tDXjC,GAAoD,kBAAvBA,EAC/B78U,KAAKk9U,YAAcL,EACVA,IACT78U,KAAKk9U,YAAcL,EAAmBlT,WACtC3pU,KAAKm9U,kCACHN,EAAmBmC,iCACrBlC,EAAaD,EAAmBC,WAChCC,EAAcF,EAAmBE,YACjC7oP,EAAQ2oP,EAAmB3oP,MAC3B8oP,EAAkBH,EAAmBG,gBACrCC,EAA0BJ,EAAmBI,wBAC7Cn6I,EAAY+5I,EAAmB/5I,WAGjC9iM,KAAKqvU,aA9yFT,SAA2B4P,GACzB,IAAqC,IAAjC,WAAWjnT,KAAKinT,GAClB,MAAM,IAAIpvV,UAAU,qDAEtB,OAAOovV,CACT,CAyyFwBC,CAAkBtC,GACtC58U,KAAKo9U,eAAiBN,GDppGnB,SAA0BF,GAC/B,MAAM1qL,EAAU0qL,EAASzqO,MAAMkgO,IAC/B,GAAe,MAAXngL,EACF,MAAMriK,UAAU,qCAAqC+sV,OAEvD,MACE9tU,EACAqwU,EACAC,EACAvxT,GACEqkI,EACEmzB,EAAWu3J,EAASvxK,WAAW,UAAY,OAAS,MACpDg0K,EACa,MAAjBD,EAAwB,KAAOl9T,SAASk9T,EAAcrlV,MAAM,GAAI,IASlE,MAAO,GAAGsrL,MAAa85J,IADR,MAAbE,EAAoB,GAAK,IAAIA,EAAY,MACMxxT,GACnD,CC6nGwCyxT,CAAiB1C,GAErD58U,KAAKq9U,WA/mDT,SACErgT,EACA+/S,EACAwC,EACAvC,EACAC,EACAn6I,GAEA,MAAM5uG,EAAQqrP,GAA4B7gE,GAC1C,IA+CI8gE,EA7Ce,MAAb18I,GACFj/K,QAAQ04C,KACN,8JA6CFygR,IACFwC,EAAsB3pK,MAAOs4D,EAAM3hM,KACjC,MAAMizS,QAA0B,IAAIhtO,SAClC,CAAC24B,EAASu2B,KACR,IACEq7K,EAAgB7uG,EAAM3hM,GAAM,CAACkzS,EAAcC,IACzCv0M,EAAQ,CAACs0M,EAAcC,MAEzB,MAAOhiU,GACPgkJ,EAAOhkJ,EACT,KAGJ,aAAau2E,KAASurP,EAAkB,GAI5C,MAAMG,EAAgB,IAAIC,KAAJ,EAAchqK,MAAOvqJ,EAASI,KAClD,MAAMV,EAAU,CACdO,OAAQ,OACRgjB,KAAMjjB,EACN81O,WAtEAA,EAuEAlpF,QAASlnL,OAAOG,OACd,CACE,eAAgB,oBAElB4rV,GAAe,CAAC,EAChBL,KAIJ,IACE,IACIt4U,EADA07U,EAA4B,EAE5BC,EAAW,IACf,KAEI37U,EADEo7U,QACUA,EAAoBxiT,EAAKhS,SAEzBkpE,EAAMl3D,EAAKhS,GAGN,MAAf5mB,EAAIm9B,SAGwB,IAA5B07S,IAGJ6C,GAA6B,EACK,IAA9BA,IAGJj8T,QAAQlG,MACN,yBAAyBvZ,EAAIm9B,UAAUn9B,EAAI0qK,+BAA+BixK,sBAEtE7V,GAAM6V,GACZA,GAAY,EAGd,MAAMjmR,QAAa11D,EAAI01D,OACnB11D,EAAI28I,GACNr1H,EAAS,KAAMouC,GAEfpuC,EAAS,IAAI/5B,MAAM,GAAGyS,EAAIm9B,UAAUn9B,EAAI0qK,eAAeh1G,MAEzD,MAAOjuC,GACHA,aAAel6B,OAAO+5B,EAASG,EACrC,IACC,CAAC,GAEJ,OAAO+zT,CACT,CA8+CsBI,CAChBpD,EACAG,EACA7oP,EACA8oP,EACAC,EACAn6I,GAEF9iM,KAAKs9U,YAp/CT,SAA0B7mE,GACxB,MAAO,CAAClrP,EAAQvP,IACP,IAAIy2F,SAAQ,CAAC24B,EAASu2B,KAC3B80G,EAAOnrP,QAAQC,EAAQvP,GAAM,CAAC6P,EAAUG,KAClCH,EACF81I,EAAO91I,GAGTu/G,EAAQp/G,EAAS,GACjB,GAGR,CAw+CuBi0T,CAAiBjgV,KAAKq9U,YACzCr9U,KAAKu9U,iBAv+CT,SAA+B9mE,GAC7B,OAAQypE,GACC,IAAIztO,SAAQ,CAAC24B,EAASu2B,KAEH,IAApBu+K,EAAS/vV,QAAci7I,EAAQ,IAEnC,MAAM+0M,EAAQD,EAASniU,KAAKyN,GACnBirP,EAAOnrP,QAAQE,EAAO4yK,WAAY5yK,EAAOxP,QAGlDy6P,EAAOnrP,QAAQ60T,GAAO,CAACt0T,EAAUG,KAC3BH,EACF81I,EAAO91I,GAGTu/G,EAAQp/G,EAAS,GACjB,GAGR,CAo9C4Bo0T,CAAsBpgV,KAAKq9U,YAEnDr9U,KAAKw9U,cAAgB,IAAIjM,GAAmBvxU,KAAKo9U,eAAgB,CAC/DxxB,aAAa,EACbI,eAAgB5iS,MAElBppB,KAAKw9U,cAAcnwL,GAAG,OAAQrtJ,KAAKqgV,UAAU9oV,KAAKyI,OAClDA,KAAKw9U,cAAcnwL,GAAG,QAASrtJ,KAAKsgV,WAAW/oV,KAAKyI,OACpDA,KAAKw9U,cAAcnwL,GAAG,QAASrtJ,KAAKugV,WAAWhpV,KAAKyI,OACpDA,KAAKw9U,cAAcnwL,GACjB,sBACArtJ,KAAKwgV,yBAAyBjpV,KAAKyI,OAErCA,KAAKw9U,cAAcnwL,GACjB,sBACArtJ,KAAKygV,gCAAgClpV,KAAKyI,OAE5CA,KAAKw9U,cAAcnwL,GACjB,mBACArtJ,KAAK0gV,sBAAsBnpV,KAAKyI,OAElCA,KAAKw9U,cAAcnwL,GACjB,2BACArtJ,KAAK2gV,6BAA6BppV,KAAKyI,OAEzCA,KAAKw9U,cAAcnwL,GACjB,wBACArtJ,KAAK4gV,2BAA2BrpV,KAAKyI,OAEvCA,KAAKw9U,cAAcnwL,GACjB,mBACArtJ,KAAK6gV,sBAAsBtpV,KAAKyI,OAElCA,KAAKw9U,cAAcnwL,GACjB,mBACArtJ,KAAK8gV,sBAAsBvpV,KAAKyI,MAEpC,CAKA,cAAI2pU,GACF,OAAO3pU,KAAKk9U,WACd,CAKA,eAAI6D,GACF,OAAO/gV,KAAKqvU,YACd,CAKA,0BAAM2R,CACJ95B,EACAyrB,GAGA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,CAAC33B,EAAUsR,YACXmR,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,aAActhU,GACzBm3T,GAAwBvzU,OACtD,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,6BAA6BupS,EAAUsR,cAG3C,OAAOp0T,EAAI2U,MACb,CAKA,gBAAMkoU,CACJ/5B,EACAyrB,GAEA,aAAa3yU,KAAKghV,qBAAqB95B,EAAWyrB,GAC/C97N,MAAK77G,GAAKA,EAAEpC,QACZyyI,OAAMl1I,IACL,MAAM,IAAIxE,MACR,oCAAsCu1T,EAAUsR,WAAa,KAAOriU,EACrE,GAEP,CAKA,kBAAM+qV,CAAaxR,GACjB,MACMtrU,EAAMnT,SADY+O,KAAKs9U,YAAY,eAAgB,CAAC5N,IAC5BwD,GAActoB,GAAShrT,QACrD,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,qCAAqC+xT,KAGzC,OAAOtrU,EAAI2U,MACb,CAMA,0BAAMooU,GACJ,MACM/8U,EAAMnT,SADY+O,KAAKs9U,YAAY,oBAAqB,IAChCpK,GAActzU,OAC5C,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,qCAGJ,OAAOvZ,EAAI2U,MACb,CAKA,4BAAMqoU,GACJ,MACMh9U,EAAMnT,SADY+O,KAAKs9U,YAAY,yBAA0B,IACrCvH,IAC9B,GAAI,UAAW3xU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,uCAGJ,OAAOvZ,EAAI2U,MACb,CAKA,eAAMsoU,CACJvxT,GAEA,IAAIwxT,EAA6B,CAAC,EAEhCA,EADoB,kBAAXxxT,EACG,CAAC65S,WAAY75S,GAChBA,EACG,IACPA,EACH65S,WAAa75S,GAAUA,EAAO65S,YAAe3pU,KAAK2pU,YAGxC,CACVA,WAAY3pU,KAAK2pU,YAIrB,MACMvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,YAAa,CAACgE,IACzBtL,IAC9B,GAAI,UAAW5xU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,wBAE1C,OAAOvZ,EAAI2U,MACb,CAKA,oBAAMwoU,CACJC,EACA7X,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAAW,CAAC2C,EAAiBhpB,YAAamR,GAEtDvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAC7Bm3T,GAAwBiD,KACtD,GAAI,UAAWhyU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,8BAE1C,OAAOvZ,EAAI2U,MACb,CAKA,4BAAM0oU,CACJC,EACA/X,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAAW,CAAC6C,EAAalpB,YAAamR,GAElDvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,yBAA0BthU,GACrCm3T,GAAwBiD,KACtD,GAAI,UAAWhyU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,uCAGJ,OAAOvZ,EAAI2U,MACb,CAOA,6BAAM4oU,CACJC,EACAt1T,EACAqmT,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GAC9B,IAAIkP,EAAe,CAACD,EAAappB,YAC7B,SAAUlsS,EACZu1T,EAAMrsV,KAAK,CAAC0kV,KAAM5tT,EAAO4tT,KAAK1hB,aAE9BqpB,EAAMrsV,KAAK,CAACojU,UAAWtsS,EAAOssS,UAAUJ,aAG1C,MAAMx8S,EAAOhc,KAAK6+U,WAAWgD,EAAOlY,EAAY,SAAU75S,GAEpD1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,0BAA2BthU,GACtCy6T,IAC9B,GAAI,UAAWryU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,iDAAiDikU,EAAappB,cAGlE,OAAOp0T,EAAI2U,MACb,CAOA,mCAAM+oU,CACJF,EACAt1T,EACAq9S,GAMA,IAAIkY,EAAe,CAACD,EAAappB,YAC7B,SAAUlsS,EACZu1T,EAAMrsV,KAAK,CAAC0kV,KAAM5tT,EAAO4tT,KAAK1hB,aAE9BqpB,EAAMrsV,KAAK,CAACojU,UAAWtsS,EAAOssS,UAAUJ,aAG1C,MAAMx8S,EAAOhc,KAAK6+U,WAAWgD,EAAOlY,EAAY,cAE1CvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,0BAA2BthU,GACtC26T,IAC9B,GAAI,UAAWvyU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,iDAAiDikU,EAAappB,cAGlE,OAAOp0T,EAAI2U,MACb,CAKA,wBAAMgpU,CACJjyT,GAEA,MAAM5Q,EAAM,IACP4Q,EACH65S,WAAa75S,GAAUA,EAAO65S,YAAe3pU,KAAK2pU,YAE9C3tT,EAAOkD,EAAIoN,QAAUpN,EAAIyqT,WAAa,CAACzqT,GAAO,GAE9C9a,EAAMnT,SADY+O,KAAKs9U,YAAY,qBAAsBthU,GACjC46T,IAC9B,GAAI,UAAWxyU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,kCAE1C,OAAOvZ,EAAI2U,MACb,CAMA,6BAAMipU,CACJC,EACAtY,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAAW,CAACoD,EAAYzpB,YAAamR,GAEjDvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,0BAA2BthU,GACtCw6T,IAC9B,GAAI,UAAWpyU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,wCAGJ,OAAOvZ,EAAI2U,MACb,CAKA,8BAAMmpU,CACJh7B,EACAyrB,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,CAAC33B,EAAUsR,YACXmR,EACA,SACA75S,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAGzDm3T,GAAwBvoB,GAASisB,MAEnC,GAAI,UAAWzyU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,oCAAoCupS,EAAUsR,cAGlD,OAAOp0T,EAAI2U,MACb,CAKA,0BAAMopU,CACJj7B,EACAyrB,GAIA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,CAAC33B,EAAUsR,YACXmR,EACA,aACA75S,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAGzDm3T,GAAwBvoB,GAASosB,MAEnC,GAAI,UAAW5yU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,oCAAoCupS,EAAUsR,cAGlD,OAAOp0T,EAAI2U,MACb,CAKA,oBAAMwoQ,CACJ2lC,EACAyrB,GAEA,IAKE,aAJkB3yU,KAAKkiV,yBACrBh7B,EACAyrB,IAES/5U,MACX,MAAOzC,IACP,MAAM,IAAIxE,MACR,oCAAsCu1T,EAAUsR,WAAa,KAAOriU,GAExE,CACF,CAKA,+BAAMisV,CACJC,EACAnjF,GAIA,MAAM,WAACyqE,EAAU,OAAE75S,GAAU4iT,GAA4BxzE,GACnDl5N,EAAOq8S,EAAWtkU,KAAIxF,GAAOA,EAAIigT,aACjCx8S,EAAOhc,KAAK6+U,WAAW,CAAC74S,GAAO2jS,EAAY,aAAc75S,GAEzD1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,sBAAuBthU,GAG9Dm3T,GAAwB53T,GAAMqvS,GAASosB,OAEzC,GAAI,UAAW5yU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,mCAAmCqoB,KAGvC,OAAO5hC,EAAI2U,MACb,CAKA,uCAAMupU,CACJD,EACA1P,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB3sS,EAAOq8S,EAAWtkU,KAAIxF,GAAOA,EAAIigT,aACjCx8S,EAAOhc,KAAK6+U,WAAW,CAAC74S,GAAO2jS,EAAY,SAAU75S,GAErD1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,sBAAuBthU,GAG9Dm3T,GAAwB53T,GAAMqvS,GAASisB,OAEzC,GAAI,UAAWzyU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,mCAAmCqoB,KAGvC,OAAO5hC,EAAI2U,MACb,CAKA,6BAAMwpU,CACJF,EACA1P,GAMA,aAJkB3yU,KAAKsiV,kCACrBD,EACA1P,IAES/5U,KACb,CAOA,wBAAM4pV,CACJt7B,EACAyrB,EACA3B,GAEA,MAAM,WAACrH,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,CAAC33B,EAAUsR,YACXmR,OACA53U,EACA,IACK+9B,EACHkhT,MAAgB,MAATA,EAAgBA,EAAQlhT,GAAQkhT,QAKrC5sU,EAAMnT,SADY+O,KAAKs9U,YAAY,qBAAsBthU,GACjCk3T,GAAcgE,KAC5C,GAAI,UAAW9yU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,kCAAkCupS,EAAUsR,cAGhD,OAAOp0T,EAAI2U,MACb,CAkBA,wBAAM0pU,CACJ7pB,EACA8pB,GAKA,MAAM,WAAC/Y,EAAU,OAAE75S,GACjB4iT,GAA4BgQ,IACxB,SAAC/oU,KAAagpU,GAAyB7yT,GAAU,CAAC,EAClD9T,EAAOhc,KAAK6+U,WAChB,CAACjmB,EAAUJ,YACXmR,EACAhwT,GAAY,SACZ,IACKgpU,KACCA,EAAsBp6Q,QACtB,CACEA,QAASuqQ,GACP6P,EAAsBp6Q,UAG1B,OAGFq6Q,QAAkB5iV,KAAKs9U,YAAY,qBAAsBthU,GACzD6mU,EAAatnU,GAAMu7T,IACnB1yU,GACkC,IAAtCu+U,EAAsBG,YAClB7xV,GAAO2xV,EAAWzP,GAAwB0P,IAC1C5xV,GAAO2xV,EAAW1P,GAAc2P,IACtC,GAAI,UAAWz+U,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,2CAA2Ci7S,EAAUJ,cAGzD,OAAOp0T,EAAI2U,MACb,CAOA,8BAAMgqU,CACJnqB,EACA8pB,GAOA,MAAM,WAAC/Y,EAAU,OAAE75S,GACjB4iT,GAA4BgQ,GACxB1mU,EAAOhc,KAAK6+U,WAChB,CAACjmB,EAAUJ,YACXmR,EACA,aACA75S,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,qBAAsBthU,GAG7Dk3T,GAAc33T,GAAM07T,MAEtB,GAAI,UAAW7yU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,2CAA2Ci7S,EAAUJ,cAGzD,OAAOp0T,EAAI2U,MACb,CAeA,wBAAM+wT,CACJx7G,EACAq7G,GAEA,IAAIqZ,EAaAC,EAXJ,GAAuB,iBAAZ30H,EACT00H,EAAe10H,MACV,CACL,MAAMx+L,EAASw+L,EAEf,GAAIx+L,EAAOi6S,aAAajyJ,QACtB,OAAOrlE,QAAQkvD,OAAO7xI,EAAOi6S,YAAYr9I,QAE3Cs2J,EAAelzT,EAAOgyP,SACxB,CAIA,IACEmhE,EAAmB3qB,KAAAA,OAAY0qB,GAC/B,MAAOn3T,GACP,MAAM,IAAIl6B,MAAM,qCAAuCqxV,EACzD,CAIA,OAFA7jV,GAAmC,KAA5B8jV,EAAiB9yV,OAAe,gCAEf,kBAAbm+N,QACItuN,KAAKkjV,6CAA6C,CAC7DvZ,WAAYA,GAAc3pU,KAAK2pU,WAC/B7nD,UAAWkhE,IAEJ,yBAA0B10H,QACtBtuN,KAAKmjV,qDAAqD,CACrExZ,WAAYA,GAAc3pU,KAAK2pU,WAC/Br7G,mBAGWtuN,KAAKojV,4CAA4C,CAC5DzZ,WAAYA,GAAc3pU,KAAK2pU,WAC/Br7G,YAGN,CAEQ+0H,sBAAAA,CAAuBvsK,GAC7B,OAAO,IAAIrkE,SAAe,CAAC3jG,EAAG6yJ,KACd,MAAVmV,IAGAA,EAAOgB,QACTnW,EAAOmV,EAAO4V,QAEd5V,EAAOpmJ,iBAAiB,SAAS,KAC/BixI,EAAOmV,EAAO4V,OAAO,IAEzB,GAEJ,CAEQ42J,iCAAAA,CAAiCj5C,GAYvC,IACIk5C,EACAC,GAdoC,WACxC7Z,EAAU,UACV7nD,GAIDuoB,EAWKvvL,GAAO,EACX,MAAM2oO,EAAsB,IAAIhxO,SAG7B,CAAC24B,EAASu2B,KACX,IACE4hL,EAA0BvjV,KAAK0jV,YAC7B5hE,GACA,CAAC/oQ,EAAyB2rE,KACxB6+P,OAA0BxxV,EAC1B,MAAMi6B,EAAW,CACf04D,UACA9rF,MAAOmgB,GAETqyH,EAAQ,CAAC0gD,OAAQknB,GAAkB2wI,UAAW33T,YAAU,GAE1D29S,GAEF,MAAMia,EAA2B,IAAInxO,SACnCoxO,IACiC,MAA3BN,EACFM,IAEAL,EACExjV,KAAK8jV,2BACHP,GACAzkI,IACoB,eAAdA,GACF+kI,GACF,GAGR,IAGJ,WAEE,SADMD,EACF9oO,EAAM,OACV,MAAM9uF,QAAiBhsB,KAAK+jV,mBAAmBjiE,GAC/C,GAAIhnK,EAAM,OACV,GAAgB,MAAZ9uF,EACF,OAEF,MAAM,QAAC04D,EAAO,MAAE9rF,GAASozB,EACzB,GAAa,MAATpzB,EAGJ,GAAIA,GAAOizB,IACT81I,EAAO/oK,EAAMizB,SACR,CACL,OAAQ89S,GACN,IAAK,YACL,IAAK,SACL,IAAK,eACH,GAAiC,cAA7B/wU,EAAMygV,mBACR,OAEF,MAEF,IAAK,YACL,IAAK,MACL,IAAK,OACH,GAC+B,cAA7BzgV,EAAMygV,oBACuB,cAA7BzgV,EAAMygV,mBAEN,OAQNv+N,GAAO,EACPswB,EAAQ,CACN0gD,OAAQknB,GAAkB2wI,UAC1B33T,SAAU,CACR04D,UACA9rF,UAGN,CACD,EAhDD,GAiDA,MAAOizB,GACP81I,EAAO91I,EACT,KAYF,MAAO,CAACm4T,kBAVkBA,KACpBR,IACFA,IACAA,OAAkDzxV,GAErB,MAA3BwxV,IACFvjV,KAAKikV,wBAAwBV,GAC7BA,OAA0BxxV,EAC5B,EAEyB0xV,sBAC7B,CAEA,0DAAcN,CAAoDx3C,GAM/D,IANgE,WACjEg+B,EACAr7G,UAAU,YAACy7G,EAAW,qBAAErH,EAAoB,UAAE5gD,IAI/C6pB,EACK7wL,GAAgB,EACpB,MAAMopO,EAAgB,IAAIzxO,SAEvB24B,IACD,MAAM+4M,EAAmBtuK,UACvB,IAEE,aAD0B71K,KAAK2+U,eAAehV,GAE9C,MAAO9hD,GACP,OAAQ,CACV,GAEF,WACE,IAAIu8D,QAA2BD,IAC/B,IAAIrpO,EAAJ,CACA,KAAOspO,GAAsB1hB,GAAsB,CAEjD,SADMwH,GAAM,KACRpvN,EAAM,OAEV,GADAspO,QAA2BD,IACvBrpO,EAAM,MACZ,CACAswB,EAAQ,CAAC0gD,OAAQknB,GAAkBqxI,sBAPnB,CAQjB,EAVD,EAUI,KAEA,kBAACL,EAAiB,oBAAEP,GACxBzjV,KAAKsjV,kCAAkC,CAAC3Z,aAAY7nD,cAChDwiE,EAAsBtkV,KAAKqjV,uBAAuBtZ,GACxD,IAAIhxT,EACJ,IACE,MAAMwrU,QAAgB9xO,QAAQyxE,KAAK,CACjCogK,EACAb,EACAS,IAEF,GAAIK,EAAQz4J,SAAWknB,GAAkB2wI,UAGvC,MAAM,IAAI7pB,GAA2Ch4C,GAFrD/oQ,EAASwrU,EAAQv4T,QAIrB,CAAE,QACA8uF,GAAO,EACPkpO,GACF,CACA,OAAOjrU,CACT,CAEA,iDAAcqqU,CAA2CoB,GAYtD,IAZuD,WACxD7a,EACAr7G,UAAU,YACRy7G,EAAW,eACXhH,EAAc,mBACdiH,EAAkB,WAClBC,EAAU,UACVnoD,IAKH0iE,EACK1pO,GAAgB,EACpB,MAAMopO,EAAgB,IAAIzxO,SAGvB24B,IACD,IAAIq5M,EAAwCxa,EACxCya,EAAiC,KACrC,MAAMC,EAAuB9uK,UAC3B,IACE,MAAM,QAACnxF,EAAS9rF,MAAOkyU,SAAsB9qU,KAAK4kV,mBAChD5a,EACA,CACEL,aACA5G,mBAIJ,OADA2hB,EAAkBhgQ,EAAQgrP,KACnB5E,GAAc5zC,MACrB,MAAO/gS,IAGP,OAAOsuV,CACT,GAEF,WAEE,GADAA,QAA0BE,KACtB7pO,EACJ,OAEE,CACA,GAAImvN,IAAewa,EAKjB,YAJAr5M,EAAQ,CACN0gD,OAAQknB,GAAkB6xI,cAC1BC,2BAA4BJ,IAKhC,SADMxa,GAAM,KACRpvN,EAAM,OAEV,GADA2pO,QAA0BE,IACtB7pO,EAAM,MACZ,CACD,EAlBD,EAkBI,KAEA,kBAACkpO,EAAiB,oBAAEP,GACxBzjV,KAAKsjV,kCAAkC,CAAC3Z,aAAY7nD,cAChDwiE,EAAsBtkV,KAAKqjV,uBAAuBtZ,GACxD,IAAIhxT,EACJ,IACE,MAAMwrU,QAAgB9xO,QAAQyxE,KAAK,CACjCogK,EACAb,EACAS,IAEF,GAAIK,EAAQz4J,SAAWknB,GAAkB2wI,UACvC5qU,EAASwrU,EAAQv4T,aACZ,CAEL,IAAI+4T,EAIJ,OAEE,CACA,MAAMxjT,QAAevhC,KAAK+jV,mBAAmBjiE,GAC7C,GAAc,MAAVvgP,EACF,MAEF,KACEA,EAAOmjD,QAAQgrP,MACd6U,EAAQO,4BAA8B/hB,IAFzC,CAOAgiB,EAAkBxjT,EAClB,KAFA,OAFQ2oS,GAAM,IAKhB,CACA,IAAI6a,GAAiBnsV,MAyCnB,MAAM,IAAIqhU,GAAoCn4C,GAzCpB,CAC1B,MAAMkjE,EAAsBrb,GAAc,aACpC,mBAAC0P,GAAsB0L,EAAgBnsV,MAC7C,OAAQosV,GACN,IAAK,YACL,IAAK,SACH,GACyB,cAAvB3L,GACuB,cAAvBA,GACuB,cAAvBA,EAEA,MAAM,IAAIpf,GAAoCn4C,GAEhD,MACF,IAAK,YACL,IAAK,SACL,IAAK,eACH,GACyB,cAAvBu3D,GACuB,cAAvBA,EAEA,MAAM,IAAIpf,GAAoCn4C,GAEhD,MACF,IAAK,YACL,IAAK,MACL,IAAK,OACH,GAA2B,cAAvBu3D,EACF,MAAM,IAAIpf,GAAoCn4C,GAQpD/oQ,EAAS,CACP2rE,QAASqgQ,EAAgBrgQ,QACzB9rF,MAAO,CAACizB,IAAKk5T,EAAgBnsV,MAAMizB,KAEvC,CAGF,CACF,CAAE,QACAivF,GAAO,EACPkpO,GACF,CACA,OAAOjrU,CACT,CAEA,kDAAcmqU,CAA4C+B,GAMvD,IACG7lG,GAPqD,WACzDuqF,EAAU,UACV7nD,GAIDmjE,EAEC,MAAMf,EAAgB,IAAIzxO,SAGvB24B,IACD,IAAI85M,EAAYllV,KAAKm9U,mCAAqC,IAC1D,OAAQxT,GACN,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,YACL,IAAK,eACHub,EAAYllV,KAAKm9U,mCAAqC,IAQ1D/9F,EAAYn0M,YACV,IAAMmgG,EAAQ,CAAC0gD,OAAQknB,GAAkBmyI,UAAWD,eACpDA,EACD,KAEG,kBAAClB,EAAiB,oBAAEP,GACxBzjV,KAAKsjV,kCAAkC,CACrC3Z,aACA7nD,cAEJ,IAAI/oQ,EACJ,IACE,MAAMwrU,QAAgB9xO,QAAQyxE,KAAK,CAACu/J,EAAqBS,IACzD,GAAIK,EAAQz4J,SAAWknB,GAAkB2wI,UAGvC,MAAM,IAAI5pB,GACRj4C,EACAyiE,EAAQW,UAAY,KAJtBnsU,EAASwrU,EAAQv4T,QAOrB,CAAE,QACAg3F,aAAao8H,GACb4kG,GACF,CACA,OAAOjrU,CACT,CAKA,qBAAMqsU,GACJ,MACMhhV,EAAMnT,SADY+O,KAAKs9U,YAAY,kBAAmB,IAC9BpK,GAAc33T,GAAM88T,MAClD,GAAI,UAAWj0U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,+BAE1C,OAAOvZ,EAAI2U,MACb,CAKA,qBAAMssU,CAAgB1b,GACpB,MAAM3tT,EAAOhc,KAAK6+U,WAAW,GAAIlV,GAE3BvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,kBAAmBthU,GAC9Bg9T,IAC9B,GAAI,UAAW50U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,+BAE1C,OAAOvZ,EAAI2U,MACb,CAKA,aAAM02T,CACJkD,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,GACAlV,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,UAAWthU,GACtBk3T,GAActzU,OAC5C,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,sBAE1C,OAAOvZ,EAAI2U,MACb,CAKA,mBAAMusU,CACJ3S,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,GACAlV,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,gBAAiBthU,GAC5Bk3T,GAAcp2U,OAC5C,GAAI,UAAWsH,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,6BAE1C,OAAOvZ,EAAI2U,MACb,CAQA,oBAAMwsU,CACJC,EACA59T,GAEA,MAAM5L,EAAO,CAACwpU,EAAW59T,GAEnBxjB,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAC7Bk3T,GAAc33T,GAAM+2T,MAClD,GAAI,UAAWluU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,8BAE1C,OAAOvZ,EAAI2U,MACb,CAKA,wBAAMgrU,CACJjiE,EACAhyP,GAEA,MAAM,QAAC40D,EAAS9rF,MAAOvH,SAAgB2O,KAAKylV,qBAC1C,CAAC3jE,GACDhyP,GAEF3wB,GAAyB,IAAlB9N,EAAOlB,QAEd,MAAO,CAACu0F,UAAS9rF,MADHvH,EAAO,GAEvB,CAKA,0BAAMo0V,CACJjjB,EACA1yS,GAEA,MAAMtE,EAAgB,CAACg3S,GACnB1yS,GACFtE,EAAOh2B,KAAKs6B,GAEd,MACM1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,uBAAwB9xT,GACnC8tT,IAC9B,GAAI,UAAWl1U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,kCAE1C,OAAOvZ,EAAI2U,MACb,CAKA,yBAAM2sU,CACJ/S,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,GACAlV,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,sBAAuBthU,GAClCk3T,GAActzU,OAC5C,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,mCAGJ,OAAOvZ,EAAI2U,MACb,CAOA,oBAAM4sU,CAAehc,GAKnB,aAJqB3pU,KAAKqhV,UAAU,CAClC1X,aACAic,mCAAmC,KAEvBhtV,MAAMqJ,KACtB,CAKA,0BAAM4jV,CACJlc,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAAW,GAAIlV,GAE3BvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,uBAAwBthU,GACnCy5T,IAC9B,GAAI,UAAWrxU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,2BAE1C,OAAOvZ,EAAI2U,MACb,CAKA,wBAAM+sU,CACJroB,EACAuT,EACA2B,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,CAACphB,EAAU1/S,KAAIm9S,GAAUA,EAAO1C,cAChCmR,OACA53U,EACA,IACK+9B,EACHkhT,MAAgB,MAATA,EAAgBA,EAAQlhT,GAAQkhT,QAIrC5sU,EAAMnT,SADY+O,KAAKs9U,YAAY,qBAAsBthU,GACjC23T,IAC9B,GAAI,UAAWvvU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,kCAE1C,OAAOvZ,EAAI2U,MACb,CAKA,sBAAMgtU,GACJ,MACM3hV,EAAMnT,SADY+O,KAAKs9U,YAAY,mBAAoB,IAC/B5H,IAC9B,GAAI,UAAWtxU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,gCAE1C,OAAOvZ,EAAI2U,MACb,CAKA,kBAAMitU,CACJrT,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,GACAlV,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,eAAgBthU,GAC3B45T,IAC9B,GAAI,UAAWxxU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,4BAE1C,OAAOvZ,EAAI2U,MACb,CAKA,sBAAMktU,GACJ,MACM7hV,EAAMnT,SADY+O,KAAKs9U,YAAY,mBAAoB,IAC/BzH,IAC9B,GAAI,UAAWzxU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,gCAE1C,MAAMuoU,EAAgB9hV,EAAI2U,OAC1B,OAAO,IAAIy3T,GACT0V,EAAczV,cACdyV,EAAcxV,yBACdwV,EAAcvV,OACduV,EAActV,iBACdsV,EAAcrV,gBAElB,CAMA,uBAAMsV,GACJ,MACM/hV,EAAMnT,SADY+O,KAAKs9U,YAAY,oBAAqB,IAChCxH,IAC9B,GAAI,UAAW1xU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,iCAE1C,OAAOvZ,EAAI2U,MACb,CAMA,uCAAM+1T,CACJrP,EACAkK,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAAW,CAACpf,GAAakK,GAKrCvlU,EAAMnT,SAJY+O,KAAKs9U,YAC3B,oCACAthU,GAE4Bu9T,IAC9B,MAAI,UAAWn1U,GACbyf,QAAQ04C,KAAK,sDACN,GAEFn4D,EAAI2U,MACb,CAQA,kCAAMqtU,CAA6Bzc,GAMjC,MAAM,QACJjlP,EACA9rF,OAAO,UAACoqU,UACAhjU,KAAKqmV,6BAA6B1c,GAa5C,MAAO,CACLjlP,UACA9rF,MAAO,CACLoqU,YACA4H,cAhBkB,CACpB,wBAAIyR,GACF,MAAM,IAAI1qV,MACR,iMAKJ6R,OAAMA,KACG,CAAC,KAUd,CAMA,iCAAM8iV,CACJ1+T,GAEA,MAIMxjB,EAAMnT,SAJY+O,KAAKs9U,YAC3B,8BACA11T,EAAQ,CAACA,GAAS,IAEUo0T,IAC9B,GAAI,UAAW53U,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,4CAIJ,OAAOvZ,EAAI2U,MACb,CAOA,kCAAMwtU,CACJvjB,EACA2G,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAAW,CAAC7b,GAAY2G,GAMpCvlU,EAAMnT,SALY+O,KAAKs9U,YAC3B,+BACAthU,GAG4BogU,IAC9B,GAAI,UAAWh4U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,gCAE1C,MAAM,QAAC+mE,EAAO,MAAE9rF,GAASwL,EAAI2U,OAC7B,MAAO,CACL2rE,UACA9rF,MAAiB,OAAVA,EAAiBA,EAAMgyU,cAAgB,KAElD,CAKA,sBAAMpG,CACJvqT,EACA0vT,GAEA,MAAM6c,EAAc/iV,GAASwW,EAAQd,aAAajf,SAAS,UACrD8hB,EAAOhc,KAAK6+U,WAAW,CAAC2H,GAAc7c,GAGtCvlU,EAAMnT,SAFY+O,KAAKs9U,YAAY,mBAAoBthU,GAE/Bm3T,GAAwBvoB,GAAShrT,QAC/D,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,iCAE1C,GAAmB,OAAfvZ,EAAI2U,OACN,MAAM,IAAIpnB,MAAM,qBAElB,OAAOyS,EAAI2U,MACb,CAKA,iCAAM0tU,CACJ32T,GAEA,MAAM6uS,EAAW7uS,GAAQ42T,wBAAwB3oU,KAAIxF,GAAOA,EAAIigT,aAC1Dx8S,EAAO2iT,GAAUxuU,OAAS,CAACwuU,GAAY,GAKvCv6T,EAAMnT,SAJY+O,KAAKs9U,YAC3B,8BACAthU,GAE4B25T,IAC9B,GAAI,UAAWvxU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,4CAGJ,OAAOvZ,EAAI2U,MACb,CAOA,wBAAM4tU,CACJhd,GAEA,IAEE,aADkB3pU,KAAKomV,6BAA6Bzc,IACzC/wU,MACX,MAAOzC,IACP,MAAM,IAAIxE,MAAM,mCAAqCwE,GACvD,CACF,CAMA,wBAAMywV,CACJjU,GAEA,IAEE,aADkB3yU,KAAKqmV,6BAA6B1T,IACzC/5U,MACX,MAAOzC,IACP,MAAM,IAAIxE,MAAM,mCAAqCwE,GACvD,CACF,CAMA,kCAAMkwV,CACJ1T,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,GACAlV,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,qBAAsBthU,GACjC8/T,IAC9B,GAAI,UAAW13U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,kCAE1C,OAAOvZ,EAAI2U,MACb,CAKA,sBAAM8tU,CACJ7jB,EACA9jE,GAEA,MAAM,WAACyqE,EAAU,OAAE75S,GAAU4iT,GAA4BxzE,GACnDljP,EAAOhc,KAAK6+U,WAChB,CAAC7b,GACD2G,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,mBAAoBthU,GAC/B+/T,IAC9B,GAAI,UAAW33U,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,yCAA2CqlT,EAAY,aAG3D,OAAO5+T,EAAI2U,MACb,CAKA,gBAAM+tU,GACJ,MACM1iV,EAAMnT,SADY+O,KAAKs9U,YAAY,aAAc,IACzBpK,GAAc2B,KAC5C,GAAI,UAAWzwU,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,yBAE1C,OAAOvZ,EAAI2U,MACb,CAKA,oBAAMguU,GACJ,MACM3iV,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkB,IAC7BpK,GAAcp2U,OAC5C,GAAI,UAAWsH,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,8BAE1C,OAAOvZ,EAAI2U,MACb,CA0DA,cAAMiuU,CACJtX,EACAxwE,GAOA,MAAM,WAACyqE,EAAU,OAAE75S,GAAU4iT,GAA4BxzE,GACnDljP,EAAOhc,KAAKinV,2BAChB,CAACvX,GACD/F,OACA53U,EACA+9B,GAEI8yT,QAAkB5iV,KAAKs9U,YAAY,WAAYthU,GACrD,IACE,OAAQ8T,GAAQo3T,oBACd,IAAK,WAAY,CACf,MAAM9iV,EAAMnT,GAAO2xV,EAAWtH,IAC9B,GAAI,UAAWl3U,EACb,MAAMA,EAAIuZ,MAEZ,OAAOvZ,EAAI2U,MACb,CACA,IAAK,OAAQ,CACX,MAAM3U,EAAMnT,GAAO2xV,EAAWvH,IAC9B,GAAI,UAAWj3U,EACb,MAAMA,EAAIuZ,MAEZ,OAAOvZ,EAAI2U,MACb,CACA,QAAS,CACP,MAAM3U,EAAMnT,GAAO2xV,EAAW3H,IAC9B,GAAI,UAAW72U,EACb,MAAMA,EAAIuZ,MAEZ,MAAM,OAAC5E,GAAU3U,EACjB,OAAO2U,EACH,IACKA,EACHo2T,aAAcp2T,EAAOo2T,aAAapxT,KAChCopU,IAAA,IAAC,YAAC/sF,EAAW,KAAEzlI,EAAI,QAAEvpG,GAAQ+7T,EAAA,MAAM,CACjCxyN,OACAylI,YAAa,IACRA,EACHngP,QAASo5T,GACPjoT,EACAgvO,EAAYngP,UAGhBmR,UACD,KAGL,IACN,GAEF,MAAOj1B,IACP,MAAM,IAAIkzU,GACRlzU,GACA,gCAEJ,CACF,CAsBA,oBAAMixV,CACJ1X,EACAxwE,GAOA,MAAM,WAACyqE,EAAU,OAAE75S,GAAU4iT,GAA4BxzE,GACnDljP,EAAOhc,KAAKinV,2BAChB,CAACvX,GACD/F,EACA,aACA75S,GAEI8yT,QAAkB5iV,KAAKs9U,YAAY,WAAYthU,GACrD,IACE,OAAQ8T,GAAQo3T,oBACd,IAAK,WAAY,CACf,MAAM9iV,EAAMnT,GAAO2xV,EAAWpH,IAC9B,GAAI,UAAWp3U,EACb,MAAMA,EAAIuZ,MAEZ,OAAOvZ,EAAI2U,MACb,CACA,IAAK,OAAQ,CACX,MAAM3U,EAAMnT,GAAO2xV,EAAWnH,IAC9B,GAAI,UAAWr3U,EACb,MAAMA,EAAIuZ,MAEZ,OAAOvZ,EAAI2U,MACb,CACA,QAAS,CACP,MAAM3U,EAAMnT,GAAO2xV,EAAWrH,IAC9B,GAAI,UAAWn3U,EACb,MAAMA,EAAIuZ,MAEZ,OAAOvZ,EAAI2U,MACb,GAEF,MAAO5iB,IACP,MAAM,IAAIkzU,GAAmBlzU,GAAmB,sBAClD,CACF,CA2CA,wBAAMkxV,CACJ3E,GAEA,IAAItsQ,EACAuzP,EAEJ,GAAkC,kBAAvB+Y,EACT/Y,EAAa+Y,OACR,GAAIA,EAAoB,CAC7B,MAAO/Y,WAAYlpU,KAAMotB,GAAQ60T,EACjC/Y,EAAalpU,EACb21E,EAAQvoD,CACV,CAEA,MAAM7R,EAAOhc,KAAK6+U,WAAW,GAAIlV,EAAY,SAAUvzP,GAEjDhyE,EAAMnT,SADY+O,KAAKs9U,YAAY,qBAAsBthU,GACjCq5T,IAC9B,GAAI,UAAWjxU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,8CAIJ,OAAOvZ,EAAI2U,MACb,CA2BA,oBAAMmvT,CACJpmD,EACA5iB,GAEA,MAAM,WAACyqE,EAAU,OAAE75S,GAAU4iT,GAA4BxzE,GACnDljP,EAAOhc,KAAKinV,2BAChB,CAACnlE,GACD6nD,OACA53U,EACA+9B,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAC7B4/T,IAC9B,GAAI,UAAWx3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,6BAG1C,MAAM5E,EAAS3U,EAAI2U,OACnB,OAAKA,EAEE,IACFA,EACHqhP,YAAa,IACRrhP,EAAOqhP,YACVngP,QAASo5T,GACPt6T,EAAOqS,QACPrS,EAAOqhP,YAAYngP,WARLlB,CAYtB,CAKA,0BAAMuuU,CACJxlE,EACA6wD,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAKinV,2BAChB,CAACnlE,GACD6nD,EACA,aACA75S,GAGI1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAC7B6/T,IAC9B,GAAI,UAAWz3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,6BAE1C,OAAOvZ,EAAI2U,MACb,CAKA,2BAAMwuU,CACJ/kB,EACAmQ,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxBwN,EAAQ3d,EAAWzkT,KAAI+jQ,IAOpB,CACL1jF,WAAY,iBACZpiL,KARWhc,KAAKinV,2BAChB,CAACnlE,GACD6nD,EACA,aACA75S,OAiBJ,aATwB9vB,KAAKu9U,iBAAiB4C,IACxBpiU,KAAK6kU,IACzB,MAAMx+U,EAAMnT,GAAO2xV,EAAW/G,IAC9B,GAAI,UAAWz3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,8BAE1C,OAAOvZ,EAAI2U,MAAM,GAIrB,CAgCA,qBAAMyuU,CACJhlB,EACAmQ,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxBwN,EAAQ3d,EAAWzkT,KAAI+jQ,IAOpB,CACL1jF,WAAY,iBACZpiL,KARWhc,KAAKinV,2BAChB,CAACnlE,GACD6nD,OACA53U,EACA+9B,OA6BJ,aArBwB9vB,KAAKu9U,iBAAiB4C,IACxBpiU,KAAK6kU,IACzB,MAAMx+U,EAAMnT,GAAO2xV,EAAWhH,IAC9B,GAAI,UAAWx3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,8BAE1C,MAAM5E,EAAS3U,EAAI2U,OACnB,OAAKA,EAEE,IACFA,EACHqhP,YAAa,IACRrhP,EAAOqhP,YACVngP,QAASo5T,GACPt6T,EAAOqS,QACPrS,EAAOqhP,YAAYngP,WARLlB,CAWnB,GAIL,CAQA,uBAAM0uU,CACJ/X,EACA/F,GAEA,MAAM3tT,EAAOhc,KAAKinV,2BAA2B,CAACvX,GAAO/F,GAE/CvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,WAAYthU,GACvB0/T,IAE9B,GAAI,UAAWt3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,iCAG1C,MAAM5E,EAAS3U,EAAI2U,OACnB,IAAKA,EACH,MAAM,IAAIpnB,MAAM,mBAAqB+9U,EAAO,cAG9C,MAAMgY,EAAQ,IACT3uU,EACHo2T,aAAcp2T,EAAOo2T,aAAapxT,KAAI4pU,IAAyB,IAAxB,YAACvtF,EAAW,KAAEzlI,GAAKgzN,EACxD,MAAM1tU,EAAU,IAAIokT,GAAQjkE,EAAYngP,SACxC,MAAO,CACL06G,OACAylI,YAAa,IACRA,EACHngP,WAEH,KAIL,MAAO,IACFytU,EACHvY,aAAcuY,EAAMvY,aAAapxT,KAAI6pU,IAAyB,IAAxB,YAACxtF,EAAW,KAAEzlI,GAAKizN,EACvD,MAAO,CACLjzN,OACAylI,YAAamoE,GAAYsD,SACvBzrE,EAAYngP,QACZmgP,EAAYooE,YAEf,IAGP,CAKA,eAAMqlB,CACJrC,EACAsC,EACAne,GAEA,MAAM3tT,EAAOhc,KAAKinV,gCACJl1V,IAAZ+1V,EAAwB,CAACtC,EAAWsC,GAAW,CAACtC,GAChD7b,GAGIvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,YAAathU,GACxBk3T,GAAc33T,GAAM3b,QAClD,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,wBAE1C,OAAOvZ,EAAI2U,MACb,CAKA,wBAAMgvU,CACJrY,EACA/F,GAEA,MAAM3tT,EAAOhc,KAAKinV,2BAChB,CAACvX,GACD/F,OACA53U,EACA,CACEm1V,mBAAoB,aACpB9L,SAAS,IAIPh3U,EAAMnT,SADY+O,KAAKs9U,YAAY,WAAYthU,GACvB2/T,IAC9B,GAAI,UAAWv3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,uBAE1C,MAAM5E,EAAS3U,EAAI2U,OACnB,IAAKA,EACH,MAAM,IAAIpnB,MAAM,SAAW+9U,EAAO,cAEpC,OAAO32T,CACT,CAOA,iCAAMivU,CACJtY,EACA/F,GAEA,MAAM3tT,EAAOhc,KAAKinV,2BAChB,CAACvX,GACD/F,OACA53U,EACA,CACEm1V,mBAAoB,aACpB9L,SAAS,IAIPh3U,EAAMnT,SADY+O,KAAKs9U,YAAY,WAAYthU,GACvB2/T,IAC9B,GAAI,UAAWv3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,iCAE1C,MAAM5E,EAAS3U,EAAI2U,OACnB,IAAKA,EACH,MAAM,IAAIpnB,MAAM,mBAAqB+9U,EAAO,cAE9C,OAAO32T,CACT,CAOA,6BAAMkvU,CACJnmE,EACA6nD,GAEA,MAAM3tT,EAAOhc,KAAKinV,2BAA2B,CAACnlE,GAAY6nD,GAEpDvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAC7B4/T,IAC9B,GAAI,UAAWx3U,EACb,MAAM,IAAIilU,GAAmBjlU,EAAIuZ,MAAO,6BAG1C,MAAM5E,EAAS3U,EAAI2U,OACnB,IAAKA,EAAQ,OAAOA,EAEpB,MAAMkB,EAAU,IAAIokT,GAAQtlT,EAAOqhP,YAAYngP,SACzCuoT,EAAazpT,EAAOqhP,YAAYooE,WACtC,MAAO,IACFzpT,EACHqhP,YAAamoE,GAAYsD,SAAS5rT,EAASuoT,GAE/C,CAOA,mCAAM0lB,CACJpmE,EACA6nD,GAEA,MAAM3tT,EAAOhc,KAAKinV,2BAChB,CAACnlE,GACD6nD,EACA,cAGIvlU,EAAMnT,SADY+O,KAAKs9U,YAAY,iBAAkBthU,GAC7B6/T,IAC9B,GAAI,UAAWz3U,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,uCAGJ,OAAOvZ,EAAI2U,MACb,CAOA,oCAAMovU,CACJ3lB,EACAmH,GAEA,MAAMwW,EAAQ3d,EAAWzkT,KAAI+jQ,IAMpB,CACL1jF,WAAY,iBACZpiL,KAPWhc,KAAKinV,2BAChB,CAACnlE,GACD6nD,EACA,kBAoBJ,aAZwB3pU,KAAKu9U,iBAAiB4C,IACxBpiU,KAAK6kU,IACzB,MAAMx+U,EAAMnT,GAAO2xV,EAAW/G,IAC9B,GAAI,UAAWz3U,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,wCAGJ,OAAOvZ,EAAI2U,MAAM,GAIrB,CAYA,sCAAMqvU,CACJ98B,EACAk6B,EACAsC,GAEA,IAAI98T,EAAe,CAAC,EAEhBq9T,QAA4BroV,KAAKohV,yBACrC,OAAS,UAAWp2T,QAClBw6T,GACiB,GAAKA,EAAY6C,IAIlC,IACE,MAAMX,QAAc1nV,KAAKgoV,4BACvBxC,EACA,aAEEkC,EAAMllB,WAAWryU,OAAS,IAC5B66B,EAAQs9T,MACNZ,EAAMllB,WAAWklB,EAAMllB,WAAWryU,OAAS,GAAG+J,YAElD,MAAO2xB,GACP,GAAIA,aAAel6B,OAASk6B,EAAI5R,QAAQ6K,SAAS,WAC/C,SAEA,MAAM+G,CAEV,CAGF,IAAI08T,QAA6BvoV,KAAKyvU,QAAQ,aAC9C,OAAS,WAAYzkT,QACnB88T,EACcS,IAId,IACE,MAAMb,QAAc1nV,KAAKgoV,4BAA4BF,GACjDJ,EAAMllB,WAAWryU,OAAS,IAC5B66B,EAAQqpP,OACNqzE,EAAMllB,WAAWklB,EAAMllB,WAAWryU,OAAS,GAAG+J,YAElD,MAAO2xB,GACP,GAAIA,aAAel6B,OAASk6B,EAAI5R,QAAQ6K,SAAS,WAC/C,SAEA,MAAM+G,CAEV,CAOF,aAJqC7rB,KAAKwoV,kCACxCl9B,EACAtgS,IAE4BjN,KAAIowN,GAAQA,EAAK2zC,WACjD,CAQA,uCAAM0mE,CACJl9B,EACAtgS,EACA2+S,GAEA,MAAM3tT,EAAOhc,KAAKinV,2BAChB,CAAC37B,EAAQkN,YACTmR,OACA53U,EACAi5B,GAMI5mB,EAAMnT,SAJY+O,KAAKs9U,YAC3B,oCACAthU,GAE4Bo7T,IAC9B,GAAI,UAAWhzU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,kDAGJ,OAAOvZ,EAAI2U,MACb,CAUA,6BAAM0vU,CACJn9B,EACAtgS,EACA2+S,GAEA,MAAM3tT,EAAOhc,KAAKinV,2BAChB,CAAC37B,EAAQkN,YACTmR,OACA53U,EACAi5B,GAGI5mB,EAAMnT,SADY+O,KAAKs9U,YAAY,0BAA2BthU,GACtCs7T,IAC9B,GAAI,UAAWlzU,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,wCAGJ,OAAOvZ,EAAI2U,MACb,CAEA,2BAAM2vU,CACJ9qB,EACA9tS,GAEA,MAAM,QAAC40D,EAAS9rF,MAAO+vV,SAAqB3oV,KAAKkiV,yBAC/CtkB,EACA9tS,GAGF,IAAIl3B,EAAQ,KAQZ,OAPoB,OAAhB+vV,IACF/vV,EAAQ,IAAI84U,GAA0B,CACpCn5T,IAAKqlT,EACLhqO,MAAO89O,GAA0Bx4T,YAAYyvU,EAAYzoU,SAItD,CACLwkE,UACA9rF,QAEJ,CAKA,wBAAMgsV,CACJ9Z,EACA6H,GAEA,MAAM,QAACjuP,EAAS9rF,MAAO+vV,SAAqB3oV,KAAKkiV,yBAC/CpX,EACA6H,GAGF,IAAI/5U,EAAQ,KAKZ,OAJoB,OAAhB+vV,IACF/vV,EAAQ8xU,GAAaG,gBAAgB8d,EAAYzoU,OAG5C,CACLwkE,UACA9rF,QAEJ,CAKA,cAAMgwV,CACJ9d,EACA6H,GAEA,aAAa3yU,KAAK4kV,mBAAmB9Z,EAAc6H,GAChD97N,MAAK77G,GAAKA,EAAEpC,QACZyyI,OAAMl1I,IACL,MAAM,IAAIxE,MACR,mCACEm5U,EAAatS,WACb,KACAriU,EACH,GAEP,CAgBA,oBAAM0yV,CACJ3wS,EACA0zR,GAEA,MAIMxnU,EAAMnT,SAJY+O,KAAKs9U,YAAY,iBAAkB,CACzDplS,EAAGsgR,WACHoT,IAE4B0Q,IAC9B,GAAI,UAAWl4U,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,cAAcu6B,EAAGsgR,qBAGrB,OAAOp0T,EAAI2U,MACb,CAKA,qCAAM+vU,CACJC,GAEA,IAAKA,EAAc,CAEjB,KAAO/oV,KAAK89U,yBACJ5T,GAAM,KAEd,MACM8e,EADiB1uR,KAAKC,MAAQv6D,KAAK+9U,eAAeE,WACtBxL,GAClC,GAA4C,OAAxCzyU,KAAK+9U,eAAeC,kBAA6BgL,EACnD,OAAOhpV,KAAK+9U,eAAeC,eAE/B,CAEA,aAAah+U,KAAKipV,mBACpB,CAKA,uBAAMA,GACJjpV,KAAK89U,mBAAoB,EACzB,IACE,MAAMt/O,EAAYlkC,KAAKC,MACjB2uR,EAAwBlpV,KAAK+9U,eAAeC,gBAC5CmL,EAAkBD,EACpBA,EAAsBlmB,UACtB,KACJ,IAAK,IAAIztU,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,MAAMyoV,QAAwBh+U,KAAK4mV,mBAAmB,aAEtD,GAAIuC,IAAoBnL,EAAgBhb,UAOtC,OANAhjU,KAAK+9U,eAAiB,CACpBC,kBACAC,UAAW3jR,KAAKC,MAChB2jR,sBAAuB,GACvBC,oBAAqB,IAEhBH,QAIH9T,GAAMyF,IACd,CAEA,MAAM,IAAIh+U,MACR,0CAA0C2oE,KAAKC,MAAQikC,MAE3D,CAAE,QACAx+F,KAAK89U,mBAAoB,CAC3B,CACF,CAKA,+BAAMsL,CACJt5T,GAEA,MAAM,WAAC65S,EAAY75S,OAAQwxT,GAAa5O,GAA4B5iT,GAC9D9T,EAAOhc,KAAK6+U,WAAW,GAAIlV,EAAY,SAAU2X,GAEjDl9U,EAAMnT,SADY+O,KAAKs9U,YAAY,4BAA6BthU,GACxCm3T,GAAwBvzU,OACtD,GAAI,UAAWwE,EACb,MAAM,IAAIilU,GACRjlU,EAAIuZ,MACJ,0CAGJ,OAAOvZ,EAAI2U,MACb,CA2BA,yBAAMswU,CACJC,EACAC,EACAC,GAEA,GAAI,YAAaF,EAAsB,CACrC,MACM3jB,EADc2jB,EACgBnwU,YAC9BswU,EACJ15V,GAAAA,OAAOC,KAAK21U,GAAiBzrU,SAAS,UACxC,GAAInE,MAAMC,QAAQuzV,SAAwCx3V,IAApBy3V,EACpC,MAAM,IAAI73V,MAAM,qBAGlB,MAAMm+B,EAAcy5T,GAAmB,CAAC,EACxCz5T,EAAOnW,SAAW,SACZ,eAAgBmW,IACpBA,EAAO65S,WAAa3pU,KAAK2pU,YAIzB4f,GAC2B,kBAApBA,GACP,sBAAuBA,IAEvBz5T,EAAOslT,kBAAoBmU,EAAgBnU,mBAG7C,MAAMp5T,EAAO,CAACytU,EAAoB35T,GAE5B1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,sBAAuBthU,GAClCg5T,IAC9B,GAAI,UAAW5wU,EACb,MAAM,IAAIzS,MAAM,mCAAqCyS,EAAIuZ,MAAM1D,SAEjE,OAAO7V,EAAI2U,MACb,CAEA,IAAIqhP,EACJ,GAAIkvF,aAAgC/mB,GAAa,CAC/C,IAAImnB,EAA0BJ,EAC9BlvF,EAAc,IAAImoE,GAClBnoE,EAAYqoE,SAAWinB,EAAWjnB,SAClCroE,EAAYsgE,aAAe4uB,EAAqB5uB,aAChDtgE,EAAYuoE,UAAY+mB,EAAW/mB,UACnCvoE,EAAYooE,WAAaknB,EAAWlnB,UACtC,MACEpoE,EAAcmoE,GAAYsD,SAASyjB,GAEnClvF,EAAYyoE,SAAWzoE,EAAY0oE,WAAQ/wU,EAG7C,QAAwBA,IAApBw3V,IAAkCxzV,MAAMC,QAAQuzV,GAClD,MAAM,IAAI53V,MAAM,qBAGlB,MAAMuxU,EAAUqmB,EAChB,GAAInvF,EAAYuoE,WAAaO,EAC3B9oE,EAAY4sD,QAAQkc,OACf,CACL,IAAI6lB,EAAe/oV,KAAK69U,yBACxB,OAAS,CACP,MAAMG,QACEh+U,KAAK8oV,gCAAgCC,GAI7C,GAHA3uF,EAAYsoE,qBAAuBsb,EAAgBtb,qBACnDtoE,EAAYmkE,gBAAkByf,EAAgBhb,WAEzCE,EAAS,MAGd,GADA9oE,EAAY4sD,QAAQkc,IACf9oE,EAAY0nB,UACf,MAAM,IAAInwR,MAAM,cAGlB,MAAMmwR,EAAY1nB,EAAY0nB,UAAU5nR,SAAS,UACjD,IACG8F,KAAK+9U,eAAeI,oBAAoBr5T,SAASg9P,KACjD9hR,KAAK+9U,eAAeG,sBAAsBp5T,SAASg9P,GACpD,CAGA9hR,KAAK+9U,eAAeI,oBAAoB3oV,KAAKssR,GAC7C,KACF,CAKEinE,GAAe,CAEnB,CACF,CAEA,MAAM9uU,EAAUmgP,EAAYiqE,WACtBvE,EAAW7lT,EAAQd,YAEnBswU,EADkBrvF,EAAYorE,WAAW1F,GACJ5lU,SAAS,UAC9C41B,EAAc,CAClBnW,SAAU,SACVgwT,WAAY3pU,KAAK2pU,YAGnB,GAAI6f,EAAiB,CACnB,MAAM/rB,GACJ1nU,MAAMC,QAAQwzV,GACVA,EACAvvU,EAAQolT,iBACZthT,KAAIxF,GAAOA,EAAIigT,aAEjB1oS,EAAiB,SAAI,CACnBnW,SAAU,SACV8jT,YAEJ,CAEIyF,IACFpzS,EAAO65T,WAAY,GAInBJ,GAC2B,kBAApBA,GACP,sBAAuBA,IAEvBz5T,EAAOslT,kBAAoBmU,EAAgBnU,mBAG7C,MAAMp5T,EAAO,CAACytU,EAAoB35T,GAE5B1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,sBAAuBthU,GAClCg5T,IAC9B,GAAI,UAAW5wU,EAAK,CAClB,IAAIujU,EACJ,GAAI,SAAUvjU,EAAIuZ,QAChBgqT,EAAOvjU,EAAIuZ,MAAMuC,KAAKynT,KAClBA,GAAQ5xU,MAAMC,QAAQ2xU,IAAO,CAC/B,MAAMiiB,EAAc,SACdC,EAAWD,EAAcjiB,EAAKrpU,KAAKsrV,GACzC/lU,QAAQlG,MAAMvZ,EAAIuZ,MAAM1D,QAAS4vU,EACnC,CAGF,MAAM,IAAIpiB,GAAqB,CAC7Bp1S,OAAQ,WACRyvP,UAAW,GACX4lD,mBAAoBtjU,EAAIuZ,MAAM1D,QAC9B0tT,KAAMA,GAEV,CACA,OAAOvjU,EAAI2U,MACb,CA2BA,qBAAM8wT,CACJzvE,EACA0vF,EACA9+T,GAEA,GAAI,YAAaovO,EAAa,CAC5B,GAAI0vF,GAAoB/zV,MAAMC,QAAQ8zV,GACpC,MAAM,IAAIn4V,MAAM,qBAGlB,MAAMg0U,EAAkBvrE,EAAYjhP,YACpC,aAAanZ,KAAK+pV,mBAAmBpkB,EAAiBmkB,EACxD,CAEA,QAAyB/3V,IAArB+3V,IAAmC/zV,MAAMC,QAAQ8zV,GACnD,MAAM,IAAIn4V,MAAM,qBAGlB,MAAMuxU,EAAU4mB,EAChB,GAAI1vF,EAAYuoE,UACdvoE,EAAY4sD,QAAQkc,OACf,CACL,IAAI6lB,EAAe/oV,KAAK69U,yBACxB,OAAS,CACP,MAAMG,QACEh+U,KAAK8oV,gCAAgCC,GAI7C,GAHA3uF,EAAYsoE,qBAAuBsb,EAAgBtb,qBACnDtoE,EAAYmkE,gBAAkByf,EAAgBhb,UAC9C5oE,EAAY4sD,QAAQkc,IACf9oE,EAAY0nB,UACf,MAAM,IAAInwR,MAAM,cAGlB,MAAMmwR,EAAY1nB,EAAY0nB,UAAU5nR,SAAS,UACjD,IAAK8F,KAAK+9U,eAAeG,sBAAsBp5T,SAASg9P,GAAY,CAGlE9hR,KAAK+9U,eAAeG,sBAAsB1oV,KAAKssR,GAC/C,KACF,CAKEinE,GAAe,CAEnB,CACF,CAEA,MAAMpjB,EAAkBvrE,EAAYjhP,YACpC,aAAanZ,KAAK+pV,mBAAmBpkB,EAAiB36S,EACxD,CAMA,wBAAM++T,CACJC,EACAh/T,GAEA,MAAMy+T,EAAqBhmV,GAASumV,GAAgB9vV,SAAS,UAK7D,aAJqB8F,KAAKiqV,uBACxBR,EACAz+T,EAGJ,CAMA,4BAAMi/T,CACJR,EACAz+T,GAEA,MAAM8E,EAAc,CAACnW,SAAU,UACzB8vT,EAAgBz+S,GAAWA,EAAQy+S,cACnCC,GACc,IAAlBD,EACI,YACCz+S,GAAWA,EAAQ0+S,qBAAwB1pU,KAAK2pU,WAEnD3+S,GAAiC,MAAtBA,EAAQ4+S,aACrB95S,EAAO85S,WAAa5+S,EAAQ4+S,YAE1B5+S,GAAqC,MAA1BA,EAAQ+3S,iBACrBjzS,EAAOizS,eAAiB/3S,EAAQ+3S,gBAE9B0G,IACF35S,EAAO25S,cAAgBA,GAErBC,IACF55S,EAAO45S,oBAAsBA,GAG/B,MAAM1tT,EAAO,CAACytU,EAAoB35T,GAE5B1rB,EAAMnT,SADY+O,KAAKs9U,YAAY,kBAAmBthU,GAC9BugU,IAC9B,GAAI,UAAWn4U,EAAK,CAClB,IAAIujU,EAKJ,KAJI,SAAUvjU,EAAIuZ,QAChBgqT,EAAOvjU,EAAIuZ,MAAMuC,KAAKynT,MAGlB,IAAIF,GAAqB,CAC7Bp1S,OAAQo3S,EAAgB,OAAS,WACjC3nD,UAAW,GACX4lD,mBAAoBtjU,EAAIuZ,MAAM1D,QAC9B0tT,KAAMA,GAEV,CACA,OAAOvjU,EAAI2U,MACb,CAKAsnU,SAAAA,GACErgV,KAAKy9U,wBAAyB,EAC9Bz9U,KAAK09U,uBAAyB95S,aAAY,KAExC,WACE,UACQ5jC,KAAKw9U,cAAc1wB,OAAO,QAEhC,MAAO,CACV,EALD,EAKI,GACH,KACH9sT,KAAKkqV,sBACP,CAKA5J,UAAAA,CAAWz0T,GACT7rB,KAAKy9U,wBAAyB,EAC9B55T,QAAQlG,MAAM,YAAakO,EAAI5R,QACjC,CAKAsmU,UAAAA,CAAWhiV,GACTyB,KAAKy9U,wBAAyB,EAC9Bz9U,KAAK49U,yBACF59U,KAAK49U,wBAA0B,GAAKptV,OAAO4iR,iBAC1CpzQ,KAAK29U,2BACP36N,aAAahjH,KAAK29U,0BAClB39U,KAAK29U,yBAA2B,MAE9B39U,KAAK09U,yBACP35S,cAAc/jC,KAAK09U,wBACnB19U,KAAK09U,uBAAyB,MAGnB,MAATn/U,GAOJyB,KAAKw+U,6CAA+C,CAAC,EACrDxtV,OAAOg4J,QACLhpJ,KAAKy+U,sBACLhhU,SAAQ0sU,IAA0B,IAAxB7iL,EAAM8qH,GAAa+3D,EAC7BnqV,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHx+L,MAAO,WACP,KAZF5zF,KAAKkqV,sBAcT,CAKQE,gBAAAA,CACN9iL,EACA+iL,GAEA,MAAMxrI,EAAY7+M,KAAKy+U,qBAAqBn3K,IAAO1zE,MAEnD,GADA5zF,KAAKy+U,qBAAqBn3K,GAAQ+iL,EAC9BxrI,IAAcwrI,EAAiBz2P,MAAO,CACxC,MAAM02P,EACJtqV,KAAKu+U,wCAAwCj3K,GAC3CgjL,GACFA,EAAqB7sU,SAAQ8mB,IAC3B,IACEA,EAAG8lT,EAAiBz2P,OAEpB,MAAO,IAGf,CACF,CAKQkwP,0BAAAA,CACNyG,EACA7+T,GAEA,MAAM47I,EACJtnK,KAAKs+U,wCAAwCiM,GAC/C,GAAY,MAARjjL,EACF,MAAO,OAET,MAAMgjL,EAAwBtqV,KAAKu+U,wCACjCj3K,KACI,IAAI17C,IAEV,OADA0+N,EAAqBzjV,IAAI6kB,GAClB,KACL4+T,EAAqBzvN,OAAOnvG,GACM,IAA9B4+T,EAAqBxuV,aAChBkE,KAAKu+U,wCAAwCj3K,EACtD,CAEJ,CAKA,0BAAM4iL,GACJ,GAAsD,IAAlDl5V,OAAOg1C,KAAKhmC,KAAKy+U,sBAAsBtuV,OAiBzC,YAhBI6P,KAAKy9U,yBACPz9U,KAAKy9U,wBAAyB,EAC9Bz9U,KAAK29U,yBAA2B1yS,YAAW,KACzCjrC,KAAK29U,yBAA2B,KAChC,IACE39U,KAAKw9U,cAAc33I,QACnB,MAAOh6K,GAEHA,aAAel6B,OACjBkyB,QAAQtoB,IACN,yCAAyCswB,EAAI5R,UAGnD,IACC,OAWP,GANsC,OAAlCja,KAAK29U,2BACP36N,aAAahjH,KAAK29U,0BAClB39U,KAAK29U,yBAA2B,KAChC39U,KAAKy9U,wBAAyB,IAG3Bz9U,KAAKy9U,uBAER,YADAz9U,KAAKw9U,cAAc/wB,UAIrB,MAAM+9B,EAA4BxqV,KAAK49U,wBACjC6M,EAAiCA,IAC9BD,IAA8BxqV,KAAK49U,8BAGtCnrO,QAAQ6tD,IAKZtvK,OAAOg1C,KAAKhmC,KAAKy+U,sBAAsB1gU,KAAI83J,UACzC,MAAMu8G,EAAepyR,KAAKy+U,qBAAqBn3K,GAC/C,QAAqBv1K,IAAjBqgS,EAIJ,OAAQA,EAAax+L,OACnB,IAAK,UACL,IAAK,eACH,GAAoC,IAAhCw+L,EAAazsP,UAAU7pC,KAqBzB,cAPOkE,KAAKy+U,qBAAqBn3K,GACN,iBAAvB8qH,EAAax+L,cACR5zF,KAAKw+U,6CACVpsD,EAAas4D,iCAGX1qV,KAAKkqV,4BAGP,WACJ,MAAM,KAACluU,EAAI,OAAEuP,GAAU6mQ,EACvB,IACEpyR,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHx+L,MAAO,gBAET,MAAM82P,QACG1qV,KAAKw9U,cAAc1lV,KAAKyzB,EAAQvP,GACzChc,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHs4D,uBACA92P,MAAO,eAET5zF,KAAKw+U,6CACHkM,GACEt4D,EAAazsP,gBACX3lC,KAAKkqV,uBACX,MAAO/zV,IAQP,GAPA0tB,QAAQlG,MACN,YAAYxnB,cAAaxE,MAAQ,GAAK,8BAA8B45B,MACpE,CACEvP,OACA2B,MAAOxnB,MAGNs0V,IACH,OAGFzqV,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHx+L,MAAO,kBAEH5zF,KAAKkqV,sBACb,CACD,EApCK,GAqCN,MACF,IAAK,aACiC,IAAhC93D,EAAazsP,UAAU7pC,WAInB,WACJ,MAAM,qBAAC4uV,EAAoB,kBAAEC,GAAqBv4D,EAClD,GACEpyR,KAAK0+U,gCAAgCz1M,IAAIyhN,GAWzC1qV,KAAK0+U,gCAAgC7jN,OACnC6vN,OAEG,CACL1qV,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHx+L,MAAO,kBAET5zF,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHx+L,MAAO,kBAET,UACQ5zF,KAAKw9U,cAAc1lV,KAAK6yV,EAAmB,CAC/CD,IAEF,MAAOv0V,IAIP,GAHIA,cAAaxE,OACfkyB,QAAQlG,MAAM,GAAGgtU,WAA4Bx0V,GAAE8jB,UAE5CwwU,IACH,OAQF,OALAzqV,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHx+L,MAAO,0BAEH5zF,KAAKkqV,sBAEb,CACF,CACAlqV,KAAKoqV,iBAAiB9iL,EAAM,IACvB8qH,EACHx+L,MAAO,uBAEH5zF,KAAKkqV,sBACZ,EAnDK,GAyDZ,IAGN,CAKQU,yBAAAA,CAGNF,EACAG,GAEA,MAAMllT,EACJ3lC,KAAKw+U,6CAA6CkM,QAClC34V,IAAd4zC,GAGJA,EAAUloB,SAAQ8mB,IAChB,IACEA,KAKKsmT,GAEL,MAAO10V,IACP0tB,QAAQlG,MAAMxnB,GAChB,IAEJ,CAKAqqV,wBAAAA,CAAyBtzB,GACvB,MAAM,OAACn0S,EAAM,aAAEq5Q,GAAgBnhS,GAC7Bi8T,EACAqqB,IAEFv3U,KAAK4qV,0BAAiDx4D,EAAc,CAClEr5Q,EAAOngB,MACPmgB,EAAO2rE,SAEX,CAKQomQ,iBAAAA,CACNC,EAyBA/uU,GAEA,MAAMuuU,EAAuBvqV,KAAKo+U,4BAC5B92K,EAAOy3K,GAAoB,CAACgM,EAAmBx/T,OAAQvP,IACvDgvU,EAAuBhrV,KAAKy+U,qBAAqBn3K,GA4BvD,YA3B6Bv1K,IAAzBi5V,EACFhrV,KAAKy+U,qBAAqBn3K,GAAQ,IAC7ByjL,EACH/uU,OACA2pB,UAAW,IAAIimF,IAAI,CAACm/N,EAAmBr/T,WACvCkoE,MAAO,WAGTo3P,EAAqBrlT,UAAU9+B,IAAIkkV,EAAmBr/T,UAExD1rB,KAAKs+U,wCAAwCiM,GAAwBjjL,EACrEtnK,KAAKq+U,oDACHkM,GACE10K,iBACK71K,KAAKq+U,oDACVkM,UAEKvqV,KAAKs+U,wCAAwCiM,GACpD,MAAMn4D,EAAepyR,KAAKy+U,qBAAqBn3K,GAC/CnoK,QACmBpN,IAAjBqgS,EACA,4EAA4Em4D,KAE9En4D,EAAazsP,UAAUk1F,OAAOkwN,EAAmBr/T,gBAC3C1rB,KAAKkqV,sBAAsB,EAEnClqV,KAAKkqV,uBACEK,CACT,CAuBAU,eAAAA,CACE/jC,EACAx7R,EACAinT,GAEA,MAAM,WAAChJ,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,CAAC33B,EAAUsR,YACXmR,GAAc3pU,KAAKk9U,aAAe,YAClC,SACAptT,GAEF,OAAO9vB,KAAK8qV,kBACV,CACEp/T,WACAH,OAAQ,mBACRo/T,kBAAmB,sBAErB3uU,EAEJ,CAOA,iCAAMkvU,CACJX,SAEMvqV,KAAKmrV,+BACTZ,EACA,iBAEJ,CAKA9J,+BAAAA,CAAgCvzB,GAC9B,MAAM,OAACn0S,EAAM,aAAEq5Q,GAAgBnhS,GAC7Bi8T,EACAuqB,IAEFz3U,KAAK4qV,0BAAwDx4D,EAAc,CACzE,CACEz4E,UAAW5gM,EAAOngB,MAAMsiU,OACxBytB,YAAa5vU,EAAOngB,MAAM6lU,SAE5B1lT,EAAO2rE,SAEX,CAyBA0mQ,sBAAAA,CACExyB,EACAltS,EACAinT,EACA0Y,GAEA,MAAM,WAAC1hB,EAAU,OAAE75S,GACjB4iT,GAA4BC,GACxB32T,EAAOhc,KAAK6+U,WAChB,CAACjmB,EAAUJ,YACXmR,GAAc3pU,KAAKk9U,aAAe,YAClC,SACAptT,IAEIu7T,EACE,CAAC9iR,QAASuqQ,GAAoCuY,SAC9Ct5V,IAER,OAAOiO,KAAK8qV,kBACV,CACEp/T,WACAH,OAAQ,mBACRo/T,kBAAmB,sBAErB3uU,EAEJ,CAOA,wCAAMsvU,CACJf,SAEMvqV,KAAKmrV,+BACTZ,EACA,yBAEJ,CAKAgB,MAAAA,CACEj/T,EACAZ,EACAi+S,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAChB,CAAmB,kBAAXvyT,EAAsB,CAACk/T,SAAU,CAACl/T,EAAOpyB,aAAeoyB,GAChEq9S,GAAc3pU,KAAKk9U,aAAe,aAEpC,OAAOl9U,KAAK8qV,kBACV,CACEp/T,WACAH,OAAQ,gBACRo/T,kBAAmB,mBAErB3uU,EAEJ,CAOA,0BAAMyvU,CACJlB,SAEMvqV,KAAKmrV,+BAA+BZ,EAAsB,OAClE,CAKAzJ,qBAAAA,CAAsB5zB,GACpB,MAAM,OAACn0S,EAAM,aAAEq5Q,GAAgBnhS,GAAOi8T,EAAcuvB,IACpDz8U,KAAK4qV,0BAAwCx4D,EAAc,CACzDr5Q,EAAOngB,MACPmgB,EAAO2rE,SAEX,CAKAg8P,qBAAAA,CAAsBxzB,GACpB,MAAM,OAACn0S,EAAM,aAAEq5Q,GAAgBnhS,GAAOi8T,EAAcyqB,IACpD33U,KAAK4qV,0BAA8Cx4D,EAAc,CAACr5Q,GACpE,CAQA2yU,YAAAA,CAAahgU,GACX,OAAO1rB,KAAK8qV,kBACV,CACEp/T,WACAH,OAAQ,gBACRo/T,kBAAmB,mBAErB,GAEJ,CAOA,8BAAMgB,CACJpB,SAEMvqV,KAAKmrV,+BACTZ,EACA,cAEJ,CAKA5J,4BAAAA,CAA6BzzB,GAC3B,MAAM,OAACn0S,EAAM,aAAEq5Q,GAAgBnhS,GAC7Bi8T,EACAgrB,IAEFl4U,KAAK4qV,0BAA8Cx4D,EAAc,CAACr5Q,GACpE,CASA6yU,YAAAA,CAAalgU,GACX,OAAO1rB,KAAK8qV,kBACV,CACEp/T,WACAH,OAAQ,wBACRo/T,kBAAmB,2BAErB,GAEJ,CAOA,8BAAMkB,CACJtB,SAEMvqV,KAAKmrV,+BACTZ,EACA,cAEJ,CAMA,oCAAcY,CACZZ,EACAuB,GAEA,MAAMvsK,EACJv/K,KAAKq+U,oDACHkM,GAEAhrK,QACIA,IAEN17J,QAAQ04C,KAEJ,wEAAKguR,YAA+BuB,gCAI5C,CAEAjN,UAAAA,CACE7iU,EACA+vU,EACApyU,EACAy8D,GAEA,MAAMuzP,EAAaoiB,GAAY/rV,KAAKk9U,YACpC,GAAIvT,GAAchwT,GAAYy8D,EAAO,CACnC,IAAIprD,EAAe,CAAC,EAChBrR,IACFqR,EAAQrR,SAAWA,GAEjBgwT,IACF3+S,EAAQ2+S,WAAaA,GAEnBvzP,IACFprD,EAAUh6B,OAAOG,OAAO65B,EAASorD,IAEnCp6D,EAAKxmB,KAAKw1B,EACZ,CACA,OAAOhP,CACT,CAKAirU,0BAAAA,CACEjrU,EACA+vU,EACApyU,EACAy8D,GAEA,MAAMuzP,EAAaoiB,GAAY/rV,KAAKk9U,YACpC,GAAIvT,IAAe,CAAC,YAAa,aAAa7kT,SAAS6kT,GACrD,MAAM,IAAIh4U,MACR,8CACEqO,KAAKk9U,YACL,+CAGN,OAAOl9U,KAAK6+U,WAAW7iU,EAAM+vU,EAAUpyU,EAAUy8D,EACnD,CAKAwqQ,0BAAAA,CAA2B1zB,GACzB,MAAM,OAACn0S,EAAM,aAAEq5Q,GAAgBnhS,GAC7Bi8T,EACAirB,IAEmB,sBAAjBp/T,EAAOngB,OAcToH,KAAK0+U,gCAAgC73U,IAAIurR,GAE3CpyR,KAAK4qV,0BACHx4D,EACiB,sBAAjBr5Q,EAAOngB,MACH,CAAC,CAAC4kB,KAAM,YAAazE,EAAO2rE,SAC5B,CAAC,CAAClnE,KAAM,SAAUzE,OAAQA,EAAOngB,OAAQmgB,EAAO2rE,SAExD,CAUAg/P,WAAAA,CACE5hE,EACAp2P,EACAi+S,GAEA,MAAM3tT,EAAOhc,KAAK6+U,WAChB,CAAC/8D,GACD6nD,GAAc3pU,KAAKk9U,aAAe,aAE9BqN,EAAuBvqV,KAAK8qV,kBAChC,CACEp/T,SAAUA,CAACwhS,EAAcxoO,KACvB,GAA0B,WAAtBwoO,EAAa1vS,KAAmB,CAClCkO,EAASwhS,EAAan0S,OAAQ2rE,GAG9B,IACE1kF,KAAKikV,wBAAwBsG,GAE7B,MAAOyB,GACP,CAEJ,GAEFzgU,OAAQ,qBACRo/T,kBAAmB,wBAErB3uU,GAEF,OAAOuuU,CACT,CAYA0B,sBAAAA,CACEnqE,EACAp2P,EACAV,GAEA,MAAM,WAAC2+S,KAAevzP,GAAS,IAC1BprD,EACH2+S,WACG3+S,GAAWA,EAAQ2+S,YAAe3pU,KAAKk9U,aAAe,aAErDlhU,EAAOhc,KAAK6+U,WAChB,CAAC/8D,GACD6nD,OACA53U,EACAqkF,GAEIm0Q,EAAuBvqV,KAAK8qV,kBAChC,CACEp/T,SAAUA,CAACwhS,EAAcxoO,KACvBh5D,EAASwhS,EAAcxoO,GAGvB,IACE1kF,KAAKikV,wBAAwBsG,GAE7B,MAAOyB,GACP,GAGJzgU,OAAQ,qBACRo/T,kBAAmB,wBAErB3uU,GAEF,OAAOuuU,CACT,CAOA,6BAAMtG,CACJsG,SAEMvqV,KAAKmrV,+BACTZ,EACA,mBAEJ,CAKA1J,qBAAAA,CAAsB3zB,GACpB,MAAM,OAACn0S,EAAM,aAAEq5Q,GAAgBnhS,GAAOi8T,EAAckrB,IACpDp4U,KAAK4qV,0BAA8Cx4D,EAAc,CAACr5Q,GACpE,CAQAmzU,YAAAA,CAAaxgU,GACX,OAAO1rB,KAAK8qV,kBACV,CACEp/T,WACAH,OAAQ,gBACRo/T,kBAAmB,mBAErB,GAEJ,CAOA,8BAAMwB,CACJ5B,SAEMvqV,KAAKmrV,+BACTZ,EACA,cAEJ,EC3xNK,MAAM6B,GASX/7V,WAAAA,CAAYg8V,GAA0B,KAR9BC,cAAQ,EASdtsV,KAAKssV,SAAWD,GAAW70B,IAC7B,CAOA,eAAO+0B,GACL,OAAO,IAAIH,GAAQ50B,KACrB,CAgBA,oBAAOg1B,CACL90B,EACA1sS,GAEA,GAA6B,KAAzB0sS,EAAU16T,WACZ,MAAM,IAAIrL,MAAM,uBAElB,MAAMu1T,EAAYwQ,EAAU39T,MAAM,GAAI,IACtC,IAAKixB,IAAYA,EAAQyhU,eAAgB,CACvC,MAAMh1B,EAAgBC,EAAU39T,MAAM,EAAG,IACnC2yV,EAAoB3lC,GAAa0Q,GACvC,IAAK,IAAI/qN,EAAK,EAAGA,EAAK,GAAIA,IACxB,GAAIw6M,EAAUx6M,KAAQggP,EAAkBhgP,GACtC,MAAM,IAAI/6G,MAAM,gCAGtB,CACA,OAAO,IAAIy6V,GAAQ,CAACllC,YAAWwQ,aACjC,CASA,eAAOi1B,CAASn6P,GACd,MAAM00N,EAAYH,GAAav0N,GACzBklO,EAAY,IAAI9nU,WAAW,IAGjC,OAFA8nU,EAAUr5S,IAAIm0E,GACdklO,EAAUr5S,IAAI6oS,EAAW,IAClB,IAAIklC,GAAQ,CAACllC,YAAWwQ,aACjC,CAOA,aAAIxQ,GACF,OAAO,IAAIiR,GAAUn4T,KAAKssV,SAASplC,UACrC,CAMA,aAAIwQ,GACF,OAAO,IAAI9nU,WAAWoQ,KAAKssV,SAAS50B,UACtC,QCdWk1B,GAAmC57V,OAAO09C,OAAO,CAC5Dm+S,kBAAmB,CACjBrsV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CACAA,GAAAA,GAAiB,eACjB7kB,GAAiB,cACjB6kB,GAAAA,GAAgB,eAGpB2xB,kBAAmB,CACjBtsV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,kBAEtB4xB,kBAAmB,CACjBvsV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CACAA,GAAAA,GAAiB,eACjB7kB,KACA6kB,GAAAA,GACEjU,KACAiU,GAAAA,GAAoBA,GAAAA,MAAqB,GACzC,gBAIN6xB,sBAAuB,CACrBxsV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,kBAEtB8xB,iBAAkB,CAChBzsV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,oBAIjB,MAAM+xB,GAIX78V,WAAAA,GAAe,CAEf,4BAAOg7U,CACLtQ,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAEhC,MACMp4T,EADwB26T,GAAAA,GAAiB,eACXnpU,OAAO+oU,EAAY76S,MAEvD,IAAI1C,EACJ,IAAK,MAAO2vU,EAAY56V,KAAWvB,OAAOg4J,QACxC4jM,IAEA,GAAKr6V,EAAeiO,OAASA,EAAO,CAClCgd,EAAO2vU,EACP,KACF,CAEF,IAAK3vU,EACH,MAAM,IAAI7rB,MACR,4DAGJ,OAAO6rB,CACT,CAEA,8BAAO4vU,CACLryB,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAKqtV,gBAAgBtyB,EAAY/0R,KAAM,GAEvC,MAAM,WAACsnT,GAAchjB,GACnBsiB,GAAiCC,kBACjC9xB,EAAY76S,MAGd,MAAO,CACL40Q,UAAWimC,EAAY/0R,KAAK,GAAGk1R,OAC/BY,MAAOf,EAAY/0R,KAAK,GAAGk1R,OAC3BoyB,WAAY98V,OAAO88V,GAEvB,CAEA,8BAAOC,CACLxyB,GAGA,GADA/6T,KAAKsrU,eAAevQ,EAAYnC,WAC5BmC,EAAY/0R,KAAK71C,OAAS,EAC5B,MAAM,IAAIwB,MACR,8BAA8BopU,EAAY/0R,KAAK71C,oCAInD,MAAM,UAACstU,GAAa6M,GAClBsiB,GAAiCG,kBACjChyB,EAAY76S,MAEd,MAAO,CACLm9S,YAAatC,EAAY/0R,KAAK,GAAGk1R,OACjCpmC,UAAWimC,EAAY/0R,KAAK,GAAGk1R,OAC/BY,MACEf,EAAY/0R,KAAK71C,OAAS,EAAI4qU,EAAY/0R,KAAK,GAAGk1R,YAASnpU,EAC7D0rU,UAAWA,EAAU1/S,KAAI9tB,GAAU,IAAIkoU,GAAUloU,KAErD,CAEA,6BAAOu9V,CACLzyB,GAKA,OAHA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAKqtV,gBAAgBtyB,EAAY/0R,KAAM,GAEhC,CACLq3R,YAAatC,EAAY/0R,KAAK,GAAGk1R,OACjCpmC,UAAWimC,EAAY/0R,KAAK,GAAGk1R,OAC/BuyB,UAAW1yB,EAAY/0R,KAAK,GAAGk1R,OAEnC,CAEA,8BAAOwyB,CACL3yB,GAKA,OAHA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAKqtV,gBAAgBtyB,EAAY/0R,KAAM,GAEhC,CACLq3R,YAAatC,EAAY/0R,KAAK,GAAGk1R,OACjCpmC,UAAWimC,EAAY/0R,KAAK,GAAGk1R,OAEnC,CAEA,kCAAOyyB,CACL5yB,GAKA,OAHA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAKqtV,gBAAgBtyB,EAAY/0R,KAAM,GAEhC,CACLq3R,YAAatC,EAAY/0R,KAAK,GAAGk1R,OACjCpmC,UAAWimC,EAAY/0R,KAAK,GAAGk1R,OAEnC,CAKA,qBAAOoQ,CAAe1S,GACpB,IAAKA,EAAUp0S,OAAOopU,GAA0Bh1B,WAC9C,MAAM,IAAIjnU,MACR,mEAGN,CAIA,sBAAO07V,CAAgBrnT,EAAkB80Q,GACvC,GAAI90Q,EAAK71C,OAAS2qT,EAChB,MAAM,IAAInpT,MACR,8BAA8Bq0C,EAAK71C,kCAAkC2qT,IAG3E,EAGK,MAAM8yC,GAIXv9V,WAAAA,GAAe,CAMf,wBAAOw9V,CAAkBriU,GACvB,MAAOsiU,EAAoBC,GAAY51B,GAAUc,uBAC/C,CAACztS,EAAOspQ,UAAUrxR,YAAY0nU,EAAAA,GAAAA,IAAWnsU,OAAOwsB,EAAO8hU,YAAa,IACpEttV,KAAK44T,WAID14S,EAAOiqT,GADAyiB,GAAiCC,kBAChB,CAC5BS,WAAYtuV,OAAOwsB,EAAO8hU,YAC1BS,SAAUA,IAGN/nT,EAAO,CACX,CACEk1R,OAAQ4yB,EACR3xB,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ1vS,EAAOspQ,UACfqnC,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ1vS,EAAOswS,MACfK,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ2S,GAAcjV,UACtBuD,UAAU,EACVC,YAAY,IAIhB,MAAO,CACL,IAAIiG,GAAuB,CACzBzJ,UAAW54T,KAAK44T,UAChB5yR,KAAMA,EACN9lB,KAAMA,IAER4tU,EAEJ,CAEA,wBAAOE,CAAkBxiU,GACvB,MACMtL,EAAOiqT,GADAyiB,GAAiCE,mBAGxC9mT,EAAO,CACX,CACEk1R,OAAQ1vS,EAAO6xS,YACflB,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ1vS,EAAOspQ,UACfqnC,UAAU,EACVC,YAAY,IAIhB,OAAO,IAAIiG,GAAuB,CAChCzJ,UAAW54T,KAAK44T,UAChB5yR,KAAMA,EACN9lB,KAAMA,GAEV,CAEA,wBAAO+tU,CAAkBziU,GACvB,MACMtL,EAAOiqT,GADAyiB,GAAiCG,kBAChB,CAC5BtvB,UAAWjyS,EAAOiyS,UAAU1/S,KAAImwU,GAAQA,EAAK15C,cAGzCxuQ,EAAO,CACX,CACEk1R,OAAQ1vS,EAAO6xS,YACflB,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ1vS,EAAOspQ,UACfqnC,UAAU,EACVC,YAAY,IAmBhB,OAfI5wS,EAAOswS,OACT91R,EAAKxwC,KACH,CACE0lU,OAAQ1vS,EAAOswS,MACfK,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ2S,GAAcjV,UACtBuD,UAAU,EACVC,YAAY,IAKX,IAAIiG,GAAuB,CAChCzJ,UAAW54T,KAAK44T,UAChB5yR,KAAMA,EACN9lB,KAAMA,GAEV,CAEA,4BAAOiuU,CAAsB3iU,GAC3B,MACMtL,EAAOiqT,GADAyiB,GAAiCI,uBAGxChnT,EAAO,CACX,CACEk1R,OAAQ1vS,EAAO6xS,YACflB,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ1vS,EAAOspQ,UACfqnC,UAAU,EACVC,YAAY,IAIhB,OAAO,IAAIiG,GAAuB,CAChCzJ,UAAW54T,KAAK44T,UAChB5yR,KAAMA,EACN9lB,KAAMA,GAEV,CAEA,uBAAOkuU,CAAiB5iU,GACtB,MACMtL,EAAOiqT,GADAyiB,GAAiCK,kBAGxCjnT,EAAO,CACX,CACEk1R,OAAQ1vS,EAAO6xS,YACflB,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ1vS,EAAOspQ,UACfqnC,UAAU,EACVC,YAAY,GAEd,CACElB,OAAQ1vS,EAAOiiU,UACftxB,UAAU,EACVC,YAAY,IAIhB,OAAO,IAAIiG,GAAuB,CAChCzJ,UAAW54T,KAAK44T,UAChB5yR,KAAMA,EACN9lB,KAAMA,GAEV,EA3KW0tU,GAMJh1B,UAAuB,IAAIT,GAChC,+CC9PG,MAAMk2B,GAIXh+V,WAAAA,GAAe,CAKf,4BAAOg7U,CACLtQ,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAEhC,MACM2S,EADwBpQ,GAAAA,GAAgB,eACNnpU,OAAO+oU,EAAY76S,MAE3D,IAAI1C,EACJ,IAAK,MAAOguT,EAAQj5U,KAAWvB,OAAOg4J,QACpCslM,IAEA,GAAI/7V,EAAOiO,OAAS+qU,EAAW,CAC7B/tT,EAAOguT,EACP,KACF,CAGF,IAAKhuT,EACH,MAAM,IAAI7rB,MACR,8DAIJ,OAAO6rB,CACT,CAKA,yBAAO+wU,CACLxzB,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC,MAAM,MAACj2S,EAAK,cAAE6rU,GAAiBlkB,GAC7BgkB,GAAmCG,aACnC1zB,EAAY76S,MAEd,MAAO,CAACyC,QAAO6rU,gBACjB,CAKA,6BAAOE,CACL3zB,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC,MAAM,MAAC1zS,GAASolT,GACdgkB,GAAmCK,iBACnC5zB,EAAY76S,MAEd,MAAO,CAACgF,QACV,CAKA,gCAAO0pU,CACL7zB,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC,MAAM,MAACj2S,GAAS2nT,GACdgkB,GAAmCO,oBACnC9zB,EAAY76S,MAEd,MAAO,CAACyC,QACV,CAKA,gCAAOmsU,CACL/zB,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC,MAAM,cAACm2B,GAAiBzkB,GACtBgkB,GAAmCU,oBACnCj0B,EAAY76S,MAEd,MAAO,CAAC6uU,gBACV,CAKA,qBAAOzjB,CAAe1S,GACpB,IAAKA,EAAUp0S,OAAOyqU,GAAqBr2B,WACzC,MAAM,IAAIjnU,MACR,6DAGN,QA+DW28V,GAAqCt9V,OAAO09C,OAItD,CACD+/S,aAAc,CACZjuV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CACAA,GAAAA,GAAgB,eAChBA,GAAAA,GAAiB,SACjBA,GAAAA,GAAiB,oBAGrBwzB,iBAAkB,CAChBnuV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAgB,eAAgBA,GAAAA,GAAiB,YAEtD0zB,oBAAqB,CACnBruV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAgB,eAAgBA,GAAAA,GAAiB,YAEtD6zB,oBAAqB,CACnBxuV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAgB,eAAgB7kB,GAAI,sBAOpC,MAAM24C,GAIX5+V,WAAAA,GAAe,CAYf,mBAAO6+V,CAAa1jU,GAClB,MACMtL,EAAOiqT,GADAmkB,GAAmCG,aAClBjjU,GAC9B,OAAO,IAAI62S,GAAuB,CAChCr8R,KAAM,GACN4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAEA,uBAAOivU,CACL3jU,GAEA,MACMtL,EAAOiqT,GADAmkB,GAAmCK,iBAClBnjU,GAC9B,OAAO,IAAI62S,GAAuB,CAChCr8R,KAAM,GACN4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAEA,0BAAOkvU,CACL5jU,GAEA,MACMtL,EAAOiqT,GADAmkB,GAAmCO,oBAClBrjU,GAC9B,OAAO,IAAI62S,GAAuB,CAChCr8R,KAAM,GACN4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAEA,0BAAOmvU,CACL7jU,GAEA,MACMtL,EAAOiqT,GADAmkB,GAAmCU,oBAClB,CAC5BD,cAAe/vV,OAAOwsB,EAAOujU,iBAE/B,OAAO,IAAI1sB,GAAuB,CAChCr8R,KAAM,GACN4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,EA9DW+uU,GASJr2B,UAAuB,IAAIT,GAChC,+CC1NJ,MAuBMm3B,GAA6Bn0B,GAAAA,GAYjC,CACAA,GAAAA,GAAgB,iBAChBA,GAAAA,GAAgB,WAChBA,GAAAA,GAAiB,mBACjBA,GAAAA,GAAiB,6BACjBA,GAAAA,GAAiB,mBACjBA,GAAAA,GAAiB,6BACjBA,GAAAA,GAAiB,qBACjBA,GAAAA,GAAiB,mBACjBA,GAAAA,GAAiB,6BAGZ,MAAMo0B,GAIXl/V,WAAAA,GAAe,CAcf,qCAAOm/V,CACLhkU,GAEA,MAAM,UAAC07R,EAAS,QAAEjtS,EAAO,UAAE6nQ,EAAS,iBAAE2tE,GAAoBjkU,EAE1DrsB,GArEqB,KAsEnB+nT,EAAU/2T,OACV,4CAA6D+2T,EAAU/2T,gBAGzEgP,GAzEoB,KA0ElB2iR,EAAU3xR,OACV,2CAA2D2xR,EAAU3xR,gBAGvE,MAAMu/V,EAAkBJ,GAA2Bh/V,KAC7Cq/V,EAAkBD,EAAkBxoC,EAAU/2T,OAC9Cy/V,EAAoBD,EAAkB7tE,EAAU3xR,OAGhDk+U,EAAkBt+U,GAAAA,OAAO4L,MAAMi0V,EAAoB31U,EAAQ9pB,QAE3DqQ,EACgB,MAApBivV,EACI,MACAA,EAqBN,OAnBAH,GAA2Bl9V,OACzB,CACEy9V,cAXkB,EAYlB9sV,QAAS,EACT4sV,kBACAG,0BAA2BtvV,EAC3BkvV,kBACAK,0BAA2BvvV,EAC3BovV,oBACAI,gBAAiB/1U,EAAQ9pB,OACzB8/V,wBAAyBzvV,GAE3B6tU,GAGFA,EAAgBhyU,KAAK6qT,EAAWwoC,GAChCrhB,EAAgBhyU,KAAKylR,EAAW6tE,GAChCthB,EAAgBhyU,KAAK4d,EAAS21U,GAEvB,IAAIvtB,GAAuB,CAChCr8R,KAAM,GACN4yR,UAAW22B,GAAe32B,UAC1B14S,KAAMmuT,GAEV,CAMA,sCAAO6hB,CACL1kU,GAEA,MAAM,WAACimS,EAAU,QAAEx3S,EAAO,iBAAEw1U,GAAoBjkU,EAEhDrsB,GA/HsB,KAgIpBsyT,EAAWthU,OACX,6CAA+DshU,EAAWthU,gBAG5E,IACE,MAAMk8V,EAAUD,GAAQI,cAAc/6B,GAChCvK,EAAYmlC,EAAQnlC,UAAU1S,UAC9B1yB,EAAYklC,GAAK/sS,EAASoyU,EAAQ30B,WAExC,OAAO13T,KAAKwvV,+BAA+B,CACzCtoC,YACAjtS,UACA6nQ,YACA2tE,qBAEF,MAAO9xU,GACP,MAAM,IAAIhsB,MAAM,+BAA+BgsB,IACjD,CACF,EAnGW4xU,GASJ32B,UAAuB,IAAIT,GAChC,+CCzD6BhB,GAAU9/H,MAAMk9H,kBAC1C,MAAM47B,GAAkBh5B,GAAUpQ,aCoCnCqpC,GAA+Bj1B,GAAAA,GAcnC,CACAA,GAAAA,GAAgB,iBAChBA,GAAAA,GAAiB,mBACjBA,GAAAA,GAAgB,6BAChBA,GAAAA,GAAiB,oBACjBA,GAAAA,GAAgB,8BAChBA,GAAAA,GAAiB,qBACjBA,GAAAA,GAAiB,mBACjBA,GAAAA,GAAgB,2BAChBA,GAAAA,GAAkB,GAAI,cACtBA,GAAAA,GAAkB,GAAI,aACtBA,GAAAA,GAAgB,gBAGX,MAAMk1B,GAIXhgW,WAAAA,GAAe,CAaf,4BAAOigW,CACLppC,GAEA/nT,GAlFqB,KAmFnB+nT,EAAU/2T,OACV,4CAA6D+2T,EAAU/2T,gBAGzE,IACE,OAAOJ,GAAAA,OAAOC,KAAKg/T,GAAWvrT,GAASyjT,KAAantT,OAzF3B,IA4FzB,MAAO4jB,GACP,MAAM,IAAIhsB,MAAM,wCAAwCgsB,IAC1D,CACF,CAMA,qCAAO6xU,CACLhkU,GAEA,MAAM,UAAC07R,EAAS,QAAEjtS,EAAO,UAAE6nQ,EAAS,WAAEyuE,EAAU,iBAAEd,GAChDjkU,EACF,OAAO6kU,GAAiBG,gCAAgC,CACtDC,WAAYJ,GAAiBC,sBAAsBppC,GACnDjtS,UACA6nQ,YACAyuE,aACAd,oBAEJ,CAMA,sCAAOe,CACLhlU,GAEA,MACEilU,WAAYC,EAAU,QACtBz2U,EAAO,UACP6nQ,EAAS,WACTyuE,EAAU,iBACVd,EAAmB,GACjBjkU,EAEJ,IAAIilU,EAGAA,EAFsB,kBAAfC,EACLA,EAAWrlL,WAAW,MACXt7K,GAAAA,OAAOC,KAAK0gW,EAAWvuU,OAAO,GAAI,OAElCpyB,GAAAA,OAAOC,KAAK0gW,EAAY,OAG1BA,EAGfvxV,GA7I2B,KA8IzBsxV,EAAWtgW,OACX,yCAAgEsgW,EAAWtgW,gBAG7E,MAEMw/V,EAFY,GAEkBc,EAAWtgW,OACzCy/V,EAAoBD,EAAkB7tE,EAAU3xR,OAAS,EAGzDk+U,EAAkBt+U,GAAAA,OAAO4L,MAC7By0V,GAA6B9/V,KAAO2pB,EAAQ9pB,QAsB9C,OAnBAigW,GAA6Bh+V,OAC3B,CACEy9V,cARkB,EASlBF,kBACAG,0BAA2BL,EAC3BkB,iBAfc,GAgBdC,2BAA4BnB,EAC5BG,oBACAI,gBAAiB/1U,EAAQ9pB,OACzB8/V,wBAAyBR,EACzB3tE,UAAWr+Q,GAASq+Q,GACpB2uE,WAAYhtV,GAASgtV,GACrBF,cAEFliB,GAGFA,EAAgBhyU,KAAKoH,GAASwW,GAAUm2U,GAA6B9/V,MAE9D,IAAI+xU,GAAuB,CAChCr8R,KAAM,GACN4yR,UAAWy3B,GAAiBz3B,UAC5B14S,KAAMmuT,GAEV,CAMA,sCAAO6hB,CACL1kU,GAEA,MAAOimS,WAAYo/B,EAAI,QAAE52U,EAAO,iBAAEw1U,GAAoBjkU,EAEtDrsB,GAhMsB,KAiMpB0xV,EAAK1gW,OACL,6CAA+D0gW,EAAK1gW,gBAGtE,IACE,MAAMshU,EAAahuT,GAASotV,GACtB3pC,EAAYipC,GAChB1+B,GACA,GACA13T,MAAM,GACF+2V,EAAc/gW,GAAAA,OAAOC,KAAKg/T,GAAWvrT,GAASwW,MAC7C6nQ,EAAWyuE,GDpNCQ,EACvBl9B,EACA3N,KAEA,MAAMpkC,EAAYq1C,GAAUnQ,KAAK6M,EAAS3N,GAC1C,MAAO,CAACpkC,EAAUuyC,oBAAqBvyC,EAAU0xC,SAAU,EC+MvBu9B,CAAUD,EAAar/B,GAEvD,OAAOzxT,KAAKwvV,+BAA+B,CACzCtoC,YACAjtS,UACA6nQ,YACAyuE,aACAd,qBAEF,MAAO9xU,GACP,MAAM,IAAIhsB,MAAM,+BAA+BgsB,IACjD,CACF,SAxJW0yU,GASJz3B,UAAuB,IAAIT,GAChC,qDC7DS64B,GAAkB,IAAI74B,GACjC,+CAMK,MAAM84B,GAWX5gW,WAAAA,CAAY6gW,EAAmBC,GAV/B,KACAD,YAAM,EACN,KACAC,gBAAU,EAQRnxV,KAAKkxV,OAASA,EACdlxV,KAAKmxV,WAAaA,CACpB,EAWK,MAAMC,GAWX/gW,WAAAA,CAAYghW,EAAuBrgB,EAAesgB,GAVlD,KACAD,mBAAa,EACb,KACArgB,WAAK,EACL,KACAsgB,eAAS,EAMPtxV,KAAKqxV,cAAgBA,EACrBrxV,KAAKgxU,MAAQA,EACbhxU,KAAKsxV,UAAYA,CACnB,EAMDC,GArBYH,GAAAA,GAoBJr3U,QAAkB,IAAIw3U,GAAO,EAAG,EAAGp5B,GAAUp+S,SAqI/C,MAAMy3U,GAIXnhW,WAAAA,GAAe,CAKf,4BAAOg7U,CACLtQ,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAEhC,MACM2S,EADwBpQ,GAAAA,GAAiB,eACPnpU,OAAO+oU,EAAY76S,MAE3D,IAAI1C,EACJ,IAAK,MAAOguT,EAAQj5U,KAAWvB,OAAOg4J,QAAQyoM,IAC5C,GAAIl/V,EAAOiO,OAAS+qU,EAAW,CAC7B/tT,EAAOguT,EACP,KACF,CAGF,IAAKhuT,EACH,MAAM,IAAI7rB,MAAM,sDAGlB,OAAO6rB,CACT,CAKA,uBAAOk0U,CACL32B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,WAACmnS,EAAU,OAAEwkB,GAAUrnB,GAC3BmnB,GAA0BG,WAC1B72B,EAAY76S,MAGd,MAAO,CACL2xU,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjCiS,WAAY,IAAI8jB,GACd,IAAI94B,GAAUgV,EAAW+jB,QACzB,IAAI/4B,GAAUgV,EAAWgkB,aAE3BQ,OAAQ,IAAIP,GACVO,EAAON,cACPM,EAAO3gB,MACP,IAAI7Y,GAAUw5B,EAAOL,YAG3B,CAKA,qBAAOQ,CACL/2B,GAMA,OAJA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GACtCskS,GAAWmnB,GAA0BM,SAAUh3B,EAAY76S,MAEpD,CACL2xU,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjCud,WAAY1d,EAAY/0R,KAAK,GAAGk1R,OAChCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OAE1C,CAKA,sBAAO82B,CACLj3B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GACtC,MAAM,cAACisT,EAAa,uBAAEC,GAA0B5nB,GAC9CmnB,GAA0BU,UAC1Bp3B,EAAY76S,MAGRjZ,EAA0B,CAC9B4qV,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OACtC0S,oBAAqB,IAAIzV,GAAU85B,GACnCC,uBAAwB,CACtB1xV,MAAO0xV,IAMX,OAHIn3B,EAAY/0R,KAAK71C,OAAS,IAC5B8W,EAAEmrV,gBAAkBr3B,EAAY/0R,KAAK,GAAGk1R,QAEnCj0T,CACT,CAKA,8BAAOorV,CACLt3B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,cACJisT,EAAa,uBACbC,EAAsB,cACtBI,EAAa,eACbC,GACEjoB,GACFmnB,GAA0Be,kBAC1Bz3B,EAAY76S,MAGRjZ,EAAkC,CACtC4qV,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjCu3B,cAAe13B,EAAY/0R,KAAK,GAAGk1R,OACnCo3B,cAAeA,EACfC,eAAgB,IAAIp6B,GAAUo6B,GAC9B3kB,oBAAqB,IAAIzV,GAAU85B,GACnCC,uBAAwB,CACtB1xV,MAAO0xV,IAMX,OAHIn3B,EAAY/0R,KAAK71C,OAAS,IAC5B8W,EAAEmrV,gBAAkBr3B,EAAY/0R,KAAK,GAAGk1R,QAEnCj0T,CACT,CAKA,kBAAOyrV,CAAY33B,GACjB/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GACtC,MAAM,SAAC4lS,GAAYtB,GACjBmnB,GAA0BkB,MAC1B53B,EAAY76S,MAGd,MAAO,CACL2xU,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjC03B,iBAAkB73B,EAAY/0R,KAAK,GAAGk1R,OACtCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OACtC0Q,WAEJ,CAKA,kBAAOinB,CAAY93B,GAKjB,OAJA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GACtCskS,GAAWmnB,GAA0BqB,MAAO/3B,EAAY76S,MAEjD,CACL2xU,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjC63B,kBAAmBh4B,EAAY/0R,KAAK,GAAGk1R,OACvCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OAE1C,CAKA,qBAAO83B,CACLj4B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GACtC,MAAM,SAAC4lS,GAAYtB,GACjBmnB,GAA0BwB,SAC1Bl4B,EAAY76S,MAGRjZ,EAAyB,CAC7B4qV,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjCiR,SAAUpR,EAAY/0R,KAAK,GAAGk1R,OAC9ByP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OACtC0Q,YAKF,OAHI7Q,EAAY/0R,KAAK71C,OAAS,IAC5B8W,EAAEmrV,gBAAkBr3B,EAAY/0R,KAAK,GAAGk1R,QAEnCj0T,CACT,CAKA,uBAAOisV,CACLn4B,GAMA,OAJA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GACtCskS,GAAWmnB,GAA0B0B,WAAYp4B,EAAY76S,MAEtD,CACL2xU,YAAa92B,EAAY/0R,KAAK,GAAGk1R,OACjCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OAE1C,CAKA,qBAAOoQ,CAAe1S,GACpB,IAAKA,EAAUp0S,OAAO4uU,GAAax6B,WACjC,MAAM,IAAIjnU,MAAM,qDAEpB,CAKA,qBAAOg6U,CAAe3lS,EAAkB80Q,GACtC,GAAI90Q,EAAK71C,OAAS2qT,EAChB,MAAM,IAAInpT,MACR,8BAA8Bq0C,EAAK71C,kCAAkC2qT,IAG3E,QAwDW22C,GAA4BzgW,OAAO09C,OAI7C,CACDkjT,WAAY,CACVpxV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA6D,CACnEA,GAAAA,GAAiB,erC1ZG,WAAqC,IAApC5qU,EAAgBuB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,aAC5C,OAAOqpU,GAAAA,GAKL,CAACjU,GAAU,UAAWA,GAAU,eAAgB32T,EACpD,CqCoZM48U,GrC/YgB,WAAiC,IAAhC58U,EAAgBuB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,SACxC,OAAOqpU,GAAAA,GAOL,CACEA,GAAAA,GAAkB,iBAClBA,GAAAA,GAAkB,SAClBjU,GAAU,cAEZ32T,EAEJ,CqCiYMohW,MAGJQ,UAAW,CACT3xV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA4D,CAClEA,GAAAA,GAAiB,eACjBjU,GAAiB,iBACjBiU,GAAAA,GAAiB,6BAGrB42B,SAAU,CACRvxV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA2D,CACjEA,GAAAA,GAAiB,kBAGrBw3B,MAAO,CACLnyV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAAwD,CAC9DA,GAAAA,GAAiB,eACjBA,GAAAA,GAAkB,eAGtB83B,SAAU,CACRzyV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA2D,CACjEA,GAAAA,GAAiB,eACjBA,GAAAA,GAAkB,eAGtBg4B,WAAY,CACV3yV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA6D,CACnEA,GAAAA,GAAiB,kBAGrB23B,MAAO,CACLtyV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAAwD,CAC9DA,GAAAA,GAAiB,kBAGrBq3B,kBAAmB,CACjBhyV,MAAO,EACPjO,OAAQ4oU,GAAAA,GACN,CACEA,GAAAA,GAAiB,eACjBjU,GAAiB,iBACjBiU,GAAAA,GAAiB,0BACjBC,GAAkB,iBAClBlU,GAAiB,uBAiBZmsC,GAA2BriW,OAAO09C,OAAO,CACpD4kT,OAAQ,CACN9yV,MAAO,GAET+yV,WAAY,CACV/yV,MAAO,KAOJ,MAAM4yV,GAIX/iW,WAAAA,GAAe,CAqBf,iBAAO61G,CAAW16E,GAChB,MAAM,YAACqmU,EAAW,WAAE1kB,EAAYwkB,OAAQ6B,GAAehoU,EACjDmmU,EAAiB6B,GAAepC,GAAOr3U,QAEvCmG,EAAOiqT,GADAsnB,GAA0BG,WACT,CAC5BzkB,WAAY,CACV+jB,OAAQztV,GAAS0pU,EAAW+jB,OAAOztV,YACnC0tV,WAAY1tV,GAAS0pU,EAAWgkB,WAAW1tV,aAE7CkuV,OAAQ,CACNN,cAAeM,EAAON,cACtBrgB,MAAO2gB,EAAO3gB,MACdsgB,UAAW7tV,GAASkuV,EAAOL,UAAU7tV,eAGnC4qU,EAAkB,CACtBroS,KAAM,CACJ,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQkM,GAAoBjL,UAAU,EAAOC,YAAY,IAE5DxD,UAAW54T,KAAK44T,UAChB14S,QAEF,OAAO,IAAImiT,GAAuBgM,EACpC,CAMA,4BAAOJ,CACLziT,GAEA,MAAM4uO,EAAc,IAAImoE,GACxBnoE,EAAYvzP,IACVgnU,GAAcI,sBAAsB,CAClClC,WAAYvgT,EAAOugT,WACnBC,iBAAkBxgT,EAAOqmU,YACzBvlB,WAAY9gT,EAAO8gT,WACnB95O,KAAMhnE,EAAOgnE,KACbo5O,SAAUpgT,EAAOogT,SACjBC,MAAO7rU,KAAK6rU,MACZjT,UAAW54T,KAAK44T,aAIpB,MAAM,YAACi5B,EAAW,WAAE1kB,EAAU,OAAEwkB,GAAUnmU,EAC1C,OAAO4uO,EAAYvzP,IAAI7G,KAAKkmG,WAAW,CAAC2rP,cAAa1kB,aAAYwkB,WACnE,CAKA,oBAAO5jB,CAAcviT,GACnB,MAAM4uO,EAAc,IAAImoE,GACxBnoE,EAAYvzP,IACVgnU,GAAcE,cAAc,CAC1BhC,WAAYvgT,EAAOugT,WACnBC,iBAAkBxgT,EAAOqmU,YACzBjmB,SAAUpgT,EAAOogT,SACjBC,MAAO7rU,KAAK6rU,MACZjT,UAAW54T,KAAK44T,aAIpB,MAAM,YAACi5B,EAAW,WAAE1kB,EAAU,OAAEwkB,GAAUnmU,EAC1C,OAAO4uO,EAAYvzP,IAAI7G,KAAKkmG,WAAW,CAAC2rP,cAAa1kB,aAAYwkB,WACnE,CAOA,eAAO8B,CAASjoU,GACd,MAAM,YAACqmU,EAAW,iBAAElnB,EAAgB,WAAE8N,GAAcjtT,EAG9CtL,EAAOiqT,GADAsnB,GAA0BM,UAGvC,OAAO,IAAIxvB,IAAc17T,IAAI,CAC3Bm/B,KAAM,CACJ,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQud,EAAYtc,UAAU,EAAOC,YAAY,GAClD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CACElB,OAAQsM,GACRrL,UAAU,EACVC,YAAY,GAEd,CAAClB,OAAQ81B,GAAiB70B,UAAU,EAAOC,YAAY,GACvD,CAAClB,OAAQyP,EAAkBxO,UAAU,EAAMC,YAAY,IAEzDxD,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAMA,gBAAOwzU,CAAUloU,GACf,MAAM,YACJqmU,EAAW,iBACXlnB,EAAgB,oBAChBiD,EAAmB,uBACnBskB,EAAsB,gBACtBE,GACE5mU,EAGEtL,EAAOiqT,GADAsnB,GAA0BU,UACT,CAC5BF,cAAexuV,GAASmqU,EAAoBnqU,YAC5CyuV,uBAAwBA,EAAuB1xV,QAG3CwlC,EAAO,CACX,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CAAClB,OAAQyP,EAAkBxO,UAAU,EAAMC,YAAY,IASzD,OAPIg2B,GACFpsT,EAAKxwC,KAAK,CACR0lU,OAAQk3B,EACRj2B,UAAU,EACVC,YAAY,KAGT,IAAImG,IAAc17T,IAAI,CAC3Bm/B,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAMA,wBAAOyzU,CAAkBnoU,GACvB,MAAM,YACJqmU,EAAW,cACXY,EAAa,cACbH,EAAa,eACbC,EAAc,oBACd3kB,EAAmB,uBACnBskB,EAAsB,gBACtBE,GACE5mU,EAGEtL,EAAOiqT,GADAsnB,GAA0Be,kBACT,CAC5BP,cAAexuV,GAASmqU,EAAoBnqU,YAC5CyuV,uBAAwBA,EAAuB1xV,MAC/C8xV,cAAeA,EACfC,eAAgB9uV,GAAS8uV,EAAe9uV,cAGpCuiC,EAAO,CACX,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQu3B,EAAet2B,UAAU,EAAMC,YAAY,GACpD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,IAS7D,OAPIg2B,GACFpsT,EAAKxwC,KAAK,CACR0lU,OAAQk3B,EACRj2B,UAAU,EACVC,YAAY,KAGT,IAAImG,IAAc17T,IAAI,CAC3Bm/B,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,uBAAO0zU,CAAiBpoU,GACtB,MAAM,YAACqmU,EAAW,iBAAElnB,EAAgB,iBAAEioB,EAAgB,SAAEhnB,GAAYpgT,EAE9DtL,EAAOiqT,GADAsnB,GAA0BkB,MACT,CAAC/mB,aAC/B,OAAO,IAAIvJ,GAAuB,CAChCr8R,KAAM,CACJ,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQ03B,EAAkBz2B,UAAU,EAAOC,YAAY,GACxD,CAAClB,OAAQyP,EAAkBxO,UAAU,EAAMC,YAAY,IAEzDxD,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,YAAOtsB,CACL43B,EAEAqoU,GAEA,MAAMz5F,EAAc,IAAImoE,GAUxB,OATAnoE,EAAYvzP,IACVgnU,GAAcE,cAAc,CAC1BhC,WAAYvgT,EAAOm/S,iBACnBqB,iBAAkBxgT,EAAOonU,iBACzBhnB,SAAUioB,EACVhoB,MAAO7rU,KAAK6rU,MACZjT,UAAW54T,KAAK44T,aAGbx+D,EAAYvzP,IAAI7G,KAAK4zV,iBAAiBpoU,GAC/C,CAMA,oBAAOsoU,CACLtoU,EAEAqoU,GAEA,MAAM,YACJhC,EAAW,iBACXlnB,EAAgB,iBAChBioB,EAAgB,WAChBtmB,EAAU,KACV95O,EAAI,SACJo5O,GACEpgT,EACE4uO,EAAc,IAAImoE,GAmBxB,OAlBAnoE,EAAYvzP,IACVgnU,GAAcxpU,SAAS,CACrBooU,cAAemmB,EACftmB,aACA95O,OACAq5O,MAAO7rU,KAAK6rU,MACZjT,UAAW54T,KAAK44T,aAGhBi7B,GAAqBA,EAAoB,GAC3Cz5F,EAAYvzP,IACVgnU,GAAcG,SAAS,CACrBjC,WAAYvgT,EAAOm/S,iBACnBwB,SAAUymB,EACVhnB,SAAUioB,KAITz5F,EAAYvzP,IACjB7G,KAAK4zV,iBAAiB,CACpB/B,cACAlnB,mBACAioB,mBACAhnB,aAGN,CAKA,YAAOr2I,CAAM/pK,GACX,MAAM,YAACqmU,EAAW,kBAAEkB,EAAiB,iBAAEpoB,GAAoBn/S,EAErDtL,EAAOiqT,GADAsnB,GAA0BqB,OAGvC,OAAO,IAAIvwB,IAAc17T,IAAI,CAC3Bm/B,KAAM,CACJ,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQ63B,EAAmB52B,UAAU,EAAOC,YAAY,GACzD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CACElB,OAAQsM,GACRrL,UAAU,EACVC,YAAY,GAEd,CAAClB,OAAQyP,EAAkBxO,UAAU,EAAMC,YAAY,IAEzDxD,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,eAAO6zU,CAASvoU,GACd,MAAM,YAACqmU,EAAW,iBAAElnB,EAAgB,SAAEwB,EAAQ,SAAEP,EAAQ,gBAAEwmB,GACxD5mU,EAEItL,EAAOiqT,GADAsnB,GAA0BwB,SACT,CAACrnB,aAEzB5lS,EAAO,CACX,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQiR,EAAUhQ,UAAU,EAAOC,YAAY,GAChD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CACElB,OAAQsM,GACRrL,UAAU,EACVC,YAAY,GAEd,CAAClB,OAAQyP,EAAkBxO,UAAU,EAAMC,YAAY,IASzD,OAPIg2B,GACFpsT,EAAKxwC,KAAK,CACR0lU,OAAQk3B,EACRj2B,UAAU,EACVC,YAAY,KAGT,IAAImG,IAAc17T,IAAI,CAC3Bm/B,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,iBAAO8zU,CAAWxoU,GAChB,MAAM,YAACqmU,EAAW,iBAAElnB,GAAoBn/S,EAElCtL,EAAOiqT,GADAsnB,GAA0B0B,YAGvC,OAAO,IAAI5wB,IAAc17T,IAAI,CAC3Bm/B,KAAM,CACJ,CAACk1R,OAAQ22B,EAAa11B,UAAU,EAAOC,YAAY,GACnD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CAAClB,OAAQyP,EAAkBxO,UAAU,EAAMC,YAAY,IAEzDxD,UAAW54T,KAAK44T,UAChB14S,QAEJ,EA5WWkzU,GASJx6B,UAAuB,IAAIT,GAChC,+CAVSi7B,GAoBJvnB,MAAgB,IC5kBlB,MAAMooB,GAMX5jW,WAAAA,CACEqoV,EACAwb,EACAC,EACArgB,GACA,KAVF4E,gBAAU,OACVwb,qBAAe,OACfC,0BAAoB,OACpBrgB,gBAAU,EAQR9zU,KAAK04U,WAAaA,EAClB14U,KAAKk0V,gBAAkBA,EACvBl0V,KAAKm0V,qBAAuBA,EAC5Bn0V,KAAK8zU,WAAaA,CACpB,EAmEK,MAAMsgB,GAIX/jW,WAAAA,GAAe,CAKf,4BAAOg7U,CACLtQ,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAEhC,MACM2S,EADwBpQ,GAAAA,GAAiB,eACPnpU,OAAO+oU,EAAY76S,MAE3D,IAAI1C,EACJ,IAAK,MAAOguT,EAAQj5U,KAAWvB,OAAOg4J,QAAQqrM,IAC5C,GAAI9hW,EAAOiO,OAAS+qU,EAAW,CAC7B/tT,EAAOguT,EACP,KACF,CAGF,IAAKhuT,EACH,MAAM,IAAI7rB,MAAM,qDAGlB,OAAO6rB,CACT,CAKA,8BAAO82U,CACLv5B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,SAACuuT,GAAYjqB,GACjB+pB,GAAyBG,kBACzBz5B,EAAY76S,MAGd,MAAO,CACLu4T,WAAY1d,EAAY/0R,KAAK,GAAGk1R,OAChCwd,WAAY3d,EAAY/0R,KAAK,GAAGk1R,OAChCq5B,SAAU,IAAIN,GACZ,IAAI97B,GAAUo8B,EAAS7b,YACvB,IAAIvgB,GAAUo8B,EAASL,iBACvB,IAAI/7B,GAAUo8B,EAASJ,sBACvBI,EAASzgB,YAGf,CAKA,sBAAOke,CACLj3B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,cAACisT,EAAa,sBAAEwC,GAAyBnqB,GAC7C+pB,GAAyBlC,UACzBp3B,EAAY76S,MAGd,MAAO,CACLu4T,WAAY1d,EAAY/0R,KAAK,GAAGk1R,OAChCyP,iBAAkB5P,EAAY/0R,KAAK,GAAGk1R,OACtC0S,oBAAqB,IAAIzV,GAAU85B,GACnCwC,sBAAuB,CACrBj0V,MAAOi0V,GAGb,CAKA,8BAAOpC,CACLt3B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MACE0uT,2BAA2B,sCACzBC,EAAqC,+BACrCC,EAA8B,cAC9B3C,EAAa,sBACbwC,IAEAnqB,GACF+pB,GAAyB7B,kBACzBz3B,EAAY76S,MAGd,MAAO,CACL20U,qCAAsC95B,EAAY/0R,KAAK,GAAGk1R,OAC1Dy5B,sCAAuC,IAAIx8B,GACzCw8B,GAEFC,+BAAgCA,EAChChnB,oBAAqB,IAAIzV,GAAU85B,GACnCwC,sBAAuB,CACrBj0V,MAAOi0V,GAEThc,WAAY1d,EAAY/0R,KAAK,GAAGk1R,OAEpC,CAKA,qBAAO83B,CACLj4B,GAEA/6T,KAAKsrU,eAAevQ,EAAYnC,WAChC54T,KAAK2rU,eAAe5Q,EAAY/0R,KAAM,GAEtC,MAAM,SAAC4lS,GAAYtB,GACjB+pB,GAAyBpB,SACzBl4B,EAAY76S,MAGd,MAAO,CACLu4T,WAAY1d,EAAY/0R,KAAK,GAAGk1R,OAChC45B,2BAA4B/5B,EAAY/0R,KAAK,GAAGk1R,OAChD0Q,WACAO,SAAUpR,EAAY/0R,KAAK,GAAGk1R,OAElC,CAKA,qBAAOoQ,CAAe1S,GACpB,IAAKA,EAAUp0S,OAAOuwU,GAAYn8B,WAChC,MAAM,IAAIjnU,MAAM,oDAEpB,CAKA,qBAAOg6U,CAAe3lS,EAAkB80Q,GACtC,GAAI90Q,EAAK71C,OAAS2qT,EAChB,MAAM,IAAInpT,MACR,8BAA8Bq0C,EAAK71C,kCAAkC2qT,IAG3E,EA8CF,MAAMu5C,GAA2BrjW,OAAO09C,OAIrC,CACD8lT,kBAAmB,CACjBh0V,MAAO,EACPjO,OAAQ4oU,GAAAA,GAAmE,CACzEA,GAAAA,GAAiB,etC1LC,WAAmC,IAAlC5qU,EAAgBuB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,WAC1C,OAAOqpU,GAAAA,GAQL,CACEjU,GAAU,cACVA,GAAU,mBACVA,GAAU,wBACViU,GAAAA,GAAgB,eAElB5qU,EAEJ,CsC0KMgkW,MAGJpC,UAAW,CACT3xV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA2D,CACjEA,GAAAA,GAAiB,eACjBjU,GAAiB,iBACjBiU,GAAAA,GAAiB,4BAGrB83B,SAAU,CACRzyV,MAAO,EACPjO,OAAQ4oU,GAAAA,GAA0D,CAChEA,GAAAA,GAAiB,eACjBA,GAAAA,GAAkB,eAGtB65B,wBAAyB,CACvBx0V,MAAO,EACPjO,OAAQ4oU,GAAAA,GAEN,CAACA,GAAAA,GAAiB,kBAEtBq3B,kBAAmB,CACjBhyV,MAAO,GACPjO,OAAQ4oU,GAAAA,GAAmE,CACzEA,GAAAA,GAAiB,etChMkB,WAEpC,IADH5qU,EAAgBuB,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,GAAAA,UAAA,GAAG,4BAEnB,OAAOqpU,GAAAA,GACL,CACEA,GAAAA,GAAiB,yBACjBjU,GAAU,yCACVkU,GAAW,kCACXlU,GAAU,kBAEZ32T,EAEJ,CsCqLMmkW,QAgBOO,GAA0BjkW,OAAO09C,OAAO,CACnDwmT,MAAO,CACL10V,MAAO,GAET+yV,WAAY,CACV/yV,MAAO,KAOJ,MAAMu0V,GAIX1kW,WAAAA,GAAe,CAuBf,wBAAO8kW,CACL3pU,GAEA,MAAM,WAACitT,EAAU,WAAEC,EAAU,SAAE6b,GAAY/oU,EAErCtL,EAAOiqT,GADAkqB,GAAyBG,kBACR,CAC5BD,SAAU,CACR7b,WAAYj1U,GAAS8wV,EAAS7b,WAAWj1U,YACzCywV,gBAAiBzwV,GAAS8wV,EAASL,gBAAgBzwV,YACnD0wV,qBAAsB1wV,GACpB8wV,EAASJ,qBAAqB1wV,YAEhCqwU,WAAYygB,EAASzgB,cAGnBzF,EAAkB,CACtBroS,KAAM,CACJ,CAACk1R,OAAQud,EAAYtc,UAAU,EAAOC,YAAY,GAClD,CAAClB,OAAQkM,GAAoBjL,UAAU,EAAOC,YAAY,GAC1D,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CAAClB,OAAQwd,EAAYvc,UAAU,EAAMC,YAAY,IAEnDxD,UAAW54T,KAAK44T,UAChB14S,QAEF,OAAO,IAAImiT,GAAuBgM,EACpC,CAKA,oBAAON,CAAcviT,GACnB,MAAM4uO,EAAc,IAAImoE,GAWxB,OAVAnoE,EAAYvzP,IACVgnU,GAAcE,cAAc,CAC1BhC,WAAYvgT,EAAOugT,WACnBC,iBAAkBxgT,EAAOitT,WACzB7M,SAAUpgT,EAAOogT,SACjBC,MAAO7rU,KAAK6rU,MACZjT,UAAW54T,KAAK44T,aAIbx+D,EAAYvzP,IACjB7G,KAAKm1V,kBAAkB,CACrB1c,WAAYjtT,EAAOitT,WACnBC,WAAYltT,EAAO+oU,SAAS7b,WAC5B6b,SAAU/oU,EAAO+oU,WAGvB,CAKA,gBAAOb,CAAUloU,GACf,MAAM,WACJitT,EAAU,iBACV9N,EAAgB,oBAChBiD,EAAmB,sBACnB6mB,GACEjpU,EAGEtL,EAAOiqT,GADAkqB,GAAyBlC,UACR,CAC5BF,cAAexuV,GAASmqU,EAAoBnqU,YAC5CgxV,sBAAuBA,EAAsBj0V,QAGzCwlC,EAAO,CACX,CAACk1R,OAAQud,EAAYtc,UAAU,EAAOC,YAAY,GAClD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CAAClB,OAAQyP,EAAkBxO,UAAU,EAAMC,YAAY,IAGzD,OAAO,IAAImG,IAAc17T,IAAI,CAC3Bm/B,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAMA,wBAAOyzU,CAAkBnoU,GACvB,MAAM,qCACJqpU,EAAoC,sCACpCF,EAAqC,+BACrCC,EAA8B,oBAC9BhnB,EAAmB,sBACnB6mB,EAAqB,WACrBhc,GACEjtT,EAGEtL,EAAOiqT,GADAkqB,GAAyB7B,kBACR,CAC5BkC,0BAA2B,CACzBC,sCAAuClxV,GACrCkxV,EAAsClxV,YAExCmxV,+BAAgCA,EAChC3C,cAAexuV,GAASmqU,EAAoBnqU,YAC5CgxV,sBAAuBA,EAAsBj0V,SAI3CwlC,EAAO,CACX,CAACk1R,OAAQud,EAAYtc,UAAU,EAAOC,YAAY,GAClD,CAAClB,OAAQ8L,GAAqB7K,UAAU,EAAOC,YAAY,GAC3D,CACElB,OAAQ25B,EACR14B,UAAU,EACVC,YAAY,IAIhB,OAAO,IAAImG,IAAc17T,IAAI,CAC3Bm/B,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAKA,eAAO6zU,CAASvoU,GACd,MAAM,WAACitT,EAAU,2BAAEqc,EAA0B,SAAElpB,EAAQ,SAAEO,GAAY3gT,EAE/DtL,EAAOiqT,GADAkqB,GAAyBpB,SACR,CAACrnB,aAEzB5lS,EAAO,CACX,CAACk1R,OAAQud,EAAYtc,UAAU,EAAOC,YAAY,GAClD,CAAClB,OAAQiR,EAAUhQ,UAAU,EAAOC,YAAY,GAChD,CAAClB,OAAQ45B,EAA4B34B,UAAU,EAAMC,YAAY,IAGnE,OAAO,IAAImG,IAAc17T,IAAI,CAC3Bm/B,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,CAUA,mBAAOk1U,CACL5pU,EACA6pU,EACAC,GAEA,GAAI9pU,EAAOogT,SAAWypB,EAA4BC,EAChD,MAAM,IAAI3jW,MACR,6DAGJ,OAAOojW,GAAYhB,SAASvoU,EAC9B,CAKA,8BAAO+pU,CACL/pU,GAEA,MAAM,WAACitT,EAAU,2BAAEqc,EAA0B,WAAEpc,GAAcltT,EAEvDtL,EAAOiqT,GADAkqB,GAAyBW,yBAGhChvT,EAAO,CACX,CAACk1R,OAAQud,EAAYtc,UAAU,EAAOC,YAAY,GAClD,CAAClB,OAAQwd,EAAYvc,UAAU,EAAMC,YAAY,GACjD,CAAClB,OAAQ45B,EAA4B34B,UAAU,EAAMC,YAAY,IAGnE,OAAO,IAAImG,IAAc17T,IAAI,CAC3Bm/B,OACA4yR,UAAW54T,KAAK44T,UAChB14S,QAEJ,EAvNW60U,GASJn8B,UAAuB,IAAIT,GAChC,+CAVS48B,GAsBJlpB,MAAgB,WC1XZ2pB,GAAqB,IAAIr9B,GACpC,+CA2BIs9B,GAAaj4U,GAAK,CACtBjsB,KAAMuL,KACN44V,QAASr/F,GAASv5P,MAClB64V,QAASt/F,GAASv5P,MAClB84V,QAASv/F,GAASv5P,MAClB+4V,gBAAiBx/F,GAASv5P,QAMrB,MAAMg5V,GAgBXzlW,WAAAA,CAAYkoB,EAAgB41N,GAf5B,KAGA51N,SAAG,EACH,KAGA41N,UAAI,EASFnuO,KAAKuY,IAAMA,EACXvY,KAAKmuO,KAAOA,CACd,CASA,qBAAO4nH,CACL9lW,GAEA,IAAIsyB,EAAY,IAAItyB,GAEpB,GAAuB,IADAyrU,GAAsBn5S,GACnB,OAAO,KAEjC,MAAMyzU,EAA+B,GACrC,IAAK,IAAIzgW,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAM2xT,EAAY,IAAIiR,GACpBiG,GAAc77S,EAAW,EAAG01S,KAExBkE,EAAuC,IAA5BgC,GAAa57S,GAC9ByzU,EAAWxgW,KAAK,CAAC0xT,YAAWiV,YAC9B,CAEA,GAAI65B,EAAW,GAAG9uC,UAAU1iS,OAAOgxU,KAC7BQ,EAAW,GAAG75B,SAAU,CAC1B,MAAM85B,EAAe76B,KAAoBppU,OAAOjC,GAAAA,OAAOC,KAAKuyB,IACtD4rN,EAAOriN,KAAKK,MAAM8pU,GAExB,OADAC,GAAW/nH,EAAMsnH,IACV,IAAIK,GAAcE,EAAW,GAAG9uC,UAAW/4E,EACpD,CAGF,OAAO,IACT,QCnGWgoH,GAAkB,IAAIh+B,GACjC,+CAoEIi+B,GAAoBj7B,GAAAA,GAAqC,CAC7DjU,GAAiB,cACjBA,GAAiB,wBACjBiU,GAAAA,GAAgB,cAChBA,GAAAA,KACAA,GAAAA,GACEA,GAAAA,GAAoB,CAClBA,GAAAA,GAAkB,QAClBA,GAAAA,GAAiB,uBAEnBA,GAAAA,GAAoBA,GAAAA,MAAqB,GACzC,SAEFA,GAAAA,GAAgB,iBAChBA,GAAAA,GAAkB,YAClBA,GAAAA,KACAA,GAAAA,GACEA,GAAAA,GAAoB,CAClBA,GAAAA,GAAkB,SAClBjU,GAAiB,qBAEnBiU,GAAAA,GAAoBA,GAAAA,MAAqB,GACzC,oBAEFA,GAAAA,GACE,CACEA,GAAAA,GACEA,GAAAA,GAAoB,CAClBjU,GAAiB,oBACjBiU,GAAAA,GAAkB,+BAClBA,GAAAA,GAAkB,iBAEpB,GACA,OAEFA,GAAAA,GAAkB,OAClBA,GAAAA,GAAgB,YAElB,eAEFA,GAAAA,KACAA,GAAAA,GACEA,GAAAA,GAAoB,CAClBA,GAAAA,GAAkB,SAClBA,GAAAA,GAAkB,WAClBA,GAAAA,GAAkB,iBAEpBA,GAAAA,GAAoBA,GAAAA,MAAqB,GACzC,gBAEFA,GAAAA,GACE,CAACA,GAAAA,GAAkB,QAASA,GAAAA,GAAkB,cAC9C,mBAmBG,MAAMk7B,GAcXhmW,WAAAA,CAAY2rB,GAAuB,KAbnC08T,gBAAU,OACVyb,0BAAoB,OACpBrgB,gBAAU,OACViF,cAAQ,OACRud,WAAK,OACLC,sBAAgB,OAChBC,iBAAW,OACX3d,kBAAY,OACZ4d,mBAAa,EAMXz2V,KAAK04U,WAAa18T,EAAK08T,WACvB14U,KAAKm0V,qBAAuBn4U,EAAKm4U,qBACjCn0V,KAAK8zU,WAAa93T,EAAK83T,WACvB9zU,KAAK+4U,SAAW/8T,EAAK+8T,SACrB/4U,KAAKs2V,MAAQt6U,EAAKs6U,MAClBt2V,KAAKu2V,iBAAmBv6U,EAAKu6U,iBAC7Bv2V,KAAKw2V,YAAcx6U,EAAKw6U,YACxBx2V,KAAK64U,aAAe78T,EAAK68T,aACzB74U,KAAKy2V,cAAgBz6U,EAAKy6U,aAC5B,CAQA,sBAAO5rB,CACL56U,GAEA,MACMk9H,EAAKipO,GAAkBpkW,OAAOyR,GAASxT,GADvB,GAGtB,IAAI8oV,EAA0B5rN,EAAG4rN,SAKjC,OAJK5rN,EAAGupO,gBACN3d,EAAW,MAGN,IAAIsd,GAAY,CACrB3d,WAAY,IAAIvgB,GAAUhrM,EAAGurN,YAC7Byb,qBAAsB,IAAIh8B,GAAUhrM,EAAGgnO,sBACvCrgB,WAAY3mN,EAAG2mN,WACfwiB,MAAOnpO,EAAGmpO,MACVvd,WACAwd,iBAAkBppO,EAAGopO,iBAAiBx4U,IAAI44U,IAC1CH,YAAaI,GAAezpO,EAAGqpO,aAC/B3d,aAAc1rN,EAAG0rN,aACjB4d,cAAetpO,EAAGspO,eAEtB,EAGF,SAASE,GAAoBE,GAGW,IAHV,gBAC5B3C,EAAe,MACfljB,GACmB6lB,EACnB,MAAO,CACL7lB,QACAkjB,gBAAiB,IAAI/7B,GAAU+7B,GAEnC,CAEA,SAAS4C,GAAgBC,GAIK,IAJJ,iBACxBpsB,EAAgB,4BAChBqsB,EAA2B,YAC3BC,GACcF,EACd,MAAO,CACLpsB,iBAAkB,IAAIxS,GAAUwS,GAChCqsB,8BACAC,cAEJ,CAEA,SAASL,GAAcM,GAAiD,IAAhD,IAACt4V,EAAG,IAAEtJ,EAAG,QAAE8wQ,GAAqB8wF,EACtD,OAAI9wF,EACK,GAGF,IACFxnQ,EAAI7E,MAAMzE,EAAM,GAAGyoB,IAAI+4U,OACvBl4V,EAAI7E,MAAM,EAAGzE,GAAKyoB,IAAI+4U,IAE7B,CC3OA,MAAMla,GAAW,CACfl1I,KAAM,CACJyvJ,OAAQ,+BACRC,QAAS,gCACT,eAAgB,uCAElBC,MAAO,CACLF,OAAQ,gCACRC,QAAS,iCACT,eAAgB,yCAab,SAASE,GAAcC,EAAmBC,GAC/C,MAAMj/U,GAAc,IAARi/U,EAAgB,OAAS,QAErC,IAAKD,EACH,OAAO3a,GAASrkU,GAAa,OAG/B,MAAMykB,EAAM4/S,GAASrkU,GAAKg/U,GAC1B,IAAKv6T,EACH,MAAM,IAAIrrC,MAAM,WAAW4mB,cAAgBg/U,KAE7C,OAAOv6T,CACT,CCQO64I,eAAe4hL,GACpB1iF,EACAi1E,EACA0N,EAIAC,GAEA,IAAIC,EACA5sU,EAEF0sU,GACA1mW,OAAOE,UAAU2G,eAAeC,KAC9B4/V,EACA,yBAOFA,GACA1mW,OAAOE,UAAU2G,eAAeC,KAC9B4/V,EACA,eAPFE,EACEF,EACF1sU,EAAU2sU,GAYV3sU,EAAU0sU,EAIZ,MAAMluB,EAAcx+S,GAAW,CAC7By+S,cAAez+S,EAAQy+S,cACvBC,oBAAqB1+S,EAAQ0+S,qBAAuB1+S,EAAQ2+S,WAC5D5G,eAAgB/3S,EAAQ+3S,gBAGpBjhD,QAAkB/M,EAAWg1E,mBACjCC,EACAxgB,GAGIG,EAAa3+S,GAAWA,EAAQ2+S,WAChC8Z,EAAsBmU,EACxB7iF,EAAW+0D,mBAAmB8tB,EAAsBjuB,GACpD50D,EAAW+0D,mBAAmBhoD,EAAW6nD,GACvCpoS,SAAgBkiT,GAAqB7qV,MAE3C,GAAI2oC,EAAO1V,IAAK,CACd,GAAiB,MAAbi2P,EACF,MAAM,IAAI2lD,GAAqB,CAC7Bp1S,OAAQm3S,GAAaC,cAAgB,OAAS,WAC9C3nD,UAAWA,EACX4lD,mBAAoB,YAAY57S,KAAKC,UAAUwV,QAGnD,MAAM,IAAI5vC,MACR,mBAAmBmwR,aAAqBh2P,KAAKC,UAAUwV,MAE3D,CAEA,OAAOugP,CACT,CCtFO,MAAM+1E,GAAmB,ICgGhC,SAlHA,SAAeh9V,GACb,GAAIA,EAAS1K,QAAU,IAAO,MAAM,IAAIN,UAAU,qBAClD,MAAMiL,EAAW,IAAIlL,WAAW,KAChC,IAAK,IAAImL,EAAI,EAAGA,EAAID,EAAS3K,OAAQ4K,IACnCD,EAASC,GAAK,IAEhB,IAAK,IAAIxF,EAAI,EAAGA,EAAIsF,EAAS1K,OAAQoF,IAAK,CACxC,MAAMyF,EAAIH,EAASI,OAAO1F,GACpB2F,EAAKF,EAAEG,WAAW,GACxB,GAAqB,MAAjBL,EAASI,GAAe,MAAM,IAAIrL,UAAUmL,EAAI,iBACpDF,EAASI,GAAM3F,CACjB,CACA,MAAM6F,EAAOP,EAAS1K,OAChBkL,EAASR,EAASI,OAAO,GACzBK,EAASpJ,KAAKqJ,IAAIH,GAAQlJ,KAAKqJ,IAAI,KACnCC,EAAUtJ,KAAKqJ,IAAI,KAAOrJ,KAAKqJ,IAAIH,GA8CzC,SAASK,EAAcC,GACrB,GAAsB,kBAAXA,EAAuB,MAAM,IAAI7L,UAAU,mBACtD,GAAsB,IAAlB6L,EAAOvL,OAAgB,OAAO,IAAIP,WACtC,IAAIgM,EAAM,EAENC,EAAS,EACT1L,EAAS,EACb,KAAOuL,EAAOE,KAASP,GACrBQ,IACAD,IAGF,MAAME,GAAUJ,EAAOvL,OAASyL,GAAON,EAAU,IAAO,EAClDS,EAAO,IAAInM,WAAWkM,GAE5B,KAAOJ,EAAOE,IAAM,CAElB,IAAII,EAAQlB,EAASY,EAAOP,WAAWS,IAEvC,GAAc,MAAVI,EAAiB,OACrB,IAAIzG,EAAI,EACR,IAAK,IAAI0G,EAAMH,EAAO,GAAc,IAAVE,GAAezG,EAAIpF,KAAqB,IAAT8L,EAAaA,IAAO1G,IAC3EyG,GAAUZ,EAAOW,EAAKE,KAAU,EAChCF,EAAKE,GAAQD,EAAQ,MAAS,EAC9BA,EAASA,EAAQ,MAAS,EAE5B,GAAc,IAAVA,EAAe,MAAM,IAAIrK,MAAM,kBACnCxB,EAASoF,EACTqG,GACF,CAEA,IAAIM,EAAMJ,EAAO3L,EACjB,KAAO+L,IAAQJ,GAAsB,IAAdC,EAAKG,IAC1BA,IAEF,MAAMC,EAAM,IAAIvM,WAAWiM,GAAUC,EAAOI,IAC5C,IAAInB,EAAIc,EACR,KAAOK,IAAQJ,GACbK,EAAIpB,KAAOgB,EAAKG,KAElB,OAAOC,CACT,CAMA,MAAO,CACL/J,OA7FF,SAAiBsJ,GAOf,GALIA,aAAkB9L,aAAyB2vB,YAAYC,OAAO9jB,GAChEA,EAAS,IAAI9L,WAAW8L,EAAOzL,OAAQyL,EAAOxL,WAAYwL,EAAOsB,YACxDjH,MAAMC,QAAQ0F,KACvBA,EAAS9L,WAAWI,KAAK0L,OAErBA,aAAkB9L,YAAe,MAAM,IAAIC,UAAU,uBAC3D,GAAsB,IAAlB6L,EAAOvL,OAAgB,MAAO,GAElC,IAAI0L,EAAS,EACT1L,EAAS,EACToM,EAAS,EACb,MAAMC,EAAOd,EAAOvL,OACpB,KAAOoM,IAAWC,GAA2B,IAAnBd,EAAOa,IAC/BA,IACAV,IAGF,MAAMC,GAASU,EAAOD,GAAUf,EAAU,IAAO,EAC3CiB,EAAM,IAAI7M,WAAWkM,GAE3B,KAAOS,IAAWC,GAAM,CACtB,IAAIR,EAAQN,EAAOa,GAEfhH,EAAI,EACR,IAAK,IAAImH,EAAMZ,EAAO,GAAc,IAAVE,GAAezG,EAAIpF,KAAqB,IAATuM,EAAaA,IAAOnH,IAC3EyG,GAAU,IAAMS,EAAIC,KAAU,EAC9BD,EAAIC,GAAQV,EAAQZ,IAAU,EAC9BY,EAASA,EAAQZ,IAAU,EAE7B,GAAc,IAAVY,EAAe,MAAM,IAAIrK,MAAM,kBACnCxB,EAASoF,EACTgH,GACF,CAEA,IAAII,EAAMb,EAAO3L,EACjB,KAAOwM,IAAQb,GAAqB,IAAbW,EAAIE,IACzBA,IAGF,IAAIC,EAAMvB,EAAOwB,OAAOhB,GACxB,KAAOc,EAAMb,IAAQa,EAAOC,GAAO/B,EAASI,OAAOwB,EAAIE,IACvD,OAAOC,CACT,EAkDEnB,eACAzJ,OARF,SAAiB8K,GACf,MAAM7M,EAASwL,EAAaqB,GAC5B,GAAI7M,EAAU,OAAOA,EACrB,MAAM,IAAI0B,MAAM,WAAayJ,EAAO,aACtC,EAMF,ECpHA,SAAe2B,GADA,8DCcf,ICfYk0M,GDeN6mJ,GAAwCC,EACxCC,GAA4CC,8DChBlD,SAAYhnJ,GACVA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,SACD,CALD,CAAYA,KAAAA,GAAQ,KCWpB,ICoBKinJ,MDpBLC,GAAA,WAIE,SAAAA,EAAY58J,GACV,KAAKA,IAAS,OAAHA,QAAG,IAAHA,EAAAA,EAAO,OACD,SAAb,KAAKA,IAAgB,KAAKv+J,IAAM,4BACd,UAAb,KAAKu+J,IAAiB,KAAKv+J,IAAM,wBACrC,KAAKA,IAAM,eAAAviB,OAAe,KAAK8gL,IAAG,iBACzC,CA2SF,OAzSQ48J,EAAAjnW,UAAAknW,kBAAN,SAAwBC,wEACtB,SAAOnkQ,MAAM,KAAKl3D,IAAM,kBAAAviB,OAAkB49U,IACvCxhP,MAAK,SAAA7qF,GAAY,OAAAA,EAAS4jJ,MAAT,IACjB/4D,MACC,SAAC+4D,GAGA,IAAAlhJ,EAAK,OAAkB,QAAlBA,EAAAkhJ,EAAK0oL,qBAAa,IAAA5pU,OAAA,EAAAA,EAAE6pU,iBAAkB3oL,EAAK2oL,cAAc,IAEhEltN,OAAM,SAAAl1I,GACL0tB,QAAQlG,MAAMxnB,EAEhB,YAGGgiW,EAAAK,mBAAP,SAA0Bj9J,GACxB,OAAKA,GAAe,SAARA,EACA,UAARA,EAAwB,wBAErB,WAAA9gL,OAAW8gL,EAAG,kBAHc,uBAIrC,EAEO48J,EAAAM,kBAAP,SAAyBl9J,GACvB,OAAKA,GAAe,SAARA,EACA,UAARA,EAAwB,wBAErB,eAAA9gL,OAAe8gL,EAAG,kBAHU,2BAIrC,EAEO48J,EAAAO,eAAP,SAAsBhqU,SACpBiqU,EAAYjqU,EAAAiqU,aACZC,EAAUlqU,EAAAkqU,WACVlvL,EAAKh7I,EAAAg7I,MACLmvL,EAAWnqU,EAAAmqU,YACXt9J,EAAG7sK,EAAA6sK,IACHu9J,EAAQpqU,EAAAoqU,SACR1+F,EAAW1rO,EAAA0rO,YACXrmO,EAAArF,EAAAqqU,WAAAA,OAAU,IAAAhlU,EAAG,SAAQA,EACrBilU,EAAWtqU,EAAAsqU,YACXn1N,EAAKn1G,EAAAm1G,MACLo1N,EAAgBvqU,EAAAuqU,iBAChBC,EAAkBxqU,EAAAwqU,mBAClBC,EAAuBzqU,EAAAyqU,wBACvBC,EAAiB1qU,EAAA0qU,kBACjBC,EAAW3qU,EAAA2qU,YACXC,EAAwB5qU,EAAA4qU,yBACxBC,EAAW7qU,EAAA6qU,YACXv+T,EAAKtM,EAAAsM,MACLw+T,EAAI9qU,EAAA8qU,KACJC,EAAgB/qU,EAAA+qU,iBAChBh8L,EAAM/uI,EAAA+uI,OACNi8L,EAAQhrU,EAAAgrU,SACRC,EAAejrU,EAAAirU,gBACfC,EAAgBlrU,EAAAkrU,iBAChBC,EAAYnrU,EAAAmrU,aACZC,EAAcprU,EAAAorU,eACdC,EAAUrrU,EAAAqrU,WACVC,EAAkBtrU,EAAAsrU,mBAClB/pK,EAAKvhK,EAAAuhK,MACLgqK,EAASvrU,EAAAurU,UACTC,EAAiBxrU,EAAAwrU,kBACjBC,EAAQzrU,EAAAyrU,SACRC,EAAQ1rU,EAAA0rU,SACRC,EAAQ3rU,EAAA2rU,SACRC,EAAO5rU,EAAA4rU,QACPC,EAA0B7rU,EAAA6rU,2BAC1BC,EAAY9rU,EAAA8rU,aACZC,EAAkB/rU,EAAA+rU,mBAEZ5yS,EAASgxS,EACX,IAAAp+U,OAAIo+U,EAAW,KAAAp+U,OAAIs+U,GACnB,IAAAt+U,OAAIs+U,GACF/7T,EAAM,IAAIC,IAAI4qB,EAAS6hH,EAAOyuL,EAAcK,mBAAmBj9J,IAqFrE,GAnFIo9J,GAAc37T,EAAIwjJ,aAAar7I,OAAO,SAAUwzT,GAChDC,GAAY57T,EAAIwjJ,aAAar7I,OAAO,aAAcyzT,GAElDx+F,GACFp9N,EAAIwjJ,aAAar7I,OAAO,cAAei1N,GAGrC0+F,IACE,UAAWA,GACb97T,EAAIwjJ,aAAar7I,OAAO,QAAS2zT,EAAS4B,MAAMxgW,YAC5C,aAAc4+V,EAChB97T,EAAIwjJ,aAAar7I,OAAO,WAAY2zT,EAASl/G,SAAS1/O,YAEtD8iC,EAAIwjJ,aAAar7I,OAAO,WAAY8rK,GAASw5C,OAG/CztN,EAAIwjJ,aAAar7I,OAAO,QAAS2zT,EAASxtC,QAAQpxT,YAClD8iC,EAAIwjJ,aAAar7I,OAAO,SAAU2zT,EAASttS,OAAOtxD,cAIlD8+V,GACFh8T,EAAIwjJ,aAAar7I,OACf,cACA+lE,KAAAA,8BAAuCp/E,KAAKC,UAAUitU,KAItD/oK,GACFjzJ,EAAIwjJ,aAAar7I,OACf,QACA+lE,KAAAA,8BAAuCp/E,KAAKC,UAAUkkK,KAItD4pK,GACF78T,EAAIwjJ,aAAar7I,OACf,eACA+lE,KAAAA,8BAAuCp/E,KAAKC,UAAU8tU,KAItDh2N,GACF7mG,EAAIwjJ,aAAar7I,OAAO,QAAS0+F,GAE/B22N,GAAcx9T,EAAIwjJ,aAAar7I,OAAO,eAAgBq1T,GAEtD/8L,GACFzgI,EAAIwjJ,aAAar7I,OAAO,SAAUs4H,EAAOvjK,YAGvC++V,GACFj8T,EAAIwjJ,aAAar7I,OAAO,mBAAoB8zT,GAG1CC,GACFl8T,EAAIwjJ,aAAar7I,OAAO,kBAAmB,QAGzCg0T,GACFn8T,EAAIwjJ,aAAar7I,OACf,0BACAg0T,GAIAC,GACFp8T,EAAIwjJ,aAAar7I,OACf,oBACA+lE,KAAAA,8BACEp/E,KAAKC,UAAUqtU,KAIjBC,GAAar8T,EAAIwjJ,aAAar7I,OAAO,cAAek0T,GAEpDC,GACFt8T,EAAIwjJ,aAAar7I,OACf,2BACA+lE,KAAAA,8BACEp/E,KAAKC,UAAUutU,KAGjBc,EACFp9T,EAAIwjJ,aAAar7I,OAAO,WAAYi1T,QAEpC,GAAsB,qBAAX95V,OAAwB,CAGjC,IAAMq6V,EAA2B,QAAhB7mU,EAAM,OAANxzB,aAAM,IAANA,YAAM,EAANA,OAAQs6V,gBAAQ,IAAA9mU,OAAA,EAAAA,EAAE+mU,cAC/BF,GAAU39T,EAAIwjJ,aAAar7I,OAAO,WAAYw1T,EACpD,CAyCF,OAtCIpB,GAAav8T,EAAIwjJ,aAAar7I,OAAO,cAAeo0T,GACpDv+T,GAAOgC,EAAIwjJ,aAAar7I,OAAO,QAASnK,GACxCw+T,GAAMx8T,EAAIwjJ,aAAar7I,OAAO,OAAQq0T,EAAK5tB,SAAS1xU,YACpD8/V,GACFh9T,EAAIwjJ,aAAar7I,OACf,qBACA60T,EAAmBpuB,SAAS1xU,YAE5Bu/V,GAAkBz8T,EAAIwjJ,aAAar7I,OAAO,mBAAoB,QAC9Du0T,GAAU18T,EAAIwjJ,aAAar7I,OAAO,WAAYu0T,GAE9CC,GAAiB38T,EAAIwjJ,aAAar7I,OAAO,kBAAmB,QAC5Dy0T,GAAkB58T,EAAIwjJ,aAAar7I,OAAO,mBAAoB,QAC9D20T,GACF98T,EAAIwjJ,aAAar7I,OAAO,iBAAkB20T,GAExCC,GAAY/8T,EAAIwjJ,aAAar7I,OAAO,aAAc,SAEpC,IAAd80T,GAAqBj9T,EAAIwjJ,aAAar7I,OAAO,YAAa,SAC1D+0T,GACFl9T,EAAIwjJ,aAAar7I,OAAO,oBAAqB+0T,IAC9B,IAAbC,GAAmBn9T,EAAIwjJ,aAAar7I,OAAO,WAAY,QACvDk1T,GAAUr9T,EAAIwjJ,aAAar7I,OAAO,WAAYk1T,GAC9CC,GACFt9T,EAAIwjJ,aAAar7I,OACf,UACA+lE,KAAAA,8BAAuCp/E,KAAKC,UAAUuuU,KAGtDC,GACFv9T,EAAIwjJ,aAAar7I,OACf,6BACAo1T,GAGAE,GACFz9T,EAAIwjJ,aAAar7I,OAAO,qBAAsBs1T,GAEzCz9T,EAAI9iC,UACb,EAEOi+V,EAAAjwB,eAAP,SAAsBz7S,GACpB,GAAKA,EAAMssU,WAEX,OAAO,KAAK+B,aAAuCruU,EAAMssU,WAAY,CACnEgC,OAAQ,WACN,GAAM,gBAAiBtuU,EAAvB,CACO,IAAA2tO,EAAe3tO,EAAK2tO,YAC3B,IAAK09F,GACH,MAAM,IAAInmW,MAAM,qDAClB,IAAKqmW,GAAQ,MAAM,IAAIrmW,MAAM,0CAC7B,GAAKyoQ,EACL,OAAO49F,GAAO5lW,OACXgoQ,EAAmDjhP,UAAU,CAC5DgsT,sBAAsB,EACtBD,kBAAkB,IATyB,CAYjD,EACA81B,QAAS,WACP,GAAM,gBAAiBvuU,EAAvB,CACO,IAAA2tO,EAAe3tO,EAAK2tO,YAC3B,OAAOlvJ,KAAAA,8BACLp/E,KAAKC,UAAUquO,GAH8B,CAKjD,EACA6gG,IAAK,WACH,GAAM,gBAAiBxuU,EAAvB,CACO,IAAA2tO,EAAe3tO,EAAK2tO,YAC3B,OAAOlvJ,KAAAA,8BACLp/E,KAAKC,UAAUquO,GAH8B,CAKjD,EACAv6P,KAAM,WACJ,GAAM,gBAAiB4sB,EAAvB,CACO,IAAA2tO,EAAe3tO,EAAK2tO,YAC3B,OAAOlvJ,KAAAA,8BACLp/E,KAAKC,UAAUquO,GAH8B,CAKjD,EACA8gG,SAAU,WACR,GAAM,gBAAiBzuU,EAAvB,CACO,IAAA2tO,EAAe3tO,EAAK2tO,YAC3B,OAAOlvJ,KAAAA,8BACLp/E,KAAKC,UAAUquO,GAH8B,CAKjD,EACA+gG,KAAM,WACJ,GAAM,WAAY1uU,EAAlB,CACO,IAAA4F,EAAU5F,EAAK4F,OACtB,OAAO64E,KAAAA,8BAAuCp/E,KAAKC,UAAUsG,GAFnB,CAG5C,EACA6mN,KAAM,WAEN,GAlDK,EAoDT,EAEOi/G,EAAA2C,aAAP,SACE/B,EACA/8U,GAUA,OAAQ+8U,GACN,IAAK,SACH,OAAO/8U,EAAK++U,OACd,IAAK,OACH,OAAO/+U,EAAKm/U,KACd,IAAK,UACH,OAAOn/U,EAAKg/U,QACd,IAAK,MACH,OAAOh/U,EAAKi/U,IACd,IAAK,OACH,OAAOj/U,EAAKnc,KACd,IAAK,WACH,OAAOmc,EAAKk/U,SACd,IAAK,OACH,OAAOl/U,EAAKk9N,KACd,QACE,MAAM,IAAIvnP,MAAM,6BAEtB,EACFwmW,CAAA,CApTA,GCmGM,SAAUiD,GACd3uU,GAEA,IAAIo9K,EACAwxJ,EAeJ,MAbE,WAAY5uU,GACY,kBAAjBA,EAAMm4S,QACbn4S,EAAMm4S,QACN,eAAgBn4S,EAAMm4S,QACtB,WAAYn4S,EAAMm4S,QAElB/6H,EAAQp9K,EAAMm4S,OAAOm0B,WACrBsC,EAAS5uU,EAAMm4S,OAAOy2B,QACb,eAAgB5uU,GAASA,EAAMssU,aACxClvJ,EAAQp9K,EAAMssU,WACdsC,EAAS5uU,EAAM4uU,QAGZxxJ,EAeEsuJ,GAAc2C,aAAajxJ,EAAO,CACvCkxJ,OAAQ,WACN,OAiCN,SAAiCrsU,GAAjC,IAAA4xL,EAAA,KACE+6I,EAAM3sU,EAAA2sU,OACNC,EAAS5sU,EAAA4sU,UAKT,MAAO,CACLC,sBAAuB,SAAOnhG,GAAmB,OAAAx/I,GAAA0lG,OAAA,8EAExC,OADDv8J,EAAKy3S,GAAqBphG,GACzB,GAAMihG,EAAOxxB,gBAAgB9lR,WAApC,SAAOr1B,EAAA+lF,gBAETgnP,kBAAmB,SAAOxhV,GAAe,OAAA2gG,GAAA0lG,OAAA,gFAEvC,KADMo7I,EAAcL,EAAOK,aAEzB,MAAM,IAAI/pW,MAAM,+CAGI,SAAM+pW,GAC1B,IAAIp9L,aAAclsK,OAAO6nB,YAE3B,GAHM0hV,EAAgBjtU,EAAA+lF,QAGjBujP,GAAQ,MAAM,IAAIrmW,MAAM,+BAC7B,SAAOqmW,GAAO5lW,OAAOupW,YAEvBC,sBAAuB,SAAOxhG,GAAmB,OAAAx/I,GAAA0lG,OAAA,kFAE/C,KADMu7I,EAAkBR,EAAOQ,iBAE7B,MAAM,IAAIlqW,MAAM,mDAGQ,OADpBoyD,EAAKy3S,GAAqBphG,GACN,GAAMyhG,EAAgB93S,WAChD,GADM+3S,EAAoBptU,EAAA+lF,QACrBujP,GAAQ,MAAM,IAAIrmW,MAAM,+BAC7B,SAAOqmW,GAAO5lW,OACZ0pW,EAAkB3iV,UAAU,CAC1BgsT,sBAAsB,EACtBD,kBAAkB,cAIxBo2B,UAASA,EAEb,CA1EMS,CAAwB,CACtBV,OAAQA,EACRC,UAAW7uU,EAAM6uU,WAFnB,EAIFH,KAAM,WACJ,OA0FN,SAA+BzsU,GAA/B,IAAA4xL,EAAA,KACE+6I,EAAM3sU,EAAA2sU,OACNC,EAAS5sU,EAAA4sU,UAKT,MAAO,CACLC,sBAAuB,SAAOnhG,GAAmB,OAAAx/I,GAAA0lG,OAAA,gFAEtB,OADnBjuL,EAASvG,KAAKK,MAAMp8B,OAAOC,KAAKoqQ,EAAa,UAAUlgQ,YACpC,GAAMmhW,EAAOW,uBAAuB3pU,WAC7D,KADM4pU,EAAmBvtU,EAAA+lF,QACF,MAAM,IAAI9iH,MAAM,4BAEvC,SADyCsqW,EAAgB7hG,YAChC9yF,cAE3Bg0L,UAASA,EAEb,CA3GMY,CAAsB,CACpBb,OAAQA,EACRC,UAAW7uU,EAAM6uU,WAFnB,EAIFL,IAAK,WACH,OAAAkB,GAAqB,CACnBd,OAAQA,EACRC,UAAW7uU,EAAM6uU,WAFnB,EAIFN,QAAS,WACP,OAAAmB,GAAqB,CACnBd,OAAQA,EACRC,UAAW7uU,EAAM6uU,WAFnB,EAIFz7V,KAAM,WACJ,OAAAs8V,GAAqB,CACnBd,OAAQA,EACRC,UAAW7uU,EAAM6uU,WAFnB,EAIFJ,SAAU,WACR,OAAAiB,GAAqB,CACnBd,OAAQA,EACRC,UAAW7uU,EAAM6uU,WAFnB,EAIFpiH,KAAM,WAAM,OAyGhB,SAA+BxqN,GAA/B,IAAA4xL,EAAA,KACEg7I,EAAS5sU,EAAA4sU,UAKT,MAAO,CACLC,sBAAuB,kBAAA3gP,GAAA0lG,OAAA,iDACrB,SAAO7tG,QAAQ24B,QAAQ,YAEzBkwN,UAASA,EAEb,CArHgBc,CAAsB3vU,EAAtB,GA/BP0rU,GAdE,CACLoD,sBAAuB,WACrB,MAAM,IAAI5pW,MAAM,wCAClB,EACA8pW,kBAAmB,WACjB,MAAM,IAAI9pW,MAAM,wCAClB,EACAiqW,sBAAuB,WACrB,MAAM,IAAIjqW,MAAM,wCAClB,EACA2pW,UAAW7uU,EAAM6uU,UAqCvB,CA6CA,SAASE,GACPt7U,GAEA,IAAK43U,GACH,MAAM,IAAInmW,MACR,oFAGJ,IAAKqmW,GACH,MAAM,IAAIrmW,MACR,8DAGJ,IAAM0qW,EAAmBrE,GAAOhmW,OAAOkuB,GACjCo8U,EAAMxE,GAAKxxB,qBAAqBptT,YAAYmjV,GAClD,MAAoB,WAAhBC,EAAIlxU,QAA6B0sU,GAAKv1B,YAAYvyU,KAAKqsW,GACpDC,CACT,CAqBA,SAASH,GAAqBztU,GAA9B,IAAA4xL,EAAA,KACE+6I,EAAM3sU,EAAA2sU,OAMN,MAAO,CACLE,sBAAuB,SAAOnhG,GAAmB,OAAAx/I,GAAA0lG,OAAA,8EAEhC,OADTv8J,EAAKj4B,KAAKK,MAAMp8B,OAAOC,KAAKoqQ,EAAa,UAAUlgQ,YAC1C,GAAMmhW,EAAOxxB,gBAAgB9lR,WAC5C,SADer1B,EAAA+lF,OAAgC6yD,cAGjDm0L,kBAAmB,SAAOxhV,GAAe,OAAA2gG,GAAA0lG,OAAA,iDACvC,SAAO+6I,EAAOK,YAAYzhV,WAE5BqhV,UAdO5sU,EAAA4sU,UAgBX,EAvPA,SAAKpD,GACHA,EAAA,0BACAA,EAAA,kCACAA,EAAA,kCACAA,EAAA,4BACAA,EAAA,kBACAA,EAAA,eACD,CAPD,CAAKA,KAAAA,GAAoB,KC1BlB,IAAMqE,GAA4B,oBAC5BC,GAAwB,iBAKxBC,KAAiB/tU,GAAA,IAC3BglR,GAASgpD,MAAO,OACjBhuU,GAACglR,GAASipD,YAAa,aACvBjuU,GAACglR,GAASkpD,MAAO,kBACjBluU,GAACglR,GAASmpD,UAAW,WAAU,IC2B3B,SAAgBC,GACpB9gV,yFAGA,OADO4hJ,EAAuB5hJ,EAAI4hJ,MAApB08L,EAAgBt+U,EAAIs+U,QAAX/+J,EAAOv/K,EAAIu/K,IAClC,GAAO,IAAI9oF,SAAQ,SAAC24B,EAASu2B,GAC3BztE,MAAM,IAAIikQ,GAAc58J,GAAKv+J,IAAM,sCAAuC,CACxEzR,OAAQ,OACR2sJ,QAAS,CACP,eAAgB,oBAElB3pI,KAAMziB,KAAKC,UAAU,CACnBuuU,QAAOA,EACP18L,MAAKA,EACLy6L,WAAY,eAAgBr8U,EAAOA,EAAKq8U,gBAAatmW,EACrDgrW,YAAa,gBAAiB/gV,EAAOA,EAAK+gV,iBAAchrW,MAGzD8kH,MAAK,SAAMzyG,GAAG,OAAAw2G,GAAA0lG,OAAA,8EACJ,OAAT5xL,EAAA08G,EAAS,GAAMhnI,EAAIwrK,sBAAnBlhJ,EAAAxS,WAAA,GAAS4X,EAAA2gF,uBAEV42B,OAAM,SAAAl1I,GAAK,OAAAwrK,EAAOxrK,EAAP,GAChB,WAGI,SAAU6mW,GAAoBtuU,OAClC6sK,EAAG7sK,EAAA6sK,IACH0hK,EAAsBvuU,EAAAuuU,uBAKhBC,EAAc,iBAChBrqU,SAASyuI,KAAKoD,cAAc,IAAAjqJ,OAAIyiV,KAClCD,GAAuB,GAGzB,IAAME,EAAetqU,SAAS9B,cAAc,UAC5CosU,EAAa9qW,IACH,SAARkpM,EACI,kDACA,uDACN4hK,EAAa1xU,GAAKyxU,EAElBrqU,SAASyuI,KAAKl8H,YAAY+3T,GAE1BtqU,SAASmxC,eAAek5R,GAAcxsU,iBAAiB,QAAQ,WAC7D7M,QAAQtoB,IAAI,wCACZ0hW,GAAuB,EACzB,GACF,CAEA,SAASG,GAAW1uU,GAApB,IAAA4xL,EAAA,KACE+nF,EAAM35Q,EAAA25Q,OACNg1D,EAAc3uU,EAAA2uU,eACdC,EAAS5uU,EAAA4uU,UA6CT,OAxBAj1D,EAAOh7I,GAAG,UAAU,WAAM,OAAAgwM,OAAetrW,EAAf,IAC1Bs2S,EAAOh7I,GAAG,aAAa,WAAM,OAAAgwM,OAAetrW,EAAf,IAE7Bs2S,EAAOh7I,GAAG,QAAQ,WAChBpiH,YAAW,WAAM,OAAAqyT,GAAU,EAAV,GAAiB,KAClC,IAAM14M,EAA+B/xH,SAAS6xI,cAC5C,gCAEE9f,IAEFA,EAAG24M,UAAY,KAEnB,IAEAl1D,EAAOh7I,GAAG,SAAS,WACjBg7I,EAAO/gK,OACT,IACA+gK,EAAOh7I,GAAG,YAAY,WACpBg7I,EAAOm1D,UACT,IAEAF,GAAU,GACVj1D,EAAOpnQ,OAEP05E,GAAAA,GAAA,GAAW0tL,GAAM,CAAEo1D,SAvCF,kBAAA7iP,GAAA0lG,OAAA,wEAER,OADP+nF,EAAOo1D,WACA,GAAM,IAAIhrP,SAA8B,SAAC24B,EAASu2B,GACvD0mI,EAAOh7I,GAAG,YAAY,SAACntI,GACrBm9U,EAAen9U,EAAK09I,OACpBxyB,EAAQlrH,EACV,IACAmoR,EAAOh7I,GAAG,YAAY,SAACntI,KAEFA,EAAK4sQ,UAA+B,IAApB5sQ,EAAKw9U,aACzB/7L,EAAOzhJ,EACxB,GACF,YAVA,SAAOwO,EAAA+lF,iBAsCX,CAEM,SAAgBkpP,GACpB3hV,uGAGO,OADA4hJ,EAAmB5hJ,EAAI4hJ,MAAhBggM,EAAY5hV,EAAI4hV,SACvB,GAAMC,GAAarB,GAAuBxgV,EAAM,CACrD8hV,SAAS,EACTC,KAAK,EACLC,eAAgBxB,GAChBjzM,YAAa,MACbqU,MAAKA,EACLggM,SAAUnB,GAAkBmB,aAN9B,SAAOlvU,EAAA+lF,eAUH,SAAgBwpP,GACpBjiV,+FAEO,SAAM6hV,GAAatB,GAA2BvgV,EAAM,CACzD+hV,KAAK,EACLC,eAAgBxB,GAChB0B,eAAgB,gBAHlB,SAAOxvU,EAAA+lF,eAOH,SAAgB0pP,GACpBniV,+FAEO,SAAM6hV,GAAatB,GAA2BvgV,EAAM,CAAC+hV,KAAK,YAAjE,SAAOrvU,EAAA+lF,eAGT,SAAeopP,GACbpyU,EACAzP,EACAoiV,qHAIA,OAFOC,EACLriV,EAAIqiV,oBADsB3+I,EAC1B1jM,EAAI0jM,IAD2B59F,EAC/B9lG,EAAI8lG,MADkC3pD,EACtCn8C,EAAIm8C,KADwCklS,EAC5CrhV,EAAIqhV,eADwDC,EAC5DthV,EAAIshV,UACDe,GAA0C,qBAAZC,QAMd,GAAMxB,GAAeniP,GAAAA,GAAA,GACrC3+F,GAAI,CACP4hJ,MAAOwgM,EAAgBxgM,WAPvB/5I,QAAQ04C,KACN,mHAEF,YAkBF,OAhBMgiS,EAAe7vU,EAAA+lF,OAIdrhD,EAeT,SAAmBhmD,aACXsyM,EAAM5zL,KAAKK,MAAM/e,GACjBgmD,EAAS,CACbvzD,KAAM2+V,GAAyB9+I,EAAI7/M,MACnCynI,MAAOk3N,GAAyB9+I,EAAIp4E,OACpC3pH,MAAO6gV,GAAyB9+I,EAAI/hM,OACpC4rI,YAAai1M,GAAyB9+I,EAAIn2D,aAC1Cw0M,IAAK,CACHl+V,KAAM2+V,GAAgC,QAAP9vU,EAAAgxL,EAAIq+I,WAAG,IAAArvU,OAAA,EAAAA,EAAE7uB,MACxCynI,MAAOk3N,GAAgC,QAAP1qU,EAAA4rL,EAAIq+I,WAAG,IAAAjqU,OAAA,EAAAA,EAAEwzG,OACzC3pH,MAAO6gV,GAAgC,QAAPzqU,EAAA2rL,EAAIq+I,WAAG,IAAAhqU,OAAA,EAAAA,EAAEpW,OACzC4rI,YAAai1M,GAA4B,OAAH9+I,QAAG,IAAHA,OAAG,EAAHA,EAAKn2D,eAI/C,MAAO,CAACn2F,OAAMA,EAChB,CA/BmBqrS,CAAU/+I,GAAItsJ,OACzBtjC,EAAM6qF,GAAAA,GAAAA,GAAA,GACP4jP,GAAY,CACfh1M,YAAa,sBACbm1M,oBAAoB,EACpBtrS,OAAMA,EACN+E,KAAIA,EACJ2pD,MAAY,OAALA,QAAK,IAALA,GAAAA,IACJs8O,GAIL,GAAOhB,GAAW,CAAC/0D,OAF+Bi2D,QAAQj3D,OAAO57Q,EAAIqE,GAE1CutU,eAAcA,EAAEC,UAASA,YAqBtD,SAASkB,GACPG,GAEA,IAAKA,EAAM,MAAO,GAClB,GAAoB,kBAATA,EAAmB,OAAOA,EAGrC,IADA,IAAI/hW,EAAM,cACE2b,EAAK3f,GACf,IAAIX,EAAM,GACVsgB,EAAI3kB,MAAM,IAAI6pB,SAAQ,SAAA7J,GAChBA,EAAGqJ,gBAAkBrJ,EACvB3b,GAAO,IAAM2b,EAAG8M,cAEhBzoB,GAAO2b,CAEX,IACAhX,GAAO3E,EAAM,IAAMW,EAAQ,KATFw2E,EAAA,EAAA1gD,EAAA19B,OAAOg4J,QAAQ21M,GAAfvvR,EAAA1gD,EAAAv+B,OAAAi/E,IAAoB,CAApC,IAAAt7C,EAAApF,EAAA0gD,KAAIt7C,EAAA,GAAOA,EAAA,IAWtB,OAAOl3B,CACT,CCzNO,IAAMgiW,IAAiBv1M,EAAAA,EAAAA,aAC5B,SAAC58H,EAAoDuE,GACnD,IAAM6tU,GAAYtwU,EAAAA,EAAAA,QAAiC,MAE7CyO,GAAMu6G,EAAAA,EAAAA,UAAQ,WAClB,OAAO4gN,GAAcO,eAAejsU,EACtC,GAAG,CAACA,IAEEqyU,GAAc5nN,EAAAA,EAAAA,cAAY,SAACj9H,SAC/B,KAAuB,QAAlByU,EAAS,OAATmwU,QAAS,IAATA,OAAS,EAATA,EAAWnnV,eAAO,IAAAgX,OAAA,EAAAA,EAAEo3G,eACvB,MAAM,IAAIn0I,MAAM,sBAClBktW,EAAUnnV,QAAQouH,cAAcppG,YAAYziB,EAAS,IACvD,GAAG,KAEHm9H,EAAAA,EAAAA,qBAA6DpmH,GAAK,WAAM,MAAC,CACjE+tU,iBAAgB,SACpBC,8EAGA,SAAO,IAAIvsP,SAAgB,SAAC24B,EAASu2B,GAcnC,GAbApxI,EAAU,SAAC7B,OAACxO,EAAIwO,EAAAxO,KAAQwO,EAAAyT,OACVrd,SAASqzU,GAAcK,mBAAmB/rU,EAAM8uK,QAGxDr7K,EAAKmrJ,WAAW,SAClB1J,EAAO,IAAIhwK,MAAMuuB,EAAK3e,QAAQ,QAAS,MAIpCy9V,EAAgB9+U,IACrBkrH,EAAQlrH,GACV,GAEK5f,OAAQ,MAAM,IAAI3O,MAAM,sBAC7B2O,OAAOowB,iBAAiB,UAAWH,EACrC,IAAGu9J,SAAQ,WACTxtL,OAAOqwB,oBAAoB,UAAWJ,EACxC,YAGI0uU,sBAAqB,SACzBhlV,EACA+kV,wEAGA,OADAF,EAAY7kV,GACZ,GAAO,KAAK8kV,iBAAiBC,WA/BuC,IAmCxE,IAAME,GAAuBhoN,EAAAA,EAAAA,cAC3B,SAACxoH,OAACxO,EAAIwO,EAAAxO,KACJ,GADYwO,EAAAyT,OACArd,SAASqzU,GAAcK,mBAAmB/rU,EAAM8uK,MAA5D,CAGA,IAAM75B,EHTR,SACJy9L,EACAlyM,GAEA,IAAImyM,EACJ,IAEE,KAAM,WADNA,EAAatzU,KAAKK,MAAMgzU,QACW,SAAUC,GAAa,MAC5D,CAAE,MAAOjpW,IAEP,YADA0tB,QAAQlG,MAAM,iCAAkCxnB,GAElD,CAEO,IAAA+pB,EAAgBk/U,EAAUl/U,KAApBqL,EAAU6zU,EAAU7zU,OACjC,OAAQA,GACN,KAAK2sU,GAAqBmH,YACxB,IAAKpyM,EAASwuM,kBAAmB,OACjC,OAAOxuM,EAASwuM,kBAAkBv7U,GACpC,KAAKg4U,GAAqBoH,gBACxB,IAAKryM,EAAS2uM,sBAAuB,OACrC,OAAO3uM,EAAS2uM,sBAAsB17U,GACxC,KAAKg4U,GAAqBqH,gBACxB,OAAOtyM,EAASsuM,sBAAsBr7U,GACxC,KAAKg4U,GAAqBsH,aACxB,IAAKvyM,EAASisM,mBAAoB,OAClC,OAAOjsM,EAASisM,mBAAmBh5U,GACrC,KAAKg4U,GAAqBuH,QACxB,IAAKxyM,EAASquM,UAAW,OAEzB,YADAruM,EAASquM,UAAW8D,EAAiCjxH,MAEvD,KAAK+pH,GAAqBwH,OACxB,OAGJ77U,QAAQ04C,KACN,yDAAA9hD,OAAyD8Q,EAAM,mBAAA9Q,OAAkBzpB,OAAOK,OAAO6mW,KAEnG,CG5BwByH,CAAoBz/U,EAAMuM,GACrCi1I,GACLA,EAAQ7qD,KAAKioP,GAAazzN,OAAM,SAAAl1I,GAAK,OAAA2oW,EAAY,SAAW3oW,EAAE8jB,QAAzB,GAJnC,CAKJ,GACA,CAACwS,EAAOqyU,KAGV7uU,EAAAA,EAAAA,YAAU,WACR,IAAK3vB,OAAQ,MAAM,IAAI3O,MAAM,sBAE7B,OADA2O,OAAOowB,iBAAiB,UAAWwuU,GAC5B,WACL5+V,OAAOqwB,oBAAoB,UAAWuuU,EACxC,CACF,GAAG,CAACA,IAEG,IAAAhG,EAAsBzsU,EAAKysU,mBAClC,OAAO3hN,EAAAA,EAAAA,UACL,WAAM,OACJrpH,EAAAA,cAAA,UACEqvU,UAAWrE,EAAqB,KAAO,MACvC0G,OAAQ,WACFf,EAAUnnV,UAASmnV,EAAUnnV,QAAQgV,MAAMi6C,QAAU,IAC3D,EACA+qK,MAAO,iCACP1gN,IAAK6tU,EACLnyU,MAAO,CACLztB,MAAO,OACPsyB,OAAQ,OACRo1C,QAAS,EACT27C,WAAY,wBAEdjlC,MAAM,WACNo0J,YAAY,IACZp/O,IAAK2qC,GAhBH,GAmBN,CAAC6hU,EAAW3F,EAAoBl8T,GAEpC,IClFI,SAAU6iU,GAAiBC,GAC/B,IAAMC,GAAYxxU,EAAAA,EAAAA,QAAuC,MACnDG,EA1BR,SACEoxU,EACA10U,GAmBA,MAAO,CAAC40U,aAjBYzoN,EAAAA,EAAAA,UAA6B,WAC/C,IAAMohN,EJuBJ,SACJ5hV,GAEA,IAAIskV,EAUJ,GARE,WAAYtkV,GACY,kBAAjBA,EAAM6tT,QACb7tT,EAAM6tT,QACN,WAAY7tT,EAAM6tT,OAElBy2B,EAAStkV,EAAM6tT,OAAOy2B,OACf,WAAYtkV,GAASA,EAAMskV,SAAQA,EAAStkV,EAAMskV,QAEtDA,EAAL,CAEA,GAAsB,kBAAXA,EAAqB,OAAOA,EAEvC,GAAsB,kBAAXA,EAAqB,CAC9B,GAAI,cAAeA,EACjB,OAAOA,EAAOn0C,UAAYm0C,EAAOn0C,UAAUhtT,gBAAanI,EAE1D,GAAI,YAAaspW,EACf,OAAOA,EAAO/vC,QAAW+vC,EAAO/vC,aAAqBv5T,EAEvD,GAAI,cAAespW,EACjB,OAAOA,EAAO1hJ,UAAa0hJ,EAAO1hJ,eAAuB5nN,CAC7D,CAEA,OAAO,IAfM,CAgBf,CIpDyBkuW,CAAgBH,GACrC,OAAAnlP,GAAAA,GAAA,GACKmlP,GAAa,CAChBnH,aAAYA,EACZjvL,MAAO,YAAAjvJ,OAAY2Q,EAAO,KAAA3Q,OAAIqlV,EAAczH,YAC5Cj+F,YAAa+9F,GAAcjwB,eAAe43B,IAE9C,GAAG,CAACA,EAAe10U,IASE80U,iBAPG3oN,EAAAA,EAAAA,UAA+B,WACrD,OAAA58B,GAAAA,GAAA,GACKygP,GAAY0E,IAAc,CAC7B5G,mBAAoB4G,EAAc5G,oBAEtC,GAAG,CAAC4G,IAGN,CAIyCK,CACrCL,EACA,OAFKE,EAAWtxU,EAAAsxU,YAAEE,EAAexxU,EAAAwxU,gBAK5BE,ECxCH,SACJL,GAEM,IAAArxU,EAAwCR,EAAAA,UAAe,GAAtDmyU,EAAe3xU,EAAA,GAAE4xU,EAAkB5xU,EAAA,GACpCoF,EAAgC5F,EAAAA,UAAe,GAA9CkyU,EAAWtsU,EAAA,GAAEysU,EAAczsU,EAAA,GAuBlC,OArBA7D,EAAAA,EAAAA,YAAU,iBACU,QAAlBvB,EAAS,OAATqxU,QAAS,IAATA,OAAS,EAATA,EAAWroV,eAAO,IAAAgX,GAAAA,EACdqwU,kBAAiB,SAAA9kV,GACjB,IACE,IAAM7V,EAAM0nB,KAAKK,MAAMlS,GACvB,MAAO,WAAY7V,GAAsB,WAAfA,EAAImnB,MAChC,CAAE,MAAOp1B,IACP,OAAO,CACT,CACF,IACC0gH,MAAK,WACJypP,GAAmB,GACnBr1T,YAAW,WACTs1T,GAAe,EACjB,GAAG,IACL,GACJ,GAAG,CAACR,IAKG,CAACM,gBAAeA,EAAED,YAAWA,EAAEz5R,QAHtB05R,EAAkB,EAAI,GAGSjnU,QAF/BgnU,EAAc,OAAS,OAGzC,CDYwBI,CAAWT,GAAUK,YAErCnH,EAAmB+G,EAAY/G,kBAAoB,UACnDwH,EAiGR,SAAwB1hW,SACtBA,EAAMA,EAAIwC,QAAQ,KAAM,IACxB,IAAMm/V,GAAwB,QAAlBhyU,EAAA3vB,EAAIozG,MAAM,gBAAQ,IAAAzjF,OAAA,EAAAA,EAAE3Q,KAAI,SAAA3e,GAAO,WAAM8iB,SAAS9iB,EAAK,GAApB,MAA4B,GACvE,MAAO,IAAAqb,OAAIimV,EAAI3iV,KAAI,SAAA3e,GAAO,OAAAA,EAAIlF,SAAS,IAAIgF,SAAS,EAAG,IAA7B,IAAmCZ,KAAK,IACpE,CArGwBqiW,CAAe1H,GAErC,OACE/qU,EAAAA,cAAA,OAAKxB,MAAO0mC,GAAO95D,UAAU2/V,IAC3B/qU,EAAAA,cAAC0wU,GAAcjkP,GAAA,CAAC3pF,IAAK+uU,GAAeC,EAAiBE,IACpDE,GACClyU,EAAAA,cAAC0yU,GAAa,CACZ3H,iBAAkBA,EAClBwH,cAAeA,IAKzB,CAEA,SAASG,GAAclyU,OACrBuqU,EAAgBvqU,EAAAuqU,iBAChBwH,EAAa/xU,EAAA+xU,cAKb,OACEvyU,EAAAA,cAAA,OAAKxB,MAAO0mC,GAAOguK,QAAQ63H,IACzB/qU,EAAAA,cAAC2yU,GAAU,CAAC1uO,QAAS,GACnBjkG,EAAAA,cAACwgT,GAAM,CAACuqB,iBAAkBwH,IAC1BvyU,EAAAA,cAACwgT,GAAM,CAACuqB,iBAAkBwH,KAE5BvyU,EAAAA,cAAC2yU,GAAU,CAAC1uO,QAAS,GACnBjkG,EAAAA,cAACwgT,GAAM,CAACn9S,OAAQ,GAAI0nU,iBAAkBwH,KAEvCpkF,GAAA,GAAItmR,MAAM,IAAE,GAAEgoB,KAAI,SAACjP,EAAGtO,GAAU,OAC/B0tB,EAAAA,cAAC4yU,GAAS,CAACvoV,IAAK/X,GACd0tB,EAAAA,cAACwgT,GAAM,CACLzvU,MAAOuB,EAAQ,EAAI,GAAK,IACxB+wB,OAAQ/wB,EAAQ,EAAI,GAAK,GACzBy4V,iBAAkBwH,IAEpBvyU,EAAAA,cAACwgT,GAAM,CACLzvU,MAAOuB,EAAQ,EAAI,GAAK,IACxB+wB,OAAQ/wB,EAAQ,EAAI,GAAK,GACzBy4V,iBAAkBwH,IAVS,IAcjCvyU,EAAAA,cAAC2yU,GAAU,CAAC1uO,QAAS,GACnBjkG,EAAAA,cAACwgT,GAAM,CAACn9S,OAAQ,GAAI0nU,iBAAkBwH,KAExCvyU,EAAAA,cAAC2yU,GAAU,CAAC1uO,QAAS,EAAGlzH,MAAM,OAC5BivB,EAAAA,cAACwgT,GAAM,CAACn9S,OAAQ,GAAI0nU,iBAAkBwH,KAExCvyU,EAAAA,cAAC2yU,GAAU,CAAC1uO,QAAS,EAAGlzH,MAAM,OAC5BivB,EAAAA,cAACwgT,GAAM,CAACn9S,OAAQ,EAAG0nU,iBAAkBwH,KAI7C,CAEA,SAASI,GAAWnyU,OAClB8/D,EAAQ9/D,EAAA8/D,SACR2jC,EAAOzjG,EAAAyjG,QACPr+F,EAAApF,EAAAzvB,MAAAA,OAAK,IAAA60B,EAAG,OAAMA,EAEd,OACE5F,EAAAA,cAAA,OACExB,MAAKiuF,GAAAA,GAAA,GACAvnD,GAAO2tS,MAAI,CACdC,oBAAqB,UAAAvmV,OAAU03G,EAAO,UACtClzH,MAAKA,KAGNuvF,EAGP,CAEA,SAASsyQ,GAAUpyU,OAAC8/D,EAAQ9/D,EAAA8/D,SAC1B,OAAOtgE,EAAAA,cAAA,OAAKxB,MAAO0mC,GAAO6tS,KAAMzyQ,EAClC,CAEA,SAASkgP,GAAOhgT,OACduqU,EAAgBvqU,EAAAuqU,iBAChBnlU,EAAApF,EAAA6C,OAAAA,OAAM,IAAAuC,EAAG,GAAEA,EACX70B,EAAKyvB,EAAAzvB,MAML,OACEivB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAKxB,MAAO0mC,GAAO++G,OAAO8mL,EAAkB1nU,EAAQtyB,KACpDivB,EAAAA,cAAA,aAAQklC,GAAOvb,WAGrB,CAQA,IAAMub,GAAS,CACb95D,UAAW,SAACyzI,GAAe,MAAC,CAC1BxoI,SAAU,WACVgtB,OAAQ,OACRi7D,gBAAiBugD,EAHQ,EAK3Bq0F,QAAS,SAACr0F,GAAe,MAAC,CACxBvgD,gBAAiBugD,EACjB3zG,QAAS,OACT4B,MAAO,OACPz2B,SAAU,WACV+sB,IAAK,EACLpwB,KAAM,EACNC,MAAO,EACP81D,OAAQ,EACRuB,SAAU,GACV0oS,WAAY,SACZC,cAAe,SACfziH,IAAK,OACLnrH,OAAQ,GACRxwH,QAAS,OAdc,EAgBzBg+V,KAAM,CACJ3nU,QAAS,OACTslN,IAAK,OACLz/O,MAAO,QAETgiW,IAAK,CACH7nU,QAAS,OACTq5J,eAAgB,gBAChBxzL,MAAO,QAETkzK,OAAQ,SAACplC,EAAYx7G,EAAgBtyB,GAAmB,MAAC,CACvDA,MAAOA,EAAQ,GAAAwb,OAAGxb,EAAK,MAAO,OAC9BsyB,OAAQ,GAAA9W,OAAG8W,EAAM,MACjBi7D,gBAAiBugD,EACjBq0N,aAAc,MACdx/T,UAAW,sBAL2C,EAOxDiW,UAAW,wGEjLP,SAAUwpT,GAAkB3yU,GAAlC,IAAA4xL,EAAA,KACE/kB,EAAG7sK,EAAA6sK,IAEH88J,EAAU3pU,EAAA2pU,WAEV0E,EAAWruU,EAAAquU,YAELjpU,GAAsB3F,EAAAA,EAAAA,WAAkB,GAAvC0tC,EAAM/nC,EAAA,GAAEwpU,EAASxpU,EAAA,GAClBC,GACJ5F,EAAAA,EAAAA,WAAkB,GADbkwU,EAAmBtqU,EAAA,GAAEkpU,EAAsBlpU,EAAA,GAG5C6zP,GAAoCz5P,EAAAA,EAAAA,eACxCp8B,GADKuvW,EAAa15E,EAAA,GAAE25E,EAAgB35E,EAAA,GAIhCC,GAAgC15P,EAAAA,EAAAA,eAA6Bp8B,GAA5DyvW,EAAW35E,EAAA,GAAEw1E,EAAcx1E,EAAA,IAElC53P,EAAAA,EAAAA,YAAU,WACR+sU,GAAoB,CAACzhK,IAAGA,EAAE0hK,uBAAsBA,GAClD,GAAG,CAAC1hK,EAAK0hK,IAET,IAAMwE,GAAiCvqN,EAAAA,EAAAA,cACrC,SACEl7H,GAGC,OAAA4+F,GAAA0lG,OAAA,8EAEc,SAAMq9I,GAAgChjP,GAAAA,GAAA,GAChD3+F,GAAI,CACPqiV,oBAAmBA,EACnBhB,eAAcA,EACdC,UAASA,EACT/hK,IAAGA,EACH88J,WAAUA,EACV0E,YAAWA,aAIb,OAXM10D,EAAS35Q,EAAA+lF,OAUf8sP,EAAiBl5D,GACjB,GAAOA,YAET,CAAC00D,EAAaxhK,EAAK88J,EAAYgG,IAG3BqD,GAA0BxqN,EAAAA,EAAAA,cAC9B,SACEl7H,GAGC,OAAA4+F,GAAA0lG,OAAA,8EAEc,SAAM29I,GAAyBtjP,GAAAA,GAAA,GACzC3+F,GAAI,CACPqiV,oBAAmBA,EACnBhB,eAAcA,EACdC,UAASA,EACT/hK,IAAGA,EACH88J,WAAUA,EACV0E,YAAWA,aAIb,OAXM10D,EAAS35Q,EAAA+lF,OAUf8sP,EAAiBl5D,GACjB,GAAOA,YAET,CAAC00D,EAAaxhK,EAAK88J,EAAYgG,IAG3BsD,GAAkCzqN,EAAAA,EAAAA,cACtC,SACEl7H,GAGC,OAAA4+F,GAAA0lG,OAAA,8EAEc,SAAM69I,GAAiCxjP,GAAAA,GAAA,GACjD3+F,GAAI,CACPqiV,oBAAmBA,EACnBhB,eAAcA,EACdC,UAASA,EACT/hK,IAAGA,EACH88J,WAAUA,EACV0E,YAAWA,aAIb,OAXM10D,EAAS35Q,EAAA+lF,OAUf8sP,EAAiBl5D,GACjB,GAAOA,YAET,CAAC00D,EAAaxhK,EAAK88J,EAAYgG,IASjC,OANApuU,EAAAA,EAAAA,YAAU,WACR,GAAKqxU,EAEL,OADAA,EAAcrgU,OACP,WAAM,OAAAqgU,EAAc/8L,QAAd,CACf,GAAG,CAAC+8L,IAEG,CACLA,cAAaA,EACbI,wBAAuBA,EACvBD,+BAA8BA,EAC9BE,gCAA+BA,EAC/B9lS,OAAMA,EACN2lS,YAAWA,EACXxE,oBAAmBA,GAEvB,CCnGA,IAAM4E,IAAmCv4M,EAAAA,EAAAA,aACvC,SAAC58H,EAA+DuE,GAC9D,IAAM0uL,GAAMnoE,EAAAA,EAAAA,UAAQ,WAClB,OAAOzrH,KAAKC,UAAUU,EAAMizL,IAC9B,GAAG,CAACjzL,EAAMizL,MAEJ46I,EAAUxuU,KAAKC,UAAUU,EAAM6tU,SAE/B5rU,EAA2C2yU,GAAkB50U,GAA5D60U,EAAa5yU,EAAA4yU,cAAEI,EAAuBhzU,EAAAgzU,wBAkB7C,OAhBAtqN,EAAAA,EAAAA,qBAAoBpmH,GAAK,WAAM,MAAC,CACxB29N,SAAQ,gFACZ,IAAK2yG,EAAe,MAAM,IAAI3vW,MAAM,uBACpC,SAAO2vW,EAAc7D,mBAHM,KAO/BxtU,EAAAA,EAAAA,YAAU,WACRyxU,EAAwB,CACtBhiJ,IAAGA,EACH59F,MAAOr1F,EAAMq1F,MACbw4O,QAASxuU,KAAKK,MAAMmuU,GACpBniS,KAAM1rC,EAAM0rC,MAEhB,GAAG,CAACunJ,EAAKjzL,EAAMq1F,MAAOr1F,EAAM0rC,KAAMmiS,EAASoH,IAEpCxzU,EAAAA,cAAA,OAAKzC,GAAI8wU,IAClB,IA8CIsF,KAPiC31M,EAAAA,EAAAA,MAAK01M,KAKZ11M,EAAAA,EAAAA,OAAK,WAAM,OAAAh+H,EAAAA,cAAA,OAAKzC,GAAI+wU,IAAT,KAELnzM,EAAAA,EAAAA,aACpC,SAAC58H,EAA4DuE,GAC3D,IAAM0uL,GAAMnoE,EAAAA,EAAAA,UAAQ,WAClB,OAAOzrH,KAAKC,UAAUU,EAAMizL,IAC9B,GAAG,CAACjzL,EAAMizL,MAEJ46I,EAAUxuU,KAAKC,UAAUU,EAAM6tU,SAE/B5rU,EACJ2yU,GAAkB50U,GADb60U,EAAa5yU,EAAA4yU,cAAEG,EAA8B/yU,EAAA+yU,+BA6BpD,OA1BArqN,EAAAA,EAAAA,qBAAoBpmH,GAAK,WAAM,MAAC,CACxB29N,SAAQ,gFACZ,IAAK2yG,EAAe,MAAM,IAAI3vW,MAAM,uBACpC,SAAO2vW,EAAc7D,mBAHM,KAO/BxtU,EAAAA,EAAAA,YAAU,WACRwxU,EAA+B,CAC7B/hJ,IAAGA,EACH59F,MAAOr1F,EAAMq1F,MACb87C,MAAOnxI,EAAMmxI,MACbggM,SAAUnxU,EAAMmxU,SAChBtD,QAASxuU,KAAKK,MAAMmuU,GACpBniS,KAAM1rC,EAAM0rC,MAEhB,GAAG,CACDunJ,EACA+hJ,EACAh1U,EAAMq1F,MACNr1F,EAAMmxI,MACNnxI,EAAMmxU,SACNtD,EACA7tU,EAAM0rC,QAGDo/E,EAAAA,EAAAA,UAAQ,WAAM,OAAArpH,EAAAA,cAAA,OAAKzC,GAAI+wU,IAAT,GAAwC,GAC/D,KA0CIsF,KAF8B51M,EAAAA,EAAAA,MAAK21M,KAEFx4M,EAAAA,EAAAA,aACrC,SAAC58H,EAA4DuE,GAC3D,IAAM0uL,GAAMnoE,EAAAA,EAAAA,UAAQ,WAClB,OAAOzrH,KAAKC,UAAUU,EAAMizL,IAC9B,GAAG,CAACjzL,EAAMizL,MAEJ46I,EAAUxuU,KAAKC,UAAUU,EAAM6tU,SAE/B5rU,EACJ2yU,GAAkB50U,GADb60U,EAAa5yU,EAAA4yU,cAAEK,EAA+BjzU,EAAAizU,gCAyBrD,OAtBAvqN,EAAAA,EAAAA,qBAAoBpmH,GAAK,WAAM,MAAC,CACxB29N,SAAQ,gFACZ,IAAK2yG,EAAe,MAAM,IAAI3vW,MAAM,uBACpC,SAAO2vW,EAAc7D,mBAHM,KAO/BxtU,EAAAA,EAAAA,YAAU,WACR0xU,EAAgC,CAC9BjiJ,IAAGA,EACH59F,MAAOr1F,EAAMq1F,MACbw4O,QAASxuU,KAAKK,MAAMmuU,GACpBniS,KAAM1rC,EAAM0rC,MAEhB,GAAG,CACDwpS,EACAl1U,EAAMq1F,MACN49F,EACA46I,EACA7tU,EAAM0rC,OAGDjqC,EAAAA,cAAA,OAAKzC,GAAI8wU,IAClB,MAuCmCrwM,EAAAA,EAAAA,MAAK41M,ICnN1C,MAAMC,GAAejgU,OACfkgU,GAAsB,6BAEb,SAASC,KAAY,IAADC,EACjC,MAAMnkL,EAAWoJ,MACV3+H,GAAe4mI,KAChB+yK,EAAc1zG,KAA4B,QAAxByzG,EAAC15S,EAAYtwC,IAAI,eAAO,IAAAgqV,EAAAA,EAAI,IAC9CriH,EAAgB/zN,KAAKK,MAAMg2U,IAC3B,WACJvJ,EAAU,WACVP,EAAU,OACV7sS,EAAM,UACNw/J,EAAS,OACTkvB,EAAM,YACNgY,EAAW,UACXkwG,EAAS,MACTpnP,EAAK,MACLpiH,GACEinP,EAuBJ,OAXA5vN,EAAAA,EAAAA,YAAU,KACR,MAAMoyU,EAAcrxW,OAAOK,OAAOwuP,GAClC,GAAIwiH,EAAYv9U,SAAS,KAAOu9U,EAAYv9U,SAAS,MAKnD,OAJA65N,GAAgB1pG,SAASi4F,GAAWC,SAAS2qB,MAAO,CAClD79O,QAAS,6BAEX8jK,EAASsvD,GAAOF,SAASgT,aAE3B,GACC,CAACpiE,EAAU8hE,KAGZ74E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,+BAA8ByQ,UAC3Cw4E,EAAAA,GAAAA,KAAC64L,GAAgB,CACfjH,WAAYA,EACZP,WAAYA,EACZ98J,IAAKwmK,GACLzG,UAAW,iBA3B8Bp7U,KAC7C,IAAI2gO,EAAY3gO,EACI,kBAATA,IACT2gO,EAAY3gO,EAAK2gO,WAEnB9iE,EACE,GAAGikL,gBAAiCh3I,eAAuB61B,IAC5D,EAoB2ByhH,IAAqBxwW,UAAQ,EACrDgnW,SAAU,CACRl/G,SAAU3oC,GAASw5C,IACnBiwG,MAAiB,KAATlvS,GAEVwtS,YAAa,CACXhuI,UAAWA,EACXkvB,OAAQA,GAEVo/G,yBAA0B,CACxB,CACEpnG,YAAaA,EACbqwG,YAAa,cACbC,SAAU,EACVC,eAAgB,CACdC,UAAWN,EACXO,mBAAoB,mBACpB3nP,QACApiH,cAOd,CC3FmE,IAE9DgqW,GAA0B,SAA1BA,GAA0B,OAA1BA,EAA0B,oBAA1BA,EAA0B,iBAA1BA,EAA0B,iBAA1BA,EAA0B,sBAA1BA,EAA0B,oBAA1BA,EAA0B,+BAA1BA,EAA0B,YAA1BA,CAA0B,EAA1BA,IAA0B,IA4F/B,SA/EA,WACE,MAAM7kL,EAAWoJ,MACVu4D,GAAetwD,KAChByzK,EANkB,aAOtBnjH,EAAYxnO,IAAI0qV,GAA2BE,aACzCpjH,EAAYxnO,IAAI0qV,GAA2BG,OACxCC,EAAsBC,IAA2B90U,EAAAA,EAAAA,UAAiB,KAOnE+0U,GAAsBhsN,EAAAA,EAAAA,cAAY2+B,UACtC,MAAMiqE,EAAgB,IAAIxkC,GAAsBm0B,IAEhD,IACE,MAAMsQ,SAAsBD,EAAc7kC,gBAAgBG,IAAcl7L,KACpE6/N,EAAa/iN,MACf2hN,GAAgB1pG,SACdi4F,GAAWC,SAASg2H,UACpB,CAAElpV,QAAS,kBAAkBmhM,EAAY5C,aAE3Cl4M,OAAO4hC,SAASwlB,KAAOq4L,EAAa/iN,IAExC,CAAE,MAAO7mC,IAEP8sW,EAAwB,IAC1B,IACC,IAsCH,OApCAhzU,EAAAA,EAAAA,YAAU,KACR,MAAMmzU,ErX+EH,WACL,MAAMA,EAAgB/lL,eAAeC,QAAQo6D,IAC7C,OAAO0rH,EAAgB5yW,OAAO4yW,GAAiB,IACjD,CqXlF0BC,IAAsB,EAC5C,GAAID,GAnCkB,EAsCpB,OAFAzkH,GAAgB1pG,SAASi4F,GAAWC,SAAS2qB,MAAO,CAAE79O,QAAS,wBAC/D8jK,EAASsvD,GAAOF,SAASgT,cAI3B,MAAM3nC,EAAWknC,EAAYxnO,IAAI0qV,GAA2BE,UACtD5oH,EAASwF,EAAYxnO,IAAI0qV,GAA2BU,SACpDC,EAAS7jH,EAAYxnO,IAAI0qV,GAA2BY,SACpDC,EAAc/jH,EAAYxnO,IAAI0qV,GAA2Bc,SACzD9pH,EAAW8F,EAAYxnO,IAAI0qV,GAA2Be,WAAa,MACnEC,EAAiBlkH,EAAYxnO,IAAI0qV,GAA2BiB,eAC5DC,IAAYV,EAElB,IAAK5qJ,IAAa0hC,IAAWqpH,IAAWE,IAAgB7pH,EAGtD,OAFAqpH,EAAwB,UACxBtkH,GAAgB1pG,SAASi4F,GAAWC,SAAS2qB,MAAO,CAAE79O,QAAS,wBrX0D9D,IAA0B8pV,EqX5C7Bb,EAVgD,CAC9C1qJ,WACA0hC,SACAqpH,SACAE,cACA7pH,SAAUA,EACVgqH,eAAmC,SAAnBA,EAChBE,YAG+Bz4N,QrX4CJ04N,EqX3CZX,EAAgB,ErX4CnC/lL,eAAeI,QAAQi6D,GAAgBqsH,EAAO7pW,WqX5CT,GAClC,CAACwlP,EAAawjH,EAAqBnlL,IAElC8kL,GAAuB77L,EAAAA,GAAAA,KAACi7L,GAAQ,KAGlCj7L,EAAAA,GAAAA,KAAC+5E,GAAa,CACZvjO,KAA+B,MAAzBwlV,EAA+BhkH,GAAkBK,QAAUL,GAAkBM,KACnFjiK,MAjEqD,CACvD,EAAG,qCACH,EAAG,gDACH,EAAG,4DA8DkC2lR,GACnCviP,UAAoC,MAAzBuiP,EAA+B91H,GAAWC,SAAS2qB,WAAQ/lQ,EACtEktP,YAAatT,GAAgBq4H,gBAGnC,ECvGA,SAASC,KACP,GAAsB,qBAAX3jW,OAAwB,CACjC,MAAQi5G,WAAYt6G,EAAOuyB,YAAaD,GAAWjxB,OACnD,MAAO,CACLrB,QACAsyB,SAEJ,CACA,MAAO,CAAEtyB,MAAO,EAAGsyB,OAAQ,EAC7B,+OCgCA,MACA,GAAe,sBAA0B,sECHzC,MACA,GAAe,sBAA0B,6DCDzC,MACA,GAAe,sBAA0B,6DCfzC,MACA,GAAe,sBAA0B,+DCHzC,MACA,GAAe,sBAA0B,oECrBnC2yU,GAA0B,InkB+lIzB,cAAgDj1J,GASnDuG,yBAAAA,CAA0BC,EAA8BzqL,GACpD,OAAOsqL,GAAoCt1M,KAAKkvM,eAAesG,0BAA0BC,EAA8BzqL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC/K,CASAuG,oBAAAA,CAAqBC,EAAU3qL,GAC3B,OAAOsqL,GAAoCt1M,KAAKkvM,eAAewG,qBAAqBC,EAAU3qL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACtJ,CASAyG,mBAAAA,CAAoBD,EAAU3qL,GAC1B,OAAOsqL,GAAoCt1M,KAAKkvM,eAAe0G,oBAAoBD,EAAU3qL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACrJ,CAWA0G,gBAAAA,CAAiBpC,EAAM7rL,EAAO2iJ,EAAMv/I,GAChC,OAAOsqL,GAAoCt1M,KAAKkvM,eAAe2G,iBAAiBpC,EAAM7rL,EAAO2iJ,EAAMv/I,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC3J,GmkB5oIFsgC,QACA19O,EACAinP,IAGImrH,GAAsCtuL,UAC1C,IACE,MAAM,KAAE31J,SAAegkV,GAAwBtuJ,oBAC7CD,GAEF,OAAOz1L,CACT,CAAE,MACA,MACF,iECwBF,SA9BA,SAAwBlC,GAA0D,IAAxD,MAAE+2C,EAAQ,GAAE,UAAEgpB,EAAY,IAA2B//D,EAC7E,MAAOomV,EAAeC,IAAoBl2U,EAAAA,EAAAA,UAAS,GAUnD,OACE64I,EAAAA,GAAAA,KAAA,OAAKjpF,UAAW,sCAAsCA,IAAYyQ,SAC1D,OAALz5B,QAAK,IAALA,GAAAA,EAAO5kE,OACN4kE,EAAMh3C,KAAI,CAACT,EAAM/nB,KACfonN,EAAAA,GAAAA,MAAA,UAEE34F,QAASA,KAdKxjH,MAKtB6jW,GALsB7jW,EAcgBjL,KAbxB6uW,EAIG5jW,GAHG,EAYqB,EACjCu9E,UAAW,uBAAuBqmR,IAAkB7uW,GAAK,WAAWi5F,SAAA,EAEpEw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,aAAYyQ,SAAElxE,EAAK+/D,SAChC2pF,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,sBAAsB4yC,wBAAyB,CAACma,OAAQxtH,EAAKixB,UALvE,oBAAoBh5C,OAQ7B,MAIR,ECnCA,SAAS+uW,KACP,OACE3nJ,EAAAA,GAAAA,MAAA,OAAKmiC,MAAM,6BAA6B7/O,MAAM,KAAKsyB,OAAO,KAAKwtN,QAAQ,YAAY1iP,KAAK,OAAMmyF,SAAA,EAC5Fw4E,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,kDAAkDpc,KAAK,aAC/D2qK,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,oDAAoDpc,KAAK,aACjE2qK,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,uMAAuMpc,KAAK,aACpN2qK,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,wCAAwCpc,KAAK,aACrD2qK,EAAAA,GAAAA,KAAA,QAAMvuJ,EAAE,oDAAoDpc,KAAK,cAGvE,CAEe,SAASkoW,KACtB,MAAOC,EAAQC,IAAat2U,EAAAA,EAAAA,WAAkB,GAc9C,OACEwuL,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,kFAAiFyQ,SAAA,EAC9FmuH,EAAAA,GAAAA,MAAA,OACE5+H,UAAW,oGAC8EymR,EAAS,UAAY,wBAC5Gh2Q,SAAA,EAEFw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mCAAkCyQ,SAAC,sBAGhDw4E,EAAAA,GAAAA,KAACspE,GAAM,CAAC13O,MAAM,6CAA6CmlF,UAAU,UAAUs+H,cAvBpD,CAC/Bp9M,MAAO,KACPsyB,OAAQ,KACRgjF,MAAO,GACPiB,kBAAmB,CACjBx6E,MAAO,WAoBPgsI,EAAAA,GAAAA,KAAA,UAAQjpF,UAAU,8CAA8CimC,QAhBzC0gP,KAChBD,GAATD,EAA2C,EAemDh2Q,UAC1Fw4E,EAAAA,GAAAA,KAACs9L,GAAa,QAItB,2uLCFA,SAxCA,SAA2B5rH,GACzB,MAAO5G,EAAUC,IAAe5jN,EAAAA,EAAAA,UAAS,IAoCzC,OAlCA8B,EAAAA,EAAAA,YAAU,KACR,MAAM49H,EAsCV,SAAqC6qF,GACnC,MAAMC,EAAsBH,KACtBj+K,EAAMD,KAAKC,MACXszF,EAAiBtzF,EAAM8zK,GAE7B,IAAKsK,IAAwBA,EAAoBD,GAE/C,OADAD,GAAwBC,GACjB7qF,EAGT,MAAM82M,EAAoBhsH,EAAoBD,GAC9C,GAAIisH,EAAoBpqS,EAEtB,OADAk+K,GAAwBC,GACjB7qF,EAET,OAAO82M,CACT,CAtD2BC,CAA4BlsH,GAE7CmsH,EAAkBA,KACtB,MAAMtqS,EAAMD,KAAKC,MACXuqS,EAAiBj3M,EAAiBtzF,EAExC,GAAIuqS,GAAkB,EAEpB,YADA/yH,EAAY,mBAId,MAAMgzH,EAAQ7yW,KAAKC,MAAM2yW,EAAc,MACjCE,EAAU9yW,KAAKC,MAClB2yW,EAAc,KAAmB,KAE9Bt6F,EAAUt4Q,KAAKC,MAAO2yW,EAAc,IAAkB,KAGtDG,EAAiB7qW,OAAO2qW,GAAO7lW,SAAS,EAAG,KAC3CgmW,EAAmB9qW,OAAO4qW,GAAS9lW,SAAS,EAAG,KAC/CimW,EAAmB/qW,OAAOowQ,GAAStrQ,SAAS,EAAG,KAErD6yO,EACE,GAAGkzH,QAAqBC,QAAuBC,KAChD,EAGHN,IACA,MAAMlhU,EAAaC,YAAYihU,EAAiB,KAEhD,MAAO,IAAM9gU,cAAcJ,EAAW,GACrC,CAAC+0M,IAEG5G,CACT,ECS8D,IAEzDszH,GAAe,SAAfA,GAAe,OAAfA,EAAe,kBAAfA,EAAe,sBAAfA,EAAe,kBAAfA,EAAe,cAAfA,CAAe,EAAfA,IAAe,IAOpB,MAAMC,GAAkB,CACtB,CACE9zW,KAAM6zW,GAAgBE,QACtB/wP,MAAOgxP,GACPvoU,IAAK,GAAGqwM,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAWiP,kBAEtD,CACEhrP,KAAM6zW,GAAgB/pH,UACtB9mI,MAAOixP,GACPxoU,IAAKgxM,GAAMnC,QAAQkR,uBAErB,CACExrP,KAAM6zW,GAAgBj0M,QACtB58C,MAAOkxP,GACPzoU,IAAKgxM,GAAMnC,QAAQgR,cAErB,CAAEtrP,KAAM6zW,GAAgB70M,MAAOh8C,MAAO4mI,GAAgBn+M,IAAK,KA4B5D,IAEI0oU,GAAQ,SAARA,GAAQ,OAARA,EAAQ,kBAARA,EAAQ,oBAARA,EAAQ,sBAARA,CAAQ,EAARA,IAAQ,IAMb,SAASC,KACP,MAAMzjU,EAAW6kJ,KACX24D,EAAc,IAAI7+D,gBAAgB3+I,EAAS8hG,SAC1CorG,EAAcC,IAAmBlhN,EAAAA,EAAAA,UAA8B,OAC/Dy3U,EAAkBC,IACvB13U,EAAAA,EAAAA,aACK23U,EAAMC,IAAW53U,EAAAA,EAAAA,UAAmBu3U,GAAS1sP,SAC9CgtP,GAAcz3U,EAAAA,EAAAA,QAAO,IACrBwmL,EAAa2qC,EAAYxnO,IAAI,YAC7BwgO,EAAcgH,EAAYxnO,IAAI,eAU9B45N,EAAWm0H,GAAkBvtH,GAAe,IAElD,OAAQotH,GACN,KAAKJ,GAASQ,UACZF,EAAYtuV,QAAU,IACJ,OAAhBkuV,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBO,QAAQ7iK,WAAY,4BAExC,MACF,KAAKoiK,GAASU,SACZJ,EAAYtuV,QAAU,qCACtB,MACF,QACEsuV,EAAYtuV,QAAU,gCAqC1B,OAjCAuY,EAAAA,EAAAA,YAAU,KACR,GAAK8kL,GAAe2jC,EAEb,IAAI3jC,IAAe2jC,EAExB,YADAqtH,EAAQL,GAASU,UAERrxJ,GAAc2jC,GACvBqtH,EAAQL,GAASQ,UACnB,MANEH,EAAQL,GAAS1sP,QAMnB,GACC,CAAC0/H,EAAa3jC,KAEjB9kL,EAAAA,EAAAA,YAAU,KACR,IAAK8kL,EAAY,OACOl/B,WACtB,MAAMs4D,QAAau/D,GAAsB34F,GACpCo5B,IACLkB,EAAgBlB,GhYzFf,SAA+BiB,GACpC4I,aAAav6D,QAAQ45D,GAAmBvrN,KAAKC,UAAUqjN,GACzD,CgYwFMi3H,CAAsBl4H,GAAK,EAG7Br5B,EAAiB,GAChB,CAACC,KAEJ9kL,EAAAA,EAAAA,YAAU,KACR,IAAKyoN,EAAa,OACU7iE,WAC1B,MAAM8/K,QAAgBwO,GAAoCzrH,GACrDi9G,GACLkQ,EAAoBlQ,EAAQ,EAE9B2Q,EAAqB,GACpB,CAAC5tH,KAGF/7B,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,iEAAgEyQ,UAC7Ew4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,UACVw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,MAAM1rF,IAAK8/O,UAGhCx1B,EAAAA,GAAAA,MAACb,GAAG,CACFh1C,GAAG,SACH/oF,UAAU,wFAAuFyQ,SAAA,EAEjGmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,8EAA6EyQ,SAAA,EAC1FmuH,EAAAA,GAAAA,MAACpB,GAAG,CACFz0C,GAAG,KACH/oF,UAAU,6FAETyQ,SAAA,EAEDw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,yBAAwByQ,SACrCw3Q,EAAYtuV,WAEfilM,EAAAA,GAAAA,MAAC8hC,GAAK,CAAC1gK,UAAU,qCAAoCyQ,SAAA,EACnDmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CAAC1gK,UAAU,YAAWyQ,SAAA,EAC1BmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,iBAAgByQ,SAAA,CAAC,6BAE5Bw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,uBAAuB,OAAK,KAC1CipF,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,YAAWyQ,SAAC,6CAE9Bw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,+BAA8ByQ,SAAC,+DAI9CmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CACJtvN,UAAU,aACV4uD,UAAU,wBACVrxD,MAAO,CAAEztB,MAAO,eAAgBuvF,SAAA,EAEhCmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CAAC1gK,UAAU,kDAAiDyQ,SAAA,EAChEmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CACJtvN,UAAU,aACV4uD,UAAU,yBAAwByQ,SAAA,EAElCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKk0W,GACLt1P,IAAI,aACJhyG,MAAO,GACPsyB,OAAQ,MAEVy1I,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,cAAayQ,SAAC,gBAEhCw4E,EAAAA,GAAAA,KAACspE,GAAM,CACL13O,MAAM,6CACNmlF,UAAU,UACVs+H,cA/Ge,CAC/Bp9M,MAAO,GACPsyB,OAAQ,GACR/T,KAAM,SACN+2F,MAAO,GACPiB,kBAAmB,CACjBx6E,MAAO,WA4GG2hL,EAAAA,GAAAA,MAAC8hC,GAAK,CAAC1gK,UAAU,mCAAkCyQ,SAAA,EACjDw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,iCAAgCyQ,SAAC,2BAG9Cw4E,EAAAA,GAAAA,KAACy3E,GAAK,CAACtvN,UAAU,aAAa4uD,UAAU,iBAAgByQ,SACrD62Q,GAAgBtnV,KAAKi6K,IACpBhxB,EAAAA,GAAAA,KAAA,QAEEjpF,UAAW,iBACTi6G,EAAOzmM,OAAS6zW,GAAgB70M,MAAQ,OAAS,MAEjDynC,EAAOzmM,OAAS6zW,GAAgBj0M,QAC5B,kBACA,KACH3iE,UAEHw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK2lM,EAAOzjF,MACZtD,IAAK+mF,EAAOzmM,KACZ0N,MAAO,GACPsyB,OAAQ,MAbLymK,EAAOzmM,mBAqBvBu0W,IAASJ,GAAS1sP,UACjB2jG,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,YAAWyQ,SAAA,EACzBw4E,EAAAA,GAAAA,KAAA,SAAM,0CAIT8+L,IAASJ,GAASQ,YACjBl/L,EAAAA,GAAAA,KAAA,OACEjpF,UAAU,iBACVrxD,MAAO,CACL29F,aAA8B,OAAhBu7O,QAAgB,IAAhBA,GAAAA,EAAkBY,aAAe,EAAI,IACnDh4Q,UAEFmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,sBAAqByQ,SAAA,EAClCw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,gBAAeyQ,SAAC,iBAC7Bw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,YAAWyQ,SACrBsjJ,EAASl+O,MAAM,KAAKmqB,KAAI,CAACpoB,EAAGJ,KAC3BonN,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,YAAWyQ,SAAE74F,IACtB,IAANJ,IAAWyxK,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,aAAYyQ,SAAC,qBAQtD4gJ,GAAgB02H,IAASJ,GAASU,WACjCzpJ,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,mCAAkCyQ,SAAA,CAAC,IAC5C4gJ,EAAa9rC,SAAS,eACxBt8B,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,uBAAsByQ,SAAC,4BAAoB,oBAI9Ds3Q,IAASJ,GAASQ,aAA+B,OAAhBN,QAAgB,IAAhBA,IAAAA,EAAkBY,gBAClD7pJ,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,0EAAyEyQ,SAAA,EACtFw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mBAAkByQ,SAAC,iBAChCmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,eAAcyQ,SAAA,CACxB,KACDw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKo0W,GACLl1U,OAAQ,GACRtyB,MAAO,GACP8+E,UAAU,cAEK,OAAhB6nR,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBY,aAAa,aAIrCV,IAASJ,GAASQ,YACjBl/L,EAAAA,GAAAA,KAAA0/D,GAAAA,SAAA,CAAAl4I,UACEw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,4BAA4B1rF,IAAKq0W,OAGrDZ,IAASJ,GAASQ,YACjBl/L,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,yCAAwCyQ,UACrDmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,2BAA0ByQ,SAAA,EACvCw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,iCAAgCyQ,UAC3Cw4E,EAAAA,GAAAA,KAAC2qI,GAAc,CACb32Q,MAAM,cACNu5E,MAAOoyP,GACP/2D,YAAY,qBACZn/K,UAAQ,OAGZksF,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,yBAAwByQ,SAAA,CAAC,cACV,OAAhBo3Q,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBO,QAAQ7iK,WAAY,OAGnDqZ,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,kBAAiByQ,SAAA,EAC9Bw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,8FAA6FyQ,UAC1Gw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKu0W,GACL7oR,UAAU,yBACV9+E,MAAO,GACPsyB,OAAQ,QAGZy1I,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,qCAAoCyQ,UACjDw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,KACkB,OAAhBuzW,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBO,QAAQU,YAC1BC,GAEF/oR,UAAU,yBACV9+E,MAAO,GACPsyB,OAAQ,WAKdorL,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,cAAayQ,SAAA,EAC1Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,KACkB,OAAhBuzW,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBtoH,QAClBsoH,EAAiBtoH,MAAM,GAAGlhC,UAE5Br+H,UAAU,eAEZipF,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,YAAWyQ,SACR,OAAhBo3Q,QAAgB,IAAhBA,GAAAA,EAAkBtoH,MACfsoH,EAAiBtoH,MAAM,GAAG/rP,KAC1B,UAIW,OAAhBq0W,QAAgB,IAAhBA,IAAAA,EAAkBY,gBACnB7pJ,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,gCAA+ByQ,SAAC,iBAE7CmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,2BAA0ByQ,SAAA,EACrCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK00W,GAAchpR,UAAU,kBAAmB,IACtD6nR,EAAiBY,oBAIxBx/L,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,qBAAoByQ,SACf,OAAhBo3Q,QAAgB,IAAhBA,GAAAA,EAAkBoB,aACnBrqJ,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,sBAAqByQ,SAAC,oBAGtCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK00W,GAAcx1U,OAAQ,EAAGtyB,MAAO,KAC5C+nK,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,sBAAqByQ,SAClB,OAAhBo3Q,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoB,kBAIvBhgM,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,sBAAqByQ,SAAC,yBAOlDw4E,EAAAA,GAAAA,KAACu9L,GAAU,SAInB,CAEA,SAAS0C,KACP,OACEtqJ,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,oCAAmCyQ,SAAA,EAChDmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,oCAAmCyQ,SAAA,CAAC,mBACjCw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,uBAAuB,iBAEtDipF,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,+CAA8CyQ,SAC1D6uJ,GAAQt/N,KAAI,CAACT,EAAM/nB,KAClBonN,EAAAA,GAAAA,MAAA,OAEE5+H,UAAU,iDAAgDyQ,SAAA,EAE1Dw4E,EAAAA,GAAAA,KAAA,OAAK30K,IAAKirB,EAAKi3F,MAAOtD,IAAI,MAC1B+1D,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,wCAAuCyQ,SAAElxE,EAAKhjB,QAC3D0sK,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mCAAkCyQ,SAAElxE,EAAK81N,YALjD91N,EAAK/E,WAWtB,CAEA,MAAM2uV,GAAqC/wW,GAAMA,EAAE+0H,iBAE7Ci8O,GAAY7pH,GAAMv/N,KAAKT,IAC3Bq/L,EAAAA,GAAAA,MAAA,OAEEyqJ,YAAaF,GACbnpR,UAAU,+FAA8FyQ,SAAA,EAExGw4E,EAAAA,GAAAA,KAAA,OAAK30K,IAAKirB,EAAKi3F,MAAOtD,IAAI,GAAGvkF,MAAO,CAAE26U,UAAW,cACjDrgM,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,mCAAkCyQ,SAAElxE,EAAKgkD,YALjDhkD,EAAK/E,OASR+uV,GAAkB,CACtB,IAAK,CACHvyS,MAAO,GAET,KAAM,CACJA,MAAO,IAET,IAEGwyS,GAAY,SAAZA,GAAY,OAAZA,EAAY,gBAAZA,EAAY,YAAZA,CAAY,EAAZA,IAAY,IAKjB,SAASC,KACP,MAAMC,GAAqBl5U,EAAAA,EAAAA,QAAuB,OAC3CxrB,EAAS2kW,IAAcv5U,EAAAA,EAAAA,UAAS,GAEjCw5U,EAAYA,KAChB,MACM,QAAEjwV,GAAY+vV,EAChB/vV,GACFgwV,EAH2B,IAGhBhwV,EAAQmhD,YACrB,GAGF5oC,EAAAA,EAAAA,WAAU03U,EAAW,IAErB,MAAMC,GAAmB1wN,EAAAA,EAAAA,cAAa91H,IAElC4lJ,EAAAA,GAAAA,KAAA,UAAQjpF,UAAU,sBAAqByQ,UACrCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKw1W,GACL52P,IAAI,cACJvkF,MAAO,CACLs2B,OAAQ5hC,IAAQmmV,GAAaO,KAAO,SAAW,aAKtD,IAEH,OACEnrJ,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,wCAAuCyQ,SAAA,EACpDmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,gBAAeyQ,SAAA,CAAC,wBAE5Bw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,uBAAuB,6BAEvCipF,EAAAA,GAAAA,KAAA,OAAKh2I,IAAKy2U,EAAoB1pR,UAAU,kCAAiCyQ,UACvEw4E,EAAAA,GAAAA,KAACrrD,KAAa,CACZ5mD,MAAOoyS,GACPttP,WAAYytP,GACZ7tP,eAAa,EACbjB,UAAQ,EACRM,iBAAiB,OACjBD,iBAAkB,IAClBZ,kBAAmB,IACnBE,cAAc,UACdmB,UAAQ,EACRM,aAAc72G,EACdq3G,UAAWutP,EACXvuP,qBAAmB,EACnBD,wBAAsB,EACtB+K,iBAAkBA,IAAM0jP,EAAiBL,GAAaQ,UACtDzjP,iBAAkBA,IAAMsjP,EAAiBL,GAAaO,WAG1D9gM,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,sBAAqByQ,SAAE24Q,OAG5C,CAEA,SAASa,KACP,OACErrJ,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,kDAAiDyQ,SAAA,EAC9DmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,qBAAqBrxD,MAAO,CAAEksC,eAAgB,KAAO41B,SAAA,CAAC,yBAElEw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,uBAAuB,QACrCipF,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,cAAayQ,SAAC,8CAEhCmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uEAAsEyQ,SAAA,EACnFmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,mHAAkHyQ,SAAA,EAC/HmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,oDAAmDyQ,SAAA,EAChEw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,wBAAuByQ,SAAC,OACtCw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,aAAYyQ,SAAC,8BAC3Bw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,YAAWyQ,SAAC,qFAK3Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKyjP,GAAiB7kI,IAAI,6BAEnC0rG,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,kHAAiHyQ,SAAA,EAC9HmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,oDAAmDyQ,SAAA,EAChEw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,wBAAuByQ,SAAC,OACtCw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,aAAYyQ,SAAC,mBAC3Bw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,YAAWyQ,SAAC,4FAK3Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK41W,GAAeh3P,IAAI,wBAEjC0rG,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,oHAAmHyQ,SAAA,EAChImuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,oDAAmDyQ,SAAA,EAChEw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,wBAAuByQ,SAAC,OACtCw4E,EAAAA,GAAAA,KAAA,MAAIv7I,GAAG,SAASsyD,UAAU,aAAYyQ,SAAC,mCAGvCw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,YAAWyQ,SAAC,mEAI3Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK61W,GAAqBj3P,IAAI,4BAK/C,CAEA,SAASk3P,KACP,OACExrJ,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,iFAAgFyQ,SAAA,EAC7FmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CAACC,IAAK,EAAG3gK,UAAU,eAAcyQ,SAAA,EACrCmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,yBAAwByQ,SAAA,CAAC,eAEpCw4E,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,uBAAuB,iBACrCipF,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,uBAAuB,eAEvC4+H,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,gBAAeyQ,SAAA,CAAC,+GAEiC,KAC5Dw4E,EAAAA,GAAAA,KAAA,KAAGt/G,KAAK,qBAAoB8mC,SAAC,qBAIjCw4E,EAAAA,GAAAA,KAACohM,GAAe,CAACrzS,MAAO47K,GAAM5yJ,UAAU,gBAG9C,CAEA,SAASsqR,KACP,OACE1rJ,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,oCAAmCyQ,SAAA,EAChDw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,iBAAgByQ,UAC7Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK8/O,QAEdnrE,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,qCAAoCyQ,UACjDmuH,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,uCAAsCyQ,SAAA,EACnDmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,+DAA8DyQ,SAAA,EAC3Ew4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO0R,UACnBnlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,YAAWqyB,UAEtBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKqrP,GAAgBzsI,IAAI,sBAElC+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAOtsF,EACnBnnI,OAAO,SACP6jD,IAAI,aACJ,aAAW,IAAGqyB,UAEdw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKsrP,GAAY1sI,IAAI,cAE9B+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO6R,OACnBtlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,UAASqyB,UAEpBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKwrP,GAAa5sI,IAAI,sBAGjC0rG,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,6DAA4DyQ,SAAA,EACzEw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ0C,eACpBj2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,YAAWyQ,SACtB,oBAGDw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ2C,qBACpBl2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,YAAWyQ,SACtB,+BAQb,CAEA,SAAS85Q,KACP,OACE3rJ,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,qFAAoFyQ,SAAA,EACjGmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CAACC,IAAK,EAAG3gK,UAAU,kBAAiByQ,SAAA,EACxCw4E,EAAAA,GAAAA,KAAA,KAAGt/G,KAAK,qBAAqBq2B,UAAU,QAAOyQ,SAAC,iBAG/CmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CAACtvN,UAAU,aAAauvN,IAAK,EAAG3gK,UAAU,eAAcyQ,SAAA,EAC5Dw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAK,4CACLpvC,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,uBAAsByQ,UAEhCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKqrP,GACLzsI,IAAI,iBACJhyG,MAAO,GACPsyB,OAAQ,QAGZy1I,EAAAA,GAAAA,KAAA,KACEt/G,KAAK,qCACLpvC,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,uBAAsByQ,UAEhCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKsrP,GACL1sI,IAAI,iBACJhyG,MAAO,GACPsyB,OAAQ,QAGZy1I,EAAAA,GAAAA,KAAA,KACEt/G,KAAK,6DACLpvC,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,uBAAsByQ,UAEhCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKwrP,GAAa5sI,IAAI,cAAchyG,MAAO,GAAIsyB,OAAQ,cAIpEy1I,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,iBAAgByQ,UAC7Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK8/O,GAAMlzO,MAAO,IAAKsyB,OAAQ,QAExCorL,EAAAA,GAAAA,MAAC8hC,GAAK,CAACC,IAAK,EAAG3gK,UAAU,oBAAmByQ,SAAA,EAC1Cw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAK,6BACLpvC,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,OAAMyQ,SACjB,sBAGDw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAK,+BACLpvC,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,OAAMyQ,SACjB,wBAMT,CAEA,SAASk8I,KACP,OACE1jE,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,yFAAwFyQ,UACrGw4E,EAAAA,GAAAA,KAAC82E,GAAiB,KAGxB,CAEA,SA7nBA,WAGE,OAFAvE,MAGE58B,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,CACGi6J,GAAc,CACbprK,MACE,sEACFG,YACE,6KAEJm/H,EAAAA,GAAAA,MAACh2C,GAAS,CAACE,OAAK,EAAC9oF,UAAU,6CAA4CyQ,SAAA,EACrEw4E,EAAAA,GAAAA,KAAC2+L,GAAW,KACZhpJ,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,kCAAiCyQ,SAAA,EAC9Cw4E,EAAAA,GAAAA,KAACigM,GAAmB,KACpBjgM,EAAAA,GAAAA,KAACwgM,GAAoB,KACrBxgM,EAAAA,GAAAA,KAACghM,GAAsB,KACvBhhM,EAAAA,GAAAA,KAACmhM,GAAI,QAEPnhM,EAAAA,GAAAA,KAACqhM,GAA4B,KAC7BrhM,EAAAA,GAAAA,KAACshM,GAAa,KACdthM,EAAAA,GAAAA,KAAC0jE,GAAM,SAIf,ECpGA,SAAS69H,GAAcC,GACrB,MAEMC,GADS,IAAI91M,GAAAA,UACKE,YAExB,SACE21M,GAL8B,KAML,WAAzBC,EAASh2M,OAAOj1I,MACS,WAAzBirV,EAASh2M,OAAOj1I,MAChB6W,UAAU4D,UAAUk6E,MAAM,YAC1B99E,UAAU4D,UAAUk6E,MAAM,UAC1B99E,UAAU4D,UAAUk6E,MAAM,UAC1B99E,UAAU4D,UAAUk6E,MAAM,YAE9B,CAoBA,SAlBA,WACE,MAAQlzG,MAAOupW,GXbV,WACL,MAAOE,EAAkBC,IAAuBx6U,EAAAA,EAAAA,UAC9C81U,MAWF,OARAh0U,EAAAA,EAAAA,YAAU,KACR,SAAS24U,IACPD,EAAoB1E,KACtB,CAEA,OADA3jW,OAAOowB,iBAAiB,SAAUk4U,GAC3B,IAAMtoW,OAAOqwB,oBAAoB,SAAUi4U,EAAa,GAC9D,IAEIF,CACT,CWDiCG,IACxB,CAAEC,IAAe36U,EAAAA,EAAAA,UAASo6U,GAAcC,IAa/C,OAXAv4U,EAAAA,EAAAA,YAAU,KACR4pN,GAAsB,CACpBtoP,KAAMu7O,GACNnrM,QAAS,CAAEg7M,UAAW3Q,GAAWC,KAAMjvM,IAAKg9M,OAC5C,GACD,KAEH1iG,EAAAA,EAAAA,kBAAgB,KACdwxN,EAAYP,GAAcC,GAAa,GACtC,CAACA,KAEGxhM,EAAAA,GAAAA,KAAC+hM,GAAW,GACrB,ECVA,SAvBA,WAKE,OAJA94U,EAAAA,EAAAA,YAAU,KACR0uN,GAAgB1pG,SAASi4F,GAAWC,SAAS67H,OAAQ,CAAE/uV,QAAS,kBAAmB,GAClF,KAGD0iM,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEmuH,EAAAA,GAAAA,MAACwzB,GAAM,CAAA3hJ,SAAA,EACLw4E,EAAAA,GAAAA,KAAA,SAAAx4E,SAAO,sEACPw4E,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAQ,yEAGhC0lG,EAAAA,GAAAA,KAAC+5E,GAAa,CACZvjO,KAAMwhO,GAAkBM,KACxBjiK,MAAM,iBACNpjE,QAAQ,gCACRwmG,UAAWysH,GAAWC,SAAS67H,OAC/B/pH,YAAatT,GAAgBq4H,mBAIrC,ECEA,SAvBA,WAKE,OAJA/zU,EAAAA,EAAAA,YAAU,KACR0uN,GAAgB1pG,SAASi4F,GAAWC,SAAS67H,OAAQ,CAAE/uV,QAAS,kBAAmB,GAClF,KAGD0iM,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEmuH,EAAAA,GAAAA,MAACwzB,GAAM,CAAA3hJ,SAAA,EACLw4E,EAAAA,GAAAA,KAAA,SAAAx4E,SAAO,8CACPw4E,EAAAA,GAAAA,KAAA,QAAMz1K,KAAK,WAAW+vE,QAAQ,iDAGhC0lG,EAAAA,GAAAA,KAAC+5E,GAAa,CACZvjO,KAAMwhO,GAAkBM,KACxBjiK,MAAM,kBACNpjE,QAAQ,yEACRwmG,UAAWysH,GAAWC,SAAS2qB,MAC/B7Y,YAAatT,GAAgBs9H,oBAIrC,ECDA,MACA,GAAe,sBAA0B,yJCvBlC,IAAKC,GAAW,SAAXA,GAAW,OAAXA,EAAW,WAAXA,EAAW,YAAXA,CAAW,MA6BvB,SAnBA,SAAqBlrV,GAME,IAND,SACpBwwE,EAAQ,UACRzQ,EAAY,GAAE,KACdjiF,EAAOotW,GAAYC,GAAE,UACrBC,KACGltH,GACel+N,EAClB,OACEgpJ,EAAAA,GAAAA,KAAA,UACEjpF,UAAW,cAAcjiF,IAASotW,GAAYG,GAAK,SAAW,YAC5DD,EAAY,QAAU,MACpBrrR,OACAm+J,EAAS1tJ,SAEZA,GAGP,EC5Be,SAAS86J,GAAStrO,GAAiD,OAA3CyO,GAAwCzO,EAC7E,OACEgpJ,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK65P,GAAgBj7I,IAAI,gBAAiBxkF,GAErD,CCHA,MAAM68U,GAA6B,I9kB+kL5B,cAAyCr6J,GAS5CgH,mBAAAA,CAAoBC,EAAgBlrL,GAChC,OAAO+qL,GAA6B/1M,KAAKkvM,eAAe+G,oBAAoBC,EAAgBlrL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACpJ,CASAgH,qBAAAA,CAAsBD,EAAgBlrL,GAClC,OAAO+qL,GAA6B/1M,KAAKkvM,eAAeiH,sBAAsBD,EAAgBlrL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACtJ,CAQAiH,gBAAAA,CAAiBprL,GACb,OAAO+qL,GAA6B/1M,KAAKkvM,eAAekH,iBAAiBprL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACjI,CAUAkH,wBAAAA,CAAyBC,EAAczyE,EAAO74G,GAC1C,OAAO+qL,GAA6B/1M,KAAKkvM,eAAemH,yBAAyBC,EAAczyE,EAAO74G,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC9J,CASAoH,mBAAAA,CAAoBL,EAAgBlrL,GAChC,OAAO+qL,GAA6B/1M,KAAKkvM,eAAeqH,oBAAoBL,EAAgBlrL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACpJ,CASAqH,mBAAAA,CAAoBN,EAAgBlrL,GAChC,OAAO+qL,GAA6B/1M,KAAKkvM,eAAesH,oBAAoBN,EAAgBlrL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACpJ,CASAsH,mBAAAA,CAAoBP,EAAgBlrL,GAChC,OAAO+qL,GAA6B/1M,KAAKkvM,eAAeuH,oBAAoBP,EAAgBlrL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACpJ,CASAuH,cAAAA,CAAeR,EAAgBlrL,GAC3B,OAAO+qL,GAA6B/1M,KAAKkvM,eAAewH,eAAeR,EAAgBlrL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC/I,G8kBtqLFsgC,QACA19O,EACAinP,ICkGF,SA9FA,WAA2B,IAADuwH,EAAAC,EACxB,MAAOC,EAAmBC,IAAwBv7U,EAAAA,EAAAA,UAAS,IACpDw7U,EAAeC,IAAoBz7U,EAAAA,EAAAA,YACpC67N,GAAez7N,EAAAA,EAAAA,UACfs7U,GAAgBt7U,EAAAA,EAAAA,WACfu7U,EAAqBC,IAA0B57U,EAAAA,EAAAA,WAAS,GAEzD67U,GAAa9yN,EAAAA,EAAAA,cAAY2+B,UAC7B,MAAMo0L,ODTqBp0L,WAC7B,IAGE,aAF6ByzL,GAA2BlzJ,oBACrDl2L,IAEL,CAAE,MACA,MACF,GCEwBgqV,GACtBN,EAAiBK,GAEjB,MAAME,EAAiBA,MlYkKpB,WACL,MAAM9iO,EAAYx0G,SAASuzG,gBAAgBiB,UACrC+iO,EAAiBv3U,SAASuzG,gBAAgBkqF,aAGhD,OAAOjpF,EAFc/mI,OAAOkxB,aAEO44U,CACrC,CkYvKUC,GAGFN,GAAuB,GAFvBA,GAAuB,EAGzB,EAKF,OAFAzpW,OAAOowB,iBAAiB,SAAUy5U,GAE3B,KACL7pW,OAAOqwB,oBAAoB,SAAUw5U,EAAe,CACrD,GACA,IAqCH,IAnCAl6U,EAAAA,EAAAA,YAAU,KACR+yF,aAAagnI,EAAatyO,SAE1B,MAAM0nO,EAAYn0M,YAAW,KAAO,IAADq/T,EAElB,OAAbX,QAAa,IAAbA,GAAAA,EAAe55H,SACf05H,KAAmC,OAAbE,QAAa,IAAbA,GAAsB,QAATW,EAAbX,EAAe55H,eAAO,IAAAu6H,OAAT,EAAbA,EAAwBn6W,QAAS,EAEvDu5W,EAAqB,IAER,OAAbC,QAAa,IAAbA,OAAa,EAAbA,EAAe55H,UAAW25H,GAAsBzyV,GAASA,EAAO,IAElE+yO,EAAatyO,QAAU0nO,CAAS,GAzCX,KA4CvB,MAAO,KACLp8H,aAAao8H,EAAU,CACxB,GACA,CAACqqH,EAAgC,OAAbE,QAAa,IAAbA,OAAa,EAAbA,EAAe55H,WAEtC9/M,EAAAA,EAAAA,YAAU,KACR8T,cAAc8lU,EAAcnyV,SAC5BsyV,IAEA,MAAMrmU,EAAaC,aAAY,KAC7BomU,GAAY,GArDe,KA0D7B,OAFAH,EAAcnyV,QAAUisB,EAEjB,KACLI,cAAcJ,EAAW,CAC1B,GACA,CAACqmU,KAECL,EAAe,OAAO,KAE3B,MAAMY,EAAgBZ,EAAc55H,QAAQ05H,GAE5C,OACEziM,EAAAA,GAAAA,KAAA,OACEjpF,UAAU,oEACVrxD,MAAO,CAAEuqC,OAAQ6yS,OAAsB/3W,EAAY,GAAIy8F,UAEvDw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,WAAUyQ,UACvBmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,OAAMyQ,SAAA,EACnBw4E,EAAAA,GAAAA,KAAA,OAAAx4E,UACEw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,UAASyQ,UACpBw4E,EAAAA,GAAAA,KAAA,QAAAx4E,UACEw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACihB,IAAI,GAAG5+G,IAAKk4W,EAAc1D,mBAIvClqJ,EAAAA,GAAAA,MAAA,OAAAnuH,SAAA,EACEmuH,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,mBAAkByQ,SAAA,CAAC,IACf,OAAb+7Q,QAAa,IAAbA,OAAa,EAAbA,EAAejnK,SAAS,cAAUt8B,EAAAA,GAAAA,KAACsiF,GAAS,CAACrqP,MAAO,KAAO,IACpC,QADuCsqW,EAC/DgB,EAAcC,kBAAU,IAAAjB,OAAA,EAAxBA,EAA0B/C,aAAa,WAE1Cx/L,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,OAAMyQ,SAChB+rJ,GAAmC,QAAzBivH,EAACe,EAAcC,kBAAU,IAAAhB,OAAA,EAAxBA,EAA0B/0J,oBAOpD,6ECmBA,MACA,GAAe,sBAA0B,iEC5GzC,SAbA,SAAuBz2L,GAGoB,IAHnB,UACtB+/D,EAAY,MACTm+J,GACmCl+N,EACtC,OACEgpJ,EAAAA,GAAAA,KAAA,SACExpJ,KAAK,WACLugE,UAAW,mBAAmBA,OAC1Bm+J,GAGV,+FCcMuuH,GAAOzsV,IAAA,IAAC,SAAEwwE,GAA6BxwE,EAAA,OAC3CgpJ,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,OAAMyQ,SAAEA,GAAgB,EAGpCk8Q,GAAeA,KACnB/tJ,EAAAA,GAAAA,MAACb,GAAG,CACFh1C,GAAG,SACH/oF,UAAU,0DAAyDyQ,SAAA,EAEnEw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,iBAAgByQ,UAC7Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKs4W,GAAgB15P,IAAI,kBAElC+1D,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,qCAAoCyQ,UACjDmuH,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,uCAAsCyQ,SAAA,EACnDmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,+DAA8DyQ,SAAA,EAC3Ew4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO0R,UACnBnlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,YAAWqyB,UAEtBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKqrP,GAAgBzsI,IAAI,sBAElC+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAOtsF,EACnBnnI,OAAO,SACP6jD,IAAI,aACJ,aAAW,IAAGqyB,UAEdw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKsrP,GAAY1sI,IAAI,cAE9B+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO6R,OACnBtlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,SAAQqyB,UAEnBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKwrP,GAAa5sI,IAAI,uBAGjC0rG,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,6DAA4DyQ,SAAA,EACzEw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ0C,eACpBj2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,YAAWyQ,SACtB,oBAGDw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ2C,qBACpBl2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,YAAWyQ,SACtB,gCASL85Q,GAAgBA,KACpB3rJ,EAAAA,GAAAA,MAAA,UAAQ5+H,UAAU,0DAAyDyQ,SAAA,EACzEmuH,EAAAA,GAAAA,MAAA,OAAAnuH,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,KAAGt/G,KAAM,UAAUumL,KAAalwJ,UAAU,aAAYyQ,SACnDy/I,MAEHtxB,EAAAA,GAAAA,MAAA,KAAG5+H,UAAU,oEAAmEyQ,SAAA,EAC9Ew4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO0R,UACnBnlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,YAAWqyB,UAEtBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKqrP,GAAgBzsI,IAAI,sBAElC+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAOtsF,EACnBnnI,OAAO,SACP6jD,IAAI,aACJ,aAAW,IAAGqyB,UAEdw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKsrP,GAAY1sI,IAAI,cAE9B+1D,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMjC,OAAO6R,OACnBtlO,OAAO,SACP6jD,IAAI,aACJ,aAAW,SAAQqyB,UAEnBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKwrP,GAAa5sI,IAAI,yBAInC+1D,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKs4W,GACL15P,IAAI,aACJlzB,UAAU,UACV9+E,MAAO,OAET09M,EAAAA,GAAAA,MAAA,OAAAnuH,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ0C,eACpBj2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,oBAAmByQ,SAC9B,oBAGDw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ2C,qBACpBl2N,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,eAAcyQ,SACzB,2BAODo8Q,GAAyB,CAC7BptV,KAAM,SACN+2F,MAAO,GACPiB,kBAAmB,CACjBx6E,MAAO,UA2VX,SArVA,WACE,MAAO6vU,EAAcC,IAAmB38U,EAAAA,EAAAA,WAAS,IAC1C48U,EAAwBC,IAA6B78U,EAAAA,EAAAA,WAAS,IAC9DskR,EAAgBC,IAAqBvkR,EAAAA,EAAAA,WAAS,GAE/C88U,GAAwB/zN,EAAAA,EAAAA,cAC5B,IAAM8zN,GAA2B/zV,IAAUA,KAC3C,IAEIi0V,GAAeh0N,EAAAA,EAAAA,cAAY,IAAMw7J,GAAkB,IAAO,IAEhE,OACE/1F,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,aAAYyQ,SAAA,EAC1Bw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,qEAAoEyQ,UACjFw4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,UACVw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,WAAW1rF,IAAKs4W,GAAgB15P,IAAI,oBAGzD0rG,EAAAA,GAAAA,MAACb,GAAG,CACFh1C,GAAG,SACH/oF,UAAU,yDAAwDyQ,SAAA,EAElEmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,oBAAmByQ,SAAA,EAChCmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,2DAA0DyQ,SAAA,EACtEw4E,EAAAA,GAAAA,KAAA,QAAAx4E,SAAM,gBACNw4E,EAAAA,GAAAA,KAAA,SAAM,KAACA,EAAAA,GAAAA,KAAA,YACP21C,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,QAAOyQ,SAAA,CAAC,kBAEtBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK84W,GAAYptR,UAAU,YAAYkzB,IAAI,SAEpD+1D,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,QAAAx4E,SAAM,sBAERw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,qBAAoByQ,SAAC,sCAIlCmuH,EAAAA,GAAAA,MAAA,KACEj1J,KAAK,WACLq2B,UAAU,qDAAoDyQ,SAAA,EAE9DmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,wCAAuCyQ,SAAA,EACrDw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK8oP,GACLlqI,IAAI,QACJlzB,UAAU,uBAEZ4+H,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,OAAMyQ,SAAA,CACnB,KACDw4E,EAAAA,GAAAA,KAAA,QAAAx4E,SAAM,gBAGVw4E,EAAAA,GAAAA,KAAA,QAAMjpF,UAAU,GAAEyQ,SAAC,mBAGvBw4E,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,wBAAuByQ,UACpCmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,iDAAgDyQ,SAAA,EAC9Dw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAK+4W,GAAen6P,IAAI,GAAGhyG,MAAO,OACzC+nK,EAAAA,GAAAA,KAAA,QACEjpF,UAAU,iDACVrxD,MAAO,CAAExrB,KAAM,IAAKowB,IAAK,KAAMk9D,UAE/Bw4E,EAAAA,GAAAA,KAACspE,GAAM,CACL13O,MAAOo1O,GAAMnC,QAAQw/H,2BACrBhvJ,cAAe,CACb9qL,OAAQ,IACRtyB,MAAO,OACJ2rW,iBAOfjuJ,EAAAA,GAAAA,MAACb,GAAG,CAAC/9H,UAAU,4DAA2DyQ,SAAA,EACxEmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,2BAA0ByQ,SAAA,EACvCmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,6BAA4ByQ,SAAA,EACxCw4E,EAAAA,GAAAA,KAAA,QAAAx4E,SAAM,sBAAwB,KAACw4E,EAAAA,GAAAA,KAAA,QAAAx4E,SAAM,WAAc,QAErDw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,2BAA0ByQ,SAAC,+DAGxCmuH,EAAAA,GAAAA,MAAA,OAAKlxL,GAAG,UAAUsyD,UAAU,oCAAmCyQ,SAAA,EAC7DmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,8BAA6ByQ,SAAA,EACzCmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,iBAAgByQ,SAAA,EAC5Bw4E,EAAAA,GAAAA,KAACyjM,GAAI,CAAAj8Q,SAAC,OACNmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,cAAayQ,SAAA,EAC3Bw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQy/H,oBACpBhzV,OAAO,SACP6jD,IAAI,aAAYqyB,SACjB,qCAEI,IAAI,2CAIbmuH,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,YAAWyQ,SAAA,EACvBw4E,EAAAA,GAAAA,KAACyjM,GAAI,CAAAj8Q,SAAC,OACNmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,cAAayQ,SAAA,EAC3BmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,kBAAiByQ,SAAA,CAAC,2BACP,KACzBmuH,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,oBAAmByQ,SAAA,EACjCw4E,EAAAA,GAAAA,KAAA,UACE,aAAW,eACXjpF,UAAU,YACVimC,QAASA,IAAM8mP,GAAiB7zV,IAAUA,IAC1CouG,aAAcA,IAAMylP,GAAgB,GACpCxlP,aAAcA,IAAMwlP,GAAgB,GAAOt8Q,UAE3Cw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAAC39F,IAAKk5W,GAAiBt6P,IAAI,cACzB,IACT45P,IACCluJ,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,WAAUyQ,SAAA,EACxBw4E,EAAAA,GAAAA,KAACspE,GAAM,CACL13O,MAAOo1O,GAAMnC,QAAQ2/H,iBACrBnvJ,cAAe,CACbp9M,MAAO,IACPsyB,OAAQ,OACLq5U,MAEJ,UAGF,KACJ,KACH5jM,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQ2/H,iBACpBlzV,OAAO,SACP6jD,IAAI,aAAYqyB,SACjB,aAEI,IAAI,wBAGXw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,uCAAsCyQ,UACnDmuH,EAAAA,GAAAA,MAAA,OACE5+H,UAAU,mEACVrxD,MAAO,CAAExrB,KAAM,EAAGowB,IAAK,GAAIk9D,SAAA,EAE3Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK8pP,GACLlrI,IAAI,UACJlzB,UAAU,aAEZ4+H,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,OAAMyQ,SAAA,EACpBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJjS,UAAU,OACV1rF,IAAK+pP,GACL7qN,OAAQ,GACRtyB,MAAO,KACN,IAAI,gCAQnB09M,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,8BAA6ByQ,SAAA,EAC1CmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,OAAMyQ,SAAA,EACnBw4E,EAAAA,GAAAA,KAAA,OACEjpF,UAAU,oBACVrxD,MAAO,CACLztB,MAAO,EACPmpP,WAAY,UACZ92N,IAAK,GACL2lC,OAAQ8zS,EAAyB,IAAM,IACvC7pW,KAAM,GACNqyH,QAAS,MAGbyzC,EAAAA,GAAAA,KAAA,OACEjpF,UAAU,oBACVrxD,MAAO,CACLztB,MAAO,EACPmpP,WAAY,UACZ92N,IAAK,GACL2lC,OAAQ8zS,EAAyB,IAAM,IACvC7pW,KAAM,GACNqyH,QAAS,MAGbopF,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,YAAWyQ,SAAA,EACxBw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,cAAayQ,SACvBu8Q,GACC/jM,EAAAA,GAAAA,KAAA,UACEjpF,UAAU,kBACV,aAAW,wCACXimC,QAASinP,EAAsBz8Q,UAE/Bw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACihB,IAAI,YAAY5+G,IAAKo5W,QAG9BzkM,EAAAA,GAAAA,KAAA,QAAAx4E,SAAM,SAGVw4E,EAAAA,GAAAA,KAAA,OACEjpF,UAAU,uBACVrxD,MAAO,CACLsO,MAAO+vU,EAAyB,iBAAch5W,GAC9Cy8F,SACH,+CAIDu8Q,IACApuJ,EAAAA,GAAAA,MAAA+pB,GAAAA,SAAA,CAAAl4I,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,kBAAiByQ,SAAC,0EAIjCw4E,EAAAA,GAAAA,KAAA,KACEt/G,KAAMsmL,GAAMnC,QAAQy/H,oBACpBhzV,OAAO,SACP6jD,IAAI,aACJ4hB,UAAU,uBAAsByQ,UAEhCmuH,EAAAA,GAAAA,MAAC+uJ,GAAY,CAAC3tR,UAAU,YAAWyQ,SAAA,CAChC,KACDw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK8oP,GACLlqI,IAAI,QACJlzB,UAAU,uBAEZipF,EAAAA,GAAAA,KAAA,QAAAx4E,SAAM,gCAKdmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,iDAAgDyQ,SAAA,EAC7Dw4E,EAAAA,GAAAA,KAAC2kM,GAAc,CACb/hN,SAAUqhN,EACVjrV,QAAS+qV,KAEX/jM,EAAAA,GAAAA,KAAA,QACEhjD,QAASinP,EACTltR,UAAU,aACVrxD,MAAO,CACLsO,MAAO+vU,EAAyB,iBAAch5W,GAC9Cy8F,SAEDu8Q,EACG,0CACA,uCAIVpuJ,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,aAAYyQ,SAAA,EACvBu8Q,IACA/jM,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,OAAMyQ,UACnBw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,+BAGlBgtR,IACCpuJ,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,OAAMyQ,SAAA,EACnBmuH,EAAAA,GAAAA,MAAA,OAAAnuH,SAAA,EACEmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,OAAMyQ,SAAA,EACnBw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,cAAayQ,SAAC,OAC3Bw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,uBAAsByQ,SAAC,kCAIxCw4E,EAAAA,GAAAA,KAAA,OAAKjpF,UAAU,kBAAiByQ,SAAC,6EAKnCmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,+CAA8CyQ,SAAA,EAC3Dw4E,EAAAA,GAAAA,KAAC0kM,GAAY,CACX3tR,UAAU,OACVrxD,MAAO,CAAEisC,WAAY,IAAKpnC,OAAQ,IAClCyyF,QAASA,IACP1jH,OAAOkhC,KACLwsM,GAAMnC,QAAQ2/H,iBACd,SACA,uBAEHh9Q,SACF,8BAGDmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,iDAAgDyQ,SAAA,EAC7Dw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK8pP,GACLlrI,IAAI,UACJlzB,UAAU,aAEZ4+H,EAAAA,GAAAA,MAAA,QAAM5+H,UAAU,OAAMyQ,SAAA,EACpBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJjS,UAAU,OACV1rF,IAAK+pP,GACL7qN,OAAQ,GACRtyB,MAAO,KACN,IAAI,2BAOjB+nK,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,sDAAqDyQ,UAClEw4E,EAAAA,GAAAA,KAAA,UACEjpF,UAAU,cACV,aAAW,uBACXimC,QAASknP,EAAa18Q,UAEtBw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKu5W,GACL36P,IAAI,8BACJlzB,UAAU,qCAQxBipF,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,8DAA6DyQ,UAC1Ew4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKw5W,GACL56P,IAAI,YACJlzB,UAAU,6BAIhBipF,EAAAA,GAAAA,KAAC0jM,GAAY,KACb1jM,EAAAA,GAAAA,KAACshM,GAAa,KACdthM,EAAAA,GAAAA,KAACsrE,GAAQ,CACPjgP,IAAK27O,GAAMlC,MAAMggI,mCACjBzuR,MA7US,4CA8UTk0J,OAAQkhE,EACRjhE,UAAWkhE,QAGf1rI,EAAAA,GAAAA,KAAC+kM,GAAc,MAGrB,EC1cA,MACA,GAAe,sBAA0B,0ECczC,SA1CA,WAAwB,IAADC,EACrB,MAAMjuL,EAAWoJ,KACXmc,EAAiC,QAAzB0oK,E7YgJP/zH,GAA4BN,W6YhJI,IAAAq0H,OAAA,EAAtBA,EAAwB1oK,SAEzC,OACEqZ,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,2CAA0CyQ,SAAA,EAC7DmuH,EAAAA,GAAAA,MAACpB,GAAG,CAAA/sH,SAAA,EACFw4E,EAAAA,GAAAA,KAAC3rD,GAAI,CAACnjE,GAAG,IAAGs2C,UACVw4E,EAAAA,GAAAA,KAACh3E,GAAK,CAACjS,UAAU,yBAAyB1rF,IAAK45W,OACzC,QAEVjlM,EAAAA,GAAAA,KAACu0C,GAAG,CAACx9H,UAAU,wBAAuByQ,UACpCw4E,EAAAA,GAAAA,KAACnzI,KAAM,CACLlH,cAAes/N,GACfr/N,MAAM,EACNmxD,UAAU,wBAGd4+H,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,cAAayQ,SAAA,CACxB80G,EAAS,KAACt8B,EAAAA,GAAAA,KAAA,SAAM,yBAEnBA,EAAAA,GAAAA,KAAA,MAAIjpF,UAAU,aAAYyQ,SAAC,wEAG3Bw4E,EAAAA,GAAAA,KAAC6mF,GAAW,CAAAr/J,UACVw4E,EAAAA,GAAAA,KAACL,GAAS,CAAC5oF,UAAU,uDAAsDyQ,UACzEw4E,EAAAA,GAAAA,KAAColF,GAAmB,CAClBj+J,UAAW,UACXr0B,KAAK,YACLkxL,cAAc,eACdhnI,QAASA,IACP+5D,EACE,GAAGsvD,GAAOloH,KAAKmoH,cAAcD,GAAOC,WAAW4+H,wBAQ/D,ECgHA,MACA,GAAe,sBAA0B,kEC9EzC,SA3EA,WAA4B,IAAD1/G,EACzB,MAAOimD,EAAgBC,IAAqBvkR,EAAAA,EAAAA,WAAS,GAC/CwkR,GAAwBpkR,EAAAA,EAAAA,SAAO,GAC/B8pN,EAA4B,QAAlBmU,EAAGpU,YAAe,IAAAoU,OAAA,EAAfA,EAAiBtT,KAWpC,OATAjpN,EAAAA,EAAAA,YAAU,KACHwiR,IAAkBE,EAAsBj7R,SAE7C,iBACQ60O,GAA4B,CAAEqmD,iBAAiB,IACrDD,EAAsBj7R,SAAU,CACjC,EAHD,EAGI,GACH,CAAC+6R,KAGFzrI,EAAAA,GAAAA,KAAA0/D,GAAAA,SAAA,CAAAl4I,UACEmuH,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,oCAAmCyQ,SAAA,EACtDmuH,EAAAA,GAAAA,MAAA,OAAK5+H,UAAU,iCAAgCyQ,SAAA,EAC7CmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,uBAAsByQ,SAAA,EACnCw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAK85W,GACLl7P,IAAI,kBACJlzB,UAAU,kBAEZ4+H,EAAAA,GAAAA,MAAA,MAAI5+H,UAAU,0BAAyByQ,SAAA,CAAC,iBAEtCw4E,EAAAA,GAAAA,KAAA,SACW,OAAVqxE,QAAU,IAAVA,OAAU,EAAVA,EAAY/0C,gBAGjBt8B,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,sCAAqCyQ,SAAC,iGAInDw4E,EAAAA,GAAAA,KAACh3E,GAAK,CACJ39F,IAAKwgT,GACL5hM,IAAI,yBACJlzB,UAAU,gCAId4+H,EAAAA,GAAAA,MAACh2C,GAAS,CAAC5oF,UAAU,uCAAsCyQ,SAAA,EACzDw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,4BAA2ByQ,SAAC,2BACzCmuH,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,aAAYyQ,SAAA,EACzBw4E,EAAAA,GAAAA,KAAColF,GAAmB,CAClBj+J,UAAW,UACXr0B,KAAK,iBACLkxL,cAAc,cACdC,gBAAgB,wBAChBjnI,QAASA,IAAM0uL,GAAkB,MAEnC1rI,EAAAA,GAAAA,KAAColF,GAAmB,CAClBtlF,GAAG,IACHp/G,KAAMsmL,GAAMjC,OAAO+mE,SACnB93Q,MAAO,UACPmzD,UAAW,UACXr0B,KAAK,WACL+wL,UAAWuhH,GACXrhH,aAAa,aACbC,cAAc,cACdC,gBAAgB,2BAItBjkF,EAAAA,GAAAA,KAACsrE,GAAQ,CACPjgP,IAAK27O,GAAMlC,MAAMyG,qBACjBl1J,MApES,kCAqETk0J,OAAQkhE,EACRjhE,UAAWkhE,QAKrB,ECjFO,IAAK25D,GAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,kBAAzBA,EAAyB,YAAzBA,CAAyB,MAuErC,SA1DA,SAA8BruV,GAEE,IAFD,KAC7BR,EAAI,MAAE6/D,EAAK,QAAEpjE,EAAO,UAAEwmG,EAAS,YAAEw+H,EAActT,GAAgB+B,MACpC1vN,EAC3B,MAAOkhO,EAAiBC,IAAsBhxN,EAAAA,EAAAA,WAAkB,GAqBhE,OAXA8B,EAAAA,EAAAA,YAAU,KACR,IAAImvN,EAKJ,OAJKF,IACHE,EAAYn0M,YAAW,IAAMk0M,GAAmB,IAAO,MAGlD,KACLn8H,aAAao8H,EAAU,CACxB,GACA,CAACF,KAGFviC,EAAAA,GAAAA,MAACpB,GAAG,CAACx9H,UAAU,sGAAqGyQ,SAAA,EAClHmuH,EAAAA,GAAAA,MAAC8hC,GAAK,CACJC,IAAKlhO,IAAS6uV,GAA0BhtH,QAAU,EAAI,EACtDthK,UAAW,sCAEPvgE,IAAS6uV,GAA0BhtH,SAAYH,EAA6C,sBAA3B,qCACnE1wJ,SAAA,CAEDhxE,IAAS6uV,GAA0BhtH,UAAWr4E,EAAAA,GAAAA,KAAC63E,GAAc,KAC9DliC,EAAAA,GAAAA,MAAA,OAAAnuH,SAAA,EACEw4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,yCAAwCyQ,SAClDnR,IAEFpjE,IACC+sJ,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,gDAA+CyQ,SACzDv0E,OAINuD,IAAS6uV,GAA0B/sH,OAAQt4E,EAAAA,GAAAA,KAAA,KAAGjpF,UAAU,kBAAiByQ,SAAC,sCAG5EhxE,IAAS6uV,GAA0B/sH,MAAQJ,IAC1Cl4E,EAAAA,GAAAA,KAAA,OAAAx4E,UACEw4E,EAAAA,GAAAA,KAACg2C,GAAM,CAAC5kN,QAAQ,OAAO4rH,QA5CRu7H,KACjB9+H,IACFk+H,GAAgB1pG,SAASx0B,EAAW,CAAExmG,QAASA,GAAWojE,IAC1D/8E,OAAO4hC,SAASwlB,KAAOu3L,EAEnB,EAuC+CzwJ,SAAC,iBAO1D,ECpEM89Q,GAA4B,IxlBkzV3B,cAAwCr9J,GAS3CqK,sBAAAA,CAAuBC,EAA2BvuL,GAC9C,OAAOouL,GAA4Bp5M,KAAKkvM,eAAeoK,uBAAuBC,EAA2BvuL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACjK,CASAqK,oBAAAA,CAAqBC,EAAyBzuL,GAC1C,OAAOouL,GAA4Bp5M,KAAKkvM,eAAesK,qBAAqBC,EAAyBzuL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC7J,CASAuK,mBAAAA,CAAoBC,EAAW3uL,GAC3B,OAAOouL,GAA4Bp5M,KAAKkvM,eAAewK,oBAAoBC,EAAW3uL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC9I,CAQAyK,iBAAAA,CAAkB5uL,GACd,OAAOouL,GAA4Bp5M,KAAKkvM,eAAe0K,kBAAkB5uL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACjI,CAQA0K,iBAAAA,CAAkB7uL,GACd,OAAOouL,GAA4Bp5M,KAAKkvM,eAAe2K,kBAAkB7uL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACjI,CAYA2K,cAAAA,CAAeC,EAAeC,EAAWxB,EAAU56C,EAAO5yI,GACtD,OAAOouL,GAA4Bp5M,KAAKkvM,eAAe4K,eAAeC,EAAeC,EAAWxB,EAAU56C,EAAO5yI,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACzK,CAUA8K,uBAAAA,CAAwBC,EAASC,EAA4BnvL,GACzD,OAAOouL,GAA4Bp5M,KAAKkvM,eAAe+K,wBAAwBC,EAASC,EAA4BnvL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC5K,CAUAiL,qBAAAA,CAAsBC,EAAiBC,EAAwBtvL,GAC3D,OAAOouL,GAA4Bp5M,KAAKkvM,eAAekL,sBAAsBC,EAAiBC,EAAwBtvL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC9K,CASAoL,mBAAAA,CAAoBF,EAAiBrvL,GACjC,OAAOouL,GAA4Bp5M,KAAKkvM,eAAeqL,oBAAoBF,EAAiBrvL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACpJ,CAWAqL,qBAAAA,CAAsBH,EAAiBC,EAAwBG,EAA0BzvL,GACrF,OAAOouL,GAA4Bp5M,KAAKkvM,eAAesL,sBAAsBH,EAAiBC,EAAwBG,EAA0BzvL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WACxM,CAUAuL,mBAAAA,CAAoBf,EAAWgB,EAA6B3vL,GACxD,OAAOouL,GAA4Bp5M,KAAKkvM,eAAewL,oBAAoBf,EAAWgB,EAA6B3vL,GAAS6rF,MAAMvrF,GAAYA,EAAQtrB,KAAKwuM,MAAOxuM,KAAKmvM,WAC3K,GwlBh7VFsgC,QACA19O,EACAinP,ICLyE,IAEtEuzH,GAAwB,SAAxBA,GAAwB,OAAxBA,EAAwB,YAAxBA,CAAwB,EAAxBA,IAAwB,IAI7B,MAAMC,GAAsE,CAC1E,CAAC5gI,GAAsBoV,YAAa,iCACpC,CAACpV,GAAsBo9H,QAAS,4BAChC,CAACp9H,GAAsBksB,OAAQ,kBAiDjC,SA9CA,WACE,MAAOpY,GAAetwD,MACfq9K,EAAuBC,IAA4Bv+U,EAAAA,EAAAA,YAEpDw+U,GAAcz1N,EAAAA,EAAAA,cAAY2+B,UAC9B,MAAM7pJ,ODTyB6pJ,WACjC,IAEE,aADwBy2L,GAA0B9yJ,qBAAqB,CAAE57C,WAAU19I,IAErF,CAAE,MACA,MACF,GCGyB0sV,CAA2BhvM,GAAOvyB,QAErDr/G,GAAoB,OAARA,QAAQ,IAARA,GAAAA,EAAU4kK,SACxB87K,EAAyB9gI,GAAsBoV,YAC/CrC,GAAgB1pG,SACdi4F,GAAWE,iBAAiB4T,WAC5B,CAAE/mO,QAASuyV,GAA6B5gI,GAAsBoV,gBAGhE0rH,EAAyB9gI,GAAsBo9H,QAC/CrqH,GAAgB1pG,SACdi4F,GAAWE,iBAAiB47H,OAC5B,CAAE/uV,QAASuyV,GAA6B5gI,GAAsBo9H,UAElE,GACC,IAgBH,OAdA/4U,EAAAA,EAAAA,YAAU,KACR,MAAM2tI,EAAQ8hF,EAAYxnO,IAAIq0V,GAAyBM,MACvD,IAAKjvM,EAMH,OALA8uM,EAAyB9gI,GAAsBksB,YAC/CnZ,GAAgB1pG,SACdi4F,GAAWE,iBAAiB0qB,MAC5B,CAAE79O,QAASuyV,GAA6B5gI,GAAsBksB,SAKlE60G,EAAY/uM,EAAM,GACjB,CAAC8hF,EAAaitH,KAGf3lM,EAAAA,GAAAA,KAAC8lM,GAAqB,CACpBrsP,UAAWgsP,EACXjvV,KAAMivV,EAAwBJ,GAA0B/sH,KAAO+sH,GAA0BhtH,QACzFhiK,MAAOovR,EAAwBD,GAA6BC,GAAyB,qBACrFxyV,QAASwyV,EAAwB,GAAK,mCAG5C,EChCM/7L,I3pB8OJpH,G2pB9OiC,CACjC,CACE3sI,KAAM,IACNxD,SAAS6tI,EAAAA,GAAAA,KAAC+lM,GAAQ,KAEpB,CACEpwU,KAAM,YACNxD,SAAS6tI,EAAAA,GAAAA,KAACgmM,GAAW,QA8HzB,SAAkC7vH,GAChC,MAAM7zE,EAASt4K,OAAOg1C,KAAKm3M,GAAY8vH,SAAS/vH,GAChC,CAAC,IAAIA,IAAQ,IAAIA,OAClBn/N,KAAK4e,IAAI,CACpBA,OACAxD,SAAS6tI,EAAAA,GAAAA,KAACkmM,GAAU,CAAChwH,KAAMA,UAG/B,OAAO5zE,CACT,CArIK6jM,CAAyBhwH,IAC5B,CACExgN,KAAM,gBACNxD,SAAS6tI,EAAAA,GAAAA,KAAComM,GAAW,KAEvB,CACEzwU,KAAM0wM,GAAOF,SAAS8S,uBACtB9mN,SAAS6tI,EAAAA,GAAAA,KAACqmM,GAAe,KAE3B,CACE1wU,KAAM0wM,GAAOF,SAAS+S,wBACtB/mN,SAAS6tI,EAAAA,GAAAA,KAACqmM,GAAe,KAE3B,CACE1wU,KAAM0wM,GAAOF,SAASgT,aACtBhnN,SAAS6tI,EAAAA,GAAAA,KAACsmM,GAAW,KAEvB,CACE3wU,KAAM0wM,GAAOF,SAASiT,cACtBjnN,SAAS6tI,EAAAA,GAAAA,KAACumM,GAAY,KAExB,CACE5wU,KAAM,GAAG0wM,GAAOloH,KAAKmoH,aACrBn0M,SAAS6tI,EAAAA,GAAAA,KAAC+jB,GAAM,IAChBv8F,SAAU,CACR,CACE7xD,KAAM0wM,GAAOC,WAAW6c,QACxBhxN,SAAS6tI,EAAAA,GAAAA,KAACwmM,GAAU,KAEtB,CACE7wU,KAAM0wM,GAAOC,WAAW0T,WACxB7nN,SACE6tI,EAAAA,GAAAA,KAACssI,GAAc,CAAA9kN,UACbw4E,EAAAA,GAAAA,KAACymM,GAAoB,OAI3B,CACE9wU,KAAM0wM,GAAOC,WAAW+f,cACxBl0N,SAAS6tI,EAAAA,GAAAA,KAAC0mM,GAAyB,KAErC,CACE/wU,KAAM0wM,GAAOC,WAAWqgB,cACxBx0N,SACE6tI,EAAAA,GAAAA,KAACssI,GAAc,CAAA9kN,UACbw4E,EAAAA,GAAAA,KAAC2mM,GAAgB,OAIvB,CACEhxU,KAAM0wM,GAAOC,WAAWogB,SACxBv0N,SACE6tI,EAAAA,GAAAA,KAACssI,GAAc,CAAA9kN,UACbw4E,EAAAA,GAAAA,KAACsoI,GAA2B,CAAA9gN,UAC1Bw4E,EAAAA,GAAAA,KAAC4mM,GAAkB,SAK3B,CACEjxU,KAAM0wM,GAAOC,WAAW2hB,gBACxB91N,SACE6tI,EAAAA,GAAAA,KAACssI,GAAc,CAAA9kN,UACbw4E,EAAAA,GAAAA,KAAC6mM,GAAyB,OAIhC,CACElxU,KAAM0wM,GAAOC,WAAWiP,eACxBpjN,SAAS6tI,EAAAA,GAAAA,KAAC8mM,GAAyB,KAErC,CACEnxU,KAAM0wM,GAAOC,WAAW+d,WACxBlyN,SAAS6tI,EAAAA,GAAAA,KAAC+mM,GAAa,KAEzB,CACEpxU,KAAM0wM,GAAOC,WAAW0gI,OACxB70U,SACE6tI,EAAAA,GAAAA,KAACssI,GAAc,CAAA9kN,UACbw4E,EAAAA,GAAAA,KAACinM,GAAmB,OAI1B,CACEtxU,KAAM0wM,GAAOC,WAAW2P,YACxB9jN,SAAS6tI,EAAAA,GAAAA,KAACknM,GAAU,KAEtB,CACEvxU,KAAM0wM,GAAOC,WAAWglE,QACxBn5Q,SAAS6tI,EAAAA,GAAAA,KAACmnM,GAAW,KAEvB,CACExxU,KAAM0wM,GAAOC,WAAWmgB,aACxBt0N,SACE6tI,EAAAA,GAAAA,KAACssI,GAAc,CAAA9kN,UACbw4E,EAAAA,GAAAA,KAAConM,GAAe,SAM1B,CACEzxU,KAAM0wM,GAAOF,SAASkhI,qBACtBl1U,SAAS6tI,EAAAA,GAAAA,KAACsnM,GAAmB,KAE/B,CACE3xU,KAAM0wM,GAAOF,SAASohI,mBACtBp1U,SAAS6tI,EAAAA,GAAAA,KAACwnM,GAAiB,KAE7B,CACE7xU,KAAM0wM,GAAOF,SAASC,iBACtBj0M,SAAS6tI,EAAAA,GAAAA,KAACynM,GAAe,KAE3B,CACE9xU,KAAM0wM,GAAOloH,KAAKsoH,WAEpB,CACE9wM,KAAM,IACNxD,SAAS6tI,EAAAA,GAAAA,KAAColC,GAAQ,M3pBkHbh8B,GAAa,CAClBnG,SAAU,MAAAsK,QAAA,EAAAA,GAAMtK,SAChBgH,OAAMrJ,GAAA,GACD,MAAA2M,QAAA,EAAAA,GAAMtD,OAAM,CACfI,oBAAoB,IAEtBhJ,QAASlB,GAAqB,CAAE7mK,OAAQ,MAAAi0K,QAAA,EAAAA,GAAMj0K,SAC9CuxK,eAAe,MAAA0C,QAAA,EAAAA,GAAM1C,gBAAiB6Z,KACtCpiB,6BACAolM,GACA79L,sBAAuB,MAAA0D,QAAA,EAAAA,GAAM1D,sBAC7BG,2BAA4B,MAAAuD,QAAA,EAAAA,GAAMvD,2BAClC1wK,OAAQ,MAAAi0K,QAAA,EAAAA,GAAMj0K,SACb4lG,cAjBW,IACdojE,GACAiL,G2pB5GF,YC1IA,SAbA,WACE,OACEvN,EAAAA,GAAAA,KAAC2nM,EAAc,CAAAngR,UACbw4E,EAAAA,GAAAA,KAACk3E,GAA2B,CAAA1vJ,UAC1BmuH,EAAAA,GAAAA,MAACh2C,GAAS,CAACE,OAAK,EAACC,GAAG,OAAO/oF,UAAU,UAASyQ,SAAA,EAC5Cw4E,EAAAA,GAAAA,KAAC2lB,GAAc,CAACjc,OAAQA,MACxB1J,EAAAA,GAAAA,KAAC4nM,GAAO,CAACv8K,aAAc,CAAE7rJ,SAAU,aAK7C,ECTA,GAZyBqoU,IACnBA,GAAeA,aAAuBnuM,UACxC,oFAAqB7pD,MAAK74F,IAAkD,IAAjD,OAAE8wV,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASlxV,EACpE8wV,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAY,GAExB,ECDWtiL,EAAAA,WAAoB15J,SAASmxC,eAAe,SACpD6P,QACHmzF,EAAAA,GAAAA,KAAC94I,EAAAA,WAAgB,CAAAsgE,UACfw4E,EAAAA,GAAAA,KAACmoM,GAAG,OAORC","sources":["../../src/Layout.ts","../node_modules/@solana/web3.js/node_modules/base-x/src/index.js","../node_modules/@solana/web3.js/node_modules/bs58/index.js","../node_modules/base64-js/index.js","../node_modules/bigint-buffer/dist/browser.js","../node_modules/bn.js/lib/bn.js","../node_modules/borsh/lib/index.js","../node_modules/borsh/node_modules/base-x/src/index.js","../node_modules/borsh/node_modules/bs58/index.js","../node_modules/buffer/index.js","../node_modules/ieee754/index.js","../node_modules/invariant/browser.js","../node_modules/jayson/lib/client/browser/index.js","../node_modules/jayson/lib/generateRequest.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/lz-string/libs/lz-string.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../QRCodeStyling/webpack/universalModuleDefinition","../QRCodeStyling/node_modules/qrcode-generator/qrcode.js","../QRCodeStyling/src/tools/merge.ts","../QRCodeStyling/src/tools/downloadURI.ts","../QRCodeStyling/src/tools/toDataUrl.ts","../QRCodeStyling/src/constants/errorCorrectionPercents.ts","../QRCodeStyling/src/figures/dot/QRDot.ts","../QRCodeStyling/src/constants/dotTypes.ts","../QRCodeStyling/src/figures/cornerSquare/QRCornerSquare.ts","../QRCodeStyling/src/constants/cornerSquareTypes.ts","../QRCodeStyling/src/figures/cornerDot/QRCornerDot.ts","../QRCodeStyling/src/constants/cornerDotTypes.ts","../QRCodeStyling/src/constants/shapeTypes.ts","../QRCodeStyling/src/core/QRSVG.ts","../QRCodeStyling/src/tools/calculateImageSize.ts","../QRCodeStyling/src/constants/gradientTypes.ts","../QRCodeStyling/src/constants/drawTypes.ts","../QRCodeStyling/src/constants/qrTypes.ts","../QRCodeStyling/src/core/QROptions.ts","../QRCodeStyling/src/constants/errorCorrectionLevels.ts","../QRCodeStyling/src/tools/sanitizeOptions.ts","../QRCodeStyling/src/index.ts","../QRCodeStyling/src/core/QRCodeStyling.ts","../QRCodeStyling/src/tools/getMode.ts","../QRCodeStyling/src/constants/modes.ts","../QRCodeStyling/webpack/bootstrap","../QRCodeStyling/webpack/startup","../QRCodeStyling/webpack/runtime/compat get default export","../QRCodeStyling/webpack/runtime/define property getters","../QRCodeStyling/webpack/runtime/hasOwnProperty shorthand","../node_modules/react-alice-carousel/lib/defaultProps.js","../node_modules/react-alice-carousel/lib/react-alice-carousel.js","../node_modules/react-alice-carousel/lib/types/index.js","../node_modules/react-alice-carousel/lib/utils/classnames.js","../node_modules/react-alice-carousel/lib/utils/common.js","../node_modules/react-alice-carousel/lib/utils/controls.js","../node_modules/react-alice-carousel/lib/utils/debug.js","../node_modules/react-alice-carousel/lib/utils/elements.js","../node_modules/react-alice-carousel/lib/utils/index.js","../node_modules/react-alice-carousel/lib/utils/mappers.js","../node_modules/react-alice-carousel/lib/utils/math.js","../node_modules/react-alice-carousel/lib/utils/render.js","../node_modules/react-alice-carousel/lib/utils/timers.js","../node_modules/react-alice-carousel/lib/views/DotsNavigation.js","../node_modules/react-alice-carousel/lib/views/Link.js","../node_modules/react-alice-carousel/lib/views/PlayPauseButton.js","../node_modules/react-alice-carousel/lib/views/PrevNextButton.js","../node_modules/react-alice-carousel/lib/views/SlideInfo.js","../node_modules/react-alice-carousel/lib/views/StageItem.js","../node_modules/react-alice-carousel/lib/views/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-verification-input/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/rpc-websockets/node_modules/eventemitter3/index.js","../node_modules/safe-buffer/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/ua-parser-js/src/ua-parser.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/vanilla-swipe/lib/index.js","../node_modules/vanilla-swipe/lib/types/index.js","../node_modules/vanilla-swipe/lib/utils/calculateDirection.js","../node_modules/vanilla-swipe/lib/utils/calculateDirectionDelta.js","../node_modules/vanilla-swipe/lib/utils/calculateDuration.js","../node_modules/vanilla-swipe/lib/utils/calculateMovingPosition.js","../node_modules/vanilla-swipe/lib/utils/calculatePosition.js","../node_modules/vanilla-swipe/lib/utils/calculateTraceDirections.js","../node_modules/vanilla-swipe/lib/utils/calculateVelocity.js","../node_modules/vanilla-swipe/lib/utils/checkIsMoreThanSingleTouches.js","../node_modules/vanilla-swipe/lib/utils/checkIsPassiveSupported.js","../node_modules/vanilla-swipe/lib/utils/checkIsTouchEventsSupported.js","../node_modules/vanilla-swipe/lib/utils/common.js","../node_modules/vanilla-swipe/lib/utils/createOptions.js","../node_modules/vanilla-swipe/lib/utils/getInitialProps.js","../node_modules/vanilla-swipe/lib/utils/getInitialState.js","../node_modules/vanilla-swipe/lib/utils/getOptions.js","../node_modules/vanilla-swipe/lib/utils/index.js","../node_modules/vanilla-swipe/lib/utils/resolveDirection.js","../node_modules/vanilla-swipe/lib/utils/rotateByAngle.js","../node_modules/vanilla-swipe/lib/utils/updateTrace.js","../node_modules/warning/warning.js","../node_modules/classnames/index.js","../node_modules/text-encoding-utf-8/lib/encoding.lib.mjs","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/react-helmet-async/src/constants.js","../node_modules/react-helmet-async/src/utils.js","../node_modules/react-helmet-async/src/server.js","../node_modules/react-helmet-async/src/HelmetData.js","../node_modules/react-helmet-async/src/Provider.js","../node_modules/react-helmet-async/src/client.js","../node_modules/react-helmet-async/src/Dispatcher.js","../node_modules/react-helmet-async/src/index.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/goober/dist/goober.modern.js","../node_modules/react-hot-toast/src/core/types.ts","../node_modules/react-hot-toast/src/core/utils.ts","../node_modules/react-hot-toast/src/core/store.ts","../node_modules/react-hot-toast/src/core/toast.ts","../node_modules/react-hot-toast/src/core/use-toaster.ts","../node_modules/react-hot-toast/src/components/error.tsx","../node_modules/react-hot-toast/src/components/loader.tsx","../node_modules/react-hot-toast/src/components/checkmark.tsx","../node_modules/react-hot-toast/src/components/toast-icon.tsx","../node_modules/react-hot-toast/src/components/toast-bar.tsx","../node_modules/react-hot-toast/src/components/toaster.tsx","../node_modules/react-hot-toast/src/index.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/@nestcoinco/hyper-api-gateway-api-client/dist/esm/base.js","../node_modules/@nestcoinco/hyper-api-gateway-api-client/dist/esm/common.js","../node_modules/@nestcoinco/hyper-api-gateway-api-client/dist/esm/api.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Image.js","images/safe.svg","components/QrCode/QrCode.tsx","components/DownloadStep/DownloadStep.tsx","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/Button.js","images/google-play.svg","components/DownloadBtn/DownloadBtn.tsx","images/hyper.svg","components/StickyHeader/StickyHeader.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/AccordionContext.js","../node_modules/react-bootstrap/esm/AccordionCollapse.js","../node_modules/react-bootstrap/esm/AccordionItemContext.js","../node_modules/react-bootstrap/esm/AccordionBody.js","../node_modules/react-bootstrap/esm/AccordionButton.js","../node_modules/react-bootstrap/esm/AccordionHeader.js","../node_modules/react-bootstrap/esm/AccordionItem.js","../node_modules/react-bootstrap/esm/Accordion.js","components/Collapsible/Collapsible.tsx","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Overlay.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/react-bootstrap/esm/helpers.js","../node_modules/react-bootstrap/esm/getInitialPopperStyles.js","../node_modules/react-bootstrap/esm/Popover.js","../node_modules/react-bootstrap/esm/Tooltip.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/Modal.js","images/copy.svg","components/DontForget/DontForget.tsx","images/tiktok.svg","images/x.svg","images/instagram.svg","images/whatsapp-black.svg","images/discord.svg","contents/socials.ts","utils/constants/events-types.ts","utils/constants/links.ts","utils/constants/routes.ts","utils/constants/page-names.ts","utils/constants/tracking-events.ts","utils/constants/index.ts","components/Footer/Footer.tsx","config/api-config.ts","../node_modules/@nestcoinco/hyper-api-gateway-api-client/dist/esm/configuration.js","config/default-apk.ts","contents/steps.ts","contents/faqs.ts","pages/DownloadApp/DownloadApp.tsx","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/ProgressBar.js","images/hyper-text-icon-purple.svg","images/trust.svg","images/download-anyway.svg","components/Lightbox/Lightbox.tsx","pages/DownloadNow/DownloadNow.tsx","contents/games.ts","images/support.svg","contents/why-play.ts","images/withdrawal.svg","images/bonus.svg","images/secure.svg","images/instagram-colored.svg","images/hyper-full-white.svg","contents/game-config.ts","../node_modules/axios/index.js","config/log-level.ts","utils/logger.ts","utils/storage.ts","images/checkmark-brand.svg","utils/show-toast.tsx","config/axios-instance.ts","api-clients/filesClient.ts","hooks/useDownloadApp.tsx","utils/helpers.ts","images/android-icon.svg","images/apple-logo-white.svg","images/amazon-logo.svg","utils/vendor.ts","hooks/useVendorDetection.ts","images/shimmer.svg","images/gift.svg","components/Bonus/Bonus.tsx","components/Buttons/AppDownloadButton/AppDownloadButton.tsx","pages/GameDetail/GameDetail.tsx","pages/NotFound/NotFound.tsx","components/Payments/PaymentConfirmationProvider.tsx","../node_modules/react-bootstrap/esm/createUtilityClasses.js","../node_modules/react-bootstrap/esm/Stack.js","utils/event-dispatcher.ts","components/Payments/LoadingSpinner/LoadingSpinner.tsx","components/Payments/PaymentStatus/PaymentStatus.tsx","pages/PaymentConfirmation/PaymentConfirmation.tsx","pages/TopupSuccessful/TopupSuccessful.tsx","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","images/left-arrow-white.svg","components/Headers/OnboardingHeader/OnboardingHeader.tsx","images/hyper-coin.svg","utils/renderHeaders.tsx","components/icons/DownArrowIcon.tsx","types/index.ts","../node_modules/react-bootstrap/esm/Spinner.js","components/CustomSpinner/CustomSpinner.tsx","pages/onboarding/HowMuchWouldYouLikeToMake/HowMuchWouldYouLikeToMake.tsx","images/google.svg","components/Buttons/PrimaryActionButton/PrimaryActionButton.tsx","config/auth-config.ts","api-clients/usersAuthClient.ts","images/facebook-logo.svg","pages/onboarding/SignUpPage/SignUpPage.tsx","api-clients/userAccountClient.ts","components/FixedFooter/FixedFooter.tsx","pages/ReusablePages/DefaultOnboardingStatusPage/DefaultOnboardingStatusPage.tsx","components/icons/GameControllerIcon.tsx","components/LoadingDots/LoadingDots.tsx","pages/onboarding/LoggingInPage/LoggingInPage.tsx","images/checkmark_successful.svg","pages/onboarding/SignUpSuccessfulPage/SignUpSuccessfulPage.tsx","../node_modules/@firebase/util/src/crypt.ts","../node_modules/@firebase/util/src/defaults.ts","../node_modules/@firebase/util/src/global.ts","../node_modules/@firebase/util/src/deferred.ts","../node_modules/@firebase/util/src/environment.ts","../node_modules/@firebase/util/src/errors.ts","../node_modules/@firebase/util/src/obj.ts","../node_modules/@firebase/util/src/query.ts","../node_modules/@firebase/util/src/subscribe.ts","../node_modules/@firebase/util/src/compat.ts","../node_modules/@firebase/component/src/component.ts","../node_modules/@firebase/component/src/constants.ts","../node_modules/@firebase/component/src/provider.ts","../node_modules/@firebase/component/src/component_container.ts","../node_modules/@firebase/logger/src/logger.ts","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../node_modules/@firebase/app/src/platformLoggerService.ts","../node_modules/@firebase/app/src/logger.ts","../node_modules/@firebase/app/src/constants.ts","../node_modules/@firebase/app/src/internal.ts","../node_modules/@firebase/app/src/errors.ts","../node_modules/@firebase/app/src/firebaseApp.ts","../node_modules/@firebase/app/src/api.ts","../node_modules/@firebase/app/src/indexeddb.ts","../node_modules/@firebase/app/src/heartbeatService.ts","../node_modules/@firebase/app/src/registerCoreComponents.ts","../node_modules/@firebase/app/src/index.ts","../node_modules/@firebase/firestore/src/auth/user.ts","../node_modules/@firebase/firestore/src/core/version.ts","../node_modules/@firebase/firestore/src/util/log.ts","../node_modules/@firebase/firestore/src/platform/browser/format_json.ts","../node_modules/@firebase/firestore/src/util/assert.ts","../node_modules/@firebase/firestore/src/util/error.ts","../node_modules/@firebase/firestore/src/api/credentials.ts","../node_modules/@firebase/firestore/src/core/database_info.ts","../node_modules/@firebase/firestore/src/model/path.ts","../node_modules/@firebase/firestore/src/model/document_key.ts","../node_modules/@firebase/firestore/src/util/input_validation.ts","../node_modules/@firebase/firestore/src/api/long_polling_options.ts","../node_modules/@firebase/firestore/src/util/debug_uid.ts","../node_modules/@firebase/firestore/src/util/types.ts","../node_modules/@firebase/firestore/src/remote/rest_connection.ts","../node_modules/@firebase/firestore/src/remote/rpc_error.ts","../node_modules/@firebase/firestore/src/platform/browser_lite/fetch_connection.ts","../node_modules/@firebase/firestore/src/util/misc.ts","../node_modules/@firebase/firestore/src/util/obj.ts","../node_modules/@firebase/firestore/src/util/base64_decode_error.ts","../node_modules/@firebase/firestore/src/util/byte_string.ts","../node_modules/@firebase/firestore/src/platform/browser/base64.ts","../node_modules/@firebase/firestore/src/model/normalize.ts","../node_modules/@firebase/firestore/src/lite-api/timestamp.ts","../node_modules/@firebase/firestore/src/model/server_timestamps.ts","../node_modules/@firebase/firestore/src/model/values.ts","../node_modules/@firebase/firestore/src/core/bound.ts","../node_modules/@firebase/firestore/src/core/filter.ts","../node_modules/@firebase/firestore/src/core/order_by.ts","../node_modules/@firebase/firestore/src/core/snapshot_version.ts","../node_modules/@firebase/firestore/src/util/sorted_map.ts","../node_modules/@firebase/firestore/src/util/sorted_set.ts","../node_modules/@firebase/firestore/src/model/object_value.ts","../node_modules/@firebase/firestore/src/model/document.ts","../node_modules/@firebase/firestore/src/core/target.ts","../node_modules/@firebase/firestore/src/core/query.ts","../node_modules/@firebase/firestore/src/remote/number_serializer.ts","../node_modules/@firebase/firestore/src/remote/serializer.ts","../node_modules/@firebase/firestore/src/platform/browser/serializer.ts","../node_modules/@firebase/firestore/src/remote/datastore.ts","../node_modules/@firebase/firestore/src/lite-api/components.ts","../node_modules/@firebase/firestore/src/platform/browser_lite/connection.ts","../node_modules/@firebase/firestore/src/lite-api/settings.ts","../node_modules/@firebase/firestore/src/local/lru_garbage_collector.ts","../node_modules/@firebase/firestore/src/local/lru_garbage_collector_impl.ts","../node_modules/@firebase/firestore/src/lite-api/database.ts","../node_modules/@firebase/firestore/src/lite-api/reference.ts","../node_modules/@firebase/firestore/src/lite-api/bytes.ts","../node_modules/@firebase/firestore/src/lite-api/field_path.ts","../node_modules/@firebase/firestore/src/lite-api/field_value.ts","../node_modules/@firebase/firestore/src/lite-api/geo_point.ts","../node_modules/@firebase/firestore/src/lite-api/vector_value.ts","../node_modules/@firebase/firestore/src/util/array.ts","../node_modules/@firebase/firestore/src/lite-api/user_data_reader.ts","../node_modules/@firebase/firestore/src/lite-api/snapshot.ts","../node_modules/@firebase/firestore/src/lite-api/query.ts","../node_modules/@firebase/firestore/src/lite-api/reference_impl.ts","../node_modules/@firebase/firestore/src/lite-api/user_data_writer.ts","../node_modules/@firebase/firestore/lite/register.ts","images/warning_alert_circle_orange.svg","components/Pill/HyperWarningPill.tsx","../node_modules/firebase/app/index.ts","../node_modules/tslib/tslib.es6.mjs","../node_modules/@firebase/auth/src/core/errors.ts","../node_modules/@firebase/auth/src/core/util/log.ts","../node_modules/@firebase/auth/src/core/util/assert.ts","../node_modules/@firebase/auth/src/core/util/location.ts","../node_modules/@firebase/auth/src/core/util/navigator.ts","../node_modules/@firebase/auth/src/core/util/delay.ts","../node_modules/@firebase/auth/src/core/util/emulator.ts","../node_modules/@firebase/auth/src/core/util/fetch_provider.ts","../node_modules/@firebase/auth/src/api/errors.ts","../node_modules/@firebase/auth/src/api/index.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha.ts","../node_modules/@firebase/auth/src/api/authentication/recaptcha.ts","../node_modules/@firebase/auth/src/api/account_management/account.ts","../node_modules/@firebase/auth/src/core/util/time.ts","../node_modules/@firebase/auth/src/core/user/id_token_result.ts","../node_modules/@firebase/auth/src/core/user/invalidation.ts","../node_modules/@firebase/auth/src/core/user/proactive_refresh.ts","../node_modules/@firebase/auth/src/core/user/user_metadata.ts","../node_modules/@firebase/auth/src/core/user/reload.ts","../node_modules/@firebase/auth/src/core/user/token_manager.ts","../node_modules/@firebase/auth/src/api/authentication/token.ts","../node_modules/@firebase/auth/src/core/user/user_impl.ts","../node_modules/@firebase/auth/src/core/util/instantiator.ts","../node_modules/@firebase/auth/src/core/persistence/in_memory.ts","../node_modules/@firebase/auth/src/core/persistence/persistence_user_manager.ts","../node_modules/@firebase/auth/src/core/util/browser.ts","../node_modules/@firebase/auth/src/core/util/version.ts","../node_modules/@firebase/auth/src/core/auth/middleware.ts","../node_modules/@firebase/auth/src/core/auth/password_policy_impl.ts","../node_modules/@firebase/auth/src/core/auth/auth_impl.ts","../node_modules/@firebase/auth/src/api/password_policy/get_password_policy.ts","../node_modules/@firebase/auth/src/platform_browser/load_js.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.ts","../node_modules/@firebase/auth/src/core/auth/emulator.ts","../node_modules/@firebase/auth/src/core/credentials/auth_credential.ts","../node_modules/@firebase/auth/src/api/account_management/email_and_password.ts","../node_modules/@firebase/auth/src/api/authentication/email_and_password.ts","../node_modules/@firebase/auth/src/core/credentials/email.ts","../node_modules/@firebase/auth/src/api/authentication/email_link.ts","../node_modules/@firebase/auth/src/api/authentication/idp.ts","../node_modules/@firebase/auth/src/core/credentials/oauth.ts","../node_modules/@firebase/auth/src/api/authentication/sms.ts","../node_modules/@firebase/auth/src/core/credentials/phone.ts","../node_modules/@firebase/auth/src/core/action_code_url.ts","../node_modules/@firebase/auth/src/core/providers/email.ts","../node_modules/@firebase/auth/src/core/providers/federated.ts","../node_modules/@firebase/auth/src/core/providers/oauth.ts","../node_modules/@firebase/auth/src/core/providers/facebook.ts","../node_modules/@firebase/auth/src/core/providers/google.ts","../node_modules/@firebase/auth/src/core/providers/github.ts","../node_modules/@firebase/auth/src/core/providers/twitter.ts","../node_modules/@firebase/auth/src/api/authentication/sign_up.ts","../node_modules/@firebase/auth/src/core/user/user_credential_impl.ts","../node_modules/@firebase/auth/src/mfa/mfa_error.ts","../node_modules/@firebase/auth/src/core/user/link_unlink.ts","../node_modules/@firebase/auth/src/core/user/reauthenticate.ts","../node_modules/@firebase/auth/src/core/strategies/credential.ts","../node_modules/@firebase/auth/src/mfa/mfa_user.ts","../node_modules/@firebase/auth/src/core/persistence/index.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/browser.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/local_storage.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/session_storage.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/receiver.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/promise.ts","../node_modules/@firebase/auth/src/core/util/event_id.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/sender.ts","../node_modules/@firebase/auth/src/platform_browser/auth_window.ts","../node_modules/@firebase/auth/src/platform_browser/util/worker.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/indexed_db.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_loader.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_verifier.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/phone.ts","../node_modules/@firebase/auth/src/api/account_management/mfa.ts","../node_modules/@firebase/auth/src/api/authentication/mfa.ts","../node_modules/@firebase/auth/src/platform_browser/providers/phone.ts","../node_modules/@firebase/auth/src/core/util/resolver.ts","../node_modules/@firebase/auth/src/core/strategies/idp.ts","../node_modules/@firebase/auth/src/core/strategies/abstract_popup_redirect_operation.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/popup.ts","../node_modules/@firebase/auth/src/core/strategies/redirect.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/redirect.ts","../node_modules/@firebase/auth/src/core/auth/auth_event_manager.ts","../node_modules/@firebase/auth/src/core/util/validate_origin.ts","../node_modules/@firebase/auth/src/api/project_config/get_project_config.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/gapi.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/iframe.ts","../node_modules/@firebase/auth/src/platform_browser/util/popup.ts","../node_modules/@firebase/auth/src/core/util/handler.ts","../node_modules/@firebase/auth/src/platform_browser/popup_redirect.ts","../node_modules/@firebase/auth/src/core/auth/firebase_internal.ts","../node_modules/@firebase/auth/src/platform_browser/index.ts","../node_modules/@firebase/auth/src/core/auth/register.ts","../node_modules/@firebase/auth/src/core/auth/initialize.ts","config/firebase.ts","../node_modules/@firebase/util/src/emulator.ts","../node_modules/@firebase/auth/src/core/index.ts","../node_modules/@firebase/auth/src/core/strategies/anonymous.ts","components/CustomToast/CustomToast.tsx","api-clients/referralsClient.ts","images/gem.svg","pages/onboarding/ReferralCodeScreen/ReferralCodePage.tsx","components/TextInputAreas/HyperTextField/HyperTextField.tsx","context/username-page-context.tsx","components/Buttons/CircularButton/CircularButton.tsx","images/edit_image_icons.svg","images/camera.svg","api-clients/usersAvatarsClient.ts","components/create-username-page/AvatarModal/AvatarModal.tsx","components/create-username-page/AvatarSection/AvatarSection.tsx","pages/onboarding/CreateUserNamePage/CreateUserNamePage.tsx","images/whatsapp.svg","pages/onboarding/SignUpCongratulationsPage/SignUpCongratulationsPage.tsx","pages/onboarding/DownloadInstructionsPage1/DownloadInstructionsPage1.tsx","components/ProtectedRoute/ProtectedRoute.tsx","pages/onboarding/LoginSuccessfulPage/LoginSuccessfulPage.tsx","../../../../src/common/CoinflowTypes.ts","../node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/hashes/src/crypto.ts","../node_modules/@noble/hashes/src/utils.ts","../node_modules/@noble/hashes/src/_md.ts","../node_modules/@noble/hashes/src/_u64.ts","../node_modules/@noble/hashes/src/sha512.ts","../node_modules/@noble/curves/src/abstract/utils.ts","../node_modules/@noble/curves/src/abstract/modular.ts","../node_modules/@noble/curves/src/abstract/curve.ts","../node_modules/@noble/curves/src/abstract/edwards.ts","../node_modules/@noble/curves/src/ed25519.ts","../node_modules/@noble/hashes/src/sha256.ts","../../src/error.ts","../../src/utils.ts","../../src/struct.ts","../../src/structs/utilities.ts","../../src/structs/types.ts","../../src/structs/coercions.ts","../node_modules/rpc-websockets/src/lib/client/websocket.browser.ts","../node_modules/rpc-websockets/src/lib/client.ts","../node_modules/rpc-websockets/src/lib/utils.ts","../node_modules/@noble/hashes/src/sha3.ts","../node_modules/@noble/hashes/src/hmac.ts","../node_modules/@noble/curves/src/abstract/weierstrass.ts","../node_modules/@noble/curves/src/_shortw_utils.ts","../node_modules/@noble/curves/src/secp256k1.ts","../node_modules/@solana/web3.js/src/utils/ed25519.ts","../node_modules/@solana/web3.js/src/utils/to-buffer.ts","../node_modules/@solana/web3.js/src/utils/borsh-schema.ts","../node_modules/@solana/web3.js/src/publickey.ts","../node_modules/@solana/web3.js/src/account.ts","../node_modules/@solana/web3.js/src/bpf-loader-deprecated.ts","../node_modules/@solana/web3.js/src/transaction/constants.ts","../node_modules/@solana/web3.js/src/transaction/expiry-custom-errors.ts","../node_modules/@solana/web3.js/src/message/account-keys.ts","../node_modules/@solana/web3.js/src/layout.ts","../node_modules/@solana/web3.js/src/utils/shortvec-encoding.ts","../node_modules/@solana/web3.js/src/utils/assert.ts","../node_modules/@solana/web3.js/src/message/compiled-keys.ts","../node_modules/@solana/web3.js/src/utils/guarded-array-utils.ts","../node_modules/@solana/web3.js/src/message/legacy.ts","../node_modules/@solana/web3.js/src/message/v0.ts","../node_modules/@solana/web3.js/src/message/versioned.ts","../node_modules/@solana/web3.js/src/transaction/legacy.ts","../node_modules/@solana/web3.js/src/transaction/message.ts","../node_modules/@solana/web3.js/src/transaction/versioned.ts","../node_modules/@solana/web3.js/src/timing.ts","../node_modules/@solana/web3.js/src/sysvar.ts","../node_modules/@solana/web3.js/src/errors.ts","../node_modules/@solana/web3.js/src/utils/send-and-confirm-transaction.ts","../node_modules/@solana/web3.js/src/utils/sleep.ts","../node_modules/@solana/web3.js/src/instruction.ts","../node_modules/@solana/web3.js/src/fee-calculator.ts","../node_modules/@solana/web3.js/src/nonce-account.ts","../node_modules/@solana/web3.js/src/utils/bigint.ts","../node_modules/@solana/web3.js/src/programs/system.ts","../node_modules/@solana/web3.js/src/loader.ts","../node_modules/@solana/web3.js/src/bpf-loader.ts","../node_modules/@solana/web3.js/node_modules/.pnpm/fast-stable-stringify@1.0.0/node_modules/fast-stable-stringify/index.js","../node_modules/@solana/web3.js/src/epoch-schedule.ts","../node_modules/@solana/web3.js/src/__forks__/browser/fetch-impl.ts","../node_modules/@solana/web3.js/src/rpc-websocket.ts","../node_modules/@solana/web3.js/src/programs/address-lookup-table/state.ts","../node_modules/@solana/web3.js/src/account-data.ts","../node_modules/@solana/web3.js/src/utils/makeWebsocketUrl.ts","../node_modules/@solana/web3.js/src/connection.ts","../node_modules/@solana/web3.js/src/keypair.ts","../node_modules/@solana/web3.js/src/programs/address-lookup-table/index.ts","../node_modules/@solana/web3.js/src/programs/compute-budget.ts","../node_modules/@solana/web3.js/src/programs/ed25519.ts","../node_modules/@solana/web3.js/src/utils/secp256k1.ts","../node_modules/@solana/web3.js/src/programs/secp256k1.ts","../node_modules/@solana/web3.js/src/programs/stake.ts","../node_modules/@solana/web3.js/src/programs/vote.ts","../node_modules/@solana/web3.js/src/validator-info.ts","../node_modules/@solana/web3.js/src/vote-account.ts","../node_modules/@solana/web3.js/src/utils/cluster.ts","../node_modules/@solana/web3.js/src/utils/send-and-confirm-raw-transaction.ts","../node_modules/@solana/web3.js/src/index.ts","../node_modules/base-x/src/esm/index.js","../node_modules/bs58/src/esm/index.js","../../../../src/common/SolanaPeerDeps.ts","../../../../src/common/Subtotal.ts","../../../../src/common/CoinflowUtils.ts","../../../../src/common/CoinflowLibMessageHandlers.ts","../../../../../src/common/card-form/TokenEx.ts","../../../../../src/common/card-form/tokenexHelpers.ts","../../CoinflowIFrame.tsx","../../CoinflowPurchase.tsx","../../useOverlay.ts","../../../../src/card-form/useCardFormIframe.tsx","../../../../src/card-form/CoinflowCardForm.tsx","components/Payments/Coinflow/Coinflow.tsx","pages/PaymentInitiation/PaymentInitiation.tsx","hooks/useWindowDimensions.ts","images/close-icon-purple.svg","images/Avatar-2.svg","images/Avatar-3.svg","images/phone-icon.svg","images/arrow-left-icon.svg","api-clients/challengeInvitationsClient.ts","components/CollapsibleList/CollapsibleList.tsx","components/FloatingQr/FloatingQr.tsx","hooks/useChallengeTimer.ts","pages/LandingPage/LandingPage.tsx","pages/Homepage/Homepage.tsx","pages/TopupFailed/TopupFailed.tsx","pages/TopupPending/TopupPending.tsx","images/vector-curve-2.svg","components/dashboard-page/FilledButton/FilledButton.tsx","components/HyperCoin/HyperCoin.tsx","api-clients/tournamentsExternalsClient.ts","components/LastWinFlipper/LastWinFlipper.tsx","images/qr-code-icon.svg","components/CustomCheckbox/CustomCheckbox.tsx","pages/onboarding/TestFlight/TestFlight.tsx","images/group_hyper_word_icon.svg","pages/onboarding/WelcomePage/WelcomePage.tsx","images/medal-gamepad.svg","pages/onboarding/WelcomeBackPage/WelcomeBackPage.tsx","components/Payments/ConnectAccountsStatus/ConnectAccountsStatus.tsx","api-clients/walletsBankAccountsClient.ts","pages/ConnectAccounts/ConnectAccounts.tsx","router.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":[null,"'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet converter;\n/**\n * Convert a little-endian buffer into a BigInt.\n * @param buf The little-endian buffer to convert\n * @returns A BigInt with the little-endian representation of buf.\n */\nfunction toBigIntLE(buf) {\n {\n const reversed = Buffer.from(buf);\n reversed.reverse();\n const hex = reversed.toString('hex');\n if (hex.length === 0) {\n return BigInt(0);\n }\n return BigInt(`0x${hex}`);\n }\n return converter.toBigInt(buf, false);\n}\nexports.toBigIntLE = toBigIntLE;\n/**\n * Convert a big-endian buffer into a BigInt\n * @param buf The big-endian buffer to convert.\n * @returns A BigInt with the big-endian representation of buf.\n */\nfunction toBigIntBE(buf) {\n {\n const hex = buf.toString('hex');\n if (hex.length === 0) {\n return BigInt(0);\n }\n return BigInt(`0x${hex}`);\n }\n return converter.toBigInt(buf, true);\n}\nexports.toBigIntBE = toBigIntBE;\n/**\n * Convert a BigInt to a little-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A little-endian buffer representation of num.\n */\nfunction toBufferLE(num, width) {\n {\n const hex = num.toString(16);\n const buffer = Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n buffer.reverse();\n return buffer;\n }\n // Allocation is done here, since it is slower using napi in C\n return converter.fromBigInt(num, Buffer.allocUnsafe(width), false);\n}\nexports.toBufferLE = toBufferLE;\n/**\n * Convert a BigInt to a big-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A big-endian buffer representation of num.\n */\nfunction toBufferBE(num, width) {\n {\n const hex = num.toString(16);\n return Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n }\n return converter.fromBigInt(num, Buffer.allocUnsafe(width), true);\n}\nexports.toBufferBE = toBufferBE;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst ResolvedTextDecoder = typeof TextDecoder !== \"function\" ? encoding.TextDecoder : TextDecoder;\nconst textDecoder = new ResolvedTextDecoder(\"utf-8\", { fatal: true });\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n value = Buffer.from(value, \"utf8\");\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + \": \" + this.fieldPath.join(\".\");\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 16)));\n }\n writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 32)));\n }\n writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 64)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([\n Buffer.from(this.buf.subarray(0, this.length)),\n buffer,\n Buffer.alloc(INITIAL_LENGTH),\n ]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, \"utf8\");\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if ([\"ERR_BUFFER_OUT_OF_BOUNDS\", \"ERR_OUT_OF_RANGE\"].indexOf(code) >= 0) {\n throw new BorshError(\"Reached the end of buffer when deserializing\");\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU16() {\n const value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, \"le\");\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, \"le\");\n }\n readU256() {\n const buf = this.readBuffer(32);\n return new bn_js_1.default(buf, \"le\");\n }\n readU512() {\n const buf = this.readBuffer(64);\n return new bn_js_1.default(buf, \"le\");\n }\n readBuffer(len) {\n if (this.offset + len > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === \"string\") {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else if (fieldType.length === 2 && typeof fieldType[1] === \"number\") {\n if (value.length !== fieldType[1]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`);\n }\n for (let i = 0; i < fieldType[1]; i++) {\n serializeField(schema, null, value[i], fieldType[0], writer);\n }\n }\n else {\n writer.writeArray(value, (item) => {\n serializeField(schema, fieldName, item, fieldType[0], writer);\n });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case \"option\": {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n case \"map\": {\n writer.writeU32(value.size);\n value.forEach((val, key) => {\n serializeField(schema, fieldName, key, fieldType.key, writer);\n serializeField(schema, fieldName, val, fieldType.value, writer);\n });\n break;\n }\n default:\n throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n if (typeof obj.borshSerialize === \"function\") {\n obj.borshSerialize(writer);\n return;\n }\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === \"enum\") {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj, Writer = BinaryWriter) {\n const writer = new Writer();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === \"string\") {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n return reader.readFixedArray(fieldType[0]);\n }\n else if (typeof fieldType[1] === \"number\") {\n const arr = [];\n for (let i = 0; i < fieldType[1]; i++) {\n arr.push(deserializeField(schema, null, fieldType[0], reader));\n }\n return arr;\n }\n else {\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n }\n if (fieldType.kind === \"option\") {\n const option = reader.readU8();\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n return undefined;\n }\n if (fieldType.kind === \"map\") {\n let map = new Map();\n const length = reader.readU32();\n for (let i = 0; i < length; i++) {\n const key = deserializeField(schema, fieldName, fieldType.key, reader);\n const val = deserializeField(schema, fieldName, fieldType.value, reader);\n map.set(key, val);\n }\n return map;\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n if (typeof classType.borshDeserialize === \"function\") {\n return classType.borshDeserialize(reader);\n }\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === \"enum\") {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nconst uuid = require('uuid').v4;\nconst generateRequest = require('../../generateRequest');\n\n/**\n * Constructor for a Jayson Browser Client that does not depend any node.js core libraries\n * @class ClientBrowser\n * @param {Function} callServer Method that calls the server, receives the stringified request and a regular node-style callback\n * @param {Object} [options]\n * @param {Function} [options.reviver] Reviver function for JSON\n * @param {Function} [options.replacer] Replacer function for JSON\n * @param {Number} [options.version=2] JSON-RPC version to use (1|2)\n * @param {Function} [options.generator] Function to use for generating request IDs\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @return {ClientBrowser}\n */\nconst ClientBrowser = function(callServer, options) {\n if(!(this instanceof ClientBrowser)) {\n return new ClientBrowser(callServer, options);\n }\n\n if (!options) {\n options = {};\n }\n\n this.options = {\n reviver: typeof options.reviver !== 'undefined' ? options.reviver : null,\n replacer: typeof options.replacer !== 'undefined' ? options.replacer : null,\n generator: typeof options.generator !== 'undefined' ? options.generator : function() { return uuid(); },\n version: typeof options.version !== 'undefined' ? options.version : 2,\n notificationIdNull: typeof options.notificationIdNull === 'boolean' ? options.notificationIdNull : false,\n };\n\n this.callServer = callServer;\n};\n\nmodule.exports = ClientBrowser;\n\n/**\n * Creates a request and dispatches it if given a callback.\n * @param {String|Array} method A batch request if passed an Array, or a method name if passed a String\n * @param {Array|Object} [params] Parameters for the method\n * @param {String|Number} [id] Optional id. If undefined an id will be generated. If null it creates a notification request\n * @param {Function} [callback] Request callback. If specified, executes the request rather than only returning it.\n * @throws {TypeError} Invalid parameters\n * @return {Object} JSON-RPC 1.0 or 2.0 compatible request\n */\nClientBrowser.prototype.request = function(method, params, id, callback) {\n const self = this;\n let request = null;\n\n // is this a batch request?\n const isBatch = Array.isArray(method) && typeof params === 'function';\n\n if (this.options.version === 1 && isBatch) {\n throw new TypeError('JSON-RPC 1.0 does not support batching');\n }\n\n // is this a raw request?\n const isRaw = !isBatch && method && typeof method === 'object' && typeof params === 'function';\n\n if(isBatch || isRaw) {\n callback = params;\n request = method;\n } else {\n if(typeof id === 'function') {\n callback = id;\n // specifically undefined because \"null\" is a notification request\n id = undefined;\n }\n\n const hasCallback = typeof callback === 'function';\n\n try {\n request = generateRequest(method, params, id, {\n generator: this.options.generator,\n version: this.options.version,\n notificationIdNull: this.options.notificationIdNull,\n });\n } catch(err) {\n if(hasCallback) {\n return callback(err);\n }\n throw err;\n }\n\n // no callback means we should just return a raw request\n if(!hasCallback) {\n return request;\n }\n\n }\n\n let message;\n try {\n message = JSON.stringify(request, this.options.replacer);\n } catch(err) {\n return callback(err);\n }\n\n this.callServer(message, function(err, response) {\n self._parseResponse(err, response, callback);\n });\n\n // always return the raw request\n return request;\n};\n\n/**\n * Parses a response from a server\n * @param {Object} err Error to pass on that is unrelated to the actual response\n * @param {String} responseText JSON-RPC 1.0 or 2.0 response\n * @param {Function} callback Callback that will receive different arguments depending on the amount of parameters\n * @private\n */\nClientBrowser.prototype._parseResponse = function(err, responseText, callback) {\n if(err) {\n callback(err);\n return;\n }\n\n if(!responseText) {\n // empty response text, assume that is correct because it could be a\n // notification which jayson does not give any body for\n return callback();\n }\n\n let response;\n try {\n response = JSON.parse(responseText, this.options.reviver);\n } catch(err) {\n return callback(err);\n }\n\n if(callback.length === 3) {\n // if callback length is 3, we split callback arguments on error and response\n\n // is batch response?\n if(Array.isArray(response)) {\n\n // neccesary to split strictly on validity according to spec here\n const isError = function(res) {\n return typeof res.error !== 'undefined';\n };\n\n const isNotError = function (res) {\n return !isError(res);\n };\n\n return callback(null, response.filter(isError), response.filter(isNotError));\n \n } else {\n\n // split regardless of validity\n return callback(null, response.error, response.result);\n \n }\n \n }\n\n callback(null, response);\n};\n","'use strict';\n\nconst uuid = require('uuid').v4;\n\n/**\n * Generates a JSON-RPC 1.0 or 2.0 request\n * @param {String} method Name of method to call\n * @param {Array|Object} params Array of parameters passed to the method as specified, or an object of parameter names and corresponding value\n * @param {String|Number|null} [id] Request ID can be a string, number, null for explicit notification or left out for automatic generation\n * @param {Object} [options]\n * @param {Number} [options.version=2] JSON-RPC version to use (1 or 2)\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @param {Function} [options.generator] Passed the request, and the options object and is expected to return a request ID\n * @throws {TypeError} If any of the parameters are invalid\n * @return {Object} A JSON-RPC 1.0 or 2.0 request\n * @memberOf Utils\n */\nconst generateRequest = function(method, params, id, options) {\n if(typeof method !== 'string') {\n throw new TypeError(method + ' must be a string');\n }\n\n options = options || {};\n\n // check valid version provided\n const version = typeof options.version === 'number' ? options.version : 2;\n if (version !== 1 && version !== 2) {\n throw new TypeError(version + ' must be 1 or 2');\n }\n\n const request = {\n method: method\n };\n\n if(version === 2) {\n request.jsonrpc = '2.0';\n }\n\n if(params) {\n // params given, but invalid?\n if(typeof params !== 'object' && !Array.isArray(params)) {\n throw new TypeError(params + ' must be an object, array or omitted');\n }\n request.params = params;\n }\n\n // if id was left out, generate one (null means explicit notification)\n if(typeof(id) === 'undefined') {\n const generator = typeof options.generator === 'function' ? options.generator : function() { return uuid(); };\n request.id = generator(request, options);\n } else if (version === 2 && id === null) {\n // we have a version 2 notification\n if (options.notificationIdNull) {\n request.id = null; // id will not be set at all unless option provided\n }\n } else {\n request.id = id;\n }\n\n return request;\n};\n\nmodule.exports = generateRequest;\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"QRCodeStyling\"] = factory();\n\telse\n\t\troot[\"QRCodeStyling\"] = factory();\n})(self, function() {\nreturn ","//---------------------------------------------------------------------\n//\n// QR Code Generator for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word 'QR Code' is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\nvar qrcode = function() {\n\n //---------------------------------------------------------------------\n // qrcode\n //---------------------------------------------------------------------\n\n /**\n * qrcode\n * @param typeNumber 1 to 40\n * @param errorCorrectionLevel 'L','M','Q','H'\n */\n var qrcode = function(typeNumber, errorCorrectionLevel) {\n\n var PAD0 = 0xEC;\n var PAD1 = 0x11;\n\n var _typeNumber = typeNumber;\n var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];\n var _modules = null;\n var _moduleCount = 0;\n var _dataCache = null;\n var _dataList = [];\n\n var _this = {};\n\n var makeImpl = function(test, maskPattern) {\n\n _moduleCount = _typeNumber * 4 + 17;\n _modules = function(moduleCount) {\n var modules = new Array(moduleCount);\n for (var row = 0; row < moduleCount; row += 1) {\n modules[row] = new Array(moduleCount);\n for (var col = 0; col < moduleCount; col += 1) {\n modules[row][col] = null;\n }\n }\n return modules;\n }(_moduleCount);\n\n setupPositionProbePattern(0, 0);\n setupPositionProbePattern(_moduleCount - 7, 0);\n setupPositionProbePattern(0, _moduleCount - 7);\n setupPositionAdjustPattern();\n setupTimingPattern();\n setupTypeInfo(test, maskPattern);\n\n if (_typeNumber >= 7) {\n setupTypeNumber(test);\n }\n\n if (_dataCache == null) {\n _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);\n }\n\n mapData(_dataCache, maskPattern);\n };\n\n var setupPositionProbePattern = function(row, col) {\n\n for (var r = -1; r <= 7; r += 1) {\n\n if (row + r <= -1 || _moduleCount <= row + r) continue;\n\n for (var c = -1; c <= 7; c += 1) {\n\n if (col + c <= -1 || _moduleCount <= col + c) continue;\n\n if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n || (0 <= c && c <= 6 && (r == 0 || r == 6) )\n || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n };\n\n var getBestMaskPattern = function() {\n\n var minLostPoint = 0;\n var pattern = 0;\n\n for (var i = 0; i < 8; i += 1) {\n\n makeImpl(true, i);\n\n var lostPoint = QRUtil.getLostPoint(_this);\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n\n return pattern;\n };\n\n var setupTimingPattern = function() {\n\n for (var r = 8; r < _moduleCount - 8; r += 1) {\n if (_modules[r][6] != null) {\n continue;\n }\n _modules[r][6] = (r % 2 == 0);\n }\n\n for (var c = 8; c < _moduleCount - 8; c += 1) {\n if (_modules[6][c] != null) {\n continue;\n }\n _modules[6][c] = (c % 2 == 0);\n }\n };\n\n var setupPositionAdjustPattern = function() {\n\n var pos = QRUtil.getPatternPosition(_typeNumber);\n\n for (var i = 0; i < pos.length; i += 1) {\n\n for (var j = 0; j < pos.length; j += 1) {\n\n var row = pos[i];\n var col = pos[j];\n\n if (_modules[row][col] != null) {\n continue;\n }\n\n for (var r = -2; r <= 2; r += 1) {\n\n for (var c = -2; c <= 2; c += 1) {\n\n if (r == -2 || r == 2 || c == -2 || c == 2\n || (r == 0 && c == 0) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n\n var setupTypeNumber = function(test) {\n\n var bits = QRUtil.getBCHTypeNumber(_typeNumber);\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;\n }\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n };\n\n var setupTypeInfo = function(test, maskPattern) {\n\n var data = (_errorCorrectionLevel << 3) | maskPattern;\n var bits = QRUtil.getBCHTypeInfo(data);\n\n // vertical\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 6) {\n _modules[i][8] = mod;\n } else if (i < 8) {\n _modules[i + 1][8] = mod;\n } else {\n _modules[_moduleCount - 15 + i][8] = mod;\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 8) {\n _modules[8][_moduleCount - i - 1] = mod;\n } else if (i < 9) {\n _modules[8][15 - i - 1 + 1] = mod;\n } else {\n _modules[8][15 - i - 1] = mod;\n }\n }\n\n // fixed module\n _modules[_moduleCount - 8][8] = (!test);\n };\n\n var mapData = function(data, maskPattern) {\n\n var inc = -1;\n var row = _moduleCount - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n var maskFunc = QRUtil.getMaskFunction(maskPattern);\n\n for (var col = _moduleCount - 1; col > 0; col -= 2) {\n\n if (col == 6) col -= 1;\n\n while (true) {\n\n for (var c = 0; c < 2; c += 1) {\n\n if (_modules[row][col - c] == null) {\n\n var dark = false;\n\n if (byteIndex < data.length) {\n dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n }\n\n var mask = maskFunc(row, col - c);\n\n if (mask) {\n dark = !dark;\n }\n\n _modules[row][col - c] = dark;\n bitIndex -= 1;\n\n if (bitIndex == -1) {\n byteIndex += 1;\n bitIndex = 7;\n }\n }\n }\n\n row += inc;\n\n if (row < 0 || _moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n };\n\n var createBytes = function(buffer, rsBlocks) {\n\n var offset = 0;\n\n var maxDcCount = 0;\n var maxEcCount = 0;\n\n var dcdata = new Array(rsBlocks.length);\n var ecdata = new Array(rsBlocks.length);\n\n for (var r = 0; r < rsBlocks.length; r += 1) {\n\n var dcCount = rsBlocks[r].dataCount;\n var ecCount = rsBlocks[r].totalCount - dcCount;\n\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n\n dcdata[r] = new Array(dcCount);\n\n for (var i = 0; i < dcdata[r].length; i += 1) {\n dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];\n }\n offset += dcCount;\n\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n var modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (var i = 0; i < ecdata[r].length; i += 1) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;\n }\n }\n\n var totalCodeCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n\n var data = new Array(totalCodeCount);\n var index = 0;\n\n for (var i = 0; i < maxDcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < dcdata[r].length) {\n data[index] = dcdata[r][i];\n index += 1;\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < ecdata[r].length) {\n data[index] = ecdata[r][i];\n index += 1;\n }\n }\n }\n\n return data;\n };\n\n var createData = function(typeNumber, errorCorrectionLevel, dataList) {\n\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);\n\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < dataList.length; i += 1) {\n var data = dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n // calc num max data.\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw 'code length overflow. ('\n + buffer.getLengthInBits()\n + '>'\n + totalDataCount * 8\n + ')';\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false);\n }\n\n // padding\n while (true) {\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD0, 8);\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n\n return createBytes(buffer, rsBlocks);\n };\n\n _this.addData = function(data, mode) {\n\n mode = mode || 'Byte';\n\n var newData = null;\n\n switch(mode) {\n case 'Numeric' :\n newData = qrNumber(data);\n break;\n case 'Alphanumeric' :\n newData = qrAlphaNum(data);\n break;\n case 'Byte' :\n newData = qr8BitByte(data);\n break;\n case 'Kanji' :\n newData = qrKanji(data);\n break;\n default :\n throw 'mode:' + mode;\n }\n\n _dataList.push(newData);\n _dataCache = null;\n };\n\n _this.isDark = function(row, col) {\n if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {\n throw row + ',' + col;\n }\n return _modules[row][col];\n };\n\n _this.getModuleCount = function() {\n return _moduleCount;\n };\n\n _this.make = function() {\n if (_typeNumber < 1) {\n var typeNumber = 1;\n\n for (; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < _dataList.length; i++) {\n var data = _dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() <= totalDataCount * 8) {\n break;\n }\n }\n\n _typeNumber = typeNumber;\n }\n\n makeImpl(false, getBestMaskPattern() );\n };\n\n _this.createTableTag = function(cellSize, margin) {\n\n cellSize = cellSize || 2;\n margin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n var qrHtml = '';\n\n qrHtml += '' +\n escapeXml(title.text) + '' : '';\n qrSvg += (alt.text) ? '' +\n escapeXml(alt.text) + '' : '';\n qrSvg += '';\n qrSvg += '': escaped += '>'; break;\n case '&': escaped += '&'; break;\n case '\"': escaped += '"'; break;\n default : escaped += c; break;\n }\n }\n return escaped;\n };\n\n var _createHalfASCII = function(margin) {\n var cellSize = 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r1, r2, p;\n\n var blocks = {\n '██': '█',\n '█ ': '▀',\n ' █': '▄',\n ' ': ' '\n };\n\n var blocksLastLineNoMargin = {\n '██': '▀',\n '█ ': '▀',\n ' █': ' ',\n ' ': ' '\n };\n\n var ascii = '';\n for (y = 0; y < size; y += 2) {\n r1 = Math.floor((y - min) / cellSize);\n r2 = Math.floor((y + 1 - min) / cellSize);\n for (x = 0; x < size; x += 1) {\n p = '█';\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {\n p = ' ';\n }\n\n if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {\n p += ' ';\n }\n else {\n p += '█';\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];\n }\n\n ascii += '\\n';\n }\n\n if (size % 2 && margin > 0) {\n return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('▀');\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.createASCII = function(cellSize, margin) {\n cellSize = cellSize || 1;\n\n if (cellSize < 2) {\n return _createHalfASCII(margin);\n }\n\n cellSize -= 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r, p;\n\n var white = Array(cellSize+1).join('██');\n var black = Array(cellSize+1).join(' ');\n\n var ascii = '';\n var line = '';\n for (y = 0; y < size; y += 1) {\n r = Math.floor( (y - min) / cellSize);\n line = '';\n for (x = 0; x < size; x += 1) {\n p = 1;\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {\n p = 0;\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n line += p ? white : black;\n }\n\n for (r = 0; r < cellSize; r += 1) {\n ascii += line + '\\n';\n }\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.renderTo2dContext = function(context, cellSize) {\n cellSize = cellSize || 2;\n var length = _this.getModuleCount();\n for (var row = 0; row < length; row++) {\n for (var col = 0; col < length; col++) {\n context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';\n context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);\n }\n }\n }\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrcode.stringToBytes\n //---------------------------------------------------------------------\n\n qrcode.stringToBytesFuncs = {\n 'default' : function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n bytes.push(c & 0xff);\n }\n return bytes;\n }\n };\n\n qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];\n\n //---------------------------------------------------------------------\n // qrcode.createStringToBytes\n //---------------------------------------------------------------------\n\n /**\n * @param unicodeData base64 string of byte array.\n * [16bit Unicode],[16bit Bytes], ...\n * @param numChars\n */\n qrcode.createStringToBytes = function(unicodeData, numChars) {\n\n // create conversion map.\n\n var unicodeMap = function() {\n\n var bin = base64DecodeInputStream(unicodeData);\n var read = function() {\n var b = bin.read();\n if (b == -1) throw 'eof';\n return b;\n };\n\n var count = 0;\n var unicodeMap = {};\n while (true) {\n var b0 = bin.read();\n if (b0 == -1) break;\n var b1 = read();\n var b2 = read();\n var b3 = read();\n var k = String.fromCharCode( (b0 << 8) | b1);\n var v = (b2 << 8) | b3;\n unicodeMap[k] = v;\n count += 1;\n }\n if (count != numChars) {\n throw count + ' != ' + numChars;\n }\n\n return unicodeMap;\n }();\n\n var unknownChar = '?'.charCodeAt(0);\n\n return function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n if (c < 128) {\n bytes.push(c);\n } else {\n var b = unicodeMap[s.charAt(i)];\n if (typeof b == 'number') {\n if ( (b & 0xff) == b) {\n // 1byte\n bytes.push(b);\n } else {\n // 2bytes\n bytes.push(b >>> 8);\n bytes.push(b & 0xff);\n }\n } else {\n bytes.push(unknownChar);\n }\n }\n }\n return bytes;\n };\n };\n\n //---------------------------------------------------------------------\n // QRMode\n //---------------------------------------------------------------------\n\n var QRMode = {\n MODE_NUMBER : 1 << 0,\n MODE_ALPHA_NUM : 1 << 1,\n MODE_8BIT_BYTE : 1 << 2,\n MODE_KANJI : 1 << 3\n };\n\n //---------------------------------------------------------------------\n // QRErrorCorrectionLevel\n //---------------------------------------------------------------------\n\n var QRErrorCorrectionLevel = {\n L : 1,\n M : 0,\n Q : 3,\n H : 2\n };\n\n //---------------------------------------------------------------------\n // QRMaskPattern\n //---------------------------------------------------------------------\n\n var QRMaskPattern = {\n PATTERN000 : 0,\n PATTERN001 : 1,\n PATTERN010 : 2,\n PATTERN011 : 3,\n PATTERN100 : 4,\n PATTERN101 : 5,\n PATTERN110 : 6,\n PATTERN111 : 7\n };\n\n //---------------------------------------------------------------------\n // QRUtil\n //---------------------------------------------------------------------\n\n var QRUtil = function() {\n\n var PATTERN_POSITION_TABLE = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n ];\n var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\n var _this = {};\n\n var getBCHDigit = function(data) {\n var digit = 0;\n while (data != 0) {\n digit += 1;\n data >>>= 1;\n }\n return digit;\n };\n\n _this.getBCHTypeInfo = function(data) {\n var d = data << 10;\n while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {\n d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );\n }\n return ( (data << 10) | d) ^ G15_MASK;\n };\n\n _this.getBCHTypeNumber = function(data) {\n var d = data << 12;\n while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {\n d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );\n }\n return (data << 12) | d;\n };\n\n _this.getPatternPosition = function(typeNumber) {\n return PATTERN_POSITION_TABLE[typeNumber - 1];\n };\n\n _this.getMaskFunction = function(maskPattern) {\n\n switch (maskPattern) {\n\n case QRMaskPattern.PATTERN000 :\n return function(i, j) { return (i + j) % 2 == 0; };\n case QRMaskPattern.PATTERN001 :\n return function(i, j) { return i % 2 == 0; };\n case QRMaskPattern.PATTERN010 :\n return function(i, j) { return j % 3 == 0; };\n case QRMaskPattern.PATTERN011 :\n return function(i, j) { return (i + j) % 3 == 0; };\n case QRMaskPattern.PATTERN100 :\n return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };\n case QRMaskPattern.PATTERN101 :\n return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };\n case QRMaskPattern.PATTERN110 :\n return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };\n case QRMaskPattern.PATTERN111 :\n return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };\n\n default :\n throw 'bad maskPattern:' + maskPattern;\n }\n };\n\n _this.getErrorCorrectPolynomial = function(errorCorrectLength) {\n var a = qrPolynomial([1], 0);\n for (var i = 0; i < errorCorrectLength; i += 1) {\n a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );\n }\n return a;\n };\n\n _this.getLengthInBits = function(mode, type) {\n\n if (1 <= type && type < 10) {\n\n // 1 - 9\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 10;\n case QRMode.MODE_ALPHA_NUM : return 9;\n case QRMode.MODE_8BIT_BYTE : return 8;\n case QRMode.MODE_KANJI : return 8;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 27) {\n\n // 10 - 26\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 12;\n case QRMode.MODE_ALPHA_NUM : return 11;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 10;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 41) {\n\n // 27 - 40\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 14;\n case QRMode.MODE_ALPHA_NUM : return 13;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 12;\n default :\n throw 'mode:' + mode;\n }\n\n } else {\n throw 'type:' + type;\n }\n };\n\n _this.getLostPoint = function(qrcode) {\n\n var moduleCount = qrcode.getModuleCount();\n\n var lostPoint = 0;\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount; col += 1) {\n\n var sameCount = 0;\n var dark = qrcode.isDark(row, col);\n\n for (var r = -1; r <= 1; r += 1) {\n\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n\n for (var c = -1; c <= 1; c += 1) {\n\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n\n if (r == 0 && c == 0) {\n continue;\n }\n\n if (dark == qrcode.isDark(row + r, col + c) ) {\n sameCount += 1;\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += (3 + sameCount - 5);\n }\n }\n };\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row += 1) {\n for (var col = 0; col < moduleCount - 1; col += 1) {\n var count = 0;\n if (qrcode.isDark(row, col) ) count += 1;\n if (qrcode.isDark(row + 1, col) ) count += 1;\n if (qrcode.isDark(row, col + 1) ) count += 1;\n if (qrcode.isDark(row + 1, col + 1) ) count += 1;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount - 6; col += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row, col + 1)\n && qrcode.isDark(row, col + 2)\n && qrcode.isDark(row, col + 3)\n && qrcode.isDark(row, col + 4)\n && !qrcode.isDark(row, col + 5)\n && qrcode.isDark(row, col + 6) ) {\n lostPoint += 40;\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount - 6; row += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row + 1, col)\n && qrcode.isDark(row + 2, col)\n && qrcode.isDark(row + 3, col)\n && qrcode.isDark(row + 4, col)\n && !qrcode.isDark(row + 5, col)\n && qrcode.isDark(row + 6, col) ) {\n lostPoint += 40;\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0;\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount; row += 1) {\n if (qrcode.isDark(row, col) ) {\n darkCount += 1;\n }\n }\n }\n\n var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n\n return lostPoint;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // QRMath\n //---------------------------------------------------------------------\n\n var QRMath = function() {\n\n var EXP_TABLE = new Array(256);\n var LOG_TABLE = new Array(256);\n\n // initialize tables\n for (var i = 0; i < 8; i += 1) {\n EXP_TABLE[i] = 1 << i;\n }\n for (var i = 8; i < 256; i += 1) {\n EXP_TABLE[i] = EXP_TABLE[i - 4]\n ^ EXP_TABLE[i - 5]\n ^ EXP_TABLE[i - 6]\n ^ EXP_TABLE[i - 8];\n }\n for (var i = 0; i < 255; i += 1) {\n LOG_TABLE[EXP_TABLE[i] ] = i;\n }\n\n var _this = {};\n\n _this.glog = function(n) {\n\n if (n < 1) {\n throw 'glog(' + n + ')';\n }\n\n return LOG_TABLE[n];\n };\n\n _this.gexp = function(n) {\n\n while (n < 0) {\n n += 255;\n }\n\n while (n >= 256) {\n n -= 255;\n }\n\n return EXP_TABLE[n];\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrPolynomial\n //---------------------------------------------------------------------\n\n function qrPolynomial(num, shift) {\n\n if (typeof num.length == 'undefined') {\n throw num.length + '/' + shift;\n }\n\n var _num = function() {\n var offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset += 1;\n }\n var _num = new Array(num.length - offset + shift);\n for (var i = 0; i < num.length - offset; i += 1) {\n _num[i] = num[i + offset];\n }\n return _num;\n }();\n\n var _this = {};\n\n _this.getAt = function(index) {\n return _num[index];\n };\n\n _this.getLength = function() {\n return _num.length;\n };\n\n _this.multiply = function(e) {\n\n var num = new Array(_this.getLength() + e.getLength() - 1);\n\n for (var i = 0; i < _this.getLength(); i += 1) {\n for (var j = 0; j < e.getLength(); j += 1) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );\n }\n }\n\n return qrPolynomial(num, 0);\n };\n\n _this.mod = function(e) {\n\n if (_this.getLength() - e.getLength() < 0) {\n return _this;\n }\n\n var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );\n\n var num = new Array(_this.getLength() );\n for (var i = 0; i < _this.getLength(); i += 1) {\n num[i] = _this.getAt(i);\n }\n\n for (var i = 0; i < e.getLength(); i += 1) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);\n }\n\n // recursive call\n return qrPolynomial(num, 0).mod(e);\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // QRRSBlock\n //---------------------------------------------------------------------\n\n var QRRSBlock = function() {\n\n var RS_BLOCK_TABLE = [\n\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12, 7, 37, 13],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ];\n\n var qrRSBlock = function(totalCount, dataCount) {\n var _this = {};\n _this.totalCount = totalCount;\n _this.dataCount = dataCount;\n return _this;\n };\n\n var _this = {};\n\n var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {\n\n switch(errorCorrectionLevel) {\n case QRErrorCorrectionLevel.L :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case QRErrorCorrectionLevel.M :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case QRErrorCorrectionLevel.Q :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case QRErrorCorrectionLevel.H :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default :\n return undefined;\n }\n };\n\n _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {\n\n var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);\n\n if (typeof rsBlock == 'undefined') {\n throw 'bad rs block @ typeNumber:' + typeNumber +\n '/errorCorrectionLevel:' + errorCorrectionLevel;\n }\n\n var length = rsBlock.length / 3;\n\n var list = [];\n\n for (var i = 0; i < length; i += 1) {\n\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n\n for (var j = 0; j < count; j += 1) {\n list.push(qrRSBlock(totalCount, dataCount) );\n }\n }\n\n return list;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrBitBuffer\n //---------------------------------------------------------------------\n\n var qrBitBuffer = function() {\n\n var _buffer = [];\n var _length = 0;\n\n var _this = {};\n\n _this.getBuffer = function() {\n return _buffer;\n };\n\n _this.getAt = function(index) {\n var bufIndex = Math.floor(index / 8);\n return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n };\n\n _this.put = function(num, length) {\n for (var i = 0; i < length; i += 1) {\n _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n }\n };\n\n _this.getLengthInBits = function() {\n return _length;\n };\n\n _this.putBit = function(bit) {\n\n var bufIndex = Math.floor(_length / 8);\n if (_buffer.length <= bufIndex) {\n _buffer.push(0);\n }\n\n if (bit) {\n _buffer[bufIndex] |= (0x80 >>> (_length % 8) );\n }\n\n _length += 1;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrNumber\n //---------------------------------------------------------------------\n\n var qrNumber = function(data) {\n\n var _mode = QRMode.MODE_NUMBER;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var data = _data;\n\n var i = 0;\n\n while (i + 2 < data.length) {\n buffer.put(strToNum(data.substring(i, i + 3) ), 10);\n i += 3;\n }\n\n if (i < data.length) {\n if (data.length - i == 1) {\n buffer.put(strToNum(data.substring(i, i + 1) ), 4);\n } else if (data.length - i == 2) {\n buffer.put(strToNum(data.substring(i, i + 2) ), 7);\n }\n }\n };\n\n var strToNum = function(s) {\n var num = 0;\n for (var i = 0; i < s.length; i += 1) {\n num = num * 10 + chatToNum(s.charAt(i) );\n }\n return num;\n };\n\n var chatToNum = function(c) {\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n }\n throw 'illegal char :' + c;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrAlphaNum\n //---------------------------------------------------------------------\n\n var qrAlphaNum = function(data) {\n\n var _mode = QRMode.MODE_ALPHA_NUM;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var s = _data;\n\n var i = 0;\n\n while (i + 1 < s.length) {\n buffer.put(\n getCode(s.charAt(i) ) * 45 +\n getCode(s.charAt(i + 1) ), 11);\n i += 2;\n }\n\n if (i < s.length) {\n buffer.put(getCode(s.charAt(i) ), 6);\n }\n };\n\n var getCode = function(c) {\n\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n } else if ('A' <= c && c <= 'Z') {\n return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n } else {\n switch (c) {\n case ' ' : return 36;\n case '$' : return 37;\n case '%' : return 38;\n case '*' : return 39;\n case '+' : return 40;\n case '-' : return 41;\n case '.' : return 42;\n case '/' : return 43;\n case ':' : return 44;\n default :\n throw 'illegal char :' + c;\n }\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qr8BitByte\n //---------------------------------------------------------------------\n\n var qr8BitByte = function(data) {\n\n var _mode = QRMode.MODE_8BIT_BYTE;\n var _data = data;\n var _bytes = qrcode.stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _bytes.length;\n };\n\n _this.write = function(buffer) {\n for (var i = 0; i < _bytes.length; i += 1) {\n buffer.put(_bytes[i], 8);\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrKanji\n //---------------------------------------------------------------------\n\n var qrKanji = function(data) {\n\n var _mode = QRMode.MODE_KANJI;\n var _data = data;\n\n var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];\n if (!stringToBytes) {\n throw 'sjis not supported.';\n }\n !function(c, code) {\n // self test for sjis support.\n var test = stringToBytes(c);\n if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {\n throw 'sjis not supported.';\n }\n }('\\u53cb', 0x9746);\n\n var _bytes = stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return ~~(_bytes.length / 2);\n };\n\n _this.write = function(buffer) {\n\n var data = _bytes;\n\n var i = 0;\n\n while (i + 1 < data.length) {\n\n var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);\n\n if (0x8140 <= c && c <= 0x9FFC) {\n c -= 0x8140;\n } else if (0xE040 <= c && c <= 0xEBBF) {\n c -= 0xC140;\n } else {\n throw 'illegal char at ' + (i + 1) + '/' + c;\n }\n\n c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);\n\n buffer.put(c, 13);\n\n i += 2;\n }\n\n if (i < data.length) {\n throw 'illegal char at ' + (i + 1);\n }\n };\n\n return _this;\n };\n\n //=====================================================================\n // GIF Support etc.\n //\n\n //---------------------------------------------------------------------\n // byteArrayOutputStream\n //---------------------------------------------------------------------\n\n var byteArrayOutputStream = function() {\n\n var _bytes = [];\n\n var _this = {};\n\n _this.writeByte = function(b) {\n _bytes.push(b & 0xff);\n };\n\n _this.writeShort = function(i) {\n _this.writeByte(i);\n _this.writeByte(i >>> 8);\n };\n\n _this.writeBytes = function(b, off, len) {\n off = off || 0;\n len = len || b.length;\n for (var i = 0; i < len; i += 1) {\n _this.writeByte(b[i + off]);\n }\n };\n\n _this.writeString = function(s) {\n for (var i = 0; i < s.length; i += 1) {\n _this.writeByte(s.charCodeAt(i) );\n }\n };\n\n _this.toByteArray = function() {\n return _bytes;\n };\n\n _this.toString = function() {\n var s = '';\n s += '[';\n for (var i = 0; i < _bytes.length; i += 1) {\n if (i > 0) {\n s += ',';\n }\n s += _bytes[i];\n }\n s += ']';\n return s;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64EncodeOutputStream\n //---------------------------------------------------------------------\n\n var base64EncodeOutputStream = function() {\n\n var _buffer = 0;\n var _buflen = 0;\n var _length = 0;\n var _base64 = '';\n\n var _this = {};\n\n var writeEncoded = function(b) {\n _base64 += String.fromCharCode(encode(b & 0x3f) );\n };\n\n var encode = function(n) {\n if (n < 0) {\n // error.\n } else if (n < 26) {\n return 0x41 + n;\n } else if (n < 52) {\n return 0x61 + (n - 26);\n } else if (n < 62) {\n return 0x30 + (n - 52);\n } else if (n == 62) {\n return 0x2b;\n } else if (n == 63) {\n return 0x2f;\n }\n throw 'n:' + n;\n };\n\n _this.writeByte = function(n) {\n\n _buffer = (_buffer << 8) | (n & 0xff);\n _buflen += 8;\n _length += 1;\n\n while (_buflen >= 6) {\n writeEncoded(_buffer >>> (_buflen - 6) );\n _buflen -= 6;\n }\n };\n\n _this.flush = function() {\n\n if (_buflen > 0) {\n writeEncoded(_buffer << (6 - _buflen) );\n _buffer = 0;\n _buflen = 0;\n }\n\n if (_length % 3 != 0) {\n // padding\n var padlen = 3 - _length % 3;\n for (var i = 0; i < padlen; i += 1) {\n _base64 += '=';\n }\n }\n };\n\n _this.toString = function() {\n return _base64;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64DecodeInputStream\n //---------------------------------------------------------------------\n\n var base64DecodeInputStream = function(str) {\n\n var _str = str;\n var _pos = 0;\n var _buffer = 0;\n var _buflen = 0;\n\n var _this = {};\n\n _this.read = function() {\n\n while (_buflen < 8) {\n\n if (_pos >= _str.length) {\n if (_buflen == 0) {\n return -1;\n }\n throw 'unexpected end of file./' + _buflen;\n }\n\n var c = _str.charAt(_pos);\n _pos += 1;\n\n if (c == '=') {\n _buflen = 0;\n return -1;\n } else if (c.match(/^\\s$/) ) {\n // ignore if whitespace.\n continue;\n }\n\n _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );\n _buflen += 6;\n }\n\n var n = (_buffer >>> (_buflen - 8) ) & 0xff;\n _buflen -= 8;\n return n;\n };\n\n var decode = function(c) {\n if (0x41 <= c && c <= 0x5a) {\n return c - 0x41;\n } else if (0x61 <= c && c <= 0x7a) {\n return c - 0x61 + 26;\n } else if (0x30 <= c && c <= 0x39) {\n return c - 0x30 + 52;\n } else if (c == 0x2b) {\n return 62;\n } else if (c == 0x2f) {\n return 63;\n } else {\n throw 'c:' + c;\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // gifImage (B/W)\n //---------------------------------------------------------------------\n\n var gifImage = function(width, height) {\n\n var _width = width;\n var _height = height;\n var _data = new Array(width * height);\n\n var _this = {};\n\n _this.setPixel = function(x, y, pixel) {\n _data[y * _width + x] = pixel;\n };\n\n _this.write = function(out) {\n\n //---------------------------------\n // GIF Signature\n\n out.writeString('GIF87a');\n\n //---------------------------------\n // Screen Descriptor\n\n out.writeShort(_width);\n out.writeShort(_height);\n\n out.writeByte(0x80); // 2bit\n out.writeByte(0);\n out.writeByte(0);\n\n //---------------------------------\n // Global Color Map\n\n // black\n out.writeByte(0x00);\n out.writeByte(0x00);\n out.writeByte(0x00);\n\n // white\n out.writeByte(0xff);\n out.writeByte(0xff);\n out.writeByte(0xff);\n\n //---------------------------------\n // Image Descriptor\n\n out.writeString(',');\n out.writeShort(0);\n out.writeShort(0);\n out.writeShort(_width);\n out.writeShort(_height);\n out.writeByte(0);\n\n //---------------------------------\n // Local Color Map\n\n //---------------------------------\n // Raster Data\n\n var lzwMinCodeSize = 2;\n var raster = getLZWRaster(lzwMinCodeSize);\n\n out.writeByte(lzwMinCodeSize);\n\n var offset = 0;\n\n while (raster.length - offset > 255) {\n out.writeByte(255);\n out.writeBytes(raster, offset, 255);\n offset += 255;\n }\n\n out.writeByte(raster.length - offset);\n out.writeBytes(raster, offset, raster.length - offset);\n out.writeByte(0x00);\n\n //---------------------------------\n // GIF Terminator\n out.writeString(';');\n };\n\n var bitOutputStream = function(out) {\n\n var _out = out;\n var _bitLength = 0;\n var _bitBuffer = 0;\n\n var _this = {};\n\n _this.write = function(data, length) {\n\n if ( (data >>> length) != 0) {\n throw 'length over';\n }\n\n while (_bitLength + length >= 8) {\n _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );\n length -= (8 - _bitLength);\n data >>>= (8 - _bitLength);\n _bitBuffer = 0;\n _bitLength = 0;\n }\n\n _bitBuffer = (data << _bitLength) | _bitBuffer;\n _bitLength = _bitLength + length;\n };\n\n _this.flush = function() {\n if (_bitLength > 0) {\n _out.writeByte(_bitBuffer);\n }\n };\n\n return _this;\n };\n\n var getLZWRaster = function(lzwMinCodeSize) {\n\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n var bitLength = lzwMinCodeSize + 1;\n\n // Setup LZWTable\n var table = lzwTable();\n\n for (var i = 0; i < clearCode; i += 1) {\n table.add(String.fromCharCode(i) );\n }\n table.add(String.fromCharCode(clearCode) );\n table.add(String.fromCharCode(endCode) );\n\n var byteOut = byteArrayOutputStream();\n var bitOut = bitOutputStream(byteOut);\n\n // clear code\n bitOut.write(clearCode, bitLength);\n\n var dataIndex = 0;\n\n var s = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n while (dataIndex < _data.length) {\n\n var c = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n if (table.contains(s + c) ) {\n\n s = s + c;\n\n } else {\n\n bitOut.write(table.indexOf(s), bitLength);\n\n if (table.size() < 0xfff) {\n\n if (table.size() == (1 << bitLength) ) {\n bitLength += 1;\n }\n\n table.add(s + c);\n }\n\n s = c;\n }\n }\n\n bitOut.write(table.indexOf(s), bitLength);\n\n // end code\n bitOut.write(endCode, bitLength);\n\n bitOut.flush();\n\n return byteOut.toByteArray();\n };\n\n var lzwTable = function() {\n\n var _map = {};\n var _size = 0;\n\n var _this = {};\n\n _this.add = function(key) {\n if (_this.contains(key) ) {\n throw 'dup key:' + key;\n }\n _map[key] = _size;\n _size += 1;\n };\n\n _this.size = function() {\n return _size;\n };\n\n _this.indexOf = function(key) {\n return _map[key];\n };\n\n _this.contains = function(key) {\n return typeof _map[key] != 'undefined';\n };\n\n return _this;\n };\n\n return _this;\n };\n\n var createDataURL = function(width, height, getPixel) {\n var gif = gifImage(width, height);\n for (var y = 0; y < height; y += 1) {\n for (var x = 0; x < width; x += 1) {\n gif.setPixel(x, y, getPixel(x, y) );\n }\n }\n\n var b = byteArrayOutputStream();\n gif.write(b);\n\n var base64 = base64EncodeOutputStream();\n var bytes = b.toByteArray();\n for (var i = 0; i < bytes.length; i += 1) {\n base64.writeByte(bytes[i]);\n }\n base64.flush();\n\n return 'data:image/gif;base64,' + base64;\n };\n\n //---------------------------------------------------------------------\n // returns qrcode function.\n\n return qrcode;\n}();\n\n// multibyte support\n!function() {\n\n qrcode.stringToBytesFuncs['UTF-8'] = function(s) {\n // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n function toUTF8Array(str) {\n var utf8 = [];\n for (var i=0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n if (charcode < 0x80) utf8.push(charcode);\n else if (charcode < 0x800) {\n utf8.push(0xc0 | (charcode >> 6),\n 0x80 | (charcode & 0x3f));\n }\n else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.push(0xe0 | (charcode >> 12),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n // surrogate pair\n else {\n i++;\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff)<<10)\n | (str.charCodeAt(i) & 0x3ff));\n utf8.push(0xf0 | (charcode >>18),\n 0x80 | ((charcode>>12) & 0x3f),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n }\n return utf8;\n }\n return toUTF8Array(s);\n };\n\n}();\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n }\n}(function () {\n return qrcode;\n}));\n","import { UnknownObject } from \"../types\";\n\nconst isObject = (obj: Record): boolean => !!obj && typeof obj === \"object\" && !Array.isArray(obj);\n\nexport default function mergeDeep(target: UnknownObject, ...sources: UnknownObject[]): UnknownObject {\n if (!sources.length) return target;\n const source = sources.shift();\n if (source === undefined || !isObject(target) || !isObject(source)) return target;\n target = { ...target };\n Object.keys(source).forEach((key: string): void => {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = sourceValue;\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n\n return mergeDeep(target, ...sources);\n}\n","export default function downloadURI(uri: string, name: string): void {\n const link = document.createElement(\"a\");\n link.download = name;\n link.href = uri;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\n","export default async function toDataURL(url: string): Promise {\n return new Promise((resolve) => {\n const xhr = new XMLHttpRequest();\n xhr.onload = function () {\n const reader = new FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\n","interface ErrorCorrectionPercents {\n [key: string]: number;\n}\n\nexport default {\n L: 0.07,\n M: 0.15,\n Q: 0.25,\n H: 0.3\n} as ErrorCorrectionPercents;\n","import dotTypes from \"../../constants/dotTypes\";\nimport { DotType, GetNeighbor, DrawArgs, BasicFigureDrawArgs, RotateFigureArgs } from \"../../types\";\n\nexport default class QRDot {\n _element?: SVGElement;\n _svg: SVGElement;\n _type: DotType;\n\n constructor({ svg, type }: { svg: SVGElement; type: DotType }) {\n this._svg = svg;\n this._type = type;\n }\n\n draw(x: number, y: number, size: number, getNeighbor: GetNeighbor): void {\n const type = this._type;\n let drawFunction;\n\n switch (type) {\n case dotTypes.dots:\n drawFunction = this._drawDot;\n break;\n case dotTypes.classy:\n drawFunction = this._drawClassy;\n break;\n case dotTypes.classyRounded:\n drawFunction = this._drawClassyRounded;\n break;\n case dotTypes.rounded:\n drawFunction = this._drawRounded;\n break;\n case dotTypes.extraRounded:\n drawFunction = this._drawExtraRounded;\n break;\n case dotTypes.square:\n default:\n drawFunction = this._drawSquare;\n }\n\n drawFunction.call(this, { x, y, size, getNeighbor });\n }\n\n _rotateFigure({ x, y, size, rotation = 0, draw }: RotateFigureArgs): void {\n const cx = x + size / 2;\n const cy = y + size / 2;\n\n draw();\n this._element?.setAttribute(\"transform\", `rotate(${(180 * rotation) / Math.PI},${cx},${cy})`);\n }\n\n _basicDot(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n this._element.setAttribute(\"cx\", String(x + size / 2));\n this._element.setAttribute(\"cy\", String(y + size / 2));\n this._element.setAttribute(\"r\", String(size / 2));\n }\n });\n }\n\n _basicSquare(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n this._element.setAttribute(\"x\", String(x));\n this._element.setAttribute(\"y\", String(y));\n this._element.setAttribute(\"width\", String(size));\n this._element.setAttribute(\"height\", String(size));\n }\n });\n }\n\n //if rotation === 0 - right side is rounded\n _basicSideRounded(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this._element.setAttribute(\n \"d\",\n `M ${x} ${y}` + //go to top left position\n `v ${size}` + //draw line to left bottom corner\n `h ${size / 2}` + //draw line to left bottom corner + half of size right\n `a ${size / 2} ${size / 2}, 0, 0, 0, 0 ${-size}` // draw rounded corner\n );\n }\n });\n }\n\n //if rotation === 0 - top right corner is rounded\n _basicCornerRounded(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this._element.setAttribute(\n \"d\",\n `M ${x} ${y}` + //go to top left position\n `v ${size}` + //draw line to left bottom corner\n `h ${size}` + //draw line to right bottom corner\n `v ${-size / 2}` + //draw line to right bottom corner + half of size top\n `a ${size / 2} ${size / 2}, 0, 0, 0, ${-size / 2} ${-size / 2}` // draw rounded corner\n );\n }\n });\n }\n\n //if rotation === 0 - top right corner is rounded\n _basicCornerExtraRounded(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this._element.setAttribute(\n \"d\",\n `M ${x} ${y}` + //go to top left position\n `v ${size}` + //draw line to left bottom corner\n `h ${size}` + //draw line to right bottom corner\n `a ${size} ${size}, 0, 0, 0, ${-size} ${-size}` // draw rounded top right corner\n );\n }\n });\n }\n\n //if rotation === 0 - left bottom and right top corners are rounded\n _basicCornersRounded(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this._element.setAttribute(\n \"d\",\n `M ${x} ${y}` + //go to left top position\n `v ${size / 2}` + //draw line to left top corner + half of size bottom\n `a ${size / 2} ${size / 2}, 0, 0, 0, ${size / 2} ${size / 2}` + // draw rounded left bottom corner\n `h ${size / 2}` + //draw line to right bottom corner\n `v ${-size / 2}` + //draw line to right bottom corner + half of size top\n `a ${size / 2} ${size / 2}, 0, 0, 0, ${-size / 2} ${-size / 2}` // draw rounded right top corner\n );\n }\n });\n }\n\n _drawDot({ x, y, size }: DrawArgs): void {\n this._basicDot({ x, y, size, rotation: 0 });\n }\n\n _drawSquare({ x, y, size }: DrawArgs): void {\n this._basicSquare({ x, y, size, rotation: 0 });\n }\n\n _drawRounded({ x, y, size, getNeighbor }: DrawArgs): void {\n const leftNeighbor = getNeighbor ? +getNeighbor(-1, 0) : 0;\n const rightNeighbor = getNeighbor ? +getNeighbor(1, 0) : 0;\n const topNeighbor = getNeighbor ? +getNeighbor(0, -1) : 0;\n const bottomNeighbor = getNeighbor ? +getNeighbor(0, 1) : 0;\n\n const neighborsCount = leftNeighbor + rightNeighbor + topNeighbor + bottomNeighbor;\n\n if (neighborsCount === 0) {\n this._basicDot({ x, y, size, rotation: 0 });\n return;\n }\n\n if (neighborsCount > 2 || (leftNeighbor && rightNeighbor) || (topNeighbor && bottomNeighbor)) {\n this._basicSquare({ x, y, size, rotation: 0 });\n return;\n }\n\n if (neighborsCount === 2) {\n let rotation = 0;\n\n if (leftNeighbor && topNeighbor) {\n rotation = Math.PI / 2;\n } else if (topNeighbor && rightNeighbor) {\n rotation = Math.PI;\n } else if (rightNeighbor && bottomNeighbor) {\n rotation = -Math.PI / 2;\n }\n\n this._basicCornerRounded({ x, y, size, rotation });\n return;\n }\n\n if (neighborsCount === 1) {\n let rotation = 0;\n\n if (topNeighbor) {\n rotation = Math.PI / 2;\n } else if (rightNeighbor) {\n rotation = Math.PI;\n } else if (bottomNeighbor) {\n rotation = -Math.PI / 2;\n }\n\n this._basicSideRounded({ x, y, size, rotation });\n return;\n }\n }\n\n _drawExtraRounded({ x, y, size, getNeighbor }: DrawArgs): void {\n const leftNeighbor = getNeighbor ? +getNeighbor(-1, 0) : 0;\n const rightNeighbor = getNeighbor ? +getNeighbor(1, 0) : 0;\n const topNeighbor = getNeighbor ? +getNeighbor(0, -1) : 0;\n const bottomNeighbor = getNeighbor ? +getNeighbor(0, 1) : 0;\n\n const neighborsCount = leftNeighbor + rightNeighbor + topNeighbor + bottomNeighbor;\n\n if (neighborsCount === 0) {\n this._basicDot({ x, y, size, rotation: 0 });\n return;\n }\n\n if (neighborsCount > 2 || (leftNeighbor && rightNeighbor) || (topNeighbor && bottomNeighbor)) {\n this._basicSquare({ x, y, size, rotation: 0 });\n return;\n }\n\n if (neighborsCount === 2) {\n let rotation = 0;\n\n if (leftNeighbor && topNeighbor) {\n rotation = Math.PI / 2;\n } else if (topNeighbor && rightNeighbor) {\n rotation = Math.PI;\n } else if (rightNeighbor && bottomNeighbor) {\n rotation = -Math.PI / 2;\n }\n\n this._basicCornerExtraRounded({ x, y, size, rotation });\n return;\n }\n\n if (neighborsCount === 1) {\n let rotation = 0;\n\n if (topNeighbor) {\n rotation = Math.PI / 2;\n } else if (rightNeighbor) {\n rotation = Math.PI;\n } else if (bottomNeighbor) {\n rotation = -Math.PI / 2;\n }\n\n this._basicSideRounded({ x, y, size, rotation });\n return;\n }\n }\n\n _drawClassy({ x, y, size, getNeighbor }: DrawArgs): void {\n const leftNeighbor = getNeighbor ? +getNeighbor(-1, 0) : 0;\n const rightNeighbor = getNeighbor ? +getNeighbor(1, 0) : 0;\n const topNeighbor = getNeighbor ? +getNeighbor(0, -1) : 0;\n const bottomNeighbor = getNeighbor ? +getNeighbor(0, 1) : 0;\n\n const neighborsCount = leftNeighbor + rightNeighbor + topNeighbor + bottomNeighbor;\n\n if (neighborsCount === 0) {\n this._basicCornersRounded({ x, y, size, rotation: Math.PI / 2 });\n return;\n }\n\n if (!leftNeighbor && !topNeighbor) {\n this._basicCornerRounded({ x, y, size, rotation: -Math.PI / 2 });\n return;\n }\n\n if (!rightNeighbor && !bottomNeighbor) {\n this._basicCornerRounded({ x, y, size, rotation: Math.PI / 2 });\n return;\n }\n\n this._basicSquare({ x, y, size, rotation: 0 });\n }\n\n _drawClassyRounded({ x, y, size, getNeighbor }: DrawArgs): void {\n const leftNeighbor = getNeighbor ? +getNeighbor(-1, 0) : 0;\n const rightNeighbor = getNeighbor ? +getNeighbor(1, 0) : 0;\n const topNeighbor = getNeighbor ? +getNeighbor(0, -1) : 0;\n const bottomNeighbor = getNeighbor ? +getNeighbor(0, 1) : 0;\n\n const neighborsCount = leftNeighbor + rightNeighbor + topNeighbor + bottomNeighbor;\n\n if (neighborsCount === 0) {\n this._basicCornersRounded({ x, y, size, rotation: Math.PI / 2 });\n return;\n }\n\n if (!leftNeighbor && !topNeighbor) {\n this._basicCornerExtraRounded({ x, y, size, rotation: -Math.PI / 2 });\n return;\n }\n\n if (!rightNeighbor && !bottomNeighbor) {\n this._basicCornerExtraRounded({ x, y, size, rotation: Math.PI / 2 });\n return;\n }\n\n this._basicSquare({ x, y, size, rotation: 0 });\n }\n}\n","import { DotTypes } from \"../types\";\n\nexport default {\n dots: \"dots\",\n rounded: \"rounded\",\n classy: \"classy\",\n classyRounded: \"classy-rounded\",\n square: \"square\",\n extraRounded: \"extra-rounded\"\n} as DotTypes;\n","import cornerSquareTypes from \"../../constants/cornerSquareTypes\";\nimport { CornerSquareType, DrawArgs, BasicFigureDrawArgs, RotateFigureArgs } from \"../../types\";\n\nexport default class QRCornerSquare {\n _element?: SVGElement;\n _svg: SVGElement;\n _type: CornerSquareType;\n\n constructor({ svg, type }: { svg: SVGElement; type: CornerSquareType }) {\n this._svg = svg;\n this._type = type;\n }\n\n draw(x: number, y: number, size: number, rotation: number): void {\n const type = this._type;\n let drawFunction;\n\n switch (type) {\n case cornerSquareTypes.square:\n drawFunction = this._drawSquare;\n break;\n case cornerSquareTypes.extraRounded:\n drawFunction = this._drawExtraRounded;\n break;\n case cornerSquareTypes.dot:\n default:\n drawFunction = this._drawDot;\n }\n\n drawFunction.call(this, { x, y, size, rotation });\n }\n\n _rotateFigure({ x, y, size, rotation = 0, draw }: RotateFigureArgs): void {\n const cx = x + size / 2;\n const cy = y + size / 2;\n\n draw();\n this._element?.setAttribute(\"transform\", `rotate(${(180 * rotation) / Math.PI},${cx},${cy})`);\n }\n\n _basicDot(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n const dotSize = size / 7;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this._element.setAttribute(\"clip-rule\", \"evenodd\");\n this._element.setAttribute(\n \"d\",\n `M ${x + size / 2} ${y}` + // M cx, y // Move to top of ring\n `a ${size / 2} ${size / 2} 0 1 0 0.1 0` + // a outerRadius, outerRadius, 0, 1, 0, 1, 0 // Draw outer arc, but don't close it\n `z` + // Z // Close the outer shape\n `m 0 ${dotSize}` + // m -1 outerRadius-innerRadius // Move to top point of inner radius\n `a ${size / 2 - dotSize} ${size / 2 - dotSize} 0 1 1 -0.1 0` + // a innerRadius, innerRadius, 0, 1, 1, -1, 0 // Draw inner arc, but don't close it\n `Z` // Z // Close the inner ring. Actually will still work without, but inner ring will have one unit missing in stroke\n );\n }\n });\n }\n\n _basicSquare(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n const dotSize = size / 7;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this._element.setAttribute(\"clip-rule\", \"evenodd\");\n this._element.setAttribute(\n \"d\",\n `M ${x} ${y}` +\n `v ${size}` +\n `h ${size}` +\n `v ${-size}` +\n `z` +\n `M ${x + dotSize} ${y + dotSize}` +\n `h ${size - 2 * dotSize}` +\n `v ${size - 2 * dotSize}` +\n `h ${-size + 2 * dotSize}` +\n `z`\n );\n }\n });\n }\n\n _basicExtraRounded(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n const dotSize = size / 7;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this._element.setAttribute(\"clip-rule\", \"evenodd\");\n this._element.setAttribute(\n \"d\",\n `M ${x} ${y + 2.5 * dotSize}` +\n `v ${2 * dotSize}` +\n `a ${2.5 * dotSize} ${2.5 * dotSize}, 0, 0, 0, ${dotSize * 2.5} ${dotSize * 2.5}` +\n `h ${2 * dotSize}` +\n `a ${2.5 * dotSize} ${2.5 * dotSize}, 0, 0, 0, ${dotSize * 2.5} ${-dotSize * 2.5}` +\n `v ${-2 * dotSize}` +\n `a ${2.5 * dotSize} ${2.5 * dotSize}, 0, 0, 0, ${-dotSize * 2.5} ${-dotSize * 2.5}` +\n `h ${-2 * dotSize}` +\n `a ${2.5 * dotSize} ${2.5 * dotSize}, 0, 0, 0, ${-dotSize * 2.5} ${dotSize * 2.5}` +\n `M ${x + 2.5 * dotSize} ${y + dotSize}` +\n `h ${2 * dotSize}` +\n `a ${1.5 * dotSize} ${1.5 * dotSize}, 0, 0, 1, ${dotSize * 1.5} ${dotSize * 1.5}` +\n `v ${2 * dotSize}` +\n `a ${1.5 * dotSize} ${1.5 * dotSize}, 0, 0, 1, ${-dotSize * 1.5} ${dotSize * 1.5}` +\n `h ${-2 * dotSize}` +\n `a ${1.5 * dotSize} ${1.5 * dotSize}, 0, 0, 1, ${-dotSize * 1.5} ${-dotSize * 1.5}` +\n `v ${-2 * dotSize}` +\n `a ${1.5 * dotSize} ${1.5 * dotSize}, 0, 0, 1, ${dotSize * 1.5} ${-dotSize * 1.5}`\n );\n }\n });\n }\n\n _drawDot({ x, y, size, rotation }: DrawArgs): void {\n this._basicDot({ x, y, size, rotation });\n }\n\n _drawSquare({ x, y, size, rotation }: DrawArgs): void {\n this._basicSquare({ x, y, size, rotation });\n }\n\n _drawExtraRounded({ x, y, size, rotation }: DrawArgs): void {\n this._basicExtraRounded({ x, y, size, rotation });\n }\n}\n","import { CornerSquareTypes } from \"../types\";\n\nexport default {\n dot: \"dot\",\n square: \"square\",\n extraRounded: \"extra-rounded\"\n} as CornerSquareTypes;\n","import cornerDotTypes from \"../../constants/cornerDotTypes\";\nimport { CornerDotType, RotateFigureArgs, BasicFigureDrawArgs, DrawArgs } from \"../../types\";\n\nexport default class QRCornerDot {\n _element?: SVGElement;\n _svg: SVGElement;\n _type: CornerDotType;\n\n constructor({ svg, type }: { svg: SVGElement; type: CornerDotType }) {\n this._svg = svg;\n this._type = type;\n }\n\n draw(x: number, y: number, size: number, rotation: number): void {\n const type = this._type;\n let drawFunction;\n\n switch (type) {\n case cornerDotTypes.square:\n drawFunction = this._drawSquare;\n break;\n case cornerDotTypes.dot:\n default:\n drawFunction = this._drawDot;\n }\n\n drawFunction.call(this, { x, y, size, rotation });\n }\n\n _rotateFigure({ x, y, size, rotation = 0, draw }: RotateFigureArgs): void {\n const cx = x + size / 2;\n const cy = y + size / 2;\n\n draw();\n this._element?.setAttribute(\"transform\", `rotate(${(180 * rotation) / Math.PI},${cx},${cy})`);\n }\n\n _basicDot(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"circle\");\n this._element.setAttribute(\"cx\", String(x + size / 2));\n this._element.setAttribute(\"cy\", String(y + size / 2));\n this._element.setAttribute(\"r\", String(size / 2));\n }\n });\n }\n\n _basicSquare(args: BasicFigureDrawArgs): void {\n const { size, x, y } = args;\n\n this._rotateFigure({\n ...args,\n draw: () => {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n this._element.setAttribute(\"x\", String(x));\n this._element.setAttribute(\"y\", String(y));\n this._element.setAttribute(\"width\", String(size));\n this._element.setAttribute(\"height\", String(size));\n }\n });\n }\n\n _drawDot({ x, y, size, rotation }: DrawArgs): void {\n this._basicDot({ x, y, size, rotation });\n }\n\n _drawSquare({ x, y, size, rotation }: DrawArgs): void {\n this._basicSquare({ x, y, size, rotation });\n }\n}\n","import { CornerDotTypes } from \"../types\";\n\nexport default {\n dot: \"dot\",\n square: \"square\"\n} as CornerDotTypes;\n","import { ShapeTypes } from \"../types\";\n\nexport default {\n square: \"square\",\n circle: \"circle\"\n} as ShapeTypes;\n","import calculateImageSize from \"../tools/calculateImageSize\";\nimport toDataUrl from \"../tools/toDataUrl\";\nimport errorCorrectionPercents from \"../constants/errorCorrectionPercents\";\nimport QRDot from \"../figures/dot/QRDot\";\nimport QRCornerSquare from \"../figures/cornerSquare/QRCornerSquare\";\nimport QRCornerDot from \"../figures/cornerDot/QRCornerDot\";\nimport { RequiredOptions } from \"./QROptions\";\nimport gradientTypes from \"../constants/gradientTypes\";\nimport shapeTypes from \"../constants/shapeTypes\";\nimport { QRCode, FilterFunction, Gradient } from \"../types\";\n\nconst squareMask = [\n [1, 1, 1, 1, 1, 1, 1],\n [1, 0, 0, 0, 0, 0, 1],\n [1, 0, 0, 0, 0, 0, 1],\n [1, 0, 0, 0, 0, 0, 1],\n [1, 0, 0, 0, 0, 0, 1],\n [1, 0, 0, 0, 0, 0, 1],\n [1, 1, 1, 1, 1, 1, 1]\n];\n\nconst dotMask = [\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 1, 1, 1, 0, 0],\n [0, 0, 1, 1, 1, 0, 0],\n [0, 0, 1, 1, 1, 0, 0],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n];\n\nexport default class QRSVG {\n _element: SVGElement;\n _defs: SVGElement;\n _backgroundClipPath?: SVGElement;\n _dotsClipPath?: SVGElement;\n _cornersSquareClipPath?: SVGElement;\n _cornersDotClipPath?: SVGElement;\n _options: RequiredOptions;\n _qr?: QRCode;\n _image?: HTMLImageElement;\n\n //TODO don't pass all options to this class\n constructor(options: RequiredOptions) {\n this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n this._element.setAttribute(\"width\", String(options.width));\n this._element.setAttribute(\"height\", String(options.height));\n this._defs = document.createElementNS(\"http://www.w3.org/2000/svg\", \"defs\");\n this._element.appendChild(this._defs);\n\n this._options = options;\n }\n\n get width(): number {\n return this._options.width;\n }\n\n get height(): number {\n return this._options.height;\n }\n\n getElement(): SVGElement {\n return this._element;\n }\n\n async drawQR(qr: QRCode): Promise {\n const count = qr.getModuleCount();\n const minSize = Math.min(this._options.width, this._options.height) - this._options.margin * 2;\n const realQRSize = this._options.shape === shapeTypes.circle ? minSize / Math.sqrt(2) : minSize;\n const dotSize = Math.floor(realQRSize / count);\n let drawImageSize = {\n hideXDots: 0,\n hideYDots: 0,\n width: 0,\n height: 0\n };\n\n this._qr = qr;\n\n if (this._options.image) {\n //We need it to get image size\n await this.loadImage();\n if (!this._image) return;\n const { imageOptions, qrOptions } = this._options;\n const coverLevel = imageOptions.imageSize * errorCorrectionPercents[qrOptions.errorCorrectionLevel];\n const maxHiddenDots = Math.floor(coverLevel * count * count);\n\n drawImageSize = calculateImageSize({\n originalWidth: this._image.width,\n originalHeight: this._image.height,\n maxHiddenDots,\n maxHiddenAxisDots: count - 14,\n dotSize\n });\n }\n\n this.drawBackground();\n this.drawDots((i: number, j: number): boolean => {\n if (this._options.imageOptions.hideBackgroundDots) {\n if (\n i >= (count - drawImageSize.hideXDots) / 2 &&\n i < (count + drawImageSize.hideXDots) / 2 &&\n j >= (count - drawImageSize.hideYDots) / 2 &&\n j < (count + drawImageSize.hideYDots) / 2\n ) {\n return false;\n }\n }\n\n if (squareMask[i]?.[j] || squareMask[i - count + 7]?.[j] || squareMask[i]?.[j - count + 7]) {\n return false;\n }\n\n if (dotMask[i]?.[j] || dotMask[i - count + 7]?.[j] || dotMask[i]?.[j - count + 7]) {\n return false;\n }\n\n return true;\n });\n this.drawCorners();\n\n if (this._options.image) {\n await this.drawImage({ width: drawImageSize.width, height: drawImageSize.height, count, dotSize });\n }\n }\n\n drawBackground(): void {\n const element = this._element;\n const options = this._options;\n\n if (element) {\n const gradientOptions = options.backgroundOptions?.gradient;\n const color = options.backgroundOptions?.color;\n\n if (gradientOptions || color) {\n this._createColor({\n options: gradientOptions,\n color: color,\n additionalRotation: 0,\n x: 0,\n y: 0,\n height: options.height,\n width: options.width,\n name: \"background-color\"\n });\n }\n\n if (options.backgroundOptions?.round) {\n const size = Math.min(options.width, options.height);\n const element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n this._backgroundClipPath = document.createElementNS(\"http://www.w3.org/2000/svg\", \"clipPath\");\n this._backgroundClipPath.setAttribute(\"id\", \"clip-path-background-color\");\n this._defs.appendChild(this._backgroundClipPath);\n\n element.setAttribute(\"x\", String((options.width - size) / 2));\n element.setAttribute(\"y\", String((options.height - size) / 2));\n element.setAttribute(\"width\", String(size));\n element.setAttribute(\"height\", String(size));\n element.setAttribute(\"rx\", String((size / 2) * options.backgroundOptions.round));\n\n this._backgroundClipPath.appendChild(element);\n }\n }\n }\n\n drawDots(filter?: FilterFunction): void {\n if (!this._qr) {\n throw \"QR code is not defined\";\n }\n\n const options = this._options;\n const count = this._qr.getModuleCount();\n\n if (count > options.width || count > options.height) {\n throw \"The canvas is too small.\";\n }\n\n const minSize = Math.min(options.width, options.height) - options.margin * 2;\n const realQRSize = options.shape === shapeTypes.circle ? minSize / Math.sqrt(2) : minSize;\n const dotSize = Math.floor(realQRSize / count);\n const xBeginning = Math.floor((options.width - count * dotSize) / 2);\n const yBeginning = Math.floor((options.height - count * dotSize) / 2);\n const dot = new QRDot({ svg: this._element, type: options.dotsOptions.type });\n\n this._dotsClipPath = document.createElementNS(\"http://www.w3.org/2000/svg\", \"clipPath\");\n this._dotsClipPath.setAttribute(\"id\", \"clip-path-dot-color\");\n this._defs.appendChild(this._dotsClipPath);\n\n this._createColor({\n options: options.dotsOptions?.gradient,\n color: options.dotsOptions.color,\n additionalRotation: 0,\n x: 0,\n y: 0,\n height: options.height,\n width: options.width,\n name: \"dot-color\"\n });\n\n for (let i = 0; i < count; i++) {\n for (let j = 0; j < count; j++) {\n if (filter && !filter(i, j)) {\n continue;\n }\n if (!this._qr?.isDark(i, j)) {\n continue;\n }\n\n dot.draw(\n xBeginning + i * dotSize,\n yBeginning + j * dotSize,\n dotSize,\n (xOffset: number, yOffset: number): boolean => {\n if (i + xOffset < 0 || j + yOffset < 0 || i + xOffset >= count || j + yOffset >= count) return false;\n if (filter && !filter(i + xOffset, j + yOffset)) return false;\n return !!this._qr && this._qr.isDark(i + xOffset, j + yOffset);\n }\n );\n\n if (dot._element && this._dotsClipPath) {\n this._dotsClipPath.appendChild(dot._element);\n }\n }\n }\n\n if (options.shape === shapeTypes.circle) {\n const additionalDots = Math.floor((minSize / dotSize - count) / 2);\n const fakeCount = count + additionalDots * 2;\n const xFakeBeginning = xBeginning - additionalDots * dotSize;\n const yFakeBeginning = yBeginning - additionalDots * dotSize;\n const fakeMatrix: number[][] = [];\n const center = Math.floor(fakeCount / 2);\n\n for (let i = 0; i < fakeCount; i++) {\n fakeMatrix[i] = [];\n for (let j = 0; j < fakeCount; j++) {\n if (\n i >= additionalDots - 1 &&\n i <= fakeCount - additionalDots &&\n j >= additionalDots - 1 &&\n j <= fakeCount - additionalDots\n ) {\n fakeMatrix[i][j] = 0;\n continue;\n }\n\n if (Math.sqrt((i - center) * (i - center) + (j - center) * (j - center)) > center) {\n fakeMatrix[i][j] = 0;\n continue;\n }\n\n //Get random dots from QR code to show it outside of QR code\n fakeMatrix[i][j] = this._qr.isDark(\n j - 2 * additionalDots < 0 ? j : j >= count ? j - 2 * additionalDots : j - additionalDots,\n i - 2 * additionalDots < 0 ? i : i >= count ? i - 2 * additionalDots : i - additionalDots\n )\n ? 1\n : 0;\n }\n }\n\n for (let i = 0; i < fakeCount; i++) {\n for (let j = 0; j < fakeCount; j++) {\n if (!fakeMatrix[i][j]) continue;\n\n dot.draw(\n xFakeBeginning + i * dotSize,\n yFakeBeginning + j * dotSize,\n dotSize,\n (xOffset: number, yOffset: number): boolean => {\n return !!fakeMatrix[i + xOffset]?.[j + yOffset];\n }\n );\n if (dot._element && this._dotsClipPath) {\n this._dotsClipPath.appendChild(dot._element);\n }\n }\n }\n }\n }\n\n drawCorners(): void {\n if (!this._qr) {\n throw \"QR code is not defined\";\n }\n\n const element = this._element;\n const options = this._options;\n\n if (!element) {\n throw \"Element code is not defined\";\n }\n\n const count = this._qr.getModuleCount();\n const minSize = Math.min(options.width, options.height) - options.margin * 2;\n const realQRSize = options.shape === shapeTypes.circle ? minSize / Math.sqrt(2) : minSize;\n const dotSize = Math.floor(realQRSize / count);\n const cornersSquareSize = dotSize * 7;\n const cornersDotSize = dotSize * 3;\n const xBeginning = Math.floor((options.width - count * dotSize) / 2);\n const yBeginning = Math.floor((options.height - count * dotSize) / 2);\n\n [\n [0, 0, 0],\n [1, 0, Math.PI / 2],\n [0, 1, -Math.PI / 2]\n ].forEach(([column, row, rotation]) => {\n const x = xBeginning + column * dotSize * (count - 7);\n const y = yBeginning + row * dotSize * (count - 7);\n let cornersSquareClipPath = this._dotsClipPath;\n let cornersDotClipPath = this._dotsClipPath;\n\n if (options.cornersSquareOptions?.gradient || options.cornersSquareOptions?.color) {\n cornersSquareClipPath = document.createElementNS(\"http://www.w3.org/2000/svg\", \"clipPath\");\n cornersSquareClipPath.setAttribute(\"id\", `clip-path-corners-square-color-${column}-${row}`);\n this._defs.appendChild(cornersSquareClipPath);\n this._cornersSquareClipPath = this._cornersDotClipPath = cornersDotClipPath = cornersSquareClipPath;\n\n this._createColor({\n options: options.cornersSquareOptions?.gradient,\n color: options.cornersSquareOptions?.color,\n additionalRotation: rotation,\n x,\n y,\n height: cornersSquareSize,\n width: cornersSquareSize,\n name: `corners-square-color-${column}-${row}`\n });\n }\n\n if (options.cornersSquareOptions?.type) {\n const cornersSquare = new QRCornerSquare({ svg: this._element, type: options.cornersSquareOptions.type });\n\n cornersSquare.draw(x, y, cornersSquareSize, rotation);\n\n if (cornersSquare._element && cornersSquareClipPath) {\n cornersSquareClipPath.appendChild(cornersSquare._element);\n }\n } else {\n const dot = new QRDot({ svg: this._element, type: options.dotsOptions.type });\n\n for (let i = 0; i < squareMask.length; i++) {\n for (let j = 0; j < squareMask[i].length; j++) {\n if (!squareMask[i]?.[j]) {\n continue;\n }\n\n dot.draw(\n x + i * dotSize,\n y + j * dotSize,\n dotSize,\n (xOffset: number, yOffset: number): boolean => !!squareMask[i + xOffset]?.[j + yOffset]\n );\n\n if (dot._element && cornersSquareClipPath) {\n cornersSquareClipPath.appendChild(dot._element);\n }\n }\n }\n }\n\n if (options.cornersDotOptions?.gradient || options.cornersDotOptions?.color) {\n cornersDotClipPath = document.createElementNS(\"http://www.w3.org/2000/svg\", \"clipPath\");\n cornersDotClipPath.setAttribute(\"id\", `clip-path-corners-dot-color-${column}-${row}`);\n this._defs.appendChild(cornersDotClipPath);\n this._cornersDotClipPath = cornersDotClipPath;\n\n this._createColor({\n options: options.cornersDotOptions?.gradient,\n color: options.cornersDotOptions?.color,\n additionalRotation: rotation,\n x: x + dotSize * 2,\n y: y + dotSize * 2,\n height: cornersDotSize,\n width: cornersDotSize,\n name: `corners-dot-color-${column}-${row}`\n });\n }\n\n if (options.cornersDotOptions?.type) {\n const cornersDot = new QRCornerDot({ svg: this._element, type: options.cornersDotOptions.type });\n\n cornersDot.draw(x + dotSize * 2, y + dotSize * 2, cornersDotSize, rotation);\n\n if (cornersDot._element && cornersDotClipPath) {\n cornersDotClipPath.appendChild(cornersDot._element);\n }\n } else {\n const dot = new QRDot({ svg: this._element, type: options.dotsOptions.type });\n\n for (let i = 0; i < dotMask.length; i++) {\n for (let j = 0; j < dotMask[i].length; j++) {\n if (!dotMask[i]?.[j]) {\n continue;\n }\n\n dot.draw(\n x + i * dotSize,\n y + j * dotSize,\n dotSize,\n (xOffset: number, yOffset: number): boolean => !!dotMask[i + xOffset]?.[j + yOffset]\n );\n\n if (dot._element && cornersDotClipPath) {\n cornersDotClipPath.appendChild(dot._element);\n }\n }\n }\n }\n });\n }\n\n loadImage(): Promise {\n return new Promise((resolve, reject) => {\n const options = this._options;\n const image = new Image();\n\n if (!options.image) {\n return reject(\"Image is not defined\");\n }\n\n if (typeof options.imageOptions.crossOrigin === \"string\") {\n image.crossOrigin = options.imageOptions.crossOrigin;\n }\n\n this._image = image;\n image.onload = (): void => {\n resolve();\n };\n image.src = options.image;\n });\n }\n\n async drawImage({\n width,\n height,\n count,\n dotSize\n }: {\n width: number;\n height: number;\n count: number;\n dotSize: number;\n }): Promise {\n const options = this._options;\n const xBeginning = Math.floor((options.width - count * dotSize) / 2);\n const yBeginning = Math.floor((options.height - count * dotSize) / 2);\n const dx = xBeginning + options.imageOptions.margin + (count * dotSize - width) / 2;\n const dy = yBeginning + options.imageOptions.margin + (count * dotSize - height) / 2;\n const dw = width - options.imageOptions.margin * 2;\n const dh = height - options.imageOptions.margin * 2;\n\n const image = document.createElementNS(\"http://www.w3.org/2000/svg\", \"image\");\n image.setAttribute(\"x\", String(dx));\n image.setAttribute(\"y\", String(dy));\n image.setAttribute(\"width\", `${dw}px`);\n image.setAttribute(\"height\", `${dh}px`);\n\n const imageUrl = await toDataUrl(options.image || \"\");\n\n image.setAttribute(\"href\", imageUrl || \"\");\n\n this._element.appendChild(image);\n }\n\n _createColor({\n options,\n color,\n additionalRotation,\n x,\n y,\n height,\n width,\n name\n }: {\n options?: Gradient;\n color?: string;\n additionalRotation: number;\n x: number;\n y: number;\n height: number;\n width: number;\n name: string;\n }): void {\n const size = width > height ? width : height;\n const rect = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"x\", String(x));\n rect.setAttribute(\"y\", String(y));\n rect.setAttribute(\"height\", String(height));\n rect.setAttribute(\"width\", String(width));\n rect.setAttribute(\"clip-path\", `url('#clip-path-${name}')`);\n\n if (options) {\n let gradient: SVGElement;\n if (options.type === gradientTypes.radial) {\n gradient = document.createElementNS(\"http://www.w3.org/2000/svg\", \"radialGradient\");\n gradient.setAttribute(\"id\", name);\n gradient.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttribute(\"fx\", String(x + width / 2));\n gradient.setAttribute(\"fy\", String(y + height / 2));\n gradient.setAttribute(\"cx\", String(x + width / 2));\n gradient.setAttribute(\"cy\", String(y + height / 2));\n gradient.setAttribute(\"r\", String(size / 2));\n } else {\n const rotation = ((options.rotation || 0) + additionalRotation) % (2 * Math.PI);\n const positiveRotation = (rotation + 2 * Math.PI) % (2 * Math.PI);\n let x0 = x + width / 2;\n let y0 = y + height / 2;\n let x1 = x + width / 2;\n let y1 = y + height / 2;\n\n if (\n (positiveRotation >= 0 && positiveRotation <= 0.25 * Math.PI) ||\n (positiveRotation > 1.75 * Math.PI && positiveRotation <= 2 * Math.PI)\n ) {\n x0 = x0 - width / 2;\n y0 = y0 - (height / 2) * Math.tan(rotation);\n x1 = x1 + width / 2;\n y1 = y1 + (height / 2) * Math.tan(rotation);\n } else if (positiveRotation > 0.25 * Math.PI && positiveRotation <= 0.75 * Math.PI) {\n y0 = y0 - height / 2;\n x0 = x0 - width / 2 / Math.tan(rotation);\n y1 = y1 + height / 2;\n x1 = x1 + width / 2 / Math.tan(rotation);\n } else if (positiveRotation > 0.75 * Math.PI && positiveRotation <= 1.25 * Math.PI) {\n x0 = x0 + width / 2;\n y0 = y0 + (height / 2) * Math.tan(rotation);\n x1 = x1 - width / 2;\n y1 = y1 - (height / 2) * Math.tan(rotation);\n } else if (positiveRotation > 1.25 * Math.PI && positiveRotation <= 1.75 * Math.PI) {\n y0 = y0 + height / 2;\n x0 = x0 + width / 2 / Math.tan(rotation);\n y1 = y1 - height / 2;\n x1 = x1 - width / 2 / Math.tan(rotation);\n }\n\n gradient = document.createElementNS(\"http://www.w3.org/2000/svg\", \"linearGradient\");\n gradient.setAttribute(\"id\", name);\n gradient.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttribute(\"x1\", String(Math.round(x0)));\n gradient.setAttribute(\"y1\", String(Math.round(y0)));\n gradient.setAttribute(\"x2\", String(Math.round(x1)));\n gradient.setAttribute(\"y2\", String(Math.round(y1)));\n }\n\n options.colorStops.forEach(({ offset, color }: { offset: number; color: string }) => {\n const stop = document.createElementNS(\"http://www.w3.org/2000/svg\", \"stop\");\n stop.setAttribute(\"offset\", `${100 * offset}%`);\n stop.setAttribute(\"stop-color\", color);\n gradient.appendChild(stop);\n });\n\n rect.setAttribute(\"fill\", `url('#${name}')`);\n this._defs.appendChild(gradient);\n } else if (color) {\n rect.setAttribute(\"fill\", color);\n }\n\n this._element.appendChild(rect);\n }\n}\n","interface ImageSizeOptions {\n originalHeight: number;\n originalWidth: number;\n maxHiddenDots: number;\n maxHiddenAxisDots?: number;\n dotSize: number;\n}\n\ninterface ImageSizeResult {\n height: number;\n width: number;\n hideYDots: number;\n hideXDots: number;\n}\n\nexport default function calculateImageSize({\n originalHeight,\n originalWidth,\n maxHiddenDots,\n maxHiddenAxisDots,\n dotSize\n}: ImageSizeOptions): ImageSizeResult {\n const hideDots = { x: 0, y: 0 };\n const imageSize = { x: 0, y: 0 };\n\n if (originalHeight <= 0 || originalWidth <= 0 || maxHiddenDots <= 0 || dotSize <= 0) {\n return {\n height: 0,\n width: 0,\n hideYDots: 0,\n hideXDots: 0\n };\n }\n\n const k = originalHeight / originalWidth;\n\n //Getting the maximum possible axis hidden dots\n hideDots.x = Math.floor(Math.sqrt(maxHiddenDots / k));\n //The count of hidden dot's can't be less than 1\n if (hideDots.x <= 0) hideDots.x = 1;\n //Check the limit of the maximum allowed axis hidden dots\n if (maxHiddenAxisDots && maxHiddenAxisDots < hideDots.x) hideDots.x = maxHiddenAxisDots;\n //The count of dots should be odd\n if (hideDots.x % 2 === 0) hideDots.x--;\n imageSize.x = hideDots.x * dotSize;\n //Calculate opposite axis hidden dots based on axis value.\n //The value will be odd.\n //We use ceil to prevent dots covering by the image.\n hideDots.y = 1 + 2 * Math.ceil((hideDots.x * k - 1) / 2);\n imageSize.y = Math.round(imageSize.x * k);\n //If the result dots count is bigger than max - then decrease size and calculate again\n if (hideDots.y * hideDots.x > maxHiddenDots || (maxHiddenAxisDots && maxHiddenAxisDots < hideDots.y)) {\n if (maxHiddenAxisDots && maxHiddenAxisDots < hideDots.y) {\n hideDots.y = maxHiddenAxisDots;\n if (hideDots.y % 2 === 0) hideDots.x--;\n } else {\n hideDots.y -= 2;\n }\n imageSize.y = hideDots.y * dotSize;\n hideDots.x = 1 + 2 * Math.ceil((hideDots.y / k - 1) / 2);\n imageSize.x = Math.round(imageSize.y / k);\n }\n\n return {\n height: imageSize.y,\n width: imageSize.x,\n hideYDots: hideDots.y,\n hideXDots: hideDots.x\n };\n}\n","import { GradientTypes } from \"../types\";\n\nexport default {\n radial: \"radial\",\n linear: \"linear\"\n} as GradientTypes;\n","import { DrawTypes } from \"../types\";\n\nexport default {\n canvas: \"canvas\",\n svg: \"svg\"\n} as DrawTypes;\n","import { TypeNumber } from \"../types\";\n\ninterface TypesMap {\n [key: number]: TypeNumber;\n}\n\nconst qrTypes: TypesMap = {};\n\nfor (let type = 0; type <= 40; type++) {\n qrTypes[type] = type as TypeNumber;\n}\n\n// 0 types is autodetect\n\n// types = {\n// 0: 0,\n// 1: 1,\n// ...\n// 40: 40\n// }\n\nexport default qrTypes;\n","import qrTypes from \"../constants/qrTypes\";\nimport drawTypes from \"../constants/drawTypes\";\nimport shapeTypes from \"../constants/shapeTypes\";\nimport errorCorrectionLevels from \"../constants/errorCorrectionLevels\";\nimport { ShapeType, DotType, Options, TypeNumber, ErrorCorrectionLevel, Mode, DrawType, Gradient } from \"../types\";\n\nexport interface RequiredOptions extends Options {\n type: DrawType;\n shape: ShapeType;\n width: number;\n height: number;\n margin: number;\n data: string;\n qrOptions: {\n typeNumber: TypeNumber;\n mode?: Mode;\n errorCorrectionLevel: ErrorCorrectionLevel;\n };\n imageOptions: {\n hideBackgroundDots: boolean;\n imageSize: number;\n crossOrigin?: string;\n margin: number;\n };\n dotsOptions: {\n type: DotType;\n color: string;\n gradient?: Gradient;\n };\n backgroundOptions: {\n round: number;\n color: string;\n gradient?: Gradient;\n };\n}\n\nconst defaultOptions: RequiredOptions = {\n type: drawTypes.canvas,\n shape: shapeTypes.square,\n width: 300,\n height: 300,\n data: \"\",\n margin: 0,\n qrOptions: {\n typeNumber: qrTypes[0],\n mode: undefined,\n errorCorrectionLevel: errorCorrectionLevels.Q\n },\n imageOptions: {\n hideBackgroundDots: true,\n imageSize: 0.4,\n crossOrigin: undefined,\n margin: 0\n },\n dotsOptions: {\n type: \"square\",\n color: \"#000\"\n },\n backgroundOptions: {\n round: 0,\n color: \"#fff\"\n }\n};\n\nexport default defaultOptions;\n","import { ErrorCorrectionLevel } from \"../types\";\n\ninterface ErrorCorrectionLevels {\n [key: string]: ErrorCorrectionLevel;\n}\n\nexport default {\n L: \"L\",\n M: \"M\",\n Q: \"Q\",\n H: \"H\"\n} as ErrorCorrectionLevels;\n","import { RequiredOptions } from \"../core/QROptions\";\nimport { Gradient } from \"../types\";\n\nfunction sanitizeGradient(gradient: Gradient): Gradient {\n const newGradient = { ...gradient };\n\n if (!newGradient.colorStops || !newGradient.colorStops.length) {\n throw \"Field 'colorStops' is required in gradient\";\n }\n\n if (newGradient.rotation) {\n newGradient.rotation = Number(newGradient.rotation);\n } else {\n newGradient.rotation = 0;\n }\n\n newGradient.colorStops = newGradient.colorStops.map((colorStop: { offset: number; color: string }) => ({\n ...colorStop,\n offset: Number(colorStop.offset)\n }));\n\n return newGradient;\n}\n\nexport default function sanitizeOptions(options: RequiredOptions): RequiredOptions {\n const newOptions = { ...options };\n\n newOptions.width = Number(newOptions.width);\n newOptions.height = Number(newOptions.height);\n newOptions.margin = Number(newOptions.margin);\n newOptions.imageOptions = {\n ...newOptions.imageOptions,\n hideBackgroundDots: Boolean(newOptions.imageOptions.hideBackgroundDots),\n imageSize: Number(newOptions.imageOptions.imageSize),\n margin: Number(newOptions.imageOptions.margin)\n };\n\n if (newOptions.margin > Math.min(newOptions.width, newOptions.height)) {\n newOptions.margin = Math.min(newOptions.width, newOptions.height);\n }\n\n newOptions.dotsOptions = {\n ...newOptions.dotsOptions\n };\n if (newOptions.dotsOptions.gradient) {\n newOptions.dotsOptions.gradient = sanitizeGradient(newOptions.dotsOptions.gradient);\n }\n\n if (newOptions.cornersSquareOptions) {\n newOptions.cornersSquareOptions = {\n ...newOptions.cornersSquareOptions\n };\n if (newOptions.cornersSquareOptions.gradient) {\n newOptions.cornersSquareOptions.gradient = sanitizeGradient(newOptions.cornersSquareOptions.gradient);\n }\n }\n\n if (newOptions.cornersDotOptions) {\n newOptions.cornersDotOptions = {\n ...newOptions.cornersDotOptions\n };\n if (newOptions.cornersDotOptions.gradient) {\n newOptions.cornersDotOptions.gradient = sanitizeGradient(newOptions.cornersDotOptions.gradient);\n }\n }\n\n if (newOptions.backgroundOptions) {\n newOptions.backgroundOptions = {\n ...newOptions.backgroundOptions\n };\n if (newOptions.backgroundOptions.gradient) {\n newOptions.backgroundOptions.gradient = sanitizeGradient(newOptions.backgroundOptions.gradient);\n }\n }\n\n return newOptions;\n}\n","import QRCodeStyling from \"./core/QRCodeStyling\";\nimport dotTypes from \"./constants/dotTypes\";\nimport cornerDotTypes from \"./constants/cornerDotTypes\";\nimport cornerSquareTypes from \"./constants/cornerSquareTypes\";\nimport errorCorrectionLevels from \"./constants/errorCorrectionLevels\";\nimport errorCorrectionPercents from \"./constants/errorCorrectionPercents\";\nimport modes from \"./constants/modes\";\nimport qrTypes from \"./constants/qrTypes\";\nimport drawTypes from \"./constants/drawTypes\";\nimport shapeTypes from \"./constants/shapeTypes\";\nimport gradientTypes from \"./constants/gradientTypes\";\n\nexport * from \"./types\";\n\nexport {\n dotTypes,\n cornerDotTypes,\n cornerSquareTypes,\n errorCorrectionLevels,\n errorCorrectionPercents,\n modes,\n qrTypes,\n drawTypes,\n shapeTypes,\n gradientTypes\n};\n\nexport default QRCodeStyling;\n","import getMode from \"../tools/getMode\";\nimport mergeDeep from \"../tools/merge\";\nimport downloadURI from \"../tools/downloadURI\";\nimport QRSVG from \"./QRSVG\";\nimport drawTypes from \"../constants/drawTypes\";\n\nimport defaultOptions, { RequiredOptions } from \"./QROptions\";\nimport sanitizeOptions from \"../tools/sanitizeOptions\";\nimport { FileExtension, QRCode, Options, DownloadOptions, ExtensionFunction } from \"../types\";\nimport qrcode from \"qrcode-generator\";\n\nexport default class QRCodeStyling {\n _options: RequiredOptions;\n _container?: HTMLElement;\n _canvas?: HTMLCanvasElement;\n _svg?: SVGElement;\n _qr?: QRCode;\n _extension?: ExtensionFunction;\n _canvasDrawingPromise?: Promise;\n _svgDrawingPromise?: Promise;\n\n constructor(options?: Partial) {\n this._options = options ? sanitizeOptions(mergeDeep(defaultOptions, options) as RequiredOptions) : defaultOptions;\n this.update();\n }\n\n static _clearContainer(container?: HTMLElement): void {\n if (container) {\n container.innerHTML = \"\";\n }\n }\n\n _setupSvg(): void {\n if (!this._qr) {\n return;\n }\n const qrSVG = new QRSVG(this._options);\n\n this._svg = qrSVG.getElement();\n this._svgDrawingPromise = qrSVG.drawQR(this._qr).then(() => {\n if (!this._svg) return;\n this._extension?.(qrSVG.getElement(), this._options);\n });\n }\n\n _setupCanvas(): void {\n if (!this._qr) {\n return;\n }\n\n this._canvas = document.createElement(\"canvas\");\n this._canvas.width = this._options.width;\n this._canvas.height = this._options.height;\n\n this._setupSvg();\n this._canvasDrawingPromise = this._svgDrawingPromise?.then(() => {\n if (!this._svg) return;\n\n const svg = this._svg;\n const xml = new XMLSerializer().serializeToString(svg);\n const svg64 = btoa(xml);\n const image64 = \"data:image/svg+xml;base64,\" + svg64;\n const image = new Image();\n\n return new Promise((resolve) => {\n image.onload = (): void => {\n this._canvas?.getContext(\"2d\")?.drawImage(image, 0, 0);\n resolve();\n };\n\n image.src = image64;\n });\n });\n }\n\n async _getElement(extension: FileExtension = \"png\"): Promise {\n if (!this._qr) throw \"QR code is empty\";\n\n if (extension.toLowerCase() === \"svg\") {\n if (!this._svg || !this._svgDrawingPromise) {\n this._setupSvg();\n }\n await this._svgDrawingPromise;\n return this._svg;\n } else {\n if (!this._canvas || !this._canvasDrawingPromise) {\n this._setupCanvas();\n }\n await this._canvasDrawingPromise;\n return this._canvas;\n }\n }\n\n update(options?: Partial): void {\n QRCodeStyling._clearContainer(this._container);\n this._options = options ? sanitizeOptions(mergeDeep(this._options, options) as RequiredOptions) : this._options;\n\n if (!this._options.data) {\n return;\n }\n\n this._qr = qrcode(this._options.qrOptions.typeNumber, this._options.qrOptions.errorCorrectionLevel);\n this._qr.addData(this._options.data, this._options.qrOptions.mode || getMode(this._options.data));\n this._qr.make();\n\n if (this._options.type === drawTypes.canvas) {\n this._setupCanvas();\n } else {\n this._setupSvg();\n }\n\n this.append(this._container);\n }\n\n append(container?: HTMLElement): void {\n if (!container) {\n return;\n }\n\n if (typeof container.appendChild !== \"function\") {\n throw \"Container should be a single DOM node\";\n }\n\n if (this._options.type === drawTypes.canvas) {\n if (this._canvas) {\n container.appendChild(this._canvas);\n }\n } else {\n if (this._svg) {\n container.appendChild(this._svg);\n }\n }\n\n this._container = container;\n }\n\n applyExtension(extension: ExtensionFunction): void {\n if (!extension) {\n throw \"Extension function should be defined.\";\n }\n\n this._extension = extension;\n this.update();\n }\n\n deleteExtension(): void {\n this._extension = undefined;\n this.update();\n }\n\n async getRawData(extension: FileExtension = \"png\"): Promise {\n if (!this._qr) throw \"QR code is empty\";\n const element = await this._getElement(extension);\n\n if (!element) {\n return null;\n }\n\n if (extension.toLowerCase() === \"svg\") {\n const serializer = new XMLSerializer();\n const source = serializer.serializeToString(element);\n\n return new Blob(['\\r\\n' + source], { type: \"image/svg+xml\" });\n } else {\n return new Promise((resolve) => (element as HTMLCanvasElement).toBlob(resolve, `image/${extension}`, 1));\n }\n }\n\n async download(downloadOptions?: Partial | string): Promise {\n if (!this._qr) throw \"QR code is empty\";\n let extension = \"png\" as FileExtension;\n let name = \"qr\";\n\n //TODO remove deprecated code in the v2\n if (typeof downloadOptions === \"string\") {\n extension = downloadOptions as FileExtension;\n console.warn(\n \"Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument\"\n );\n } else if (typeof downloadOptions === \"object\" && downloadOptions !== null) {\n if (downloadOptions.name) {\n name = downloadOptions.name;\n }\n if (downloadOptions.extension) {\n extension = downloadOptions.extension;\n }\n }\n\n const element = await this._getElement(extension);\n\n if (!element) {\n return;\n }\n\n if (extension.toLowerCase() === \"svg\") {\n const serializer = new XMLSerializer();\n let source = serializer.serializeToString(element);\n\n source = '\\r\\n' + source;\n const url = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n downloadURI(url, `${name}.svg`);\n } else {\n const url = (element as HTMLCanvasElement).toDataURL(`image/${extension}`);\n downloadURI(url, `${name}.${extension}`);\n }\n }\n}\n","import modes from \"../constants/modes\";\nimport { Mode } from \"../types\";\n\nexport default function getMode(data: string): Mode {\n switch (true) {\n case /^[0-9]*$/.test(data):\n return modes.numeric;\n case /^[0-9A-Z $%*+\\-./:]*$/.test(data):\n return modes.alphanumeric;\n default:\n return modes.byte;\n }\n}\n","import { Mode } from \"../types\";\n\ninterface Modes {\n [key: string]: Mode;\n}\n\nexport default {\n numeric: \"Numeric\",\n alphanumeric: \"Alphanumeric\",\n byte: \"Byte\",\n kanji: \"Kanji\"\n} as Modes;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(676);\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => module['default'] :\n\t\t() => module;\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.defaultProps=void 0;var types_1=require(\"./types\");exports.defaultProps={activeIndex:0,animationDuration:400,animationEasingFunction:\"ease\",animationType:types_1.AnimationType.SLIDE,autoHeight:!1,autoWidth:!1,autoPlay:!1,autoPlayControls:!1,autoPlayDirection:types_1.AutoplayDirection.LTR,autoPlayInterval:400,autoPlayStrategy:types_1.AutoPlayStrategy.DEFAULT,children:void 0,controlsStrategy:types_1.ControlsStrategy.DEFAULT,disableButtonsControls:!1,disableDotsControls:!1,disableSlideInfo:!0,infinite:!1,innerWidth:void 0,items:void 0,keyboardNavigation:!1,mouseTracking:!1,syncStateOnPropsUpdate:!0,name:\"\",paddingLeft:0,paddingRight:0,responsive:void 0,swipeDelta:20,swipeExtraPadding:200,ssrSilentMode:!0,touchTracking:!0,touchMoveDefaultEvents:!0,onInitialized:function(){},onResized:function(){},onUpdated:function(){},onResizeEvent:void 0,onSlideChange:function(){},onSlideChanged:function(){}};","\"use strict\";var __extends=function(){var n=function(t,e){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(t,e){t.__proto__=e}:function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}))(t,e)};return function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}}(),__assign=function(){return(__assign=Object.assign||function(t){for(var e,i=1,n=arguments.length;ir[0]&&e[1]t?__assign(__assign({},o),{position:t}):o})});exports.mapPositionCoords=mapPositionCoords;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.isVerticalTouchmoveDetected=exports.getFadeoutAnimationPosition=exports.getFadeoutAnimationIndex=exports.getSwipeTouchendIndex=exports.getSwipeTouchendPosition=exports.getSwipeTransformationCursor=exports.getTransformationItemIndex=exports.getSwipeShiftValue=exports.getItemCoords=exports.getIsLeftDirection=exports.shouldRecalculateSwipePosition=exports.getSwipeLimitMax=exports.getSwipeLimitMin=exports.shouldCancelSlideAnimation=exports.shouldRecalculateSlideIndex=exports.getUpdateSlidePositionIndex=exports.getActiveIndex=exports.getStartIndex=exports.getShiftIndex=void 0;var getShiftIndex=function(e,t){return(e=void 0===e?0:e)+(t=void 0===t?0:t)},getStartIndex=(exports.getShiftIndex=getShiftIndex,function(e,t){if(void 0===e&&(e=0),t=void 0===t?0:t){if(t<=e)return t-1;if(0=i}),getIsLeftDirection=(exports.shouldRecalculateSwipePosition=shouldRecalculateSwipePosition,function(e){return(e=void 0===e?0:e)<0}),getItemCoords=(exports.getIsLeftDirection=getIsLeftDirection,function(e,t){return(t=void 0===t?[]:t).slice(e=void 0===e?0:e)[0]||{position:0,width:0}}),getSwipeShiftValue=(exports.getItemCoords=getItemCoords,function(e,t){return void 0===e&&(e=0),void 0===t&&(t=[]),(0,exports.getItemCoords)(e,t).position}),getTransformationItemIndex=(exports.getSwipeShiftValue=getSwipeShiftValue,function(e,t){return void 0===t&&(t=0),(e=void 0===e?[]:e).findIndex(function(e){return e.position>=Math.abs(t)})}),getSwipeTransformationCursor=(exports.getTransformationItemIndex=getTransformationItemIndex,function(e,t,i){void 0===e&&(e=[]),void 0===t&&(t=0),void 0===i&&(i=0);e=(0,exports.getTransformationItemIndex)(e,t);return(0,exports.getIsLeftDirection)(i)?e:e-1}),getSwipeTouchendPosition=(exports.getSwipeTransformationCursor=getSwipeTransformationCursor,function(e,t,i){void 0===i&&(i=0);var o=e.infinite,n=e.autoWidth,r=e.isStageContentPartial,s=e.swipeAllowedPositionMax,e=e.transformationSet,i=(0,exports.getSwipeTransformationCursor)(e,i,t),t=(0,exports.getItemCoords)(i,e).position;if(!o){if(n&&r)return 0;if(s\",s=n?types_1.Classnames.BUTTON_PREV:types_1.Classnames.BUTTON_NEXT,t=n?types_1.Classnames.BUTTON_PREV_WRAPPER:types_1.Classnames.BUTTON_NEXT_WRAPPER,n=n?types_1.Classnames.BUTTON_PREV_ITEM:types_1.Classnames.BUTTON_NEXT_ITEM,a=a?types_1.Modifiers.INACTIVE:\"\",n=(0,utils_1.concatClassnames)(n,a),react_1.default.createElement(\"div\",{className:s},react_1.default.createElement(\"div\",{className:t},react_1.default.createElement(\"p\",{className:n,onClick:function(e){return r(e)}},react_1.default.createElement(\"span\",{\"data-area\":e})))))};exports.PrevNextButton=PrevNextButton;","\"use strict\";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}},react_1=(Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.SlideInfo=void 0,__importDefault(require(\"react\"))),types_1=require(\"../types\"),utils_1=require(\"../utils\"),SlideInfo=function(e){var t=e.activeIndex,s=e.itemsCount,e=e.renderSlideInfo,t=(0,utils_1.getSlideInfo)(t,s).item;return\"function\"==typeof e?react_1.default.createElement(\"div\",{className:types_1.Classnames.SLIDE_INFO},e({item:t,itemsCount:s})):(e=(0,utils_1.concatClassnames)(types_1.Classnames.SLIDE_INFO_ITEM,types_1.Modifiers.SEPARATOR),react_1.default.createElement(\"div\",{className:types_1.Classnames.SLIDE_INFO},react_1.default.createElement(\"span\",{className:types_1.Classnames.SLIDE_INFO_ITEM},t),react_1.default.createElement(\"span\",{className:e},\"/\"),react_1.default.createElement(\"span\",{className:types_1.Classnames.SLIDE_INFO_ITEM},s)))};exports.SlideInfo=SlideInfo;","\"use strict\";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}},react_1=(Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.StageItem=void 0,__importDefault(require(\"react\"))),StageItem=function(e){var t=e.item,r=e.className,e=e.styles;return react_1.default.createElement(\"li\",{style:e,className:r},t)};exports.StageItem=StageItem;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.PrevNextButton=exports.PlayPauseButton=exports.DotsNavigation=exports.StageItem=exports.SlideInfo=void 0;var SlideInfo_1=require(\"./SlideInfo\"),StageItem_1=(Object.defineProperty(exports,\"SlideInfo\",{enumerable:!0,get:function(){return SlideInfo_1.SlideInfo}}),require(\"./StageItem\")),DotsNavigation_1=(Object.defineProperty(exports,\"StageItem\",{enumerable:!0,get:function(){return StageItem_1.StageItem}}),require(\"./DotsNavigation\")),PlayPauseButton_1=(Object.defineProperty(exports,\"DotsNavigation\",{enumerable:!0,get:function(){return DotsNavigation_1.DotsNavigation}}),require(\"./PlayPauseButton\")),PrevNextButton_1=(Object.defineProperty(exports,\"PlayPauseButton\",{enumerable:!0,get:function(){return PlayPauseButton_1.PlayPauseButton}}),require(\"./PrevNextButton\"));Object.defineProperty(exports,\"PrevNextButton\",{enumerable:!0,get:function(){return PrevNextButton_1.PrevNextButton}});","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/*! For license information please see index.js.LICENSE.txt */\n(()=>{var e={184:(e,n)=>{var t;!function(){\"use strict\";var r={}.hasOwnProperty;function o(){for(var e=[],n=0;n{\"use strict\";t.d(n,{Z:()=>i});var r=t(81),o=t.n(r),a=t(645),c=t.n(a)()(o());c.push([e.id,\".vi {\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n box-sizing: border-box;\\n position: absolute;\\n color: transparent;\\n background: transparent;\\n caret-color: transparent;\\n outline: none;\\n border: 0 none transparent;\\n}\\n\\n.vi::-ms-reveal,\\n.vi::-ms-clear {\\n display: none;\\n}\\n\\n.vi::selection {\\n background: transparent;\\n}\\n\\n/* :where() gives the styles specificity 0, which makes them overridable */\\n:where(.vi__container) {\\n position: relative;\\n display: flex;\\n gap: 8px;\\n height: 50px;\\n width: 300px;\\n}\\n\\n:where(.vi__character) {\\n height: 100%;\\n flex-grow: 1;\\n flex-basis: 0;\\n text-align: center;\\n font-size: 36px;\\n line-height: 50px;\\n color: black;\\n background-color: white;\\n border: 1px solid black;\\n cursor: default;\\n user-select: none;\\n box-sizing: border-box;\\n}\\n\\n:where(.vi__character--inactive) {\\n color: dimgray;\\n background-color: lightgray;\\n}\\n\\n:where(.vi__character--selected) {\\n outline: 2px solid cornflowerblue;\\n color: cornflowerblue;\\n}\\n\",\"\"]);const i=c},645:e=>{\"use strict\";e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t=\"\",r=void 0!==n[5];return n[4]&&(t+=\"@supports (\".concat(n[4],\") {\")),n[2]&&(t+=\"@media \".concat(n[2],\" {\")),r&&(t+=\"@layer\".concat(n[5].length>0?\" \".concat(n[5]):\"\",\" {\")),t+=e(n),r&&(t+=\"}\"),n[2]&&(t+=\"}\"),n[4]&&(t+=\"}\"),t})).join(\"\")},n.i=function(e,t,r,o,a){\"string\"==typeof e&&(e=[[null,e,void 0]]);var c={};if(r)for(var i=0;i0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=a),t&&(u[2]?(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\"),u[2]=t):u[2]=t),o&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=o):u[4]=\"\".concat(o)),n.push(u))}},n}},81:e=>{\"use strict\";e.exports=function(e){return e[1]}},703:(e,n,t)=>{\"use strict\";var r=t(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,n,t,o,a,c){if(c!==r){var i=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw i.name=\"Invariant Violation\",i}}function n(){return e}e.isRequired=e;var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:a,resetWarningCache:o};return t.PropTypes=t,t}},697:(e,n,t)=>{e.exports=t(703)()},414:e=>{\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"}},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var a=n[r]={id:r,exports:{}};return e[r](a,a.exports,t),a.exports}t.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},t.d=(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),t.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};(()=>{\"use strict\";t.r(r),t.d(r,{default:()=>g});const e=require(\"react\");var n=t.n(e),o=t(184),a=t.n(o),c=t(697),i=t.n(c),l=t(28),s=[\"className\",\"type\"],u=[\"className\"];function p(){return p=Object.assign?Object.assign.bind():function(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function d(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=t){var r,o,a,c,i=[],l=!0,s=!1;try{if(a=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;l=!1}else for(;!(l=(r=a.call(t)).done)&&(i.push(r.value),i.length!==n);l=!0);}catch(e){s=!0,o=e}finally{try{if(!l&&null!=t.return&&(c=t.return(),Object(c)!==c))return}finally{if(s)throw o}}return i}}(e,n)||h(e,n)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function h(e,n){if(e){if(\"string\"==typeof e)return v(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t?Array.from(e):\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?v(e,n):void 0}}function v(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);te},B=m.className,L=m.type,U=f(m,s),W=_.className,Z=f(_,u);return n().createElement(n().Fragment,null,n().createElement(\"div\",p({\"data-testid\":\"container\",className:a()(\"vi__container\",w.container,W),onClick:function(){return I.current.focus()}},Z),n().createElement(\"input\",p({\"aria-label\":\"verification input\",spellCheck:!1,value:R(),onChange:function(e){var n=e.target.value.replace(/\\s/g,\"\");RegExp(\"^[\".concat(i,\"]{0,\").concat(c,\"}$\")).test(n)&&(x&&(null==x||x(n)),k(n),n.length===c&&(null==j||j(n)))},ref:function(e){I.current=e,\"function\"==typeof r?r(e):r&&(r.current=e)},className:a()(\"vi\",B),onKeyDown:function(e){[\"ArrowLeft\",\"ArrowRight\",\"ArrowUp\",\"ArrowDown\"].includes(e.key)&&e.preventDefault()},onFocus:function(){T(!0),null==O||O()},onBlur:function(){T(!1),null==S||S()},onSelect:function(e){var n=e.target.value;e.target.setSelectionRange(n.length,n.length)},type:b?\"password\":L},U)),(N=Array(c),function(e){if(Array.isArray(e))return v(e)}(N)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(N)||h(N)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()).map((function(e,t){return n().createElement(\"div\",{className:a()(\"vi__character\",w.character,{\"vi__character--selected\":M(t),\"vi__character--inactive\":D(t),\"vi__character--filled\":z(t)},M(t)&&w.characterSelected,D(t)&&w.characterInactive,z(t)&&w.characterFilled),onClick:F,id:\"field-\".concat(t),\"data-testid\":\"character-\".concat(t),key:t},b&&R()[t]?\"*\":R()[t]||y)}))),n().createElement(\"style\",{dangerouslySetInnerHTML:{__html:l.Z}}))}));y.displayName=\"VerificationInput\",y.propTypes={value:i().string,length:i().number,validChars:i().string,placeholder:i().string,autoFocus:i().bool,passwordMode:i().bool,inputProps:i().object,containerProps:i().object,classNames:i().shape({container:i().string,character:i().string,characterInactive:i().string,characterSelected:i().string,characterFilled:i().string}),onChange:i().func,onFocus:i().func,onBlur:i().func,onComplete:i().func},y.defaultProps={length:6,validChars:\"A-Za-z0-9\",placeholder:\"·\",autoFocus:!1,inputProps:{},containerProps:{},classNames:{}};const g=y})();var o=exports;for(var a in r)o[a]=r[a];r.__esModule&&Object.defineProperty(o,\"__esModule\",{value:!0})})();","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.38\n Copyright © 2012-2021 Faisal Salman \n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.38',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 ' + BROWSER]], [\n /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/2345 Browser\n ], [NAME, VERSION], [\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i, // Links\n /panasonic;(viera)/i // Panasonic Viera\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n /\\b(opd2\\d{3}a?) bui/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {};\nexports[\"default\"] = void 0;\n\nvar Utils = _interopRequireWildcard(require(\"./utils\"));\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _types[key];\n }\n });\n});\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar VanillaSwipe = /*#__PURE__*/function () {\n function VanillaSwipe(props) {\n _classCallCheck(this, VanillaSwipe);\n\n _defineProperty(this, \"state\", void 0);\n\n _defineProperty(this, \"props\", void 0);\n\n this.state = Utils.getInitialState();\n this.props = Utils.getInitialProps(props);\n this.handleSwipeStart = this.handleSwipeStart.bind(this);\n this.handleSwipeMove = this.handleSwipeMove.bind(this);\n this.handleSwipeEnd = this.handleSwipeEnd.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n }\n\n _createClass(VanillaSwipe, [{\n key: \"init\",\n value: function init() {\n this.setupTouchListeners();\n this.setupMouseListeners();\n }\n }, {\n key: \"update\",\n value: function update(props) {\n var prevProps = this.props;\n var nextProps = Object.assign({}, prevProps, props);\n\n if (prevProps.element !== nextProps.element || prevProps.target !== nextProps.target) {\n this.destroy();\n this.props = nextProps;\n this.init();\n return;\n }\n\n this.props = nextProps;\n\n if (prevProps.mouseTrackingEnabled !== nextProps.mouseTrackingEnabled || prevProps.preventTrackingOnMouseleave !== nextProps.preventTrackingOnMouseleave) {\n this.cleanupMouseListeners();\n nextProps.mouseTrackingEnabled ? this.setupMouseListeners() : this.cleanupMouseListeners();\n }\n\n if (prevProps.touchTrackingEnabled !== nextProps.touchTrackingEnabled) {\n this.cleanupTouchListeners();\n nextProps.touchTrackingEnabled ? this.setupTouchListeners() : this.cleanupTouchListeners();\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.cleanupMouseListeners();\n this.cleanupTouchListeners();\n this.state = Utils.getInitialState();\n this.props = Utils.getInitialProps();\n }\n }, {\n key: \"setupTouchListeners\",\n value: function setupTouchListeners() {\n var _this$props = this.props,\n element = _this$props.element,\n target = _this$props.target,\n touchTrackingEnabled = _this$props.touchTrackingEnabled;\n\n if (element && touchTrackingEnabled) {\n var listener = target || element;\n var isPassiveSupported = Utils.checkIsPassiveSupported();\n var options = Utils.getOptions(isPassiveSupported);\n listener.addEventListener('touchstart', this.handleSwipeStart, options);\n listener.addEventListener('touchmove', this.handleSwipeMove, options);\n listener.addEventListener('touchend', this.handleSwipeEnd, options);\n }\n }\n }, {\n key: \"cleanupTouchListeners\",\n value: function cleanupTouchListeners() {\n var _this$props2 = this.props,\n element = _this$props2.element,\n target = _this$props2.target;\n var listener = target || element;\n\n if (listener) {\n listener.removeEventListener('touchstart', this.handleSwipeStart);\n listener.removeEventListener('touchmove', this.handleSwipeMove);\n listener.removeEventListener('touchend', this.handleSwipeEnd);\n }\n }\n }, {\n key: \"setupMouseListeners\",\n value: function setupMouseListeners() {\n var _this$props3 = this.props,\n element = _this$props3.element,\n mouseTrackingEnabled = _this$props3.mouseTrackingEnabled,\n preventTrackingOnMouseleave = _this$props3.preventTrackingOnMouseleave;\n\n if (mouseTrackingEnabled && element) {\n element.addEventListener('mousedown', this.handleMouseDown);\n element.addEventListener('mousemove', this.handleMouseMove);\n element.addEventListener('mouseup', this.handleMouseUp);\n\n if (preventTrackingOnMouseleave) {\n element.addEventListener('mouseleave', this.handleMouseLeave);\n }\n }\n }\n }, {\n key: \"cleanupMouseListeners\",\n value: function cleanupMouseListeners() {\n var element = this.props.element;\n\n if (element) {\n element.removeEventListener('mousedown', this.handleMouseDown);\n element.removeEventListener('mousemove', this.handleMouseMove);\n element.removeEventListener('mouseup', this.handleMouseUp);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n }\n }\n }, {\n key: \"getEventData\",\n value: function getEventData(e) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n directionDelta: 0\n };\n var rotationAngle = this.props.rotationAngle;\n var directionDelta = options.directionDelta;\n var movingPosition = Utils.calculateMovingPosition(e);\n var rotatePosition = Utils.rotateByAngle(movingPosition, rotationAngle);\n return Utils.calculatePosition(this.state, {\n rotatePosition: rotatePosition,\n directionDelta: directionDelta\n });\n }\n }, {\n key: \"handleSwipeStart\",\n value: function handleSwipeStart(e) {\n if (Utils.checkIsMoreThanSingleTouches(e)) return;\n var rotationAngle = this.props.rotationAngle;\n var movingPosition = Utils.calculateMovingPosition(e);\n\n var _Utils$rotateByAngle = Utils.rotateByAngle(movingPosition, rotationAngle),\n x = _Utils$rotateByAngle.x,\n y = _Utils$rotateByAngle.y;\n\n this.state = Utils.getInitialState({\n isSwiping: false,\n start: Date.now(),\n x: x,\n y: y\n });\n }\n }, {\n key: \"handleSwipeMove\",\n value: function handleSwipeMove(e) {\n var _this$state = this.state,\n x = _this$state.x,\n y = _this$state.y,\n isSwiping = _this$state.isSwiping;\n if (!x || !y || Utils.checkIsMoreThanSingleTouches(e)) return;\n var directionDelta = this.props.directionDelta || 0;\n\n var _this$getEventData = this.getEventData(e, {\n directionDelta: directionDelta\n }),\n absX = _this$getEventData.absX,\n absY = _this$getEventData.absY,\n deltaX = _this$getEventData.deltaX,\n deltaY = _this$getEventData.deltaY,\n directionX = _this$getEventData.directionX,\n directionY = _this$getEventData.directionY,\n duration = _this$getEventData.duration,\n velocity = _this$getEventData.velocity;\n\n var _this$props4 = this.props,\n delta = _this$props4.delta,\n preventDefaultTouchmoveEvent = _this$props4.preventDefaultTouchmoveEvent,\n onSwipeStart = _this$props4.onSwipeStart,\n onSwiping = _this$props4.onSwiping;\n if (e.cancelable && preventDefaultTouchmoveEvent) e.preventDefault();\n if (absX < Number(delta) && absY < Number(delta) && !isSwiping) return;\n\n if (onSwipeStart && !isSwiping) {\n onSwipeStart(e, {\n deltaX: deltaX,\n deltaY: deltaY,\n absX: absX,\n absY: absY,\n directionX: directionX,\n directionY: directionY,\n duration: duration,\n velocity: velocity\n });\n }\n\n this.state.isSwiping = true;\n\n if (onSwiping) {\n onSwiping(e, {\n deltaX: deltaX,\n deltaY: deltaY,\n absX: absX,\n absY: absY,\n directionX: directionX,\n directionY: directionY,\n duration: duration,\n velocity: velocity\n });\n }\n }\n }, {\n key: \"handleSwipeEnd\",\n value: function handleSwipeEnd(e) {\n var _this$props5 = this.props,\n onSwiped = _this$props5.onSwiped,\n onTap = _this$props5.onTap;\n\n if (this.state.isSwiping) {\n var directionDelta = this.props.directionDelta || 0;\n var position = this.getEventData(e, {\n directionDelta: directionDelta\n });\n onSwiped && onSwiped(e, position);\n } else {\n var _position = this.getEventData(e);\n\n onTap && onTap(e, _position);\n }\n\n this.state = Utils.getInitialState();\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown(e) {\n var target = this.props.target;\n\n if (target) {\n if (target === e.target) {\n this.handleSwipeStart(e);\n }\n } else {\n this.handleSwipeStart(e);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(e) {\n this.handleSwipeMove(e);\n }\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(e) {\n var isSwiping = this.state.isSwiping;\n var target = this.props.target;\n\n if (target) {\n if (target === e.target || isSwiping) {\n this.handleSwipeEnd(e);\n }\n } else {\n this.handleSwipeEnd(e);\n }\n }\n }, {\n key: \"handleMouseLeave\",\n value: function handleMouseLeave(e) {\n var isSwiping = this.state.isSwiping;\n\n if (isSwiping) {\n this.handleSwipeEnd(e);\n }\n }\n }], [{\n key: \"isTouchEventsSupported\",\n value: function isTouchEventsSupported() {\n return Utils.checkIsTouchEventsSupported();\n }\n }]);\n\n return VanillaSwipe;\n}();\n\nexports[\"default\"] = VanillaSwipe;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TraceDirectionKey = exports.Direction = exports.Axis = void 0;\nvar TraceDirectionKey;\nexports.TraceDirectionKey = TraceDirectionKey;\n\n(function (TraceDirectionKey) {\n TraceDirectionKey[\"NEGATIVE\"] = \"NEGATIVE\";\n TraceDirectionKey[\"POSITIVE\"] = \"POSITIVE\";\n TraceDirectionKey[\"NONE\"] = \"NONE\";\n})(TraceDirectionKey || (exports.TraceDirectionKey = TraceDirectionKey = {}));\n\nvar Direction;\nexports.Direction = Direction;\n\n(function (Direction) {\n Direction[\"TOP\"] = \"TOP\";\n Direction[\"LEFT\"] = \"LEFT\";\n Direction[\"RIGHT\"] = \"RIGHT\";\n Direction[\"BOTTOM\"] = \"BOTTOM\";\n Direction[\"NONE\"] = \"NONE\";\n})(Direction || (exports.Direction = Direction = {}));\n\nvar Axis;\nexports.Axis = Axis;\n\n(function (Axis) {\n Axis[\"X\"] = \"x\";\n Axis[\"Y\"] = \"y\";\n})(Axis || (exports.Axis = Axis = {}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateDirection = calculateDirection;\n\nvar _types = require(\"../types\");\n\nfunction calculateDirection(trace) {\n var direction;\n var negative = _types.TraceDirectionKey.NEGATIVE;\n var positive = _types.TraceDirectionKey.POSITIVE;\n var current = trace[trace.length - 1];\n var previous = trace[trace.length - 2] || 0;\n\n if (trace.every(function (i) {\n return i === 0;\n })) {\n return _types.TraceDirectionKey.NONE;\n }\n\n direction = current > previous ? positive : negative;\n\n if (current === 0) {\n direction = previous < 0 ? positive : negative;\n }\n\n return direction;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateDirectionDelta = calculateDirectionDelta;\n\nvar _types = require(\"../types\");\n\nvar _common = require(\"./common\");\n\nfunction calculateDirectionDelta(traceDirections) {\n var delta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var length = traceDirections.length;\n var i = length - 1;\n var direction = _types.TraceDirectionKey.NONE;\n\n for (; i >= 0; i--) {\n var current = traceDirections[i];\n var currentKey = (0, _common.getDirectionKey)(current);\n var currentValue = (0, _common.getDirectionValue)(current[currentKey]);\n var prev = traceDirections[i - 1] || {};\n var prevKey = (0, _common.getDirectionKey)(prev);\n var prevValue = (0, _common.getDirectionValue)(prev[prevKey]);\n var difference = (0, _common.getDifference)(currentValue, prevValue);\n\n if (difference >= delta) {\n direction = currentKey;\n break;\n } else {\n direction = prevKey;\n }\n }\n\n return direction;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateDuration = calculateDuration;\n\nfunction calculateDuration() {\n var prevTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var nextTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return prevTime ? nextTime - prevTime : 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateMovingPosition = calculateMovingPosition;\n\nfunction calculateMovingPosition(e) {\n if ('changedTouches' in e) {\n var touches = e.changedTouches && e.changedTouches[0];\n return {\n x: touches && touches.clientX,\n y: touches && touches.clientY\n };\n }\n\n return {\n x: e.clientX,\n y: e.clientY\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculatePosition = calculatePosition;\n\nvar _updateTrace = require(\"./updateTrace\");\n\nvar _resolveDirection = require(\"./resolveDirection\");\n\nvar _calculateDuration = require(\"./calculateDuration\");\n\nvar _calculateVelocity = require(\"./calculateVelocity\");\n\nvar _types = require(\"../types\");\n\nfunction calculatePosition(state, options) {\n var start = state.start,\n x = state.x,\n y = state.y,\n traceX = state.traceX,\n traceY = state.traceY;\n var rotatePosition = options.rotatePosition,\n directionDelta = options.directionDelta;\n var deltaX = rotatePosition.x - x;\n var deltaY = y - rotatePosition.y;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n (0, _updateTrace.updateTrace)(traceX, deltaX);\n (0, _updateTrace.updateTrace)(traceY, deltaY);\n var directionX = (0, _resolveDirection.resolveDirection)(traceX, _types.Axis.X, directionDelta);\n var directionY = (0, _resolveDirection.resolveDirection)(traceY, _types.Axis.Y, directionDelta);\n var duration = (0, _calculateDuration.calculateDuration)(start, Date.now());\n var velocity = (0, _calculateVelocity.calculateVelocity)(absX, absY, duration);\n return {\n absX: absX,\n absY: absY,\n deltaX: deltaX,\n deltaY: deltaY,\n directionX: directionX,\n directionY: directionY,\n duration: duration,\n positionX: rotatePosition.x,\n positionY: rotatePosition.y,\n velocity: velocity\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateTraceDirections = calculateTraceDirections;\n\nvar _types = require(\"../types\");\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction calculateTraceDirections() {\n var trace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var ticks = [];\n var positive = _types.TraceDirectionKey.POSITIVE;\n var negative = _types.TraceDirectionKey.NEGATIVE;\n var i = 0;\n var tick = [];\n var direction = _types.TraceDirectionKey.NONE;\n\n for (; i < trace.length; i++) {\n var current = trace[i];\n var prev = trace[i - 1];\n\n if (tick.length) {\n var currentDirection = current > prev ? positive : negative;\n\n if (direction === _types.TraceDirectionKey.NONE) {\n direction = currentDirection;\n }\n\n if (currentDirection === direction) {\n tick.push(current);\n } else {\n ticks.push(_defineProperty({}, direction, tick.slice()));\n tick = [];\n tick.push(current);\n direction = currentDirection;\n }\n } else {\n if (current !== 0) {\n direction = current > 0 ? positive : negative;\n }\n\n tick.push(current);\n }\n }\n\n if (tick.length) {\n ticks.push(_defineProperty({}, direction, tick));\n }\n\n return ticks;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateVelocity = calculateVelocity;\n\nfunction calculateVelocity(x, y, time) {\n var magnitude = Math.sqrt(x * x + y * y);\n return magnitude / (time || 1);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkIsMoreThanSingleTouches = void 0;\n\nvar checkIsMoreThanSingleTouches = function checkIsMoreThanSingleTouches(e) {\n return Boolean(e.touches && e.touches.length > 1);\n};\n\nexports.checkIsMoreThanSingleTouches = checkIsMoreThanSingleTouches;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkIsPassiveSupported = checkIsPassiveSupported;\nexports.noop = void 0;\n\nvar _createOptions = require(\"./createOptions\");\n\nfunction checkIsPassiveSupported(isPassiveSupported) {\n if (typeof isPassiveSupported === 'boolean') {\n return isPassiveSupported;\n }\n\n var proxy = {\n isPassiveSupported: isPassiveSupported\n };\n\n try {\n var options = (0, _createOptions.createOptions)(proxy);\n window.addEventListener('checkIsPassiveSupported', noop, options);\n window.removeEventListener('checkIsPassiveSupported', noop, options);\n } catch (err) {}\n\n return proxy.isPassiveSupported;\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkIsTouchEventsSupported = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar checkIsTouchEventsSupported = function checkIsTouchEventsSupported() {\n return (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && ('ontouchstart' in window || Boolean(window.navigator.maxTouchPoints));\n};\n\nexports.checkIsTouchEventsSupported = checkIsTouchEventsSupported;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resolveAxisDirection = exports.getDirectionValue = exports.getDirectionKey = exports.getDifference = void 0;\n\nvar _types = require(\"../types\");\n\nvar getDirectionKey = function getDirectionKey() {\n var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var key = Object.keys(object).toString();\n\n switch (key) {\n case _types.TraceDirectionKey.POSITIVE:\n return _types.TraceDirectionKey.POSITIVE;\n\n case _types.TraceDirectionKey.NEGATIVE:\n return _types.TraceDirectionKey.NEGATIVE;\n\n default:\n return _types.TraceDirectionKey.NONE;\n }\n};\n\nexports.getDirectionKey = getDirectionKey;\n\nvar getDirectionValue = function getDirectionValue() {\n var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return values[values.length - 1] || 0;\n};\n\nexports.getDirectionValue = getDirectionValue;\n\nvar getDifference = function getDifference() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return Math.abs(x - y);\n};\n\nexports.getDifference = getDifference;\n\nvar resolveAxisDirection = function resolveAxisDirection(axis, key) {\n var negative = _types.Direction.LEFT;\n var positive = _types.Direction.RIGHT;\n var direction = _types.Direction.NONE;\n\n if (axis === _types.Axis.Y) {\n negative = _types.Direction.BOTTOM;\n positive = _types.Direction.TOP;\n }\n\n if (key === _types.TraceDirectionKey.NEGATIVE) {\n direction = negative;\n }\n\n if (key === _types.TraceDirectionKey.POSITIVE) {\n direction = positive;\n }\n\n return direction;\n};\n\nexports.resolveAxisDirection = resolveAxisDirection;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createOptions = createOptions;\n\nfunction createOptions() {\n var proxy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n Object.defineProperty(proxy, 'passive', {\n get: function get() {\n this.isPassiveSupported = true;\n return true;\n },\n enumerable: true\n });\n return proxy;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getInitialProps = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar getInitialProps = function getInitialProps() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread({\n element: null,\n target: null,\n delta: 10,\n directionDelta: 0,\n rotationAngle: 0,\n mouseTrackingEnabled: false,\n touchTrackingEnabled: true,\n preventDefaultTouchmoveEvent: false,\n preventTrackingOnMouseleave: false\n }, props);\n};\n\nexports.getInitialProps = getInitialProps;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getInitialState = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar getInitialState = function getInitialState() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread({\n x: 0,\n y: 0,\n start: 0,\n isSwiping: false,\n traceX: [],\n traceY: []\n }, options);\n};\n\nexports.getInitialState = getInitialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getOptions = getOptions;\n\nfunction getOptions() {\n var isPassiveSupported = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (isPassiveSupported) {\n return {\n passive: false\n };\n }\n\n return {};\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _calculateDirection = require(\"./calculateDirection\");\n\nObject.keys(_calculateDirection).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateDirection[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateDirection[key];\n }\n });\n});\n\nvar _calculateDirectionDelta = require(\"./calculateDirectionDelta\");\n\nObject.keys(_calculateDirectionDelta).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateDirectionDelta[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateDirectionDelta[key];\n }\n });\n});\n\nvar _calculateDuration = require(\"./calculateDuration\");\n\nObject.keys(_calculateDuration).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateDuration[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateDuration[key];\n }\n });\n});\n\nvar _calculateMovingPosition = require(\"./calculateMovingPosition\");\n\nObject.keys(_calculateMovingPosition).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateMovingPosition[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateMovingPosition[key];\n }\n });\n});\n\nvar _calculatePosition = require(\"./calculatePosition\");\n\nObject.keys(_calculatePosition).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculatePosition[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculatePosition[key];\n }\n });\n});\n\nvar _calculateTraceDirections = require(\"./calculateTraceDirections\");\n\nObject.keys(_calculateTraceDirections).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateTraceDirections[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateTraceDirections[key];\n }\n });\n});\n\nvar _calculateVelocity = require(\"./calculateVelocity\");\n\nObject.keys(_calculateVelocity).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _calculateVelocity[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _calculateVelocity[key];\n }\n });\n});\n\nvar _checkIsMoreThanSingleTouches = require(\"./checkIsMoreThanSingleTouches\");\n\nObject.keys(_checkIsMoreThanSingleTouches).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _checkIsMoreThanSingleTouches[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _checkIsMoreThanSingleTouches[key];\n }\n });\n});\n\nvar _checkIsPassiveSupported = require(\"./checkIsPassiveSupported\");\n\nObject.keys(_checkIsPassiveSupported).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _checkIsPassiveSupported[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _checkIsPassiveSupported[key];\n }\n });\n});\n\nvar _checkIsTouchEventsSupported = require(\"./checkIsTouchEventsSupported\");\n\nObject.keys(_checkIsTouchEventsSupported).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _checkIsTouchEventsSupported[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _checkIsTouchEventsSupported[key];\n }\n });\n});\n\nvar _common = require(\"./common\");\n\nObject.keys(_common).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _common[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _common[key];\n }\n });\n});\n\nvar _createOptions = require(\"./createOptions\");\n\nObject.keys(_createOptions).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _createOptions[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _createOptions[key];\n }\n });\n});\n\nvar _getInitialState = require(\"./getInitialState\");\n\nObject.keys(_getInitialState).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _getInitialState[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _getInitialState[key];\n }\n });\n});\n\nvar _getInitialProps = require(\"./getInitialProps\");\n\nObject.keys(_getInitialProps).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _getInitialProps[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _getInitialProps[key];\n }\n });\n});\n\nvar _getOptions = require(\"./getOptions\");\n\nObject.keys(_getOptions).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _getOptions[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _getOptions[key];\n }\n });\n});\n\nvar _resolveDirection = require(\"./resolveDirection\");\n\nObject.keys(_resolveDirection).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _resolveDirection[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _resolveDirection[key];\n }\n });\n});\n\nvar _rotateByAngle = require(\"./rotateByAngle\");\n\nObject.keys(_rotateByAngle).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _rotateByAngle[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _rotateByAngle[key];\n }\n });\n});\n\nvar _updateTrace = require(\"./updateTrace\");\n\nObject.keys(_updateTrace).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _updateTrace[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _updateTrace[key];\n }\n });\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resolveDirection = resolveDirection;\n\nvar _calculateDirection = require(\"./calculateDirection\");\n\nvar _calculateTraceDirections = require(\"./calculateTraceDirections\");\n\nvar _calculateDirectionDelta = require(\"./calculateDirectionDelta\");\n\nvar _common = require(\"./common\");\n\nvar _types = require(\"../types\");\n\nfunction resolveDirection(trace) {\n var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _types.Axis.X;\n var directionDelta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (directionDelta) {\n var directions = (0, _calculateTraceDirections.calculateTraceDirections)(trace);\n\n var _direction = (0, _calculateDirectionDelta.calculateDirectionDelta)(directions, directionDelta);\n\n return (0, _common.resolveAxisDirection)(axis, _direction);\n }\n\n var direction = (0, _calculateDirection.calculateDirection)(trace);\n return (0, _common.resolveAxisDirection)(axis, direction);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rotateByAngle = rotateByAngle;\n\nfunction rotateByAngle(position) {\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (angle === 0) {\n return position;\n }\n\n var x = position.x,\n y = position.y;\n var angleInRadians = Math.PI / 180 * angle;\n var rotatedX = x * Math.cos(angleInRadians) + y * Math.sin(angleInRadians);\n var rotatedY = y * Math.cos(angleInRadians) - x * Math.sin(angleInRadians);\n return {\n x: rotatedX,\n y: rotatedY\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.updateTrace = updateTrace;\n\nfunction updateTrace(trace, value) {\n var last = trace[trace.length - 1];\n\n if (last !== value) {\n trace.push(value);\n }\n\n return trace;\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n/** @interface */\nfunction Decoder() {}\nDecoder.prototype = {\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point, or |finished|.\n */\n handler: function(stream, bite) {}\n};\n\n/** @interface */\nfunction Encoder() {}\nEncoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit, or |finished|.\n */\n handler: function(stream, code_point) {}\n};\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexport {TextEncoder, TextDecoder};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"a2ac0c15\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"mvm-hyper-web:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmvm_hyper_web\"] = self[\"webpackChunkmvm_hyper_web\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export const TAG_PROPERTIES = {\n CHARSET: 'charset',\n CSS_TEXT: 'cssText',\n HREF: 'href',\n HTTPEQUIV: 'http-equiv',\n INNER_HTML: 'innerHTML',\n ITEM_PROP: 'itemprop',\n NAME: 'name',\n PROPERTY: 'property',\n REL: 'rel',\n SRC: 'src',\n};\n\nexport const ATTRIBUTE_NAMES = {\n BODY: 'bodyAttributes',\n HTML: 'htmlAttributes',\n TITLE: 'titleAttributes',\n};\n\nexport const TAG_NAMES = {\n BASE: 'base',\n BODY: 'body',\n HEAD: 'head',\n HTML: 'html',\n LINK: 'link',\n META: 'meta',\n NOSCRIPT: 'noscript',\n SCRIPT: 'script',\n STYLE: 'style',\n TITLE: 'title',\n FRAGMENT: 'Symbol(react.fragment)',\n};\n\nexport const SEO_PRIORITY_TAGS = {\n link: { rel: ['amphtml', 'canonical', 'alternate'] },\n script: { type: ['application/ld+json'] },\n meta: {\n charset: '',\n name: ['robots', 'description'],\n property: [\n 'og:type',\n 'og:title',\n 'og:url',\n 'og:image',\n 'og:image:alt',\n 'og:description',\n 'twitter:url',\n 'twitter:title',\n 'twitter:description',\n 'twitter:image',\n 'twitter:image:alt',\n 'twitter:card',\n 'twitter:site',\n ],\n },\n};\n\nexport const VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(name => TAG_NAMES[name]);\n\nexport const REACT_TAG_MAP = {\n accesskey: 'accessKey',\n charset: 'charSet',\n class: 'className',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n 'http-equiv': 'httpEquiv',\n itemprop: 'itemProp',\n tabindex: 'tabIndex',\n};\n\nexport const HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nexport const HELMET_ATTRIBUTE = 'data-rh';\n","import { TAG_NAMES, TAG_PROPERTIES, ATTRIBUTE_NAMES } from './constants';\n\nconst HELMET_PROPS = {\n DEFAULT_TITLE: 'defaultTitle',\n DEFER: 'defer',\n ENCODE_SPECIAL_CHARACTERS: 'encodeSpecialCharacters',\n ON_CHANGE_CLIENT_STATE: 'onChangeClientState',\n TITLE_TEMPLATE: 'titleTemplate',\n PRIORITIZE_SEO_TAGS: 'prioritizeSeoTags',\n};\n\nconst getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nconst getTitleFromPropsList = propsList => {\n let innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join('');\n }\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nconst getOnChangeClientState = propsList =>\n getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {});\n\nconst getAttributesFromPropsList = (tagType, propsList) =>\n propsList\n .filter(props => typeof props[tagType] !== 'undefined')\n .map(props => props[tagType])\n .reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\n\nconst getBaseTagFromPropsList = (primaryAttributes, propsList) =>\n propsList\n .filter(props => typeof props[TAG_NAMES.BASE] !== 'undefined')\n .map(props => props[TAG_NAMES.BASE])\n .reverse()\n .reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n tag[lowerCaseAttributeKey]\n ) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n\n// eslint-disable-next-line no-console\nconst warn = msg => console && typeof console.warn === 'function' && console.warn(msg);\n\nconst getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n const approvedSeenTags = {};\n\n return propsList\n .filter(props => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== 'undefined') {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[\n tagName\n ]}\"`\n );\n }\n return false;\n })\n .map(props => props[tagName])\n .reverse()\n .reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n\n instanceTags\n .filter(tag => {\n let primaryAttributeKey;\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n !(\n primaryAttributeKey === TAG_PROPERTIES.REL &&\n tag[primaryAttributeKey].toLowerCase() === 'canonical'\n ) &&\n !(\n lowerCaseAttributeKey === TAG_PROPERTIES.REL &&\n tag[lowerCaseAttributeKey].toLowerCase() === 'stylesheet'\n )\n ) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (\n primaryAttributes.indexOf(attributeKey) !== -1 &&\n (attributeKey === TAG_PROPERTIES.INNER_HTML ||\n attributeKey === TAG_PROPERTIES.CSS_TEXT ||\n attributeKey === TAG_PROPERTIES.ITEM_PROP)\n ) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n const value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n })\n .reverse()\n .forEach(tag => approvedTags.push(tag));\n\n // Update seen tags with tags from this instance\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey],\n };\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, [])\n .reverse();\n};\n\nconst getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\n\nconst reducePropsToState = propsList => ({\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(\n TAG_NAMES.LINK,\n [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n TAG_NAMES.META,\n [\n TAG_PROPERTIES.NAME,\n TAG_PROPERTIES.CHARSET,\n TAG_PROPERTIES.HTTPEQUIV,\n TAG_PROPERTIES.PROPERTY,\n TAG_PROPERTIES.ITEM_PROP,\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n TAG_NAMES.SCRIPT,\n [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML],\n propsList\n ),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS),\n});\n\nexport const flattenArray = possibleArray =>\n Array.isArray(possibleArray) ? possibleArray.join('') : possibleArray;\n\nexport { reducePropsToState };\n\nconst checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n // e.g. if rel exists in the list of allowed props [amphtml, alternate, etc]\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\n\nexport const prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList };\n};\n\nexport const without = (obj, key) => {\n return {\n ...obj,\n [key]: undefined,\n };\n};\n","import React from 'react';\nimport {\n HELMET_ATTRIBUTE,\n TAG_NAMES,\n REACT_TAG_MAP,\n TAG_PROPERTIES,\n ATTRIBUTE_NAMES,\n SEO_PRIORITY_TAGS,\n} from './constants';\nimport { flattenArray, prioritizer } from './utils';\n\nconst SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nconst encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n\n return String(str)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n};\n\nconst generateElementAttributesAsString = attributes =>\n Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== 'undefined' ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n }, '');\n\nconst generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString\n ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`\n : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`;\n};\n\nconst generateTagsAsString = (type, tags, encode) =>\n tags.reduce((str, tag) => {\n const attributeHtml = Object.keys(tag)\n .filter(\n attribute =>\n !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT)\n )\n .reduce((string, attribute) => {\n const attr =\n typeof tag[attribute] === 'undefined'\n ? attribute\n : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, '');\n\n const tagContent = tag.innerHTML || tag.cssText || '';\n\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${\n isSelfClosing ? `/>` : `>${tagContent}`\n }`;\n }, '');\n\nconst convertElementAttributesToReactProps = (attributes, initProps = {}) =>\n Object.keys(attributes).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n\nconst generateTitleAsReactComponent = (type, title, attributes) => {\n // assigning into an array to define toString function on it\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true,\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nconst generateTagsAsReactComponent = (type, tags) =>\n tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true,\n };\n\n Object.keys(tag).forEach(attribute => {\n const mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (\n mappedAttribute === TAG_PROPERTIES.INNER_HTML ||\n mappedAttribute === TAG_PROPERTIES.CSS_TEXT\n ) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n\nconst getMethodsForTag = (type, tags, encode) => {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: () =>\n generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode),\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags),\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode),\n };\n }\n};\n\nconst getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n\n // need to have toComponent() and toString()\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(TAG_NAMES.META, meta.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.LINK, link.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.SCRIPT, script.priority),\n ],\n toString: () =>\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(TAG_NAMES.META, meta.priority, encode)} ${getMethodsForTag(\n TAG_NAMES.LINK,\n link.priority,\n encode\n )} ${getMethodsForTag(TAG_NAMES.SCRIPT, script.priority, encode)}`,\n };\n\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default,\n };\n};\n\nconst mapStateOnServer = props => {\n const {\n baseTag,\n bodyAttributes,\n encode,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = '',\n titleAttributes,\n prioritizeSeoTags,\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {},\n toString: () => '',\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title, titleAttributes }, encode),\n };\n};\n\nexport default mapStateOnServer;\n","import mapStateOnServer from './server';\n\nconst instances = [];\n\nexport function clearInstances() {\n instances.length = 0;\n}\n\nexport default class HelmetData {\n instances = [];\n\n value = {\n setHelmet: serverState => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => (this.canUseDOM ? instances : this.instances),\n add: instance => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: instance => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n },\n },\n };\n\n constructor(context, canUseDOM = typeof document !== 'undefined') {\n this.context = context;\n this.canUseDOM = canUseDOM;\n\n if (!canUseDOM) {\n context.helmet = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: '',\n titleAttributes: {},\n });\n }\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport HelmetData from './HelmetData';\n\nconst defaultValue = {};\n\nexport const Context = React.createContext(defaultValue);\n\nexport const providerShape = PropTypes.shape({\n setHelmet: PropTypes.func,\n helmetInstances: PropTypes.shape({\n get: PropTypes.func,\n add: PropTypes.func,\n remove: PropTypes.func,\n }),\n});\n\nconst canUseDOM = typeof document !== 'undefined';\n\nexport default class Provider extends Component {\n static canUseDOM = canUseDOM;\n\n static propTypes = {\n context: PropTypes.shape({\n helmet: PropTypes.shape(),\n }),\n children: PropTypes.node.isRequired,\n };\n\n static defaultProps = {\n context: {},\n };\n\n static displayName = 'HelmetProvider';\n\n constructor(props) {\n super(props);\n\n this.helmetData = new HelmetData(this.props.context, Provider.canUseDOM);\n }\n\n render() {\n return {this.props.children};\n }\n}\n","import { HELMET_ATTRIBUTE, TAG_NAMES, TAG_PROPERTIES } from './constants';\nimport { flattenArray } from './utils';\n\nconst updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n\n if (tags && tags.length) {\n tags.forEach(tag => {\n const newElement = document.createElement(type);\n\n // eslint-disable-next-line\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const value = typeof tag[attribute] === 'undefined' ? '' : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, 'true');\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (\n oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })\n ) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(tag => tag.parentNode.removeChild(tag));\n newTags.forEach(tag => headElement.appendChild(tag));\n\n return {\n oldTags,\n newTags,\n };\n};\n\nconst updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(',') : [];\n const attributesToRemove = [].concat(helmetAttributes);\n const attributeKeys = Object.keys(attributes);\n\n for (let i = 0; i < attributeKeys.length; i += 1) {\n const attribute = attributeKeys[i];\n const value = attributes[attribute] || '';\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(',')) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(','));\n }\n};\n\nconst updateTitle = (title, attributes) => {\n if (typeof title !== 'undefined' && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nconst commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes,\n } = newState;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n const tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags),\n };\n\n const addedTags = {};\n const removedTags = {};\n\n Object.keys(tagUpdates).forEach(tagType => {\n const { newTags, oldTags } = tagUpdates[tagType];\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n if (cb) {\n cb();\n }\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\n// eslint-disable-next-line\nlet _helmetCallback = null;\n\nconst handleStateChangeOnClient = newState => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nexport default handleStateChangeOnClient;\n","import { Component } from 'react';\nimport shallowEqual from 'shallowequal';\nimport handleStateChangeOnClient from './client';\nimport mapStateOnServer from './server';\nimport { reducePropsToState } from './utils';\nimport Provider, { providerShape } from './Provider';\n\nexport default class Dispatcher extends Component {\n static propTypes = {\n context: providerShape.isRequired,\n };\n\n static displayName = 'HelmetDispatcher';\n\n rendered = false;\n\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n\n componentDidUpdate() {\n this.emitChange();\n }\n\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map(instance => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (Provider.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n serverState = mapStateOnServer(state);\n }\n setHelmet(serverState);\n }\n\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n\n this.rendered = true;\n\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n\n render() {\n this.init();\n\n return null;\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport fastCompare from 'react-fast-compare';\nimport invariant from 'invariant';\nimport { Context } from './Provider';\nimport HelmetData from './HelmetData';\nimport Dispatcher from './Dispatcher';\nimport { without } from './utils';\nimport { TAG_NAMES, VALID_TAG_NAMES, HTML_TAG_MAP } from './constants';\n\nexport { default as HelmetData } from './HelmetData';\nexport { default as HelmetProvider } from './Provider';\n\n/* eslint-disable class-methods-use-this */\nexport class Helmet extends Component {\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n * @param {Boolean} prioritizeSeoTags: false\n */\n /* eslint-disable react/forbid-prop-types, react/require-default-props */\n static propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string,\n prioritizeSeoTags: PropTypes.bool,\n helmetData: PropTypes.object,\n };\n /* eslint-enable react/prop-types, react/forbid-prop-types, react/require-default-props */\n\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false,\n };\n\n static displayName = 'Helmet';\n\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, 'helmetData'), without(nextProps, 'helmetData'));\n }\n\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren,\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren,\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n\n flattenArrayTypeChildren({ child, arrayTypeChildren, newChildProps, nestedChildren }) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...(arrayTypeChildren[child.type] || []),\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren),\n },\n ],\n };\n }\n\n mapObjectTypeChildren({ child, newProps, newChildProps, nestedChildren }) {\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.BODY:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.HTML:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps },\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps },\n };\n }\n }\n\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n\n Object.keys(arrayTypeChildren).forEach(arrayChildName => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName],\n };\n });\n\n return newFlattenedProps;\n }\n\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some(name => child.type === name),\n typeof child.type === 'function'\n ? `You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.`\n : `Only elements types ${VALID_TAG_NAMES.join(\n ', '\n )} are allowed. Helmet does not support rendering <${\n child.type\n }> elements. Refer to our API for more information.`\n );\n\n invariant(\n !nestedChildren ||\n typeof nestedChildren === 'string' ||\n (Array.isArray(nestedChildren) &&\n !nestedChildren.some(nestedChild => typeof nestedChild !== 'string')),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`} ) Refer to our API for more information.`\n );\n\n return true;\n }\n\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n\n React.Children.forEach(children, child => {\n if (!child || !child.props) {\n return;\n }\n\n const { children: nestedChildren, ...childProps } = child.props;\n // convert React props to HTML attributes\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n\n let { type } = child;\n if (typeof type === 'symbol') {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n\n switch (type) {\n case TAG_NAMES.FRAGMENT:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = this.flattenArrayTypeChildren({\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren,\n });\n break;\n\n default:\n newProps = this.mapObjectTypeChildren({\n child,\n newProps,\n newChildProps,\n nestedChildren,\n });\n break;\n }\n });\n\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n if (helmetData && !(helmetData instanceof HelmetData)) {\n helmetData = new HelmetData(helmetData.context, helmetData.instances);\n }\n\n return helmetData ? (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n ) : (\n \n {(\n context // eslint-disable-next-line react/jsx-props-no-spreading\n ) => }\n \n );\n }\n}\n","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Container = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n fluid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'container');\n const suffix = typeof fluid === 'string' ? `-${fluid}` : '-fluid';\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, fluid ? `${prefix}${suffix}` : prefix)\n });\n});\nContainer.displayName = 'Container';\nexport default Container;","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnMissFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how
works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnMissFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnMiss?: AgnosticPatchRoutesOnMissFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnMissImpl = init.unstable_patchRoutesOnMiss;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnMissImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnMiss implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnMiss` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnMiss() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnMissImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n let leafRoute = matches[matches.length - 1].route;\n if (\n leafRoute.path &&\n (leafRoute.path === \"*\" || leafRoute.path.endsWith(\"/*\"))\n ) {\n // If we matched a splat, it might only be because we haven't yet fetched\n // the children that would match with a higher score, so let's fetch\n // around and find out\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n let route =\n partialMatches.length > 0\n ? partialMatches[partialMatches.length - 1].route\n : null;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnMissImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let matchedSplat = false;\n if (newMatches) {\n let leafRoute = newMatches[newMatches.length - 1].route;\n\n if (leafRoute.index) {\n // If we found an index route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n\n if (leafRoute.path && leafRoute.path.length > 0) {\n if (leafRoute.path === \"*\") {\n // If we found a splat route, we can't be sure there's not a\n // higher-scoring route down some partial matches trail so we need\n // to check that out\n matchedSplat = true;\n } else {\n // If we found a non-splat route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n }\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // If we are no longer partially matching anything, this was either a\n // legit splat match above, or it's a 404. Also avoid loops if the\n // second pass results in the same partial matches\n if (\n !newPartialMatches ||\n partialMatches.map((m) => m.route.id).join(\"-\") ===\n newPartialMatches.map((m) => m.route.id).join(\"-\")\n ) {\n return { type: \"success\", matches: matchedSplat ? newMatches : null };\n }\n\n partialMatches = newPartialMatches;\n route = partialMatches[partialMatches.length - 1].route;\n if (route.path === \"*\") {\n // The splat is still our most accurate partial, so run with it\n return { type: \"success\", matches: partialMatches };\n }\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnMiss() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnMissImpl: AgnosticPatchRoutesOnMissFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map>,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnMissImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnMiss()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnMiss`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a