{"version":3,"sources":["jsdelivr-header.js","/npm/image-editor-little@0.1.5/dist/lib.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAIA,SAAS,eAAe,GACpB,GAAK,GAEgB,oBAAV,OAAX,CACA,IAAI,EAAQ,SAAS,cAAc,SAKnC,OAJA,EAAM,aAAa,QAAS,UAE5B,EAAM,UAAY,EAClB,SAAS,KAAK,YAAY,GACnB,CANiC,CAO5C,CAEA,SAAS,gBAAiB,GAAM,OAAQ,GAAqB,iBAAP,GAAoB,YAAa,EAAM,EAAY,QAAI,CAAI,CAEjH,IAAI,MAAQ,QAAQ,SAChB,eAAiB,gBAAgB,OACjC,SAAW,gBAAgB,QAAQ,cAEnC,eAAuC,oBAAf,WAA6B,WAA+B,oBAAX,OAAyB,OAA2B,oBAAX,OAAyB,OAAyB,oBAAT,KAAuB,KAAO,CAAC,EAE9L,SAAS,cAAe,GACvB,OAAO,GAAK,EAAE,YAAc,OAAO,UAAU,eAAe,KAAK,EAAG,WAAa,EAAW,QAAI,CACjG,CAEA,SAAS,qBAAqB,EAAI,GACjC,OAAiC,EAA1B,EAAS,CAAE,QAAS,CAAC,GAAgB,EAAO,SAAU,EAAO,OACrE,CAEA,IAyVI,OAzVA,WAAa,sBAAqB,SAAU;;;;;;CAQ/C,WAEA,IAAI,EAAS,CAAC,EAAE,eAEhB,SAAS,IAGR,IAFA,IAAI,EAAU,GAEL,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAC1C,IAAI,EAAM,UAAU,GACpB,GAAK,EAAL,CAEA,IAAI,SAAiB,EAErB,GAAgB,WAAZ,GAAoC,WAAZ,EAC3B,EAAQ,KAAK,QACP,GAAI,MAAM,QAAQ,IAAQ,EAAI,OAAQ,CAC5C,IAAI,EAAQ,EAAW,MAAM,KAAM,GAC/B,GACH,EAAQ,KAAK,EAEf,MAAO,GAAgB,WAAZ,EACV,IAAK,IAAI,KAAO,EACX,EAAO,KAAK,EAAK,IAAQ,EAAI,IAChC,EAAQ,KAAK,EAdE,CAkBnB,CAEA,OAAO,EAAQ,KAAK,IACrB,CAEK,EAAO,SACX,EAAW,QAAU,EACrB,EAAO,QAAU,GAEjB,OAAO,WAAa,CAEtB,CAtCA,EAuCA,IAEI,YAAc,SAAW,GAAY,OAAO,WAC5C,IAAI,EAAO,GACP,EAAK,WACL,EAAO,GACP,IAAK,IAAI,EAAI,EAAG,EAAI,GAAI,IACpB,GAAQ,OAAO,aAAa,KAAK,MAAsB,GAAhB,KAAK,UAAiB,IAAI,oBAErE,OAAO,CACX,EAEA,IADA,IACO,EAAS,IAAI,IAChB,IAGJ,OADA,EAAS,IAAI,GAAM,GACZ,CACX,CAAI,CAfc,CAeZ,IAAI,KACN,QAAU,SAAU,EAAG,EAAG,GAC1B,IAAI,EAAO,EAAE,SAAS,IAClB,EAAO,EAAE,SAAS,IAClB,EAAO,EAAE,SAAS,IACtB,MAAO,KAAO,EAAK,OAAS,EAAI,IAAM,EAAO,IAAS,EAAK,OAAS,EAAI,IAAM,EAAO,IAAS,EAAK,OAAS,EAAI,IAAM,EAAO,EACjI,EACI,WAAa,SAAU,EAAU,GAiBjC,MAAO,CAdH,EAAQ,EAAI,EAAS,EACjB,EAAQ,EAGR,EAAS,EAEb,EAAQ,EAAI,EAAS,EACjB,EAAQ,EAGR,EAAS,EAET,KAAK,IAAI,EAAQ,EAAI,EAAS,GAC9B,KAAK,IAAI,EAAQ,EAAI,EAAS,GAE1C,EAEI,kBAAoB,SAAU,EAAO,EAAO,QAC9B,IAAV,IAAoB,EAAQ,OAAO,iBACxB,IAAX,IAAqB,EAAS,OAAO,aACzC,IAAI,EAAI,EAAM,MAAQ,EAAM,OAC5B,OAAI,EAAS,EAAM,QAAU,EAAQ,EAAM,MAC9B,EAAM,MAAQ,GACd,EAAM,OAAS,EAEb,CAAC,KAAK,MAAM,EAAS,GAAI,KAAK,MAAM,IAGpC,CAAC,KAAK,MAAM,GAAQ,KAAK,MAAM,EAAQ,IAG/C,CAAC,KAAK,MAAM,EAAM,OAAQ,KAAK,MAAM,EAAM,QACtD,EAEI,eAAiB,SAAU,EAAK,EAAG,GACnC,IAAI,EAAM,EAAI,wBAqBd,MAAO,CACH,EAnBA,EAAI,EAAI,MACD,EAAI,MAEN,EAAI,EAAI,KACN,EAGA,EAAI,EAAI,KAaf,EAXA,EAAI,EAAI,OACD,EAAI,OAEN,EAAI,EAAI,IACN,EAGA,EAAI,EAAI,IAMvB,EACI,mBAAqB,SAAU,EAAK,EAAG,GACvC,IAAI,EAAM,EAAI,wBACd,MAAO,CACH,EAAG,EAAI,EAAI,KACX,EAAG,EAAI,EAAI,IAEnB,EACI,iBAAmB,SAAU,GAC7B,IAAI,EAAW,EAAG,SAAU,EAAU,EAAG,QAAS,EAAY,EAAG,UAAW,EAAW,EAAG,SAAU,EAAY,EAAG,UAAW,EAAU,EAAG,QAAS,EAAQ,EAAG,MAC3J,EAAK,WAAW,EAAU,GAAU,EAAI,EAAG,GAAI,EAAI,EAAG,GAAI,EAAI,EAAG,GAAI,EAAI,EAAG,GAChF,EAAU,MAAQ,EAAI,EAAS,QAC/B,EAAU,OAAS,EAAI,EAAS,QAChC,OAAO,OAAO,EAAU,MAAO,CAC3B,MAAO,EAAI,KACX,OAAQ,EAAI,OAEhB,OAAO,OAAO,EAAU,MAAO,CAC3B,IAAK,EAAI,KACT,KAAM,EAAI,OAEd,IAAI,EAAO,WACP,EAAQ,UAAU,EAAO,EAAI,EAAS,QAAS,EAAI,EAAS,QAAS,EAAI,EAAS,QAAS,EAAI,EAAS,QAAS,EAAG,EAAG,EAAI,EAAS,QAAS,EAAI,EAAS,QAC9J,EAEA,OADA,IACO,CACX,EACI,cAAgB,SAAU,EAAU,GACpC,IAAI,EAAK,EAAS,EAAG,EAAK,EAAS,EAC/B,EAAK,EAAO,EAAG,EAAK,EAAO,EAC/B,OAAI,GAAM,GAAM,GAAM,EACX,CACH,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,IAGhB,GAAM,GAAM,EAAK,EACV,CACH,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,IAGhB,EAAK,GAAM,GAAM,EACV,CACH,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,IAGb,CACH,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GACZ,CAAE,EAAG,EAAI,EAAG,GAEpB,EACI,kBAAoB,SAAU,EAAW,EAAU,EAAU,GAC7D,IAAI,EAAa,EAAU,wBACvB,EAAW,KAAO,OAAO,YAAc,EAAU,EAAS,OAAS,GACnE,OAAO,OAAO,EAAS,MAAO,CAAE,OAAQ,SAGxC,OAAO,OAAO,EAAS,MAAO,CAC1B,QAAS,GAAK,EAAS,OAAS,OAGpC,EAAW,MAAQ,EAAS,MAAQ,EAAW,MAC/C,OAAO,OAAO,EAAS,MAAO,CAAE,KAAM,MAAO,MAAO,UAGpD,OAAO,OAAO,EAAS,MAAO,CAAE,MAAO,MAAO,KAAM,SAE5D,EACI,gBAAkB,WAElB,IADA,IAAI,EAAO,GACF,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAK,GAAM,UAAU,GAEzB,IAAI,EAAY,MAAM,OAAO,MAa7B,OAZA,MAAM,WAAU,WACZ,EAAK,SAAQ,SAAU,GACd,IAEc,mBAAR,EACP,EAAI,EAAU,SAGd,EAAI,QAAU,EAAU,QAEhC,GACJ,GAAG,CAAC,IACG,CACX,EACI,mBAAqB,SAAU,GAC/B,EAAQ,YAAc,UACtB,EAAQ,UAAY,EACpB,EAAQ,YACR,EAAQ,OAAO,EAAG,EAAQ,OAAO,OAAS,EAAI,IAC9C,EAAQ,OAAO,EAAQ,OAAO,MAAO,EAAQ,OAAO,OAAS,EAAI,IACjE,EAAQ,QACZ,EACI,iBAAmB,SAAU,GAC7B,EAAQ,YAAc,UACtB,EAAQ,UAAY,EACpB,EAAQ,YACR,EAAQ,OAAO,EAAQ,OAAO,MAAQ,EAAI,GAAK,GAC/C,EAAQ,OAAO,EAAQ,OAAO,MAAQ,EAAG,EAAQ,OAAO,QACxD,EAAQ,QACZ,EACI,cAAgB,SAAU,GAC1B,IAAI,EAAQ,EAAG,MAAO,EAAM,EAAG,IAAK,EAAM,EAAG,IAAK,EAAM,EAAG,IAAK,EAAW,EAAG,SAAU,EAAQ,EAAG,MAAO,EAAK,EAAG,KAAM,OAAc,IAAP,EAAgB,GAAK,EAChJ,EAAU,EAAI,WAAW,MACzB,EAAS,EAAI,wBACjB,EAAI,MAAe,GAAP,EACZ,EAAI,OAAgB,GAAP,EACT,OAAO,WAAa,EAAM,QAAU,EAAO,MAAQ,IAAM,EACzD,EAAI,MAAM,KAAO,EAAI,EAAI,EAAO,MAAQ,GAAK,KAG7C,EAAI,MAAM,KAAO,EAAI,EAAI,GAAK,KAE9B,OAAO,YAAc,EAAM,QAAU,EAAO,OAAS,IAAM,EAC3D,EAAI,MAAM,IAAM,EAAI,EAAI,EAAO,OAAS,GAAK,KAG7C,EAAI,MAAM,IAAM,EAAI,EAAI,GAAK,KAEjC,EAAQ,UAAU,GAAQ,EAAI,EAAI,GAAQ,EAAS,SAAU,EAAI,EAAI,GAAQ,EAAS,QAAS,EAAO,EAAS,QAAU,EAAG,EAAO,EAAS,QAAU,EAAG,EAAG,EAAU,GAAP,EAAkB,GAAP,GAC1K,mBAAmB,GACnB,iBAAiB,EACrB,EACI,QAAU,SAAU,EAAU,EAAS,GACvC,IAAI,EAAK,WAAW,EAAU,GAAU,EAAI,EAAG,GAAI,EAAI,EAAG,GAAI,EAAI,EAAG,GAAI,EAAI,EAAG,GAGhF,OAFA,EAAO,MAAM,KAAO,EAAI,KACxB,EAAO,MAAM,IAAM,EAAI,KAChB,CAAC,EAAG,EACf,EACI,gBAAkB,SAAU,EAAM,EAAU,EAAS,EAAS,EAAO,GACrE,IAAI,EAAK,WAAW,EAAU,GAAU,EAAI,EAAG,GAAI,EAAI,EAAG,GAAI,EAAI,EAAG,GAAI,EAAI,EAAG,GAC5E,EAAO,WACP,EAAQ,YACR,IAAI,EAAO,EAAK,KAAO,EACV,SAAT,GACA,EAAQ,SAAW,QACnB,EAAQ,KAAK,EAAI,EAAQ,EAAM,EAAI,EAAQ,EAAM,EAAI,EAAQ,EAAK,KAAM,EAAI,EAAQ,EAAK,OAGzF,EAAQ,QAAQ,EAAI,EAAS,EAAI,EAAK,EAAO,EAAI,EAAS,EAAI,EAAK,EAAQ,EAAI,EAAK,EAAQ,EAAI,EAAK,EAAO,EAAG,EAAG,EAAI,KAAK,IAE/H,EAAQ,YAAc,EAAK,MAC3B,EAAQ,UAAY,EAAK,KAAO,EAChC,EAAQ,SACR,EAAQ,WACZ,EAEA,OADA,IACO,CACX,EACI,SAAW,SAAU,EAAS,EAAQ,EAAS,EAAO,GACtD,EAAQ,YACR,EAAQ,OAAO,EAAQ,EAAI,EAAO,EAAQ,EAAI,GAC9C,EAAQ,OAAO,EAAO,EAAI,EAAO,EAAO,EAAI,GAC5C,EAAQ,UAAY,EAAK,KAAO,EAChC,EAAQ,YAAc,EAAK,MAC3B,EAAQ,QAAU,QAClB,EAAQ,SAAW,QACnB,EAAQ,QACZ,EACI,WAAa,SAAU,EAAS,EAAG,EAAG,EAE1C,QACsB,IAAd,IAAwB,EAAY,GASxC,IARA,IAAI,EAAY,GACZ,EAAU,EAAQ,aAAa,EAAG,EAAG,EAAQ,OAAO,MAAO,EAAQ,OAAO,QAC1E,EAAI,KAAK,KAAK,EAAQ,OAAO,MAAQ,GACrC,EAAI,KAAK,KAAK,EAAQ,OAAO,OAAS,GACtC,EAAW,KAAK,IAAI,EAAG,KAAK,OAAO,EAAI,GAAa,IACpD,EAAW,KAAK,IAAI,EAAG,KAAK,OAAO,EAAI,GAAa,IACpD,EAAS,KAAK,IAAI,EAAG,KAAK,KAAK,EAAI,GAAa,GAChD,EAAS,KAAK,IAAI,EAAG,KAAK,KAAK,EAAI,GAAa,GAC7C,EAAW,GAAQ,CAgBtB,IAfA,IAAI,EAAM,EACN,EAAU,WAEV,IAAI,EAAQ,EAAW,GADvB,GAAO,GAEH,EAAO,EAAQ,EAAI,EACnB,EAAO,KAAK,MAAM,EAAQ,GAC1B,EAAY,KAAK,MAAM,EAAO,GAAQ,EAAQ,OAAO,MAAQ,KAAK,MAAM,EAAO,GAC/E,EAAI,EAAQ,KAAiB,EAAZ,GACjB,EAAI,EAAQ,KAAiB,EAAZ,EAAgB,GACjC,EAAI,EAAQ,KAAiB,EAAZ,EAAgB,GACjC,EAAQ,QAAQ,EAAG,EAAG,GACrB,EAAU,MAAK,SAAU,GAAS,OAAO,EAAM,IAAM,GAAQ,EAAM,IAAM,CAAM,KAChF,EAAU,KAAK,CAAE,EAAG,EAAM,EAAG,EAAM,MAAO,GAElD,EACO,EAAM,GACT,IAEJ,GAAY,CAChB,CACA,EAAU,SAAQ,SAAU,GACxB,EAAQ,UAAY,EAAM,MAC1B,EAAQ,SAAS,EAAM,EAAI,EAAM,EAAM,EAAI,EAAM,EAAM,EAC3D,GACJ,GAGA,SAAW,GACP,EAAO,EAAgB,QAAI,GAAK,UAChC,EAAO,EAAe,OAAI,GAAK,SAC/B,EAAO,EAAe,OAAI,GAAK,QAClC,CAJD,CAIG,SAAW,OAAS,CAAC,IAExB,eAAe;;;;;;;;;;;;;;;AAiBf,IAAI,SAAW,WAQX,OAPA,SAAW,OAAO,QAAU,SAAkB,GAC1C,IAAK,IAAI,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAE5C,IAAK,IAAI,KADT,EAAI,UAAU,GACO,OAAO,UAAU,eAAe,KAAK,EAAG,KAAI,EAAE,GAAK,EAAE,IAE9E,OAAO,CACX,EACO,SAAS,MAAM,KAAM,UAChC,EAEA,SAAS,iBACL,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,EAAK,UAAU,OAAQ,EAAI,EAAI,IAAK,GAAK,UAAU,GAAG,OACxE,IAAI,EAAI,MAAM,GAAI,EAAI,EAA3B,IAA8B,EAAI,EAAG,EAAI,EAAI,IACzC,IAAK,IAAI,EAAI,UAAU,GAAI,EAAI,EAAG,EAAK,EAAE,OAAQ,EAAI,EAAI,IAAK,IAC1D,EAAE,GAAK,EAAE,GACjB,OAAO,CACX,CAEA,IAAI,IAAM,MAAM,YAAW,SAAU,EAAI,GACrC,IAAI,EAAO,EAAG,KAAM,EAAQ,EAAG,MAAO,EAAS,EAAG,OAAQ,EAAS,EAAG,OAAQ,EAAc,EAAG,YAC/F,OAAQ,MAAM,cAAc,MAAO,CAAE,UAAW,cAAe,MAAO,EAAO,OAAQ,EAAQ,MAAO,6BAA8B,IAAK,GAC1H,SAAT,GAAoB,MAAM,cAAc,OAAQ,CAAE,MAAO,EAAO,OAAQ,EAAQ,OAAQ,EAAQ,KAAM,cAAe,YAAa,IACzH,WAAT,GAAsB,MAAM,cAAc,UAAW,CAAE,GAAI,EAAQ,EAAG,GAAI,EAAS,EAAG,GAAI,EAAQ,EAAG,GAAI,EAAS,EAAG,OAAQ,EAAQ,KAAM,cAAe,YAAa,IAC/K,IACA,IAAI,aAAe,CACf,OAAQ,UACR,YAAa,GAGjB,IAAI,KAAO,sBAAqB,SAAU,EAAQ,GAClD,OAAO,eAAe,EAAS,aAAc,CAAE,OAAO,IACtD,EAAQ,UAAY,CAChB,6BAA8B,+BAC9B,gBAAiB,EACjB,uBAAwB,EACxB,gBAAiB,IACjB,oBAAqB,QACrB,kBAAmB,CAAC,MAAO,OAAQ,QAAS,UAC5C,kBAAmB,CACf,IAAK,EACL,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,MAAO,EACP,MAAO,IAGf,EAAQ,YAAc,SAAU,GAAS,OAAO,EAAM,QAAO,SAAU,EAAO,EAAO,GAAQ,OAAO,EAAK,QAAQ,KAAW,CAAO,GAAI,CAEvI,IAEA,cAAc,MACd,IAAI,OAAS,KAAK,UACd,OAAS,KAAK,YAEd,iBAAmB,sBAAqB,SAAU,EAAQ,GAC9D,IAAI,EAAY,gBAAkB,eAAe,UAAa,WAS1D,OARA,EAAW,OAAO,QAAU,SAAS,GACjC,IAAK,IAAI,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAE5C,IAAK,IAAI,KADT,EAAI,UAAU,GACO,OAAO,UAAU,eAAe,KAAK,EAAG,KACzD,EAAE,GAAK,EAAE,IAEjB,OAAO,CACX,EACO,EAAS,MAAM,KAAM,UAChC,EACA,OAAO,eAAe,EAAS,aAAc,CAAE,OAAO,IAoDtD,EAAQ,eAjDa,SAAU,GAC3B,IAAI,EAAW,EAAG,SAAU,EAAW,EAAG,SAAU,EAAQ,EAAG,MAAO,EAAK,EAAG,WAAY,OAAoB,IAAP,EAAgB,KAAK,UAAU,oBAAsB,EAAI,EAAK,EAAG,UAAW,OAAmB,IAAP,EAAgB,GAAK,EAAI,EAAa,EAAG,WAAY,EAAc,EAAG,YAAa,EAAa,EAAG,WAClS,OAAQ,eAAe,cAAc,MAAO,CAAE,MAAO,EAAS,CAAE,YAA0B,UAAb,EAAuB,EAAY,EAAG,WAAyB,WAAb,EAAwB,EAAY,EAAG,cAA4B,QAAb,EAAqB,EAAY,EAAG,aAA2B,SAAb,EAAsB,EAAY,GAAK,IAC1Q,eAAe,cAAc,MAAO,CAAE,MAAO,EAAS,CAAE,SAAU,YAAc,WACxE,IAAI,EAAyB,EAAZ,EACb,EAAO,EAAW,IAAM,EAAY,IAAQ,EAAW,OAAS,EAAM,EAAa,EACnF,EAAQ,EAAW,KAAO,EAAY,KAAS,EAAW,MAAQ,EAAM,EAAa,EAKzF,OAHA,GADA,EAAO,EAAO,EAAI,EAAI,GACR,EAAa,EAAY,MAAQ,EAAY,MAAQ,EAAa,EAEhF,GADA,EAAM,EAAM,EAAI,EAAI,GACR,EAAa,EAAY,OAAS,EAAY,OAAS,EAAa,EACxE,GACJ,IAAK,QACD,MAAO,CACH,UAAW,EAAY,uBACvB,aAAc,EAAY,uBAC1B,YAAa,EAAY,YAAc,EACvC,KAAM,EACN,IAAK,GAEb,IAAK,OACD,MAAO,CACH,UAAW,EAAY,uBACvB,aAAc,EAAY,uBAC1B,WAAY,EAAY,YAAc,EACtC,MAAO,EACP,IAAK,GAEb,IAAK,SACD,MAAO,CACH,WAAY,EAAY,uBACxB,YAAa,EAAY,uBACzB,aAAc,EAAY,YAAc,EACxC,IAAK,EACL,KAAM,GAGd,QACI,MAAO,CACH,WAAY,EAAY,uBACxB,YAAa,EAAY,uBACzB,UAAW,EAAY,YAAc,EACrC,OAAQ,EACR,KAAM,GAGrB,CA3C2E,GA2CtE,KACV,EACR,CAGA,IAEA,cAAc,kBACd,IAAI,iBAAmB,iBAAiB,eAEpC,UAAY,sBAAqB,SAAU,EAAQ,GACvD,IACQ,EADJ,EAAa,gBAAkB,eAAe,YAC1C,EAAgB,SAAU,EAAG,GAI7B,OAHA,EAAgB,OAAO,gBAClB,CAAE,UAAW,cAAgB,OAAS,SAAU,EAAG,GAAK,EAAE,UAAY,CAAG,GAC1E,SAAU,EAAG,GAAK,IAAK,IAAI,KAAK,EAAO,EAAE,eAAe,KAAI,EAAE,GAAK,EAAE,GAAI,EACtE,EAAc,EAAG,EAC5B,EACO,SAAU,EAAG,GAEhB,SAAS,IAAO,KAAK,YAAc,CAAG,CADtC,EAAc,EAAG,GAEjB,EAAE,UAAkB,OAAN,EAAa,OAAO,OAAO,IAAM,EAAG,UAAY,EAAE,UAAW,IAAI,EACnF,GAEJ,OAAO,eAAe,EAAS,aAAc,CAAE,OAAO,IAKtD,EAAQ,eAAiB,iBAAiB,eAC1C,IAAI,EAAyB,SAAU,GAEnC,SAAS,IACL,IAAI,EAAmB,OAAX,GAAmB,EAAO,MAAM,KAAM,YAAc,KAiBhE,OAhBA,EAAM,OAAS,KACf,EAAM,WAAa,KACnB,EAAM,8BAAgC,KACtC,EAAM,WAAa,KACnB,EAAM,cAAgB,KACtB,EAAM,aAAc,EACpB,EAAM,WAAY,EAClB,EAAM,SAAW,SAAU,GACvB,EAAM,eACV,EACA,EAAM,QAAU,SAAU,GACtB,IAAI,EAAK,EAAM,MAAO,EAAiB,EAAG,eAAgB,EAAS,EAAG,OACjE,EAAM,aAAgB,EAAM,WAAc,EAAM,WAAW,SAAS,EAAE,SAAY,EAAM,OAAO,SAAS,EAAE,UAAW,IAAkB,GACxI,EAAe,EAEvB,EACO,CACX,CAgRA,OApSA,EAAU,EAAS,GAqBnB,EAAQ,UAAU,kBAAoB,WAClC,IAAI,EAAQ,KACZ,OAAO,YAAW,WAAc,OAAO,EAAM,WAAY,CAAO,IAChE,IAAI,EAAK,KAAK,MAAO,EAAW,EAAG,SAAU,EAAS,EAAG,OACzD,KAAK,OAAS,SAAS,YAAY,MACnC,KAAK,cAAgB,KAAK,yBAAyB,GACnD,KAAK,cAAc,EACvB,EACA,EAAQ,UAAU,mBAAqB,SAAU,GAC1B,MAAf,KAAK,SACL,KAAK,OAAS,SAAS,YAAY,OAEvC,IAAI,EAAa,EAAU,OAAQ,EAAe,EAAU,SAAU,EAAW,EAAU,QACvF,EAAK,KAAK,MAAO,EAAS,EAAG,OAAQ,EAAU,EAAG,QAAS,EAAW,EAAG,SAC7E,KAAK,cAAgB,KAAK,yBAAyB,KAAK,MAAM,UAC9D,IAAI,EAAoB,EAAU,qBAAuB,KAAK,MAAM,oBAChE,IAAe,GACf,IAAa,GACb,IAAiB,GACjB,KACI,IACA,KAAK,gBACL,KAAK,WAAW,UAEpB,KAAK,cAAc,GAE3B,EACA,EAAQ,UAAU,mBAAqB,WACnC,KAAK,aAAc,EACnB,KAAK,WAAY,CACrB,EACA,EAAQ,UAAU,qBAAuB,WACrC,KAAK,aAAc,EACnB,KAAK,eACT,EACA,EAAQ,UAAU,OAAS,WACvB,OAAO,KAAK,MAAM,QACtB,EACA,EAAQ,UAAU,cAAgB,SAAU,GACxC,GAAI,GAAyB,MAAf,KAAK,OAAgB,CAC/B,IAAK,KAAK,aAAe,KAAK,WAAW,WAAY,CACjD,IAAI,EAAqB,KAAK,MAAM,mBACpC,KAAK,WAAa,KAAK,kBACvB,KAAK,WAAW,MAAM,QAAU,IAChC,KAAK,WAAW,MAAM,WAAa,YAAc,GAAsB,KAAK,UAAU,iBAAmB,KACxG,KAAK,MAAM,oBAAsB,OAAO,SAAS,MAAM,YAAY,KAAK,YACzE,OAAO,iBAAiB,SAAU,KAAK,UACvC,OAAO,iBAAiB,QAAS,KAAK,QAC1C,CACA,KAAK,eACT,MACS,KAAK,YAAc,KAAK,WAAW,YACxC,KAAK,eAEb,EACA,EAAQ,UAAU,cAAgB,SAAU,GACxC,IAAI,EAAQ,UACU,IAAlB,IAA4B,EAAgB,GAC5C,GAAiB,KAAK,cAAc,OACpC,KAAK,gBAGT,KAAK,mBAAmB,CAAE,SAAU,KAAK,cAAc,GAAgB,WAAY,KAAK,OAAO,0BAA2B,SAAU,EAAW,GAC3I,IAAI,EACA,EAAK,EAAM,MAAO,EAAoB,EAAG,kBAAmB,EAAkB,EAAG,gBACrF,GAAI,IAAc,GAAkD,iBAApB,EAC5C,EAAM,cAAc,EAAgB,OAEnC,CACD,IAAI,EAAK,EAAM,MAAO,EAAoB,EAAG,gBAAiB,EAAQ,EAAG,MACrE,EAAK,EAAM,yBAAyB,GAAO,EAAY,EAAG,IAAK,EAAa,EAAG,KAC/E,EAAU,EAAK,IAAK,EAAW,EAAK,KACpC,EAAW,EAAM,cAAc,GAC/B,EAAK,EAAoB,CAAE,IAAK,EAAS,KAAM,GAAa,CAAE,IAAK,EAAW,KAAM,GAAc,EAAQ,EAAG,IAAK,EAAO,EAAG,KAChI,GAAI,EAAmB,CACnB,IAAI,EAAa,EAAM,OAAO,wBAC1B,EAAc,EAAM,WAAW,wBAC0L,GAA5N,EAAkC,mBAAtB,EAAmC,EAAkB,CAAE,WAAY,EAAY,YAAa,EAAa,SAAU,EAAU,MAAO,EAAO,WAAY,EAAY,UAAW,IAAe,GAA8B,IAAK,EAAO,EAAG,KACvP,EAAM,WAAW,MAAM,KAAO,EAAK,UAAY,KAC/C,EAAM,WAAW,MAAM,IAAM,EAAM,UAAY,IACnD,KACK,CACD,IAAI,EAAuB,EACvB,EAAwB,EAC5B,GAAI,EAAM,MAAM,mBAAoB,CAChC,IAAI,EAAW,EAAM,MAAM,mBAAmB,wBAC9C,GAAwB,EAAS,IACjC,GAAyB,EAAS,IACtC,CACA,IAAI,EAAK,CAAC,EAAQ,OAAO,YAAa,EAAO,OAAO,aAChD,EADkG,EAAG,GAC1E,EAC3B,EAF4E,EAAG,GAEtD,EAC7B,EAAM,WAAW,MAAM,KAAO,EAAU,UAAY,KACpD,EAAM,WAAW,MAAM,IAAM,EAAS,UAAY,IACtD,CACA,EAAM,WAAW,MAAM,MAAQ,KAC/B,EAAM,WAAW,MAAM,OAAS,KAChC,EAAM,mBAAmB,CACrB,SAAU,EACV,UAAW,EAAY,EAAK,IAC5B,WAAY,EAAa,EAAK,KAC9B,WAAY,EAAM,OAAO,wBACzB,YAAa,EAAM,WAAW,0BAC/B,WACC,EAAM,4BAA4B,IACK,MAAnC,EAAM,WAAW,MAAM,UACvB,EAAM,WAAW,MAAM,QAAU,IAEzC,GACJ,CACJ,GACJ,EACA,EAAQ,UAAU,4BAA8B,SAAU,GACtD,IAAI,EAAQ,KAC+B,OAAvC,KAAK,gCACL,KAAK,8BAAgC,OAAO,aAAY,WACpD,IAAI,EAAgB,EAAM,OAAO,wBAC7B,EAAM,yBAAyB,EAAM,WAAY,IACjD,EAAM,gBAEV,EAAM,WAAa,CACvB,GAAG,GAEX,EACA,EAAQ,UAAU,mBAAqB,SAAU,EAAI,GACjD,IAG2B,EAHvB,EAAQ,KACR,EAAW,EAAG,SAAU,EAAK,EAAG,WAAY,OAAoB,IAAP,EAAgB,EAAI,EAAI,EAAK,EAAG,UAAW,OAAmB,IAAP,EAAgB,EAAI,EAAI,EAAK,EAAG,WAAY,OAAoB,IAAP,EAAgB,KAAK,UAAU,kBAAoB,EAAI,EAAK,EAAG,YAAa,OAAqB,IAAP,EAAgB,KAAK,UAAU,kBAAoB,EACtT,EAAK,KAAK,MAAO,EAAU,EAAG,oBAAqB,EAAU,EAAG,QAAS,EAAQ,EAAG,MAMxF,SAAS,oCAAoC,MALlB,EAKmC,CAAE,SAAU,EAAU,WAAY,EAAY,UAAW,EAAW,WAAY,EAAY,YAAa,EAAa,MAAO,GAJ7J,mBAAZ,EACR,EAAQ,GACR,GAE2L,KAAK,YAAY,WAClN,IAAI,EAAM,YAAV,CAGA,IAAI,EAAa,EAAM,OAAO,wBAC1B,EAAc,EAAM,WAAW,wBAC/B,EAAK,EAAM,uBAAuB,EAAU,EAAY,GAAc,EAAM,EAAG,IAAK,EAAO,EAAG,KAClG,EAAsB,QAAb,GAAsB,EAAM,GACpB,SAAb,GAAuB,EAAO,GACjB,UAAb,GAAwB,EAAO,EAAY,MAAQ,OAAO,WAAa,GAC1D,WAAb,GAAyB,EAAM,EAAY,OAAS,OAAO,YAAc,EAAS,CAAE,MAAO,EAAY,MAAO,OAAQ,EAAY,OAAQ,IAAK,EAAK,KAAM,GAP9J,CAQJ,GACJ,EACA,EAAQ,UAAU,yBAA2B,SAAU,GACnD,IAAI,EAAM,EAAG,IAAK,EAAO,EAAG,KAAM,EAAQ,EAAG,MAAO,EAAS,EAAG,OAC5D,EAAU,KAAK,MAAM,oBAKzB,MAAO,CAAE,IAHT,GADA,EAAM,EAAM,EAAU,EAAU,GACpB,EAAS,OAAO,YAAc,EAAU,OAAO,YAAc,EAAU,EAAS,EAGzE,KADnB,GADA,EAAO,EAAO,EAAU,EAAU,GACpB,EAAQ,OAAO,WAAa,EAAU,OAAO,WAAa,EAAU,EAAQ,EAE9F,EACA,EAAQ,UAAU,cAAgB,WAC9B,IAAI,EAAQ,KACZ,GAAI,KAAK,WAAY,CACjB,IAAI,EAAqB,KAAK,MAAM,mBACpC,KAAK,WAAW,MAAM,QAAU,IAChC,IAAI,EAAS,YACL,EAAM,aAAgB,EAAM,MAAM,QAAW,EAAM,WAAW,aAC9D,OAAO,cAAc,EAAM,+BAC3B,OAAO,oBAAoB,SAAU,EAAM,UAC3C,OAAO,oBAAoB,QAAS,EAAM,SAC1C,EAAM,8BAAgC,KAClC,EAAM,WAAW,YACjB,EAAM,WAAW,WAAW,YAAY,EAAM,YAG1D,EACK,KAAK,YAIN,IAHA,OAAO,WAAW,EAAiE,KAAxD,GAAsB,KAAK,UAAU,iBAKxE,CACJ,EACA,EAAQ,UAAU,yBAA2B,SAAU,GACnD,GAAI,GAAgC,iBAAb,EAAuB,CAC1C,GAAI,KAAK,UAAU,kBAAkB,OAAM,SAAU,GAAmB,YAAyE,IAAlE,EAAS,MAAK,SAAU,GAAK,OAAO,IAAM,CAAiB,GAAkB,IACxJ,OAAO,KAAK,YAAY,GAGxB,IAAI,EAAqB,KAAK,UAAU,kBAAkB,QAAO,SAAU,GAAmB,YAAyE,IAAlE,EAAS,MAAK,SAAU,GAAK,OAAO,IAAM,CAAiB,GAAkB,IAClL,OAAO,KAAK,YAAY,EAAS,OAAO,GAEhD,CACK,GAAI,GAAgC,iBAAb,EAAuB,CAC3C,EAAqB,KAAK,UAAU,kBAAkB,QAAO,SAAU,GAAmB,OAAO,IAAoB,CAAU,IACnI,OAAO,KAAK,YAAY,CAAC,GAAU,OAAO,GAC9C,CACJ,EACA,EAAQ,UAAU,gBAAkB,WAChC,IAAI,EAAK,KAAK,MAAO,EAAiB,EAAG,eAAgB,EAAqB,EAAG,mBAC7E,EAAY,OAAO,SAAS,cAAc,OAS9C,OARA,EAAU,MAAM,SAAW,SACvB,GACA,OAAO,KAAK,GAAgB,SAAQ,SAAU,GAAO,OAAO,EAAU,MAAM,GAAO,EAAe,EAAM,IAE5G,EAAU,UAAY,EACtB,EAAU,MAAM,SAAW,WAC3B,EAAU,MAAM,IAAM,IACtB,EAAU,MAAM,KAAO,IAChB,CACX,EACA,EAAQ,UAAU,uBAAyB,SAAU,EAAU,EAAe,GAC1E,IAGI,EACA,EAJA,EAAK,KAAK,MAAO,EAAU,EAAG,QAAS,EAAQ,EAAG,MAClD,EAAa,EAAc,KAAQ,EAAc,MAAQ,EACzD,EAAa,EAAc,IAAO,EAAc,OAAS,EAG7D,OAAQ,GACJ,IAAK,MACD,EAAM,EAAc,IAAM,EAAY,OAAS,EAC/C,EAAO,EAAc,EAAY,MAAQ,EAC3B,UAAV,IACA,EAAO,EAAc,MAEX,QAAV,IACA,EAAO,EAAc,MAAQ,EAAY,OAE7C,MACJ,IAAK,OACD,EAAM,EAAc,EAAY,OAAS,EACzC,EAAO,EAAc,KAAO,EAAU,EAAY,MACpC,UAAV,IACA,EAAM,EAAc,KAEV,QAAV,IACA,EAAM,EAAc,OAAS,EAAY,QAE7C,MACJ,IAAK,SACD,EAAM,EAAc,OAAS,EAC7B,EAAO,EAAc,EAAY,MAAQ,EAC3B,UAAV,IACA,EAAO,EAAc,MAEX,QAAV,IACA,EAAO,EAAc,MAAQ,EAAY,OAE7C,MACJ,IAAK,QACD,EAAM,EAAc,EAAY,OAAS,EACzC,EAAO,EAAc,MAAQ,EACf,UAAV,IACA,EAAM,EAAc,KAEV,QAAV,IACA,EAAM,EAAc,OAAS,EAAY,QAIrD,MAAO,CAAE,IAAK,EAAK,KAAM,EAC7B,EACA,EAAQ,UAAU,yBAA2B,SAAU,EAAe,GAClE,OAAyB,OAAlB,GACA,EAAc,OAAS,EAAc,MACrC,EAAc,MAAQ,EAAc,KACpC,EAAc,QAAU,EAAc,OACtC,EAAc,SAAW,EAAc,MAClD,EACA,EAAQ,aAAe,CACnB,QAAS,KAAK,UAAU,gBACxB,oBAAqB,KAAK,UAAU,uBACpC,SAAU,CAAC,MAAO,QAAS,OAAQ,UACnC,MAAO,SACP,mBAAoB,KAAK,UAAU,8BAEhC,CACX,CAtS4B,CAsS1B,eAAe,WACjB,EAAQ,QAAU,CAElB,IAEI,QAAU,cAAc,WACxB,UAAY,UAAU,eAEtB,OAAS,SAAU,GACnB,IAAI,EAAc,EAAG,YAAa,EAAO,EAAG,KAAM,EAAW,EAAG,SAChE,OAAQ,MAAM,cAAc,MAAO,CAAE,UAAW,oBAC5C,MAAM,cAAc,MAAO,CAAE,UAAW,YAAa,QAAS,WAAc,OAAO,EAAS,CAAE,KAAM,GAAM,GACtG,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,eAAgB,CAC3D,sBAAqC,IAAd,EAAK,UAExC,MAAM,cAAc,MAAO,CAAE,UAAW,YAAa,QAAS,WAAc,OAAO,EAAS,CAAE,KAAM,GAAM,GACtG,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,iBAAkB,CAC7D,sBAAqC,IAAd,EAAK,UAExC,MAAM,cAAc,MAAO,CAAE,UAAW,YAAa,QAAS,WAAc,OAAO,EAAS,CAAE,KAAM,IAAO,GACvG,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,eAAgB,CAC3D,sBAAqC,KAAd,EAAK,WAEvC,GAAgB,MAAM,cAAc,MAAM,SAAU,KACjD,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,0BAA2B,CACtE,uBAAuC,YAAf,EAAK,QAC7B,QAAS,WAAc,OAAO,EAAS,CAAE,MAAO,WAAc,IACtE,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,uBAAwB,CACnE,uBAAuC,YAAf,EAAK,QAC7B,QAAS,WAAc,OAAO,EAAS,CAAE,MAAO,WAAc,IACtE,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,yBAA0B,CACrE,uBAAuC,YAAf,EAAK,QAC7B,QAAS,WAAc,OAAO,EAAS,CAAE,MAAO,WAAc,IACtE,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,wBAAyB,CACpE,uBAAuC,YAAf,EAAK,QAC7B,QAAS,WAAc,OAAO,EAAS,CAAE,MAAO,WAAc,KAClF,EAKA,SAAS,WAA2Q,OAA9P,SAAW,OAAO,QAAU,SAAU,GAAU,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAS,UAAU,GAAI,IAAK,IAAI,KAAO,EAAc,OAAO,UAAU,eAAe,KAAK,EAAQ,KAAQ,EAAO,GAAO,EAAO,GAAU,CAAE,OAAO,CAAQ,EAAU,SAAS,MAAM,KAAM,UAAY,CAJ5T,OAAO,aAAe,CAClB,aAAa,GAKjB,IAAI,KAEJ,eAAe,cAAc,OAAQ,CACnC,OAAQ,QACR,KAAM,cACN,EAAG,kBAGD,WAAa,SAAoB,GACnC,OAAO,eAAe,cAAc,MAAO,SAAS,CAClD,MAAO,GACP,OAAQ,IACP,GAAQ,KACb,EAEA,SAAS,aAA+Q,OAAhQ,WAAa,OAAO,QAAU,SAAU,GAAU,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAS,UAAU,GAAI,IAAK,IAAI,KAAO,EAAc,OAAO,UAAU,eAAe,KAAK,EAAQ,KAAQ,EAAO,GAAO,EAAO,GAAU,CAAE,OAAO,CAAQ,EAAU,WAAW,MAAM,KAAM,UAAY,CAElU,IAAI,OAEJ,eAAe,cAAc,OAAQ,KAAM,eAAe,cAAc,QAAS,OAE7E,MAEJ,eAAe,cAAc,OAAQ,CACnC,EAAG,mNACH,KAAM,SAGJ,YAAc,SAAqB,GACrC,OAAO,eAAe,cAAc,MAAO,WAAW,CACpD,UAAW,qBACX,QAAS,gBACT,MAAO,GACP,OAAQ,IACP,GAAQ,OAAQ,MACrB,EAEA,SAAS,aAA+Q,OAAhQ,WAAa,OAAO,QAAU,SAAU,GAAU,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAS,UAAU,GAAI,IAAK,IAAI,KAAO,EAAc,OAAO,UAAU,eAAe,KAAK,EAAQ,KAAQ,EAAO,GAAO,EAAO,GAAU,CAAE,OAAO,CAAQ,EAAU,WAAW,MAAM,KAAM,UAAY,CAElU,IAAI,OAEJ,eAAe,cAAc,OAAQ,KAAM,eAAe,cAAc,QAAS,OAE7E,QAEJ,eAAe,cAAc,OAAQ,CACnC,EAAG,2MACH,KAAM,SAGJ,MAEJ,eAAe,cAAc,OAAQ,CACnC,EAAG,iMACH,KAAM,SAGJ,YAAc,SAAqB,GACrC,OAAO,eAAe,cAAc,MAAO,WAAW,CACpD,UAAW,qBACX,QAAS,gBACT,MAAO,GACP,OAAQ,IACP,GAAQ,OAAQ,QAAS,MAC9B,EAEA,SAAS,aAA+Q,OAAhQ,WAAa,OAAO,QAAU,SAAU,GAAU,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAS,UAAU,GAAI,IAAK,IAAI,KAAO,EAAc,OAAO,UAAU,eAAe,KAAK,EAAQ,KAAQ,EAAO,GAAO,EAAO,GAAU,CAAE,OAAO,CAAQ,EAAU,WAAW,MAAM,KAAM,UAAY,CAElU,IAAI,OAEJ,eAAe,cAAc,OAAQ,KAAM,eAAe,cAAc,QAAS,OAE7E,QAEJ,eAAe,cAAc,OAAQ,CACnC,EAAG,kQACH,KAAM,YAGJ,SAAW,SAAkB,GAC/B,OAAO,eAAe,cAAc,MAAO,WAAW,CACpD,UAAW,kBACX,QAAS,gBACT,MAAO,GACP,OAAQ,IACP,GAAQ,OAAQ,QACrB,EAEI,MAAQ,MAAM,YAAW,SAAU,EAAI,GACvC,IAAI,EAAO,EAAG,KAAM,EAAO,EAAG,KAAM,EAAU,EAAG,QAAS,EAAW,EAAG,SAAU,EAAU,EAAG,QAAS,EAAW,EAAG,SAAU,EAAa,EAAG,WAAY,EAAS,EAAG,OACpK,EAAK,MAAM,SAAS,IAAK,EAAW,EAAG,GAAI,EAAc,EAAG,GAC5D,EAAK,MAAM,SAAS,UAAW,EAAW,EAAG,GAAI,EAAc,EAAG,GAClE,EAAW,MAAM,OAAO,MACxB,EAAc,gBAAgB,EAAK,GACnC,EAAc,SAAU,GACxB,IAAI,EAAM,EAAY,QAAQ,wBAC1B,EAAI,QAAU,OAAO,YAAc,EAAI,OAAS,EAChD,EAAY,OAGZ,EAAY,UAEhB,EAAS,GACT,EAAY,EAChB,EAKA,OAAQ,MAAM,cAAc,MAAO,CAAE,UAAW,QAAS,IAAK,GAC1D,MAAM,cAAc,QAAS,CAAE,SAAU,EAAU,MAAO,QAAS,OAAqB,SAAb,EAAqB,QAAS,SAAU,GAC3G,IAAI,EAAW,EAAG,SAAU,EAAa,EAAG,WAAY,EAAc,EAAG,YACzE,OAAQ,MAAM,cAAc,UAAW,CAAE,SAAU,EAAU,WAAY,EAAY,YAAa,EAAa,WAAY,UAAW,UAAW,GAC7I,MAAM,cAAc,OAAQ,CAAE,KAAM,EAAM,SAAU,SAAU,GACtD,OAAO,GAAQ,SAAU,GAAO,OAAQ,SAAS,SAAS,CAAC,EAAG,GAAM,EAAW,GACnF,IACZ,GACA,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,wBAAyB,CACpE,gBAA0B,SAAT,IACjB,QAAS,WAAc,OAAO,EAAY,OAAS,KAC/D,MAAM,cAAc,QAAS,CAAE,SAAU,EAAU,MAAO,QAAS,OAAqB,WAAb,EAAuB,QAAS,SAAU,GAC7G,IAAI,EAAW,EAAG,SAAU,EAAa,EAAG,WAAY,EAAc,EAAG,YACzE,OAAQ,MAAM,cAAc,UAAW,CAAE,SAAU,EAAU,WAAY,EAAY,YAAa,EAAa,WAAY,UAAW,UAAW,GAC7I,MAAM,cAAc,OAAQ,CAAE,KAAM,EAAM,SAAU,SAAU,GACtD,OAAO,GAAQ,SAAU,GAAO,OAAQ,SAAS,SAAS,CAAC,EAAG,GAAM,EAAW,GACnF,IACZ,GACA,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,0BAA2B,CACtE,gBAA0B,WAAT,IACjB,QAAS,WAAc,OAAO,EAAY,SAAW,KACjE,MAAM,cAAc,QAAS,CAAE,SAAU,EAAU,MAAO,QAAS,OAAqB,SAAb,EAAqB,QAAS,SAAU,GAC3G,IAAI,EAAW,EAAG,SAAU,EAAa,EAAG,WAAY,EAAc,EAAG,YACzE,OAAQ,MAAM,cAAc,UAAW,CAAE,SAAU,EAAU,WAAY,EAAY,YAAa,EAAa,WAAY,UAAW,UAAW,GAC7I,MAAM,cAAc,OAAQ,CAAE,KAAM,EAAM,SAAU,SAAU,GACtD,OAAO,GAAQ,SAAU,GAAO,OAAQ,SAAS,SAAS,CAAC,EAAG,GAAM,EAAW,GACnF,IACZ,GACA,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,wBAAyB,CACpE,gBAA0B,SAAT,IACjB,QAAS,WAAc,OAAO,EAAY,OAAS,GAAK,MACpE,MAAM,cAAc,QAAS,CAAE,SAAU,EAAU,MAAO,QAAS,OAAqB,WAAb,EAAuB,QAAS,SAAU,GAC7G,IAAI,EAAW,EAAG,SAAU,EAAa,EAAG,WAAY,EAAc,EAAG,YACzE,OAAQ,MAAM,cAAc,UAAW,CAAE,SAAU,EAAU,WAAY,EAAY,YAAa,EAAa,WAAY,UAAW,UAAW,GAC7I,MAAM,cAAc,OAAQ,CAAE,KAAM,EAAM,SAAU,SAAU,GACtD,OAAO,GAAQ,SAAU,GAAO,OAAQ,SAAS,SAAS,CAAC,EAAG,GAAM,EAAW,GACnF,EAAG,aAAa,IAC5B,GACA,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,wBAAyB,CACpE,gBAA0B,WAAT,IACjB,QAAS,WAAc,OAAO,EAAY,SAAW,GAAK,MACtE,MAAM,cAAc,MAAO,CAAE,UAAW,eACxC,MAAM,cAAc,YAAa,CAAE,QAAS,IAC5C,MAAM,cAAc,YAAa,CAAE,QAAS,IAC5C,MAAM,cAAc,SAAU,CAAE,QAhDlB,WACd,IACA,EAAY,GAChB,IA8CI,MAAM,cAAc,WAAY,CAAE,UAAW,aAAc,QAAS,IAC5E,IAEI,SAAW,CACX,KAAM,EACN,MAAO,WAEP,OAAS,MAAM,YAAW,SAAU,EAAI,GACxC,IAAI,EAAa,EAAG,WAAY,EAAa,EAAG,WAAY,EAAW,EAAG,SAAU,EAAQ,EAAG,MAAO,EAAY,EAAG,UAAW,EAAW,EAAG,SAAU,EAAkB,EAAG,gBAAiB,EAAe,EAAG,aAAc,EAAc,EAAG,YAAa,EAAU,EAAG,QAAS,EAAa,EAAG,WAAY,EAAY,EAAG,UACzT,EAAK,MAAM,SAAS,IAAK,EAAO,EAAG,GAAI,EAAU,EAAG,GACpD,EAAK,MAAM,SAAS,CAAC,EAAG,IAAK,EAAO,EAAG,GAAI,EAAU,EAAG,GACxD,EAAK,MAAM,UAAS,GAAQ,EAAS,EAAG,GAAI,EAAU,EAAG,GACzD,EAAK,MAAM,SAAS,UAAW,EAAO,EAAG,GAAI,EAAU,EAAG,GAC1D,EAAY,MAAM,OAAO,MACzB,EAAc,gBAAgB,EAAK,GACnC,EAAa,MAAM,OAAO,IAC1B,EAAS,MAAM,OAAO,MACtB,EAAU,MAAM,OAAO,UACvB,EAAU,MAAM,OAAO,CAAE,EAAG,EAAG,EAAG,IAClC,EAAU,MAAM,OAAO,UACvB,EAAe,MAAM,OAAO,IAC5B,EAAa,SAAU,GACvB,IAAI,EAAS,EAAO,QAChB,EAAY,EAAY,QACxB,EAAS,eAAe,EAAW,EAAU,QAAS,EAAU,SAChE,EAAK,QAAQ,EAAQ,QAAS,EAAQ,GAAS,EAAI,EAAG,GAAI,EAAI,EAAG,GACrE,EAAQ,CAAC,EAAG,GAChB,EA6EI,EAAmB,WACnB,IACA,EAAQ,IACR,EAAQ,CAAC,EAAG,IACZ,GAAQ,GACR,IAAI,EAAY,EAAY,QAC5B,EAAU,YAAc,KACxB,EAAU,YAAc,KACxB,SAAS,UAAY,IACzB,EAsDA,OAhBA,MAAM,WAAU,WACZ,EAAQ,QAAU,EAClB,EAAQ,QAAU,CACtB,GAAG,CAAC,IACJ,MAAM,WAAU,WACZ,EAAW,QAAU,CAAC,EAC1B,GAAG,CAAC,IACJ,MAAM,WAAU,WACZ,IAAc,SAAT,GAA4B,WAAT,IAAsB,EAAQ,CAClD,IAAI,EAAW,EAAO,QAEtB,OADA,EAAS,YAAc,EAChB,WACH,EAAS,YAAc,IAC3B,CACJ,CACJ,GAAG,CAAC,EAAM,EAAQ,IACV,MAAM,cAAc,MAAO,CAAE,UAAW,eAC5C,MAAM,cAAc,SAAU,CAAE,UAAW,SAAU,IAAK,EAAa,MAAO,IAAK,OAAQ,OACjF,SAAT,GAA4B,WAAT,IAAsB,GAAW,MAAM,cAAc,IAAK,CAAE,IAAK,EAAQ,KAAM,EAAM,MAAO,EAAK,GAAI,OAAQ,EAAK,GAAI,OAAQ,EAAK,MAAO,YAAa,EAAK,OAChL,IAAe,GAAe,MAAM,cAAc,MAAM,SAAU,KAC9D,MAAM,cAAc,MAAO,CAAE,UAAW,iBAAkB,YAAa,WAAc,OAAO,EAAgB,EAAI,IAChH,MAAM,cAAc,MAAO,CAAE,UAAW,mBAAoB,YAAa,WAAc,OAAO,EAAgB,EAAG,WAAa,IAC9H,MAAM,cAAc,MAAO,CAAE,UAAW,kBAAmB,YAAa,WAAc,OAAO,EAAgB,EAAI,IACjH,MAAM,cAAc,MAAO,CAAE,UAAW,oBAAqB,YAAa,WAAc,OAAO,EAAgB,EAAG,aAAe,IACjI,MAAM,cAAc,MAAO,CAAE,UAAW,qBAAsB,YAAa,WAAc,OAAO,EAAgB,EAAG,aAAe,IAClI,MAAM,cAAc,MAAO,CAAE,UAAW,oBAAqB,YAAa,WAAc,OAAO,EAAgB,EAAI,IACnH,MAAM,cAAc,MAAO,CAAE,UAAW,sBAAuB,YAAa,WAAc,OAAO,EAAgB,EAAG,WAAa,IACjI,MAAM,cAAc,MAAO,CAAE,UAAW,qBAAsB,YAAa,WAAc,OAAO,EAAgB,EAAI,KACxH,GAAe,MAAM,cAAc,MAAO,CAAE,IAAK,EAAU,KAAM,EAAM,KAAM,EAAM,QAAS,EAAS,SA7ItF,SAAU,GACzB,IAAI,EAAY,EAAY,QAG5B,GAFA,GAAa,GACb,EAAQ,GACQ,SAAZ,GAAkC,WAAZ,EAA1B,CAgBI,IAAI,EADR,GAAgB,SAAZ,EAEA,EAAU,YAAc,SAAU,GAE9B,IAAI,EADJ,EAAY,eAAe,EAAW,EAAM,QAAS,EAAM,SAE3D,EAAU,YAAc,SAAU,GAC9B,IAAI,EAAS,mBAAmB,EAAW,EAAU,QAAS,EAAU,SACxE,EAAa,QAAU,EAAa,QAAQ,OAAO,GACnD,IAAI,EAAU,EAAU,WAAW,MAEnC,SAAS,EAAW,EAAQ,EAAS,EAAO,EAAQ,SACpD,EAAY,CAChB,EACA,SAAS,UAAY,WACjB,EAAU,YAAc,KACxB,SAAS,UAAY,KAErB,IAA4B,EACpB,EADJ,GAAwB,EASzB,EAAa,QARR,EAAQ,EAAQ,QACb,WACH,IAAI,EAAU,EAAU,WAAW,MACnC,EAAO,QAAO,SAAU,EAAK,GAEzB,OADA,SAAS,EAAK,EAAK,EAAS,EAAO,GAC5B,CACX,GAAG,EACP,GAEJ,EAAW,QAAU,eAAe,EAAW,QAAS,CAAC,IACzD,EAAa,QAAU,EAC3B,CACJ,EAEY,WAAZ,IACA,EAAU,YAAc,WACpB,GAAQ,GACR,EAAU,YAAc,SAAU,GAC9B,IAAI,EAAS,mBAAmB,EAAW,EAAM,QAAS,EAAM,SAChE,WAAW,EAAU,WAAW,MAAO,EAAO,EAAI,EAAO,EAAO,EAAI,EAAO,EAAQ,QAAQ,KAAO,EACtG,EACA,SAAS,UAAY,WACjB,GAAQ,GACR,EAAU,YAAc,KACxB,SAAS,UAAY,IACzB,CACJ,EA7CJ,KAdA,CACI,IAAI,EAAW,EAAO,QACtB,EAAU,YAAc,SAAU,GAC9B,GAAQ,GACR,EAAQ,QAAU,eAAe,EAAW,EAAM,QAAS,EAAM,SACjE,EAAU,YAAc,EACxB,SAAS,UAAY,SAAU,GAC3B,GAAQ,GArBL,SAAU,EAAS,GAClC,IAAI,EAAY,EAAY,QACxB,EAAS,eAAe,EAAW,EAAQ,QAAS,EAAQ,SAC5D,EAAU,EAAU,WAAW,MACnC,EAAW,QAAU,eAAe,EAAW,QAAS,CACpD,gBAAgB,EAAS,EAAQ,QAAS,EAAQ,EAAS,EAAO,EAAQ,WAE9E,EAAU,YAAc,KACxB,SAAS,UAAY,IACzB,CAagB,CAAa,EAAS,GAClB,IACA,EAAS,YAAc,KAC/B,CACJ,CAEJ,CA+CJ,EA4EiI,QAjE1G,WACI,mBAAZ,EAIX,IAHI,EAAQ,EAIhB,EA2D4J,SA1DzI,WACf,IAAI,EAAa,EAAW,QAAQ,MAAM,GAAI,GACzC,EAAW,SAEhB,EAAW,SAAQ,SAAU,GAAU,OAAO,GAAU,IACxD,EAAW,QAAU,EACzB,EAoDoL,WAnD/J,WACjB,IACI,EADY,EAAY,QACJ,UAAU,SAAW,GACzC,EAAO,SAAS,cAAc,KAClC,EAAK,KAAO,EACZ,EAAK,SAAW,cAChB,SAAS,KAAK,YAAY,GAC1B,EAAK,QACL,EAAK,SACqB,mBAAf,GACP,EAAW,EAGnB,EAsCgN,OArC/L,WACb,IACI,EADY,EAAY,QACJ,UAAU,SAAW,GACpB,mBAAd,EAIX,IAHI,EAAU,EAAS,EAI3B,IA8BJ,IAEI,QAAU,SAAU,GAAQ,OAAQ,MAAM,cAAc,MAAO,CAAE,UAAW,uBAAwB,MAAO,6BAA8B,QAAS,gBAAiB,MAAO,SAAS,CAAC,EAAG,IACvL,MAAM,cAAc,SAAU,CAAE,GAAI,KAChC,MAAM,cAAc,iBAAkB,CAAE,aAAc,QAC1D,MAAM,cAAc,OAAQ,CAAE,KAAM,UAAW,EAAG,sBAClD,MAAM,cAAc,IAAK,CAAE,OAAQ,UAAW,UAAW,+BAAgC,YAAa,MAClG,MAAM,cAAc,UAAW,CAAE,KAAM,UAAW,GAAI,IAAK,GAAI,IAAK,UAAW,0DAC/E,MAAM,cAAc,UAAW,CAAE,KAAM,UAAW,GAAI,IAAK,GAAI,IAAK,UAAW,2DAC/E,MAAM,cAAc,UAAW,CAAE,KAAM,UAAW,GAAI,IAAK,GAAI,IAAK,UAAW,2DAC/E,MAAM,cAAc,UAAW,CAAE,KAAM,UAAW,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,OACpF,MAAM,cAAc,UAAW,CAAE,KAAM,UAAW,GAAI,MAAO,GAAI,KAAM,GAAI,KAAM,GAAI,OACrF,MAAM,cAAc,UAAW,CAAE,KAAM,UAAW,GAAI,IAAK,GAAI,IAAK,UAAW,6DAC/E,MAAM,cAAc,OAAQ,CAAE,KAAM,UAAW,EAAG,6BAClD,MAAM,cAAc,UAAW,CAAE,KAAM,UAAW,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,QAAY,EAE3G,SAAS,aAA+Q,OAAhQ,WAAa,OAAO,QAAU,SAAU,GAAU,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAS,UAAU,GAAI,IAAK,IAAI,KAAO,EAAc,OAAO,UAAU,eAAe,KAAK,EAAQ,KAAQ,EAAO,GAAO,EAAO,GAAU,CAAE,OAAO,CAAQ,EAAU,WAAW,MAAM,KAAM,UAAY,CAElU,IAAI,OAEJ,eAAe,cAAc,OAAQ,CACnC,EAAG,uvBACH,KAAM,YAGJ,aAAe,SAAsB,GACvC,OAAO,eAAe,cAAc,MAAO,WAAW,CACpD,QAAS,gBACT,MAAO,IACP,OAAQ,KACP,GAAQ,OACb,EAEI,MAAQ,IAAI,MACZ,WAAa,SAAU,GACvB,IAAI,EAAM,EAAG,IAAK,EAAQ,EAAG,MAAO,EAAS,EAAG,OAAQ,EAAY,EAAG,UAAW,EAAW,EAAG,SAAU,EAAY,EAAG,UAAW,EAAU,EAAG,QAAS,EAAa,EAAG,WAAY,EAAY,EAAG,UACjM,EAAK,MAAM,SAAS,OAAO,SAAU,EAAS,EAAG,GAAI,EAAY,EAAG,GACpE,EAAK,MAAM,SAAS,CAAC,EAAG,IAAK,EAAO,EAAG,GAAI,EAAU,EAAG,GACxD,EAAK,MAAM,UAAS,GAAQ,EAAa,EAAG,GAAI,EAAc,EAAG,GACjE,EAAK,MAAM,UAAS,GAAQ,EAAa,EAAG,GAAI,EAAc,EAAG,GAEjE,EAAK,MAAM,UAAS,WAAc,OAAO,WAAc,CAAG,IAAI,EAAW,EAAG,GAAI,EAAc,EAAG,GACjG,EAAS,MAAM,OAAO,MACtB,EAAY,MAAM,OAAO,MACzB,EAAY,MAAM,OAAO,MACzB,EAAW,MAAM,OAAO,MACxB,EAAc,MAAM,OAAO,MAC3B,EAAiB,MAAM,OAAO,MAC9B,EAAW,MAAM,OAAO,GACxB,EAAc,MAAM,OAAO,CAAE,EAAG,EAAG,EAAG,IACtC,EAAe,MAAM,OAAO,CAAE,EAAG,EAAG,EAAG,IACvC,EAAc,MAAM,OAAO,CAAE,EAAG,EAAG,EAAG,IACtC,EAAa,MAAM,OAAO,CAAE,EAAG,EAAG,EAAG,IACrC,EAAS,MAAM,OAAO,CAAE,EAAG,EAAG,EAAG,IACjC,EAAe,MAAM,OAAO,IAC5B,EAAgB,SAAU,GAC1B,IAAI,EAAS,EAAO,QAChB,EAAS,eAAe,EAAQ,EAAM,QAAS,EAAM,SACrD,EAAM,EAAY,QACtB,cAAc,CACV,MAAO,MACP,IAAK,EAAe,QACpB,IAAK,EACL,IAAK,EACL,SAAU,EACV,MAAO,GAEf,EAYA,MAAM,WAAU,WAWZ,OAJA,MAAM,OANQ,WACV,IAAI,EAAU,kBAAkB,MAAO,EAAO,GAC9C,EAAQ,GACR,EAAS,QAAU,MAAM,MAAQ,EAAQ,GACzC,EAAU,OAAO,OACrB,EAEA,MAAM,QAAU,WACZ,EAAU,OAAO,OACrB,EACO,WACH,OAAO,SAAW,IACtB,CAEJ,GAAG,IACH,MAAM,WAAU,WACZ,MAAM,YAAc,YACpB,MAAM,IAAM,EACZ,EAAU,OAAO,QACrB,GAAG,CAAC,IACJ,MAAM,WAAU,WACZ,GAAI,IAAW,OAAO,OAAtB,CAEA,IAAI,EAAS,EAAO,QAChB,EAAY,EAAU,QACtB,EAAY,EAAU,QACtB,EAAU,EAAU,WAAW,MAC/B,EAAS,WACT,EAAO,YAAc,KACrB,EAAU,YAAc,KACxB,SAAS,UAAY,IACzB,EACA,OAAI,GACA,EAAO,MAAM,OAAS,aACtB,EAAU,MAAM,OAAS,WAG7B,EAAO,MAAM,OAAS,YACtB,EAAO,YAAc,EACrB,EAAO,YAAc,SAAU,GAC3B,GAAY,GACZ,IAAI,EAAW,eAAe,EAAQ,EAAM,QAAS,EAAM,SACvD,EAAa,SAAU,GACvB,IAAI,EAAU,eAAe,EAAQ,EAAM,QAAS,EAAM,SACtD,EAAU,iBAAiB,CAC3B,SAAU,EACV,QAAS,EACT,UAAW,EACX,SAAU,EACV,UAAW,EACX,QAAS,EACT,MAAO,QAEP,EAAM,EAAY,QAStB,OARA,cAAc,CACV,MAAO,MACP,IAAK,EAAe,QACpB,IAAK,EACL,IAAK,EACL,SAAU,EACV,MAAO,IAEJ,CACX,EACA,EAAO,YAAc,EACrB,EAAU,YAAc,EACxB,SAAS,UAAY,SAAU,GAC3B,GAAY,WAAc,OAAO,EAAW,EAAQ,IACpD,IAAI,EAAS,eAAe,EAAQ,EAAM,QAAS,EAAM,SACrD,EAAK,cAAc,EAAU,GAAS,EAAM,EAAG,GAAI,EAAM,EAAG,GAAI,EAAQ,EAAG,GAAI,EAAO,EAAG,GAC7F,EAAY,QAAU,EACtB,EAAa,QAAU,EACvB,EAAY,QAAU,EACtB,EAAW,QAAU,EACrB,GAAY,GACZ,GACJ,CACJ,EACO,WACH,IACA,EAAO,YAAc,IACzB,EA3DU,CA4Dd,GAAG,CAAC,EAAM,EAAY,IACtB,MAAM,WAAU,WACZ,GAAI,IAAW,OAAO,OAAtB,CAEA,IAAI,EAAY,EAAU,QAC1B,GAAK,EAAL,CAEA,IAAI,EAAc,WACd,EAAU,YAAc,IAC5B,EACA,GAAI,EAAY,CACZ,IAAI,EAAW,EAAO,QAClB,EAAc,EAAU,QACxB,EAAa,EAAS,QACtB,EAAa,EAAS,QAAQ,wBAC9B,EAAY,EAAU,WAAW,MACjC,EAAU,EAAY,wBAAwB,OAClD,EAAU,MAAM,OAAS,OACzB,kBAAkB,EAAW,EAAY,EAAY,GACrD,IAAI,EAAe,SAAU,GACzB,EAAU,kBACV,EAAU,iBACV,IAAI,EAAa,EAAU,wBACvB,EAAK,EAAO,QAAS,EAAI,EAAG,EAAG,EAAI,EAAG,EACtC,EAAS,eAAe,EAAU,EAAU,QAAS,EAAU,SAC/D,EAAO,EAAO,EAAI,EAClB,EAAO,EAAO,EAAI,EAClB,EAAK,EAAY,wBAAyB,EAAU,EAAG,MAAO,EAAU,EAAG,OAC3E,EAAO,WAAW,EAAY,MAAM,MAAQ,KAC5C,EAAM,WAAW,EAAY,MAAM,KAAO,KAC1C,EAAI,EAAO,EACX,EAAI,EAAM,EACV,EAAO,GAAQ,EACf,EAAI,EAEC,EAAO,GAAQ,EAAK,GAAK,IAC9B,EAAI,EAAK,GAAK,GAEd,EAAM,GAAQ,EACd,EAAI,EAEC,EAAM,GAAQ,EAAK,GAAK,IAC7B,EAAI,EAAK,GAAK,GAElB,kBAAkB,EAAW,EAAY,EAAY,GACrD,EAAY,MAAM,KAAO,EAAI,KAC7B,EAAY,MAAM,IAAM,EAAI,KAC5B,EAAO,QAAU,EACjB,IAAI,EAAW,WACX,OAAO,EAAU,UAAU,MAAO,EAAI,EAAS,QAAS,EAAI,EAAS,QAAS,EAAW,MAAQ,EAAS,QAAS,EAAW,OAAS,EAAS,QAAS,EAAG,EAAG,EAAW,MAAQ,EAAS,QAAS,EAAW,OAAS,EAAS,QACrO,EAEA,OADA,IACO,CACX,EAmBA,OAlBA,EAAU,YAAc,SAAU,GAC9B,IAAI,EAAW,eAAe,EAAU,EAAM,QAAS,EAAM,SAC7D,EAAO,QAAU,EACjB,EAAU,YAAc,EACxB,SAAS,UAAY,SAAU,GAC3B,GAAY,WAAc,OAAO,EAAa,EAAU,IACxD,IAAI,EAAY,EAAY,wBACxB,EAAa,eAAe,EAAU,EAAU,KAAM,EAAU,KAChE,EAAY,eAAe,EAAU,EAAU,MAAO,EAAU,QAChE,EAAK,cAAc,EAAY,GAAY,EAAM,EAAG,GAAI,EAAM,EAAG,GAAI,EAAQ,EAAG,GAAI,EAAO,EAAG,GAClG,EAAY,QAAU,EACtB,EAAa,QAAU,EACvB,EAAY,QAAU,EACtB,EAAW,QAAU,EACrB,IACA,SAAS,UAAY,IACzB,CACJ,EACO,CACX,CAGA,OAFI,IACA,EAAU,MAAM,OAAS,IACtB,CAtEG,CAHA,CA0Ed,GAAG,CAAC,EAAY,EAAM,EAAQ,IAyG9B,OAAI,IAAW,OAAO,QACV,MAAM,cAAc,QAAS,CAAE,MAAO,GAAS,EAAS,EAAG,OAAQ,GAAU,EAAS,IAE9F,IAAW,OAAO,OACX,MAAM,cAAc,aAAc,CAAE,MAAO,GAAS,EAAS,EAAG,OAAQ,GAAU,EAAS,IAE9F,MAAM,cAAc,MAAO,CAAE,UAAW,WAAW,eAAgB,GAAY,MAAO,CAAE,MAAO,GAAS,QAAS,OAAQ,GAAU,UACvI,MAAM,cAAc,MAAO,CAAE,UAAW,WACpC,MAAM,cAAc,MAAO,CAAE,IAAK,EAAK,MAAO,EAAK,GAAI,OAAQ,EAAK,GAAI,IAAK,SAC7E,MAAM,cAAc,MAAO,CAAE,UAAW,WAAY,IAAK,IACzD,MAAM,cAAc,MAAO,CAAE,UAAW,cAAe,IAAK,GACxD,MAAM,cAAc,OAAQ,CAAE,WAAY,EAAY,WAAY,EAAY,IAAK,EAAW,SAAU,EAAU,MAAO,EAAS,QAAS,UAAW,EAAW,SAAU,EAAU,gBAnH3K,SAAU,EAAM,GAClC,IAAI,EAAS,EAAO,QAChB,EAAY,EAAU,QACtB,EAAY,EAAU,QACtB,EAAU,EAAU,WAAW,MAC/B,EAAW,EAAS,QACpB,EAAW,EAAS,QAAQ,wBAChC,EAAa,QAAU,EACvB,IAAI,EAAW,CACX,EAAY,QACZ,EAAa,QACb,EAAY,QACZ,EAAW,SACb,GACE,EAAI,CACJ,EAAY,QACZ,EAAa,QACb,EAAY,QACZ,EAAW,SACb,EAAI,GACF,EAAa,SAAU,GACvB,IAAI,EAAU,EAAU,wBAAwB,OAEhD,EAAM,iBACN,EAAM,kBACN,IAAI,EAAS,eAAe,EAAQ,EAAM,QAAS,EAAM,SAEzD,GADA,kBAAkB,EAAW,EAAU,EAAU,GAC7C,EAAW,CACX,GAAkB,aAAd,EAA0B,CAC1B,IAAI,EAAO,EAAO,EAAI,EAAE,EACpB,EAAU,CACV,EAAG,EAAE,EACL,EAAG,EAAE,EAAI,GAEb,OAAO,iBAAiB,CACpB,SAAU,EACV,QAAS,EACT,UAAW,EACX,SAAU,EACV,UAAW,EACX,QAAS,EACT,MAAO,OAEf,CAEI,IAAI,EAAO,EAAO,EAAI,EAAE,EACpB,EAAU,CACV,EAAG,EAAE,EAAI,EACT,EAAG,EAAE,GAET,OAAO,iBAAiB,CACpB,SAAU,EACV,QAAS,EACT,UAAW,EACX,SAAU,EACV,UAAW,EACX,QAAS,EACT,MAAO,OAGnB,CACA,OAAO,iBAAiB,CACpB,SAAU,EACV,QAAS,EACT,UAAW,EACX,SAAU,EACV,UAAW,EACX,QAAS,EACT,MAAO,OAEf,EACA,EAAO,YAAc,EACrB,EAAU,YAAc,EACxB,SAAS,UAAY,SAAU,GAE3B,IAAI,EADJ,GAAY,WAAc,OAAO,EAAW,EAAQ,IAGhD,EADyB,aAAzB,EAAa,QACJ,CACL,EAAG,EAAE,EACL,EAAG,eAAe,EAAQ,EAAM,QAAS,EAAM,SAAS,GAG9B,eAAzB,EAAa,QACT,CACL,EAAG,eAAe,EAAQ,EAAM,QAAS,EAAM,SAAS,EACxD,EAAG,EAAE,GAIA,eAAe,EAAQ,EAAM,QAAS,EAAM,SAEzD,EAAO,QAAU,EACjB,IAAI,EAAK,cAAc,EAAU,GAAS,EAAM,EAAG,GAAI,EAAM,EAAG,GAAI,EAAQ,EAAG,GAAI,EAAO,EAAG,GAC7F,EAAY,QAAU,EACtB,EAAa,QAAU,EACvB,EAAY,QAAU,EACtB,EAAW,QAAU,EACrB,GAAY,GACZ,EAAO,YAAc,KACrB,EAAU,YAAc,KACxB,SAAS,UAAY,KACrB,EAAa,QAAU,IAC3B,CACJ,EAYmO,aAAc,EAAa,YA/R5O,WACd,GAAY,GACZ,GAAY,GACZ,IAAI,EAAY,EAAU,QACtB,EAAS,EAAO,QACpB,OAAO,OAAO,EAAU,MAAO,CAC3B,MAAO,MACP,OAAQ,QAEZ,EAAO,YAAc,CACzB,EAqRwR,QAAS,EAAS,WAAY,EAAY,UAAW,MACpU,GAAe,MAAM,cAAc,MAAO,CAAE,UAAW,iBAAkB,IAAK,EAAgB,YAAa,GACxG,MAAM,cAAc,SAAU,CAAE,IAAK,EAAa,MAAO,IAAK,OAAQ,QACtF,EACA,WAAW,aAAe,CACtB,QAAS,GACT,UAAW,MACX,SAAU,CAAE,EAAG,QAAS,EAAG,UAG/B,OAAO,QAAU","file":"/npm/image-editor-little@0.1.5/dist/lib.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/image-editor-little@0.1.5/dist/lib.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\n\n\nfunction __$styleInject(css) {\n    if (!css) return;\n\n    if (typeof window == 'undefined') return;\n    var style = document.createElement('style');\n    style.setAttribute('media', 'screen');\n\n    style.innerHTML = css;\n    document.head.appendChild(style);\n    return css;\n}\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar reactDom = _interopDefault(require('react-dom'));\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar classnames = createCommonjsModule(function (module) {\n/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n});\n\nvar getFileName = (function (cacheMap) { return function () {\r\n    var name = '';\r\n    var fn = function () {\r\n        name = '';\r\n        for (var i = 0; i < 16; i++) {\r\n            name += String.fromCharCode(Math.floor(Math.random() * 26) + 65).toLocaleLowerCase();\r\n        }\r\n        return name;\r\n    };\r\n    fn();\r\n    while (cacheMap.has(name)) {\r\n        fn();\r\n    }\r\n    cacheMap.set(name, true);\r\n    return name;\r\n}; })(new Map());\r\nvar rgb2hex = function (r, g, b) {\r\n    var str1 = r.toString(16);\r\n    var str2 = g.toString(16);\r\n    var str3 = b.toString(16);\r\n    return \"#\" + (str1.length < 2 ? '0' + str1 : str1) + (str2.length < 2 ? '0' + str2 : str2) + (str3.length < 2 ? '0' + str3 : str3);\r\n};\r\nvar getLocInfo = function (firstLoc, lastLoc) {\r\n    var x;\r\n    var y;\r\n    if (lastLoc.x < firstLoc.x) {\r\n        x = lastLoc.x;\r\n    }\r\n    else {\r\n        x = firstLoc.x;\r\n    }\r\n    if (lastLoc.y < firstLoc.y) {\r\n        y = lastLoc.y;\r\n    }\r\n    else {\r\n        y = firstLoc.y;\r\n    }\r\n    var w = Math.abs(lastLoc.x - firstLoc.x);\r\n    var h = Math.abs(lastLoc.y - firstLoc.y);\r\n    return [x, y, w, h];\r\n};\r\n/** 获取长宽 */\r\nvar getWidthAndHeight = function (image, width, height) {\r\n    if (width === void 0) { width = window.innerWidth; }\r\n    if (height === void 0) { height = window.innerHeight; }\r\n    var t = image.width / image.height;\r\n    if (height < image.height || width < image.width) {\r\n        var ws = image.width / width;\r\n        var hs = image.height / height;\r\n        if (ws <= hs) {\r\n            return [Math.floor(height * t), Math.floor(height)];\r\n        }\r\n        else {\r\n            return [Math.floor(width), Math.floor(width / t)];\r\n        }\r\n    }\r\n    return [Math.floor(image.width), Math.floor(image.height)];\r\n};\r\n/** 获取鼠标坐标, 相对 canvas */\r\nvar windowToCanvas = function (ele, x, y) {\r\n    var box = ele.getBoundingClientRect();\r\n    var curX;\r\n    var curY;\r\n    if (x > box.right) {\r\n        curX = box.width;\r\n    }\r\n    else if (x < box.left) {\r\n        curX = 0;\r\n    }\r\n    else {\r\n        curX = x - box.left;\r\n    }\r\n    if (y > box.bottom) {\r\n        curY = box.height;\r\n    }\r\n    else if (y < box.top) {\r\n        curY = 0;\r\n    }\r\n    else {\r\n        curY = y - box.top;\r\n    }\r\n    return {\r\n        x: curX,\r\n        y: curY\r\n    };\r\n};\r\nvar realWindowToCanvas = function (ele, x, y) {\r\n    var box = ele.getBoundingClientRect();\r\n    return {\r\n        x: x - box.left,\r\n        y: y - box.top\r\n    };\r\n};\r\nvar handleMoveEffect = function (_a) {\r\n    var firstLoc = _a.firstLoc, lastLoc = _a.lastLoc, puzzleEle = _a.puzzleEle, ratioRef = _a.ratioRef, parentEle = _a.parentEle, context = _a.context, image = _a.image;\r\n    var _b = getLocInfo(firstLoc, lastLoc), x = _b[0], y = _b[1], w = _b[2], h = _b[3];\r\n    puzzleEle.width = w * ratioRef.current;\r\n    puzzleEle.height = h * ratioRef.current;\r\n    Object.assign(puzzleEle.style, {\r\n        width: w + \"px\",\r\n        height: h + \"px\"\r\n    });\r\n    Object.assign(parentEle.style, {\r\n        top: y + \"px\",\r\n        left: x + \"px\"\r\n    });\r\n    var draw = function () {\r\n        context.drawImage(image, x * ratioRef.current, y * ratioRef.current, w * ratioRef.current, h * ratioRef.current, 0, 0, w * ratioRef.current, h * ratioRef.current);\r\n    };\r\n    draw();\r\n    return draw;\r\n};\r\nvar getPointByLoc = function (firstLoc, curLoc) {\r\n    var x1 = firstLoc.x, y1 = firstLoc.y;\r\n    var x2 = curLoc.x, y2 = curLoc.y;\r\n    if (x2 >= x1 && y2 >= y1) {\r\n        return [\r\n            { x: x1, y: y1 },\r\n            { x: x2, y: y1 },\r\n            { x: x1, y: y2 },\r\n            { x: x2, y: y2 }\r\n        ];\r\n    }\r\n    if (x2 >= x1 && y2 < y1) {\r\n        return [\r\n            { x: x1, y: y2 },\r\n            { x: x2, y: y2 },\r\n            { x: x1, y: y1 },\r\n            { x: x2, y: y1 }\r\n        ];\r\n    }\r\n    if (x2 < x1 && y2 >= y1) {\r\n        return [\r\n            { x: x2, y: y1 },\r\n            { x: x1, y: y1 },\r\n            { x: x2, y: y2 },\r\n            { x: x1, y: y2 }\r\n        ];\r\n    }\r\n    return [\r\n        { x: x2, y: y2 },\r\n        { x: x1, y: y2 },\r\n        { x: x2, y: y1 },\r\n        { x: x1, y: y1 }\r\n    ];\r\n};\r\nvar setToolsLocEffect = function (puzzleEle, toolsEle, toolsLoc, parentH) {\r\n    var puzzleInfo = puzzleEle.getBoundingClientRect();\r\n    if (puzzleInfo.top >= window.innerHeight - parentH - toolsLoc.height - 16) {\r\n        Object.assign(toolsEle.style, { bottom: '16px' });\r\n    }\r\n    else {\r\n        Object.assign(toolsEle.style, {\r\n            bottom: -16 - toolsLoc.height + \"px\"\r\n        });\r\n    }\r\n    if (puzzleInfo.left <= toolsLoc.width - puzzleInfo.width) {\r\n        Object.assign(toolsEle.style, { left: '0px', right: 'unset' });\r\n    }\r\n    else {\r\n        Object.assign(toolsEle.style, { right: '0px', left: 'unset' });\r\n    }\r\n};\r\nvar useCombinedRefs = function () {\r\n    var refs = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        refs[_i] = arguments[_i];\r\n    }\r\n    var targetRef = React.useRef(null);\r\n    React.useEffect(function () {\r\n        refs.forEach(function (ref) {\r\n            if (!ref)\r\n                return;\r\n            if (typeof ref === 'function') {\r\n                ref(targetRef.current);\r\n            }\r\n            else {\r\n                ref.current = targetRef.current;\r\n            }\r\n        });\r\n    }, [refs]);\r\n    return targetRef;\r\n};\r\nvar drawHorizontalLine = function (context) {\r\n    context.strokeStyle = '#30ca30';\r\n    context.lineWidth = 1;\r\n    context.beginPath();\r\n    context.moveTo(0, context.canvas.height / 2 + 0.5);\r\n    context.lineTo(context.canvas.width, context.canvas.height / 2 + 0.5);\r\n    context.stroke();\r\n};\r\nvar drawVerticalLine = function (context) {\r\n    context.strokeStyle = '#30ca30';\r\n    context.lineWidth = 1;\r\n    context.beginPath();\r\n    context.moveTo(context.canvas.width / 2 + 0.5, 0);\r\n    context.lineTo(context.canvas.width / 2, context.canvas.height);\r\n    context.stroke();\r\n};\r\nvar drawLocCanvas = function (_a) {\r\n    var image = _a.image, box = _a.box, ele = _a.ele, loc = _a.loc, ratioRef = _a.ratioRef, event = _a.event, _b = _a.size, size = _b === void 0 ? 10 : _b;\r\n    var context = ele.getContext('2d');\r\n    var boxLoc = box.getBoundingClientRect();\r\n    ele.width = size * 10;\r\n    ele.height = size * 10;\r\n    if (window.innerWidth - event.clientX - boxLoc.width - 16 <= 0) {\r\n        box.style.left = loc.x - boxLoc.width - 16 + \"px\";\r\n    }\r\n    else {\r\n        box.style.left = loc.x + 16 + \"px\";\r\n    }\r\n    if (window.innerHeight - event.clientY - boxLoc.height - 16 <= 0) {\r\n        box.style.top = loc.y - boxLoc.height - 16 + \"px\";\r\n    }\r\n    else {\r\n        box.style.top = loc.y + 16 + \"px\";\r\n    }\r\n    context.drawImage(image, (loc.x - size) * ratioRef.current, (loc.y - size) * ratioRef.current, size * ratioRef.current * 2, size * ratioRef.current * 2, 0, 0, size * 10, size * 10);\r\n    drawHorizontalLine(context);\r\n    drawVerticalLine(context);\r\n};\r\nvar drawSvg = function (firstLoc, lastLoc, svgEle) {\r\n    var _a = getLocInfo(firstLoc, lastLoc), x = _a[0], y = _a[1], w = _a[2], h = _a[3];\r\n    svgEle.style.left = x + \"px\";\r\n    svgEle.style.top = y + \"px\";\r\n    return [w, h];\r\n};\r\nvar drawSvgOnCanvas = function (type, firstLoc, lastLoc, context, ratio, info) {\r\n    var _a = getLocInfo(firstLoc, lastLoc), x = _a[0], y = _a[1], w = _a[2], h = _a[3];\r\n    var draw = function () {\r\n        context.beginPath();\r\n        var linW = info.size / 2;\r\n        if (type === 'rect') {\r\n            context.lineJoin = 'round';\r\n            context.rect(x * ratio + linW, y * ratio + linW, w * ratio - info.size, h * ratio - info.size);\r\n        }\r\n        else {\r\n            context.ellipse(x * ratio + (w / 2) * ratio, y * ratio + (h / 2) * ratio, (w / 2) * ratio, (h / 2) * ratio, 0, 0, 2 * Math.PI);\r\n        }\r\n        context.strokeStyle = info.color;\r\n        context.lineWidth = info.size * ratio;\r\n        context.stroke();\r\n        context.closePath();\r\n    };\r\n    draw();\r\n    return draw;\r\n};\r\nvar drawLine = function (lastLoc, curLoc, context, ratio, info) {\r\n    context.beginPath();\r\n    context.moveTo(lastLoc.x * ratio, lastLoc.y * ratio);\r\n    context.lineTo(curLoc.x * ratio, curLoc.y * ratio);\r\n    context.lineWidth = info.size * ratio;\r\n    context.strokeStyle = info.color;\r\n    context.lineCap = 'round';\r\n    context.lineJoin = 'round';\r\n    context.stroke();\r\n};\r\nvar drawMosaic = function (context, x, y, size, \r\n// 画笔宽度, 先不做这个功能\r\ntrackSize) {\r\n    if (trackSize === void 0) { trackSize = 0; }\r\n    var pointList = [];\r\n    var imgData = context.getImageData(0, 0, context.canvas.width, context.canvas.height);\r\n    var w = Math.ceil(context.canvas.width / size);\r\n    var h = Math.ceil(context.canvas.height / size);\r\n    var startRow = Math.max(0, Math.floor((x - trackSize) / size));\r\n    var startCol = Math.max(0, Math.floor((y - trackSize) / size));\r\n    var endRow = Math.min(w, Math.ceil(x + trackSize) / size);\r\n    var endCol = Math.min(h, Math.ceil(y + trackSize) / size);\r\n    while (startCol < endCol) {\r\n        var row = startRow;\r\n        var _loop_1 = function () {\r\n            row += 1;\r\n            var index = startCol * w + row;\r\n            var locX = index % w - 1;\r\n            var locY = Math.floor(index / w);\r\n            var dataIndex = Math.floor(locY * size) * context.canvas.width + Math.floor(locX * size);\r\n            var r = imgData.data[dataIndex * 4];\r\n            var g = imgData.data[dataIndex * 4 + 1];\r\n            var b = imgData.data[dataIndex * 4 + 2];\r\n            var color = rgb2hex(r, g, b);\r\n            if (!pointList.find(function (point) { return point.x === locX && point.y === locY; })) {\r\n                pointList.push({ x: locX, y: locY, color: color });\r\n            }\r\n        };\r\n        while (row < endRow) {\r\n            _loop_1();\r\n        }\r\n        startCol += 1;\r\n    }\r\n    pointList.forEach(function (point) {\r\n        context.fillStyle = point.color;\r\n        context.fillRect(point.x * size, point.y * size, size, size);\r\n    });\r\n};\n\nvar Status;\r\n(function (Status) {\r\n    Status[Status[\"loading\"] = 0] = \"loading\";\r\n    Status[Status[\"loaded\"] = 1] = \"loaded\";\r\n    Status[Status[\"failed\"] = 2] = \"failed\";\r\n})(Status || (Status = {}));\n\n__$styleInject(\".image-editor {\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  background: black;\\n}\\n.image-editor .hold {\\n  color: white;\\n  font-size: 24px;\\n  font-weight: bold;\\n}\\n.image-editor .img-box {\\n  position: relative;\\n  display: flex;\\n  user-select: none;\\n}\\n.image-editor .drag-box {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  width: 100%;\\n  height: 100%;\\n  background-color: rgba(0, 0, 0, 0.5);\\n}\\n.image-editor .drag-parent {\\n  position: absolute;\\n  left: -99999px;\\n}\\n.image-editor .drag-border {\\n  display: flex;\\n  box-sizing: border-box;\\n  position: relative;\\n  width: 100%;\\n  height: 100%;\\n}\\n.image-editor .tools {\\n  display: flex;\\n  padding: 0 20px;\\n  align-items: center;\\n  justify-content: space-between;\\n  position: absolute;\\n  background: #272323;\\n  width: 300px;\\n  height: 40px;\\n  right: -99999px;\\n}\\n.image-editor .tools svg {\\n  cursor: pointer;\\n}\\n.image-editor .tools-text {\\n  color: #fff;\\n  border: 1px solid #fff;\\n}\\n.image-editor .tools-rect {\\n  border: 1px solid #fff;\\n}\\n.image-editor .tools-circle {\\n  border: 1px solid #fff;\\n  border-radius: 50%;\\n}\\n.image-editor .tools-hold {\\n  width: 1px;\\n  height: 20px;\\n  background: #403c3c;\\n}\\n.image-editor .tools-item {\\n  cursor: pointer;\\n  width: 20px;\\n  height: 20px;\\n  line-height: 20px;\\n  text-align: center;\\n}\\n.image-editor .tool-selected {\\n  color: #30ca30;\\n  border-color: #30ca30;\\n}\\n.image-editor .canvas {\\n  width: 100%;\\n}\\n.image-editor .point {\\n  position: absolute;\\n  width: 8px;\\n  height: 8px;\\n  border-radius: 50%;\\n  background: #fff;\\n  border: 0.5px solid #000;\\n}\\n.image-editor .left-top {\\n  left: -4px;\\n  top: -4px;\\n  cursor: nwse-resize;\\n}\\n.image-editor .center-top {\\n  left: 50%;\\n  transform: translateX(-50%);\\n  top: -4px;\\n  cursor: ns-resize;\\n}\\n.image-editor .right-top {\\n  right: -4px;\\n  top: -4px;\\n  cursor: nesw-resize;\\n}\\n.image-editor .left-center {\\n  left: -4px;\\n  top: 50%;\\n  transform: translateY(-50%);\\n  cursor: ew-resize;\\n}\\n.image-editor .right-center {\\n  right: -4px;\\n  top: 50%;\\n  transform: translateY(-50%);\\n  cursor: ew-resize;\\n}\\n.image-editor .left-bottom {\\n  left: -4px;\\n  bottom: -4px;\\n  cursor: nesw-resize;\\n}\\n.image-editor .center-bottom {\\n  left: 50%;\\n  transform: translateX(-50%);\\n  bottom: -4px;\\n  cursor: ns-resize;\\n}\\n.image-editor .right-bottom {\\n  right: -4px;\\n  bottom: -4px;\\n  cursor: nwse-resize;\\n}\\n.image-editor .tools-location {\\n  position: absolute;\\n  left: -99999px;\\n  display: flex;\\n  border: 1px solid #30ca30;\\n}\\n.image-editor .svg-options {\\n  position: absolute;\\n  left: -99999px;\\n}\\n.image-editor-pop {\\n  display: flex;\\n  padding: 0 8px;\\n  align-items: center;\\n  justify-content: space-between;\\n  background: #272323;\\n  height: 30px;\\n}\\n.image-editor-pop .size-item {\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n  cursor: pointer;\\n  width: 20px;\\n  height: 20px;\\n  box-sizing: border-box;\\n}\\n.image-editor-pop .size-item:not(:last-child) {\\n  margin-right: 8px;\\n}\\n.image-editor-pop .color-item {\\n  cursor: pointer;\\n  width: 20px;\\n  height: 20px;\\n  box-sizing: border-box;\\n}\\n.image-editor-pop .color-item:not(:last-child) {\\n  margin-right: 3px;\\n}\\n.image-editor-pop .color-item:first-child {\\n  margin-left: 8px;\\n}\\n.image-editor-pop .color-green {\\n  background: #30ca30;\\n}\\n.image-editor-pop .color-red {\\n  background: #f71f1f;\\n}\\n.image-editor-pop .color-yellow {\\n  background: #f1f117;\\n}\\n.image-editor-pop .color-blue {\\n  background: #31e9f9;\\n}\\n.image-editor-pop .color-white {\\n  background: #fff;\\n}\\n.image-editor-pop .stroke-small {\\n  background: #564e4e;\\n  width: 4px;\\n  height: 4px;\\n  border-radius: 50%;\\n}\\n.image-editor-pop .stroke-default {\\n  background: #564e4e;\\n  width: 8px;\\n  height: 8px;\\n  border-radius: 50%;\\n}\\n.image-editor-pop .stroke-large {\\n  background: #564e4e;\\n  width: 16px;\\n  height: 16px;\\n  border-radius: 50%;\\n}\\n.image-editor-pop .tools-size-selected {\\n  background: #fff;\\n}\\n.image-editor-pop .tools-color-selected {\\n  border: 1px solid #fff;\\n}\\n.image-editor-loading {\\n  display: flex;\\n}\\n\");\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\n\nvar Svg = React.forwardRef(function (_a, ref) {\r\n    var type = _a.type, width = _a.width, height = _a.height, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\r\n    return (React.createElement(\"svg\", { className: \"svg-options\", width: width, height: height, xmlns: \"http://www.w3.org/2000/svg\", ref: ref },\r\n        type === 'rect' && (React.createElement(\"rect\", { width: width, height: height, stroke: stroke, fill: \"transparent\", strokeWidth: strokeWidth })),\r\n        type === 'circle' && (React.createElement(\"ellipse\", { cx: width / 2, cy: height / 2, rx: width / 2, ry: height / 2, stroke: stroke, fill: \"transparent\", strokeWidth: strokeWidth }))));\r\n});\r\nSvg.defaultProps = {\r\n    stroke: '#f1f117',\r\n    strokeWidth: 4\r\n};\n\nvar util = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Constants = {\n    POPOVER_CONTAINER_CLASS_NAME: 'react-tiny-popover-container',\n    DEFAULT_PADDING: 6,\n    DEFAULT_WINDOW_PADDING: 6,\n    FADE_TRANSITION: 0.35,\n    DEFAULT_ARROW_COLOR: 'black',\n    DEFAULT_POSITIONS: ['top', 'left', 'right', 'bottom'],\n    EMPTY_CLIENT_RECT: {\n        top: 0,\n        left: 0,\n        bottom: 0,\n        height: 0,\n        right: 0,\n        width: 0,\n    },\n};\nexports.arrayUnique = function (array) { return array.filter(function (value, index, self) { return self.indexOf(value) === index; }); };\n\n});\n\nunwrapExports(util);\nvar util_1 = util.Constants;\nvar util_2 = util.arrayUnique;\n\nvar ArrowContainer_1 = createCommonjsModule(function (module, exports) {\nvar __assign = (commonjsGlobal && commonjsGlobal.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n\nvar ArrowContainer = function (_a) {\n    var position = _a.position, children = _a.children, style = _a.style, _b = _a.arrowColor, arrowColor = _b === void 0 ? util.Constants.DEFAULT_ARROW_COLOR : _b, _c = _a.arrowSize, arrowSize = _c === void 0 ? 10 : _c, arrowStyle = _a.arrowStyle, popoverRect = _a.popoverRect, targetRect = _a.targetRect;\n    return (React__default.createElement(\"div\", { style: __assign({ paddingLeft: position === 'right' ? arrowSize : 0, paddingTop: position === 'bottom' ? arrowSize : 0, paddingBottom: position === 'top' ? arrowSize : 0, paddingRight: position === 'left' ? arrowSize : 0 }, style) },\n        React__default.createElement(\"div\", { style: __assign({ position: 'absolute' }, (function () {\n                var arrowWidth = arrowSize * 2;\n                var top = (targetRect.top - popoverRect.top) + (targetRect.height / 2) - (arrowWidth / 2);\n                var left = (targetRect.left - popoverRect.left) + (targetRect.width / 2) - (arrowWidth / 2);\n                left = left < 0 ? 0 : left;\n                left = left + arrowWidth > popoverRect.width ? popoverRect.width - arrowWidth : left;\n                top = top < 0 ? 0 : top;\n                top = top + arrowWidth > popoverRect.height ? popoverRect.height - arrowWidth : top;\n                switch (position) {\n                    case 'right':\n                        return {\n                            borderTop: arrowSize + \"px solid transparent\",\n                            borderBottom: arrowSize + \"px solid transparent\",\n                            borderRight: arrowSize + \"px solid \" + arrowColor,\n                            left: 0,\n                            top: top,\n                        };\n                    case 'left':\n                        return {\n                            borderTop: arrowSize + \"px solid transparent\",\n                            borderBottom: arrowSize + \"px solid transparent\",\n                            borderLeft: arrowSize + \"px solid \" + arrowColor,\n                            right: 0,\n                            top: top,\n                        };\n                    case 'bottom':\n                        return {\n                            borderLeft: arrowSize + \"px solid transparent\",\n                            borderRight: arrowSize + \"px solid transparent\",\n                            borderBottom: arrowSize + \"px solid \" + arrowColor,\n                            top: 0,\n                            left: left,\n                        };\n                    case 'top':\n                    default:\n                        return {\n                            borderLeft: arrowSize + \"px solid transparent\",\n                            borderRight: arrowSize + \"px solid transparent\",\n                            borderTop: arrowSize + \"px solid \" + arrowColor,\n                            bottom: 0,\n                            left: left,\n                        };\n                }\n            })(), arrowStyle) }),\n        children));\n};\nexports.ArrowContainer = ArrowContainer;\n\n});\n\nunwrapExports(ArrowContainer_1);\nvar ArrowContainer_2 = ArrowContainer_1.ArrowContainer;\n\nvar Popover_1 = createCommonjsModule(function (module, exports) {\nvar __extends = (commonjsGlobal && commonjsGlobal.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n\n\n\nexports.ArrowContainer = ArrowContainer_1.ArrowContainer;\nvar Popover = /** @class */ (function (_super) {\n    __extends(Popover, _super);\n    function Popover() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.target = null;\n        _this.targetRect = null;\n        _this.targetPositionIntervalHandler = null;\n        _this.popoverDiv = null;\n        _this.positionOrder = null;\n        _this.willUnmount = false;\n        _this.willMount = false;\n        _this.onResize = function (e) {\n            _this.renderPopover();\n        };\n        _this.onClick = function (e) {\n            var _a = _this.props, onClickOutside = _a.onClickOutside, isOpen = _a.isOpen;\n            if (!_this.willUnmount && !_this.willMount && !_this.popoverDiv.contains(e.target) && !_this.target.contains(e.target) && onClickOutside && isOpen) {\n                onClickOutside(e);\n            }\n        };\n        return _this;\n    }\n    Popover.prototype.componentDidMount = function () {\n        var _this = this;\n        window.setTimeout(function () { return _this.willMount = false; });\n        var _a = this.props, position = _a.position, isOpen = _a.isOpen;\n        this.target = reactDom.findDOMNode(this);\n        this.positionOrder = this.getPositionPriorityOrder(position);\n        this.updatePopover(isOpen);\n    };\n    Popover.prototype.componentDidUpdate = function (prevProps) {\n        if (this.target == null) {\n            this.target = reactDom.findDOMNode(this);\n        }\n        var prevIsOpen = prevProps.isOpen, prevPosition = prevProps.position, prevBody = prevProps.content;\n        var _a = this.props, isOpen = _a.isOpen, content = _a.content, position = _a.position;\n        this.positionOrder = this.getPositionPriorityOrder(this.props.position);\n        var hasNewDestination = prevProps.contentDestination !== this.props.contentDestination;\n        if (prevIsOpen !== isOpen ||\n            prevBody !== content ||\n            prevPosition !== position ||\n            hasNewDestination) {\n            if (hasNewDestination) {\n                this.removePopover();\n                this.popoverDiv.remove();\n            }\n            this.updatePopover(isOpen);\n        }\n    };\n    Popover.prototype.componentWillMount = function () {\n        this.willUnmount = false;\n        this.willMount = true;\n    };\n    Popover.prototype.componentWillUnmount = function () {\n        this.willUnmount = true;\n        this.removePopover();\n    };\n    Popover.prototype.render = function () {\n        return this.props.children;\n    };\n    Popover.prototype.updatePopover = function (isOpen) {\n        if (isOpen && this.target != null) {\n            if (!this.popoverDiv || !this.popoverDiv.parentNode) {\n                var transitionDuration = this.props.transitionDuration;\n                this.popoverDiv = this.createContainer();\n                this.popoverDiv.style.opacity = '0';\n                this.popoverDiv.style.transition = \"opacity \" + (transitionDuration || util.Constants.FADE_TRANSITION) + \"s\";\n                (this.props.contentDestination || window.document.body).appendChild(this.popoverDiv);\n                window.addEventListener('resize', this.onResize);\n                window.addEventListener('click', this.onClick);\n            }\n            this.renderPopover();\n        }\n        else if (this.popoverDiv && this.popoverDiv.parentNode) {\n            this.removePopover();\n        }\n    };\n    Popover.prototype.renderPopover = function (positionIndex) {\n        var _this = this;\n        if (positionIndex === void 0) { positionIndex = 0; }\n        if (positionIndex >= this.positionOrder.length) {\n            this.removePopover();\n            return;\n        }\n        this.renderWithPosition({ position: this.positionOrder[positionIndex], targetRect: this.target.getBoundingClientRect() }, function (violation, rect) {\n            var _a;\n            var _b = _this.props, disableReposition = _b.disableReposition, contentLocation = _b.contentLocation;\n            if (violation && !disableReposition && !(typeof contentLocation === 'object')) {\n                _this.renderPopover(positionIndex + 1);\n            }\n            else {\n                var _c = _this.props, contentLocation_1 = _c.contentLocation, align = _c.align;\n                var _d = _this.getNudgedPopoverPosition(rect), nudgedTop = _d.top, nudgedLeft = _d.left;\n                var rectTop = rect.top, rectLeft = rect.left;\n                var position = _this.positionOrder[positionIndex];\n                var _e = disableReposition ? { top: rectTop, left: rectLeft } : { top: nudgedTop, left: nudgedLeft }, top_1 = _e.top, left = _e.left;\n                if (contentLocation_1) {\n                    var targetRect = _this.target.getBoundingClientRect();\n                    var popoverRect = _this.popoverDiv.getBoundingClientRect();\n                    (_a = typeof contentLocation_1 === 'function' ? contentLocation_1({ targetRect: targetRect, popoverRect: popoverRect, position: position, align: align, nudgedLeft: nudgedLeft, nudgedTop: nudgedTop }) : contentLocation_1, top_1 = _a.top, left = _a.left);\n                    _this.popoverDiv.style.left = left.toFixed() + \"px\";\n                    _this.popoverDiv.style.top = top_1.toFixed() + \"px\";\n                }\n                else {\n                    var destinationTopOffset = 0;\n                    var destinationLeftOffset = 0;\n                    if (_this.props.contentDestination) {\n                        var destRect = _this.props.contentDestination.getBoundingClientRect();\n                        destinationTopOffset = -destRect.top;\n                        destinationLeftOffset = -destRect.left;\n                    }\n                    var _f = [top_1 + window.pageYOffset, left + window.pageXOffset], absoluteTop = _f[0], absoluteLeft = _f[1];\n                    var finalLeft = absoluteLeft + destinationTopOffset;\n                    var finalTop = absoluteTop + destinationLeftOffset;\n                    _this.popoverDiv.style.left = finalLeft.toFixed() + \"px\";\n                    _this.popoverDiv.style.top = finalTop.toFixed() + \"px\";\n                }\n                _this.popoverDiv.style.width = null;\n                _this.popoverDiv.style.height = null;\n                _this.renderWithPosition({\n                    position: position,\n                    nudgedTop: nudgedTop - rect.top,\n                    nudgedLeft: nudgedLeft - rect.left,\n                    targetRect: _this.target.getBoundingClientRect(),\n                    popoverRect: _this.popoverDiv.getBoundingClientRect(),\n                }, function () {\n                    _this.startTargetPositionListener(10);\n                    if (_this.popoverDiv.style.opacity !== '1') {\n                        _this.popoverDiv.style.opacity = '1';\n                    }\n                });\n            }\n        });\n    };\n    Popover.prototype.startTargetPositionListener = function (checkInterval) {\n        var _this = this;\n        if (this.targetPositionIntervalHandler === null) {\n            this.targetPositionIntervalHandler = window.setInterval(function () {\n                var newTargetRect = _this.target.getBoundingClientRect();\n                if (_this.targetPositionHasChanged(_this.targetRect, newTargetRect)) {\n                    _this.renderPopover();\n                }\n                _this.targetRect = newTargetRect;\n            }, checkInterval);\n        }\n    };\n    Popover.prototype.renderWithPosition = function (_a, callback) {\n        var _this = this;\n        var position = _a.position, _b = _a.nudgedLeft, nudgedLeft = _b === void 0 ? 0 : _b, _c = _a.nudgedTop, nudgedTop = _c === void 0 ? 0 : _c, _d = _a.targetRect, targetRect = _d === void 0 ? util.Constants.EMPTY_CLIENT_RECT : _d, _e = _a.popoverRect, popoverRect = _e === void 0 ? util.Constants.EMPTY_CLIENT_RECT : _e;\n        var _f = this.props, padding = _f.windowBorderPadding, content = _f.content, align = _f.align;\n        var getContent = function (args) {\n            return typeof content === 'function'\n                ? content(args)\n                : content;\n        };\n        reactDom.unstable_renderSubtreeIntoContainer(this, getContent({ position: position, nudgedLeft: nudgedLeft, nudgedTop: nudgedTop, targetRect: targetRect, popoverRect: popoverRect, align: align }), this.popoverDiv, function () {\n            if (_this.willUnmount) {\n                return;\n            }\n            var targetRect = _this.target.getBoundingClientRect();\n            var popoverRect = _this.popoverDiv.getBoundingClientRect();\n            var _a = _this.getLocationForPosition(position, targetRect, popoverRect), top = _a.top, left = _a.left;\n            callback(position === 'top' && top < padding ||\n                position === 'left' && left < padding ||\n                position === 'right' && left + popoverRect.width > window.innerWidth - padding ||\n                position === 'bottom' && top + popoverRect.height > window.innerHeight - padding, { width: popoverRect.width, height: popoverRect.height, top: top, left: left });\n        });\n    };\n    Popover.prototype.getNudgedPopoverPosition = function (_a) {\n        var top = _a.top, left = _a.left, width = _a.width, height = _a.height;\n        var padding = this.props.windowBorderPadding;\n        top = top < padding ? padding : top;\n        top = top + height > window.innerHeight - padding ? window.innerHeight - padding - height : top;\n        left = left < padding ? padding : left;\n        left = left + width > window.innerWidth - padding ? window.innerWidth - padding - width : left;\n        return { top: top, left: left };\n    };\n    Popover.prototype.removePopover = function () {\n        var _this = this;\n        if (this.popoverDiv) {\n            var transitionDuration = this.props.transitionDuration;\n            this.popoverDiv.style.opacity = '0';\n            var remove = function () {\n                if (_this.willUnmount || !_this.props.isOpen || !_this.popoverDiv.parentNode) {\n                    window.clearInterval(_this.targetPositionIntervalHandler);\n                    window.removeEventListener('resize', _this.onResize);\n                    window.removeEventListener('click', _this.onClick);\n                    _this.targetPositionIntervalHandler = null;\n                    if (_this.popoverDiv.parentNode) {\n                        _this.popoverDiv.parentNode.removeChild(_this.popoverDiv);\n                    }\n                }\n            };\n            if (!this.willUnmount) {\n                window.setTimeout(remove, (transitionDuration || util.Constants.FADE_TRANSITION) * 1000);\n            }\n            else {\n                remove();\n            }\n        }\n    };\n    Popover.prototype.getPositionPriorityOrder = function (position) {\n        if (position && typeof position !== 'string') {\n            if (util.Constants.DEFAULT_POSITIONS.every(function (defaultPosition) { return position.find(function (p) { return p === defaultPosition; }) !== undefined; })) {\n                return util.arrayUnique(position);\n            }\n            else {\n                var remainingPositions = util.Constants.DEFAULT_POSITIONS.filter(function (defaultPosition) { return position.find(function (p) { return p === defaultPosition; }) === undefined; });\n                return util.arrayUnique(position.concat(remainingPositions));\n            }\n        }\n        else if (position && typeof position === 'string') {\n            var remainingPositions = util.Constants.DEFAULT_POSITIONS.filter(function (defaultPosition) { return defaultPosition !== position; });\n            return util.arrayUnique([position].concat(remainingPositions));\n        }\n    };\n    Popover.prototype.createContainer = function () {\n        var _a = this.props, containerStyle = _a.containerStyle, containerClassName = _a.containerClassName;\n        var container = window.document.createElement('div');\n        container.style.overflow = 'hidden';\n        if (containerStyle) {\n            Object.keys(containerStyle).forEach(function (key) { return container.style[key] = containerStyle[key]; });\n        }\n        container.className = containerClassName;\n        container.style.position = 'absolute';\n        container.style.top = '0';\n        container.style.left = '0';\n        return container;\n    };\n    Popover.prototype.getLocationForPosition = function (position, newTargetRect, popoverRect) {\n        var _a = this.props, padding = _a.padding, align = _a.align;\n        var targetMidX = newTargetRect.left + (newTargetRect.width / 2);\n        var targetMidY = newTargetRect.top + (newTargetRect.height / 2);\n        var top;\n        var left;\n        switch (position) {\n            case 'top':\n                top = newTargetRect.top - popoverRect.height - padding;\n                left = targetMidX - (popoverRect.width / 2);\n                if (align === 'start') {\n                    left = newTargetRect.left;\n                }\n                if (align === 'end') {\n                    left = newTargetRect.right - popoverRect.width;\n                }\n                break;\n            case 'left':\n                top = targetMidY - (popoverRect.height / 2);\n                left = newTargetRect.left - padding - popoverRect.width;\n                if (align === 'start') {\n                    top = newTargetRect.top;\n                }\n                if (align === 'end') {\n                    top = newTargetRect.bottom - popoverRect.height;\n                }\n                break;\n            case 'bottom':\n                top = newTargetRect.bottom + padding;\n                left = targetMidX - (popoverRect.width / 2);\n                if (align === 'start') {\n                    left = newTargetRect.left;\n                }\n                if (align === 'end') {\n                    left = newTargetRect.right - popoverRect.width;\n                }\n                break;\n            case 'right':\n                top = targetMidY - (popoverRect.height / 2);\n                left = newTargetRect.right + padding;\n                if (align === 'start') {\n                    top = newTargetRect.top;\n                }\n                if (align === 'end') {\n                    top = newTargetRect.bottom - popoverRect.height;\n                }\n                break;\n        }\n        return { top: top, left: left };\n    };\n    Popover.prototype.targetPositionHasChanged = function (oldTargetRect, newTargetRect) {\n        return oldTargetRect === null\n            || oldTargetRect.left !== newTargetRect.left\n            || oldTargetRect.top !== newTargetRect.top\n            || oldTargetRect.width !== newTargetRect.width\n            || oldTargetRect.height !== newTargetRect.height;\n    };\n    Popover.defaultProps = {\n        padding: util.Constants.DEFAULT_PADDING,\n        windowBorderPadding: util.Constants.DEFAULT_WINDOW_PADDING,\n        position: ['top', 'right', 'left', 'bottom'],\n        align: 'center',\n        containerClassName: util.Constants.POPOVER_CONTAINER_CLASS_NAME,\n    };\n    return Popover;\n}(React__default.Component));\nexports.default = Popover;\n\n});\n\nvar Popover = unwrapExports(Popover_1);\nvar Popover_2 = Popover_1.ArrowContainer;\n\nvar Stroke = function (_a) {\r\n    var isHideColor = _a.isHideColor, info = _a.info, onChange = _a.onChange;\r\n    return (React.createElement(\"div\", { className: \"image-editor-pop\" },\r\n        React.createElement(\"div\", { className: \"size-item\", onClick: function () { return onChange({ size: 4 }); } },\r\n            React.createElement(\"div\", { className: classnames('stroke-small', {\r\n                    'tools-size-selected': info.size === 4\r\n                }) })),\r\n        React.createElement(\"div\", { className: \"size-item\", onClick: function () { return onChange({ size: 8 }); } },\r\n            React.createElement(\"div\", { className: classnames('stroke-default', {\r\n                    'tools-size-selected': info.size === 8\r\n                }) })),\r\n        React.createElement(\"div\", { className: \"size-item\", onClick: function () { return onChange({ size: 16 }); } },\r\n            React.createElement(\"div\", { className: classnames('stroke-large', {\r\n                    'tools-size-selected': info.size === 16\r\n                }) })),\r\n        !isHideColor && (React.createElement(React.Fragment, null,\r\n            React.createElement(\"div\", { className: classnames('color-item color-yellow', {\r\n                    'tools-color-selected': info.color === '#f1f117'\r\n                }), onClick: function () { return onChange({ color: '#f1f117' }); } }),\r\n            React.createElement(\"div\", { className: classnames('color-item color-red', {\r\n                    'tools-color-selected': info.color === '#f71f1f'\r\n                }), onClick: function () { return onChange({ color: '#f71f1f' }); } }),\r\n            React.createElement(\"div\", { className: classnames('color-item color-green', {\r\n                    'tools-color-selected': info.color === '#30ca30'\r\n                }), onClick: function () { return onChange({ color: '#30ca30' }); } }),\r\n            React.createElement(\"div\", { className: classnames('color-item color-blue', {\r\n                    'tools-color-selected': info.color === '#31e9f9'\r\n                }), onClick: function () { return onChange({ color: '#31e9f9' }); } })))));\r\n};\r\nStroke.defaultProps = {\r\n    isHideColor: false\r\n};\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar _ref =\n/*#__PURE__*/\nReact__default.createElement(\"path\", {\n  stroke: \"green\",\n  fill: \"transparent\",\n  d: \"M0 8l8 8L20 0\"\n});\n\nvar SvgConfirm = function SvgConfirm(props) {\n  return React__default.createElement(\"svg\", _extends({\n    width: 20,\n    height: 20\n  }, props), _ref);\n};\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\n\nvar _ref$1 =\n/*#__PURE__*/\nReact__default.createElement(\"defs\", null, React__default.createElement(\"style\", null));\n\nvar _ref2 =\n/*#__PURE__*/\nReact__default.createElement(\"path\", {\n  d: \"M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112c-4.1 3.2-4.1 9.4 0 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z\",\n  fill: \"#fff\"\n});\n\nvar SvgRollback = function SvgRollback(props) {\n  return React__default.createElement(\"svg\", _extends$1({\n    className: \"rollback_svg__icon\",\n    viewBox: \"0 0 1024 1024\",\n    width: 20,\n    height: 20\n  }, props), _ref$1, _ref2);\n};\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\n\nvar _ref$2 =\n/*#__PURE__*/\nReact__default.createElement(\"defs\", null, React__default.createElement(\"style\", null));\n\nvar _ref2$1 =\n/*#__PURE__*/\nReact__default.createElement(\"path\", {\n  d: \"M760.474 493.926a25.6 25.6 0 00-36.199 0L512 706.202V128a25.6 25.6 0 00-51.2 0v578.202L248.525 493.926a25.6 25.6 0 00-36.199 36.199l256 256a25.498 25.498 0 0036.25-.051l256-256a25.6 25.6 0 000-36.199z\",\n  fill: \"#fff\"\n});\n\nvar _ref3 =\n/*#__PURE__*/\nReact__default.createElement(\"path\", {\n  d: \"M896 972.8H76.8C34.458 972.8 0 938.342 0 896V793.6a25.6 25.6 0 0151.2 0V896a25.6 25.6 0 0025.6 25.6H896a25.6 25.6 0 0025.6-25.6V793.6a25.6 25.6 0 0151.2 0V896c0 42.342-34.458 76.8-76.8 76.8z\",\n  fill: \"#fff\"\n});\n\nvar SvgDownload = function SvgDownload(props) {\n  return React__default.createElement(\"svg\", _extends$2({\n    className: \"download_svg__icon\",\n    viewBox: \"0 0 1024 1024\",\n    width: 20,\n    height: 20\n  }, props), _ref$2, _ref2$1, _ref3);\n};\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\n\nvar _ref$3 =\n/*#__PURE__*/\nReact__default.createElement(\"defs\", null, React__default.createElement(\"style\", null));\n\nvar _ref2$2 =\n/*#__PURE__*/\nReact__default.createElement(\"path\", {\n  d: \"M544.448 499.2l284.576-284.576a32 32 0 00-45.248-45.248L499.2 453.952 214.624 169.376a32 32 0 00-45.248 45.248L453.952 499.2 169.376 783.776a32 32 0 0045.248 45.248L499.2 544.448l284.576 284.576a31.904 31.904 0 0045.248 0 32 32 0 000-45.248L544.448 499.2z\",\n  fill: \"#d81e06\"\n});\n\nvar SvgClose = function SvgClose(props) {\n  return React__default.createElement(\"svg\", _extends$3({\n    className: \"close_svg__icon\",\n    viewBox: \"0 0 1024 1024\",\n    width: 21,\n    height: 21\n  }, props), _ref$3, _ref2$2);\n};\n\nvar Tools = React.forwardRef(function (_a, ref) {\r\n    var type = _a.type, info = _a.info, setInfo = _a.setInfo, onChange = _a.onChange, onClose = _a.onClose, onCancel = _a.onCancel, onDownload = _a.onDownload, onCopy = _a.onCopy;\r\n    var _b = React.useState(''), selected = _b[0], setSelected = _b[1];\r\n    var _c = React.useState('bottom'), position = _c[0], setPosition = _c[1];\r\n    var toolsRef = React.useRef(null);\r\n    var combinedRef = useCombinedRefs(ref, toolsRef);\r\n    var handleClick = function (curType) {\r\n        var pos = combinedRef.current.getBoundingClientRect();\r\n        if (pos.bottom >= window.innerHeight - pos.height - 5) {\r\n            setPosition('top');\r\n        }\r\n        else {\r\n            setPosition('bottom');\r\n        }\r\n        onChange(curType);\r\n        setSelected(curType);\r\n    };\r\n    var handleClose = function () {\r\n        onClose();\r\n        setSelected('');\r\n    };\r\n    return (React.createElement(\"div\", { className: \"tools\", ref: combinedRef },\r\n        React.createElement(Popover, { position: position, align: \"start\", isOpen: selected === 'rect', content: function (_a) {\r\n                var position = _a.position, targetRect = _a.targetRect, popoverRect = _a.popoverRect;\r\n                return (React.createElement(Popover_2, { position: position, targetRect: targetRect, popoverRect: popoverRect, arrowColor: '#272323', arrowSize: 5 },\r\n                    React.createElement(Stroke, { info: info, onChange: function (options) {\r\n                            return setInfo(function (opt) { return (__assign(__assign({}, opt), options)); });\r\n                        } })));\r\n            } },\r\n            React.createElement(\"div\", { className: classnames('tools-item tools-rect', {\r\n                    'tool-selected': type === 'rect'\r\n                }), onClick: function () { return handleClick('rect'); } })),\r\n        React.createElement(Popover, { position: position, align: \"start\", isOpen: selected === 'circle', content: function (_a) {\r\n                var position = _a.position, targetRect = _a.targetRect, popoverRect = _a.popoverRect;\r\n                return (React.createElement(Popover_2, { position: position, targetRect: targetRect, popoverRect: popoverRect, arrowColor: '#272323', arrowSize: 5 },\r\n                    React.createElement(Stroke, { info: info, onChange: function (options) {\r\n                            return setInfo(function (opt) { return (__assign(__assign({}, opt), options)); });\r\n                        } })));\r\n            } },\r\n            React.createElement(\"div\", { className: classnames('tools-item tools-circle', {\r\n                    'tool-selected': type === 'circle'\r\n                }), onClick: function () { return handleClick('circle'); } })),\r\n        React.createElement(Popover, { position: position, align: \"start\", isOpen: selected === 'line', content: function (_a) {\r\n                var position = _a.position, targetRect = _a.targetRect, popoverRect = _a.popoverRect;\r\n                return (React.createElement(Popover_2, { position: position, targetRect: targetRect, popoverRect: popoverRect, arrowColor: '#272323', arrowSize: 5 },\r\n                    React.createElement(Stroke, { info: info, onChange: function (options) {\r\n                            return setInfo(function (opt) { return (__assign(__assign({}, opt), options)); });\r\n                        } })));\r\n            } },\r\n            React.createElement(\"div\", { className: classnames('tools-item tools-text', {\r\n                    'tool-selected': type === 'line'\r\n                }), onClick: function () { return handleClick('line'); } }, \"L\")),\r\n        React.createElement(Popover, { position: position, align: \"start\", isOpen: selected === 'mosaic', content: function (_a) {\r\n                var position = _a.position, targetRect = _a.targetRect, popoverRect = _a.popoverRect;\r\n                return (React.createElement(Popover_2, { position: position, targetRect: targetRect, popoverRect: popoverRect, arrowColor: '#272323', arrowSize: 5 },\r\n                    React.createElement(Stroke, { info: info, onChange: function (options) {\r\n                            return setInfo(function (opt) { return (__assign(__assign({}, opt), options)); });\r\n                        }, isHideColor: true })));\r\n            } },\r\n            React.createElement(\"div\", { className: classnames('tools-item tools-text', {\r\n                    'tool-selected': type === 'mosaic'\r\n                }), onClick: function () { return handleClick('mosaic'); } }, \"M\")),\r\n        React.createElement(\"div\", { className: \"tools-hold\" }),\r\n        React.createElement(SvgRollback, { onClick: onCancel }),\r\n        React.createElement(SvgDownload, { onClick: onDownload }),\r\n        React.createElement(SvgClose, { onClick: handleClose }),\r\n        React.createElement(SvgConfirm, { className: \"tools-item\", onClick: onCopy })));\r\n});\n\nvar initInfo = {\r\n    size: 4,\r\n    color: '#f1f117'\r\n};\r\nvar Canvas = React.forwardRef(function (_a, ref) {\r\n    var isFinished = _a.isFinished, isSelected = _a.isSelected, toolsRef = _a.toolsRef, ratio = _a.ratio, imageType = _a.imageType, lastDraw = _a.lastDraw, handleMouseDown = _a.handleMouseDown, handleSelect = _a.handleSelect, handleClose = _a.handleClose, onClose = _a.onClose, onDownload = _a.onDownload, onConfirm = _a.onConfirm;\r\n    var _b = React.useState(''), type = _b[0], setType = _b[1];\r\n    var _c = React.useState([0, 0]), size = _c[0], setSize = _c[1];\r\n    var _d = React.useState(false), isEdit = _d[0], setEdit = _d[1];\r\n    var _e = React.useState(initInfo), info = _e[0], setInfo = _e[1];\r\n    var canvasRef = React.useRef(null);\r\n    var combinedRef = useCombinedRefs(ref, canvasRef);\r\n    var actionsRef = React.useRef([]);\r\n    var svgRef = React.useRef(null);\r\n    var infoRef = React.useRef(initInfo);\r\n    var downLoc = React.useRef({ x: 0, y: 0 });\r\n    var curInfo = React.useRef(initInfo);\r\n    var pointListRef = React.useRef([]);\r\n    var handleMove = function (moveEvent) {\r\n        var svgEle = svgRef.current;\r\n        var canvasEle = combinedRef.current;\r\n        var curLoc = windowToCanvas(canvasEle, moveEvent.clientX, moveEvent.clientY);\r\n        var _a = drawSvg(downLoc.current, curLoc, svgEle), w = _a[0], h = _a[1];\r\n        setSize([w, h]);\r\n    };\r\n    var handleRemove = function (upEvent, curType) {\r\n        var canvasEle = combinedRef.current;\r\n        var curLoc = windowToCanvas(canvasEle, upEvent.clientX, upEvent.clientY);\r\n        var context = canvasEle.getContext('2d');\r\n        actionsRef.current = __spreadArrays(actionsRef.current, [\r\n            drawSvgOnCanvas(curType, downLoc.current, curLoc, context, ratio, infoRef.current)\r\n        ]);\r\n        canvasEle.onmousemove = null;\r\n        document.onmouseup = null;\r\n    };\r\n    var handleChange = function (curType) {\r\n        var canvasEle = combinedRef.current;\r\n        handleSelect(true);\r\n        setType(curType);\r\n        if (curType === 'rect' || curType === 'circle') {\r\n            var svgEle_1 = svgRef.current;\r\n            canvasEle.onmousedown = function (event) {\r\n                setEdit(true);\r\n                downLoc.current = windowToCanvas(canvasEle, event.clientX, event.clientY);\r\n                canvasEle.onmousemove = handleMove;\r\n                document.onmouseup = function (upEvent) {\r\n                    setEdit(false);\r\n                    handleRemove(upEvent, curType);\r\n                    if (svgEle_1)\r\n                        svgEle_1.onmousemove = null;\r\n                };\r\n            };\r\n            return;\r\n        }\r\n        if (curType === 'line') {\r\n            var lastLoc_1;\r\n            canvasEle.onmousedown = function (event) {\r\n                lastLoc_1 = windowToCanvas(canvasEle, event.clientX, event.clientY);\r\n                var firstLoc = lastLoc_1;\r\n                canvasEle.onmousemove = function (moveEvent) {\r\n                    var curLoc = realWindowToCanvas(canvasEle, moveEvent.clientX, moveEvent.clientY);\r\n                    pointListRef.current = pointListRef.current.concat(curLoc);\r\n                    var context = canvasEle.getContext('2d');\r\n                    // 原生事件\r\n                    drawLine(lastLoc_1, curLoc, context, ratio, curInfo.current);\r\n                    lastLoc_1 = curLoc;\r\n                };\r\n                document.onmouseup = function () {\r\n                    canvasEle.onmousemove = null;\r\n                    document.onmouseup = null;\r\n                    // draw history\r\n                    var drawAction = (function (points) {\r\n                        var _info = curInfo.current;\r\n                        return function () {\r\n                            var context = canvasEle.getContext('2d');\r\n                            points.reduce(function (acc, cur) {\r\n                                drawLine(acc, cur, context, ratio, _info);\r\n                                return cur;\r\n                            }, firstLoc);\r\n                        };\r\n                    })(pointListRef.current);\r\n                    actionsRef.current = __spreadArrays(actionsRef.current, [drawAction]);\r\n                    pointListRef.current = [];\r\n                };\r\n            };\r\n        }\r\n        if (curType === 'mosaic') {\r\n            canvasEle.onmousedown = function () {\r\n                setEdit(true);\r\n                canvasEle.onmousemove = function (event) {\r\n                    var curLoc = realWindowToCanvas(canvasEle, event.clientX, event.clientY);\r\n                    drawMosaic(canvasEle.getContext('2d'), curLoc.x * ratio, curLoc.y * ratio, infoRef.current.size * ratio);\r\n                };\r\n                document.onmouseup = function () {\r\n                    setEdit(false);\r\n                    canvasEle.onmousemove = null;\r\n                    document.onmouseup = null;\r\n                };\r\n            };\r\n        }\r\n    };\r\n    var handleToolsClose = function () {\r\n        handleClose();\r\n        setType('');\r\n        setSize([0, 0]);\r\n        setEdit(false);\r\n        var canvasEle = combinedRef.current;\r\n        canvasEle.onmousedown = null;\r\n        canvasEle.onmousemove = null;\r\n        document.onmouseup = null;\r\n    };\r\n    var handleCloseClick = function () {\r\n        if (typeof onClose === 'function') {\r\n            onClose(handleToolsClose);\r\n            return;\r\n        }\r\n        handleToolsClose();\r\n    };\r\n    var handleCancel = function () {\r\n        var curActions = actionsRef.current.slice(0, -1);\r\n        if (!curActions.length)\r\n            return;\r\n        curActions.forEach(function (action) { return action(); });\r\n        actionsRef.current = curActions;\r\n    };\r\n    var handleDownload = function () {\r\n        var canvasEle = combinedRef.current;\r\n        var urlData = canvasEle.toDataURL(\"image/\" + imageType);\r\n        var aEle = document.createElement('a');\r\n        aEle.href = urlData;\r\n        aEle.download = getFileName();\r\n        document.body.appendChild(aEle);\r\n        aEle.click();\r\n        aEle.remove();\r\n        if (typeof onDownload === 'function') {\r\n            onDownload(handleToolsClose);\r\n            return;\r\n        }\r\n    };\r\n    var handleCopy = function () {\r\n        var canvasEle = combinedRef.current;\r\n        var urlData = canvasEle.toDataURL(\"image/\" + imageType);\r\n        if (typeof onConfirm === 'function') {\r\n            onConfirm(urlData, handleToolsClose);\r\n            return;\r\n        }\r\n        handleToolsClose();\r\n    };\r\n    React.useEffect(function () {\r\n        infoRef.current = info;\r\n        curInfo.current = info;\r\n    }, [info]);\r\n    React.useEffect(function () {\r\n        actionsRef.current = [lastDraw];\r\n    }, [lastDraw]);\r\n    React.useEffect(function () {\r\n        if ((type === 'rect' || type === 'circle') && isEdit) {\r\n            var svgEle_2 = svgRef.current;\r\n            svgEle_2.onmousemove = handleMove;\r\n            return function () {\r\n                svgEle_2.onmousemove = null;\r\n            };\r\n        }\r\n    }, [type, isEdit, handleMove]);\r\n    return (React.createElement(\"div\", { className: \"drag-border\" },\r\n        React.createElement(\"canvas\", { className: \"canvas\", ref: combinedRef, width: \"0\", height: \"0\" }),\r\n        (type === 'rect' || type === 'circle') && isEdit && (React.createElement(Svg, { ref: svgRef, type: type, width: size[0], height: size[1], stroke: info.color, strokeWidth: info.size })),\r\n        isFinished && !isSelected && (React.createElement(React.Fragment, null,\r\n            React.createElement(\"div\", { className: \"left-top point\", onMouseDown: function () { return handleMouseDown(3); } }),\r\n            React.createElement(\"div\", { className: \"center-top point\", onMouseDown: function () { return handleMouseDown(3, 'vertical'); } }),\r\n            React.createElement(\"div\", { className: \"right-top point\", onMouseDown: function () { return handleMouseDown(2); } }),\r\n            React.createElement(\"div\", { className: \"left-center point\", onMouseDown: function () { return handleMouseDown(1, 'horizontal'); } }),\r\n            React.createElement(\"div\", { className: \"right-center point\", onMouseDown: function () { return handleMouseDown(0, 'horizontal'); } }),\r\n            React.createElement(\"div\", { className: \"left-bottom point\", onMouseDown: function () { return handleMouseDown(1); } }),\r\n            React.createElement(\"div\", { className: \"center-bottom point\", onMouseDown: function () { return handleMouseDown(0, 'vertical'); } }),\r\n            React.createElement(\"div\", { className: \"right-bottom point\", onMouseDown: function () { return handleMouseDown(0); } }))),\r\n        isFinished && (React.createElement(Tools, { ref: toolsRef, type: type, info: info, setInfo: setInfo, onChange: handleChange, onClose: handleCloseClick, onCancel: handleCancel, onDownload: handleDownload, onCopy: handleCopy }))));\r\n});\n\nvar Loading = function (size) { return (React.createElement(\"svg\", { className: \"image-editor-loading\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 2000 2000\", style: __assign({}, size) },\r\n    React.createElement(\"filter\", { id: \"b\" },\r\n        React.createElement(\"feGaussianBlur\", { stdDeviation: \"12\" })),\r\n    React.createElement(\"path\", { fill: \"#817c70\", d: \"M0 0h2000v2000H0z\" }),\r\n    React.createElement(\"g\", { filter: \"url(#b)\", transform: \"translate(4 4) scale(7.8125)\", fillOpacity: \".5\" },\r\n        React.createElement(\"ellipse\", { fill: \"#000210\", rx: \"1\", ry: \"1\", transform: \"matrix(50.41098 -3.7951 11.14787 148.07886 107 194.6)\" }),\r\n        React.createElement(\"ellipse\", { fill: \"#eee3bb\", rx: \"1\", ry: \"1\", transform: \"matrix(-56.38179 17.684 -24.48514 -78.06584 205 110.1)\" }),\r\n        React.createElement(\"ellipse\", { fill: \"#fff4bd\", rx: \"1\", ry: \"1\", transform: \"matrix(35.40604 -5.49219 14.85017 95.73337 16.4 123.6)\" }),\r\n        React.createElement(\"ellipse\", { fill: \"#79c7db\", cx: \"21\", cy: \"39\", rx: \"65\", ry: \"65\" }),\r\n        React.createElement(\"ellipse\", { fill: \"#0c1320\", cx: \"117\", cy: \"38\", rx: \"34\", ry: \"47\" }),\r\n        React.createElement(\"ellipse\", { fill: \"#5cb0cd\", rx: \"1\", ry: \"1\", transform: \"matrix(-39.46201 77.24476 -54.56092 -27.87353 219.2 7.9)\" }),\r\n        React.createElement(\"path\", { fill: \"#e57339\", d: \"M271 159l-123-16 43 128z\" }),\r\n        React.createElement(\"ellipse\", { fill: \"#47332f\", cx: \"214\", cy: \"237\", rx: \"242\", ry: \"19\" })))); };\n\nfunction _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }\n\nvar _ref$4 =\n/*#__PURE__*/\nReact__default.createElement(\"path\", {\n  d: \"M926.293 865.707l-39.68-39.68-3.84-4.267-2.56-2.987-21.333-21.333-5.547-2.987L632.32 572.587l-3.84-3.414-136.533-136.96-4.267-5.546-329.387-328.96a42.667 42.667 0 00-60.586 60.586l42.666 42.667A128 128 0 00128 256v512a128 128 0 00128 128h512a123.733 123.733 0 0054.187-13.227h2.133l40.533 42.667a42.667 42.667 0 0060.587 0 42.667 42.667 0 00.853-59.733zm-712.96-592.214l138.24 138.24a121.173 121.173 0 00-28.586 20.48l-109.654 110.08zM256 810.667A42.667 42.667 0 01213.333 768V663.04L384 492.373a34.56 34.56 0 0146.933 0l319.574 318.294zm156.16-597.334H768A42.667 42.667 0 01810.667 256v253.44a42.667 42.667 0 10-60.587 60.587l74.24 74.24a42.667 42.667 0 0060.587 0 42.667 42.667 0 0012.373-30.72V256a128 128 0 00-128-128H412.16a42.667 42.667 0 000 85.333z\",\n  fill: \"#d81e06\"\n});\n\nvar SvgImgFailed = function SvgImgFailed(props) {\n  return React__default.createElement(\"svg\", _extends$4({\n    viewBox: \"0 0 1024 1024\",\n    width: 100,\n    height: 100\n  }, props), _ref$4);\n};\n\nvar image = new Image();\r\nvar ImageTools = function (_a) {\r\n    var src = _a.src, width = _a.width, height = _a.height, className = _a.className, holdSize = _a.holdSize, imageType = _a.imageType, onClose = _a.onClose, onDownload = _a.onDownload, onConfirm = _a.onConfirm;\r\n    var _b = React.useState(Status.loading), status = _b[0], setStatus = _b[1];\r\n    var _c = React.useState([0, 0]), size = _c[0], setSize = _c[1];\r\n    var _d = React.useState(false), isFinished = _d[0], setFinished = _d[1];\r\n    var _e = React.useState(false), isSelected = _e[0], setSelected = _e[1];\r\n    // tslint:disable-next-line: no-empty\r\n    var _f = React.useState(function () { return function () { }; }), lastDraw = _f[0], setLastDraw = _f[1];\r\n    var cutRef = React.useRef(null);\r\n    var puzzleRef = React.useRef(null);\r\n    var parentRef = React.useRef(null);\r\n    var toolsRef = React.useRef(null);\r\n    var locationRef = React.useRef(null);\r\n    var locationBoxRef = React.useRef(null);\r\n    var ratioRef = React.useRef(1);\r\n    var firstLocRef = React.useRef({ x: 0, y: 0 });\r\n    var secondLocRef = React.useRef({ x: 0, y: 0 });\r\n    var thirdLocRef = React.useRef({ x: 0, y: 0 });\r\n    var lastLocRef = React.useRef({ x: 0, y: 0 });\r\n    var locRef = React.useRef({ x: 0, y: 0 });\r\n    var directionRef = React.useRef('');\r\n    var handleLocMove = function (event) {\r\n        var cutEle = cutRef.current;\r\n        var curLoc = windowToCanvas(cutEle, event.clientX, event.clientY);\r\n        var ele = locationRef.current;\r\n        drawLocCanvas({\r\n            image: image,\r\n            box: locationBoxRef.current,\r\n            ele: ele,\r\n            loc: curLoc,\r\n            ratioRef: ratioRef,\r\n            event: event\r\n        });\r\n    };\r\n    var handleClose = function () {\r\n        setFinished(false);\r\n        setSelected(false);\r\n        var puzzleEle = puzzleRef.current;\r\n        var cutEle = cutRef.current;\r\n        Object.assign(puzzleEle.style, {\r\n            width: '0px',\r\n            height: '0px'\r\n        });\r\n        cutEle.onmousemove = handleLocMove;\r\n    };\r\n    React.useEffect(function () {\r\n        var drawImg = function () {\r\n            var curSize = getWidthAndHeight(image, width, height);\r\n            setSize(curSize);\r\n            ratioRef.current = image.width / curSize[0];\r\n            setStatus(Status.loaded);\r\n        };\r\n        image.onload = drawImg;\r\n        image.onerror = function () {\r\n            setStatus(Status.failed);\r\n        };\r\n        return function () {\r\n            window.onresize = null;\r\n        };\r\n        // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n    React.useEffect(function () {\r\n        image.crossOrigin = 'anonymous';\r\n        image.src = src;\r\n        setStatus(Status.loading);\r\n    }, [src]);\r\n    React.useEffect(function () {\r\n        if (status !== Status.loaded)\r\n            return;\r\n        var cutEle = cutRef.current;\r\n        var puzzleEle = puzzleRef.current;\r\n        var parentEle = parentRef.current;\r\n        var context = puzzleEle.getContext('2d');\r\n        var cancel = function () {\r\n            cutEle.onmousemove = null;\r\n            parentEle.onmousemove = null;\r\n            document.onmouseup = null;\r\n        };\r\n        if (isSelected) {\r\n            cutEle.style.cursor = 'unset';\r\n            puzzleEle.style.cursor = 'unset';\r\n            return;\r\n        }\r\n        cutEle.style.cursor = 'crosshair';\r\n        cutEle.onmousemove = handleLocMove;\r\n        cutEle.onmousedown = function (event) {\r\n            setFinished(false);\r\n            var firstLoc = windowToCanvas(cutEle, event.clientX, event.clientY);\r\n            var handleMove = function (event) {\r\n                var lastLoc = windowToCanvas(cutEle, event.clientX, event.clientY);\r\n                var curDraw = handleMoveEffect({\r\n                    firstLoc: firstLoc,\r\n                    lastLoc: lastLoc,\r\n                    puzzleEle: puzzleEle,\r\n                    ratioRef: ratioRef,\r\n                    parentEle: parentEle,\r\n                    context: context,\r\n                    image: image\r\n                });\r\n                var ele = locationRef.current;\r\n                drawLocCanvas({\r\n                    image: image,\r\n                    box: locationBoxRef.current,\r\n                    ele: ele,\r\n                    loc: lastLoc,\r\n                    ratioRef: ratioRef,\r\n                    event: event\r\n                });\r\n                return curDraw;\r\n            };\r\n            cutEle.onmousemove = handleMove;\r\n            parentEle.onmousemove = handleMove;\r\n            document.onmouseup = function (event) {\r\n                setLastDraw(function () { return handleMove(event); });\r\n                var curLoc = windowToCanvas(cutEle, event.clientX, event.clientY);\r\n                var _a = getPointByLoc(firstLoc, curLoc), one = _a[0], two = _a[1], three = _a[2], four = _a[3];\r\n                firstLocRef.current = one;\r\n                secondLocRef.current = two;\r\n                thirdLocRef.current = three;\r\n                lastLocRef.current = four;\r\n                setFinished(true);\r\n                cancel();\r\n            };\r\n        };\r\n        return function () {\r\n            cancel();\r\n            cutEle.onmousedown = null;\r\n        };\r\n    }, [size, isSelected, status]);\r\n    React.useEffect(function () {\r\n        if (status !== Status.loaded)\r\n            return;\r\n        var puzzleEle = puzzleRef.current;\r\n        if (!puzzleEle)\r\n            return;\r\n        var removeMouse = function () {\r\n            puzzleEle.onmousemove = null;\r\n        };\r\n        if (isFinished) {\r\n            var cutEle_1 = cutRef.current;\r\n            var parentEle_1 = parentRef.current;\r\n            var toolsEle_1 = toolsRef.current;\r\n            var toolsLoc_1 = toolsRef.current.getBoundingClientRect();\r\n            var context_1 = puzzleEle.getContext('2d');\r\n            var parentH = parentEle_1.getBoundingClientRect().height;\r\n            puzzleEle.style.cursor = 'move';\r\n            setToolsLocEffect(puzzleEle, toolsEle_1, toolsLoc_1, parentH);\r\n            var handleMove_1 = function (moveEvent) {\r\n                moveEvent.stopPropagation();\r\n                moveEvent.preventDefault();\r\n                var puzzleInfo = puzzleEle.getBoundingClientRect();\r\n                var _a = locRef.current, x = _a.x, y = _a.y;\r\n                var curLoc = windowToCanvas(cutEle_1, moveEvent.clientX, moveEvent.clientY);\r\n                var disX = curLoc.x - x;\r\n                var disY = curLoc.y - y;\r\n                var _b = parentEle_1.getBoundingClientRect(), parentW = _b.width, parentH = _b.height;\r\n                var left = parseFloat(parentEle_1.style.left || '0');\r\n                var top = parseFloat(parentEle_1.style.top || '0');\r\n                var L = left + disX;\r\n                var T = top + disY;\r\n                if (left + disX <= 0) {\r\n                    L = 0;\r\n                }\r\n                else if (left + disX >= size[0] - parentW) {\r\n                    L = size[0] - parentW;\r\n                }\r\n                if (top + disY <= 0) {\r\n                    T = 0;\r\n                }\r\n                else if (top + disY >= size[1] - parentH) {\r\n                    T = size[1] - parentH;\r\n                }\r\n                setToolsLocEffect(puzzleEle, toolsEle_1, toolsLoc_1, parentH);\r\n                parentEle_1.style.left = L + \"px\";\r\n                parentEle_1.style.top = T + \"px\";\r\n                locRef.current = curLoc;\r\n                var moveDraw = function () {\r\n                    return context_1.drawImage(image, L * ratioRef.current, T * ratioRef.current, puzzleInfo.width * ratioRef.current, puzzleInfo.height * ratioRef.current, 0, 0, puzzleInfo.width * ratioRef.current, puzzleInfo.height * ratioRef.current);\r\n                };\r\n                moveDraw();\r\n                return moveDraw;\r\n            };\r\n            puzzleEle.onmousedown = function (event) {\r\n                var firstLoc = windowToCanvas(cutEle_1, event.clientX, event.clientY);\r\n                locRef.current = firstLoc;\r\n                puzzleEle.onmousemove = handleMove_1;\r\n                document.onmouseup = function (upEvent) {\r\n                    setLastDraw(function () { return handleMove_1(upEvent); });\r\n                    var parentLoc = parentEle_1.getBoundingClientRect();\r\n                    var firstPoint = windowToCanvas(cutEle_1, parentLoc.left, parentLoc.top);\r\n                    var lastPoint = windowToCanvas(cutEle_1, parentLoc.right, parentLoc.bottom);\r\n                    var _a = getPointByLoc(firstPoint, lastPoint), one = _a[0], two = _a[1], three = _a[2], four = _a[3];\r\n                    firstLocRef.current = one;\r\n                    secondLocRef.current = two;\r\n                    thirdLocRef.current = three;\r\n                    lastLocRef.current = four;\r\n                    removeMouse();\r\n                    document.onmouseup = null;\r\n                };\r\n            };\r\n            return removeMouse;\r\n        }\r\n        if (puzzleEle)\r\n            puzzleEle.style.cursor = '';\r\n        return removeMouse;\r\n    }, [isFinished, size, height, status]);\r\n    var handlePointDown = function (type, direction) {\r\n        var cutEle = cutRef.current;\r\n        var puzzleEle = puzzleRef.current;\r\n        var parentEle = parentRef.current;\r\n        var context = puzzleEle.getContext('2d');\r\n        var toolsEle = toolsRef.current;\r\n        var toolsLoc = toolsRef.current.getBoundingClientRect();\r\n        directionRef.current = direction;\r\n        var firstLoc = [\r\n            firstLocRef.current,\r\n            secondLocRef.current,\r\n            thirdLocRef.current,\r\n            lastLocRef.current\r\n        ][type];\r\n        var t = [\r\n            firstLocRef.current,\r\n            secondLocRef.current,\r\n            thirdLocRef.current,\r\n            lastLocRef.current\r\n        ][3 - type];\r\n        var handleMove = function (event) {\r\n            var parentH = parentEle.getBoundingClientRect().height;\r\n            // 不知道为啥有时候会触发互联网小球图标的拖动, 有点问题, 干掉\r\n            event.preventDefault();\r\n            event.stopPropagation();\r\n            var curLoc = windowToCanvas(cutEle, event.clientX, event.clientY);\r\n            setToolsLocEffect(puzzleEle, toolsEle, toolsLoc, parentH);\r\n            if (direction) {\r\n                if (direction === 'vertical') {\r\n                    var disY = curLoc.y - t.y;\r\n                    var lastLoc = {\r\n                        x: t.x,\r\n                        y: t.y + disY\r\n                    };\r\n                    return handleMoveEffect({\r\n                        firstLoc: firstLoc,\r\n                        lastLoc: lastLoc,\r\n                        puzzleEle: puzzleEle,\r\n                        ratioRef: ratioRef,\r\n                        parentEle: parentEle,\r\n                        context: context,\r\n                        image: image\r\n                    });\r\n                }\r\n                else {\r\n                    var disX = curLoc.x - t.x;\r\n                    var lastLoc = {\r\n                        x: t.x + disX,\r\n                        y: t.y\r\n                    };\r\n                    return handleMoveEffect({\r\n                        firstLoc: firstLoc,\r\n                        lastLoc: lastLoc,\r\n                        puzzleEle: puzzleEle,\r\n                        ratioRef: ratioRef,\r\n                        parentEle: parentEle,\r\n                        context: context,\r\n                        image: image\r\n                    });\r\n                }\r\n            }\r\n            return handleMoveEffect({\r\n                firstLoc: firstLoc,\r\n                lastLoc: curLoc,\r\n                puzzleEle: puzzleEle,\r\n                ratioRef: ratioRef,\r\n                parentEle: parentEle,\r\n                context: context,\r\n                image: image\r\n            });\r\n        };\r\n        cutEle.onmousemove = handleMove;\r\n        parentEle.onmousemove = handleMove;\r\n        document.onmouseup = function (event) {\r\n            setLastDraw(function () { return handleMove(event); });\r\n            var curLoc;\r\n            if (directionRef.current === 'vertical') {\r\n                curLoc = {\r\n                    x: t.x,\r\n                    y: windowToCanvas(cutEle, event.clientX, event.clientY).y\r\n                };\r\n            }\r\n            else if (directionRef.current === 'horizontal') {\r\n                curLoc = {\r\n                    x: windowToCanvas(cutEle, event.clientX, event.clientY).x,\r\n                    y: t.y\r\n                };\r\n            }\r\n            else {\r\n                curLoc = windowToCanvas(cutEle, event.clientX, event.clientY);\r\n            }\r\n            locRef.current = curLoc;\r\n            var _a = getPointByLoc(firstLoc, curLoc), one = _a[0], two = _a[1], three = _a[2], four = _a[3];\r\n            firstLocRef.current = one;\r\n            secondLocRef.current = two;\r\n            thirdLocRef.current = three;\r\n            lastLocRef.current = four;\r\n            setFinished(true);\r\n            cutEle.onmousemove = null;\r\n            parentEle.onmousemove = null;\r\n            document.onmouseup = null;\r\n            directionRef.current = null;\r\n        };\r\n    };\r\n    if (status === Status.loading) {\r\n        return (React.createElement(Loading, { width: width || holdSize.w, height: height || holdSize.h }));\r\n    }\r\n    if (status === Status.failed) {\r\n        return React.createElement(SvgImgFailed, { width: width || holdSize.w, height: height || holdSize.h });\r\n    }\r\n    return (React.createElement(\"div\", { className: classnames('image-editor', className), style: { width: width || '100vw', height: height || '100vh' } },\r\n        React.createElement(\"div\", { className: \"img-box\" },\r\n            React.createElement(\"img\", { src: src, width: size[0], height: size[1], alt: \"\\u52A0\\u8F7D\\u5931\\u8D25\" }),\r\n            React.createElement(\"div\", { className: \"drag-box\", ref: cutRef }),\r\n            React.createElement(\"div\", { className: \"drag-parent\", ref: parentRef },\r\n                React.createElement(Canvas, { isFinished: isFinished, isSelected: isSelected, ref: puzzleRef, toolsRef: toolsRef, ratio: ratioRef.current, imageType: imageType, lastDraw: lastDraw, handleMouseDown: handlePointDown, handleSelect: setSelected, handleClose: handleClose, onClose: onClose, onDownload: onDownload, onConfirm: onConfirm })),\r\n            !isFinished && (React.createElement(\"div\", { className: \"tools-location\", ref: locationBoxRef, onMouseMove: handleLocMove },\r\n                React.createElement(\"canvas\", { ref: locationRef, width: \"0\", height: \"0\" }))))));\r\n};\r\nImageTools.defaultProps = {\r\n    locSize: 10,\r\n    imageType: 'png',\r\n    holdSize: { w: '100vw', h: '100vh' }\r\n};\n\nmodule.exports = ImageTools;\n"]}