{"version":3,"file":"js/chunk-vendors-75fff109.67eb13be.js","mappings":"iLAmBA,KAAeA,EAAAA,EAAAA,IACbC,EAAAA,EAAAA,GAA6D,kBAAmB,oBAAqB,uBACrGC,EAAAA,EAAAA,GAAmB,kBAAkB,IAErCC,OAAO,CACPC,KAAM,oBAENC,MAAO,CACLC,SAAUC,QACVC,SAAUD,SAGZE,KAAI,WACF,MAAO,CACLC,QAAS,KACTC,OAAQ,KACRC,cAAc,EAEjB,EAEDC,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,GAAA,CACE,4BAA6BC,KAAKC,SAClC,iCAAkCD,KAAKJ,aACvC,8BAA+BI,KAAKE,YACjCF,KAAKG,aAEX,EACDD,WAAU,WACR,OAAOF,KAAKI,gBAAgBd,UAAYU,KAAKV,QAC9C,EACDe,WAAU,WACR,OAAOL,KAAKI,gBAAgBZ,UAAYQ,KAAKR,QAC9C,GAGHc,QAAS,CACPC,gBAAe,SAAEC,GACfR,KAAKN,QAAUc,CAChB,EACDC,kBAAiB,WACfT,KAAKN,QAAU,IAChB,EACDgB,eAAc,SAAEF,GACdR,KAAKL,OAASa,EACdA,EAAGG,IAAI,QAASX,KAAKY,QACtB,EACDC,iBAAgB,WACdb,KAAKL,OAAS,IACf,EACDiB,QAAO,SAAEE,GACHA,EAAEC,QAAQf,KAAKL,OAAQqB,IAAIC,OAE/BjB,KAAKkB,MAAM,QAASJ,GAEpBd,KAAKK,YAAcL,KAAKE,YAAcF,KAAKmB,QAC5C,EACDA,OAAM,eAAAC,EAAA,KACJpB,KAAKqB,WAAU,kBAAMD,EAAKF,MAAM,SAAhC,GACD,GAGHI,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAO,CACdC,YAAa,oBACbC,MAAOzB,KAAKF,QACZ4B,MAAO,CACL,gBAAiBC,OAAO3B,KAAKC,aAE9B2B,EAAAA,EAAAA,IAAQ5B,MACZ,G,6FC1EG6B,GAAa7C,EAAAA,EAAAA,GACjB8C,EAAAA,EACAC,EAAAA,GACAC,EAAAA,EAAAA,GAAyD,iBAAkB,4BAA6B,sBAQ1G,IAAeH,EAAW1C,SAAkBA,OAAO,CACjDC,KAAM,4BAENK,KAAM,WAAF,MAAS,CACXQ,UAAU,EADN,EAINJ,SAAU,CACRoC,eAAc,WACZ,OAAOjC,KAAKkC,eAAejC,QAC5B,GAGHkC,MAAO,CACLF,eAAgB,CACdG,WAAW,EACXC,QAAO,SAAEC,EAAKC,GAAM,IAAAnB,EAAA,KACdkB,IAAKtC,KAAKwC,UAAW,GAEX,MAAVD,EAAgBvC,KAAKC,SAAWqC,EAC/BtC,KAAKqB,WAAU,kBAAMD,EAAKnB,SAAWqC,CAArC,GACN,IAILG,QAAO,WACLzC,KAAKkC,eAAe3B,gBAAgBP,KACrC,EAED0C,cAAa,WACX1C,KAAKkC,eAAezB,mBACrB,EAEDa,OAAM,SAAEC,GAAC,IAAAoB,EAAA,KACP,OAAOpB,EAAEqB,EAAAA,GAAmB5C,KAAK6C,iBAAgB,iBAAM,CACrDtB,EAAE,MAAOoB,EAAKG,mBAAmBH,EAAKI,MAAO,CAC3CvB,YAAa,4BACbwB,WAAY,CAAC,CACX5D,KAAM,OACN6D,MAAON,EAAK1C,aAEZ,CACFsB,EAAE,MAAO,CAAEE,MAAO,oCAAqCG,EAAAA,EAAAA,IAAQe,EAAM,UAAW,CAAEO,KAAMP,EAAK1C,cARrE,IAW7B,G,kHCrDG4B,GAAa7C,EAAAA,EAAAA,GACjB+C,EAAAA,GACAC,EAAAA,EAAAA,GAAyD,iBAAkB,2BAA4B,sBAQzG,IAAeH,EAAW1C,SAAkBA,OAAO,CACjDC,KAAM,2BAEN4D,WAAY,CAAEG,OAAAA,EAAAA,GAEd9D,MAAO,CACL+D,kBAAmB7D,QACnB8D,WAAY,CACVC,KAAM3B,OACN4B,QAAS,WAEXC,YAAajE,QACb4D,OAAQ,CACNG,KAAM,CAAC/D,QAASkE,QAChBF,SAAS,IAIb9D,KAAM,WAAF,MAAS,CACXiE,cAAc,EADV,EAIN7D,SAAU,CACRC,QAAO,WACL,MAAO,CACL,mCAAoCE,KAAKC,SACzC,sCAAuCD,KAAK0D,aAE/C,EACDzD,SAAQ,WACN,OAAOD,KAAKkC,eAAejC,QAC5B,EACDC,WAAU,WACR,OAAOF,KAAKkC,eAAehC,UAC5B,EACDG,WAAU,WACR,OAAOL,KAAKkC,eAAe7B,UAC5B,GAGHoC,QAAO,WACLzC,KAAKkC,eAAexB,eAAeV,KACpC,EAED0C,cAAa,WACX1C,KAAKkC,eAAerB,kBACrB,EAEDP,QAAS,CACPM,QAAO,SAAEE,GACPd,KAAKkB,MAAM,QAASJ,EACrB,EACD6C,QAAO,WACL,IAAMC,GAAOhC,EAAAA,EAAAA,IAAQ5B,KAAM,UAAW,CAAEkD,KAAMlD,KAAKC,YACjD,CAACD,KAAK6D,eAAeC,EAAAA,EAAO9D,KAAKqD,aAEnC,OAAOrD,KAAK6D,eAAeE,EAAAA,GAAiB,CAC1C/D,KAAK6D,eAAe,MAAO,CACzBrC,YAAa,iCACbC,MAAO,CACL,iDAAkDzB,KAAKoD,mBAEzDJ,WAAY,CAAC,CACX5D,KAAM,OACN6D,OAAQjD,KAAKE,cAEd0D,IAEN,GAGHtC,OAAM,SAAEC,GAAC,IAAAH,EAAA,KACP,OAAOG,EAAE,SAAUvB,KAAK8C,mBAAmB9C,KAAK+C,MAAO,CACrDvB,YAAa,2BACbC,MAAOzB,KAAKF,QACZ4B,MAAO,CACLsC,SAAUhE,KAAKE,YAAc,EAAI,KACjCoD,KAAM,SACN,gBAAiBtD,KAAKC,UAExB+C,WAAY,CAAC,CACX5D,KAAM,SACN6D,MAAOjD,KAAKmD,SAEdc,IAAElE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACGC,KAAKkE,YADN,IAEFC,MAAOnE,KAAKY,QACZwD,UAAW,WAAF,OAAShD,EAAKsC,cAAe,CAHpC,EAIFW,QAAS,WAAF,OAASjD,EAAKsC,cAAe,OAEpC,EACF9B,EAAAA,EAAAA,IAAQ5B,KAAM,UAAW,CAAEkD,KAAMlD,KAAKC,WAAY,GAClDD,KAAKwD,aAAexD,KAAK2D,WAE5B,G,0FC7GH,IAAeW,EAAAA,EAAcnF,OAAO,CAClCC,KAAM,qBAENmF,QAAO,WACL,MAAO,CACLnE,gBAAiBJ,KAEpB,EAEDX,MAAO,CACLmF,UAAWjF,QACXD,SAAUC,QACVkF,KAAMlF,QACNmF,MAAOnF,QACPoF,UAAWpF,QACXqF,MAAOrF,QACPsF,OAAQtF,QACRC,SAAUD,QACVuF,KAAMvF,SAGRM,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKuE,EAAAA,EAAcS,QAAQlF,SAASC,QAAQkF,KAAKhF,OAD1C,IAEL,sBAAsB,EACtB,gCAAiCA,KAAKwE,UACtC,2BAA4BxE,KAAKyE,KACjC,4BAA6BzE,KAAK0E,MAClC,gCAAiC1E,KAAK2E,UACtC,4BAA6B3E,KAAK4E,MAClC,6BAA8B5E,KAAK6E,OACnC,2BAA4B7E,KAAK8E,MAEpC,GAGHrC,QAAO,WAEDzC,KAAKiF,OAAOC,eAAe,YAC7BC,EAAAA,EAAAA,IAAS,SAAU,WAAYnF,MAK/BoF,MAAMC,QAAQrF,KAAKiD,QACnBjD,KAAKiD,MAAMqC,OAAS,GACK,mBAAlBtF,KAAKiD,MAAM,KAElBkC,EAAAA,EAAAA,IAAS,+BAAgC,kBAAmBnF,KAE/D,EAEDM,QAAS,CACPiF,WAAU,SAAEC,EAAmDC,GAC7D,IAAMxC,EAAQjD,KAAK0F,SAASF,EAAMC,GAC5BE,EAAY3F,KAAK0F,SAASF,EAAMC,EAAQ,GAE9CD,EAAKvF,SAAWD,KAAK4F,aAAa3C,GAClCuC,EAAK5F,aAAeI,KAAK4F,aAAaD,EACvC,I,kQCzDL,IAAeE,EAAAA,EAAW1G,OAAO,CAC/BC,KAAM,eAEN0G,MAAO,CACLC,KAAM,QACNC,MAAO,UAGT3G,MAAO,CACL4G,MAAO1G,QACP2G,UAAW,CACT5C,KAAM/D,QACNgE,SAAS,GAEX4C,kBAAmB,CACjB7C,KAAM3B,OACN4B,QAAS,kCAEX6C,cAAe,CACb9C,KAAM3B,OACN4B,QAAS,8BAEX8C,UAAW9G,QACX+G,SAAU/G,QACVgH,YAAa5E,OACb6E,YAAa,CACXlD,KAAM3B,OACN4B,QAAS,SAEX/D,SAAU,CACR8D,KAAM/D,QACNgE,SAAS,GAEXkD,SAAU,CACRnD,KAAM,CAAC/D,QAASmH,QAChBnD,SAAS,EACToD,UAAY,SAAAC,GACV,MACe,mBAANA,GACP,CAAC,IAAM,MAAMC,SAASD,EAEzB,GAEHE,WAAYvH,QACZwH,eAAgB,CACdzD,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,IAEXD,KAAM,CACJA,KAAM3B,OACN4B,QAAS,QAEXN,MAAO,CACLM,aAASyD,EACTL,UAAW,SAAArE,GACT,OAAO2E,EAAAA,EAAAA,IAAY3E,GAAK4E,OAAM,SAAAN,GAAC,OAAS,MAALA,GAA0B,YAAbO,EAAAA,EAAAA,GAAOP,EAAhD,GACR,IAIL/G,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACK8F,EAAAA,EAAWd,QAAQlF,SAASC,QAAQkF,KAAKhF,OADvC,IAEL,gBAAgB,GAEnB,EACDoH,qBAAoB,WAClB,IAAMC,EAAarH,KAAKsG,UAAYtG,KAAKsH,UACrCtH,KAAKsH,UAAUhC,OACdtF,KAAKsH,qBAAqBC,KAAQ,EAAI,EAE3C,IAAKvH,KAAKyG,SAAU,OAAOzG,KAAKwH,SAASC,KAAKC,EAAE1H,KAAKoG,cAAeiB,GAEpE,IAAMM,EAAQ3H,KAAK4H,mBAAmBC,QAAO,SAACF,EAADG,GAAsC,IAAAC,EAAAD,EAApBE,KAAAA,OAAI,IAAAD,EAAG,EAAAA,EACpE,OAAOJ,EAAQK,CAChB,GAAE,GAEH,OAAOhI,KAAKwH,SAASC,KAAKC,EACxB1H,KAAKmG,kBACLkB,GACAY,EAAAA,EAAAA,IAAsBN,EAAqB,OAAd3H,KAAKkI,MAErC,EACDN,mBAAkB,WAChB,OAAOX,EAAAA,EAAAA,IAAYjH,KAAKmI,cACzB,EACDA,cAAe,CACbC,IAAG,WACD,OAAOpI,KAAKsH,SACb,EACDe,IAAG,SAAE/F,GACHtC,KAAKsH,UAAYhF,EACjBtC,KAAKkB,MAAM,SAAUlB,KAAKsH,UAC3B,GAEHgB,QAAO,WACL,OAAOtI,KAAK4H,mBAAmBtC,OAAS,CACzC,EACDiD,cAAa,WACX,OAAOvI,KAAKsI,OACb,EACDE,KAAI,eAAApH,EAAA,KACF,OAAKpB,KAAKsI,UAAYtI,KAAKyI,wBAAyBzI,KAAK0I,WAAc1I,KAAK2I,SAErE3I,KAAK4H,mBAAmBgB,KAAK,SAAAC,GAClC,IAAAC,EAGID,EAFFzJ,KAAAA,OAAI,IAAA0J,EAAG,GADHA,EAAAC,EAGFF,EADFb,KAAAA,OAAI,IAAAe,EAAG,EAAAA,EAGHC,EAAgB5H,EAAK6H,aAAa7J,GAExC,OAAQgC,EAAKqF,SAAN,GAAAyC,OAEAF,EAAa,MAAAE,QAAKjB,EAAAA,EAAAA,IAAsBD,EAAoB,OAAd5G,EAAK8G,MAAc,KADpEc,CAEL,IAb6F,CAAChJ,KAAKuG,YAcrG,EACD2B,KAAI,WACF,MAAgC,mBAAlBlI,KAAKyG,SAAyBzG,KAAKyG,cAAWO,CAC7D,EACDmC,SAAQ,WACN,OAAOnJ,KAAKiG,OAASjG,KAAK8G,UAC3B,GAGH3E,MAAO,CACL3C,SAAU,CACR6C,QAAO,SAAEuE,IACG,IAANA,IAAYwC,EAAAA,EAAAA,IAAa,8CAA+CpJ,KAC7E,EACDoC,WAAW,GAEba,MAAK,SAAE2D,GACL,IAAM3D,EAAQjD,KAAKsG,SAAWM,EAAIA,EAAI,CAACA,GAAK,IACvCyC,EAAAA,EAAAA,IAAUpG,EAAOjD,KAAKsJ,MAAMC,MAAMC,SAMrCxJ,KAAKsJ,MAAMC,MAAMtG,MAAQ,GAE5B,GAGH3C,QAAS,CACPmJ,kBAAiB,WACfzJ,KAAKmI,cAAgBnI,KAAKsG,SAAW,GAAK,KAC1CtG,KAAKsJ,MAAMC,MAAMtG,MAAQ,EAC1B,EACDyG,SAAQ,eAAA/G,EAAA,KACN,OAAK3C,KAAKsI,QAEHtI,KAAKwI,KAAKI,KAAI,SAACJ,EAAM/C,GAAP,OAAiB9C,EAAKkB,eAAe8F,EAAAA,EAAO,CAC/DtK,MAAO,CAAEuK,MAAOjH,EAAKmE,YACrB7C,GAAI,CACF,cAAe,WACb,IAAMkE,EAAgBxF,EAAKwF,cAC3BA,EAAc0B,OAAOpE,EAAO,GAC5B9C,EAAKwF,cAAgBA,CACtB,IAEF,CAACK,GATG,IAFmB,EAY3B,EACDsB,WAAU,WACR,IAAMxI,EAASuE,EAAAA,EAAWd,QAAQzE,QAAQwJ,WAAW9E,KAAKhF,MAS1D,OAPIA,KAAKqG,YACP/E,EAAO7B,KAAMsK,OAAQC,EAAAA,EAAAA,IACnB1I,EAAO7B,KAAMsK,MACb,CAAEE,QAAS,UAIR3I,CACR,EACD4I,SAAQ,WACN,IAAMX,EAAQ1D,EAAAA,EAAWd,QAAQzE,QAAQ4J,SAASlF,KAAKhF,MAgBvD,OAdAuJ,EAAM9J,KAAMiC,MAAO4E,SAAWtG,KAAKsG,gBAK5BiD,EAAM9J,KAAM0K,SAAUlH,aAMtBsG,EAAM9J,KAAMwE,GAAIsF,MACvBA,EAAM9J,KAAMwE,GAAImG,OAASpK,KAAKqK,QAEvB,CAACrK,KAAKsK,gBAAiBf,EAC/B,EACDgB,eAAc,eAAAC,EAAA,KACZ,IAAKxK,KAAKwG,YAAa,OAAO,KAE9B,IAAM5C,EAAO5D,KAAK2D,QAAQ,WAAW,WACnC6G,EAAKlB,MAAMC,MAAMpF,OAClB,IAED,OAAOnE,KAAKyK,QAAQ,UAAW,QAAS,CAAC7G,GAC1C,EACD8G,iBAAgB,WACd,IAAMpF,EAAStF,KAAKwI,KAAKlD,OAEzB,OAAIA,EAAS,EAAUtF,KAAKwI,KACxBxI,KAAKyG,WAAazG,KAAK2K,QAAgB,CAAC3K,KAAKoH,sBAC1C,CAACpH,KAAKwH,SAASC,KAAKC,EAAE1H,KAAKoG,cAAed,GAClD,EACDgF,cAAa,eAAAM,EAAA,KACLC,EAAW,GAkBjB,OAhBI7K,KAAKsI,SAAWtI,KAAK8K,aAAaC,UACpC/K,KAAK4H,mBAAmBoD,SAAQ,SAACnC,EAAYpD,GACtCmF,EAAKE,aAAaC,WAEvBF,EAASI,KACPL,EAAKE,aAAaC,UAAU,CAC1BvC,KAAMoC,EAAKpC,KAAK/C,GAChBoD,KAAAA,EACApD,MAAAA,IAGL,IAEDoF,EAASI,KAAKjL,KAAKmJ,UAAYnJ,KAAKsI,QAAUtI,KAAK0J,WAAa1J,KAAK0K,oBAGhE1K,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,qBACbC,MAAO,CACL,kCAAmCzB,KAAKuG,cAAgBvG,KAAKsI,QAC7D,4BAA6BtI,KAAKmJ,WAAanJ,KAAK8K,aAAaC,YAElEF,EACJ,EACDK,iBAAgB,eAAAC,EAAA,KACRC,EAAOvF,EAAAA,EAAWd,QAAQzE,QAAQ4K,iBAAiBlG,KAAKhF,MAY9D,OAVAoL,EAAK3L,KAAMwE,IAAXlE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACMqL,EAAK3L,KAAMwE,IAAM,CAAC,GAAtB,IACAE,MAAQ,SAAArD,GAEFA,EAAEuK,QAAiD,UAAtCvK,EAAEuK,OAAuBC,UAE1CH,EAAK7B,MAAMC,MAAMpF,OAClB,IAGIiH,CACR,EACDf,QAAO,SAAEvJ,GACP,IAAM0I,GAAK+B,EAAAA,EAAAA,GAAQzK,EAAEuK,OAA4B7B,OAAS,IAE1DxJ,KAAKmI,cAAgBnI,KAAKsG,SAAWkD,EAAQA,EAAM,GAKnDxJ,KAAKwL,aAAexL,KAAKmI,aAC1B,EACDsD,UAAS,SAAE3K,GACTd,KAAKkB,MAAM,UAAWJ,EACvB,EACDmI,aAAY,SAAEyC,GACZ,GAAIA,EAAIpG,OAASoB,OAAO1G,KAAK+G,gBAAiB,OAAO2E,EACrD,IAAMC,EAAmBC,KAAKC,OAAOnF,OAAO1G,KAAK+G,gBAAkB,GAAK,GACxE,MAAO,GAAPmC,OAAUwC,EAAII,MAAM,EAAGH,GAAiB,KAAAzC,OAAIwC,EAAII,MAAMJ,EAAIpG,OAASqG,GACpE,I,sHC9QL,KAAe3M,EAAAA,EAAAA,GACb+M,EAAAA,GACAC,EAAAA,EAAAA,GAAgB,SAAU,CACxB,SACA,UAEFC,EAAAA,GACA9M,OAAO,CACPC,KAAM,WAENC,MAAO,CACL6M,OAAQ,CACN3I,QAAS,OACTD,KAAM,CAACoD,OAAQ/E,SAEjBiD,MAAOrF,QACP4M,QAAS5M,QACT6M,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,WAIb1D,SAAU,CACRwM,oBAAmB,WACjB,OAAOrM,KAAK4E,MAAQ,cAAgB,QACrC,EACD9E,QAAO,WACL,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgM,EAAAA,EAAOhH,QAAQlF,SAASC,QAAQkF,KAAKhF,OADnC,IAEL,qBAAsBA,KAAKsM,SAC3B,mBAAoBtM,KAAKsM,WAAatM,KAAKuM,KAAOvM,KAAKwM,OACvD,oBAAqBxM,KAAKmM,QAC1B,kBAAmBnM,KAAK4E,OAE3B,EACD6H,eAAc,WACZ,GAAKzM,KAAK0M,aAEV,OAAO1M,KAAKuM,IACRvM,KAAKwH,SAASmF,YAAYC,OAC1B,CACL,EACDC,aAAY,WACV,GAAK7M,KAAK0M,aAEV,OAAO1M,KAAKuM,KAAOvM,KAAK4E,MACpB5E,KAAKwH,SAASmF,YAAYG,KAC1B,CACL,EACDC,cAAa,WACX,GAAK/M,KAAK0M,aAEV,OAAO1M,KAAKuM,KAAOvM,KAAK4E,MACpB5E,KAAKwH,SAASmF,YAAYK,MAC1B,CACL,EACDN,aAAY,WACV,OAAOnN,QACLS,KAAKsM,UACLtM,KAAKwM,OACLxM,KAAKuM,IAER,EACDU,OAAM,WACJ,IAAMf,EAASgB,SAASlN,KAAKkM,QAE7B,OAAAnM,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgM,EAAAA,EAAOhH,QAAQlF,SAASoN,OAAOjI,KAAKhF,OADlC,IAELkM,OAAQiB,MAAMjB,GAAUA,GAASkB,EAAAA,EAAAA,IAAclB,GAC/CY,MAAMM,EAAAA,EAAAA,IAAcpN,KAAK6M,cACzBG,OAAOI,EAAAA,EAAAA,IAAcpN,KAAK+M,eAC1BH,QAAQQ,EAAAA,EAAAA,IAAcpN,KAAKyM,iBAE9B,GAGHnM,QAAS,CACP+M,kBAAiB,WACf,IAAMnB,EAASgB,SAASlN,KAAKkM,QAE7B,OAAOiB,MAAMjB,GACTlM,KAAKgB,IAAMhB,KAAKgB,IAAIsM,aAAe,EACnCpB,CACL,GAGH5K,OAAM,SAAEC,GACN,IAAM9B,EAAOO,KAAK8C,mBAAmB9C,KAAK+C,MAAO,CAC/CvB,YAAa,WACbC,MAAOzB,KAAKF,QACZiK,MAAO/J,KAAKiN,SAGd,OAAO1L,EAAEvB,KAAKoM,IAAK3M,GAAMmC,EAAAA,EAAAA,IAAQ5B,MAClC,G,8LC5FH,KAAehB,EAAAA,EAAAA,GACbuO,EAAAA,GACArO,EAAAA,EAAAA,GAAmB,SAEnBC,OAAO,CACPC,KAAM,SAENmF,QAAO,WACL,MAAO,CAAEiJ,KAAMxN,KAChB,EAEDyN,cAAc,EAEdpO,MAAO,CACLC,SAAUC,QACVmO,eAAgBnO,QAChBC,SAAUD,QACV0D,MAAO1D,SAGTE,KAAM,WAAF,MAAS,CACXkO,OAAQ,GACRC,SAAU,GACVC,SAAU,CAAC,EAHP,EAMN1L,MAAO,CACL0L,SAAU,CACRxL,QAAO,SAAEC,GACP,IAAMwL,EAASrK,OAAOsK,OAAOzL,GAAKuE,UAAS,GAE3C7G,KAAKkB,MAAM,SAAU4M,EACtB,EACDE,MAAM,EACN5L,WAAW,IAIf9B,QAAS,CACP2N,WAAU,SAAE1E,GAAU,IAAAnI,EAAA,KACd8M,EAAW,SAAA3E,GACf,OAAOA,EAAM4E,OAAO,YAAa,SAAA7L,GAC/BlB,EAAKgN,KAAKhN,EAAKyM,SAAUtE,EAAM8E,KAAM/L,EACtC,GAAE,CAAEF,WAAW,GACjB,EAEKwL,EAAqB,CACzBS,KAAM9E,EAAM8E,KACZC,MAAO,WAAQ,EACfC,eAAgB,WAAQ,GAiB1B,OAdIvO,KAAK0N,eAEPE,EAASW,eAAiBhF,EAAM4E,OAAO,kBAAmB,SAAA7L,GACnDA,IAGDlB,EAAKyM,SAAS3I,eAAeqE,EAAM8E,QAEvCT,EAASU,MAAQJ,EAAQ3E,IAC1B,IAEDqE,EAASU,MAAQJ,EAAQ3E,GAGpBqE,CACR,EAEDY,SAAQ,WACN,OAAqE,IAA9DxO,KAAK2N,OAAOc,QAAO,SAAAlF,GAAK,OAAKA,EAAMiF,UAAS,EAA5C,IAAmDlJ,MAC3D,EAEDoJ,MAAK,WACH1O,KAAK2N,OAAO3C,SAAQ,SAAAzB,GAAK,OAAIA,EAAMmF,OAAnC,IACA1O,KAAK2O,eACN,EACDA,cAAa,eAAAhM,EAAA,KACP3C,KAAK0N,gBAEPkB,YAAW,WACTjM,EAAKkL,SAAW,CAAC,CAClB,GAAE,EAEN,EAEDgB,gBAAe,WACb7O,KAAK2N,OAAO3C,SAAQ,SAAAzB,GAAK,OAAIA,EAAMsF,iBAAnC,IACA7O,KAAK2O,eACN,EACDG,SAAQ,SAAEvF,GACRvJ,KAAK2N,OAAO1C,KAAK1B,GACjBvJ,KAAK4N,SAAS3C,KAAKjL,KAAKiO,WAAW1E,GACpC,EACDwF,WAAU,SAAExF,GACV,IAAMyF,EAAQhP,KAAK2N,OAAOsB,MAAK,SAAAC,GAAC,OAAIA,EAAEb,OAAS9E,EAAM8E,IAAvC,IAEd,GAAKW,EAAL,CAEA,IAAMG,EAAUnP,KAAK4N,SAASqB,MAAK,SAAAC,GAAC,OAAIA,EAAEb,OAASW,EAAMX,IAAzC,IACZc,IACFA,EAAQb,QACRa,EAAQZ,kBAGVvO,KAAK4N,SAAW5N,KAAK4N,SAASa,QAAO,SAAAS,GAAC,OAAIA,EAAEb,OAASW,EAAMX,IAA3C,IAChBrO,KAAK2N,OAAS3N,KAAK2N,OAAOc,QAAO,SAAAS,GAAC,OAAIA,EAAEb,OAASW,EAAMX,IAAzC,IACdrO,KAAKoP,QAAQpP,KAAK6N,SAAUmB,EAAMX,KAVhB,CAWnB,GAGH/M,OAAM,SAAEC,GAAC,IAAAiJ,EAAA,KACP,OAAOjJ,EAAE,OAAQ,CACfC,YAAa,SACbE,OAAK3B,EAAAA,EAAAA,GAAA,CACHsP,YAAY,GACTrP,KAAKsP,QAEVrL,GAAI,CACFsL,OAAS,SAAAzO,GAAD,OAAc0J,EAAKtJ,MAAM,SAAUJ,EAArB,KAEvBc,EAAAA,EAAAA,IAAQ5B,MACZ,G,kOCxIGwP,EAAc,CAAC,KAAM,KAAM,KAAM,MAEjCC,EAAmB,WACvB,OAAOD,EAAY3H,QAAO,SAACxI,EAAOiD,GAKhC,OAJAjD,EAAMiD,GAAO,CACXgB,KAAM,CAAC/D,QAASoC,OAAQ+E,QACxBnD,SAAS,GAEJlE,CACR,GAAE,CAAC,EACL,CARwB,GAUnBqQ,EAAe,WACnB,OAAOF,EAAY3H,QAAO,SAACxI,EAAOiD,GAKhC,OAJAjD,EAAM,UAAWsQ,EAAAA,EAAAA,IAAWrN,IAAQ,CAClCgB,KAAM,CAAC3B,OAAQ+E,QACfnD,QAAS,MAEJlE,CACR,GAAE,CAAC,EACL,CARoB,GAUfuQ,EAAc,WAClB,OAAOJ,EAAY3H,QAAO,SAACxI,EAAOiD,GAKhC,OAJAjD,EAAM,SAAUsQ,EAAAA,EAAAA,IAAWrN,IAAQ,CACjCgB,KAAM,CAAC3B,OAAQ+E,QACfnD,QAAS,MAEJlE,CACR,GAAE,CAAC,EACL,CARmB,GAUdwQ,EAAU,CACdC,IAAKrM,OAAOsM,KAAKN,GACjBO,OAAQvM,OAAOsM,KAAKL,GACpBO,MAAOxM,OAAOsM,KAAKH,IAGrB,SAASM,EAAiB5M,EAA4ByC,EAAczD,GAClE,IAAI6N,EAAY7M,EAChB,GAAW,MAAPhB,IAAuB,IAARA,EAAnB,CAGA,GAAIyD,EAAM,CACR,IAAMqK,EAAarK,EAAKsK,QAAQ/M,EAAM,IACtC6M,GAAa,IAAJjH,OAAQkH,EAClB,CAID,MAAa,QAAT9M,GAA2B,KAARhB,IAAsB,IAARA,GAKrC6N,GAAa,IAAJjH,OAAQ5G,GACV6N,EAAUG,eAJRH,EAAUG,aAVlB,CAeF,CAED,IAAMC,EAAQ,IAAIC,IAElB,IAAeC,EAAAA,GAAItR,OAAO,CACxBC,KAAM,QACNsR,YAAY,EACZrR,OAAKU,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACH4Q,KAAM,CACJrN,KAAM,CAAC/D,QAASoC,OAAQ+E,QACxBnD,SAAS,IAERkM,GALE,IAMLO,OAAQ,CACN1M,KAAM,CAAC3B,OAAQ+E,QACfnD,QAAS,OAERmM,GAVE,IAWLO,MAAO,CACL3M,KAAM,CAAC3B,OAAQ+E,QACfnD,QAAS,OAERqM,GAfE,IAgBLgB,UAAW,CACTtN,KAAM3B,OACN4B,QAAS,KACToD,UAAY,SAAA+E,GAAD,MAAc,CAAC,OAAQ,QAAS,MAAO,SAAU,WAAY,WAAW7E,SAAS6E,EAAnE,GAE3BU,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,SAGbjC,OAAM,SAAEC,EAAFuG,GAAsC,IAA/BzI,EAAFyI,EAAEzI,MAAOI,EAATqI,EAASrI,KAAMoL,EAAf/C,EAAe+C,SAEpBgG,GAF8B/I,EAAAgJ,OAEnB,IACf,IAAK,IAAM/K,KAAQ1G,EACjBwR,GAAYlP,OAAQtC,EAAc0G,IAEpC,IAAIgL,EAAYR,EAAMnI,IAAIyI,GAE1B,IAAKE,EAAW,CAGd,IAAIzN,EACJ,IAAKA,KAHLyN,EAAY,GAGClB,EACXA,EAAQvM,GAAM0H,SAAQ,SAAAjF,GACpB,IAAM9C,EAAoC5D,EAAc0G,GAClDoK,EAAYD,EAAgB5M,EAAMyC,EAAM9C,GAC1CkN,GAAWY,EAAW9F,KAAKkF,EAChC,IAGH,IAAMa,EAAgBD,EAAUE,MAAK,SAAAd,GAAS,OAAIA,EAAUe,WAAW,OAAjD,IAEtBH,EAAU9F,MAAVkG,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAEErB,KAAMkB,IAAkB3R,EAAMsR,MAFjB,OAAAzH,OAGL7J,EAAMsR,MAAStR,EAAMsR,MAHhB,UAAAzH,OAIF7J,EAAM2Q,QAAW3Q,EAAM2Q,QAJrB,SAAA9G,OAKH7J,EAAM4Q,OAAU5Q,EAAM4Q,OALnB,cAAA/G,OAME7J,EAAMuR,WAAcvR,EAAMuR,YAG3CL,EAAMlI,IAAIwI,EAAUE,EACrB,CAED,OAAOxP,EAAElC,EAAM+M,KAAKgF,EAAAA,EAAAA,IAAU3R,EAAM,CAAEgC,MAAOsP,IAAclG,EAC5D,G,kIC5HH,KAAewG,EAAAA,EAAAA,GAAK,aAAalS,OAAO,CACtCC,KAAM,cACNsR,YAAY,EACZrR,MAAO,CACLiS,GAAI3P,OACJyK,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,OAEXgO,MAAO,CACLjO,KAAM/D,QACNgE,SAAS,IAGbjC,OAAM,SAAEC,EAAFuG,GAA8B,IAC9BhI,EADOT,EAAFyI,EAAEzI,MAAOI,EAATqI,EAASrI,KAAMoL,EAAA/C,EAAA+C,SAEhBnJ,EAAUjC,EAAViC,MA2BR,OA1BIA,IAEFjC,EAAKiC,MAAQ,CAAC,EACd5B,EAAU2D,OAAOsM,KAAKrO,GAAO+M,QAAO,SAAA+C,GAGlC,GAAY,SAARA,EAAgB,OAAO,EAE3B,IAAMvO,EAAQvB,EAAM8P,GAIpB,OAAIA,EAAIN,WAAW,UACjBzR,EAAKiC,MAAO8P,GAAOvO,GACZ,GAGFA,GAA0B,kBAAVA,CACxB,KAGC5D,EAAMiS,KACR7R,EAAK0K,SAAW1K,EAAK0K,UAAY,CAAC,EAClC1K,EAAK0K,SAASmH,GAAKjS,EAAMiS,IAGpB/P,EACLlC,EAAM+M,KACNgF,EAAAA,EAAAA,IAAU3R,EAAM,CACd+B,YAAa,YACbC,MAAO2D,MAAW,CAChB,mBAAoB/F,EAAMkS,QACzBrI,OAAOpJ,GAAW,MAEvB+K,EAEH,G,gDCzDH,KAAewG,EAAAA,EAAAA,GAAK,S,0NCGd7B,EAAc,CAAC,KAAM,KAAM,KAAM,MAEjCiC,EAAY,CAAC,QAAS,MAAO,UAEnC,SAASC,EAAWC,EAAgBC,GAClC,OAAOpC,EAAY3H,QAAO,SAACxI,EAAOiD,GAEhC,OADAjD,EAAMsS,GAAShC,EAAAA,EAAAA,IAAWrN,IAAQsP,IAC3BvS,CACR,GAAE,CAAC,EACL,CAED,IAAMwS,EAAkB,SAAAnG,GAAD,MAAc,GAAAxC,OAAIuI,EAAJ,CAAe,WAAY,YAAW5K,SAAS6E,EAApF,EACMoG,EAAaJ,EAAU,SAAS,iBAAO,CAC3CpO,KAAM3B,OACN4B,QAAS,KACToD,UAAWkL,EAHyB,IAMhCE,EAAoB,SAAArG,GAAD,MAAc,GAAAxC,OAAIuI,EAAJ,CAAe,gBAAiB,iBAAgB5K,SAAS6E,EAAhG,EACMsG,EAAeN,EAAU,WAAW,iBAAO,CAC/CpO,KAAM3B,OACN4B,QAAS,KACToD,UAAWoL,EAH6B,IAMpCE,EAAyB,SAAAvG,GAAD,MAAc,GAAAxC,OAAIuI,EAAJ,CAAe,gBAAiB,eAAgB,YAAW5K,SAAS6E,EAAhH,EACMwG,EAAoBR,EAAU,gBAAgB,iBAAO,CACzDpO,KAAM3B,OACN4B,QAAS,KACToD,UAAWsL,EAHuC,IAM9CpC,EAAU,CACdsC,MAAO1O,OAAOsM,KAAK+B,GACnBM,QAAS3O,OAAOsM,KAAKiC,GACrBK,aAAc5O,OAAOsM,KAAKmC,IAGtBI,EAAW,CACfH,MAAO,QACPC,QAAS,UACTC,aAAc,iBAGhB,SAASnC,EAAiB5M,EAA4ByC,EAAczD,GAClE,IAAI6N,EAAYmC,EAAShP,GACzB,GAAW,MAAPhB,EAAJ,CAGA,GAAIyD,EAAM,CAER,IAAMqK,EAAarK,EAAKsK,QAAQ/M,EAAM,IACtC6M,GAAa,IAAJjH,OAAQkH,EAClB,CAGD,OADAD,GAAa,IAAJjH,OAAQ5G,GACV6N,EAAUG,aARhB,CASF,CAED,IAAMC,EAAQ,IAAIC,IAElB,IAAeC,EAAAA,GAAItR,OAAO,CACxBC,KAAM,QACNsR,YAAY,EACZrR,OAAKU,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACHqM,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,OAEXgP,MAAOhT,QACPiT,UAAWjT,QACX4S,MAAO,CACL7O,KAAM3B,OACN4B,QAAS,KACToD,UAAWkL,IAEVC,GAZE,IAaLM,QAAS,CACP9O,KAAM3B,OACN4B,QAAS,KACToD,UAAWoL,IAEVC,GAlBE,IAmBLK,aAAc,CACZ/O,KAAM3B,OACN4B,QAAS,KACToD,UAAWsL,IAEVC,GAEL5Q,OAAM,SAAEC,EAAFuG,GAA8B,IAAvBzI,EAAFyI,EAAEzI,MAAOI,EAATqI,EAASrI,KAAMoL,EAAA/C,EAAA+C,SAEpBgG,EAAW,GACf,IAAK,IAAM9K,KAAQ1G,EACjBwR,GAAYlP,OAAQtC,EAAc0G,IAEpC,IAAIgL,EAAYR,EAAMnI,IAAIyI,GAE1B,IAAKE,EAAW,CAGd,IAAIzN,EACJ,IAAKA,KAHLyN,EAAY,GAGClB,EACXA,EAAQvM,GAAM0H,SAAQ,SAAAjF,GACpB,IAAM9C,EAAiB5D,EAAc0G,GAC/BoK,EAAYD,EAAgB5M,EAAMyC,EAAM9C,GAC1CkN,GAAWY,EAAW9F,KAAKkF,EAChC,IAGHY,EAAU9F,MAAVkG,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACE,aAAc9R,EAAMmT,UACpB,aAAcnT,EAAMkT,OAFP,SAAArJ,OAGH7J,EAAM8S,OAAU9S,EAAM8S,OAHnB,WAAAjJ,OAID7J,EAAM+S,SAAY/S,EAAM+S,SAJvB,iBAAAlJ,OAKK7J,EAAMgT,cAAiBhT,EAAMgT,eAGjD9B,EAAMlI,IAAIwI,EAAUE,EACrB,CAED,OAAOxP,EACLlC,EAAM+M,KACNgF,EAAAA,EAAAA,IAAU3R,EAAM,CACd+B,YAAa,MACbC,MAAOsP,IAETlG,EAEH,G,+CCrIH,KAAe4H,EAAAA,EAAAA,IAAuB,SAAU,MAAO,W,uJCAzC,SAAUC,EAAOtT,GAE7B,OAAOqR,EAAAA,GAAItR,OAAO,CAChBC,KAAM,KAAF8J,OAAO9J,GAEXsR,YAAY,EAEZrR,MAAO,CACLiS,GAAI3P,OACJyK,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,QAIbjC,OAAM,SAAEC,EAAFuG,GAA8B,IAAvBzI,EAAFyI,EAAEzI,MAAOI,EAATqI,EAASrI,KAAMoL,EAAA/C,EAAA+C,SACxBpL,EAAK+B,YAAe,GAAA0H,OAAG9J,EAAI,KAAA8J,OAAIzJ,EAAK+B,aAAe,IAAMmR,OAEzD,IAAQjR,EAAUjC,EAAViC,MACR,GAAIA,EAAO,CAETjC,EAAKiC,MAAQ,CAAC,EACd,IAAM5B,EAAU2D,OAAOsM,KAAKrO,GAAO+M,QAAO,SAAA+C,GAGxC,GAAY,SAARA,EAAgB,OAAO,EAE3B,IAAMvO,EAAQvB,EAAM8P,GAIpB,OAAIA,EAAIN,WAAW,UACjBzR,EAAKiC,MAAO8P,GAAOvO,GACZ,GAGFA,GAA0B,kBAAVA,CACxB,IAEGnD,EAAQwF,SAAQ7F,EAAK+B,aAAL,IAAA0H,OAAwBpJ,EAAQ8S,KAAK,MAC1D,CAOD,OALIvT,EAAMiS,KACR7R,EAAK0K,SAAW1K,EAAK0K,UAAY,CAAC,EAClC1K,EAAK0K,SAASmH,GAAKjS,EAAMiS,IAGpB/P,EAAElC,EAAM+M,IAAK3M,EAAMoL,EAC3B,GAEJ,C,wEC1CD,KAAe7L,EAAAA,EAAAA,GACb6T,EAAAA,EACAC,EAAAA,GAEA3T,OAAO,CACPC,KAAM,UAENC,MAAO,CACLC,SAAU,CACRgE,KAAM/D,QACNgE,SAAS,GAEXN,MAAO,CACLK,KAAM/D,QACNgE,aAASyD,IAIb1G,QAAS,CACPyS,aAAY,WACV/S,KAAKgT,SAAS,OACf,EACDC,aAAY,WACVjT,KAAKgT,SAAS,QACf,GAGH1R,OAAM,WACJ,OAAKtB,KAAK8K,aAAavH,cAA0ByD,IAAfhH,KAAKiD,OASnCjD,KAAK8K,aAAavH,UACpB2P,EAAUlT,KAAK8K,aAAavH,QAAQ,CAAEmB,MAAO1E,KAAKC,YAGhDmF,MAAMC,QAAQ6N,IAA+B,IAAnBA,EAAQ5N,SACpC4N,EAAUA,EAAQ,IAGfA,IAAW9N,MAAMC,QAAQ6N,IAAaA,EAAQ9G,KAM9CpM,KAAKV,WACR4T,EAAQzT,KAAOyT,EAAQzT,MAAQ,CAAC,EAChCO,KAAKmT,GAAGD,EAAQzT,KAAM,CACpB2T,WAAYpT,KAAK+S,aACjBM,WAAYrT,KAAKiT,gBAIdC,KAbLI,EAAAA,EAAAA,IAAY,+CAAgDtT,MAErDkT,MAnBPI,EAAAA,EAAAA,IAAY,yDAA0DtT,MAE/D,MAGT,IAAIkT,CA0BL,G,4BCvDEK,E,sNASL,SAASC,EAAgBC,GACvB,MAAO,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,OAAOxC,MAAK,SAAA3O,GAAG,OAAImR,EAAS5M,SAASvE,EAAzE,GACR,CAED,SAASoR,EAAW9P,GAClB,MAAQ,0CAA0C+P,KAAK/P,IAAS,UAAU+P,KAAK/P,IAASA,EAAK0B,OAAS,CACvG,EAfD,SAAKiO,GACHA,EAAA,iBACAA,EAAA,gBACAA,EAAA,kBACAA,EAAA,iBACAA,EAAA,gBACAA,EAAA,gBANF,GAAKA,IAAAA,EAAQ,KAiBb,IAAMzP,GAAQ9E,EAAAA,EAAAA,GACZuO,EAAAA,EACAxL,EAAAA,EACA6R,EAAAA,EACAC,EAAAA,GAEA1U,OAAO,CACPC,KAAM,SAENC,MAAO,CACLkT,MAAOhT,QACPD,SAAUC,QACVuN,KAAMvN,QACNyN,MAAOzN,QACPyI,KAAM,CAACtB,OAAQ/E,QACfyK,IAAK,CACH9I,KAAM3B,OACNmS,UAAU,EACVvQ,QAAS,MAIb1D,SAAU,CACRkU,OAAM,WACJ,OAAO,CACR,EACDC,iBAAgB,WACd,OAAOzU,QACLS,KAAKiU,WAAW9P,OAASnE,KAAKiU,WAAW,UAE5C,GAGH3T,QAAS,CACP4T,QAAO,WACL,IAAIC,EAAW,GAGf,OAFInU,KAAKoU,OAAO7Q,UAAS4Q,EAAWnU,KAAKoU,OAAO7Q,QAAQ,GAAGiF,KAAMmK,SAE1D0B,EAAAA,EAAAA,IAAkBrU,KAAMmU,EAChC,EACDG,QAAO,WACL,IAAMC,EAAQ,CACZC,OAAQxU,KAAKwU,OACb5K,MAAO5J,KAAK4J,MACZmK,OAAQ/T,KAAK+T,OACbU,MAAOzU,KAAKyU,MACZC,OAAQ1U,KAAK0U,QAGTC,GAAe5E,EAAAA,EAAAA,IAAKwE,GAAOtF,MAAK,SAAAuC,GAAG,OAAI+C,EAAM/C,EAA9B,IAErB,OACGmD,GAAgBpB,EAASoB,KAAkBvH,EAAAA,EAAAA,IAAcpN,KAAKgI,KAElE,EAED4M,eAAc,WACZ,MAAO,CACLpT,YAAa,qBACbC,MAAO,CACL,mBAAoBzB,KAAKV,SACzB,eAAgBU,KAAK8M,KACrB,eAAgB9M,KAAKgU,iBACrB,gBAAiBhU,KAAKgN,MACtB,gBAAiBhN,KAAKuS,OAExB7Q,OAAK3B,EAAAA,EAAAA,GAAA,CACH,eAAgBC,KAAKgU,iBACrB1U,SAAUU,KAAKgU,kBAAoBhU,KAAKV,SACxCgE,KAAMtD,KAAKgU,iBAAmB,cAAWhN,GACtChH,KAAKsP,QAEVrL,GAAIjE,KAAKiU,WAEZ,EACDY,kBAAiB,WACf,IAAMC,EAAW9U,KAAKsU,UAChBS,GAAWhV,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACZC,KAAK4U,kBADU,IAElB7K,MAAO+K,EAAW,CAChBA,SAAAA,EACA5I,OAAQ4I,EACRE,MAAOF,QACL9N,IAIN,OAFAhH,KAAKiV,YAAYF,GAEVA,CACR,EACDE,YAAW,SAAExV,GACXA,EAAKgC,OAAL1B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAkBN,EAAKgC,OAAUzB,KAAKkV,cACtClV,KAAKmV,aAAanV,KAAK+C,MAAOtD,EAC/B,EACD2V,eAAc,SAAExR,EAAcrC,GAC5B,IAAM8T,EAA6B,GAC7B5V,EAAOO,KAAK4U,iBAEdnB,EAAW,iBAGT6B,EAAiB1R,EAAK2R,QAAQ,KAC9BC,EAAiBF,IAAmB,EAEtCE,EAEFH,EAAYpK,KAAKrH,IAEjB6P,EAAW7P,EAAKkI,MAAM,EAAGwJ,GACrB9B,EAAeC,KAAWA,EAAW,KAG3ChU,EAAKgC,MAAMgS,IAAY,EACvBhU,EAAKgC,MAAMmC,IAAS4R,EAEpB,IAAMV,EAAW9U,KAAKsU,UAKtB,OAJIQ,IAAUrV,EAAKsK,MAAQ,CAAE+K,SAAAA,IAE7B9U,KAAKiV,YAAYxV,GAEV8B,EAAEvB,KAAKgU,iBAAmB,SAAWhU,KAAKoM,IAAK3M,EAAM4V,EAC7D,EACDI,cAAa,SAAE7R,EAAcrC,GAC3B,IAAMmU,EAAqB,CACzBjU,MAAO,cACPC,MAAO,CACLiU,MAAO,6BACPC,QAAS,YACTC,KAAM,MACN,eAAe,IAIb7N,EAAOhI,KAAKsU,UASlB,OARItM,IACF0N,EAAQ3L,MAAQ,CACd+K,SAAU9M,EACVkE,OAAQlE,EACRgN,MAAOhN,IAIJzG,EAAEvB,KAAKgU,iBAAmB,SAAW,OAAQhU,KAAK6U,oBAAqB,CAC5EtT,EAAE,MAAOmU,EAAS,CAChBnU,EAAE,OAAQ,CACRG,MAAO,CACLoU,EAAGlS,QAKZ,EACDmS,uBAAsB,SACpBnS,EACArC,GAEA,IAAM9B,EAAkB,CACtBgC,MAAO,CACL,qBAAqB,IAInBuG,EAAOhI,KAAKsU,UACdtM,IACFvI,EAAKsK,MAAQ,CACX+K,SAAU9M,EACVkE,OAAQlE,EACRgN,MAAOhN,IAIXhI,KAAKiV,YAAYxV,GAEjB,IAAMuW,EAAYpS,EAAKoS,UAIvB,OAHAvW,EAAKJ,MAAQuE,EAAKvE,MAClBI,EAAKwW,SAAWxW,EAAKwE,GAEd1C,EAAEvB,KAAKgU,iBAAmB,SAAW,OAAQhU,KAAK6U,oBAAqB,CAC5EtT,EAAEyU,EAAWvW,IAEhB,GAGH6B,OAAM,SAAEC,GACN,IAAMqC,EAAO5D,KAAKkU,UAElB,MAAoB,kBAATtQ,EACL8P,EAAU9P,GACL5D,KAAKyV,cAAc7R,EAAMrC,GAE3BvB,KAAKoV,eAAexR,EAAMrC,GAG5BvB,KAAK+V,uBAAuBnS,EAAMrC,EAC1C,IAGH,IAAekP,EAAAA,GAAItR,OAAO,CACxBC,KAAM,SAEN8W,aAAcpS,EAEd4M,YAAY,EAEZpP,OAAM,SAAEC,EAAFuG,GAAuB,IAAhBrI,EAAFqI,EAAErI,KAAMoL,EAAA/C,EAAA+C,SACbsJ,EAAW,GAcf,OAXI1U,EAAK0K,WACPgK,EAAW1U,EAAK0K,SAASgM,aACvB1W,EAAK0K,SAASiM,WACdjC,SAIK1U,EAAK0K,SAASgM,mBACd1W,EAAK0K,SAASiM,WAGhB7U,EAAEuC,EAAOrE,EAAM0U,EAAW,CAACA,GAAYtJ,EAC/C,G,uCCzPH,IAAe/G,EAAf,C,wKC2BMuS,EAAiC,qBAAXC,QAA0B,yBAA0BA,OAGhF,KAAetX,EAAAA,EAAAA,GACbuX,EAAAA,EACA1C,EAAAA,GACA1U,OAAO,CACPC,KAAM,QAEN4D,WAAY,CAAEwT,UAAAA,EAAAA,GAEdnX,MAAO,CACLoX,IAAK9U,OACL+U,QAASnX,QACToX,MAAOpX,QACPqX,SAAUjV,OACVkV,QAASlV,OACToD,QAAS,CACPzB,KAAMG,OAGNF,QAAS,WAAF,MAAS,CACduT,UAAM9P,EACN+P,gBAAY/P,EACZgQ,eAAWhQ,EAHJ,GAMXiQ,SAAU,CACR3T,KAAM3B,OACN4B,QAAS,iBAEXgR,MAAO5S,OACPuV,IAAK,CACH5T,KAAM,CAAC3B,OAAQ8B,QACfF,QAAS,IAEX4T,OAAQxV,OACRyV,WAAY,CACV9T,KAAM,CAAC/D,QAASoC,QAChB4B,QAAS,oBAIb9D,KAAI,WACF,MAAO,CACL4X,WAAY,GACZC,MAAO,KACPC,WAAW,EACXC,2BAAuBxQ,EACvByQ,kBAAczQ,EACd0Q,UAAU,EAEb,EAED7X,SAAU,CACR8X,oBAAmB,WACjB,OAAOjR,OAAO1G,KAAK4X,cAAcC,QAAU7X,KAAKwX,sBACjD,EACDI,cAAa,WACX,OAAO5X,KAAKkX,KAA2B,YAApB/P,EAAAA,EAAAA,GAAOnH,KAAKkX,KAC3B,CACAA,IAAKlX,KAAKkX,IAAIA,IACdC,OAAQnX,KAAKmX,QAAUnX,KAAKkX,IAAIC,OAChCN,QAAS7W,KAAK6W,SAAW7W,KAAKkX,IAAIL,QAClCgB,OAAQnR,OAAO1G,KAAK8X,aAAe9X,KAAKkX,IAAIW,SAC1C,CACFX,IAAKlX,KAAKkX,IACVC,OAAQnX,KAAKmX,OACbN,QAAS7W,KAAK6W,QACdgB,OAAQnR,OAAO1G,KAAK8X,aAAe,GAExC,EACDC,cAAa,WACX,KAAM/X,KAAK4X,cAAcV,KAAOlX,KAAK4X,cAAcf,SAAW7W,KAAK4W,UAAW,MAAO,GAErF,IAAMoB,EAA4B,GAC5Bd,EAAMlX,KAAKuX,UAAYvX,KAAK4X,cAAcf,QAAU7W,KAAKqX,WAE3DrX,KAAK4W,UAAUoB,EAAgB/M,KAAhB,mBAAA/B,OAAwClJ,KAAK4W,SAAQ,MACpEM,GAAKc,EAAgB/M,KAAhB,QAAA/B,OAA6BgO,EAAG,OAEzC,IAAMI,EAAQtX,KAAK6D,eAAe,MAAO,CACvCrC,YAAa,iBACbC,MAAO,CACL,0BAA2BzB,KAAKuX,UAChC,0BAA2BvX,KAAK0W,QAChC,yBAA0B1W,KAAK0W,SAEjC3M,MAAO,CACLiO,gBAAiBA,EAAgBpF,KAAK,MACtCqF,mBAAoBjY,KAAKiX,UAE3BzF,KAAMxR,KAAKuX,YAIb,OAAKvX,KAAKoX,WAEHpX,KAAK6D,eAAe,aAAc,CACvCnC,MAAO,CACLtC,KAAMY,KAAKoX,WACXc,KAAM,WAEP,CAACZ,IAPyBA,CAQ9B,GAGHnV,MAAO,CACL+U,IAAG,WAEIlX,KAAKuX,UACLvX,KAAKmY,YADWnY,KAAKoY,UAAKpR,OAAWA,GAAW,EAEtD,EACD,4BAA6B,UAG/BqR,QAAO,WACLrY,KAAKoY,MACN,EAED9X,QAAS,CACP8X,KAAI,SACFE,EACAC,EACAC,GAKA,IACEnC,GACCmC,GACAxY,KAAK2W,MAHR,CAMA,GAAI3W,KAAK4X,cAAcf,QAAS,CAC9B,IAAM4B,EAAU,IAAIC,MACpBD,EAAQvB,IAAMlX,KAAK4X,cAAcf,QACjC7W,KAAK2Y,YAAYF,EAAS,KAC3B,CAEGzY,KAAK4X,cAAcV,KAAKlX,KAAKmY,WARzB,CAST,EACDS,OAAM,WACJ5Y,KAAK6Y,SACL7Y,KAAKuX,WAAY,EACjBvX,KAAKkB,MAAM,OAAQlB,KAAKkX,KAGtBlX,KAAKsX,QACJtX,KAAK4X,cAAcV,IAAI4B,SAAS,SAAW9Y,KAAK4X,cAAcV,IAAIhG,WAAW,yBAE1ElR,KAAKsX,MAAMyB,eAAiB/Y,KAAKsX,MAAMG,cACzCzX,KAAKyX,aAAezX,KAAKsX,MAAMG,aAC/BzX,KAAKwX,sBAAwBxX,KAAKsX,MAAMG,aAAezX,KAAKsX,MAAMyB,eAElE/Y,KAAKwX,sBAAwB,EAGlC,EACDwB,QAAO,WACLhZ,KAAK0X,UAAW,EAChB1X,KAAKkB,MAAM,QAASlB,KAAKkX,IAC1B,EACD2B,OAAM,WAEA7Y,KAAKsX,QAAOtX,KAAKqX,WAAarX,KAAKsX,MAAMD,YAAcrX,KAAKsX,MAAMJ,IACvE,EACDiB,UAAS,eAAA/W,EAAA,KACDkW,EAAQ,IAAIoB,MAClB1Y,KAAKsX,MAAQA,EAEbA,EAAM2B,OAAS,WAET3B,EAAM4B,OACR5B,EAAM4B,SAASC,OAAO,SAAAC,IACpB9F,EAAAA,EAAAA,IACE,8DAAApK,OACQ9H,EAAKwW,cAAcV,MAC1BkC,EAAIC,QAAJ,qBAAAnQ,OAAmCkQ,EAAIC,SAAY,IACpDjY,EAEH,IAAEkY,KAAKlY,EAAKwX,QAEbxX,EAAKwX,QAER,EACDtB,EAAMiC,QAAUvZ,KAAKgZ,QAErBhZ,KAAK0X,UAAW,EAChB1X,KAAKuU,QAAU+C,EAAM/C,MAAQvU,KAAKuU,OAClCvU,KAAK4X,cAAcT,SAAWG,EAAMH,OAASnX,KAAK4X,cAAcT,QAChEG,EAAMJ,IAAMlX,KAAK4X,cAAcV,IAC/BlX,KAAKkB,MAAM,YAAalB,KAAK4X,cAAcV,KAE3ClX,KAAK8X,aAAe9X,KAAK2Y,YAAYrB,GACrCtX,KAAK6Y,QACN,EACDF,YAAW,SAAEa,GAAmD,IAAA7W,EAAA,KAA5B8W,EAAAC,UAAApU,OAAA,QAAA0B,IAAA0S,UAAA,GAAAA,UAAA,GAAyB,IACrDC,EAAO,WACX,IAAQZ,EAAgCS,EAAhCT,cAAetB,EAAiB+B,EAAjB/B,aAEnBsB,GAAiBtB,GACnB9U,EAAK8U,aAAeA,EACpB9U,EAAK6U,sBAAwBC,EAAesB,GAClCS,EAAII,WAAYjX,EAAK4U,WAAc5U,EAAK+U,UAAuB,MAAX+B,GAC9D7K,WAAW+K,EAAMF,EAEpB,EAEDE,GACD,EACDE,WAAU,WACR,IAAMna,EAAiB6W,EAAAA,EAAYxR,QAAQzE,QAAQuZ,WAAW7U,KAAKhF,MAOnE,OANIA,KAAKyX,cACPzX,KAAK8Z,GAAGpa,EAAQD,KAAO,MAAO,CAC5BsK,MAAO,CAAEiL,MAAO,GAAF9L,OAAKlJ,KAAKyX,aAAY,SAIjC/X,CACR,EACDqa,iBAAgB,WACd,IAAMC,GAAOpY,EAAAA,EAAAA,IAAQ5B,KAAM,eAC3B,GAAIga,EAAM,CACR,IAAMzT,EAAcvG,KAAKuX,UACrB,CAACvX,KAAK6D,eAAe,MAAO,CAC5BrC,YAAa,wBACZwY,IACD,GAEJ,OAAKha,KAAKoX,WAEHpX,KAAK6D,eAAe,aAAc,CACvCxE,MAAO,CACL4a,QAAQ,EACR7a,KAAMY,KAAKoX,aAEZ7Q,GAP0BA,EAAY,EAQ1C,CACF,GAGHjF,OAAM,SAAEC,GACN,IAAM6J,EAAOmL,EAAAA,EAAYxR,QAAQzD,OAAO0D,KAAKhF,KAAMuB,GAE7C9B,GAAO2R,EAAAA,EAAAA,IAAUhG,EAAK3L,KAAO,CACjC+B,YAAa,UACbE,MAAO,CACL,aAAc1B,KAAKyW,IACnBZ,KAAM7V,KAAKyW,IAAM,WAAQzP,GAE3BvF,MAAOzB,KAAKkV,aAGZlS,WAAYqT,EACR,CAAC,CACDjX,KAAM,YACN8a,UAAW,CAAEC,MAAM,GACnBlX,MAAO,CACLZ,QAASrC,KAAKoY,KACdrT,QAAS/E,KAAK+E,gBAGhBiC,IAUN,OAPAoE,EAAKP,SAAW,CACd7K,KAAKoa,cACLpa,KAAK+X,cACL/X,KAAK+Z,mBACL/Z,KAAK6Z,cAGAtY,EAAE6J,EAAKgB,IAAK3M,EAAM2L,EAAKP,SAC/B,G,6OCjSH,GAAe7L,EAAAA,EAAAA,GAAO+C,EAAAA,EAAW8R,EAAAA,GAAW1U,OAAO,CACjDC,KAAM,aAENC,MAAO,CACL4D,MAAO,CACLK,KAAM8B,MACN7B,QAAS,WAAF,MAAS,MAIpBjD,QAAS,CACP+Z,YAAW,WACT,OAAOra,KAAK6D,eAAe,mBAAoB,CAC7CrC,YAAa,sBACbE,MAAO,CACLtC,KAAM,qBACNgN,IAAK,QAENpM,KAAKiD,MAAM2F,IAAI5I,KAAKsa,YACxB,EACDA,WAAU,SAAEjB,EAAiB7H,GAC3B,OAAOxR,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,sBACbgQ,IAAAA,IACC5P,EAAAA,EAAAA,IAAQ5B,KAAM,UAAW,CAAEqZ,QAAAA,EAAS7H,IAAAA,KAAU,CAAC6H,GACnD,GAGH/X,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAOvB,KAAKmV,aAAanV,KAAK+C,MAAO,CAC5CvB,YAAa,aACbC,MAAOzB,KAAKkV,eACV,CAAClV,KAAKqa,eACX,IC9CH,I,iCCsBMxY,GAAa7C,EAAAA,EAAAA,GACjBuO,EAAAA,EACAgN,EAAAA,GASF,EAAe1Y,EAAW1C,SAAkBA,OAAO,CACjDC,KAAM,UAENqO,cAAc,EAEdpO,MAAO,CACLmb,WAAY7Y,OACZ8Y,gBAAiB,CACfnX,KAAM3B,OACN4B,QAAS,IAEXgP,MAAOhT,QACP2M,OAAQ,CAACxF,OAAQ/E,QACjB+Y,YAAa,CAACnb,QAASoC,QACvBgZ,gBAAiBpb,QACjBqb,KAAMjZ,OACN2P,GAAI3P,OACJkZ,MAAOlZ,OACPmZ,QAASvb,QACTwb,eAAgBxb,QAChBiH,YAAa7E,OACbsB,MAAO,MAGTxD,KAAI,WACF,MAAO,CACL6H,UAAWtH,KAAKiD,MAChB+X,cAAc,EAEjB,EAEDnb,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,GAAA,CACE,qBAAsBC,KAAKib,SAC3B,yBAA0Bjb,KAAKkb,YAC/B,2BAA4Blb,KAAKuI,cACjC,oBAAqBvI,KAAKsI,QAC1B,uBAAwBtI,KAAKE,WAC7B,sBAAuBF,KAAK0I,UAE5B,uBAAwC,IAAjB1I,KAAK8a,SAAqC,MAAhB9a,KAAK8a,QACtD,uBAAwB9a,KAAKK,WAC7B,iBAAkBL,KAAKuS,MACvB,6BAA8BvS,KAAK2a,iBAChC3a,KAAKkV,aAEX,EACDiG,WAAU,WACR,OAAOnb,KAAKsR,IAAL,SAAApI,OAAoBlJ,KAAKqO,KACjC,EACD+M,WAAU,WACR,OAAOpb,KAAKqb,kBAAkB/V,OAAS,CACxC,EACDgW,QAAO,WACL,OAAQtb,KAAKub,eACTvb,KAAK4a,OACN5a,KAAK+a,gBAAkB/a,KAAK0I,UAChC,EACDC,SAAQ,WACN,SAAU3I,KAAKoU,OAAOyG,QAAS7a,KAAK6a,MACrC,EAKD1S,cAAe,CACbC,IAAG,WACD,OAAOpI,KAAKsH,SACb,EACDe,IAAG,SAAE/F,GACHtC,KAAKsH,UAAYhF,EACjBtC,KAAKkB,MAAMlB,KAAKwb,aAAclZ,EAC/B,GAEHgG,QAAO,WACL,QAAStI,KAAKsH,SACf,EACDiB,cAAa,WACX,OAAOvI,KAAKsI,OACb,EACD+S,kBAAiB,eAAAja,EAAA,KACf,OAAIpB,KAAKsb,QAAgB,CAACtb,KAAK4a,MAE1B5a,KAAKub,YAEHvb,KAAKyb,YAAY7S,KAAK,SAAA8S,GAC3B,GAA0B,kBAAfA,EAAyB,OAAOA,EAE3C,IAAMC,EAAmBD,EAAWta,EAAK+G,eAEzC,MAAmC,kBAArBwT,EAAgCA,EAAmB,EAClE,IAAElN,QAAO,SAAA4K,GAAO,MAAgB,KAAZA,CANd,IAFuB,EAS/B,EACD6B,YAAW,WACT,OAA4B,IAArBlb,KAAK0a,aAA+C,SAArB1a,KAAK0a,aAA0B1a,KAAKob,UAC3E,GAGHjZ,MAAO,CACLc,MAAK,SAAEX,GACLtC,KAAKsH,UAAYhF,CAClB,GAGHsZ,aAAY,WAGV5b,KAAKwb,aAAgBxb,KAAK6b,SAAS/V,OAAS9F,KAAK6b,SAAS/V,MAAME,OAAU,OAC3E,EAED1F,QAAS,CACPuZ,WAAU,WACR,MAAO,CACL7Z,KAAKuK,iBACLvK,KAAK8J,aACL9J,KAAK8b,gBAER,EACDhS,WAAU,WACR,OAAO9J,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,mBACbE,MAAO,CAAEqa,MAAO/b,KAAKsP,OAAOyM,QAC3B,CACD/b,KAAKgc,eACLhc,KAAKic,eAER,EACDC,eAAc,WACZ,MAAO,CACLlc,KAAKmc,YACLva,EAAAA,EAAAA,IAAQ5B,MAEX,EACD2D,QAAO,SACLL,EACA8Y,GACyB,I,EAAAzZ,EAAA,KAAzB0Z,EAAA3C,UAAApU,OAAA,QAAA0B,IAAA0S,UAAA,GAAAA,UAAA,GAAuB,CAAC,EAElB9V,EAAQ5D,KAAA,GAAAkJ,OAAgB5F,EAAI,SAC5BgZ,EAAY,SAAHpT,QAAYqT,EAAAA,EAAAA,IAAUjZ,IAC/BkZ,KAAiBxc,KAAKiU,WAAWqI,KAAcF,GAE/CK,EAAY,CAChBC,QAAS,gBACTC,aAAc,gBACdC,OAAQ,eACRC,YAAa,eACbC,MAAO,SACPxZ,GACIuX,EAAQ2B,GAAeC,EACzBzc,KAAKwH,SAASC,KAAKC,EAAnB,kBAAAwB,OAAuCuT,GAAuB,QAAVM,EAAA/c,KAAK6a,aAAK,IAAAkC,EAAAA,EAAI,SAClE/V,EAEEvH,GAAO2R,EAAAA,EAAAA,IAAU,CACrB1P,MAAO,CACL,aAAcmZ,EACd9X,MAAO/C,KAAKgd,gBACZC,KAAMjd,KAAKid,KACX3d,SAAUU,KAAKE,WACfgd,MAAOld,KAAKkd,MACZlZ,SAAmB,UAATV,GAAoB,OAAI0D,GAEpC/C,GAAKuY,EAED,CACArY,MAAQ,SAAArD,GACNA,EAAEqc,iBACFrc,EAAEsc,kBAEFza,EAAKzB,MAAMob,EAAWxb,GACtBsb,GAAMA,EAAGtb,EACV,EAGDuD,QAAU,SAAAvD,GACRA,EAAEqc,iBACFrc,EAAEsc,iBACH,QAdDpW,GAgBHqV,GAEH,OAAOrc,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,gBACbC,MAAO6B,EAAO,kBAAH4F,QAAqBqT,EAAAA,EAAAA,IAAUjZ,SAAU0D,GACnD,CACDhH,KAAK6D,eACHC,EAAAA,EACArE,EACAmE,IAGL,EACDoY,aAAY,WACV,OAAOhc,KAAK6D,eAAe,MAAO7D,KAAK8C,mBAAmB9C,KAAKya,gBAAiB,CAC9EjZ,YAAa,gBACbuI,MAAO,CAAEmC,QAAQkB,EAAAA,EAAAA,IAAcpN,KAAKkM,SACpCjI,GAAI,CACFE,MAAOnE,KAAKY,QACZwD,UAAWpE,KAAKqd,YAChBhZ,QAASrE,KAAKsd,WAEhBC,IAAK,eACH,CAACvd,KAAKkc,kBACX,EACDC,SAAQ,WACN,OAAKnc,KAAK2I,SAEH3I,KAAK6D,eAAe2Z,EAAAA,EAAQ,CACjCne,MAAO,CACL0D,MAAO/C,KAAKgd,gBACZC,KAAMjd,KAAKid,KACX3d,SAAUU,KAAKE,WACfud,QAASzd,KAAKib,SACdyC,IAAK1d,KAAKmb,WACV+B,MAAOld,KAAKkd,SAEbtb,EAAAA,EAAAA,IAAQ5B,KAAM,UAAYA,KAAK6a,OAXP,IAY5B,EACDoB,YAAW,eAAAzR,EAAA,KACT,OAAKxK,KAAKkb,YAEHlb,KAAK6D,eAAe8Z,EAAW,CACpCte,MAAO,CACL0D,MAAO/C,KAAKsb,QAAU,GAAKtb,KAAKgd,gBAChCC,KAAMjd,KAAKid,KACXC,MAAOld,KAAKkd,MACZja,MAAOjD,KAAKqb,mBAEd3Z,MAAO,CACLmU,KAAM7V,KAAKub,YAAc,QAAU,MAErCqC,YAAa,CACXra,QAAS,SAAAlE,GAAK,OAAIuC,EAAAA,EAAAA,IAAQ4I,EAAM,UAAWnL,EAAlB,KAbC,IAgB/B,EACDoL,QAAO,SACLnH,EACAua,EACA7D,GAEA,IAAKA,EAAK1U,OAAQ,OAAO,KAEzB,IAAMiY,EAAM,GAAHrU,OAAM5F,EAAI,KAAA4F,OAAI2U,GAEvB,OAAO7d,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,YAAF0H,OAAcqU,GACzBA,IAAAA,GACCvD,EACJ,EACDzP,eAAc,WACZ,IAAMyP,EAAO,GAQb,OANIha,KAAKoU,OAAOsI,QACd1C,EAAK/O,KAAKjL,KAAKoU,OAAOsI,SACb1c,KAAKwG,aACdwT,EAAK/O,KAAKjL,KAAK2D,QAAQ,YAGlB3D,KAAKyK,QAAQ,UAAW,QAASuP,EACzC,EACD8B,cAAa,WACX,IAAM9B,EAAO,GAYb,OANIha,KAAKoU,OAAOwI,OACd5C,EAAK/O,KAAKjL,KAAKoU,OAAOwI,QACb5c,KAAKwa,YACdR,EAAK/O,KAAKjL,KAAK2D,QAAQ,WAGlB3D,KAAKyK,QAAQ,SAAU,QAASuP,EACxC,EACDpZ,QAAO,SAAEE,GACPd,KAAKkB,MAAM,QAASJ,EACrB,EACDuc,YAAW,SAAEvc,GACXd,KAAKgb,cAAe,EACpBhb,KAAKkB,MAAM,YAAaJ,EACzB,EACDwc,UAAS,SAAExc,GACTd,KAAKgb,cAAe,EACpBhb,KAAKkB,MAAM,UAAWJ,EACvB,GAGHQ,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAOvB,KAAKmV,aAAanV,KAAKgd,gBAAiB,CACtDxb,YAAa,UACbC,MAAOzB,KAAKF,UACVE,KAAK6Z,aACV,ICxUH,G,6QCoBavV,GAAgBtF,EAAAA,EAAAA,GAC3B8e,EAAAA,EACAC,EAAAA,EACAlK,EAAAA,GACA1U,OAAO,CACPC,KAAM,kBAENC,MAAO,CACL2e,YAAa,CACX1a,KAAM3B,OACN4B,QAAS,kBAEX0a,UAAW1e,QACX2e,IAAK,CACH5a,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,MAEX+C,SAAU/G,QACV6M,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,QAIb9D,KAAI,WACF,MAAO,CAIL0e,uBAAkCnX,IAAfhH,KAAKiD,MACpBjD,KAAKiD,MACLjD,KAAKsG,SAAW,QAAKU,EACzBoX,MAAO,GAEV,EAEDve,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,GAAA,CACE,gBAAgB,GACbC,KAAKkV,aAEX,EACDmJ,cAAa,WACX,OAAQre,KAAKse,cAAgBte,KAAKoe,MAAM7I,QAAQvV,KAAKse,gBAAmB,CACzE,EACDA,aAAY,WACV,IAAIte,KAAKsG,SAET,OAAOtG,KAAKue,cAAc,EAC3B,EACDA,cAAa,eAAAnd,EAAA,KACX,OAAOpB,KAAKoe,MAAM3P,QAAO,SAACjJ,EAAMC,GAC9B,OAAOrE,EAAKwE,aAAaxE,EAAKsE,SAASF,EAAMC,GAC9C,GACF,EACD+Y,eAAc,WACZ,OAA0B,MAAtBxe,KAAKmI,cAA8B,GAEhC/C,MAAMC,QAAQrF,KAAKmI,eACtBnI,KAAKmI,cACL,CAACnI,KAAKmI,cACX,EACDvC,aAAY,eAAAjD,EAAA,KACV,IAAK3C,KAAKsG,SACR,OAAQ,SAAAM,GAAD,OAAYjE,EAAK8b,gBAAgB9b,EAAKwF,cAAevB,EAA5D,EAGF,IAAMuB,EAAgBnI,KAAKmI,cAC3B,OAAI/C,MAAMC,QAAQ8C,GACR,SAAAvB,GAAD,OAAYuB,EAAc8I,MAAK,SAAAyN,GAAM,OAAI/b,EAAK8b,gBAAgBC,EAAQ9X,EAA1D,GAAnB,EAGK,kBAAM,CAAb,CACD,GAGHzE,MAAO,CACLgG,cAAe,mBACfiW,MAAO,oBAGT3b,QAAO,WACDzC,KAAKsG,WAAalB,MAAMC,QAAQrF,KAAKmI,iBACvCmL,EAAAA,EAAAA,IAAY,oEAAqEtT,KAEpF,EAEDM,QAAS,CAEPqe,QAAO,WACL,MAAO,CACLld,MAAOzB,KAAKF,QAEf,EACD4F,SAAQ,SAAEF,EAAyB0J,GACjC,YAAsBlI,IAAfxB,EAAKvC,MACRiM,EACA1J,EAAKvC,KACV,EACDrC,QAAO,SAAE4E,GACPxF,KAAK4e,oBACH5e,KAAK0F,SAASF,EAAMxF,KAAKoe,MAAM7I,QAAQ/P,IAE1C,EACDsJ,SAAQ,SAAEtJ,GAAuB,IAAAgF,EAAA,KACzB/E,EAAQzF,KAAKoe,MAAMnT,KAAKzF,GAAQ,EAEtCA,EAAK7E,IAAI,UAAU,kBAAM6J,EAAK5J,QAAQ4E,EAAtC,IAIIxF,KAAKie,YAAcje,KAAKwe,eAAelZ,QACzCtF,KAAK6e,kBAGP7e,KAAKuF,WAAWC,EAAMC,EACvB,EACDsJ,WAAU,SAAEvJ,GACV,IAAIxF,KAAK8e,aAAT,CAEA,IAAMrZ,EAAQzF,KAAKoe,MAAM7I,QAAQ/P,GAC3BvC,EAAQjD,KAAK0F,SAASF,EAAMC,GAElCzF,KAAKoe,MAAMvU,OAAOpE,EAAO,GAEzB,IAAMsZ,EAAa/e,KAAKwe,eAAejJ,QAAQtS,GAG/C,KAAI8b,EAAa,GAAjB,CAGA,IAAK/e,KAAKie,UACR,OAAOje,KAAK4e,oBAAoB3b,GAI9BjD,KAAKsG,UAAYlB,MAAMC,QAAQrF,KAAKmI,eACtCnI,KAAKmI,cAAgBnI,KAAKmI,cAAcsG,QAAO,SAAA7H,GAAC,OAAIA,IAAM3D,CAArC,IAErBjD,KAAKmI,mBAAgBnB,EAMlBhH,KAAKue,cAAcjZ,QACtBtF,KAAK6e,iBAAgB,EAlBG,CAVG,CA8B9B,EACDtZ,WAAU,SAAEC,EAAyBC,GACnC,IAAMxC,EAAQjD,KAAK0F,SAASF,EAAMC,GAElCD,EAAKvF,SAAWD,KAAK4F,aAAa3C,EACnC,EAED+b,iBAAgB,eAAApU,EAAA,KACd5K,KAAKqB,WAAU,WACb,GAAIuJ,EAAKqT,YACNrT,EAAK2T,cAAcjZ,OAEpB,OAAOsF,EAAKiU,kBAMdjU,EAAKwT,MAAMpT,QAAQJ,EAAKrF,WACzB,GACF,EACDqZ,oBAAmB,SAAE3b,GACnBjD,KAAKsG,SACDtG,KAAKif,eAAehc,GACpBjD,KAAKkf,aAAajc,EACvB,EACD4b,gBAAe,SAAEM,GACf,GAAKnf,KAAKoe,MAAM9Y,OAAhB,CAEA,IAAM8Y,EAAQpe,KAAKoe,MAAMtS,QAErBqT,GAAMf,EAAMgB,UAEhB,IAAM5Z,EAAO4Y,EAAMnP,MAAK,SAAAzJ,GAAI,OAAKA,EAAKlG,QAAzB,IAIb,GAAKkG,EAAL,CAEA,IAAMC,EAAQzF,KAAKoe,MAAM7I,QAAQ/P,GAEjCxF,KAAK4e,oBACH5e,KAAK0F,SAASF,EAAMC,GALL,CAVa,CAiB/B,EACDwZ,eAAc,SAAEhc,GAAU,IAAAkI,EAAA,KAClBkU,EAAeja,MAAMC,QAAQrF,KAAKmI,eACpCnI,KAAKmI,cACL,GACEA,EAAgBkX,EAAavT,QAC7BrG,EAAQ0C,EAAcmX,WAAU,SAAAhd,GAAG,OAAI6I,EAAKsT,gBAAgBnc,EAAKW,EAAzD,IAGZjD,KAAKie,WAELxY,GAAS,GAET0C,EAAc7C,OAAS,EAAI,GAKf,MAAZtF,KAAKke,KAELzY,EAAQ,GAER0C,EAAc7C,OAAS,EAAItF,KAAKke,MAGlCzY,GAAS,EACL0C,EAAc0B,OAAOpE,EAAO,GAC5B0C,EAAc8C,KAAKhI,GAEvBjD,KAAKmI,cAAgBA,EACtB,EACD+W,aAAY,SAAEjc,GACZ,IAAMsc,EAASvf,KAAKye,gBAAgBze,KAAKmI,cAAelF,GAEpDjD,KAAKie,WAAasB,IAEtBvf,KAAKmI,cAAgBoX,OAASvY,EAAY/D,EAC3C,GAGH3B,OAAM,SAAEC,GACN,OAAOA,EAAEvB,KAAKoM,IAAKpM,KAAK2e,WAAW/c,EAAAA,EAAAA,IAAQ5B,MAC5C,IAGYsE,EAAcnF,OAAO,CAClCC,KAAM,eAENmF,QAAO,WACL,MAAO,CACLib,UAAWxf,KAEd,G,gJC5PH,GAAehB,EAAAA,EAAAA,GAAO6U,EAAAA,GAAW1U,OAAO,CACtCC,KAAM,UAENsR,YAAY,EAEZrR,MAAO,CACLiN,SAAU/M,QACVwD,MAAO,CACLO,KAAM3B,OACN4B,QAAS,WAEXjE,SAAUC,QACVke,QAASle,QACTme,IAAK/b,OACLmL,KAAM,CACJxJ,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,GAEXyJ,MAAO,CACL1J,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,QAEXN,MAAO1D,SAGT+B,OAAM,SAAEC,EAAGke,GACT,IAAQ5U,EAAqC4U,EAArC5U,SAAU6U,EAA2BD,EAA3BC,UAAWrgB,EAAgBogB,EAAhBpgB,MAAOI,EAASggB,EAAThgB,KAC9BkgB,GAAUvO,EAAAA,EAAAA,IAAU,CACxB5P,YAAa,UACbC,OAAK1B,EAAAA,EAAAA,GAAA,CACH,kBAAmBV,EAAM4D,MACzB,uBAAwB5D,EAAMC,WAC3BsgB,EAAAA,EAAAA,GAAuBH,IAE5B/d,MAAO,CACLgc,IAAKre,EAAMqe,IACX,eAAgBre,EAAMqe,KAExBzZ,GAAIyb,EACJ3V,MAAO,CACL+C,MAAMM,EAAAA,EAAAA,IAAc/N,EAAMyN,MAC1BE,OAAOI,EAAAA,EAAAA,IAAc/N,EAAM2N,OAC3BiK,SAAU5X,EAAMiN,SAAW,WAAa,YAE1CiR,IAAK,SACJ9d,GAEH,OAAO8B,EAAE,QAASQ,EAAAA,EAAUgD,QAAQzE,QAAQ6U,aAAa9V,EAAMoe,SAAWpe,EAAM0D,MAAO4c,GAAU9U,EAClG,IC7DH,G,8HCgBA,IAAekB,EAAAA,EAAO5M,SAAkBA,OAAO,CAC7CC,KAAM,SAENmF,QAAO,WACL,MAAO,CACLsb,UAAU,EACVC,KAAM9f,KAET,EAED+f,OAAQ,CACNC,SAAU,CACRzc,SAAS,GAEX0c,QAAS,CACP1c,SAAS,IAIblE,MAAO,CACLkT,MAAOhT,QACPD,SAAUC,QACV2gB,OAAQ3gB,QACRkF,KAAMlF,QACN4gB,IAAK5gB,QACL6gB,QAAS7gB,QACT8gB,UAAW9gB,QACX+gB,UAAW/gB,QACXghB,QAAShhB,SAGXE,KAAM,WAAF,MAAS,CACX+gB,OAAQ,GADJ,EAIN3gB,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKgM,EAAAA,EAAOhH,QAAQlF,SAASC,QAAQkF,KAAKhF,OADnC,IAEL,gBAAiBA,KAAKuS,MACtB,mBAAoBvS,KAAKV,SACzB,eAAgBU,KAAKyE,KACrB,cAAezE,KAAKmgB,IACpB,kBAAmBngB,KAAKogB,QACxB,oBAAqBpgB,KAAKqgB,UAC1B,mBAAoBrgB,KAAKugB,QACzB,qBAAsBvgB,KAAKsgB,WAE9B,GAGHhgB,QAAS,CACPwO,SAAQ,SAAEpP,GACRM,KAAKwgB,OAAOvV,KAAKvL,EAClB,EACDqP,WAAU,SAAErP,GACV,IAAM+F,EAAQzF,KAAKwgB,OAAOlB,WAAU,SAAAmB,GAAC,OAAIA,EAAEpS,OAAS3O,EAAQ2O,IAA9C,IAEV5I,GAAS,GAAGzF,KAAKwgB,OAAO3W,OAAOpE,EAAO,EAC3C,EACDib,UAAS,SAAEC,GACT,IAAI3gB,KAAKkgB,OAAT,CAAiB,IAEjBU,EAFiBC,GAAAC,EAAAA,EAAAA,GAEG9gB,KAAKwgB,QAAzB,QAAAK,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAiC,KAAtBC,EAAXN,EAAA3d,MACEie,EAAM/f,OAAOwf,EACd,QAAAvH,GAAAyH,EAAA/f,EAAAsY,EAAA,SAAAyH,EAAAM,GAAA,CAJsB,CAKxB,GAGH7f,OAAM,SAAEC,GACN,IAAM9B,EAAO,CACX+B,YAAa,SACbC,MAAOzB,KAAKF,QACZiK,MAAO/J,KAAKiN,OACZvL,OAAK3B,EAAAA,EAAAA,GAAA,CACH8V,KAAM7V,KAAKigB,SAAWjgB,KAAKggB,cAAWhZ,EAAY,QAC/ChH,KAAKsP,QAEVrL,GAAIjE,KAAKiU,YAGX,OAAO1S,EAAEvB,KAAKoM,IAAKpM,KAAK8C,mBAAmB9C,KAAK+C,MAAOtD,IAAOmC,EAAAA,EAAAA,IAAQ5B,MACvE,G,sPCvEG6B,GAAa7C,EAAAA,EAAAA,GACjBuO,EAAAA,EACAzL,EAAAA,EACAC,EAAAA,GACAC,EAAAA,EAAAA,GAAkB,QAClB8Q,EAAAA,GAaF,IAAejR,EAAW1C,SAAkBA,OAAO,CACjDC,KAAM,eAEN4D,WAAY,CAAEG,OAAAA,EAAAA,GAEd9D,MAAO,CACL2e,YAAa,CACX1a,KAAM3B,OACN4B,QAAS,IAEXiX,WAAY,CACVlX,KAAM3B,OACN4B,QAAS,WAEXR,MAAO,CACLO,KAAM3B,OACN4B,QAAS,WAEXjE,SAAUC,QACV2hB,MAAO,CAACvf,OAAQyf,QAChBC,SAAU9hB,QACViH,YAAa7E,OACbwB,OAAQ,CACNG,KAAM,CAAC/D,QAASkE,QAChBF,SAAS,GAEX+d,SAAU/hB,SAGZM,SAAU,CACRC,QAAO,WACL,MAAO,CACL,uBAAwBE,KAAKC,SAC7B,yBAA0BD,KAAKV,SAC/B,0BAA2BU,KAAKqhB,SAChC,0BAA2BrhB,KAAKshB,SAEnC,GAGHnf,MAAO,CACLlC,SAAQ,SAAEqC,IAEHtC,KAAKshB,UAAYhf,GACpBtC,KAAK8f,MAAQ9f,KAAK8f,KAAKY,UAAU1gB,KAAKqO,KAEzC,EACDkT,OAAQ,iBAGV9e,QAAO,WACLzC,KAAK8f,MAAQ9f,KAAK8f,KAAKhR,SAAS9O,MAE5BA,KAAKkhB,OACPlhB,KAAKuhB,QACS,MAAdvhB,KAAKiD,QAELjD,KAAKC,SAAWD,KAAKwhB,WAAWxhB,KAAKuhB,OAAOE,MAE/C,EAED/e,cAAa,WACX1C,KAAK8f,MAAQ9f,KAAK8f,KAAK/Q,WAAW/O,KACnC,EAEDM,QAAS,CACP6D,MAAK,SAAErD,GAAQ,IAAAM,EAAA,KACTpB,KAAKV,WAETU,KAAKwC,UAAW,EAEhBxC,KAAKkB,MAAM,QAASJ,GACpBd,KAAKqB,WAAU,kBAAOD,EAAKnB,UAAYmB,EAAKnB,QAA5C,IACD,EACD0D,QAAO,SAAEC,GACP,OAAO5D,KAAK6D,eAAeC,EAAAA,EAAOF,EACnC,EACD8d,cAAa,WACX,IAAM9d,GAAQ5D,KAAKshB,UAAWthB,KAAKwa,WAC7BR,GAAOpY,EAAAA,EAAAA,IAAQ5B,KAAM,cAE3B,OAAK4D,GAASoW,EAEPha,KAAK6D,eAAe8d,EAAAA,EAAe,CACxCngB,YAAa,qCACZ,CACDwY,GAAQha,KAAK2D,QAAQC,KALI,IAO5B,EACDge,UAAS,WACP,OAAO5hB,KAAK6D,eAAege,EAAAA,EAAW,CACpCrgB,YAAa,uBACbE,MAAO,CACL,gBAAiBC,OAAO3B,KAAKC,UAC7B4V,KAAM,UAERpU,OAAK0P,EAAAA,EAAAA,GAAA,GACFnR,KAAKge,YAAche,KAAKC,UAE3BZ,MAAO,CACLyiB,WAAY9hB,KAAKC,UAEnB+C,WAAY,CAAC,CACX5D,KAAM,SACN6D,MAAOjD,KAAKmD,SAEdc,IAAElE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACGC,KAAKiU,YADN,IAEF9P,MAAOnE,KAAKmE,SAEb,CACDnE,KAAK+hB,kBACLngB,EAAAA,EAAAA,IAAQ5B,KAAM,aACdA,KAAK0hB,iBAER,EACDM,SAAQ,eAAArf,EAAA,KACN,OAAO3C,KAAK6C,iBAAgB,iBAAM,CAChCF,EAAKkB,eAAe,MAAO,CACzBrC,YAAa,sBACbwB,WAAY,CAAC,CACX5D,KAAM,OACN6D,MAAON,EAAK1C,aAEb2B,EAAAA,EAAAA,IAAQe,IAPN,GASR,EACDof,eAAc,WACZ,IAAMne,EAAO5D,KAAKshB,UAAgC,MAApBthB,KAAKwG,YAC/B,YACAxG,KAAKwG,YACHwT,GAAOpY,EAAAA,EAAAA,IAAQ5B,KAAM,eAE3B,OAAK4D,GAASoW,EAEPha,KAAK6D,eAAe8d,EAAAA,EAAe,CACxCngB,YAAa,sCACZ,CACDwY,GAAQha,KAAK2D,QAAQC,KALI,IAO5B,EACDqe,cAAa,SAAEC,GAEb,GAAKliB,KAAKkhB,MAAV,CAEA,IAAMjhB,EAAWD,KAAKwhB,WAAWU,EAAGT,MAGhCxhB,GAAYD,KAAKC,WAAaA,GAChCD,KAAK8f,MAAQ9f,KAAK8f,KAAKY,UAAU1gB,KAAKqO,MAGxCrO,KAAKC,SAAWA,CATO,CAUxB,EACDkB,OAAM,SAAEwf,GAAW,IAAAnW,EAAA,KACXvK,EAAWD,KAAKqO,OAASsS,EAE3B1gB,IAAUD,KAAKwC,UAAW,GAC9BxC,KAAKqB,WAAU,kBAAOmJ,EAAKvK,SAAWA,CAAtC,GACD,EACDuhB,WAAU,SAAEU,GACV,OAAgC,OAAzBA,EAAGC,MAAMniB,KAAKkhB,MACtB,GAGH5f,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAOvB,KAAKmV,aAAanV,KAAKC,UAAYD,KAAK+C,MAAO,CAC7DvB,YAAa,eACbC,MAAOzB,KAAKF,UACV,CACFE,KAAK4hB,YACLrgB,EAAEqB,EAAAA,GAAmB5C,KAAKgiB,aAE7B,G,mJCtMGngB,GAAa7C,EAAAA,EAAAA,GACjB+C,EAAAA,EACAqgB,EAAAA,EACAvO,EAAAA,GACA5U,EAAAA,EAAAA,GAAiB,kBACjBojB,EAAAA,EAAAA,GAAkB,eAYpB,IAAexgB,EAAW1C,SAAkBA,OAAO,CACjDC,KAAM,cAEN4D,WAAY,CACVsf,OAAAA,EAAAA,GAGFvC,OAAQ,CACNwC,UAAW,CACThf,SAAS,GAEXsc,SAAU,CACRtc,SAAS,GAEXyc,SAAU,CACRzc,SAAS,GAEX0c,QAAS,CACP1c,SAAS,IAIbkK,cAAc,EAEdpO,MAAO,CACL2e,YAAa,CACX1a,KAAM3B,OACN4B,QAAO,WACL,OAAKvD,KAAKwiB,cAEHxiB,KAAKwiB,cAAcxE,YAFM,EAGjC,GAEHzL,MAAOhT,QACPkjB,SAAUljB,QACVmjB,KAAMnjB,QACNojB,WAAY,CACVrf,KAAM/D,SAER6M,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,OAEX+c,UAAW/gB,QACXghB,QAAShhB,QACT0D,MAAO,MAGTxD,KAAM,WAAF,MAAS,CACXmjB,WAAY,sBADR,EAIN/iB,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACE,eAAe,GACZqiB,EAAAA,EAASrd,QAAQlF,SAASC,QAAQkF,KAAKhF,OAFrC,IAGL,qBAAsBA,KAAKuS,MAC3B,wBAAyBvS,KAAKV,SAC9B,oBAAqBU,KAAK6iB,cAAgB7iB,KAAKyiB,SAC/C,0BAA2BziB,KAAK2iB,WAChC,0BAA2B3iB,KAAKsgB,UAChC,wBAAyBtgB,KAAKugB,SAC3BvgB,KAAKkV,aAEX,EACD2N,YAAW,WACT,OAAOtjB,QACL6iB,EAAAA,EAASrd,QAAQlF,SAASgjB,YAAY7d,KAAKhF,OAC3CA,KAAKwiB,cAER,GAGH/f,QAAO,WAEDzC,KAAKiF,OAAOC,eAAe,YAC7B4d,EAAAA,EAAAA,IAAQ,SAAU9iB,KAErB,EAEDM,QAAS,CACP6D,MAAK,SAAErD,GACDA,EAAEC,QAAQf,KAAKgB,IAAIC,OAEvBjB,KAAKkB,MAAM,QAASJ,GAEpBd,KAAKkiB,IAAMliB,KAAKmB,QACjB,EACD4hB,SAAQ,WACN,IAAMrhB,GAAK3B,EAAAA,EAAAA,GAAA,CACT,kBAAiBC,KAAKV,eAAkB0H,EACxChD,SAAUhE,KAAK6iB,cAAgB7iB,KAAKV,SAAW,GAAK,GACjDU,KAAKiF,QAiBV,OAdIjF,KAAKiF,OAAOC,eAAe,SAEpBlF,KAAKigB,UAELjgB,KAAKuiB,WACd7gB,EAAMmU,KAAO,SACbnU,EAAM,iBAAmBC,OAAO3B,KAAKC,WAC5BD,KAAKggB,UACdte,EAAMmU,KAAO7V,KAAK6iB,YAAc,gBAAa7b,EAC7CtF,EAAM4P,GAAK5P,EAAM4P,IAAN,aAAApI,OAAyBlJ,KAAKqO,OAChCrO,KAAK6f,WACdne,EAAMmU,KAAO,aAGRnU,CACR,EACDP,OAAM,WACAnB,KAAKkiB,SAA0Blb,IAApBhH,KAAK8hB,aAClB9hB,KAAKC,UAAYD,KAAKC,UAExBD,KAAKkB,MAAM,SACZ,GAGHI,OAAM,SAAEC,GAAC,IAAAH,EAAA,KACP4hB,EAAoBhjB,KAAKijB,oBAAnB7W,EAAF4W,EAAE5W,IAAK3M,EAAAujB,EAAAvjB,KAEXA,EAAKiC,OAAL3B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKN,EAAKiC,OACL1B,KAAK+iB,YAEVtjB,EAAKO,KAAKkiB,GAAK,WAAa,OAA5BniB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKN,EAAKO,KAAKkiB,GAAK,WAAa,OADG,IAElCgB,QAAU,SAAApiB,GACHM,EAAK9B,WAEJwB,EAAEqiB,UAAYC,EAAAA,GAASC,OAAOjiB,EAAK+C,MAAMrD,GAE7CM,EAAKF,MAAM,UAAWJ,GAEzB,IAGCd,KAAKyiB,WAAUrW,EAAM,OACrBpM,KAAKyiB,UAAYziB,KAAKkiB,KACxBziB,EAAKwE,GAAKxE,EAAKwW,gBACRxW,EAAKwW,UAGd,IAAMpL,GAAWjJ,EAAAA,EAAAA,IAAQ5B,KAAM,UAAW,CACxCsjB,OAAQtjB,KAAKC,SACbkB,OAAQnB,KAAKmB,SAGf,OAAOI,EAAE6K,EAAKpM,KAAKC,SAAWD,KAAKmV,aAAanV,KAAK+C,MAAOtD,GAAQA,EAAMoL,EAC3E,G,0EC3LH,IAAe4F,EAAAA,GAAItR,OAAO,CACxBC,KAAM,qBAENsR,YAAY,EAEZpP,OAAM,SAAEC,EAAFuG,GAA4B,IAArBrI,EAAFqI,EAAErI,KAAF8jB,EAAAzb,EAAQ+C,SAAAA,OAAQ,IAAA0Y,EAAG,GAAAA,EAC5B9jB,EAAK+B,YAAc/B,EAAK+B,YAAL,uBAAA0H,OAA0CzJ,EAAK+B,aAAgB,sBAClF,IAAMgiB,EAAgB3Y,EAAS4D,QAAO,SAAAgV,GACpC,OAA2B,IAApBA,EAAMC,WAAsC,MAAfD,EAAMjb,IAC3C,IAGD,OAFIgb,EAAcle,OAAS,IAAG7F,EAAK+B,aAAe,+BAE3CD,EAAE,MAAO9B,EAAMoL,EACvB,G,4DCVH,IAAe8Y,EAAAA,EAAQxkB,OAAO,CAC5BC,KAAM,qBAENC,MAAO,CACLukB,WAAYrkB,QACZyI,KAAM,CACJ1E,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,KAIb1D,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACE,kCAAmCC,KAAK4jB,YACrCD,EAAAA,EAAQ5e,QAAQlF,SAASC,QAAQkF,KAAKhF,OAFpC,IAGL,iBAAkBA,KAAK8E,MAAQ9E,KAAK4jB,YAEvC,GAGHtiB,OAAM,SAAEC,GACN,IAAMD,EAASqiB,EAAAA,EAAQ5e,QAAQzD,OAAO0D,KAAKhF,KAAMuB,GAKjD,OAHAD,EAAO7B,KAAO6B,EAAO7B,MAAQ,CAAC,EAC9B6B,EAAO7B,KAAK+B,aAAe,uBAEpBF,CACR,G,mFCvBH,KAAetC,EAAAA,EAAAA,GACbsF,EAAAA,EACAvC,EAAAA,GACA5C,OAAO,CACPC,KAAM,oBAENmF,QAAO,WACL,MAAO,CACLge,WAAW,EACXC,cAAexiB,KAElB,EAEDH,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKuE,EAAAA,EAAcS,QAAQlF,SAASC,QAAQkF,KAAKhF,OAD1C,IAEL,qBAAqB,GAExB,GAGHM,QAAS,CACPqe,QAAO,WACL,OAAO3e,KAAKmV,aAAanV,KAAK+C,OAAvBhD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACFuE,EAAAA,EAAcS,QAAQzE,QAAQqe,QAAQ3Z,KAAKhF,OADX,IAEnC0B,MAAO,CACLmU,KAAM,aAGX,I,gDCtCL,IAAepF,EAAAA,GAAItR,OAAO,CACxBC,KAAM,mBAENsR,YAAY,EAEZpP,OAAM,SAAEC,EAAFuG,GAAuB,IAAhBrI,EAAFqI,EAAErI,KAAMoL,EAAA/C,EAAA+C,SAGjB,OAFApL,EAAK+B,YAAe,qBAAA0H,OAAqBzJ,EAAK+B,aAAe,IAAMmR,OAE5DpR,EAAE,MAAO9B,EAAMoL,EACvB,G,mMCHUgZ,GAAsBpR,EAAAA,EAAAA,IAAuB,2BAA4B,QACzEqR,GAAmBrR,EAAAA,EAAAA,IAAuB,uBAAwB,OAClEsR,GAAiBtR,EAAAA,EAAAA,IAAuB,qBAAsB,OAC9DuR,GAAoBvR,EAAAA,EAAAA,IAAuB,wBAAyB,OAc7EwR,EAAAA,EACAC,EAAAA,EACArC,EAAAA,EACAsC,EAAAA,EAEAC,EAAAA,EAEAC,EAAAA,EACA1C,EAAAA,C,0DCxBJ,IAAe1V,EAAAA,EAAY9M,OAAO,CAChCC,KAAM,SAENC,MAAO,CACL+M,IAAK,CACH9I,KAAM3B,OACN4B,QAAS,SAIb1D,SAAU,CACRoN,OAAM,WACJ,IAAAqX,EAEItkB,KAAKwH,SAASmF,YADhB4X,EADID,EACJC,IAAKC,EADDF,EACCE,IAAKxX,EADNsX,EACMtX,MAAOyX,EADbH,EACaG,OAAQC,EADrBJ,EACqBI,YAAa9X,EADlC0X,EACkC1X,OAAQE,EAAAwX,EAAAxX,KAGhD,MAAO,CACL6X,WAAY,GAAFzb,OAAKsb,EAAMD,EAAG,MACxBK,aAAc,GAAF1b,OAAK8D,EAAK,MACtB6X,cAAe,GAAF3b,OAAKub,EAASC,EAAc9X,EAAM,MAC/CkY,YAAa,GAAF5b,OAAK4D,EAAI,MAEvB,GAGHxL,OAAM,SAAEC,GACN,IAAM9B,EAAO,CACX+B,YAAa,SACbuI,MAAO/J,KAAKiN,OACZsQ,IAAK,QAGP,OAAOhc,EAAEvB,KAAKoM,IAAK3M,EAAM,CACvB8B,EACE,MACA,CAAEC,YAAa,iBACfI,EAAAA,EAAAA,IAAQ5B,QAGb,G,2UCnBG6B,GAAa7C,EAAAA,EAAAA,GACjB+lB,EAAAA,EACAlS,EAAAA,EACAmS,EAAAA,EACAC,EAAAA,EACApR,EAAAA,EACAqR,EAAAA,GAIF,IAAerjB,EAAW1C,OAAO,CAC/BC,KAAM,SAEN4D,WAAY,CACVmiB,aAAAA,EAAAA,EACAC,OAAAA,EAAAA,GAGF7gB,QAAO,WACL,MAAO,CACLyb,UAAU,EAEVqF,MAAOrlB,KAAKqlB,MAEf,EAEDhmB,MAAO,CACLimB,KAAM/lB,QACNgmB,aAAc,CACZjiB,KAAM/D,QACNgE,SAAS,GAEXiiB,oBAAqB,CACnBliB,KAAM/D,QACNgE,SAAS,GAEXjE,SAAUC,QACVkmB,YAAalmB,QACbmmB,UAAW,CACTpiB,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,QAEXoiB,QAASpmB,QACTqmB,QAASrmB,QACTsmB,YAAatmB,QACbumB,OAAQ,CACNxiB,KAAM3B,OACN4B,QAAS,YAEX6T,WAAY,CACV9T,KAAM,CAAC/D,QAASoC,QAChB4B,QAAS,qBAEXwiB,aAAc,CACZziB,KAAMG,OACNF,QAAS,WAAF,MAAS,CAAC,CAAR,IAIb9D,KAAI,WACF,MAAO,CACLumB,kBAAmB,EACnBC,cAAe,EACfC,gBAAgB,EAChBC,WAAY,EACZC,cAAe,EACf/H,cAAe,KACfgI,MAAO,GAEV,EAEDxmB,SAAU,CACRymB,WAAU,WACR,OAAOtmB,KAAKqmB,MAAMrmB,KAAKmmB,UACxB,EACDI,eAAc,WACZ,IAAMC,EAAY5a,KAAKsS,IAAIle,KAAKymB,WAAW/mB,QAAQsV,MAAO0R,WAAW1mB,KAAK2mB,qBAE1E,OAAK3mB,KAAKslB,MAEHlY,EAAAA,EAAAA,IAAcpN,KAAK4mB,cAAc5mB,KAAK6mB,eAAgBL,KAAe,IAFrDxmB,KAAK8mB,SAASN,IAAc,GAGpD,EACDO,oBAAmB,WACjB,IAAM7a,EAASlM,KAAKslB,KAChB,SACAlY,EAAAA,EAAAA,IAAcpN,KAAK0lB,WAEvB,OAAOxZ,GAAU,GAClB,EACD8a,mBAAkB,WAChB,OAAO5Z,EAAAA,EAAAA,IAAcpN,KAAKinB,WAAa,GACxC,EACDN,mBAAkB,WAChB,GAAI3mB,KAAKknB,SACP,OAAO9Z,EAAAA,EAAAA,IAAcpN,KAAKknB,WAAa,IAGzC,IAAMA,EAAWtb,KAAKub,IACpBnnB,KAAKymB,WAAWW,UAAUpS,MAC1BtO,OAAO1G,KAAKqnB,aACXrnB,KAAKslB,KAAO,GAAK,GAClB1Z,KAAKsS,IAAIle,KAAKsnB,UAAY,GAAI,IAG1BN,EAAqB7Z,MAAMD,SAASlN,KAAKgnB,qBAC3CE,EACAha,SAASlN,KAAKgnB,oBAElB,OAAO5Z,EAAAA,EAAAA,IAAcxB,KAAKub,IACxBH,EACAE,KACI,GACP,EACDK,cAAa,WACX,IAAM/C,EAAOxkB,KAAKslB,MAEdlY,EAAAA,EAAAA,IAAcpN,KAAKwnB,cAAcxnB,KAAKgmB,oBADtChmB,KAAKynB,UAGT,OAAOjD,GAAO,GACf,EACDkD,kBAAiB,WACf,OAAOnoB,QAAQS,KAAKqmB,MAAMpX,MAAK,SAAAnK,GAAI,OAAIA,EAAK6iB,UAAY,CAAzC,IAChB,EACD1a,OAAM,WACJ,MAAO,CACLyY,UAAW1lB,KAAK+mB,oBAChBG,SAAUlnB,KAAK2mB,mBACfM,SAAUjnB,KAAKgnB,mBACfxC,IAAKxkB,KAAKunB,cACVza,KAAM9M,KAAKumB,eACXqB,gBAAiB5nB,KAAK8lB,OACtB+B,OAAQ7nB,KAAK6nB,QAAU7nB,KAAK8nB,aAE/B,GAGH3lB,MAAO,CACLlC,SAAQ,SAAEqC,GACHA,IAAKtC,KAAKmmB,WAAa,EAC7B,EACD4B,gBAAe,SAAEzlB,GACftC,KAAKkmB,eAAiB5jB,CACvB,EACD6jB,UAAS,SAAE6B,EAAMC,GACf,GAAID,KAAQhoB,KAAKqmB,MAAO,CACtB,IAAMvhB,EAAO9E,KAAKqmB,MAAM2B,GACxBljB,EAAKiM,UAAUmX,IAAI,4BACnB,IAAMC,EAAYnoB,KAAKsJ,MAAM5J,QAAQyoB,UAC/BC,EAAgBpoB,KAAKsJ,MAAM5J,QAAQ4N,aAErC6a,EAAYrjB,EAAKujB,UAAY,GAC/BC,EAAAA,EAAAA,GAAKxjB,EAAKujB,UAAYvjB,EAAKwI,aAAc,CACvCib,WAAW,EACXC,SAAU,IACVC,UAAWzoB,KAAKsJ,MAAM5J,UAEfyoB,EAAYC,EAAgBtjB,EAAKujB,UAAYvjB,EAAKwI,aAAe,IAC1Egb,EAAAA,EAAAA,GAAKxjB,EAAKujB,UAAYD,EAAoC,EAApBtjB,EAAKwI,aAAkB,CAC3Dib,WAAW,EACXC,SAAU,IACVC,UAAWzoB,KAAKsJ,MAAM5J,SAG3B,CAEDuoB,KAAQjoB,KAAKqmB,OACXrmB,KAAKqmB,MAAM4B,GAAMlX,UAAU2X,OAAO,2BACrC,GAGHjmB,QAAO,WAEDzC,KAAKiF,OAAOC,eAAe,gBAC7B4d,EAAAA,EAAAA,IAAQ,aAAc9iB,KAEzB,EAEDqY,QAAO,WACLrY,KAAKC,UAAYD,KAAK2oB,cACvB,EAEDroB,QAAS,CACPsoB,SAAQ,eAAAxnB,EAAA,KAGNpB,KAAK6oB,mBAELC,uBAAsB,WAEpB1nB,EAAK2nB,kBAAkBzP,MAAK,WACtBlY,EAAKkI,MAAM5J,UACb0B,EAAK4kB,kBAAoB5kB,EAAK4nB,cAC9B5nB,EAAKkkB,OAASlkB,EAAKkI,MAAM5J,QAAQyoB,UAAY/mB,EAAK6nB,sBAErD,GACF,GACF,EACDA,mBAAkB,WAChB,IAAMjoB,EAAMhB,KAAKsJ,MAAM5J,QACjB4mB,EAAatlB,EAAIkoB,cAAc,wBAC/BC,EAAenoB,EAAIooB,aAAepoB,EAAIqoB,aAE5C,OAAO/C,EACH1a,KAAKub,IAAIgC,EAAcvd,KAAKsS,IAAI,EAAGoI,EAAW+B,UAAYrnB,EAAIqoB,aAAe,EAAI/C,EAAW+C,aAAe,IAC3GroB,EAAImnB,SACT,EACDtB,aAAY,WACV,OAAO3Z,SAASlN,KAAKymB,WAAWW,UAAUta,KAA4B,EAArB9M,KAAKimB,cACvD,EACD+C,YAAW,WACT,IAAMhoB,EAAMhB,KAAKsJ,MAAM5J,QACjB4mB,EAAatlB,EAAIkoB,cAAc,wBAMrC,GAJK5C,IACHtmB,KAAKqe,cAAgB,MAGnBre,KAAK4lB,UAAYU,EACnB,OAAOtmB,KAAKspB,YAGdtpB,KAAKqe,cAAgBjZ,MAAMmkB,KAAKvpB,KAAKqmB,OAAO9Q,QAAQ+Q,GAEpD,IAAMkD,EAA0BlD,EAAW+B,UAAYroB,KAAKipB,qBACtDQ,EAAsBzoB,EAAIkoB,cAAc,gBAAgCb,UAE9E,OAAOroB,KAAKspB,YAAcE,EAA0BC,EAAqB,CAC1E,EACDC,gBAAe,SAAE5oB,GAIf,GAFAd,KAAK2pB,WAEA3pB,KAAKC,UAAaD,KAAK0nB,kBAErB,GAAI5mB,EAAEqiB,UAAYC,EAAAA,GAASwG,IAA3B,CAGA,GAAI9oB,EAAEqiB,UAAYC,EAAAA,GAASyG,KAChC7pB,KAAK8pB,gBACA,GAAIhpB,EAAEqiB,UAAYC,EAAAA,GAAS2G,GAChC/pB,KAAKgqB,gBACA,GAAIlpB,EAAEqiB,UAAYC,EAAAA,GAAS6G,IAChCjqB,KAAKkqB,gBACA,GAAIppB,EAAEqiB,UAAYC,EAAAA,GAAS+G,KAChCnqB,KAAKoqB,gBACA,IAAItpB,EAAEqiB,UAAYC,EAAAA,GAASC,QAA6B,IAApBrjB,KAAKmmB,UAEvC,OADPnmB,KAAKqmB,MAAMrmB,KAAKmmB,WAAWhiB,OACZ,CAEjBrD,EAAEqc,gBAFe,MAZfnd,KAAKC,UAAW,CAenB,EACDoqB,iBAAgB,SAAEvpB,GAChB,IAAMuK,EAASvK,EAAEuK,OAEjB,OAAOrL,KAAKC,WACTD,KAAK8e,cACN9e,KAAKulB,eACJvlB,KAAKsJ,MAAM5J,QAAQ4qB,SAASjf,EAChC,EACDkf,uBAAsB,WACpB,IAAMC,EAAaC,EAAAA,EAAY1lB,QAAQzE,QAAQiqB,uBAAuBvlB,KAAKhF,MAE3E,OAAIA,KAAKsmB,YAActmB,KAAKsmB,WAAWhV,IACrCvR,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKyqB,GADE,IAEL,wBAAyBxqB,KAAKsmB,WAAWhV,KAItCkZ,CACR,EACDE,sBAAqB,WACnB,IAAMhL,EAAYwF,EAAAA,EAASngB,QAAQzE,QAAQoqB,sBAAsB1lB,KAAKhF,MAMtE,OAJKA,KAAKylB,cACR/F,EAAUwD,QAAUljB,KAAKyL,WAGpBiU,CACR,EACDiL,cAAa,WACX,IAAMjrB,EAAUM,KAAK6Z,aAErB,OAAK7Z,KAAKoX,WAEHpX,KAAK6D,eAAe,aAAc,CACvCxE,MAAO,CACLD,KAAMY,KAAKoX,aAEZ,CAAC1X,IANyBA,CAO9B,EACDkrB,cAAa,eAAAjoB,EAAA,KACLK,EAA+B,CAAC,CACpC5D,KAAM,OACN6D,MAAOjD,KAAK+nB,kBAed,OAXK/nB,KAAK6lB,aAAe7lB,KAAKulB,cAC5BviB,EAAWiI,KAAK,CACd7L,KAAM,gBACN6D,MAAO,CACLZ,QAAS,WAAQM,EAAK1C,UAAW,CAAO,EACxCoqB,iBAAkBrqB,KAAKqqB,iBACvBQ,QAAS,WAAF,OAASloB,EAAK3B,KAANkI,QAAAqC,EAAAA,EAAAA,GAAc5I,EAAKmoB,4BAAnB,KAKd9nB,CACR,EACD6W,WAAU,eAAArP,EAAA,KACFzF,EAAU,CACdrD,OAAK3B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAC,KAAK+qB,mBACL/qB,KAAK+lB,cAFH,IAGLlQ,KAAM,SAAU7V,KAAKiF,OAASjF,KAAKiF,OAAO4Q,KAAO,SAEnDrU,YAAa,kBACbC,OAAK1B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAC,KAAKgrB,kBACLhrB,KAAKirB,gBAFH,IAAA9Z,EAAAA,EAAAA,GAAA,CAGL,wBAAyBnR,KAAKslB,KAC9B,yBAA0BtlB,KAAKkrB,eAC/BC,0BAA2BnrB,KAAKC,UAC/BD,KAAKorB,aAAazY,QAAS,IAE9B5I,MAAO/J,KAAKiN,OACZjK,WAAYhD,KAAK4qB,gBACjBrN,IAAK,UACLtZ,GAAI,CACFE,MAAQ,SAAArD,GACN,IAAMuK,EAASvK,EAAEuK,OAEbA,EAAOggB,aAAa,aACpB7gB,EAAKgb,sBAAqBhb,EAAKvK,UAAW,EAC/C,EACDijB,QAASljB,KAAKyL,YAmBlB,OAfIzL,KAAKkE,WAAWonB,SAClBvmB,EAAQd,GAAKc,EAAQd,IAAM,CAAC,EAC5Bc,EAAQd,GAAGqnB,OAAStrB,KAAKkE,WAAWonB,SAGjCtrB,KAAKV,UAAYU,KAAK6lB,cACzB9gB,EAAQd,GAAKc,EAAQd,IAAM,CAAC,EAC5Bc,EAAQd,GAAGmP,WAAapT,KAAKurB,mBAG3BvrB,KAAK6lB,cACP9gB,EAAQd,GAAKc,EAAQd,IAAM,CAAC,EAC5Bc,EAAQd,GAAGoP,WAAarT,KAAKwrB,mBAGxBxrB,KAAK6D,eAAe,MAAOkB,EAAS/E,KAAKyrB,iBACjD,EACD9B,SAAQ,WACD3pB,KAAKsJ,MAAM5J,UAEhBM,KAAKqmB,MAAQjhB,MAAMmkB,KAAKvpB,KAAKsJ,MAAM5J,QAAQgsB,iBAAiB,2CAC7D,EACDH,kBAAiB,eAAA3gB,EAAA,KACf5K,KAAKgT,SAAS,QAAQ,WAChBpI,EAAKsb,iBAETtb,EAAKsb,gBAAiB,EACvB,GACF,EACDsF,kBAAiB,SAAE1qB,GAAa,IAAAqK,EAAA,KAE9BnL,KAAKgT,SAAS,SAAS,W,OACC,QAAlB+J,EAAA5R,EAAK7B,MAAM5J,eAAO,IAAAqd,OAAA,EAAAA,EAAEuN,SAASxpB,EAAE6qB,iBAEnC7C,uBAAsB,WACpB3d,EAAKlL,UAAW,EAChBkL,EAAKygB,gBACN,GACF,GACF,EACD9B,SAAQ,WACN,IAAMhlB,EAAO9E,KAAKqmB,MAAMrmB,KAAKmmB,UAAY,GAEzC,IAAKrhB,EAAM,CACT,IAAK9E,KAAKqmB,MAAM/gB,OAAQ,OAKxB,OAHAtF,KAAKmmB,WAAa,OAClBnmB,KAAK8pB,UAGN,CAED9pB,KAAKmmB,aACkB,IAAnBrhB,EAAK6iB,UAAiB3nB,KAAK8pB,UAChC,EACDE,SAAQ,WACN,IAAMllB,EAAO9E,KAAKqmB,MAAMrmB,KAAKmmB,UAAY,GAEzC,IAAKrhB,EAAM,CACT,IAAK9E,KAAKqmB,MAAM/gB,OAAQ,OAKxB,OAHAtF,KAAKmmB,UAAYnmB,KAAKqmB,MAAM/gB,YAC5BtF,KAAKgqB,UAGN,CAEDhqB,KAAKmmB,aACkB,IAAnBrhB,EAAK6iB,UAAiB3nB,KAAKgqB,UAChC,EACDE,SAAQ,WACN,IAAMplB,EAAO9E,KAAKqmB,MAAMrmB,KAAKqmB,MAAM/gB,OAAS,GAEvCR,IAEL9E,KAAKmmB,UAAYnmB,KAAKqmB,MAAM/gB,OAAS,GAEd,IAAnBR,EAAK6iB,UAAiB3nB,KAAKgqB,WAChC,EACDI,UAAS,WACP,IAAMtlB,EAAO9E,KAAKqmB,MAAM,GAEnBvhB,IAEL9E,KAAKmmB,UAAY,GAEM,IAAnBrhB,EAAK6iB,UAAiB3nB,KAAK8pB,WAChC,EACDre,UAAS,SAAE3K,GAAgB,IAAA+qB,EAAA,KACzB,IAAI7rB,KAAKylB,YAAT,CAEA,GAAI3kB,EAAEqiB,UAAYC,EAAAA,GAAS0I,IAAK,CAE9Bld,YAAW,WAAQid,EAAK5rB,UAAW,CAAO,IAC1C,IAAMmnB,EAAYpnB,KAAK+rB,eACvB/rB,KAAKqB,WAAU,kBAAM+lB,GAAaA,EAAU4E,OAA5C,GACD,MACEhsB,KAAKC,UACN,CAACmjB,EAAAA,GAAS2G,GAAI3G,EAAAA,GAASyG,MAAMhjB,SAAS/F,EAAEqiB,WAExCnjB,KAAKC,UAAW,GAIlBD,KAAKqB,WAAU,kBAAMwqB,EAAKnC,gBAAgB5oB,EAA1C,GAf4B,CAgB7B,EACDmrB,SAAQ,WACDjsB,KAAKC,WAKVD,KAAKsJ,MAAM5J,QAAQwsB,YACnBlsB,KAAK6oB,mBAOLsD,aAAansB,KAAKomB,eAClBpmB,KAAKomB,cAAgB9P,OAAO1H,WAAW5O,KAAK6oB,iBAAkB,KAC/D,GAGHvnB,OAAM,SAAEC,GAAC,IAAA6qB,EAAA,KACD3sB,EAAO,CACX+B,YAAa,SACbC,MAAO,CACL,mBACkB,KAAhBzB,KAAKqsB,SACW,IAAhBrsB,KAAKqsB,QACW,WAAhBrsB,KAAKqsB,QAETrpB,WAAY,CAAC,CACXspB,IAAK,MACLltB,KAAM,SACN6D,MAAOjD,KAAKisB,YAIhB,OAAO1qB,EAAE,MAAO9B,EAAM,EACnBO,KAAKonB,WAAapnB,KAAKusB,eACxBvsB,KAAK6C,iBAAgB,iBAAM,CACzBupB,EAAKvoB,eAAe2oB,EAAAA,EAAgB,CAClCntB,MAAO,CACLyX,MAAM,EACNoG,MAAOkP,EAAKlP,MACZD,KAAMmP,EAAKnP,OAEZ,CAACmP,EAAKzB,kBAPX,KAUH,G,sCC1gBH,IAAe8B,EAAf,C,iOCyBM5qB,GAAa7C,EAAAA,EAAAA,IACjBgN,EAAAA,EAAAA,GAAgB,OAAQ,CACtB,WACA,WACA,cACA,gBACA,YACA,QACA,YACA,UAEFjK,EAAAA,EACAgjB,EAAAA,EACA2H,EAAAA,EACAC,EAAAA,EACA1gB,EAAAA,EACA4H,EAAAA,GAIF,IAAehS,EAAW1C,OAAO,CAC/BC,KAAM,sBAEN4D,WAAY,CACVmiB,aAAAA,EAAAA,EACAC,OAAAA,EAAAA,EACAwH,MAAAA,EAAAA,GAGFroB,QAAO,WACL,MAAO,CACL0b,QAAsB,QAAbjgB,KAAKoM,IAEjB,EAED/M,MAAO,CACLuN,OAAQrN,QACRstB,QAASttB,QACTutB,qBAAsBvtB,QACtBwtB,oBAAqBxtB,QACrBytB,cAAeztB,QACf0tB,SAAU1tB,QACV2M,OAAQ,CACN5I,KAAM,CAACoD,OAAQ/E,QACf4B,QAAO,WACL,OAAOvD,KAAKuM,IAAM,QAAU,MAC7B,GAEH2gB,YAAa3tB,QACb4tB,iBAAkB,CAChB7pB,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,IAEX6pB,UAAW7tB,QACXyN,MAAOzN,QACP2X,IAAK,CACH5T,KAAM,CAAC3B,OAAQ8B,QACfF,QAAS,IAEX8pB,UAAW9tB,QACX6M,IAAK,CACH9I,KAAM3B,OACN4B,QAAO,WACL,OAAOvD,KAAKuM,IAAM,MAAQ,OAC3B,GAEH+gB,UAAW/tB,QACXguB,UAAWhuB,QACXyV,MAAO,CACL1R,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,KAEXN,MAAO,MAGTxD,KAAM,WAAF,MAAS,CACX+tB,aAAa,EACbC,UAAW,CACT3gB,KAAM,EACNE,MAAO,GAET0gB,eAAgB,EANZ,EASN7tB,SAAU,CAKRwM,oBAAmB,WACjB,OAAOrM,KAAKgN,MAAQ,QAAU,MAC/B,EACDlN,QAAO,WACL,OAAAC,EAAAA,EAAAA,GAAA,CACE,uBAAuB,EACvB,gCAAiCC,KAAKsM,SACtC,8BAA+BtM,KAAK4M,OACpC,+BAAgC5M,KAAK6sB,QACrC,8BAA+B7sB,KAAKC,SACpC,8BAA+BD,KAAKsM,WAAatM,KAAKuM,KAAOvM,KAAKwM,OAClE,gCAAiCxM,KAAKitB,SACtC,iCAAkCjtB,KAAK2tB,SACvC,oCAAqC3tB,KAAKwtB,YAC1C,oCAAqCxtB,KAAK4tB,cAC1C,2CAA8E,KAAlClnB,OAAO1G,KAAKmtB,kBACxD,4BAA6BntB,KAAKC,SAClC,qCAAsCD,KAAKgtB,cAC3C,6BAA8BhtB,KAAKgN,MACnC,iCAAkChN,KAAKstB,WACpCttB,KAAKkV,aAEX,EACD2Y,kBAAiB,WACf,IAAK7tB,KAAK8tB,OAAQ,OAAO,KAEzB,IAAMD,EACJ7tB,KAAKwH,SAASmF,YAAYC,OAC1B5M,KAAKwH,SAASmF,YAAY8X,OAC1BzkB,KAAKwH,SAASmF,YAAY4X,IAG5B,OAAKvkB,KAAK6sB,QAEHgB,EAAoB7tB,KAAKwH,SAASmF,YAAY6X,IAF3BqJ,CAG3B,EACDvE,YAAW,WACT,IAAKtpB,KAAK8tB,OAAQ,OAAO,EAEzB,IAAIxE,EAActpB,KAAKwH,SAASmF,YAAY4X,IAM5C,OAJA+E,GAAetpB,KAAK6sB,QAChB7sB,KAAKwH,SAASmF,YAAY6X,IAC1B,EAEG8E,CACR,EACDyE,kBAAiB,WACf,OAAI/tB,KAAKC,SAAiB,EACtBD,KAAKguB,UACFhuB,KAAKgN,MADc,KACC,GAC5B,EACDihB,cAAa,WACX,OAAOjuB,KAAK4tB,cAAgB5tB,KAAKmtB,iBAAmBntB,KAAKgV,KAC1D,EACD8Y,OAAM,WACJ,OACE9tB,KAAKuM,MACHvM,KAAK2tB,WAAa3tB,KAAKstB,SAE5B,EACDU,SAAQ,WACN,OAAOhuB,KAAK4M,QAAU5M,KAAK2tB,QAC5B,EACDC,cAAa,WACX,OACG5tB,KAAKgtB,eACNhtB,KAAKktB,aAELltB,KAAKgtB,gBACJhtB,KAAKwtB,WAET,EACDG,SAAQ,WACN,OACG3tB,KAAKqtB,YACLrtB,KAAKotB,WACNV,EAAAA,EAAO3nB,QAAQlF,SAAS8tB,SAAS3oB,KAAKhF,KAEzC,EACDkuB,cAAa,WACX,OACGluB,KAAKqtB,YACLrtB,KAAKotB,YACLptB,KAAK2tB,UAAY3tB,KAAKstB,UAE1B,EACDa,eAAc,WACZ,OACEnuB,KAAKuM,MACJvM,KAAK8sB,uBACL9sB,KAAKotB,YACLptB,KAAKqtB,YACLrtB,KAAKstB,SAET,EACDc,eAAc,WACZ,OAAQpuB,KAAK8sB,uBAAyB9sB,KAAKqtB,SAC5C,EACDgB,cAAa,WACX,OACGruB,KAAK+sB,sBACL/sB,KAAKqtB,YACLrtB,KAAKstB,WAAattB,KAAK2tB,SAE3B,EACDW,YAAW,WACT,OACGtuB,KAAKuuB,aACNvuB,KAAKC,WACJD,KAAK2tB,UAAY3tB,KAAKstB,UAE1B,EACDrgB,OAAM,WACJ,IAAMuhB,EAAYxuB,KAAKguB,SAAW,aAAe,aACjD,MAAO,CACL9hB,QAAQkB,EAAAA,EAAAA,IAAcpN,KAAKkM,QAC3BsY,IAAMxkB,KAAKguB,SAA6C,QAAlC5gB,EAAAA,EAAAA,IAAcpN,KAAKspB,aACzC5D,UAAqC,MAA1B1lB,KAAK6tB,kBAAL,eAAA3kB,QACQkE,EAAAA,EAAAA,IAAcpN,KAAK6tB,mBAAkB,UACpD7mB,EACJynB,UAAW,GAAFvlB,OAAKslB,EAAS,KAAAtlB,QAAIkE,EAAAA,EAAAA,IAAcpN,KAAK+tB,kBAAmB,KAAI,KACrE/Y,OAAO5H,EAAAA,EAAAA,IAAcpN,KAAKiuB,eAE7B,GAGH9rB,MAAO,CACLof,OAAQ,gBACRthB,SAAQ,SAAEqC,GACRtC,KAAKkB,MAAM,QAASoB,EACrB,EAKDqrB,SAAQ,SAAErrB,EAAK2lB,IACZ3lB,GACCtC,KAAKC,WACJD,KAAKstB,WACNttB,KAAK0uB,gBAEK,MAARzG,GACDjoB,KAAKouB,gBACLpuB,KAAKmuB,iBAGRnuB,KAAKC,UAAYqC,EAClB,EACD8qB,UAAS,SAAE9qB,GAELA,IAAKtC,KAAKC,UAAW,EAC1B,EACDquB,YAAW,SAAEhsB,GACPA,EAAKtC,KAAK2uB,aACT3uB,KAAK0uB,eACX,EACDzrB,MAAK,SAAEX,GACDtC,KAAKotB,YAEE,MAAP9qB,EAKAA,IAAQtC,KAAKC,WAAUD,KAAKC,SAAWqC,GAJzCtC,KAAKoY,OAKR,EACD4U,cAAe,oBACfQ,YAAW,SAAElrB,GACXtC,KAAK4uB,mBAAmBtsB,EACzB,GAGHusB,YAAW,WACT7uB,KAAKoY,MACN,EAED9X,QAAS,CACPwuB,mBAAkB,WAChB,IAAMhe,EAAS9Q,KAAKgB,IAAI+tB,WAExB,GAAKje,EAAL,CAEA,IAAMke,EAAale,EAAOme,wBAE1BjvB,KAAKytB,UAAY,CACf3gB,KAAMkiB,EAAWliB,KAAO,GACxBE,MAAOgiB,EAAWhiB,MAAQ,GANT,CAQpB,EACDqd,iBAAgB,WACd,OAAOrqB,KAAKC,WAAaD,KAAK8e,cAAgB9e,KAAKkuB,aACpD,EACDgB,UAAS,WACP,OAAOlvB,KAAKmvB,YAAY,SACzB,EACDC,cAAa,WACX,IAAM/vB,EAAQ,CACZ6M,OAAQ,OACR8I,MAAO,OACPkC,IAAKlX,KAAKkX,KAGNI,EAAQtX,KAAK8K,aAAa0O,IAC5BxZ,KAAK8K,aAAa0O,IAAIna,GACtBW,KAAK6D,eAAewrB,EAAAA,EAAM,CAAEhwB,MAAAA,IAEhC,OAAOW,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,8BACZ,CAAC8V,GACL,EACDsT,cAAa,eAAAxpB,EAAA,KACL4B,EAAa,CAAC,CAClB5D,KAAM,gBACN6D,MAAO,CACLZ,QAAS,WAAQjB,EAAKnB,UAAW,CAAO,EACxCoqB,iBAAkBrqB,KAAKqqB,iBACvBQ,QAAS7qB,KAAK8qB,4BAelB,OAXK9qB,KAAKutB,WAAcvtB,KAAKqtB,WAC3BrqB,EAAWiI,KAAK,CACd7L,KAAM,QACN6D,MAAO,CACL6N,QAAQ,EACRhE,KAAM9M,KAAKsvB,UACXtiB,MAAOhN,KAAKuvB,cAKXvsB,CACR,EACDwsB,aAAY,eAAA7sB,EAAA,KACJsB,EAAyC,CAC7CmP,WAAY,WAAF,OAASzQ,EAAK6qB,aAAc,CADO,EAE7Cna,WAAY,WAAF,OAAS1Q,EAAK6qB,aAAc,CAFO,EAG7CiC,cAAgB,SAAA3uB,GACd,GAAIA,EAAEuK,SAAWvK,EAAE4uB,cAAnB,CACA/sB,EAAKzB,MAAM,gBAAiBJ,GAG5B,IAAM6uB,EAAcC,SAASC,YAAY,YACzCF,EAAYG,YAAY,UAAU,GAAM,EAAOxZ,OAAQ,GACvDA,OAAOyZ,cAAcJ,EANmB,CAOzC,GAOH,OAJI3vB,KAAKktB,cACPjpB,EAAGE,MAAQ,kBAAMxB,EAAKzB,MAAM,uBAAuB,EAAnD,GAGK+C,CACR,EACDkrB,YAAW,SAAE/vB,GACX,IAAM4a,GAAOpY,EAAAA,EAAAA,IAAQ5B,KAAMZ,GAE3B,OAAK4a,EAEEha,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,wBAAF0H,OAA0B9J,IACpC4a,GAJeA,CAKnB,EACDgW,WAAU,WACR,OAAOhwB,KAAKmvB,YAAY,UACzB,EACDtV,WAAU,WACR,OAAO7Z,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,iCACZI,EAAAA,EAAAA,IAAQ5B,MACZ,EACDiwB,UAAS,WACP,OAAOjwB,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,+BAEhB,EACD4W,KAAI,WACEpY,KAAKotB,UACPptB,KAAKC,UAAW,EACPD,KAAKqtB,WACA,MAAdrtB,KAAKiD,MAELjD,KAAKC,SAAWD,KAAKiD,MACXjD,KAAKstB,YACfttB,KAAKC,UAAYD,KAAK2tB,SAEzB,EACD1L,cAAa,WACPjiB,KAAKquB,eAAiBruB,KAAKqqB,qBAC7BrqB,KAAKC,UAAW,EAEnB,EACDqvB,UAAS,SAAExuB,GACLd,KAAKC,UAAYD,KAAKgN,QAC1BhN,KAAK8uB,qBAEDljB,KAAKskB,IAAIpvB,EAAEqvB,UAAYrvB,EAAEsvB,aAAe,MACxCpwB,KAAKgN,OACPlM,EAAEsvB,aAAepwB,KAAKytB,UAAUzgB,MAChChN,KAAKC,UAAW,GACRD,KAAKgN,OAAShN,KAAKC,WAAUD,KAAKC,UAAW,IACxD,EACDsvB,WAAU,SAAEzuB,GACNd,KAAKC,WAAaD,KAAKgN,QAC3BhN,KAAK8uB,qBAEDljB,KAAKskB,IAAIpvB,EAAEqvB,UAAYrvB,EAAEsvB,aAAe,OACvCpwB,KAAKgN,OACRlM,EAAEsvB,aAAepwB,KAAKytB,UAAU3gB,KAChC9M,KAAKC,UAAW,EACTD,KAAKgN,OAAShN,KAAKC,WAAUD,KAAKC,UAAW,IACvD,EAIDoN,kBAAiB,WACf,IACGrN,KAAKC,UACND,KAAK2tB,UACL3tB,KAAKstB,YACJttB,KAAKgB,IACN,OAAO,EAET,IAAMgU,EAAQtO,OAAO1G,KAAKktB,YAAcltB,KAAKmtB,iBAAmBntB,KAAKgV,OAErE,OAAO7H,MAAM6H,GAAShV,KAAKgB,IAAIqvB,YAAcrb,CAC9C,EACD4Z,kBAAiB,SAAEtsB,GACbtC,KAAKgtB,eAAiBhtB,KAAKktB,cAAgB5qB,GAAKtC,KAAKkB,MAAM,sBAAuBoB,EACvF,GAGHhB,OAAM,SAAEC,GACN,IAAMsJ,EAAW,CACf7K,KAAKgwB,aACLhwB,KAAK6Z,aACL7Z,KAAKkvB,YACLlvB,KAAKiwB,aAKP,OAFIjwB,KAAKkX,MAAOtV,EAAAA,EAAAA,IAAQ5B,KAAM,SAAQ6K,EAASylB,QAAQtwB,KAAKovB,iBAErD7tB,EAAEvB,KAAKoM,IAAKpM,KAAK8C,mBAAmB9C,KAAK+C,MAAO,CACrDtB,MAAOzB,KAAKF,QACZiK,MAAO/J,KAAKiN,OACZjK,WAAYhD,KAAK4qB,gBACjB3mB,GAAIjE,KAAKwvB,iBACP3kB,EACL,G,yHClcH,KAAe7L,EAAAA,EAAAA,GACb+C,EAAAA,EACA8R,EAAAA,EACAf,EAAAA,GACA3T,OAAO,CACPC,KAAM,YAENC,MAAO,CACLiN,SAAU/M,QACVwD,MAAO,CACLO,KAAM3B,OACN4B,QAAS,WAEX0Z,KAAM,CACJ3Z,KAAM/D,QACNgE,SAAS,GAEXgtB,QAAS,CACPjtB,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,KAEXN,MAAO,CACLM,SAAS,GAEXskB,OAAQ,CACNvkB,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,IAIb1D,SAAU,CACR2wB,QAAO,WACL,IAAM/wB,EAAOO,KAAK8C,mBAAmB9C,KAAK+C,MAAO,CAC/CvB,YAAa,mBACbuI,MAAO,CACLwmB,QAASvwB,KAAKywB,mBAIlB,OAAOzwB,KAAK6D,eAAe,MAAOpE,EACnC,EACDK,QAAO,WACL,OAAAC,EAAAA,EAAAA,GAAA,CACE,sBAAuBC,KAAKsM,SAC5B,oBAAqBtM,KAAKC,UACvBD,KAAKkV,aAEX,EACDub,gBAAe,WACb,OAAO/pB,OAAO1G,KAAKC,SAAWD,KAAKuwB,QAAU,EAC9C,EACDtjB,OAAM,WACJ,MAAO,CACL4a,OAAQ7nB,KAAK6nB,OAEhB,GAGHvnB,QAAS,CACPuZ,WAAU,WACR,OAAO7Z,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,uBACZI,EAAAA,EAAAA,IAAQ5B,MACZ,GAGHsB,OAAM,SAAEC,GACN,IAAMsJ,EAAW,CAAC7K,KAAKwwB,SAIvB,OAFIxwB,KAAKC,UAAU4K,EAASI,KAAKjL,KAAK6Z,cAE/BtY,EAAE,MAAO,CACdC,YAAa,YACbyC,GAAIjE,KAAKkE,WACTzC,MAAOzB,KAAKF,QACZiK,MAAO/J,KAAKiN,QACXpC,EACJ,G,uCCzFH,IAAe6lB,EAAf,C,qMCeA,KAAe1xB,EAAAA,EAAAA,GACb+C,EAAAA,GACA4uB,EAAAA,EAAAA,GAAc,CAAEC,UAAW,CAAC,UAC5B/c,EAAAA,GACA1U,OAAO,CACPC,KAAM,eAEN4D,WAAY,CAAEoiB,OAAAA,EAAAA,GAEd/lB,MAAO,CACLwxB,OAAQtxB,QACRD,SAAUC,QACVuxB,gBAAiBnvB,OACjBovB,oBAAqBpvB,OACrB2D,OAAQ,CACNhC,KAAMoD,OACNnD,QAAS,EACToD,UAAY,SAAArE,GAAD,OAAiBA,EAAM,IAAM,IAE1C0uB,SAAU,CACR1tB,KAAM3B,OACN4B,QAAS,SAEX0tB,SAAU,CACR3tB,KAAM3B,OACN4B,QAAS,SAEX2tB,aAAc,CAACxqB,OAAQ/E,QACvBsB,MAAO,CACLK,KAAMoD,OACNnD,QAAS,GAEX4tB,cAAe,CACb7tB,KAAM3B,OACN4B,QAAS,sCAEX6tB,qBAAsB,CACpB9tB,KAAM3B,OACN4B,QAAS,6CAEX8tB,kBAAmB,CACjB/tB,KAAM3B,OACN4B,QAAS,0CAEX+tB,cAAe,CACbhuB,KAAM3B,OACN4B,QAAS,sCAEXguB,iBAAkB,CAChBjuB,KAAM3B,OACN4B,QAAS,0CAIb9D,KAAI,WACF,MAAO,CACL+xB,WAAY,EACZC,SAAU,KAEb,EAED5xB,SAAU,CACRC,QAAO,WACL,OAAAC,EAAAA,EAAAA,GAAA,CACE,gBAAgB,EAChB,uBAAwBC,KAAK6wB,OAC7B,yBAA0B7wB,KAAKV,UAC5BU,KAAKkV,aAEX,EAEDkJ,MAAK,WACH,IAAM8S,EAAehkB,SAASlN,KAAKkxB,aAAc,IAEjD,GAAqB,IAAjBA,GAAsB/jB,MAAMnN,KAAKsF,SAAWtF,KAAKsF,OAASoB,OAAOgrB,iBACnE,MAAO,GAGT,IAAMC,EAAY/lB,KAAKub,IACrBvb,KAAKsS,IAAI,EAAGgT,IAAiBlxB,KAAKsF,OAClCsG,KAAKsS,IAAI,EAAGle,KAAKwxB,aAAexxB,KAAKsF,OACrCtF,KAAKsF,QAGP,GAAItF,KAAKsF,QAAUqsB,EACjB,OAAO3xB,KAAK4xB,MAAM,EAAG5xB,KAAKsF,QAG5B,IAAMusB,EAAOF,EAAY,IAAM,EAAI,EAAI,EACjC7kB,EAAOlB,KAAKC,MAAM8lB,EAAY,GAC9B3kB,EAAQhN,KAAKsF,OAASwH,EAAO,EAAI+kB,EAEvC,GAAI7xB,KAAKiD,MAAQ6J,GAAQ9M,KAAKiD,MAAQ+J,EAAO,CAC3C,IAAM8kB,EAAY,EACZC,EAAW/xB,KAAKsF,OAChB0sB,EAAQhyB,KAAKiD,MAAQ6J,EAAO,EAC5Bmd,EAAMjqB,KAAKiD,MAAQ6J,EAAO,EAAI+kB,EAC9BI,EAAaD,EAAQ,IAAMF,EAAY,EAAI,EAAI,MAC/CI,EAAiBjI,EAAM,IAAM8H,EAAW,EAAI9H,EAAM,EAAI,MAE5D,MAAO,CAAC,EAAGgI,GAAJ/oB,QAAAqC,EAAAA,EAAAA,GAAmBvL,KAAK4xB,MAAMI,EAAO/H,IAArC,CAA2CiI,EAAgBlyB,KAAKsF,QACxE,CAAM,GAAItF,KAAKiD,QAAU6J,EAAM,CAC9B,IAAMmd,EAAMjqB,KAAKiD,MAAQ6J,EAAO,EAAI+kB,EACpC,MAAO,GAAP3oB,QAAAqC,EAAAA,EAAAA,GAAWvL,KAAK4xB,MAAM,EAAG3H,IAAlB,CAAwB,MAAOjqB,KAAKsF,QAC5C,CAAM,GAAItF,KAAKiD,QAAU+J,EAAO,CAC/B,IAAMglB,EAAQhyB,KAAKiD,MAAQ6J,EAAO,EAClC,MAAO,CAAC,EAAG,OAAJ5D,QAAAqC,EAAAA,EAAAA,GAAcvL,KAAK4xB,MAAMI,EAAOhyB,KAAKsF,SAC7C,CACC,MAAO,GAAP4D,QAAAqC,EAAAA,EAAAA,GACKvL,KAAK4xB,MAAM,EAAG9kB,IADZ,CAEL,QAFKvB,EAAAA,EAAAA,GAGFvL,KAAK4xB,MAAM5kB,EAAOhN,KAAKsF,SAG/B,GAGHnD,MAAO,CACLc,MAAK,WACHjD,KAAKoY,MACN,GAGHyW,YAAW,WACT7uB,KAAKoY,MACN,EAED9X,QAAS,CACP8X,KAAI,eAAAhX,EAAA,KACFpB,KAAKyxB,SAAW,KAEhBzxB,KAAKisB,WACLjsB,KAAKqB,UAAUrB,KAAKisB,UAEpBrd,YAAW,kBAAOxN,EAAKqwB,SAAWrwB,EAAK6B,KAA7B,GAAqC,IAChD,EACDgpB,SAAQ,WACN,IAAMjX,EAAQhV,KAAKgB,KAAOhB,KAAKgB,IAAImxB,cAC/BnyB,KAAKgB,IAAImxB,cAAc9B,YACvB/Z,OAAO8b,WAEXpyB,KAAKwxB,WAAa5lB,KAAKC,OAAOmJ,EAAQ,IAAM,GAC7C,EACDgT,KAAI,SAAElnB,GACJA,EAAEqc,iBACFnd,KAAKkB,MAAM,QAASlB,KAAKiD,MAAQ,GACjCjD,KAAKkB,MAAM,OACZ,EACDmxB,SAAQ,SAAEvxB,GACRA,EAAEqc,iBACFnd,KAAKkB,MAAM,QAASlB,KAAKiD,MAAQ,GACjCjD,KAAKkB,MAAM,WACZ,EACD0wB,MAAK,SAAErI,EAAcrH,GACnB,IAAM0P,EAAQ,GAEdrI,EAAOA,EAAO,EAAIA,EAAO,EAEzB,IAAK,IAAIra,EAAIqa,EAAMra,GAAKgT,EAAIhT,IAC1B0iB,EAAM3mB,KAAKiE,GAGb,OAAO0iB,CACR,EACDjuB,QAAO,SAAEpC,EAAkBqC,EAActE,EAAmBgzB,EAAmBzX,GAC7E,OAAOtZ,EAAE,KAAM,CACbA,EAAE,SACAvB,KAAK8C,mBAAmB9C,KAAK8wB,gBAAiB,CAC5CtvB,YAAa,2BACbC,MAAO,CACL,qCAAsCnC,GAExCoC,MAAO,CACLpC,SAAAA,EACAgE,KAAM,SACN,aAAcuX,GAEhB5W,GAAI3E,EAAW,CAAC,EAAI,CAAE6E,MAAOmuB,KAE/B,CAAC/wB,EAAEuC,EAAAA,EAAO,CAAEzE,MAAO,CAAE0D,MAAO/C,KAAK+wB,sBAAyB,CAACntB,OAGhE,EACD2uB,QAAO,SAAEhxB,EAAkB2N,GAAkB,IAAAvM,EAAA,KACrCI,EAAyBmM,IAAMlP,KAAKiD,QAAWjD,KAAK+C,OAAS,WAC7DyvB,EAAgBtjB,IAAMlP,KAAKiD,MAC3BwvB,EAAYD,EAAgBxyB,KAAKoxB,qBAAuBpxB,KAAKmxB,cAEnE,OAAO5vB,EAAE,SAAUvB,KAAK8C,mBAAmBC,EAAO,CAChDvB,YAAa,qBACbC,MAAO,CACL,6BAA8ByN,IAAMlP,KAAKiD,OAE3CvB,MAAO,CACL4B,KAAM,SACN,eAAgBkvB,EAChB,aAAcxyB,KAAKwH,SAASC,KAAKC,EAAE+qB,EAAWvjB,IAEhDjL,GAAI,CACFE,MAAO,WAAF,OAAQxB,EAAKzB,MAAM,QAASgO,EAApB,KAEb,CAACA,EAAEwjB,YACR,EACD1Q,SAAQ,SAAEzgB,GAAgB,IAAAiJ,EAAA,KACxB,OAAOxK,KAAKoe,MAAMxV,KAAI,SAACsG,EAAGzJ,GACxB,OAAOlE,EAAE,KAAM,CAAEiQ,IAAK/L,GAAS,CAC7B0H,MAAMzG,OAAOwI,IAAM3N,EAAE,OAAQ,CAAEE,MAAO,sBAAwB,CAACyN,EAAEwjB,aAAeloB,EAAK+nB,QAAQhxB,EAAG2N,IAEnG,GACF,EACDyjB,QAAO,SAAEpxB,EAAkBsJ,GACzB,OAAOtJ,EAAE,KAAM,CACbyB,WAAY,CAAC,CACXkX,UAAW,CAAE0Y,OAAO,GACpBxzB,KAAM,SACN6D,MAAOjD,KAAKisB,WAEdxqB,MAAOzB,KAAKF,SACX+K,EACJ,GAGHvJ,OAAM,SAAEC,GACN,IAAMsJ,EAAW,CACf7K,KAAK2D,QAAQpC,EACXvB,KAAKwH,SAASqrB,IAAM7yB,KAAKgxB,SAAWhxB,KAAKixB,SACzCjxB,KAAKiD,OAAS,EACdjD,KAAKqyB,SACLryB,KAAKwH,SAASC,KAAKC,EAAE1H,KAAKqxB,oBAC5BrxB,KAAKgiB,SAASzgB,GACdvB,KAAK2D,QAAQpC,EACXvB,KAAKwH,SAASqrB,IAAM7yB,KAAKixB,SAAWjxB,KAAKgxB,SACzChxB,KAAKiD,OAASjD,KAAKsF,OACnBtF,KAAKgoB,KACLhoB,KAAKwH,SAASC,KAAKC,EAAE1H,KAAKsxB,iBAG9B,OAAO/vB,EAAE,MAAO,CACdG,MAAO,CACLmU,KAAM,aACN,aAAc7V,KAAKwH,SAASC,KAAKC,EAAE1H,KAAKuxB,oBAEzC,CAACvxB,KAAK2yB,QAAQpxB,EAAGsJ,IACrB,G,2KCtPH,GAAe7L,EAAAA,EAAAA,GACb+C,EAAAA,EACA+wB,EAAAA,EACAjf,EAAAA,GACA1U,OAAO,CACPC,KAAM,WAENC,MAAO,CACLoF,KAAMlF,QACNwzB,UAAWxzB,QACXyzB,UAAWzzB,QACX0zB,QAAS1zB,QACT6X,WAAY,CACV9T,KAAM3B,OACN4B,QAAS,mBAEXyR,MAAO,CACL1R,KAAM,CAACoD,OAAQ/E,QACf4B,QAAS,MAIb1D,SAAU,CACRqzB,mBAAkB,WAChB,IAAMC,GAAoBnzB,KAAKozB,SAAkBpzB,KAAK+C,OAAS,WAC/D,OAAO/C,KAAK+C,OAASowB,CACtB,GAGH7yB,QAAS,CACP+yB,SAAQ,WACN,OAAOrzB,KAAK6D,eAAe,MAAO7D,KAAK8C,mBAAmB9C,KAAKkzB,mBAAoB,CACjF1xB,YAAa,kBACbC,MAAO,CACL,6BAA8BzB,KAAKgzB,cAEnCpxB,EAAAA,EAAAA,IAAQ5B,KAAM,SACnB,EACDszB,kBAAiB,WACf,OAAOtzB,KAAK6D,eAAe,aAAc,CACvCxE,MAAO,CACLD,KAAMY,KAAKoX,cAEZxV,EAAAA,EAAAA,IAAQ5B,MACZ,EACDuzB,QAAO,WACL,OAAOvzB,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,iBACbC,OAAK1B,EAAAA,EAAAA,GAAA,CACH,2BAA4BC,KAAKizB,SAC9BjzB,KAAKkV,cAEVnL,MAAO/J,KAAK+yB,eAAY/rB,EAAY,CAClCgO,OAAO5H,EAAAA,EAAAA,IAAcpN,KAAKgV,SAE3B,CACDhV,KAAKszB,qBAER,EACDE,WAAU,WACR,OAAOxzB,KAAK6D,eAAe,MAAO,CAChCrC,YAAa,oCACbC,MAAO,CACL,8BAA+BzB,KAAKizB,WAErCrxB,EAAAA,EAAAA,IAAQ5B,KAAM,WAClB,GAGHsB,OAAM,SAAEC,GACN,OAAOA,EAAE,MAAO,CACdC,YAAa,kBACbC,OAAK1B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACH,iBAAkBC,KAAKyE,KACvB,sBAAuBzE,KAAKgzB,UAC5B,uBAAwBhzB,KAAK+yB,WAC1B/yB,KAAKkV,cACLlV,KAAKyzB,mBAET,CACDzzB,KAAKoU,OAAO2H,MAAQ/b,KAAKqzB,WAAa,KACtCrzB,KAAKuzB,UACLvzB,KAAKoU,OAAOsf,QAAU1zB,KAAKwzB,aAAe,MAE7C,ICjGH,G","sources":["webpack://i4proportal/../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack://i4proportal/../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack://i4proportal/../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack://i4proportal/../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack://i4proportal/../../../src/components/VFileInput/VFileInput.ts","webpack://i4proportal/../../../src/components/VFooter/VFooter.ts","webpack://i4proportal/../../../src/components/VForm/VForm.ts","webpack://i4proportal/../../../src/components/VGrid/VCol.ts","webpack://i4proportal/../../../src/components/VGrid/VContainer.ts","webpack://i4proportal/../../../src/components/VGrid/VLayout.ts","webpack://i4proportal/../../../src/components/VGrid/VRow.ts","webpack://i4proportal/../../../src/components/VGrid/VSpacer.ts","webpack://i4proportal/../../../src/components/VGrid/grid.ts","webpack://i4proportal/../../../src/components/VHover/VHover.ts","webpack://i4proportal/../../../src/components/VIcon/VIcon.ts","webpack://i4proportal/../../../src/components/VIcon/index.ts","webpack://i4proportal/../../../src/components/VImg/VImg.ts","webpack://i4proportal/../../../src/components/VMessages/VMessages.ts","webpack://i4proportal/../../../src/components/VMessages/index.ts","webpack://i4proportal/../../../src/components/VInput/VInput.ts","webpack://i4proportal/../../../src/components/VInput/index.ts","webpack://i4proportal/../../../src/components/VItemGroup/VItemGroup.ts","webpack://i4proportal/../../../src/components/VLabel/VLabel.ts","webpack://i4proportal/../../../src/components/VLabel/index.ts","webpack://i4proportal/../../../src/components/VList/VList.ts","webpack://i4proportal/../../../src/components/VList/VListGroup.ts","webpack://i4proportal/../../../src/components/VList/VListItem.ts","webpack://i4proportal/../../../src/components/VList/VListItemAction.ts","webpack://i4proportal/../../../src/components/VList/VListItemAvatar.ts","webpack://i4proportal/../../../src/components/VList/VListItemGroup.ts","webpack://i4proportal/../../../src/components/VList/VListItemIcon.ts","webpack://i4proportal/../../../src/components/VList/index.ts","webpack://i4proportal/../../../src/components/VMain/VMain.ts","webpack://i4proportal/../../../src/components/VMenu/VMenu.ts","webpack://i4proportal/../../../src/components/VMenu/index.ts","webpack://i4proportal/../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack://i4proportal/../../../src/components/VOverlay/VOverlay.ts","webpack://i4proportal/../../../src/components/VOverlay/index.ts","webpack://i4proportal/../../../src/components/VPagination/VPagination.ts","webpack://i4proportal/../../../src/components/VPicker/VPicker.ts","webpack://i4proportal/../../../src/components/VPicker/index.ts"],"sourcesContent":["// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this, 'default', { open: this.isActive })),\n ]),\n ]))\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions', { open: this.isActive }) ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\n\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true,\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n } as PropValidator,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n type: {\n type: String,\n default: 'file',\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n } as PropValidator,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-file-input': true,\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0,\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on ', this)\n },\n immediate: true,\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n },\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // due to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.selection({\n text: this.text[index],\n file,\n index,\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: (e: MouseEvent) => {\n // Clicking the label already delegates to input element, so we shouldn't click it twice\n if (e.target && (e.target as HTMLElement).nodeName === 'LABEL') return\n\n this.$refs.input.click()\n },\n }\n\n return node\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n },\n },\n})\n","// Styles\nimport './VFooter.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types/vnode'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Applicationable('footer', [\n 'height',\n 'inset',\n ]),\n SSRBootable\n).extend({\n name: 'v-footer',\n\n props: {\n height: {\n default: 'auto',\n type: [Number, String],\n },\n inset: Boolean,\n padless: Boolean,\n tag: {\n type: String,\n default: 'footer',\n },\n },\n\n computed: {\n applicationProperty (): string {\n return this.inset ? 'insetFooter' : 'footer'\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-footer--absolute': this.absolute,\n 'v-footer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-footer--padless': this.padless,\n 'v-footer--inset': this.inset,\n }\n },\n computedBottom (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app\n ? this.$vuetify.application.bottom\n : 0\n },\n computedLeft (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.left\n : 0\n },\n computedRight (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.right\n : 0\n },\n isPositioned (): boolean {\n return Boolean(\n this.absolute ||\n this.fixed ||\n this.app\n )\n },\n styles (): object {\n const height = parseInt(this.height)\n\n return {\n ...VSheet.options.computed.styles.call(this),\n height: isNaN(height) ? height : convertToUnit(height),\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n bottom: convertToUnit(this.computedBottom),\n }\n },\n },\n\n methods: {\n updateApplication () {\n const height = parseInt(this.height)\n\n return isNaN(height)\n ? this.$el ? this.$el.clientHeight : 0\n : height\n },\n },\n\n render (h): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-footer',\n class: this.classes,\n style: this.styles,\n })\n\n return h(this.tag, data, getSlot(this))\n },\n})\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, getSlot(this))\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('layout')\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","// Mixins\nimport Delayable from '../../mixins/delayable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\nexport default mixins(\n Delayable,\n Toggleable\n /* @vue/component */\n).extend({\n name: 'v-hover',\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n value: {\n type: Boolean,\n default: undefined,\n },\n },\n\n methods: {\n onMouseEnter () {\n this.runDelay('open')\n },\n onMouseLeave () {\n this.runDelay('close')\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default && this.value === undefined) {\n consoleWarn('v-hover is missing a default scopedSlot or bound value', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({ hover: this.isActive })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-hover should only contain a single element', this)\n\n return element as any\n }\n\n if (!this.disabled) {\n element.data = element.data || {}\n this._g(element.data, {\n mouseenter: this.onMouseEnter,\n mouseleave: this.onMouseLeave,\n })\n }\n\n return element\n },\n})\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n getSlot(this),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendOuter: 'appendAction',\n clear: 'clear',\n }[type]\n const label = hasListener && localeKey\n ? this.$vuetify.lang.t(`$vuetify.input.${localeKey}`, this.label ?? '')\n : undefined\n\n const data = mergeData({\n attrs: {\n 'aria-label': label,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, getSlot(this, 'label') || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), getSlot(this))\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props, data } = ctx\n const newData = mergeData({\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }, data)\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, newData), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), getSlot(this))\n },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Bootable,\n Colorable,\n RegistrableInject('list'),\n Toggleable\n)\n\ntype VListInstance = InstanceType\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-list-group',\n\n directives: { ripple },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n appendIcon: {\n type: String,\n default: '$expand',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n group: [String, RegExp],\n noAction: Boolean,\n prependIcon: String,\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n subGroup: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-group--active': this.isActive,\n 'v-list-group--disabled': this.disabled,\n 'v-list-group--no-action': this.noAction,\n 'v-list-group--sub-group': this.subGroup,\n }\n },\n },\n\n watch: {\n isActive (val: boolean) {\n /* istanbul ignore else */\n if (!this.subGroup && val) {\n this.list && this.list.listClick(this._uid)\n }\n },\n $route: 'onRouteChange',\n },\n\n created () {\n this.list && this.list.register(this)\n\n if (this.group &&\n this.$route &&\n this.value == null\n ) {\n this.isActive = this.matchRoute(this.$route.path)\n }\n },\n\n beforeDestroy () {\n this.list && this.list.unregister(this)\n },\n\n methods: {\n click (e: Event) {\n if (this.disabled) return\n\n this.isBooted = true\n\n this.$emit('click', e)\n this.$nextTick(() => (this.isActive = !this.isActive))\n },\n genIcon (icon: string | false): VNode {\n return this.$createElement(VIcon, icon)\n },\n genAppendIcon (): VNode | null {\n const icon = !this.subGroup ? this.appendIcon : false\n const slot = getSlot(this, 'appendIcon')\n\n if (!icon && !slot) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__append-icon',\n }, [\n slot || this.genIcon(icon),\n ])\n },\n genHeader (): VNode {\n return this.$createElement(VListItem, {\n staticClass: 'v-list-group__header',\n attrs: {\n 'aria-expanded': String(this.isActive),\n role: 'button',\n },\n class: {\n [this.activeClass]: this.isActive,\n },\n props: {\n inputValue: this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.listeners$,\n click: this.click,\n },\n }, [\n this.genPrependIcon(),\n getSlot(this, 'activator'),\n this.genAppendIcon(),\n ])\n },\n genItems (): VNode[] {\n return this.showLazyContent(() => [\n this.$createElement('div', {\n staticClass: 'v-list-group__items',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }, getSlot(this)),\n ])\n },\n genPrependIcon (): VNode | null {\n const icon = this.subGroup && this.prependIcon == null\n ? '$subgroup'\n : this.prependIcon\n const slot = getSlot(this, 'prependIcon')\n\n if (!icon && !slot) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__prepend-icon',\n }, [\n slot || this.genIcon(icon),\n ])\n },\n onRouteChange (to: Route) {\n /* istanbul ignore if */\n if (!this.group) return\n\n const isActive = this.matchRoute(to.path)\n\n /* istanbul ignore else */\n if (isActive && this.isActive !== isActive) {\n this.list && this.list.listClick(this._uid)\n }\n\n this.isActive = isActive\n },\n toggle (uid: number) {\n const isActive = this._uid === uid\n\n if (isActive) this.isBooted = true\n this.$nextTick(() => (this.isActive = isActive))\n },\n matchRoute (to: string) {\n return to.match(this.group) !== null\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-list-group',\n class: this.classes,\n }), [\n this.genHeader(),\n h(VExpandTransition, this.genItems()),\n ])\n },\n})\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot, keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n if (!this.disabled) {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n }\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = getSlot(this, 'default', {\n active: this.isActive,\n toggle: this.toggle,\n })\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemAvatar,\n VListItemIcon,\n VListItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemActionText,\n VListItemAvatar,\n VListItemContent,\n VListItemGroup,\n VListItemIcon,\n VListItemSubtitle,\n VListItemTitle,\n },\n}\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n getSlot(this),\n ),\n ])\n },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData, PropType } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n contentProps: {\n type: Object as PropType>,\n default: () => ({}),\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n ...this.contentProps,\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.disableKeys) return\n\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, getSlot(this))\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, getSlot(this))\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n on: this.$listeners,\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n navigationColor: String,\n navigationTextColor: String,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n if (totalVisible === 0 || isNaN(this.length) || this.length > Number.MAX_SAFE_INTEGER) {\n return []\n }\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const firstItem = 1\n const lastItem = this.length\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n const secondItem = start - 1 === firstItem + 1 ? 2 : '...'\n const beforeLastItem = end + 1 === lastItem - 1 ? end + 1 : '...'\n\n return [1, secondItem, ...this.range(start, end), beforeLastItem, this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.onResize()\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button',\n this.setBackgroundColor(this.navigationColor, {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n disabled,\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }),\n [h(VIcon, { props: { color: this.navigationTextColor } }, [icon])]\n ),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n","import './VPicker.sass'\nimport '../VCard/VCard.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { convertToUnit, getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n).extend({\n name: 'v-picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n landscape: Boolean,\n noTitle: Boolean,\n transition: {\n type: String,\n default: 'fade-transition',\n },\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n computed: {\n computedTitleColor (): string | false {\n const defaultTitleColor = this.isDark ? false : (this.color || 'primary')\n return this.color || defaultTitleColor\n },\n },\n\n methods: {\n genTitle () {\n return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, {\n staticClass: 'v-picker__title',\n class: {\n 'v-picker__title--landscape': this.landscape,\n },\n }), getSlot(this, 'title'))\n },\n genBodyTransition () {\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, getSlot(this))\n },\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-picker__body',\n class: {\n 'v-picker__body--no-title': this.noTitle,\n ...this.themeClasses,\n },\n style: this.fullWidth ? undefined : {\n width: convertToUnit(this.width),\n },\n }, [\n this.genBodyTransition(),\n ])\n },\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-picker__actions v-card__actions',\n class: {\n 'v-picker__actions--no-title': this.noTitle,\n },\n }, getSlot(this, 'actions'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-picker v-card',\n class: {\n 'v-picker--flat': this.flat,\n 'v-picker--landscape': this.landscape,\n 'v-picker--full-width': this.fullWidth,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n }, [\n this.$slots.title ? this.genTitle() : null,\n this.genBody(),\n this.$slots.actions ? this.genActions() : null,\n ])\n },\n})\n","import VPicker from './VPicker'\n\nexport { VPicker }\nexport default VPicker\n"],"names":["mixins","GroupableFactory","RegistrableProvide","extend","name","props","disabled","Boolean","readonly","data","content","header","nextIsActive","computed","classes","_objectSpread","this","isActive","isDisabled","groupClasses","expansionPanels","isReadonly","methods","registerContent","vm","unregisterContent","registerHeader","$on","onClick","unregisterHeader","e","detail","$el","blur","$emit","toggle","_this","$nextTick","render","h","staticClass","class","attrs","String","getSlot","baseMixins","Bootable","Colorable","RegistrableInject","parentIsActive","expansionPanel","watch","immediate","handler","val","oldVal","isBooted","created","beforeDestroy","_this2","VExpandTransition","showLazyContent","setBackgroundColor","color","directives","value","open","ripple","disableIconRotate","expandIcon","type","default","hideActions","Object","hasMousedown","genIcon","icon","$createElement","VIcon","VFadeTransition","tabindex","on","$listeners","click","mousedown","mouseup","BaseItemGroup","provide","accordion","flat","hover","focusable","inset","popout","tile","options","call","$attrs","hasOwnProperty","breaking","Array","isArray","length","updateItem","item","index","getValue","nextValue","toggleMethod","VTextField","model","prop","event","chips","clearable","counterSizeString","counterString","hideInput","multiple","placeholder","prependIcon","showSize","Number","validator","v","includes","smallChips","truncateLength","undefined","wrapInArray","every","_typeof","computedCounterValue","fileCount","lazyValue","File","$vuetify","lang","t","bytes","internalArrayValue","reduce","_ref","_ref$size","size","humanReadableFileSize","base","internalValue","get","set","isDirty","isLabelActive","text","persistentPlaceholder","isFocused","hasLabel","map","file","_file$name","_file$size","truncatedText","truncateText","concat","hasChips","consoleError","deepEqual","$refs","input","files","clearableCallback","genChips","VChip","small","splice","genControl","style","mergeStyles","display","genInput","domProps","change","onInput","genSelections","genPrependSlot","_this3","genSlot","genSelectionText","counter","_this4","children","$scopedSlots","selection","forEach","push","genTextFieldSlot","_this5","node","target","nodeName","_toConsumableArray","initialValue","onKeyDown","str","charsKeepOneSide","Math","floor","slice","VSheet","Applicationable","SSRBootable","height","padless","tag","applicationProperty","absolute","app","fixed","computedBottom","isPositioned","application","bottom","computedLeft","left","computedRight","right","styles","parseInt","isNaN","convertToUnit","updateApplication","clientHeight","BindsAttrs","form","inheritAttrs","lazyValidation","inputs","watchers","errorBag","errors","values","deep","watchInput","watcher","$watch","$set","_uid","valid","shouldValidate","validate","filter","reset","resetErrorBag","setTimeout","resetValidation","register","unregister","found","find","i","unwatch","$delete","novalidate","attrs$","submit","breakpoints","breakpointProps","offsetProps","upperFirst","orderProps","propMap","col","keys","offset","order","breakpointClass","className","breakpoint","replace","toLowerCase","cache","Map","Vue","functional","cols","alignSelf","cacheKey","parent","classList","hasColClasses","some","startsWith","_defineProperty","mergeData","Grid","id","fluid","key","ALIGNMENT","makeProps","prefix","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","dense","noGutters","createSimpleFunctional","VGrid","trim","join","Delayable","Toggleable","onMouseEnter","runDelay","onMouseLeave","element","_g","mouseenter","mouseleave","consoleWarn","SIZE_MAP","isFontAwesome5","iconType","isSvgPath","test","Sizeable","Themeable","required","medium","hasClickListener","listeners$","getIcon","iconName","$slots","remapInternalIcon","getSize","sizes","xSmall","large","xLarge","explicitSize","getDefaultData","getSvgWrapperData","fontSize","wrapperData","width","applyColors","themeClasses","setTextColor","renderFontIcon","newChildren","delimiterIndex","indexOf","isMaterialIcon","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","nativeOn","$_wrapperFor","textContent","innerHTML","hasIntersect","window","VResponsive","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","position","src","srcset","transition","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","computedAspectRatio","normalisedSrc","aspect","aspectRatio","__cachedImage","backgroundImage","backgroundPosition","mode","loadImage","init","mounted","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","naturalHeight","onError","onload","decode","catch","err","message","then","onerror","img","timeout","arguments","poll","complete","genContent","_b","__genPlaceholder","slot","appear","modifiers","once","__cachedSizer","genChildren","genMessage","Validatable","appendIcon","backgroundColor","hideDetails","hideSpinButtons","hint","label","loading","persistentHint","hasMouseDown","hasState","showDetails","computedId","hasDetails","messagesToDisplay","hasHint","hasMessages","$_modelEvent","validations","validation","validationResult","beforeCreate","$options","genAppendSlot","title","genInputSlot","genMessages","genDefaultSlot","genLabel","cb","extraData","eventName","kebabCase","hasListener","localeKey","prepend","prependInner","append","appendOuter","clear","_a","validationState","dark","light","preventDefault","stopPropagation","onMouseDown","onMouseUp","ref","VLabel","focused","for","VMessages","scopedSlots","location","Comparable","Proxyable","activeClass","mandatory","max","internalLazyValue","items","selectedIndex","selectedItem","selectedItems","selectedValues","valueComparator","intern","genData","updateInternalValue","updateMandatory","_isDestroyed","valueIndex","updateItemsState","updateMultiple","updateSingle","last","reverse","defaultValue","findIndex","isSame","itemGroup","ctx","listeners","newData","functionalThemeClasses","isInList","list","inject","isInMenu","isInNav","expand","nav","rounded","subheader","threeLine","twoLine","groups","g","listClick","uid","_step","_iterator","_createForOfIteratorHelper","s","n","done","group","f","RegExp","noAction","subGroup","$route","matchRoute","path","genAppendIcon","VListItemIcon","genHeader","VListItem","inputValue","genPrependIcon","genItems","onRouteChange","to","match","Routable","ToggleableFactory","Ripple","isInGroup","listItemGroup","inactive","link","selectable","proxyClass","isClickable","removed","genAttrs","_this$generateRouteLi","generateRouteLink","keydown","keyCode","keyCodes","enter","active","_ref$children","filteredChild","VNode","isComment","VAvatar","horizontal","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListGroup","VListItemAction","VListItemAvatar","VListItemGroup","_this$$vuetify$applic","bar","top","footer","insetFooter","paddingTop","paddingRight","paddingBottom","paddingLeft","Dependent","Returnable","Roundable","Menuable","ClickOutside","Resize","theme","auto","closeOnClick","closeOnContentClick","disableKeys","maxHeight","offsetX","offsetY","openOnHover","origin","contentProps","calculatedTopAuto","defaultOffset","hasJustFocused","listIndex","resizeTimeout","tiles","activeTile","calculatedLeft","menuWidth","dimensions","parseFloat","calculatedMinWidth","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","maxWidth","minWidth","min","activator","nudgeWidth","pageWidth","calculatedTop","calcYOverflow","calcTop","hasClickableTiles","tabIndex","transformOrigin","zIndex","activeZIndex","isContentActive","next","prev","add","scrollTop","contentHeight","offsetTop","goTo","appOffset","duration","container","remove","callActivate","activate","updateDimensions","requestAnimationFrame","startTransition","calcTopAuto","calcScrollPosition","querySelector","maxScrollTop","scrollHeight","offsetHeight","computedTop","from","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","getTiles","tab","down","nextTile","up","prevTile","end","lastTile","home","firstTile","closeConditional","contains","genActivatorAttributes","attributes","Activatable","genActivatorListeners","genTransition","genDirectives","include","getOpenDependentElements","getScopeIdAttrs","rootThemeClasses","roundedClasses","activatorFixed","menuable__content__active","contentClass","getAttribute","scroll","mouseEnterHandler","mouseLeaveHandler","getContentSlot","querySelectorAll","relatedTarget","callDeactivate","_this6","esc","getActivator","focus","onResize","offsetWidth","clearTimeout","_this7","attach","arg","genActivator","VThemeProvider","VMenu","Mobile","Overlayable","Touch","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","miniVariant","miniVariantWidth","permanent","stateless","temporary","touchless","isMouseover","touchArea","stackMinZIndex","isMobile","isMiniVariant","computedMaxHeight","hasApp","computedTransform","isBottom","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","hideOverlay","translate","transform","removeOverlay","genOverlay","updateMiniVariant","beforeMount","calculateTouchArea","parentNode","parentRect","getBoundingClientRect","genAppend","genPosition","genBackground","VImg","swipeLeft","swipeRight","genListeners","transitionend","currentTarget","resizeEvent","document","createEvent","initUIEvent","dispatchEvent","genPrepend","genBorder","abs","touchendX","touchstartX","clientWidth","unshift","opacity","__scrim","computedOpacity","VOverlay","Intersectable","onVisible","circle","navigationColor","navigationTextColor","nextIcon","prevIcon","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","nextAriaLabel","wrapperAriaLabel","maxButtons","selected","MAX_SAFE_INTEGER","maxLength","range","even","firstItem","lastItem","start","secondItem","beforeLastItem","parentElement","innerWidth","previous","fn","genItem","isCurrentPage","ariaLabel","toString","genList","quiet","rtl","Elevatable","fullWidth","landscape","noTitle","computedTitleColor","defaultTitleColor","isDark","genTitle","genBodyTransition","genBody","genActions","elevationClasses","actions"],"sourceRoot":""}