{"version":3,"file":"static/js/main.2d7bc500.js","mappings":"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,kBAAaxM,EAAqByM,EAAKoE,EAAS+2F,GAAApvG,WAAA,EAAAjF,WAAA,SAGzEiZ,EAAiBuiM,WAAa,SAAA/qM,GAAA,OAC5B9O,EAAqB8K,EAAsByM,EAAA8gB,EAAA,GAAU1c,EAAA,GAAY7M,GAAA,EAGnEwI,EAAiB+jI,MAAQ,SAAAvsI,GAAA,OACvB9O,EAAqB8K,EAAsByM,EAAA8gB,EAAA,GACtC1c,EAAA,CACH0/H,MAAO7nI,MAAMtV,UAAUyB,OAAOgc,EAAQ0/H,MAAOvsI,GAAOtD,OAAOukF,WAAA,EAGxDz4E,CAAA,CDzBO,CAAqCu+F,GAAiB71G,EAAA,EDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIUlD,SAAQ,SAAAkD,GAClBoyG,GAAOpyG,GAAcoyG,GAAOpyG,EAAA,QELTkzG,GAAA,oBAAAlzG,EAOPA,EAAgB8K,GAAA,KACrB4xJ,MAAQ18J,EAAA,KACR04M,YAAc5tM,EAAA,KACd2tM,SAAW1/I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E,OAAO0xB,GAD4B,kBAAT1xB,EAAoBy7P,GAASz7P,GAAQA,EACrC,YAC5B,CAAE,MAAOlzF,GAEP,OADA2+B,QAAQ3+B,MAAM,uBAAwBA,GAC/B,cACT,GChCW6xV,GAAmB,CAC9B,cACA,kBACA,SACA,yBACA,8CACA,qBACA,sBACA,8BACA,WACA,oCACA,uBACA,6BACA,uCACA,aACA,qBACA,2BACA,uBACA,+BACA,uBACA,yBACA,oCACA,kBACA,gBACA,mBACA,2BACA,6BACA,aACA,eACA,eACA,mCACA,uBACA,4DACA,oBACA,cACA,+BACA,sCACA,kBACA,wBACA,mCACA,gCACA,yBACA,QACA,mBACA,WACA,YACA,cACA,SACA,qCACA,wBACA,oBACA,iCACA,uBACA,SACA,cACA,mCACA,wDACA,+CACA,4BACA,0BACA,oBACA,kBACA,2BACA,0BACA,0BACA,gCACA,iBACA,oBACA,yBACA,sDACA,+CACA,SACA,kBACA,sBACA,gDACA,kCACA,aACA,uBACA,4BACA,YACA,6BACA,kBACA,sBACA,mBACA,YACA,sCACA,qBACA,oCACA,oBACA,yBACA,8BACA,oBACA,qCACA,gBACA,mBACA,kCACA,4BACA,iBACA,qCACA,iBACA,yBACA,gBACA,uBACA,YACA,sBACA,kBACA,yBACA,+CACA,gBACA,wBACA,UACA,wBACA,8BACA,kBACA,0BACA,uBACA,wBACA,yCACA,kBACA,yBACA,iBACA,qCACA,iCACA,+BACA,WACA,gCACA,UACA,yBACA,oBACA,4BACA,+BACA,iBACA,8BACA,YACA,uBACA,kBACA,gCACA,eACA,gBACA,cACA,sBACA,qCACA,mCACA,gCACA,+BACA,kCACA,oBACA,kCACA,eACA,iCACA,uCACA,iBACA,6CACA,6BACA,4BACA,gCACA,oBACA,QACA,YACA,cACA,oBACA,kBACA,qBACA,aACA,6BACA,kCACA,wBACA,iBACA,wBACA,iDACA,kBACA,sBACA,uBACA,yBACA,kCACA,0BACA,wCACA,6BACA,YACA,2BACA,wCACA,yCACA,2BACA,qBACA,0BACA,oBACA,YACA,0BACA,0BACA,YACA,sCACA,eACA,+BACA,yBACA,WACA,sCACA,WACA,YACA,0CACA,WACA,qBACA,8BACA,uBACA,0BACA,iCACA,oBACA,iBACA,qCACA,wBACA,aACA,WACA,oCACA,YACA,0BACA,wBACA,oCACA,sBACA,gCACA,eACA,kCACA,sBACA,0BACA,4BACA,8BACA,gCACA,YACA,wCACA,8BACA,wBACA,wBACA,0BACA,wBACA,cACA,mBACA,YACA,iCACA,yBACA,oCACA,qBACA,oCACA,kDACA,mCACA,4BACA,8BACA,4BACA,kCACA,sBACA,yBACA,sBACA,0DACA,uBACA,mBACA,aACA,gBACA,oCACA,oCACA,+BACA,+BACA,eACA,iCACA,sBACA,mBACA,iCACA,qCACA,4BACA,2CACA,iCACA,iCACA,qCACA,4BACA,wCACA,4BACA,kBACA,gCACA,4BACA,kBACA,2BACA,gCACA,WACA,UACA,oBACA,WACA,kCACA,WACA,QACA,aACA,gCACA,4BACA,2BACA,yBACA,yBACA,qBACA,wBACA,eACA,WACA,wBACA,4CACA,2CACA,oCACA,kBACA,gCACA,qDACA,yBACA,6BACA,iBACA,oBACA,uBACA,uCACA,kCACA,UACA,QACA,yBACA,8BACA,iCACA,oBACA,yBACA,iDACA,sCACA,qBACA,4CACA,8BACA,0DACA,mBACA,4BACA,mBACA,mBACA,oBACA,gBACA,wCACA,4CACA,oBACA,0BACA,wBACA,eACA,mBACA,uBACA,kCACA,uBACA,mDACA,6BACA,4BACA,qBACA,+BACA,0CACA,+BACA,sBACA,mBACA,gBACA,wBACA,yCACA,uCACA,8BACA,oBACA,iCACA,0BACA,oCACA,8BACA,gBACA,wBACA,oCACA,yCACA,gDAGWC,GAAkB,CAC7B,cACA,UACA,UACA,iBACA,UACA,SACA,WACA,aACA,sBACA,YACA,UACA,QACA,YACA,UACA,aACA,UACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,kCACA,yBACA,WACA,SACA,iCACA,oBACA,WACA,eACA,UACA,WACA,WACA,SACA,iBACA,2BACA,OACA,QACA,QACA,mBACA,0BACA,WACA,UACA,QACA,wCACA,eACA,aACA,mBACA,UACA,OACA,SACA,iBACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,UACA,WACA,OACA,UACA,SACA,gBACA,mBACA,8BACA,QACA,SACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,aACA,OACA,YACA,WACA,SACA,gBACA,SACA,QACA,gCACA,WACA,YACA,UACA,UACA,QACA,YACA,OACA,UACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aACA,QACA,WACA,yCACA,qBACA,SACA,aACA,mCACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,6CACA,aACA,SACA,WACA,WACA,OACA,QACA,mBACA,aACA,aACA,YACA,UACA,SACA,uBACA,SACA,WACA,aACA,aACA,UACA,aACA,UACA,UACA,QACA,QACA,cACA,gBACA,cACA,YACA,QACA,UACA,OACA,iBACA,2BACA,SACA,OACA,WACA,QACA,SACA,mBACA,WACA,OACA,cACA,WACA,SACA,WACA,cACA,QACA,UACA,qBACA,SACA,sBACA,+CACA,wBACA,cACA,6BACA,4BACA,mCACA,QACA,aACA,wBACA,eACA,UACA,SACA,aACA,eACA,YACA,WACA,WACA,kBACA,UACA,eACA,cACA,QACA,YACA,QACA,WACA,YACA,SACA,cACA,uBACA,4BACA,aACA,+BACA,WACA,cACA,OACA,UACA,QACA,sBACA,UACA,SACA,eACA,2BACA,SACA,SACA,UACA,uBACA,iBACA,gBACA,UACA,UACA,aACA,UACA,oCACA,WACA,0BACA,uBACA,iBACA,QACA,SACA,YAGWC,GAAe,CAC1B,oBACA,QACA,cACA,mBACA,oBACA,eACA,kCACA,gBACA,SACA,2BACA,qBACA,iBACA,QACA,UACA,2BACA,kBACA,oBACA,wBACA,8BACA,qBACA,SACA,WACA,SACA,OACA,aACA,oBACA,kBACA,8BACA,iBACA,iBACA,YACA,kBACA,cACA,2BACA,SACA,eACA,UACA,QACA,UACA,gBACA,mBACA,oBACA,sBACA,mBACA,kBACA,4BACA,aACA,qBACA,2BACA,sBACA,sBACA,8BACA,gBACA,yBACA,0BACA,UACA,SACA,iBACA,mBACA,uBACA,oBACA,0BACA,gBACA,qBACA,aACA,mBACA,sBACA,iBACA,iBACA,kBACA,+BACA,qBACA,eACA,6BACA,sBACA,iBACA,eACA,gBACA,yBACA,aACA,+BACA,kBACA,gBACA,uBACA,oBACA,uBACA,+BACA,kBACA,YACA,aACA,oBACA,sBACA,qBACA,aACA,sBACA,yBACA,mBACA,iBACA,iBACA,2BACA,wBACA,iBACA,yBACA,qBACA,wBACA,oBACA,WACA,gBACA,8BACA,qBACA,sBACA,uBACA,YACA,2BACA,oBACA,wBACA,wBACA,yBACA,oBACA,mBACA,yBACA,qBACA,sBACA,iBACA,4BACA,kBACA,eACA,8BACA,0BACA,0BACA,YACA,qBACA,eACA,iBACA,mBACA,kBACA,qBACA,eACA,uBACA,uBACA,mBACA,eACA,eACA,6BACA,oBACA,sBACA,wBACA,yBACA,mBACA,iBACA,gBACA,gBACA,gBACA,UACA,sBACA,aACA,uBACA,iBACA,sBACA,0BACA,0BACA,0BACA,2BACA,eACA,iCACA,qBACA,uBACA,YACA,iBACA,oBACA,2BACA,gBACA,2BACA,iBACA,UACA,YACA,yBACA,YACA,SACA,uBACA,sBACA,gCACA,kBACA,sBACA,eACA,iBACA,qBACA,mBACA,gBACA,cACA,mBACA,qBACA,aACA,oBACA,sBACA,kBACA,YACA,gBACA,6BACA,cACA,wBACA,+BACA,4BACA,cACA,oBACA,aACA,QACA,qBACA,sBACA,YACA,cACA,sBACA,0BACA,gBACA,sBACA,yBACA,iBACA,oBACA,iBACA,iBACA,mBACA,eACA,4CACA,gBACA,eACA,YACA,qBACA,iBACA,eACA,QACA,gBACA,iBACA,iBACA,sBACA,YACA,mBACA,8BACA,qBACA,4BACA,oBACA,gCACA,2BACA,mBACA,oBACA,eACA,cACA,iBACA,qBACA,UACA,WACA,sBACA,8BACA,kBACA,aACA,gBACA,uBACA,0BACA,sBACA,uBACA,YACA,sBACA,0BACA,wBACA,wBACA,4BACA,yBACA,2BACA,qBACA,2BACA,uBACA,yBACA,sBACA,uBACA,yBACA,sBACA,qBACA,+BACA,2BACA,sBACA,uBACA,kBACA,cACA,mBACA,gBACA,oBACA,gBACA,yBACA,WACA,6BACA,eACA,WACA,cACA,iBACA,eACA,yBACA,qBACA,uBACA,mBACA,wBACA,oBACA,sBACA,0BACA,sBACA,+BACA,iBACA,8BACA,mCACA,qBACA,iBACA,yBACA,oBACA,uBACA,qBACA,2BACA,iBACA,kBACA,iBACA,qBACA,mBACA,gBACA,wBACA,iBACA,sBACA,qBACA,kBACA,gBACA,8BACA,yBACA,8BACA,gBACA,4BACA,sBACA,uBACA,+BACA,8BACA,gBACA,6BACA,yBACA,wBACA,4BACA,0BACA,yBACA,0BACA,yBACA,yBACA,0BACA,0BACA,uBACA,uBACA,kBACA,yBACA,iBACA,4BACA,kBACA,4BACA,sBACA,8BACA,iBACA,sCACA,yBACA,yBACA,oBACA,iBACA,2BACA,cACA,wBACA,uBACA,gCACA,2BACA,iBACA,iCACA,iBACA,8BACA,qBACA,wBACA,qBACA,qBACA,0BACA,2BACA,iBACA,2BACA,iBACA,mBACA,8BACA,8BACA,wBACA,iCACA,6BACA,+BACA,qBACA,wBACA,mBACA,2BACA,wBACA,kBACA,2BACA,iBACA,gBACA,oBACA,sBACA,iCACA,eACA,iBACA,mBACA,sBACA,oBACA,iBACA,wBACA,mBACA,oBACA,0BACA,yBACA,wBACA,6BACA,uBACA,iBACA,0BACA,2BACA,uBACA,gCACA,aACA,sBACA,4BACA,2BACA,oBACA,4BACA,2BACA,8BACA,kBACA,4BACA,sBACA,sBACA,uBACA,+BACA,yBACA,wBACA,mBACA,2BACA,qBACA,wCACA,0BACA,0CACA,0BACA,2BACA,+BACA,0BACA,wCACA,+BACA,0BACA,+BACA,eACA,yBACA,+BACA,oBACA,8BACA,6BACA,iBACA,4BACA,yBACA,oBACA,uBACA,oCACA,0BACA,uBACA,cACA,eACA,oBACA,uBACA,gCACA,mBACA,gCACA,+BACA,iCACA,yBACA,uBACA,2BACA,wBACA,mBACA,wBACA,gBACA,4BACA,iCACA,+BACA,eACA,uBACA,wBACA,2BACA,0CACA,iBACA,oBACA,sBACA,kBACA,kBACA,gCACA,sBACA,YACA,mCACA,kBACA,qBACA,8BACA,iBACA,wBACA,8BACA,iCACA,0BACA,wBACA,wBACA,qBACA,yBACA,yBACA,qCACA,+BACA,cACA,uBACA,iBACA,wBACA,2BACA,4BACA,2BACA,4BACA,oBACA,yBACA,kBACA,8BACA,iBACA,yBACA,0BACA,qBACA,yBACA,kBACA,2BACA,sBACA,sBACA,uBACA,+BACA,6BACA,oBACA,uBACA,8BACA,eACA,gCACA,sBACA,mBACA,sBACA,qBACA,kBACA,sBACA,6BACA,gCACA,0BACA,yBACA,wBACA,wBACA,wBACA,qBACA,2BACA,kBACA,0BACA,iBACA,oBACA,0BACA,wBACA,uBACA,6BACA,wBACA,kBACA,yBACA,iCACA,6BACA,2BACA,iCACA,sBACA,mBACA,iCACA,oCACA,yBACA,6BACA,mCACA,8BACA,6BACA,+BACA,sBACA,mCACA,+BACA,6BACA,+BACA,uBACA,4BACA,uBACA,0BACA,wBACA,gCACA,uBACA,uBACA,mCACA,mCACA,2BACA,sCACA,8BACA,8BACA,uBACA,+BACA,0BACA,uBACA,oBACA,qCACA,wBACA,oBACA,uBACA,wBACA,gCACA,+BACA,sBACA,iCACA,+BACA,gCACA,kCACA,iCACA,qCACA,iBACA,oCACA,0BACA,qBACA,qBACA,gCACA,iCACA,iCACA,4BACA,2BACA,4BACA,kBACA,6BACA,4BACA,2BACA,+BACA,gCACA,0BACA,0BACA,+BACA,qCACA,8BACA,+BACA,8BACA,6BACA,6BACA,iCACA,mCACA,wBACA,4BACA,kCACA,2BACA,yBACA,gCACA,0BACA,gCACA,+BACA,4BACA,0BACA,6BACA,4BACA,uBACA,2BACA,8BACA,uBACA,oBACA,oBACA,gCACA,iCACA,sBACA,uBACA,0BACA,8BACA,yBACA,yBACA,0BACA,2BACA,oBACA,kCACA,+BACA,+BACA,4BACA,qBACA,uBACA,6BACA,6BACA,mBACA,+BACA,4BACA,4BACA,wBACA,sCACA,0BACA,gCACA,4BACA,4BACA,yBACA,0BACA,8BACA,uBACA,gCACA,0BACA,iCACA,8BACA,oCACA,kCACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,eACA,QACA,cACA,aACA,UACA,gBACA,UACA,QAGWC,GAAkB,CAC7B,QACA,YACA,SACA,yBACA,4BACA,QACA,UACA,MACA,QACA,SACA,gBACA,6BACA,oBACA,OACA,YACA,2BACA,mBACA,iBACA,qBACA,kBACA,YACA,6BACA,wBACA,mBACA,mBACA,aACA,UACA,UACA,SACA,SACA,kBACA,wBACA,iBACA,kBACA,cACA,YACA,gBACA,gBACA,WACA,cACA,iCACA,gBACA,iBACA,YACA,aACA,SACA,gBACA,mBACA,QACA,UACA,0BACA,OACA,yBACA,UACA,cACA,oBACA,SACA,WACA,cACA,kBACA,cACA,QACA,mBACA,WACA,YACA,wBACA,UACA,aACA,YACA,UACA,mBACA,YACA,QACA,OACA,gBACA,oBACA,SACA,SACA,OACA,OACA,aACA,kBACA,MACA,iBACA,OACA,aACA,sBACA,oBACA,yBACA,aACA,UACA,YACA,eACA,sBACA,iBACA,WACA,iBACA,YACA,WACA,OACA,+BACA,qBACA,aACA,SACA,aACA,SACA,cACA,UACA,uBACA,qBACA,4BACA,SACA,iBACA,qBACA,aACA,mBACA,0BACA,sBACA,wBACA,uBACA,2BACA,aACA,qBACA,cACA,QACA,mBACA,oBACA,8BACA,MACA,SACA,OACA,aACA,SACA,0BACA,oBACA,UACA,UACA,cACA,sBACA,qBACA,iBACA,eACA,UACA,QACA,WACA,WACA,oBACA,gBACA,oBACA,eACA,oDACA,UACA,qBACA,gBACA,kBACA,4BACA,mBACA,YACA,iCACA,iBACA,OACA,WACA,UACA,gBACA,UACA,SACA,SACA,YACA,kBACA,uBACA,uBACA,YACA,gBACA,YACA,+BACA,MACA,aACA,yBACA,qCACA,qBACA,UACA,WACA,WACA,0BACA,kBACA,YACA,YACA,eACA,QACA,kBACA,UACA,WACA,sBACA,oBACA,kBACA,mBACA,mBACA,cACA,eACA,uBACA,UACA,kBACA,8BACA,2BACA,2BACA,WACA,qBACA,kBACA,aACA,oBACA,aACA,oBACA,QACA,cACA,SACA,eACA,SACA,QACA,cACA,cACA,WACA,iBACA,mCACA,UACA,WACA,SACA,gBACA,SACA,+BACA,eACA,kBACA,+DACA,4CACA,uBACA,mBACA,mBACA,iBACA,UACA,cACA,qDACA,cACA,WACA,eACA,oBACA,cACA,eACA,UACA,aACA,cACA,MACA,iBACA,qBACA,qBACA,iBACA,kBACA,cACA,mBACA,oBACA,OACA,YACA,oCACA,SACA,OACA,SACA,uCACA,cACA,WACA,mBACA,gBACA,mBACA,eACA,gBACA,aACA,aACA,iBACA,iBACA,wBACA,iBACA,SACA,YACA,eACA,UACA,QACA,QACA,UACA,WACA,OACA,YACA,MACA,QACA,KACA,mBACA,SACA,MACA,WACA,QACA,aACA,QACA,UACA,qBACA,cACA,aACA,oBACA,UACA,eACA,4BACA,WACA,WACA,iBACA,WACA,aACA,iBACA,WACA,mBACA,UACA,mBACA,iBACA,mBACA,QACA,QACA,gBACA,WACA,SACA,YACA,QACA,iBACA,QACA,UACA,gBACA,UACA,UACA,SACA,qBACA,gBACA,iBACA,WACA,YCjnDF,GAZmBtyO,IAAA,IAAC,KAAEzmI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","sources":["../node_modules/suneditor/src/lang/tr.js","../node_modules/suneditor/src/lang/ja.js","../node_modules/toggle-selection/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/suneditor/src/plugins/modules/component.js","../node_modules/suneditor-react/dist/lang/getLanguage.js","../node_modules/lodash.throttle/index.js","../node_modules/lodash.debounce/index.js","../node_modules/suneditor/src/plugins/modules/fileBrowser.js","../node_modules/react-is/cjs/react-is.production.js","../node_modules/suneditor/src/lang/index.js","../node_modules/react/jsx-runtime.js","../node_modules/suneditor/src/lang/ko.js","../node_modules/suneditor/src/lang/lv.js","../node_modules/suneditor/src/lang/de.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/react-copy-to-clipboard/lib/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/suneditor/src/lang/da.js","../node_modules/react-copy-to-clipboard/lib/Component.js","../node_modules/object-assign/index.js","../node_modules/suneditor/src/lang|/codebuild/output/src3763611521/src/perfectpropspect-io-ui/node_modules/suneditor/src/lang|sync|/^/.//.*/.js$","../node_modules/react-dual-listbox/lib/index.browser.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/suneditor/src/plugins/modules/fileManager.js","../node_modules/suneditor-react/dist/components/SunEditor.js","../node_modules/suneditor/src/lang/ro.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/suneditor/src/lang/he.js","../node_modules/suneditor/src/lang/ckb.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/suneditor/src/lang/hu.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/client.js","../node_modules/suneditor/src/lang/ru.js","../node_modules/suneditor/src/lang/ur.js","../node_modules/suneditor/src/lang/it.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react/index.js","../node_modules/suneditor/src/lang/se.js","../node_modules/prop-types/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/suneditor/src/lang/zh_cn.js","../node_modules/can-use-dom/index.js","../node_modules/suneditor/src/lang/en.js","../node_modules/suneditor/src/plugins/command/blockquote.js","../node_modules/suneditor/src/plugins/submenu/align.js","../node_modules/suneditor/src/plugins/submenu/font.js","../node_modules/suneditor/src/plugins/submenu/fontSize.js","../node_modules/suneditor/src/plugins/modules/_colorPicker.js","../node_modules/suneditor/src/plugins/submenu/fontColor.js","../node_modules/suneditor/src/plugins/submenu/hiliteColor.js","../node_modules/suneditor/src/plugins/submenu/horizontalRule.js","../node_modules/suneditor/src/plugins/submenu/list.js","../node_modules/suneditor/src/plugins/submenu/table.js","../node_modules/suneditor/src/plugins/submenu/formatBlock.js","../node_modules/suneditor/src/plugins/submenu/lineHeight.js","../node_modules/suneditor/src/plugins/submenu/template.js","../node_modules/suneditor/src/plugins/submenu/paragraphStyle.js","../node_modules/suneditor/src/plugins/submenu/textStyle.js","../node_modules/suneditor/src/plugins/modules/_selectMenu.js","../node_modules/suneditor/src/plugins/modules/_anchor.js","../node_modules/suneditor/src/plugins/dialog/link.js","../node_modules/suneditor/src/plugins/dialog/image.js","../node_modules/suneditor/src/plugins/dialog/video.js","../node_modules/suneditor/src/plugins/dialog/audio.js","../node_modules/suneditor/src/plugins/dialog/math.js","../node_modules/suneditor/src/plugins/fileBrowser/imageGallery.js","../node_modules/suneditor/src/plugins/index.js","../node_modules/suneditor/src/lang/fa.js","../node_modules/suneditor/src/lang/es.js","../node_modules/react-fast-compare/index.js","../node_modules/warning/warning.js","../node_modules/suneditor/src/lang/nl.js","../node_modules/suneditor-react/dist/data/events.js","../node_modules/suneditor-react/dist/buttons/buttonList.js","../node_modules/suneditor/src/assets/defaultIcons.js","../node_modules/suneditor/src/lib/util.js","../node_modules/suneditor/src/lib/constructor.js","../node_modules/suneditor/src/lib/context.js","../node_modules/suneditor/src/plugins/modules/_notice.js","../node_modules/suneditor/src/suneditor.js","../node_modules/suneditor/src/lib/core.js","../node_modules/suneditor/src/lib/history.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/shallowequal/index.js","../node_modules/suneditor/src/lang/cs.js","../node_modules/suneditor/src/lang/fr.js","../node_modules/react-dom/index.js","../node_modules/classnames/index.js","../node_modules/react-side-effect/lib/index.js","../node_modules/suneditor/src/lang/pt_br.js","../node_modules/suneditor/src/lang/pl.js","../node_modules/react-data-table-component/src/DataTable/types.ts","../node_modules/react-data-table-component/src/DataTable/util.ts","../node_modules/react-data-table-component/src/DataTable/tableReducer.ts","../node_modules/react-data-table-component/src/DataTable/Table.tsx","../node_modules/react-data-table-component/src/DataTable/TableHead.tsx","../node_modules/react-data-table-component/src/DataTable/TableHeadRow.tsx","../node_modules/react-data-table-component/src/DataTable/media.ts","../node_modules/react-data-table-component/src/DataTable/Cell.ts","../node_modules/react-data-table-component/src/DataTable/TableCell.tsx","../node_modules/react-data-table-component/src/DataTable/Checkbox.tsx","../node_modules/react-data-table-component/src/DataTable/TableCellCheckbox.tsx","../node_modules/react-data-table-component/src/DataTable/ExpanderButton.tsx","../node_modules/react-data-table-component/src/DataTable/TableCellExpander.tsx","../node_modules/react-data-table-component/src/DataTable/ExpanderRow.tsx","../node_modules/react-data-table-component/src/DataTable/constants.ts","../node_modules/react-data-table-component/src/DataTable/TableRow.tsx","../node_modules/react-data-table-component/src/icons/NativeSortIcon.tsx","../node_modules/react-data-table-component/src/DataTable/TableCol.tsx","../node_modules/react-data-table-component/src/DataTable/TableColCheckbox.tsx","../node_modules/react-data-table-component/src/hooks/useRTL.ts","../node_modules/react-data-table-component/src/DataTable/ContextMenu.tsx","../node_modules/react-data-table-component/src/DataTable/TableHeader.tsx","../node_modules/react-data-table-component/src/DataTable/TableSubheader.tsx","../node_modules/react-data-table-component/src/DataTable/TableBody.tsx","../node_modules/react-data-table-component/src/DataTable/ResponsiveWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/ProgressWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/TableWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/TableColExpander.tsx","../node_modules/react-data-table-component/src/DataTable/NoDataWrapper.tsx","../node_modules/react-data-table-component/src/icons/Dropdown.tsx","../node_modules/react-data-table-component/src/DataTable/Select.tsx","../node_modules/react-data-table-component/src/DataTable/defaultProps.tsx","../node_modules/react-data-table-component/src/icons/ExpanderCollapsedIcon.tsx","../node_modules/react-data-table-component/src/icons/ExpanderExpandedIcon.tsx","../node_modules/react-data-table-component/src/icons/FirstPage.tsx","../node_modules/react-data-table-component/src/icons/LastPage.tsx","../node_modules/react-data-table-component/src/icons/Right.tsx","../node_modules/react-data-table-component/src/icons/Left.tsx","../node_modules/react-data-table-component/src/DataTable/Pagination.tsx","../node_modules/react-data-table-component/src/hooks/useWindowSize.ts","../node_modules/react-data-table-component/src/hooks/useDidUpdateEffect.ts","../node_modules/react-data-table-component/node_modules/deepmerge/dist/cjs.js","../node_modules/react-data-table-component/src/DataTable/themes.ts","../node_modules/react-data-table-component/src/hooks/useColumns.ts","../node_modules/react-data-table-component/src/DataTable/DataTable.tsx","../node_modules/react-data-table-component/src/DataTable/styles.ts","../node_modules/scheduler/index.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/styled-components/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/constructors/createGlobalStyle.js","../node_modules/styled-components/src/constructors/keyframes.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/hoc/withTheme.js","../node_modules/styled-components/src/hooks/useTheme.js","../node_modules/styled-components/src/secretInternals.js","../node_modules/styled-components/src/base.js","../node_modules/suneditor/src/plugins/modules/resizing.js","../node_modules/suneditor-react/dist/index.js","../node_modules/lodash.memoize/index.js","../node_modules/suneditor/src/lang/ua.js","../node_modules/suneditor/src/plugins/modules/dialog.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","images/gfx/error-404.svg","components/icon/Icon.tsx","components/block/Block.tsx","components/text/Text.tsx","components/grid/Grid.tsx","components/button/Button.tsx","../node_modules/reactstrap/esm/utils.js","../node_modules/reactstrap/esm/Card.js","components/preview/Preview.js","utils/Utils.ts","components/user/UserAvatar.tsx","components/table/DataTable.tsx","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/reactstrap/esm/Fade.js","../node_modules/reactstrap/esm/PopperContent.js","../node_modules/reactstrap/esm/TooltipPopoverWrapper.js","../node_modules/reactstrap/esm/Tooltip.js","components/tooltip/Tooltip.tsx","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.ts","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.ts","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","components/knob/Knob.js","../node_modules/reactstrap/esm/DropdownContext.js","../node_modules/reactstrap/esm/InputGroupContext.js","../node_modules/reactstrap/esm/Dropdown.js","../node_modules/reactstrap/esm/UncontrolledDropdown.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/reactstrap/esm/CloseButton.js","../node_modules/reactstrap/esm/Button.js","../node_modules/reactstrap/esm/DropdownToggle.js","../node_modules/reactstrap/esm/DropdownMenu.js","../node_modules/reactstrap/esm/DropdownItem.js","../node_modules/reactstrap/esm/Pagination.js","../node_modules/reactstrap/esm/PaginationItem.js","../node_modules/reactstrap/esm/PaginationLink.js","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","components/pagination/Pagination.tsx","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/simplebar/src/helpers.js","../node_modules/simplebar/src/scrollbar-width.js","../node_modules/simplebar/src/simplebar.js","../node_modules/simplebar-react/dist/simplebar-react.esm.js","components/sidebar/Sidebar.js","../node_modules/export-from-json/dist/esm/utils.js","../node_modules/export-from-json/dist/esm/processors.js","../node_modules/export-from-json/dist/esm/converters.js","../node_modules/export-from-json/dist/esm/exportFromJSON.js","../node_modules/export-from-json/dist/esm/types.js","base_template/error/404-modern.js","../node_modules/react-helmet/es/Helmet.js","layout/head/Head.js","pages/auth/AuthFooter.tsx","../node_modules/reactstrap/esm/Form.js","../node_modules/reactstrap/esm/Spinner.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasPromiseValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/useForm.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","services/api/server.ts","context/NotificationContext/NotificationContext.tsx","context/NotificationContext/useNotification.ts","../node_modules/react-google-recaptcha/lib/esm/recaptcha.js","../node_modules/react-async-script/lib/esm/async-script-loader.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","../node_modules/react-google-recaptcha/lib/esm/index.js","pages/auth/Login.tsx","services/api/api.auth.ts","../node_modules/reactstrap/esm/Col.js","../node_modules/reactstrap/esm/Input.js","components/input/CustomInput.tsx","utils/string.util.ts","pages/components/forms/PasswordFields.tsx","images/svgs/registration-img.svg","pages/auth/Register.tsx","services/api/public.ts","pages/auth/ForgotPassword.tsx","layout/menu/MenuData.ts","layout/provider/Theme.tsx","layout/sidebar/Toggle.js","layout/appbar/Appbar.js","layout/global/AppMain.js","layout/global/AppRoot.js","layout/global/AppWrap.js","services/api/api.subscription.ts","../node_modules/jwt-decode/build/esm/index.js","context/Auth/auth.contex.tsx","context/SubscriptionContext/SubscriptionContext.tsx","types/subscription.types.ts","layout/header/Header.tsx","layout/menu/Menu.tsx","layout/sidebar/Sidebar.tsx","layout/Index.tsx","../node_modules/reactstrap/esm/Portal.js","../node_modules/reactstrap/esm/Modal.js","../node_modules/reactstrap/esm/ModalBody.js","../node_modules/reactstrap/esm/Progress.js","components/alerts/LoadingMessages.tsx","pages/components/modal/LoadingModal.tsx","layout/Protected.tsx","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/reactstrap/esm/Alert.js","../node_modules/reactstrap/esm/UncontrolledAlert.js","components/alerts/Notification.tsx","utils/apiError.ts","context/NotificationContext/NotificationProvider.tsx","layout/content/Content.js","types/lists.types.ts","services/api/api.job-search.ts","pages/components/modal/CreateSearchModal.tsx","components/badge/Badge.tsx","../node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../node_modules/date-fns/locale/en-US/_lib/localize.mjs","../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../node_modules/date-fns/locale/en-US/_lib/match.mjs","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../node_modules/date-fns/locale/en-US.mjs","../node_modules/date-fns/_lib/defaultOptions.mjs","../node_modules/date-fns/constants.mjs","../node_modules/date-fns/toDate.mjs","../node_modules/date-fns/startOfDay.mjs","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../node_modules/date-fns/differenceInCalendarDays.mjs","../node_modules/date-fns/constructFrom.mjs","../node_modules/date-fns/startOfYear.mjs","../node_modules/date-fns/getDayOfYear.mjs","../node_modules/date-fns/startOfWeek.mjs","../node_modules/date-fns/startOfISOWeek.mjs","../node_modules/date-fns/getISOWeekYear.mjs","../node_modules/date-fns/startOfISOWeekYear.mjs","../node_modules/date-fns/getISOWeek.mjs","../node_modules/date-fns/getWeekYear.mjs","../node_modules/date-fns/startOfWeekYear.mjs","../node_modules/date-fns/getWeek.mjs","../node_modules/date-fns/_lib/addLeadingZeros.mjs","../node_modules/date-fns/_lib/format/lightFormatters.mjs","../node_modules/date-fns/_lib/format/formatters.mjs","../node_modules/date-fns/_lib/format/longFormatters.mjs","../node_modules/date-fns/_lib/protectedTokens.mjs","../node_modules/date-fns/isDate.mjs","../node_modules/date-fns/isValid.mjs","../node_modules/date-fns/format.mjs","../node_modules/date-fns/parseISO.mjs","utils/date.util.ts","utils/job-search-values.util.ts","pages/components/input/InputBadge.tsx","pages/components/input/InputWithBadge.tsx","types/leadFilters.types.ts","components/filters/SeniorityDetailsModal.tsx","utils/lead-search-values.util.ts","pages/components/input/LocationWithBadge.tsx","services/api/api.location.ts","../node_modules/zod/lib/index.mjs","pages/components/input/InputNumber.tsx","components/filters/LeadFilter.tsx","pages/components/input/DateRangeDropdown.tsx","pages/components/JobCriteriaForm/JobCriteriaFilter.tsx","components/loading/Loading.tsx","assets/images/empty_data.svg","pages/app/job-search/UserJobSearches.tsx","../node_modules/reactstrap/esm/ModalHeader.js","../node_modules/@fortawesome/free-brands-svg-icons/index.mjs","pages/components/job/JobModal/JobModal.tsx","pages/components/companies/CompanyModal.tsx","../node_modules/reactstrap/esm/ModalFooter.js","../node_modules/@fortawesome/free-regular-svg-icons/index.mjs","services/api/api.contact.ts","pages/components/contacts/ContactModal.tsx","utils/formatEmailWithIcon.tsx","pages/app/job-search/JobRow.tsx","services/api/api.list.ts","pages/components/modal/ListModal.tsx","pages/components/modal/SaveLeadsModal.tsx","../node_modules/reactstrap/esm/CardBody.js","../node_modules/engine.io-parser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../node_modules/engine.io-parser/build/esm/index.js","../node_modules/@socket.io/component-emitter/lib/esm/index.js","../node_modules/engine.io-client/build/esm/globals.js","../node_modules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/build/esm/transports/polling-xhr.js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-client/build/esm/transports/webtransport.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/socket.js","../node_modules/socket.io-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/build/esm/binary.js","../node_modules/socket.io-parser/build/esm/index.js","../node_modules/socket.io-client/build/esm/on.js","../node_modules/socket.io-client/build/esm/socket.js","../node_modules/socket.io-client/build/esm/contrib/backo2.js","../node_modules/socket.io-client/build/esm/manager.js","../node_modules/socket.io-client/build/esm/index.js","../node_modules/socket.io-client/build/esm/url.js","services/api/socket.ts","pages/components/menu/SelectedItemsMenu.tsx","pages/components/modal/ConfirmationModal.tsx","pages/app/job-search/UserJobSearchDetails.tsx","context/CampaignSelectedContext/campaignSelected.context.tsx","pages/auth/Validate.tsx","pages/auth/Logout.tsx","pages/app/leads/FavoriteLeads.tsx","pages/app/lists/FavoriteJobRow.tsx","pages/app/lists/ListDetails.tsx","pages/app/companies/FavoriteCompanies.tsx","../node_modules/reactstrap/esm/Row.js","pages/components/table/TableData.js","pages/app/profile/UserProfileASide.tsx","services/api/api.user.ts","pages/app/profile/Profile.tsx","pages/app/profile/ProfileSettings.tsx","../node_modules/reactstrap/esm/Badge.js","images/icons/plan-s3.svg","pages/app/plans/PlanTable.ts","images/icons/plan-s1.svg","images/icons/plan-s2.svg","pages/app/plans/Plan.tsx","pages/app/profile/ProfileSubscription.tsx","pages/app/jobs/FavoriteJobs.tsx","../node_modules/reactstrap/esm/CardHeader.js","pages/app/lists/List.tsx","pages/app/lists/ListsPage.tsx","components/filterDropdown/filterDropdown.tsx","components/sortDropdown/SortDropdown.tsx","pages/app/campaigns/filterOptions.ts","../node_modules/reactstrap/esm/CardTitle.js","../node_modules/reactstrap/esm/CardText.js","context/Campaign/Campaign.context.tsx","pages/components/campaigns/CampaignCard.tsx","../node_modules/reactstrap/esm/ListGroup.js","../node_modules/reactstrap/esm/ListGroupItem.js","pages/components/modal/EmailConnectionModal.tsx","services/api/api.campaigns.ts","../node_modules/reactstrap/esm/FormGroup.js","../node_modules/reactstrap/esm/Label.js","pages/components/modal/CreateCampaignModal.tsx","pages/components/modal/DeleteConfirmationModal.tsx","hooks/useMediaQuery.ts","pages/app/campaigns/Campaigns.tsx","../node_modules/reactstrap/esm/Table.js","pages/components/campaigns/ScheduledEmailsTable.tsx","components/input/SearchInput.tsx","pages/components/campaigns/tabs/EmailHistorySection.tsx","pages/app/campaigns/CampaignsDetailsTabs/AnalyticsTab.tsx","pages/components/modal/ListPreviewModal.tsx","pages/components/campaigns/tabs/ListsSelection.tsx","pages/app/campaigns/CampaignsDetailsTabs/LeadsTab.tsx","components/emailEditor/EmailEditor.tsx","pages/components/modal/EmailEditorModal.tsx","pages/components/campaigns/tabs/EmailActionsPanel.tsx","components/input/switch/InputSwitchCustom.tsx","pages/components/campaigns/tabs/EmailList.tsx","pages/components/modal/EmailActionsModal.tsx","pages/app/campaigns/CampaignsDetailsTabs/EmailsTab.tsx","../node_modules/reactstrap/esm/FormFeedback.js","pages/components/campaigns/tabs/LimitsAndTimeGap.tsx","pages/components/campaigns/tabs/AccountSelection.tsx","pages/components/modal/LaunchCampaignModal.tsx","pages/components/modal/ConfirmLauchModal.tsx","pages/app/campaigns/CampaignsDetailsTabs/ConfigurationsTab.tsx","pages/app/campaigns/CampaignsDetails.tsx","pages/app/candidate-database/CandidateUpdateProfileChat.tsx","../node_modules/reactstrap/esm/Nav.js","../node_modules/reactstrap/esm/NavItem.js","../node_modules/reactstrap/esm/NavLink.js","pages/components/leads/LeadDetailsPage/tabs/Tabs.tsx","pages/components/leads/LeadDetailsPage/LeadSideBar.tsx","pages/components/leads/LeadDetailsPage/tabs/BasicInfoTab.tsx","components/accordion/Accordion.tsx","pages/components/leads/LeadDetailsPage/tabs/ExperienceTab.tsx","pages/components/leads/LeadDetailsPage/tabs/EducationTab.tsx","pages/components/leads/LeadDetailsPage/tabs/SkillsTab.tsx","pages/components/leads/LeadDetailsPage/tabs/CompanyTab.tsx","components/button/LoadingButton.tsx","hooks/useButtonState.tsx","pages/components/modal/NoteFormModal.tsx","pages/components/leads/LeadDetailsPage/tabs/NotesTab.tsx","pages/components/leads/LeadDetailsPage/PageHeader.tsx","pages/app/leads/LeadDetailsPage.tsx","services/api/api.company.ts","route/Index.tsx","App.tsx","reportWebVitals.js","index.js"],"sourcesContent":["/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2023 JiHong Lee.\n *\n * Turkish translation by worm-codes at github.com/worm-codes\n *\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n\tconst lang = {\n\t\tcode: \"tr\",\n\t\ttoolbar: {\n\t\t\tdefault: \"Varsayılan\",\n\t\t\tsave: \"Kaydet\",\n\t\t\tfont: \"Yazı Tipi\",\n\t\t\tformats: \"Biçimlendirmeler\",\n\t\t\tfontSize: \"Boyut\",\n\t\t\tbold: \"Kalın\",\n\t\t\tunderline: \"Alt Çizili\",\n\t\t\titalic: \"İtalik\",\n\t\t\tstrike: \"Üstü Çizili\",\n\t\t\tsubscript: \"Alt Simge\",\n\t\t\tsuperscript: \"Üst Simge\",\n\t\t\tremoveFormat: \"Biçimi Kaldır\",\n\t\t\tfontColor: \"Yazı Tipi Rengi\",\n\t\t\thiliteColor: \"Vurgu Rengi\",\n\t\t\tindent: \"Girinti\",\n\t\t\toutdent: \"Girintiyi Azalt\",\n\t\t\talign: \"Hizala\",\n\t\t\talignLeft: \"Sola Hizala\",\n\t\t\talignRight: \"Sağa Hizala\",\n\t\t\talignCenter: \"Ortaya Hizala\",\n\t\t\talignJustify: \"İki Yana Yasla\",\n\t\t\tlist: \"Liste\",\n\t\t\torderList: \"Sıralı Liste\",\n\t\t\tunorderList: \"Sırasız Liste\",\n\t\t\thorizontalRule: \"Yatay Çizgi\",\n\t\t\thr_solid: \"Düz\",\n\t\t\thr_dotted: \"Noktalı\",\n\t\t\thr_dashed: \"Kesikli\",\n\t\t\ttable: \"Tablo\",\n\t\t\tlink: \"Bağlantı\",\n\t\t\tmath: \"Matematik\",\n\t\t\timage: \"Görsel\",\n\t\t\tvideo: \"Video\",\n\t\t\taudio: \"Ses\",\n\t\t\tfullScreen: \"Tam Ekran\",\n\t\t\tshowBlocks: \"Blokları Göster\",\n\t\t\tcodeView: \"Kod Görünümü\",\n\t\t\tundo: \"Geri Al\",\n\t\t\tredo: \"İleri Al\",\n\t\t\tpreview: \"Önizleme\",\n\t\t\tprint: \"Yazdır\",\n\t\t\ttag_p: \"Paragraf\",\n\t\t\ttag_div: \"Normal (DIV)\",\n\t\t\ttag_h: \"Başlık\",\n\t\t\ttag_blockquote: \"Alıntı\",\n\t\t\ttag_pre: \"Kod\",\n\t\t\ttemplate: \"Şablon\",\n\t\t\tlineHeight: \"Satır Yüksekliği\",\n\t\t\tparagraphStyle: \"Paragraf Stili\",\n\t\t\ttextStyle: \"Metin Stili\",\n\t\t\timageGallery: \"Görüntü Galerisi\",\n\t\t\tdir_ltr: \"Soldan Sağa\",\n\t\t\tdir_rtl: \"Sağdan Sola\",\n\t\t\tmention: \"Belirtmek\"\n\t\t},\n\t\tdialogBox: {\n\t\t\tlinkBox: {\n\t\t\t\ttitle: \"Bağlantı Ekle\",\n\t\t\t\turl: \"Bağlantı URL'si\",\n\t\t\t\ttext: \"Görüntülenecek Metin\",\n\t\t\t\tnewWindowCheck: \"Yeni Pencerede Aç\",\n\t\t\t\tdownloadLinkCheck: \"Bağlantıyı İndir\",\n\t\t\t\tbookmark: \"Bağlantıyı Yer İmlerine Ekle\"\n\t\t\t},\n\t\t\tmathBox: {\n\t\t\t\ttitle: \"Matematik\",\n\t\t\t\tinputLabel: \"Matematiksel Simgeler\",\n\t\t\t\tfontSizeLabel: \"Yazı Tipi Boyutu\",\n\t\t\t\tpreviewLabel: \"Önizleme\"\n\t\t\t},\n\t\t\timageBox: {\n\t\t\t\ttitle: \"Görüntü Ekle\",\n\t\t\t\tfile: \"Dosya Seç\",\n\t\t\t\turl: \"Görüntü URL'si\",\n\t\t\t\taltText: \"Alternatif Metin\"\n\t\t\t},\n\t\t\tvideoBox: {\n\t\t\t\ttitle: \"Video Ekle\",\n\t\t\t\tfile: \"Dosya Seç\",\n\t\t\t\turl: \"Medya Ekleme URL'si (YouTube/Vimeo)\"\n\t\t\t},\n\t\t\taudioBox: {\n\t\t\t\ttitle: \"Ses Ekle\",\n\t\t\t\tfile: \"Dosya Seç\",\n\t\t\t\turl: \"Ses URL'si\"\n\t\t\t},\n\t\t\tbrowser: {\n\t\t\t\ttags: \"Etiketler\",\n\t\t\t\tsearch: \"Ara\"\n\t\t\t},\n\t\t\tcaption: \"Açıklama Giriniz\",\n\t\t\tclose: \"Kapat\",\n\t\t\tsubmitButton: \"Gönder\",\n\t\t\trevertButton: \"Geri Dön\",\n\t\t\tproportion: \"Orantıları Koru\",\n\t\t\tbasic: \"Temel\",\n\t\t\tleft: \"Sola\",\n\t\t\tright: \"Sağa\",\n\t\t\tcenter: \"Ortaya\",\n\t\t\twidth: \"Genişlik\",\n\t\t\theight: \"Yükseklik\",\n\t\t\tsize: \"Boyut\",\n\t\t\tratio: \"Oran\"\n\t\t},\n\t\tcontroller: {\n\t\t\tedit: \"Düzenle\",\n\t\t\tunlink: \"Bağlantıyı Kaldır\",\n\t\t\tremove: \"Kaldır\",\n\t\t\tinsertRowAbove: \"Satır Yukarı Ekle\",\n\t\t\tinsertRowBelow: \"Satır Aşağı Ekle\",\n\t\t\tdeleteRow: \"Satırı Sil\",\n\t\t\tinsertColumnBefore: \"Sütun Önce Ekle\",\n\t\t\tinsertColumnAfter: \"Sütun Sonrası Ekle\",\n\t\t\tdeleteColumn: \"Sütunu Sil\",\n\t\t\tfixedColumnWidth: \"Sabit Sütun Genişliği\",\n\t\t\tresize100: \"%100 Ölçeklendir\",\n\t\t\tresize75: \"%75 Ölçeklendir\",\n\t\t\tresize50: \"%50 Ölçeklendir\",\n\t\t\tresize25: \"%25 Ölçeklendir\",\n\t\t\tautoSize: \"Ölçeğe Otomatik Ayar\",\n\t\t\tmirrorHorizontal: \"Düzlemsel Aynalama (Yatay)\",\n\t\t\tmirrorVertical: \"Düzlemsel Aynalama (Dikey)\",\n\t\t\trotateLeft: \"Saat Yönünde Döndür\",\n\t\t\trotateRight: \"Saat Yönünün Tersine Döndür\",\n\t\t\tmaxSize: \"En Büyük Boyut\",\n\t\t\tminSize: \"En Küçük Boyut\",\n\t\t\ttableHeader: \"Tablo Başlığı\",\n\t\t\tmergeCells: \"Hücreleri Birleştir\",\n\t\t\tsplitCells: \"Hücreleri Ayır\",\n\t\t\tHorizontalSplit: \"Yatay Ayırma\",\n\t\t\tVerticalSplit: \"Dikey Ayırma\"\n\t\t},\n\t\tmenu: {\n\t\t\tspaced: \"Aralıklı\",\n\t\t\tbordered: \"Çerçeveli\",\n\t\t\tneon: \"Neon\",\n\t\t\ttranslucent: \"Yarı Saydam\",\n\t\t\tshadow: \"Gölge\",\n\t\t\tcode: \"Kod\"\n\t\t}\n\t};\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'tr', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2019 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'ja',\n toolbar: {\n default: 'デフォルト',\n save: '保存',\n font: 'フォント',\n formats: '段落形式',\n fontSize: 'サイズ',\n bold: '太字',\n underline: '下線',\n italic: 'イタリック',\n strike: '取り消し線',\n subscript: '下付き',\n superscript: '上付き',\n removeFormat: '形式を削除',\n fontColor: '文字色',\n hiliteColor: '文字の背景色',\n indent: 'インデント',\n outdent: 'インデント',\n align: 'ソート',\n alignLeft: '左揃え',\n alignRight: '右揃え',\n alignCenter: '中央揃え',\n alignJustify: '両端揃え',\n list: 'リスト',\n orderList: '数値ブリット',\n unorderList: '円形ブリット',\n horizontalRule: '水平線を挿入',\n hr_solid: '実線',\n hr_dotted: '点線',\n hr_dashed: 'ダッシュ',\n table: 'テーブル',\n link: 'リンク',\n math: '数学',\n image: '画像',\n video: '動画',\n audio: 'オーディオ',\n fullScreen: 'フルスクリーン',\n showBlocks: 'ブロック表示',\n codeView: 'HTMLの編集',\n undo: '元に戻す',\n redo: '再実行',\n preview: 'プレビュー',\n print: '印刷',\n tag_p: '本文',\n tag_div: '基本(DIV)',\n tag_h: 'タイトル',\n tag_blockquote: '引用',\n tag_pre: 'コード',\n template: 'テンプレート',\n lineHeight: '行の高さ',\n paragraphStyle: '段落スタイル',\n textStyle: 'テキストスタイル',\n imageGallery: 'イメージギャラリー',\n dir_ltr: '左から右へ',\n dir_rtl: '右から左に',\n mention: '言及する'\n },\n dialogBox: {\n linkBox: {\n title: 'リンクの挿入',\n url: 'インターネットアドレス',\n text: '画面のテキスト',\n newWindowCheck: '別ウィンドウで開く',\n downloadLinkCheck: 'ダウンロードリンク',\n bookmark: 'ブックマーク'\n },\n mathBox: {\n title: '数学',\n inputLabel: '数学表記',\n fontSizeLabel: 'サイズ',\n previewLabel: 'プレビュー'\n },\n imageBox: {\n title: '画像の挿入',\n file: 'ファイルの選択',\n url: 'イメージアドレス',\n altText: '置換文字列'\n },\n videoBox: {\n title: '動画を挿入',\n file: 'ファイルの選択',\n url: 'メディア埋め込みアドレス, YouTube/Vimeo'\n },\n audioBox: {\n title: 'オーディオを挿入',\n file: 'ファイルの選択',\n url: 'オーディオアドレス'\n },\n browser: {\n tags: 'タグ',\n search: '探す',\n },\n caption: '説明付け',\n close: '閉じる',\n submitButton: '確認',\n revertButton: '元に戻す',\n proportion: 'の割合カスタマイズ',\n basic: '基本',\n left: '左',\n right: '右',\n center: '中央',\n width: '横',\n height: '縦',\n size: 'サイズ',\n ratio: '比率'\n },\n controller: {\n edit: '編集',\n unlink: 'リンク解除',\n remove: '削除',\n insertRowAbove: '上に行を挿入',\n insertRowBelow: '下に行を挿入',\n deleteRow: '行の削除',\n insertColumnBefore: '左に列を挿入',\n insertColumnAfter: '右に列を挿入',\n deleteColumn: '列を削除する',\n fixedColumnWidth: '固定列幅',\n resize100: '100% サイズ',\n resize75: '75% サイズ',\n resize50: '50% サイズ',\n resize25: '25% サイズ',\n autoSize: '自動サイズ',\n mirrorHorizontal: '左右反転',\n mirrorVertical: '上下反転',\n rotateLeft: '左に回転',\n rotateRight: '右に回転',\n maxSize: '最大サイズ',\n minSize: '最小サイズ',\n tableHeader: '表のヘッダー',\n mergeCells: 'セルの結合',\n splitCells: 'セルを分割',\n HorizontalSplit: '横分割',\n VerticalSplit: '垂直分割'\n },\n menu: {\n spaced: '文字間隔',\n bordered: '境界線',\n neon: 'ネオン',\n translucent: '半透明',\n shadow: '影',\n code: 'コード'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'ja', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_MODULES a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const component = {\n name: 'component',\n /**\n * @description Create a container for the resizing component and insert the element.\n * @param {Element} cover Cover element (FIGURE)\n * @param {String} className Class name of container (fixed: se-component)\n * @returns {Element} Created container element\n */\n set_container: function (cover, className) {\n const container = this.util.createElement('DIV');\n container.className = 'se-component ' + className;\n container.appendChild(cover);\n \n return container;\n },\n\n /**\n * @description Cover the target element with a FIGURE element.\n * @param {Element} element Target element\n */\n set_cover: function (element) {\n const cover = this.util.createElement('FIGURE');\n cover.appendChild(element);\n \n return cover;\n },\n\n /**\n * @description Return HTML string of caption(FIGCAPTION) element\n * @returns {String}\n */\n create_caption: function () {\n const caption = this.util.createElement('FIGCAPTION');\n caption.innerHTML = '
' + this.lang.dialogBox.caption + '
';\n return caption;\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_MODULES) {\n Object.defineProperty(window, 'SUNEDITOR_MODULES', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_MODULES, 'component', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: component\n });\n }\n\n return component;\n}));","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar getLanguage = function (lang) {\n switch (typeof lang) {\n case \"object\":\n return lang;\n case \"string\":\n return require(\"suneditor/src/lang/\".concat(lang, \".js\"));\n default:\n return undefined;\n }\n};\nexports.default = getLanguage;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_MODULES a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const fileBrowser = {\n name: 'fileBrowser',\n _xmlHttp: null,\n _loading: null,\n\n /**\n * @description Constructor\n * @param {Object} core Core object \n */\n add: function (core) {\n const context = core.context;\n context.fileBrowser = {\n _closeSignal: false,\n area: null,\n header: null,\n tagArea: null,\n body: null,\n list: null,\n tagElements: null,\n items: [],\n selectedTags: [],\n selectorHandler: null,\n contextPlugin: '',\n columnSize: 4\n };\n\n /** fileBrowser */\n let browser_div = core.util.createElement('DIV');\n browser_div.className = 'se-file-browser sun-editor-common';\n\n let back = core.util.createElement('DIV');\n back.className = 'se-file-browser-back';\n\n let content = core.util.createElement('DIV');\n content.className = 'se-file-browser-inner';\n content.innerHTML = this.set_browser(core);\n\n browser_div.appendChild(back);\n browser_div.appendChild(content);\n this._loading = browser_div.querySelector('.se-loading-box');\n\n context.fileBrowser.area = browser_div;\n context.fileBrowser.header = content.querySelector('.se-file-browser-header');\n context.fileBrowser.titleArea = content.querySelector('.se-file-browser-title');\n context.fileBrowser.tagArea = content.querySelector('.se-file-browser-tags');\n context.fileBrowser.body = content.querySelector('.se-file-browser-body');\n context.fileBrowser.list = content.querySelector('.se-file-browser-list');\n\n /** add event listeners */\n context.fileBrowser.tagArea.addEventListener('click', this.onClickTag.bind(core));\n context.fileBrowser.list.addEventListener('click', this.onClickFile.bind(core));\n content.addEventListener('mousedown', this._onMouseDown_browser.bind(core));\n content.addEventListener('click', this._onClick_browser.bind(core));\n \n /** append html */\n context.element.relative.appendChild(browser_div);\n \n /** empty memory */\n browser_div = null, back = null, content = null;\n },\n\n set_browser: function (core) {\n const lang = core.lang;\n\n return '
' +\n '
' +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n },\n\n /**\n * @description Event to control the behavior of closing the browser\n * @param {MouseEvent} e Event object\n * @private\n */\n _onMouseDown_browser: function (e) {\n if (/se-file-browser-inner/.test(e.target.className)) {\n this.context.fileBrowser._closeSignal = true;\n } else {\n this.context.fileBrowser._closeSignal = false;\n }\n },\n\n /**\n * @description Event to close the window when the outside area of the browser or close button is click\n * @param {MouseEvent} e Event object\n * @private\n */\n _onClick_browser: function (e) {\n e.stopPropagation();\n\n if (/close/.test(e.target.getAttribute('data-command')) || this.context.fileBrowser._closeSignal) {\n this.plugins.fileBrowser.close.call(this);\n }\n },\n\n /**\n * @description Open a file browser plugin\n * @param {String} pluginName Plugin name using the file browser\n * @param {Function|null} selectorHandler When the function comes as an argument value, it substitutes \"context.selectorHandler\".\n */\n open: function (pluginName, selectorHandler) {\n if (this.plugins.fileBrowser._bindClose) {\n this._d.removeEventListener('keydown', this.plugins.fileBrowser._bindClose);\n this.plugins.fileBrowser._bindClose = null;\n }\n\n this.plugins.fileBrowser._bindClose = function (e) {\n if (!/27/.test(e.keyCode)) return;\n this.plugins.fileBrowser.close.call(this);\n }.bind(this);\n this._d.addEventListener('keydown', this.plugins.fileBrowser._bindClose);\n\n const fileBrowserContext = this.context.fileBrowser;\n fileBrowserContext.contextPlugin = pluginName;\n fileBrowserContext.selectorHandler = selectorHandler;\n \n const pluginContext = this.context[pluginName];\n const listClassName = pluginContext.listClass;\n if (!this.util.hasClass(fileBrowserContext.list, listClassName)) {\n fileBrowserContext.list.className = 'se-file-browser-list ' + listClassName;\n }\n\n if (this.options.popupDisplay === 'full') {\n fileBrowserContext.area.style.position = 'fixed';\n } else {\n fileBrowserContext.area.style.position = 'absolute';\n }\n \n fileBrowserContext.titleArea.textContent = pluginContext.title;\n fileBrowserContext.area.style.display = 'block';\n\n if (this.context[pluginName].directData) {\n this.plugins.fileBrowser._drawListItem.call(this, this.context[pluginName].directData, true);\n } else {\n this.plugins.fileBrowser._drawFileList.call(this, this.context[pluginName].url, this.context[pluginName].header);\n }\n },\n\n _bindClose: null,\n \n /**\n * @description Close a fileBrowser plugin\n * The plugin's \"init\" method is called.\n */\n close: function () {\n const fileBrowserPlugin = this.plugins.fileBrowser;\n\n if (fileBrowserPlugin._xmlHttp) {\n fileBrowserPlugin._xmlHttp.abort();\n }\n\n if (fileBrowserPlugin._bindClose) {\n this._d.removeEventListener('keydown', fileBrowserPlugin._bindClose);\n fileBrowserPlugin._bindClose = null;\n }\n\n const fileBrowserContext = this.context.fileBrowser;\n fileBrowserContext.area.style.display = 'none';\n fileBrowserContext.selectorHandler = null;\n fileBrowserContext.selectedTags = [];\n fileBrowserContext.items = [];\n fileBrowserContext.list.innerHTML = fileBrowserContext.tagArea.innerHTML = fileBrowserContext.titleArea.textContent = '';\n\n if (typeof this.plugins[fileBrowserContext.contextPlugin].init === 'function') this.plugins[fileBrowserContext.contextPlugin].init.call(this);\n fileBrowserContext.contextPlugin = '';\n },\n\n /**\n * @description Show file browser loading box\n */\n showBrowserLoading: function () {\n this._loading.style.display = 'block';\n },\n\n /**\n * @description Close file browser loading box\n */\n closeBrowserLoading: function () {\n this._loading.style.display = 'none';\n },\n\n _drawFileList: function (url, browserHeader) {\n const fileBrowserPlugin = this.plugins.fileBrowser;\n\n const xmlHttp = fileBrowserPlugin._xmlHttp = this.util.getXMLHttpRequest();\n xmlHttp.onreadystatechange = fileBrowserPlugin._callBackGet.bind(this, xmlHttp);\n xmlHttp.open('get', url, true);\n if(browserHeader !== null && typeof browserHeader === 'object' && this._w.Object.keys(browserHeader).length > 0){\n for(let key in browserHeader){\n xmlHttp.setRequestHeader(key, browserHeader[key]);\n }\n }\n xmlHttp.send(null);\n\n this.plugins.fileBrowser.showBrowserLoading();\n },\n\n _callBackGet: function (xmlHttp) {\n if (xmlHttp.readyState === 4) {\n this.plugins.fileBrowser._xmlHttp = null;\n if (xmlHttp.status === 200) {\n try {\n const res = JSON.parse(xmlHttp.responseText);\n if (res.result.length > 0) {\n this.plugins.fileBrowser._drawListItem.call(this, res.result, true);\n } else if (res.nullMessage) {\n this.context.fileBrowser.list.innerHTML = res.nullMessage;\n }\n } catch (e) {\n throw Error('[SUNEDITOR.fileBrowser.drawList.fail] cause : \"' + e.message + '\"');\n } finally {\n this.plugins.fileBrowser.closeBrowserLoading();\n this.context.fileBrowser.body.style.maxHeight = (this._w.innerHeight - this.context.fileBrowser.header.offsetHeight - 50) + 'px';\n }\n } else { // exception\n this.plugins.fileBrowser.closeBrowserLoading();\n if (xmlHttp.status !== 0) {\n const res = !xmlHttp.responseText ? xmlHttp : JSON.parse(xmlHttp.responseText);\n const err = '[SUNEDITOR.fileBrowser.get.serverException] status: ' + xmlHttp.status + ', response: ' + (res.errorMessage || xmlHttp.responseText);\n throw Error(err);\n }\n }\n }\n },\n\n _drawListItem: function (items, update) {\n const fileBrowserContext = this.context.fileBrowser;\n const pluginContext = this.context[fileBrowserContext.contextPlugin];\n\n const _tags = [];\n const len = items.length;\n const columnSize = pluginContext.columnSize || fileBrowserContext.columnSize;\n const splitSize = columnSize <= 1 ? 1 : (Math.round(len/columnSize) || 1);\n const drawItemHandler = pluginContext.itemTemplateHandler;\n \n let tagsHTML = '';\n let listHTML = '
';\n let columns = 1;\n for (let i = 0, item, tags; i < len; i++) {\n item = items[i];\n tags = !item.tag ? [] : typeof item.tag === 'string' ? item.tag.split(',') : item.tag;\n tags = item.tag = tags.map(function (v) { return v.trim(); });\n listHTML += drawItemHandler(item);\n\n if ((i + 1) % splitSize === 0 && columns < columnSize && (i + 1) < len) {\n columns++;\n listHTML += '
';\n }\n \n if (update && tags.length > 0) {\n for (let t = 0, tLen = tags.length, tag; t < tLen; t++) {\n tag = tags[t];\n if (tag && _tags.indexOf(tag) === -1) {\n _tags.push(tag);\n tagsHTML += '' + tag + '';\n }\n }\n }\n }\n listHTML += '
';\n\n fileBrowserContext.list.innerHTML = listHTML;\n\n if (update) {\n fileBrowserContext.items = items;\n fileBrowserContext.tagArea.innerHTML = tagsHTML;\n fileBrowserContext.tagElements = fileBrowserContext.tagArea.querySelectorAll('A');\n }\n },\n\n onClickTag: function (e) {\n const target = e.target;\n if (!this.util.isAnchor(target)) return;\n\n const tagName = target.textContent;\n const fileBrowserPlugin = this.plugins.fileBrowser;\n const fileBrowserContext = this.context.fileBrowser;\n\n const selectTag = fileBrowserContext.tagArea.querySelector('a[title=\"' + tagName + '\"]');\n const selectedTags = fileBrowserContext.selectedTags;\n const sTagIndex = selectedTags.indexOf(tagName);\n\n if (sTagIndex > -1){\n selectedTags.splice(sTagIndex, 1);\n this.util.removeClass(selectTag, 'on');\n } else {\n selectedTags.push(tagName);\n this.util.addClass(selectTag, 'on');\n }\n\n fileBrowserPlugin._drawListItem.call(this,\n selectedTags.length === 0 ?\n fileBrowserContext.items :\n fileBrowserContext.items.filter(function (item) {\n return item.tag.some(function (tag) {\n return selectedTags.indexOf(tag) > -1;\n });\n }), false);\n },\n\n onClickFile: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n const fileBrowserContext = this.context.fileBrowser;\n const listEl = fileBrowserContext.list;\n let target = e.target;\n let command = null;\n\n if (target === listEl) return;\n\n while (listEl !== target.parentNode) {\n command = target.getAttribute('data-command');\n if (command) break;\n target = target.parentNode;\n }\n\n if (!command) return;\n\n const handler = (fileBrowserContext.selectorHandler || this.context[fileBrowserContext.contextPlugin].selectorHandler);\n handler(target, target.parentNode.querySelector('.__se__img_name').textContent);\n this.plugins.fileBrowser.close.call(this);\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_MODULES) {\n Object.defineProperty(window, 'SUNEDITOR_MODULES', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_MODULES, 'fileBrowser', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: fileBrowser\n });\n }\n\n return fileBrowser;\n}));","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","'use strict';\n\nimport ckb from './ckb';\nimport cs from './cs';\nimport da from './da';\nimport de from './de';\nimport en from './en';\nimport es from './es';\nimport fr from './fr';\nimport he from './he';\nimport hu from './hu';\nimport it from './it';\nimport ja from './ja';\nimport ko from './ko';\nimport lv from './lv';\nimport nl from './nl';\nimport pl from './pl';\nimport pt_br from './pt_br';\nimport ro from './ro';\nimport ru from './ru';\nimport se from './se';\nimport ua from './ua';\nimport ur from './ur';\nimport zh_cn from './zh_cn';\n\nexport { ckb, cs, da, de, en, es, fr, he, hu, it, ja, ko, lv, nl, pl, pt_br, ro, ru, se, ua, ur, zh_cn };\nexport default { ckb, cs, da, de, en, es, fr, he, hu, it, ja, ko, lv, nl, pl, pt_br, ro, ru, se, ua, ur, zh_cn };\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'ko',\n toolbar: {\n default: '기본값',\n save: '저장',\n font: '글꼴',\n formats: '문단 형식',\n fontSize: '크기',\n bold: '굵게',\n underline: '밑줄',\n italic: '기울임',\n strike: '취소선',\n subscript: '아래 첨자',\n superscript: '위 첨자',\n removeFormat: '형식 제거',\n fontColor: '글자색',\n hiliteColor: '배경색',\n indent: '들여쓰기',\n outdent: '내어쓰기',\n align: '정렬',\n alignLeft: '왼쪽 정렬',\n alignRight: '오른쪽 정렬',\n alignCenter: '가운데 정렬',\n alignJustify: '양쪽 정렬',\n list: '리스트',\n orderList: '숫자형 리스트',\n unorderList: '원형 리스트',\n horizontalRule: '가로 줄 삽입',\n hr_solid: '실선',\n hr_dotted: '점선',\n hr_dashed: '대시',\n table: '테이블',\n link: '링크',\n math: '수식',\n image: '이미지',\n video: '동영상',\n audio: '오디오',\n fullScreen: '전체 화면',\n showBlocks: '블록 보기',\n codeView: 'HTML 편집',\n undo: '실행 취소',\n redo: '다시 실행',\n preview: '미리보기',\n print: '인쇄',\n tag_p: '본문',\n tag_div: '기본 (DIV)',\n tag_h: '제목',\n tag_blockquote: '인용문',\n tag_pre: '코드',\n template: '템플릿',\n lineHeight: '줄 높이',\n paragraphStyle: '문단 스타일',\n textStyle: '글자 스타일',\n imageGallery: '이미지 갤러리',\n dir_ltr: '왼쪽에서 오른쪽',\n dir_rtl: '오른쪽에서 왼쪽',\n mention: '멘션'\n },\n dialogBox: {\n linkBox: {\n title: '링크 삽입',\n url: '인터넷 주소',\n text: '화면 텍스트',\n newWindowCheck: '새창으로 열기',\n downloadLinkCheck: '다운로드 링크',\n bookmark: '북마크'\n },\n mathBox: {\n title: '수식',\n inputLabel: '수학적 표기법',\n fontSizeLabel: '글자 크기',\n previewLabel: '미리보기'\n },\n imageBox: {\n title: '이미지 삽입',\n file: '파일 선택',\n url: '이미지 주소',\n altText: '대체 문자열'\n },\n videoBox: {\n title: '동영상 삽입',\n file: '파일 선택',\n url: '미디어 임베드 주소, 유튜브/비메오'\n },\n audioBox: {\n title: '오디오 삽입',\n file: '파일 선택',\n url: '오디오 파일 주소'\n },\n browser: {\n tags: '태그',\n search: '검색',\n },\n caption: '설명 넣기',\n close: '닫기',\n submitButton: '확인',\n revertButton: '되돌리기',\n proportion: '비율 맞춤',\n basic: '기본',\n left: '왼쪽',\n right: '오른쪽',\n center: '가운데',\n width: '가로',\n height: '세로',\n size: '크기',\n ratio: '비율'\n },\n controller: {\n edit: '편집',\n unlink: '링크 해제',\n remove: '삭제',\n insertRowAbove: '위에 행 삽입',\n insertRowBelow: '아래에 행 삽입',\n deleteRow: '행 삭제',\n insertColumnBefore: '왼쪽에 열 삽입',\n insertColumnAfter: '오른쪽에 열 삽입',\n deleteColumn: '열 삭제',\n fixedColumnWidth: '고정 된 열 너비',\n resize100: '100% 크기',\n resize75: '75% 크기',\n resize50: '50% 크기',\n resize25: '25% 크기',\n autoSize: '자동 크기',\n mirrorHorizontal: '좌우 반전',\n mirrorVertical: '상하 반전',\n rotateLeft: '왼쪽으로 회전',\n rotateRight: '오른쪽으로 회전',\n maxSize: '최대화',\n minSize: '최소화',\n tableHeader: '테이블 제목',\n mergeCells: '셀 병합',\n splitCells: '셀 분할',\n HorizontalSplit: '가로 분할',\n VerticalSplit: '세로 분할'\n },\n menu: {\n spaced: '글자 간격',\n bordered: '경계선',\n neon: '네온',\n translucent: '반투명',\n shadow: '그림자',\n code: '코드'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'ko', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'lv',\n toolbar: {\n default: 'Noklusējuma',\n save: 'Saglabāt',\n font: 'Fonts',\n formats: 'Formāti',\n fontSize: 'Fonta lielums',\n bold: 'Treknraksts',\n underline: 'Pasvītrot',\n italic: 'Slīpraksts',\n strike: 'Pārsvītrojums',\n subscript: 'Apakšraksts',\n superscript: 'Augšraksts',\n removeFormat: 'Noņemt formātu',\n fontColor: 'Fonta krāsa',\n hiliteColor: 'Teksta iezīmēšanas krāsa',\n indent: 'Palielināt atkāpi',\n outdent: 'Samazināt atkāpi',\n align: 'Izlīdzināt',\n alignLeft: 'Līdzināt pa kreisi',\n alignRight: 'Līdzināt pa labi',\n alignCenter: 'Centrēt',\n alignJustify: 'Taisnot',\n list: 'Saraksts',\n orderList: 'Numerācija',\n unorderList: 'Aizzimes',\n horizontalRule: 'Horizontāla līnija',\n hr_solid: 'Ciets',\n hr_dotted: 'Punktiņš',\n hr_dashed: 'Braša',\n table: 'Tabula',\n link: 'Saite',\n math: 'Matemātika',\n image: 'Attēls',\n video: 'Video',\n audio: 'Audio',\n fullScreen: 'Pilnekrāna režīms',\n showBlocks: 'Parādit blokus',\n codeView: 'Koda skats',\n undo: 'Atsaukt',\n redo: 'Atkārtot',\n preview: 'Priekšskatījums',\n print: 'Drukāt',\n tag_p: 'Paragrāfs',\n tag_div: 'Normāli (DIV)',\n tag_h: 'Galvene',\n tag_blockquote: 'Citāts',\n tag_pre: 'Kods',\n template: 'Veidne',\n lineHeight: 'Līnijas augstums',\n paragraphStyle: 'Paragrāfa stils',\n textStyle: 'Teksta stils',\n imageGallery: 'Attēlu galerija',\n dir_ltr: 'No kreisās uz labo',\n dir_rtl: 'No labās uz kreiso',\n mention: 'Pieminēt'\n },\n dialogBox: {\n linkBox: {\n title: 'Ievietot saiti',\n url: 'Saites URL',\n text: 'Parādāmais teksts',\n newWindowCheck: 'Atvērt jaunā logā',\n downloadLinkCheck: 'Lejupielādes saite',\n bookmark: 'Grāmatzīme'\n },\n mathBox: {\n title: 'Matemātika',\n inputLabel: 'Matemātiskā notācija',\n fontSizeLabel: 'Fonta lielums',\n previewLabel: 'Priekšskatījums'\n },\n imageBox: {\n title: 'Ievietot attēlu',\n file: 'Izvēlieties no failiem',\n url: 'Attēla URL',\n altText: 'Alternatīvs teksts'\n },\n videoBox: {\n title: 'Ievietot video',\n file: 'Izvēlieties no failiem',\n url: 'Multivides iegulšanas URL, YouTube/Vimeo'\n },\n audioBox: {\n title: 'Ievietot audio',\n file: 'Izvēlieties no failiem',\n url: 'Audio URL'\n },\n browser: {\n tags: 'Tagi',\n search: 'Meklēt'\n },\n caption: 'Ievietot aprakstu',\n close: 'Aizvērt',\n submitButton: 'Iesniegt',\n revertButton: 'Atjaunot',\n proportion: 'Ierobežo proporcijas',\n basic: 'Nav iesaiņojuma',\n left: 'Pa kreisi',\n right: 'Labajā pusē',\n center: 'Centrs',\n width: 'Platums',\n height: 'Augstums',\n size: 'Izmērs',\n ratio: 'Attiecība'\n },\n controller: {\n edit: 'Rediģēt',\n unlink: 'Atsaistīt',\n remove: 'Noņemt',\n insertRowAbove: 'Ievietot rindu virs',\n insertRowBelow: 'Ievietot rindu zemāk',\n deleteRow: 'Dzēst rindu',\n insertColumnBefore: 'Ievietot kolonnu pirms',\n insertColumnAfter: 'Ievietot kolonnu aiz',\n deleteColumn: 'Dzēst kolonnu',\n fixColumnWidth: 'Fiksēts kolonnas platums',\n resize100: 'Mainīt izmēru 100%',\n resize75: 'Mainīt izmēru 75%',\n resize50: 'Mainīt izmēru 50%',\n resize25: 'Mainīt izmēru 25%',\n autoSize: 'Automātiskais izmērs',\n mirrorHorizontal: 'Spogulis, horizontāls',\n mirrorVertical: 'Spogulis, vertikāls',\n rotateLeft: 'Pagriezt pa kreisi',\n rotateRight: 'Pagriezt pa labi',\n maxSize: 'Maksimālais izmērs',\n minSize: 'Minimālais izmērs',\n tableHeader: 'Tabulas galvene',\n mergeCells: 'Apvienot šūnas',\n splitCells: 'Sadalīt šūnas',\n HorizontalSplit: 'Horizontāls sadalījums',\n VerticalSplit: 'Vertikāls sadalījums'\n },\n menu: {\n spaced: 'Ar atstarpi',\n bordered: 'Robežojās',\n neon: 'Neona',\n translucent: 'Caurspīdīgs',\n shadow: 'Ēna',\n code: 'Kods'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'lv', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2019 @Gundolf68\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'de',\n toolbar: {\n default: 'Standard',\n save: 'Speichern',\n font: 'Schriftart',\n formats: 'Format',\n fontSize: 'Schriftgröße',\n bold: 'Fett',\n underline: 'Unterstrichen',\n italic: 'Kursiv',\n strike: 'Durchgestrichen',\n subscript: 'Tiefgestellt',\n superscript: 'Hochgestellt',\n removeFormat: 'Format entfernen',\n fontColor: 'Schriftfarbe',\n hiliteColor: 'Farbe für Hervorhebungen',\n indent: 'Einzug vergrößern',\n outdent: 'Einzug verkleinern',\n align: 'Ausrichtung',\n alignLeft: 'Links ausrichten',\n alignRight: 'Rechts ausrichten',\n alignCenter: 'Zentriert ausrichten',\n alignJustify: 'Blocksatz',\n list: 'Liste',\n orderList: 'Nummerierte Liste',\n unorderList: 'Aufzählung',\n horizontalRule: 'Horizontale Linie',\n hr_solid: 'Strich',\n hr_dotted: 'Gepunktet',\n hr_dashed: 'Gestrichelt',\n table: 'Tabelle',\n link: 'Link',\n math: 'Mathematik',\n image: 'Bild',\n video: 'Video',\n audio: 'Audio',\n fullScreen: 'Vollbild',\n showBlocks: 'Blockformatierungen anzeigen',\n codeView: 'Quelltext anzeigen',\n undo: 'Rückgängig',\n redo: 'Wiederholen',\n preview: 'Vorschau',\n print: 'Drucken',\n tag_p: 'Absatz',\n tag_div: 'Normal (DIV)',\n tag_h: 'Header',\n tag_blockquote: 'Zitat',\n tag_pre: 'Quellcode',\n template: 'Vorlage',\n lineHeight: 'Zeilenhöhe',\n paragraphStyle: 'Absatzstil',\n textStyle: 'Textstil',\n imageGallery: 'Bildergalerie',\n dir_ltr: 'Links nach rechts',\n dir_rtl: 'Rechts nach links',\n mention: 'Erwähnen'\n },\n dialogBox: {\n linkBox: {\n title: 'Link einfügen',\n url: 'Link-URL',\n text: 'Link-Text',\n newWindowCheck: 'In neuem Fenster anzeigen',\n downloadLinkCheck: 'Download-Link',\n bookmark: 'Lesezeichen'\n },\n mathBox: {\n title: 'Mathematik',\n inputLabel: 'Mathematische Notation',\n fontSizeLabel: 'Schriftgröße',\n previewLabel: 'Vorschau'\n },\n imageBox: {\n title: 'Bild einfügen',\n file: 'Datei auswählen',\n url: 'Bild-URL',\n altText: 'Alternativer Text'\n },\n videoBox: {\n title: 'Video einfügen',\n file: 'Datei auswählen',\n url: 'Video-URL, YouTube/Vimeo'\n },\n audioBox: {\n title: 'Audio einfügen',\n file: 'Datei auswählen',\n url: 'Audio-URL'\n },\n browser: {\n tags: 'Stichworte',\n search: 'Suche',\n },\n caption: 'Beschreibung eingeben',\n close: 'Schließen',\n submitButton: 'Übernehmen',\n revertButton: 'Rückgängig',\n proportion: 'Seitenverhältnis beibehalten',\n basic: 'Standard',\n left: 'Links',\n right: 'Rechts',\n center: 'Zentriert',\n width: 'Breite',\n height: 'Höhe',\n size: 'Größe',\n ratio: 'Verhältnis'\n },\n controller: {\n edit: 'Bearbeiten',\n unlink: 'Link entfernen',\n remove: 'Löschen',\n insertRowAbove: 'Zeile oberhalb einfügen',\n insertRowBelow: 'Zeile unterhalb einfügen',\n deleteRow: 'Zeile löschen',\n insertColumnBefore: 'Spalte links einfügen',\n insertColumnAfter: 'Spalte rechts einfügen',\n deleteColumn: 'Spalte löschen',\n fixedColumnWidth: 'Feste Spaltenbreite',\n resize100: 'Zoom 100%',\n resize75: 'Zoom 75%',\n resize50: 'Zoom 50%',\n resize25: 'Zoom 25%',\n autoSize: 'Automatische Größenanpassung',\n mirrorHorizontal: 'Horizontal spiegeln',\n mirrorVertical: 'Vertikal spiegeln',\n rotateLeft: 'Nach links drehen',\n rotateRight: 'Nach rechts drehen',\n maxSize: 'Maximale Größe',\n minSize: 'Mindestgröße',\n tableHeader: 'Tabellenüberschrift',\n mergeCells: 'Zellen verbinden',\n splitCells: 'Zellen teilen',\n HorizontalSplit: 'Horizontal teilen',\n VerticalSplit: 'Vertikal teilen'\n },\n menu: {\n spaced: 'Buchstabenabstand',\n bordered: 'Umrandet',\n neon: 'Neon',\n translucent: 'Durchscheinend',\n shadow: 'Schatten',\n code: 'Quellcode'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'de', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * \n * Danish translation by davidkonrad at github or gmail\n *\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'da',\n toolbar: {\n default: 'Default',\n save: 'Gem',\n font: 'Skrifttype',\n formats: 'Format',\n fontSize: 'Skriftstørrelse',\n bold: 'Fed',\n underline: 'Understreget',\n italic: 'Skråskrift',\n strike: 'Overstreget',\n subscript: 'Sænket skrift',\n superscript: 'Hævet skrift',\n removeFormat: 'Fjern formatering',\n fontColor: 'Skriftfarve',\n hiliteColor: 'Baggrundsfarve',\n indent: 'Ryk ind',\n outdent: 'Ryk ud',\n align: 'Justering',\n alignLeft: 'Venstrejustering',\n alignRight: 'Højrejustering',\n alignCenter: 'Midterjustering',\n alignJustify: 'Tilpas margin',\n list: 'Lister',\n orderList: 'Nummereret liste',\n unorderList: 'Uordnet liste',\n horizontalRule: 'Horisontal linie',\n hr_solid: 'Almindelig',\n hr_dotted: 'Punkteret',\n hr_dashed: 'Streget',\n table: 'Tabel',\n link: 'Link',\n math: 'Math',\n image: 'Billede',\n video: 'Video',\n audio: 'Audio',\n fullScreen: 'Fuld skærm',\n showBlocks: 'Vis blokke',\n codeView: 'Vis koder',\n undo: 'Undo',\n redo: 'Redo',\n preview: 'Preview',\n print: 'Print',\n tag_p: 'Paragraph',\n tag_div: 'Normal (DIV)',\n tag_h: 'Overskrift',\n tag_blockquote: 'Citer',\n tag_pre: 'Code',\n template: 'Schablone',\n lineHeight: 'Linjehøjde',\n paragraphStyle: 'Afsnitstil',\n textStyle: 'Tekststil',\n imageGallery: 'Billedgalleri',\n dir_ltr: 'Venstre til højre',\n dir_rtl: 'Højre til venstre',\n mention: 'Nævne'\n },\n dialogBox: {\n linkBox: {\n title: 'Indsæt link',\n url: 'URL til link',\n text: 'Tekst for link',\n newWindowCheck: 'Åben i nyt faneblad',\n downloadLinkCheck: 'Download link',\n bookmark: 'Bogmærke'\n },\n mathBox: {\n title: 'Math',\n inputLabel: 'Matematisk notation',\n fontSizeLabel: 'Skriftstørrelse',\n previewLabel: 'Preview'\n },\n imageBox: {\n title: 'Indsæt billede',\n file: 'Indsæt fra fil',\n url: 'Indsæt fra URL',\n altText: 'Alternativ tekst'\n },\n videoBox: {\n title: 'Indsæt Video',\n file: 'Indsæt fra fil',\n url: 'Indlejr video / YouTube,Vimeo'\n },\n audioBox: {\n title: 'Indsæt Audio',\n file: 'Indsæt fra fil',\n url: 'Indsæt fra URL'\n },\n browser: {\n tags: 'Tags',\n search: 'Søg',\n },\n caption: 'Indsæt beskrivelse',\n close: 'Luk',\n submitButton: 'Gennemfør',\n revertButton: 'Gendan',\n proportion: 'Bevar proportioner',\n basic: 'Basis',\n left: 'Venstre',\n right: 'Højre',\n center: 'Center',\n width: 'Bredde',\n height: 'Højde',\n size: 'Størrelse',\n ratio: 'Forhold'\n },\n controller: {\n edit: 'Rediger',\n unlink: 'Fjern link',\n remove: 'Fjern',\n insertRowAbove: 'Indsæt række foroven',\n insertRowBelow: 'Indsæt række nedenfor',\n deleteRow: 'Slet række',\n insertColumnBefore: 'Indsæt kolonne før',\n insertColumnAfter: 'Indsæt kolonne efter',\n deleteColumn: 'Slet kolonne',\n fixedColumnWidth: 'Fast søjlebredde',\n resize100: 'Forstør 100%',\n resize75: 'Forstør 75%',\n resize50: 'Forstør 50%',\n resize25: 'Forstør 25%',\n autoSize: 'Auto størrelse',\n mirrorHorizontal: 'Spejling, horisontal',\n mirrorVertical: 'Spejling, vertikal',\n rotateLeft: 'Roter til venstre',\n rotateRight: 'Toter til højre',\n maxSize: 'Max størrelse',\n minSize: 'Min størrelse',\n tableHeader: 'Tabel overskrift',\n mergeCells: 'Sammenlæg celler (merge)',\n splitCells: 'Opdel celler',\n HorizontalSplit: 'Opdel horisontalt',\n VerticalSplit: 'Opdel vertikalt'\n },\n menu: {\n spaced: 'Brev Afstand',\n bordered: 'Afgrænsningslinje',\n neon: 'Neon',\n translucent: 'Gennemsigtig',\n shadow: 'Skygge',\n code: 'Code'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'da', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var map = {\n\t\"./ckb.js\": 3743,\n\t\"./cs.js\": 7333,\n\t\"./da.js\": 1664,\n\t\"./de.js\": 844,\n\t\"./en.js\": 5460,\n\t\"./es.js\": 6151,\n\t\"./fa.js\": 6062,\n\t\"./fr.js\": 7755,\n\t\"./he.js\": 3296,\n\t\"./hu.js\": 3776,\n\t\"./index.js\": 559,\n\t\"./it.js\": 4762,\n\t\"./ja.js\": 74,\n\t\"./ko.js\": 665,\n\t\"./lv.js\": 749,\n\t\"./nl.js\": 6449,\n\t\"./pl.js\": 8599,\n\t\"./pt_br.js\": 8366,\n\t\"./ro.js\": 3100,\n\t\"./ru.js\": 4638,\n\t\"./se.js\": 5111,\n\t\"./tr.js\": 57,\n\t\"./ua.js\": 9657,\n\t\"./ur.js\": 4640,\n\t\"./zh_cn.js\": 5277\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 2224;","/*! react-dual-listbox - v2.3.0 | 2022 */\n/*! For license information please see index.browser.js.LICENSE.txt */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define(\"ReactDualListbox\",[\"react\"],t):\"object\"==typeof exports?exports.ReactDualListbox=t(require(\"react\")):e.ReactDualListbox=t(e.React)}(self,(e=>(()=>{var t={579:(e,t,r)=>{e.exports=r(11).default},11:(e,t,r)=>{\"use strict\";r.d(t,{default:()=>ue});var n=r(184),o=r.n(n),i=r(522),l=r.n(i);let a=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?\"-\":\"_\")),\"\");var c=r(697),s=r.n(c),u=r(787),f=r.n(u);const p=s().shape({moveLeft:s().node.isRequired,moveAllLeft:s().node.isRequired,moveRight:s().node.isRequired,moveAllRight:s().node.isRequired,moveDown:s().node,moveUp:s().node}),d=s().shape({moveLeft:s().string.isRequired,moveAllLeft:s().string.isRequired,moveRight:s().string.isRequired,moveAllRight:s().string.isRequired,availableFilterHeader:s().string,availableHeader:s().string,moveDown:s().string,moveUp:s().string,noAvailableOptions:s().string,noSelectedOptions:s().string,selectedFilterHeader:s().string,selectedHeader:s().string}),v=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};function b(e){return b=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},b(e)}function y(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&a[e].push({label:r.label,options:n})}}))}))})),i(a.selected,a.userSelection)}}},{key:\"onActionClick\",value:function(e){var t,r=e.direction,n=e.isMoveAll,o=this.props.options,i=\"right\"===r,l=i?this.available:this.selected,a=this.getMarkedOptions(l);t=[\"up\",\"down\"].indexOf(r)>-1?this.rearrangeSelected(a,r):[\"top\",\"bottom\"].indexOf(r)>-1?this.moveToExtremes(a,r):n?i?this.makeOptionsSelected(o):[]:this.toggleSelected(a,i?\"available\":\"selected\"),this.onChange(t,a)}},{key:\"onOptionDoubleClick\",value:function(e,t){var r=this.getMarkedOptions(e.currentTarget),n=this.toggleSelected(r,t);this.onChange(n,r)}},{key:\"onOptionKeyUp\",value:function(e,t){var r=e.currentTarget,n=e.keyCode;if(this.props.moveKeyCodes.indexOf(n)>-1){var o=this.getMarkedOptions(r),i=this.toggleSelected(o,t);this.onChange(i,o)}}},{key:\"onFilterChange\",value:function(e){var t=this.props.onFilterChange,r=G(G({},this.state.filter),{},re({},e.target.dataset.key,e.target.value));t?t(r):this.setState({filter:r})}},{key:\"getFlatOptions\",value:function(e){if(this.props.simpleValue)return e;var t=[];return e.forEach((function(e){void 0!==e.value?t.push(e.value):void 0!==e.options&&e.options.forEach((function(e){t.push(e.value)}))})),t}},{key:\"getLabelMap\",value:function(e){var t=this,r={};return e.forEach((function(e){void 0!==e.options?r=G(G({},r),t.getLabelMap(e.options)):r[e.value]=e.label})),r}},{key:\"getMarkedOptions\",value:function(e){return null===e?[]:N(e.options).filter((function(e){return e.selected})).map((function(e){return{index:parseInt(e.dataset.index,10),value:JSON.parse(e.dataset.realValue)}}))}},{key:\"rearrangeSelected\",value:function(e,t){var r=this.props.selected,n=this.getFlatOptions(r).slice(0),o=ne(n);return 0===e.length||(\"up\"===t?e[e.length-1].index>e.length-1&&e.forEach((function(e){var t=e.index;t>0&&(o=ae(t,t-1)(o))})):\"down\"===t&&e[0].index-1)||n&&\"selected\"!==t?i.push(r):delete l[o]})),\"selected\"===t?Object.keys(l).map((function(e){return l[e]})):i}},{key:\"filterOptions\",value:function(e,t,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this.props,l=i.canFilter,a=i.filterCallback,c=[];return e.forEach((function(e){if(void 0!==e.options){var i=n.filterOptions(e.options,t,r,a(e,r));i.length>0&&c.push(G(G({},e),{},{options:i}))}else{var s=[],u=t(e);if(Array.isArray(u)?u.forEach((function(t){s.push(G(G({},e),{},{selectedIndex:t}))})):u&&s.push(e),s.length>0){if(l&&!a(e,r)&&!o)return;s.forEach((function(e){c.push(e)}))}}})),c}},{key:\"filterAvailable\",value:function(e){var t=this,r=this.props,n=r.allowDuplicates,o=r.available,i=r.selected,l=this.state.filter.available,a=[];return void 0!==o&&a.push((function(e){return t.getFlatOptions(o).indexOf(e.value)>=0})),n||a.push((function(e){return t.getFlatOptions(i).indexOf(e.value)<0})),this.filterOptions(e,(function(e){return a.reduce((function(t,r){return t&&r(e)}),!0)}),l)}},{key:\"filterSelected\",value:function(e){var t=this,r=this.props,n=r.preserveSelectOrder,o=r.selected,i=this.state.filter.selected;return n?this.filterSelectedByOrder(e):this.filterOptions(e,(function(e){return function(e,t){var r=[];return e.forEach((function(e,n){e===t&&r.push(n)})),r}(t.getFlatOptions(o),e.value)}),i)}},{key:\"filterSelectedByOrder\",value:function(e){var t=this.props,r=t.canFilter,n=t.filterCallback,o=t.selected,i=this.state.filter.selected,l=this.getLabelMap(e),a=this.getFlatOptions(o).map((function(e,t){return{value:e,label:l[e],selectedIndex:t}}));return r?a.filter((function(e){return n(e,i)})).map((function(e,t){return G(G({},e),{},{selectedIndex:t})})):a}},{key:\"renderOptions\",value:function(e){var t=this,r=this.props.allowDuplicates,n=this.state.id;return e.map((function(e,o){var i=r?\"\".concat(e.value,\"-\").concat(e.label,\"-\").concat(o):\"\".concat(e.value,\"-\").concat(e.label);if(void 0!==e.options)return f().createElement(\"optgroup\",{key:i,disabled:e.disabled,id:\"\".concat(n,\"-optgroup-\").concat(e.label),label:e.label,title:e.title},t.renderOptions(e.options));var l=r?\"\".concat(e.value,\"-\").concat(o):e.value;return f().createElement(\"option\",{key:i,\"data-index\":e.selectedIndex,\"data-real-value\":JSON.stringify(e.value),disabled:e.disabled,id:\"\".concat(n,\"-option-\").concat(e.value),title:e.title,value:l},e.label)}))}},{key:\"renderListBox\",value:function(e,t,r,n){var o=this,i=this.props,l=i.alignActions,a=i.canFilter,c=i.disabled,s=i.filterPlaceholder,u=i.lang,p=i.showHeaderLabels,d=i.showNoOptionsText,v=this.state,b=v.filter,y=v.id,h=function(t){return function(r){return t(r,e)}};return f().createElement(V,{actions:l===le?n:null,canFilter:a,controlKey:e,disabled:c,filterPlaceholder:s,filterValue:b[e],id:y,inputRef:function(t){o[e]=t,r&&r(t)},lang:u,showHeaderLabels:p,showNoOptionsText:d,onDoubleClick:h(this.onOptionDoubleClick),onFilterChange:h(this.onFilterChange),onKeyUp:h(this.onOptionKeyUp)},t)}},{key:\"render\",value:function(){var e=this,t=this.props,r=t.alignActions,n=t.availableRef,i=t.canFilter,l=t.className,a=t.disabled,c=t.icons,s=t.lang,u=t.name,p=t.options,d=t.preserveSelectOrder,v=t.selected,b=t.selectedRef,y=t.showHeaderLabels,h=t.showOrderButtons,g=this.state.id,m=this.renderOptions(this.filterAvailable(p)),O=this.renderOptions(this.filterSelected(p)),w=function(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return f().createElement(j,{direction:t,disabled:a,icons:c,id:g,isMoveAll:r,lang:s,onClick:e.onActionClick})},R=f().createElement(\"div\",{className:\"rdl-actions-right\"},w(\"right\",!0),w(\"right\")),k=f().createElement(\"div\",{className:\"rdl-actions-left\"},w(\"left\"),w(\"left\",!0)),S=o()(G({\"react-dual-listbox\":!0,\"rdl-has-filter\":i,\"rdl-has-header\":y,\"rdl-align-top\":r===le},l&&re({},l,!0))),x=this.getFlatOptions(v).join(\",\");return f().createElement(\"div\",{className:S,id:g},this.renderListBox(\"available\",m,n,R),r===ie?f().createElement(\"div\",{className:\"rdl-actions\"},R,k):null,this.renderListBox(\"selected\",O,b,k),d&&h?f().createElement(\"div\",{className:\"rdl-actions\"},w(\"top\"),w(\"up\"),w(\"down\"),w(\"bottom\")):null,f().createElement(\"input\",{disabled:a,name:u,type:\"hidden\",value:x}))}}],n=[{key:\"getDerivedStateFromProps\",value:function(e,t){var r=e.filter,n=e.id,o=G({},t);return null!==r&&(o.filter=r),null!==n&&(o.id=n),o}}],r&&Q(t.prototype,r),n&&Q(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),s}(f().Component);re(se,\"propTypes\",{options:$.isRequired,onChange:s().func.isRequired,alignActions:s().oneOf([ie,le]),allowDuplicates:s().bool,available:J,availableRef:s().func,canFilter:s().bool,className:s().string,disabled:s().bool,filter:s().shape({available:s().string.isRequired,selected:s().string.isRequired}),filterCallback:s().func,filterPlaceholder:s().string,icons:p,id:s().string,lang:d,moveKeyCodes:s().arrayOf(s().number),name:s().string,preserveSelectOrder:s().bool,selected:J,selectedRef:s().func,showHeaderLabels:s().bool,showNoOptionsText:s().bool,showOrderButtons:s().bool,simpleValue:s().bool,onFilterChange:s().func}),re(se,\"defaultProps\",{alignActions:ie,allowDuplicates:!1,available:void 0,availableRef:null,canFilter:!1,className:null,disabled:!1,filter:null,filterPlaceholder:\"Search...\",filterCallback:function(e,t){return\"\"===t||new RegExp(l()(t),\"i\").test(e.label)},icons:ce,id:null,lang:{availableFilterHeader:\"Filter available\",availableHeader:\"Available\",moveAllLeft:\"Move all left\",moveAllRight:\"Move all right\",moveLeft:\"Move left\",moveRight:\"Move right\",moveBottom:\"Move to bottom\",moveDown:\"Move down\",moveUp:\"Move up\",moveTop:\"Move to top\",noAvailableOptions:\"No available options\",noSelectedOptions:\"No selected options\",selectedFilterHeader:\"Filter selected\",selectedHeader:\"Selected\"},moveKeyCodes:[32,13],name:null,preserveSelectOrder:null,selected:[],selectedRef:null,simpleValue:!0,showHeaderLabels:!1,showNoOptionsText:!1,showOrderButtons:!1,onFilterChange:null});const ue=se},184:(e,t)=>{var r;!function(){\"use strict\";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t{var n=r(639).Symbol;e.exports=n},932:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r{var n=r(705),o=r(607),i=r(333),l=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":l&&l in Object(e)?o(e):i(e)}},531:(e,t,r)=>{var n=r(705),o=r(932),i=r(469),l=r(448),a=n?n.prototype:void 0,c=a?a.toString:void 0;e.exports=function e(t){if(\"string\"==typeof t)return t;if(i(t))return o(t,e)+\"\";if(l(t))return c?c.call(t):\"\";var r=t+\"\";return\"0\"==r&&1/t==-1/0?\"-0\":r}},957:(e,t,r)=>{var n=\"object\"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;e.exports=n},607:(e,t,r)=>{var n=r(705),o=Object.prototype,i=o.hasOwnProperty,l=o.toString,a=n?n.toStringTag:void 0;e.exports=function(e){var t=i.call(e,a),r=e[a];try{e[a]=void 0;var n=!0}catch(e){}var o=l.call(e);return n&&(t?e[a]=r:delete e[a]),o}},333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},639:(e,t,r)=>{var n=r(957),o=\"object\"==typeof self&&self&&self.Object===Object&&self,i=n||o||Function(\"return this\")();e.exports=i},522:(e,t,r)=>{var n=r(833),o=/[\\\\^$.*+?()[\\]{}|]/g,i=RegExp(o.source);e.exports=function(e){return(e=n(e))&&i.test(e)?e.replace(o,\"\\\\$&\"):e}},469:e=>{var t=Array.isArray;e.exports=t},5:e=>{e.exports=function(e){return null!=e&&\"object\"==typeof e}},448:(e,t,r)=>{var n=r(239),o=r(5);e.exports=function(e){return\"symbol\"==typeof e||o(e)&&\"[object Symbol]\"==n(e)}},833:(e,t,r)=>{var n=r(531);e.exports=function(e){return null==e?\"\":n(e)}},703:(e,t,r)=>{\"use strict\";var n=r(414);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,l){if(l!==n){var a=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw a.name=\"Invariant Violation\",a}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},697:(e,t,r)=>{e.exports=r(703)()},414:e=>{\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},787:t=>{\"use strict\";t.exports=e}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}return n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(e){if(\"object\"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n(579)})()));","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 0){\n for(let key in uploadHeader){\n xmlHttp.setRequestHeader(key, uploadHeader[key]);\n }\n }\n xmlHttp.send(formData);\n },\n\n _callBackUpload: function (xmlHttp, callBack, errorCallBack) {\n if (xmlHttp.readyState === 4) {\n if (xmlHttp.status === 200) {\n try {\n callBack(xmlHttp);\n } catch (e) {\n throw Error('[SUNEDITOR.fileManager.upload.callBack.fail] cause : \"' + e.message + '\"');\n } finally {\n this.closeLoading();\n }\n } else { // exception\n this.closeLoading();\n const res = !xmlHttp.responseText ? xmlHttp : JSON.parse(xmlHttp.responseText);\n if (typeof errorCallBack !== 'function' || errorCallBack('', res, this)) {\n const err = '[SUNEDITOR.fileManager.upload.serverException] status: ' + xmlHttp.status + ', response: ' + (res.errorMessage || xmlHttp.responseText);\n this.functions.noticeOpen(err);\n throw Error(err);\n }\n }\n }\n },\n \n /**\n * @description Checke the file's information and modify the tag that does not fit the format.\n * @param {String} pluginName Plugin name\n * @param {Array} tagNames Tag array to check\n * @param {Function|null} uploadEventHandler Event handler to process updated file info after checking (used in \"setInfo\")\n * @param {Function} modifyHandler A function to modify a tag that does not fit the format (Argument value: Tag element)\n * @param {Boolean} resizing True if the plugin is using a resizing module\n * @example \n * const modifyHandler = function (tag) {\n * imagePlugin.onModifyMode.call(this, tag, null);\n * imagePlugin.openModify.call(this, true);\n * imagePlugin.update_image.call(this, true, false, true);\n * }.bind(this);\n * this.plugins.fileManager.checkInfo.call(this, 'image', ['img'], this.functions.onImageUpload, modifyHandler, true);\n */\n checkInfo: function (pluginName, tagNames, uploadEventHandler, modifyHandler, resizing) {\n let tags = [];\n for (let i = 0, len = tagNames.length; i < len; i++) {\n tags = tags.concat([].slice.call(this.context.element.wysiwyg.querySelectorAll(tagNames[i] + ':not([data-se-embed=\"true\"])')));\n }\n\n const fileManagerPlugin = this.plugins.fileManager;\n const context = this.context[pluginName];\n const infoList = context._infoList;\n const setFileInfo = fileManagerPlugin.setInfo.bind(this);\n\n if (tags.length === infoList.length) {\n // reset\n if (this._componentsInfoReset) {\n for (let i = 0, len = tags.length; i < len; i++) {\n setFileInfo(pluginName, tags[i], uploadEventHandler, null, resizing);\n }\n return ;\n } else {\n let infoUpdate = false;\n for (let i = 0, len = infoList.length, info; i < len; i++) {\n info = infoList[i];\n if (tags.filter(function (t) { return info.src === t.src && info.index.toString() === t.getAttribute('data-index'); }).length === 0) {\n infoUpdate = true;\n break;\n }\n }\n // pass\n if (!infoUpdate) return;\n }\n }\n\n // check\n const _resize_plugin = resizing ? this.context.resizing._resize_plugin : '';\n if (resizing) this.context.resizing._resize_plugin = pluginName;\n const currentTags = [];\n const infoIndex = [];\n for (let i = 0, len = infoList.length; i < len; i++) {\n infoIndex[i] = infoList[i].index;\n }\n context.__updateTags = tags;\n\n while (tags.length > 0) {\n const tag = tags.shift();\n if (!this.util.getParentElement(tag, this.util.isMediaComponent) || !fileManagerPlugin._checkMediaComponent(tag)) {\n currentTags.push(context._infoIndex);\n modifyHandler(tag);\n } else if (!tag.getAttribute('data-index') || infoIndex.indexOf(tag.getAttribute('data-index') * 1) < 0) {\n currentTags.push(context._infoIndex);\n tag.removeAttribute('data-index');\n setFileInfo(pluginName, tag, uploadEventHandler, null, resizing);\n } else {\n currentTags.push(tag.getAttribute('data-index') * 1);\n }\n }\n\n for (let i = 0, dataIndex; i < infoList.length; i++) {\n dataIndex = infoList[i].index;\n if (currentTags.indexOf(dataIndex) > -1) continue;\n\n infoList.splice(i, 1);\n if (typeof uploadEventHandler === 'function') uploadEventHandler(null, dataIndex, 'delete', null, 0, this);\n i--;\n }\n\n if (resizing) this.context.resizing._resize_plugin = _resize_plugin;\n },\n\n /**\n * @description Create info object of file and add it to \"_infoList\" (this.context[pluginName]._infoList[])\n * @param {String} pluginName Plugin name \n * @param {Element} element \n * @param {Function|null} uploadEventHandler Event handler to process updated file info (created in setInfo)\n * @param {Object|null} file \n * @param {Boolean} resizing True if the plugin is using a resizing module\n * @example \n * uploadCallBack {.. file = { name: fileList[i].name, size: fileList[i].size };\n * this.plugins.fileManager.setInfo.call(this, 'image', oImg, this.functions.onImageUpload, file, true);\n */\n setInfo: function (pluginName, element, uploadEventHandler, file, resizing) {\n const _resize_plugin = resizing ? this.context.resizing._resize_plugin : '';\n if (resizing) this.context.resizing._resize_plugin = pluginName;\n \n const plguin = this.plugins[pluginName];\n const context = this.context[pluginName];\n const infoList = context._infoList;\n let dataIndex = element.getAttribute('data-index');\n let info = null;\n let state = '';\n\n if (!file) {\n file = {\n 'name': element.getAttribute('data-file-name') || (typeof element.src === 'string' ? element.src.split('/').pop() : ''),\n 'size': element.getAttribute('data-file-size') || 0\n };\n }\n \n // create\n if (!dataIndex || this._componentsInfoInit) {\n state = 'create';\n dataIndex = context._infoIndex++;\n \n element.setAttribute('data-index', dataIndex);\n element.setAttribute('data-file-name', file.name);\n element.setAttribute('data-file-size', file.size);\n \n info = {\n src: element.src,\n index: dataIndex * 1,\n name: file.name,\n size: file.size\n };\n \n infoList.push(info);\n } else { // update\n state = 'update';\n dataIndex *= 1;\n \n for (let i = 0, len = infoList.length; i < len; i++) {\n if (dataIndex === infoList[i].index) {\n info = infoList[i];\n break;\n }\n }\n \n if (!info) {\n dataIndex = context._infoIndex++;\n info = { index: dataIndex };\n infoList.push(info);\n }\n \n info.src = element.src;\n info.name = element.getAttribute(\"data-file-name\");\n info.size = element.getAttribute(\"data-file-size\") * 1;\n }\n \n // method bind\n info.element = element;\n info.delete = plguin.destroy.bind(this, element);\n info.select = function (element) {\n element.scrollIntoView(true);\n this._w.setTimeout(plguin.select.bind(this, element));\n }.bind(this, element);\n \n if (resizing) {\n if (!element.getAttribute('origin-size') && element.naturalWidth) {\n element.setAttribute('origin-size', element.naturalWidth + ',' + element.naturalHeight);\n }\n \n if (!element.getAttribute('data-origin')) {\n const container = this.util.getParentElement(element, this.util.isMediaComponent);\n const cover = this.util.getParentElement(element, 'FIGURE');\n \n const w = this.plugins.resizing._module_getSizeX.call(this, context, element, cover, container);\n const h = this.plugins.resizing._module_getSizeY.call(this, context, element, cover, container);\n element.setAttribute('data-origin', w + ',' + h);\n element.setAttribute('data-size', w + ',' + h);\n }\n \n if (!element.style.width) {\n const size = (element.getAttribute('data-size') || element.getAttribute('data-origin') || '').split(',');\n plguin.onModifyMode.call(this, element, null);\n plguin.applySize.call(this, size[0], size[1]);\n }\n \n this.context.resizing._resize_plugin = _resize_plugin;\n }\n\n if (typeof uploadEventHandler === 'function') uploadEventHandler(element, dataIndex, state, info, --context._uploadFileLength < 0 ? 0 : context._uploadFileLength, this);\n },\n\n /**\n * @description Delete info object at \"_infoList\"\n * @param {String} pluginName Plugin name \n * @param {Number} index index of info object (this.context[pluginName]._infoList[].index)\n * @param {Function|null} uploadEventHandler Event handler to process updated file info (created in setInfo)\n */\n deleteInfo: function (pluginName, index, uploadEventHandler) {\n if (index >= 0) {\n const infoList = this.context[pluginName]._infoList;\n \n for (let i = 0, len = infoList.length; i < len; i++) {\n if (index === infoList[i].index) {\n infoList.splice(i, 1);\n if (typeof uploadEventHandler === 'function') uploadEventHandler(null, index, 'delete', null, 0, this);\n return;\n }\n }\n }\n },\n\n /**\n * @description Reset info object and \"_infoList = []\", \"_infoIndex = 0\"\n * @param {String} pluginName Plugin name \n * @param {Function|null} uploadEventHandler Event handler to process updated file info (created in setInfo)\n */\n resetInfo: function (pluginName, uploadEventHandler) {\n const context = this.context[pluginName];\n\n if (typeof uploadEventHandler === 'function') {\n const infoList = context._infoList;\n for (let i = 0, len = infoList.length; i < len; i++) {\n uploadEventHandler(null, infoList[i].index, 'delete', null, 0, this);\n }\n }\n\n context._infoList = [];\n context._infoIndex = 0;\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_MODULES) {\n Object.defineProperty(window, 'SUNEDITOR_MODULES', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_MODULES, 'fileManager', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: fileManager\n });\n }\n\n return fileManager;\n}));","\"use strict\";\nvar __assign = (this && this.__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};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar plugins_1 = __importDefault(require(\"suneditor/src/plugins\"));\nvar suneditor_1 = __importDefault(require(\"suneditor\"));\nvar getLanguage_1 = __importDefault(require(\"../lang/getLanguage\"));\nvar events_1 = require(\"../data/events\");\nvar SunEditor = function (props) {\n var name = props.name, lang = props.lang, _a = props.setOptions, setOptions = _a === void 0 ? {} : _a, placeholder = props.placeholder, _b = props.width, width = _b === void 0 ? \"100%\" : _b, height = props.height, defaultValue = props.defaultValue, setContents = props.setContents, setDefaultStyle = props.setDefaultStyle, getSunEditorInstance = props.getSunEditorInstance, appendContents = props.appendContents, _c = props.setAllPlugins, setAllPlugins = _c === void 0 ? true : _c, _d = props.disable, disable = _d === void 0 ? false : _d, _e = props.readOnly, readOnly = _e === void 0 ? false : _e, _f = props.hide, hide = _f === void 0 ? false : _f, _g = props.hideToolbar, hideToolbar = _g === void 0 ? false : _g, _h = props.disableToolbar, disableToolbar = _h === void 0 ? false : _h, onChange = props.onChange, autoFocus = props.autoFocus, onBlur = props.onBlur, onLoad = props.onLoad;\n var txtArea = (0, react_1.useRef)(null);\n var editor = (0, react_1.useRef)(null);\n var initialEffect = (0, react_1.useRef)(true);\n (0, react_1.useEffect)(function () {\n var _a;\n var options = __assign(__assign({}, setOptions), { lang: lang ? (0, getLanguage_1.default)(lang) : setOptions.lang, width: width !== null && width !== void 0 ? width : setOptions.width, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : setOptions.placeholder, plugins: (_a = setOptions.plugins) !== null && _a !== void 0 ? _a : (setAllPlugins ? plugins_1.default : undefined), height: height !== null && height !== void 0 ? height : setOptions.height, value: defaultValue !== null && defaultValue !== void 0 ? defaultValue : setOptions.value, defaultStyle: setDefaultStyle !== null && setDefaultStyle !== void 0 ? setDefaultStyle : setOptions.defaultStyle });\n if (name && options.value)\n txtArea.current.value = options.value;\n editor.current = suneditor_1.default.create(txtArea.current, options);\n if (getSunEditorInstance)\n getSunEditorInstance(editor.current);\n editor.current.onload = function (_, reload) {\n if (reload)\n return onLoad === null || onLoad === void 0 ? void 0 : onLoad(reload);\n if (setContents) {\n editor.current.setContents(setContents);\n editor.current.core.focusEdge(null);\n }\n if (appendContents)\n editor.current.appendContents(appendContents);\n if (editor.current.util.isIE)\n editor.current.core._createDefaultRange();\n if (disable)\n editor.current.disable();\n if (readOnly)\n editor.current.readOnly(true);\n if (hide)\n editor.current.hide();\n if (hideToolbar)\n editor.current.toolbar.hide();\n if (disableToolbar)\n editor.current.toolbar.disable();\n if (autoFocus === false)\n editor.current.core.context.element.wysiwyg.blur();\n else if (autoFocus)\n editor.current.core.context.element.wysiwyg.focus();\n return onLoad === null || onLoad === void 0 ? void 0 : onLoad(reload);\n };\n editor.current.onChange = function (content) {\n if (name && txtArea.current)\n txtArea.current.value = content;\n if (onChange)\n onChange(content);\n };\n if (onBlur) {\n editor.current.onBlur = function (e) {\n return onBlur(e, editor.current.getContents(true));\n };\n }\n events_1.uploadBeforeEvents.forEach(function (event) {\n var value = props[event];\n if (editor.current && value)\n editor.current[event] = function (files, info, _, uploadHandler) { return value(files, info, uploadHandler); };\n });\n events_1.events.forEach(function (event) {\n var value = props[event];\n if (value && editor.current) {\n editor.current[event] = value;\n }\n });\n return function () {\n if (editor.current)\n editor.current.destroy();\n editor.current = null;\n };\n }, []);\n (0, react_1.useEffect)(function () {\n var _a;\n if (initialEffect.current)\n return;\n (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setOptions({\n lang: (0, getLanguage_1.default)(lang),\n });\n }, [lang]);\n (0, react_1.useEffect)(function () {\n var _a;\n if (initialEffect.current)\n return;\n (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setOptions({\n placeholder: placeholder,\n height: height,\n width: width,\n });\n }, [placeholder, height, width]);\n (0, react_1.useEffect)(function () {\n var _a;\n if (setDefaultStyle && !initialEffect.current)\n (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setDefaultStyle(setDefaultStyle);\n }, [setDefaultStyle]);\n (0, react_1.useEffect)(function () {\n var _a, _b;\n if (!initialEffect.current &&\n setContents !== undefined &&\n !((_a = editor.current) === null || _a === void 0 ? void 0 : _a.core.hasFocus)) {\n (_b = editor.current) === null || _b === void 0 ? void 0 : _b.setContents(setContents);\n }\n }, [setContents]);\n (0, react_1.useEffect)(function () {\n var _a, _b, _c;\n if (!initialEffect.current &&\n appendContents !== undefined &&\n !((_a = editor.current) === null || _a === void 0 ? void 0 : _a.core.hasFocus)) {\n (_b = editor.current) === null || _b === void 0 ? void 0 : _b.appendContents(appendContents);\n (_c = editor.current) === null || _c === void 0 ? void 0 : _c.core.focusEdge(null);\n }\n }, [appendContents]);\n (0, react_1.useEffect)(function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (initialEffect.current)\n return;\n (_a = editor.current) === null || _a === void 0 ? void 0 : _a.readOnly(readOnly);\n if (hideToolbar)\n (_b = editor.current) === null || _b === void 0 ? void 0 : _b.toolbar.hide();\n else\n (_c = editor.current) === null || _c === void 0 ? void 0 : _c.toolbar.show();\n if (disableToolbar)\n (_d = editor.current) === null || _d === void 0 ? void 0 : _d.toolbar.disable();\n else\n (_e = editor.current) === null || _e === void 0 ? void 0 : _e.toolbar.enable();\n if (disable)\n (_f = editor.current) === null || _f === void 0 ? void 0 : _f.disable();\n else\n (_g = editor.current) === null || _g === void 0 ? void 0 : _g.enable();\n if (hide)\n (_h = editor.current) === null || _h === void 0 ? void 0 : _h.hide();\n else\n (_j = editor.current) === null || _j === void 0 ? void 0 : _j.show();\n }, [disable, hideToolbar, disableToolbar, hide, readOnly]);\n (0, react_1.useEffect)(function () {\n initialEffect.current = false;\n }, []);\n return (react_1.default.createElement(\"textarea\", __assign({ style: { visibility: \"hidden\" }, ref: txtArea }, { name: name })));\n};\nexports.default = SunEditor;\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'ro',\n toolbar: {\n default: 'Default',\n save: 'Salvează',\n font: 'Font',\n formats: 'Format',\n fontSize: 'Dimensiune',\n bold: 'Îngroșat',\n underline: 'Subliniat',\n italic: 'Înclinat',\n strike: 'Tăiat',\n subscript: 'Subscript',\n superscript: 'Superscript',\n removeFormat: 'Șterge formatare',\n fontColor: 'Culoare font',\n hiliteColor: 'Culoare de evidențiere',\n indent: 'Indentează',\n outdent: 'Fără indentare',\n align: 'Aliniere',\n alignLeft: 'Aliniere la stânga',\n alignRight: 'Aliniere la dreapta',\n alignCenter: 'Aliniere la centru',\n alignJustify: 'Aliniere stânga - dreapta',\n list: 'Listă',\n orderList: 'Listă ordonată',\n unorderList: 'Listă neordonată',\n horizontalRule: 'Linie orizontală',\n hr_solid: 'Solid',\n hr_dotted: 'Punctat',\n hr_dashed: 'Punctate',\n table: 'Tabel',\n link: 'Link',\n math: 'Matematică',\n image: 'Imagine',\n video: 'Video',\n audio: 'Audio',\n fullScreen: 'Tot ecranul',\n showBlocks: 'Arată blocuri',\n codeView: 'Vizualizare cod',\n undo: 'Anulează',\n redo: 'Refă',\n preview: 'Previzualizare',\n print: 'printează',\n tag_p: 'Paragraf',\n tag_div: 'Normal (DIV)',\n tag_h: 'Antet',\n tag_blockquote: 'Quote',\n tag_pre: 'Citat',\n template: 'Template',\n lineHeight: 'Înălțime linie',\n paragraphStyle: 'Stil paragraf',\n textStyle: 'Stil text',\n imageGallery: 'Galerie de imagini',\n dir_ltr: 'De la stânga la dreapta',\n dir_rtl: 'De la dreapta la stanga',\n mention: 'Mentiune'\n },\n dialogBox: {\n linkBox: {\n title: 'Inserează Link',\n url: 'Adresă link',\n text: 'Text de afișat',\n newWindowCheck: 'Deschide în fereastră nouă',\n downloadLinkCheck: 'Link de descărcare',\n bookmark: 'Marcaj'\n },\n mathBox: {\n title: 'Matematică',\n inputLabel: 'Notație matematică',\n fontSizeLabel: 'Dimensiune font',\n previewLabel: 'Previzualizare'\n },\n imageBox: {\n title: 'Inserează imagine',\n file: 'Selectează',\n url: 'URL imagine',\n altText: 'text alternativ'\n },\n videoBox: {\n title: 'Inserează video',\n file: 'Selectează',\n url: 'Include URL, youtube/vimeo'\n },\n audioBox: {\n title: 'Inserează Audio',\n file: 'Selectează',\n url: 'URL Audio'\n },\n browser: {\n tags: 'Etichete',\n search: 'Căutareim',\n },\n caption: 'Inserează descriere',\n close: 'Închide',\n submitButton: 'Salvează',\n revertButton: 'Revenire',\n proportion: 'Constrânge proporțiile',\n basic: 'De bază',\n left: 'Stânga',\n right: 'Dreapta',\n center: 'Centru',\n width: 'Lățime',\n height: 'Înălțime',\n size: 'Dimensiune',\n ratio: 'Ratie'\n },\n controller: {\n edit: 'Editează',\n unlink: 'Scoate link',\n remove: 'Elimină',\n insertRowAbove: 'Inserează rând deasupra',\n insertRowBelow: 'Inserează rând dedesupt',\n deleteRow: 'Șterge linie',\n insertColumnBefore: 'Inserează coloană înainte',\n insertColumnAfter: 'Inserează coloană după',\n deleteColumn: 'Șterge coloană',\n fixedColumnWidth: 'Lățime fixă coloană',\n resize100: 'Redimensionare 100%',\n resize75: 'Redimensionare 75%',\n resize50: 'Redimensionare 50%',\n resize25: 'Redimensionare 25%',\n autoSize: 'Dimensiune automată',\n mirrorHorizontal: 'Oglindă, orizontal',\n mirrorVertical: 'Oglindă, vertical',\n rotateLeft: 'Rotește la stânga',\n rotateRight: 'Rotește la dreapta',\n maxSize: 'Dimensiune maximă',\n minSize: 'Dimensiune minimă',\n tableHeader: 'Antet tabel',\n mergeCells: 'Îmbină celule',\n splitCells: 'Divizează celule',\n HorizontalSplit: 'Despicare orizontală',\n VerticalSplit: 'Despicare verticală'\n },\n menu: {\n spaced: 'Spațiat',\n bordered: 'Mărginit',\n neon: 'Neon',\n translucent: 'Translucent',\n shadow: 'Umbră',\n code: 'Citat'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'ro', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'he',\n toolbar: {\n default: 'ברירת מחדל',\n save: 'שמור',\n font: 'גופן',\n formats: 'עיצוב',\n fontSize: 'גודל',\n bold: 'מודגש',\n underline: 'קו תחתון',\n italic: 'נטוי',\n strike: 'קו חוצה',\n subscript: 'עילי',\n superscript: 'תחתי',\n removeFormat: 'הסר עיצוב',\n fontColor: 'צבע גופן',\n hiliteColor: 'צבע קו תחתון',\n indent: 'הגדל כניסה',\n outdent: 'הקטן כניסה',\n align: 'יישור',\n alignLeft: 'יישר לשמאל',\n alignRight: 'יישר לימין',\n alignCenter: 'מרכז',\n alignJustify: 'יישר לשני הצדדים',\n list: 'רשימה',\n orderList: 'מספור',\n unorderList: 'תבליטים',\n horizontalRule: 'קו אופקי',\n hr_solid: 'קו',\n hr_dotted: 'נקודות',\n hr_dashed: 'מקפים',\n table: 'טבלה',\n link: 'קישור',\n math: 'מתמטיקה',\n image: 'תמונה',\n video: 'חוזי',\n audio: 'שמע',\n fullScreen: 'מסך מלא',\n showBlocks: 'הצג גושים',\n codeView: 'הצג קוד',\n undo: 'בטל',\n redo: 'חזור',\n preview: 'תצוגה מקדימה',\n print: 'הדפס',\n tag_p: 'פסקה',\n tag_div: 'רגילה (DIV)',\n tag_h: 'כותרת',\n tag_blockquote: 'ציטוט',\n tag_pre: 'קוד',\n template: 'תבנית',\n lineHeight: 'גובה השורה',\n paragraphStyle: 'סגנון פסקה',\n textStyle: 'סגנון גופן',\n imageGallery: 'גלרית תמונות',\n dir_ltr: 'משמאל לימין',\n dir_rtl: 'מימין לשמאל',\n mention: 'הזכר'\n },\n dialogBox: {\n linkBox: {\n title: 'הכנס קשור',\n url: 'כתובת קשור',\n text: 'תיאור',\n newWindowCheck: 'פתח בחלון חדש',\n downloadLinkCheck: 'קישור להורדה',\n bookmark: 'סמניה'\n },\n mathBox: {\n title: 'נוסחה',\n inputLabel: 'סימנים מתמטים',\n fontSizeLabel: 'גודל גופן',\n previewLabel: 'תצוגה מקדימה'\n },\n imageBox: {\n title: 'הכנס תמונה',\n file: 'בחר מקובץ',\n url: 'כתובת URL תמונה',\n altText: 'תיאור (תגית alt)'\n },\n videoBox: {\n title: 'הכנס סרטון',\n file: 'בחר מקובץ',\n url: 'כתובת הטמעה YouTube/Vimeo'\n },\n audioBox: {\n title: 'הכנס שמע',\n file: 'בחר מקובץ',\n url: 'כתובת URL שמע'\n },\n browser: {\n tags: 'תג',\n search: 'חפש',\n },\n caption: 'הכנס תיאור',\n close: 'סגור',\n submitButton: 'שלח',\n revertButton: 'בטל',\n proportion: 'שמר יחס',\n basic: 'בסיסי',\n left: 'שמאל',\n right: 'ימין',\n center: 'מרכז',\n width: 'רוחב',\n height: 'גובה',\n size: 'גודל',\n ratio: 'יחס'\n },\n controller: {\n edit: 'ערוך',\n unlink: 'הסר קישורים',\n remove: 'הסר',\n insertRowAbove: 'הכנס שורה מעל',\n insertRowBelow: 'הכנס שורה מתחת',\n deleteRow: 'מחק שורה',\n insertColumnBefore: 'הכנס עמודה לפני',\n insertColumnAfter: 'הכנס עמודה אחרי',\n deleteColumn: 'מחק עמודה',\n fixedColumnWidth: 'קבע רוחב עמודות',\n resize100: 'ללא הקטנה',\n resize75: 'הקטן 75%',\n resize50: 'הקטן 50%',\n resize25: 'הקטן 25%',\n autoSize: 'הקטן אוטומטית',\n mirrorHorizontal: 'הפוך לרוחב',\n mirrorVertical: 'הפוך לגובה',\n rotateLeft: 'סובב שמאלה',\n rotateRight: 'סובב ימינה',\n maxSize: 'גודל מרבי',\n minSize: 'גודל מזערי',\n tableHeader: 'כותרת טבלה',\n mergeCells: 'מזג תאים',\n splitCells: 'פצל תא',\n HorizontalSplit: 'פצל לגובה',\n VerticalSplit: 'פצל לרוחב'\n },\n menu: {\n spaced: 'מרווח',\n bordered: 'בעל מיתאר',\n neon: 'זוהר',\n translucent: 'שקוף למחצה',\n shadow: 'צל',\n code: 'קוד'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'he', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'ckb',\n toolbar: {\n default: 'بنه‌ڕه‌ت',\n save: 'پاشه‌كه‌وتكردن',\n font: 'فۆنت',\n formats: 'Formats',\n fontSize: 'قه‌باره‌',\n bold: 'تۆخكردن',\n underline: 'هێڵ به‌ژێردا بێنه‌',\n italic: 'لار',\n strike: 'هێڵ به‌ناودا بێنه‌',\n subscript: 'ژێرسکریپت',\n superscript: 'سەرنووس',\n removeFormat: 'لابردنی فۆرمات',\n fontColor: 'ره‌نگی فۆنت',\n hiliteColor: 'ره‌نگی دیاركراو',\n indent: 'بۆشایی بەجێهێشتن',\n outdent: 'لابردنی بۆشایی',\n align: 'ئاراسته‌',\n alignLeft: 'لای چه‌پ',\n alignRight: 'لای راست',\n alignCenter: 'ناوه‌ند',\n alignJustify: 'به‌رێكی دابه‌ش بكه‌',\n list: 'لیست',\n orderList: 'لیستی ریزكراو',\n unorderList: 'لیستی ریزنه‌كراو',\n horizontalRule: 'هێڵی ئاسۆیی',\n hr_solid: 'پته‌و',\n hr_dotted: 'نوكته‌ نوكته‌',\n hr_dashed: 'داش داش',\n table: 'خشته‌',\n link: 'به‌سته‌ر',\n math: 'بیركاری',\n image: 'وێنه‌',\n video: 'ڤیدیۆ',\n audio: 'ده‌نگ',\n fullScreen: 'پڕ به‌ شاشه‌',\n showBlocks: 'بڵۆك نیشانبده',\n codeView: 'بینینی كۆده‌كان',\n undo: 'وەک خۆی لێ بکەوە',\n redo: 'هەڵگەڕاندنەوە',\n preview: 'پێشبینین',\n print: 'پرینت',\n tag_p: 'په‌ره‌گراف',\n tag_div: 'ی ئاسایی (DIV)',\n tag_h: 'سەرپەڕە',\n tag_blockquote: 'ده‌ق',\n tag_pre: 'كۆد',\n template: 'قاڵب',\n lineHeight: 'بڵندی دێر',\n paragraphStyle: 'ستایلی په‌ره‌گراف',\n textStyle: 'ستایلی نوسین',\n imageGallery: 'گاله‌ری وێنه‌كان',\n dir_ltr: 'من اليسار إلى اليمين',\n dir_rtl: 'من اليمين الى اليسار',\n mention: 'تنويه ب'\n },\n dialogBox: {\n linkBox: {\n title: 'به‌سته‌ر دابنێ',\n url: 'به‌سته‌ر',\n text: 'تێكستی به‌سته‌ر',\n newWindowCheck: 'له‌ په‌نجه‌ره‌یه‌كی نوێ بكه‌ره‌وه‌',\n downloadLinkCheck: 'رابط التحميل',\n bookmark: 'المرجعية'\n },\n mathBox: {\n title: 'بیركاری',\n inputLabel: 'نیشانه‌كانی بیركاری',\n fontSizeLabel: 'قه‌باره‌ی فۆنت',\n previewLabel: 'پێشبینین'\n },\n imageBox: {\n title: 'وێنه‌یه‌ك دابنێ',\n file: 'فایلێك هه‌ڵبژێره‌',\n url: 'به‌سته‌ری وێنه‌',\n altText: 'نوسینی جێگره‌وه‌'\n },\n videoBox: {\n title: 'ڤیدیۆیه‌ك دابنێ',\n file: 'فایلێك هه‌ڵبژێره‌',\n url: 'YouTube/Vimeo به‌سته‌ری له‌ناودانان وه‌ك '\n },\n audioBox: {\n title: 'ده‌نگێك دابنێ',\n file: 'فایلێك هه‌ڵبژێره‌',\n url: 'به‌سته‌ری ده‌نگ'\n },\n browser: {\n tags: 'تاگه‌كان',\n search: 'گه‌ران',\n },\n caption: 'پێناسه‌یه‌ك دابنێ',\n close: 'داخستن',\n submitButton: 'ناردن',\n revertButton: 'بیگەڕێنەوە سەر باری سەرەتایی',\n proportion: 'رێژه‌كان وه‌ك خۆی بهێڵه‌وه‌',\n basic: 'سه‌ره‌تایی',\n left: 'چه‌پ',\n right: 'راست',\n center: 'ناوەڕاست',\n width: 'پانی',\n height: 'به‌رزی',\n size: 'قه‌باره‌',\n ratio: 'رێژه‌'\n },\n controller: {\n edit: 'دەسکاریکردن',\n unlink: 'سڕینەوەی بەستەر',\n remove: 'سڕینه‌وه‌',\n insertRowAbove: 'ریزك له‌ سه‌ره‌وه‌ زیادبكه‌',\n insertRowBelow: 'ریزێك له‌ خواره‌وه‌ زیادبكه‌',\n deleteRow: 'ریز بسره‌وه‌',\n insertColumnBefore: 'ستونێك له‌ پێشه‌وه‌ زیادبكه‌',\n insertColumnAfter: 'ستونێك له‌ دواوه‌ زیادبكه‌',\n deleteColumn: 'ستونێك بسره‌وه‌',\n fixedColumnWidth: 'پانی ستون نه‌گۆربكه‌',\n resize100: 'قه‌باره‌ بگۆره‌ بۆ ١٠٠%',\n resize75: 'قه‌باره‌ بگۆره‌ بۆ ٧٥%',\n resize50: 'قه‌باره‌ بگۆره‌ بۆ ٥٠%',\n resize25: 'قه‌باره‌ بگۆره‌ بۆ ٢٥%',\n autoSize: 'قه‌باره‌ی خۆكارانه‌',\n mirrorHorizontal: 'هه‌ڵگه‌رێنه‌وه‌ به‌ده‌وری ته‌وه‌ره‌ی ئاسۆیی',\n mirrorVertical: 'هه‌ڵگه‌رێنه‌وه‌ به‌ده‌وری ته‌وه‌ره‌ی ستونی',\n rotateLeft: 'بسوڕێنه‌ به‌لای چه‌پدا',\n rotateRight: 'بسورێنه‌ به‌لای راستدا',\n maxSize: 'گه‌وره‌ترین قه‌باره‌',\n minSize: 'بچوكترین قه‌باره‌',\n tableHeader: 'سه‌ردێری خشته‌ك',\n mergeCells: 'خانه‌كان تێكه‌ڵبكه‌',\n splitCells: 'خانه‌كان لێك جیابكه‌وه‌',\n HorizontalSplit: 'جیاكردنه‌وه‌ی ئاسۆیی',\n VerticalSplit: 'جیاكردنه‌وه‌ی ستونی'\n },\n menu: {\n spaced: 'بۆشای هه‌بێت',\n bordered: 'لێواری هه‌بێت',\n neon: 'نیۆن',\n translucent: 'كه‌مێك وه‌ك شووشه‌',\n shadow: 'سێبه‌ر',\n code: 'كۆد'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'ckb', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'hu',\n toolbar: {\n default: 'Alapértelmezett',\n save: 'Mentés',\n font: 'Betűtípus',\n formats: 'Formázás',\n fontSize: 'Betűméret',\n bold: 'Félkövér',\n underline: 'Aláhúzott',\n italic: 'Dőlt',\n strike: 'Áthúzott',\n subscript: 'Alsó index',\n superscript: 'Felső index',\n removeFormat: 'Formázás törlése',\n fontColor: 'Betűszín',\n hiliteColor: 'Háttérszín',\n indent: 'Behúzás növelése',\n outdent: 'Behúzás csökkentése',\n align: 'Igazítás',\n alignLeft: 'Balra igazítás',\n alignRight: 'Jobbra igazítás',\n alignCenter: 'Középre igazítás',\n alignJustify: 'Sorkizárt',\n list: 'Lista',\n orderList: 'Számozott lista',\n unorderList: 'Számozatlan lista',\n horizontalRule: 'Elválasztó',\n hr_solid: 'Folytonos',\n hr_dotted: 'Pontozott',\n hr_dashed: 'Szaggatott',\n table: 'Táblázat',\n link: 'Hivatkozás',\n math: 'Matematika',\n image: 'Kép',\n video: 'Videó',\n audio: 'Hang',\n fullScreen: 'Teljes képernyő',\n showBlocks: 'Blokkok megjelenítése',\n codeView: 'Forráskód nézet',\n undo: 'Visszavonás',\n redo: 'Visszavonás visszavonása',\n preview: 'Előnézet',\n print: 'Nyomtatás',\n tag_p: 'Bekezdés',\n tag_div: 'Normál (DIV)',\n tag_h: 'Fejléc',\n tag_blockquote: 'Idézet',\n tag_pre: 'Kód',\n template: 'Minta',\n lineHeight: 'Sormagasság',\n paragraphStyle: 'Bekezdésstílus',\n textStyle: 'Karakterstílus',\n imageGallery: 'Képgalléria',\n dir_ltr: 'Balról jobbra',\n dir_rtl: 'Jobbról balra',\n mention: 'Említés'\n },\n dialogBox: {\n linkBox: {\n title: 'Link beszúrása',\n url: 'URL',\n text: 'Megjelenített szöveg',\n newWindowCheck: 'Megnyitás új ablakban',\n downloadLinkCheck: 'Letöltési hivatkozás',\n bookmark: 'Könyvjelző'\n },\n mathBox: {\n title: 'Matematika',\n inputLabel: 'Matematikai jelölések',\n fontSizeLabel: 'Betűméret',\n previewLabel: 'Előnézet'\n },\n imageBox: {\n title: 'Kép beszúrása',\n file: 'Fájlfeltöltés',\n url: 'Képhivatkozás',\n altText: 'Alternatív szöveg'\n },\n videoBox: {\n title: 'Videó beszúrása',\n file: 'Fájlfeltöltés',\n url: 'Beágyazható URL, YouTube/Vimeo'\n },\n audioBox: {\n title: 'Hang beszúrása',\n file: 'Fájlfeltöltés',\n url: 'Hang URL'\n },\n browser: {\n tags: 'Címkék',\n search: 'Keresés',\n },\n caption: 'Képaláírás',\n close: 'Bezárás',\n submitButton: 'Küldés',\n revertButton: 'Mégse',\n proportion: 'Méretkorlátok',\n basic: 'Alapszintű',\n left: 'Balra',\n right: 'Jobbra',\n center: 'Középre',\n width: 'Szélesség',\n height: 'Magasság',\n size: 'Méret',\n ratio: 'Képarány'\n },\n controller: {\n edit: 'Szerkesztés',\n unlink: 'Link eltávolítása',\n remove: 'Törlés',\n insertRowAbove: 'Új sor fölötte',\n insertRowBelow: 'Új sor alatta',\n deleteRow: 'Sor törlése',\n insertColumnBefore: 'Új oszlop balra',\n insertColumnAfter: 'Új oszlop jobbra',\n deleteColumn: 'Oszlop törlése',\n fixedColumnWidth: 'Rögzített oszlopszélesség',\n resize100: 'Átméretezés: 100%',\n resize75: 'Átméretezés: 75%',\n resize50: 'Átméretezés: 50%',\n resize25: 'Átméretezés: 25%',\n autoSize: 'Automatikus méret',\n mirrorHorizontal: 'Vízszintes tükrözés',\n mirrorVertical: 'Függőleges tükrözés',\n rotateLeft: 'Forgatás balra',\n rotateRight: 'Forgatás jobbra',\n maxSize: 'Maximális méret',\n minSize: 'Minimális méret',\n tableHeader: 'Táblázatfejléc',\n mergeCells: 'Cellák egyesítése',\n splitCells: 'Cellák szétválasztása',\n HorizontalSplit: 'Szétválasztás vízszintesen',\n VerticalSplit: 'Szétválasztás függőlegesen'\n },\n menu: {\n spaced: 'Ritkított',\n bordered: 'Keretezett',\n neon: 'Neon',\n translucent: 'Áttetsző',\n shadow: 'Árnyék',\n code: 'Kód'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'hu', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1' +\n '' + icons['align_' + item] + '' + text +\n '' +\n '';\n }\n\n listDiv.className = 'se-submenu se-list-layer se-list-align';\n listDiv.innerHTML = '' +\n '
' +\n '
    ' +\n html +\n '
' +\n '
';\n\n return listDiv;\n },\n\n /**\n * @Override core\n */\n active: function (element) {\n const alignContext = this.context.align;\n const targetButton = alignContext.targetButton;\n const target = targetButton.firstElementChild;\n\n if (!element) {\n this.util.changeElement(target, alignContext.icons[alignContext.defaultDir]);\n targetButton.removeAttribute('data-focus');\n } else if (this.util.isFormatElement(element)) {\n const textAlign = element.style.textAlign;\n if (textAlign) {\n this.util.changeElement(target, alignContext.icons[textAlign] || alignContext.icons[alignContext.defaultDir]);\n targetButton.setAttribute('data-focus', textAlign);\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const alignContext = this.context.align;\n const alignList = alignContext._alignList;\n const currentAlign = alignContext.targetButton.getAttribute('data-focus') || alignContext.defaultDir;\n\n if (currentAlign !== alignContext.currentAlign) {\n for (let i = 0, len = alignList.length; i < len; i++) {\n if (currentAlign === alignList[i].getAttribute('data-value')) {\n this.util.addClass(alignList[i], 'active');\n } else {\n this.util.removeClass(alignList[i], 'active');\n }\n }\n\n alignContext.currentAlign = currentAlign;\n }\n },\n\n exchangeDir: function () {\n const dir = this.options.rtl ? 'right' : 'left';\n if (!this.context.align || this.context.align.defaultDir === dir) return;\n\n this.context.align.defaultDir = dir;\n let menu = this.context.align._itemMenu;\n let leftBtn = menu.querySelector('[data-value=\"left\"]');\n let rightBtn = menu.querySelector('[data-value=\"right\"]');\n if (leftBtn && rightBtn) {\n const lp = leftBtn.parentElement;\n const rp = rightBtn.parentElement;\n lp.appendChild(rightBtn);\n rp.appendChild(leftBtn);\n }\n },\n\n pickup: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n let target = e.target;\n let value = null;\n\n while (!value && !/UL/i.test(target.tagName)) {\n value = target.getAttribute('data-value');\n target = target.parentNode;\n }\n\n if (!value) return;\n\n const defaultDir = this.context.align.defaultDir;\n const selectedFormsts = this.getSelectedElements();\n for (let i = 0, len = selectedFormsts.length; i < len; i++) {\n this.util.setStyle(selectedFormsts[i], 'textAlign', (value === defaultDir ? '' : value));\n }\n\n this.effectNode = null;\n this.submenuOff();\n this.focus();\n \n // history stack\n this.history.push(false);\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'font',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.font = {\n targetText: targetElement.querySelector('.txt'),\n targetTooltip: targetElement.parentNode.querySelector('.se-tooltip-text'),\n _fontList: null,\n currentFont: ''\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n\n /** add event listeners */\n listDiv.querySelector('.se-list-inner').addEventListener('click', this.pickup.bind(core));\n\n context.font._fontList = listDiv.querySelectorAll('ul li button');\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null;\n },\n\n setSubmenu: function (core) {\n const lang = core.lang;\n const listDiv = core.util.createElement('DIV');\n\n listDiv.className = 'se-submenu se-list-layer se-list-font-family';\n\n let font, text, i, len;\n let fontList = core.options.font;\n\n let list = '
' +\n '
    ' +\n '
  • ';\n for (i = 0, len = fontList.length; i < len; i++) {\n font = fontList[i];\n text = font.split(',')[0];\n list += '
  • ';\n }\n list += '
';\n listDiv.innerHTML = list;\n\n return listDiv;\n },\n\n /**\n * @Override core\n */\n active: function (element) {\n const target = this.context.font.targetText;\n const tooltip = this.context.font.targetTooltip;\n\n if (!element) {\n const font = this.hasFocus ? this.wwComputedStyle.fontFamily : this.lang.toolbar.font;\n this.util.changeTxt(target, font);\n this.util.changeTxt(tooltip, this.hasFocus ? this.lang.toolbar.font + (font ? ' (' + font + ')' : '') : font);\n } else if (element.style && element.style.fontFamily.length > 0) {\n const selectFont = element.style.fontFamily.replace(/[\"']/g,'');\n this.util.changeTxt(target, selectFont);\n this.util.changeTxt(tooltip, this.lang.toolbar.font + ' (' + selectFont + ')');\n return true;\n }\n\n return false;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const fontContext = this.context.font;\n const fontList = fontContext._fontList;\n const currentFont = fontContext.targetText.textContent;\n\n if (currentFont !== fontContext.currentFont) {\n for (let i = 0, len = fontList.length; i < len; i++) {\n if (currentFont === (fontList[i].getAttribute('data-value') || '').replace(/'|\"/g, '')) {\n this.util.addClass(fontList[i], 'active');\n } else {\n this.util.removeClass(fontList[i], 'active');\n }\n }\n\n fontContext.currentFont = currentFont;\n }\n },\n\n pickup: function (e) {\n if (!/^BUTTON$/i.test(e.target.tagName)) return false;\n\n e.preventDefault();\n e.stopPropagation();\n\n let value = e.target.getAttribute('data-value');\n\n if (value) {\n const newNode = this.util.createElement('SPAN');\n if (/[\\s\\d\\W]/.test(value) && !/^['\"].*['\"]$/.test(value)) {\n value = '\"' + value + '\"';\n }\n newNode.style.fontFamily = value;\n this.nodeChange(newNode, ['font-family'], null, null);\n } else {\n this.nodeChange(null, ['font-family'], ['span'], true);\n }\n \n this.submenuOff();\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'fontSize',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.fontSize = {\n targetText: targetElement.querySelector('.txt'),\n _sizeList: null,\n currentSize: ''\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n let listUl = listDiv.querySelector('ul');\n\n /** add event listeners */\n listUl.addEventListener('click', this.pickup.bind(core));\n context.fontSize._sizeList = listUl.querySelectorAll('li button');\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null, listUl = null;\n },\n\n setSubmenu: function (core) {\n const option = core.options;\n const lang = core.lang;\n const listDiv = core.util.createElement('DIV');\n\n listDiv.className = 'se-submenu se-list-layer se-list-font-size';\n\n const sizeList = !option.fontSize ? [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72] : option.fontSize;\n\n let list = '
' +\n '
    ' +\n '
  • ';\n for (let i = 0, unit = option.fontSizeUnit, len = sizeList.length, size; i < len; i++) {\n size = sizeList[i];\n list += '
  • ';\n }\n list += '
';\n\n listDiv.innerHTML = list;\n\n return listDiv;\n },\n\n /**\n * @Override core\n */\n active: function (element) {\n if (!element) {\n this.util.changeTxt(this.context.fontSize.targetText, this.hasFocus ? this._convertFontSize.call(this, this.options.fontSizeUnit, this.wwComputedStyle.fontSize) : this.lang.toolbar.fontSize);\n } else if (element.style && element.style.fontSize.length > 0) {\n this.util.changeTxt(this.context.fontSize.targetText, this._convertFontSize.call(this, this.options.fontSizeUnit, element.style.fontSize));\n return true;\n }\n\n return false;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const fontSizeContext = this.context.fontSize;\n const sizeList = fontSizeContext._sizeList;\n const currentSize = fontSizeContext.targetText.textContent;\n\n if (currentSize !== fontSizeContext.currentSize) {\n for (let i = 0, len = sizeList.length; i < len; i++) {\n if (currentSize === sizeList[i].getAttribute('data-value')) {\n this.util.addClass(sizeList[i], 'active');\n } else {\n this.util.removeClass(sizeList[i], 'active');\n }\n }\n\n fontSizeContext.currentSize = currentSize;\n }\n },\n\n pickup: function (e) {\n if (!/^BUTTON$/i.test(e.target.tagName)) return false;\n \n e.preventDefault();\n e.stopPropagation();\n\n const value = e.target.getAttribute('data-value');\n\n if (value) {\n const newNode = this.util.createElement('SPAN');\n newNode.style.fontSize = value;\n this.nodeChange(newNode, ['font-size'], null, null);\n } else {\n this.nodeChange(null, ['font-size'], ['span'], true);\n }\n\n this.submenuOff();\n }\n};\n","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2018 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\nexport default {\r\n name: 'colorPicker',\r\n /**\r\n * @description Constructor\r\n * @param {Object} core Core object \r\n */\r\n add: function (core) {\r\n const context = core.context;\r\n context.colorPicker = {\r\n colorListHTML: '',\r\n _colorInput: '',\r\n _defaultColor: '#000',\r\n _styleProperty: 'color',\r\n _currentColor: '',\r\n _colorList: []\r\n };\r\n\r\n /** set submenu */\r\n context.colorPicker.colorListHTML = this.createColorList(core, this._makeColorList);\r\n },\r\n\r\n /**\r\n * @description Create color list\r\n * @param {Object} core Core object \r\n * @param {Function} makeColor this._makeColorList\r\n * @returns {String} HTML string\r\n */\r\n createColorList: function (core, makeColor) {\r\n const option = core.options;\r\n const lang = core.lang;\r\n const colorList = !option.colorList || option.colorList.length === 0 ?\r\n [\r\n '#ff0000', '#ff5e00', '#ffe400', '#abf200', '#00d8ff', '#0055ff', '#6600ff', '#ff00dd', '#000000',\r\n '#ffd8d8', '#fae0d4', '#faf4c0', '#e4f7ba', '#d4f4fa', '#d9e5ff', '#e8d9ff', '#ffd9fa', '#f1f1f1',\r\n '#ffa7a7', '#ffc19e', '#faed7d', '#cef279', '#b2ebf4', '#b2ccff', '#d1b2ff', '#ffb2f5', '#bdbdbd',\r\n '#f15f5f', '#f29661', '#e5d85c', '#bce55c', '#5cd1e5', '#6699ff', '#a366ff', '#f261df', '#8c8c8c',\r\n '#980000', '#993800', '#998a00', '#6b9900', '#008299', '#003399', '#3d0099', '#990085', '#353535',\r\n '#670000', '#662500', '#665c00', '#476600', '#005766', '#002266', '#290066', '#660058', '#222222'\r\n ] : option.colorList;\r\n\r\n let colorArr = [];\r\n let list = '
';\r\n for (let i = 0, len = colorList.length, color; i < len; i++) {\r\n color = colorList[i];\r\n if (!color) continue;\r\n \r\n if (typeof color === 'string') {\r\n colorArr.push(color);\r\n if (i < len - 1) continue;\r\n }\r\n if (colorArr.length > 0) {\r\n list += '
' + makeColor(colorArr) + '
';\r\n colorArr = [];\r\n }\r\n if (typeof color === 'object') {\r\n list += '
' + makeColor(color) + '
';\r\n }\r\n }\r\n list += '' +\r\n '
' +\r\n '' +\r\n '' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n return list;\r\n },\r\n\r\n /**\r\n * @description Internal function used by this.createColorList\r\n * @param {Array} colorList Color list\r\n * @private\r\n */\r\n _makeColorList: function (colorList) {\r\n let list = '';\r\n\r\n list += '
    ';\r\n for (let i = 0, len = colorList.length, color; i < len; i++) {\r\n color = colorList[i];\r\n if (typeof color === 'string') {\r\n list += '
  • ' +\r\n '' +\r\n '
  • ';\r\n }\r\n }\r\n list += '
';\r\n\r\n return list;\r\n },\r\n \r\n /**\r\n * @description Displays or resets the currently selected color at color list.\r\n * @param {Node} node Current Selected node\r\n * @param {String|null} color Color value\r\n */\r\n init: function (node, color) {\r\n const colorPicker = this.plugins.colorPicker;\r\n let fillColor = color ? color : colorPicker.getColorInNode.call(this, node) || this.context.colorPicker._defaultColor;\r\n fillColor = colorPicker.isHexColor(fillColor) ? fillColor : colorPicker.rgb2hex(fillColor) || fillColor;\r\n\r\n const colorList = this.context.colorPicker._colorList;\r\n if (colorList) {\r\n for (let i = 0, len = colorList.length; i < len; i++) {\r\n if (fillColor.toLowerCase() === colorList[i].getAttribute('data-value').toLowerCase()) {\r\n this.util.addClass(colorList[i], 'active');\r\n } else {\r\n this.util.removeClass(colorList[i], 'active');\r\n }\r\n }\r\n }\r\n\r\n colorPicker.setInputText.call(this, colorPicker.colorName2hex.call(this, fillColor));\r\n },\r\n\r\n /**\r\n * @description Store color values\r\n * @param {String} hexColorStr Hax color value\r\n */\r\n setCurrentColor: function (hexColorStr) {\r\n this.context.colorPicker._currentColor = hexColorStr;\r\n this.context.colorPicker._colorInput.style.borderColor = hexColorStr;\r\n },\r\n\r\n /**\r\n * @description Set color at input element\r\n * @param {String} hexColorStr Hax color value\r\n */\r\n setInputText: function (hexColorStr) {\r\n hexColorStr = /^#/.test(hexColorStr) ? hexColorStr : '#' + hexColorStr;\r\n this.context.colorPicker._colorInput.value = hexColorStr;\r\n this.plugins.colorPicker.setCurrentColor.call(this, hexColorStr);\r\n },\r\n\r\n /**\r\n * @description Gets color value at color property of node\r\n * @param {Node} node Selected node \r\n * @returns {String}\r\n */\r\n getColorInNode: function (node) {\r\n let findColor = '';\r\n const styleProperty = this.context.colorPicker._styleProperty;\r\n\r\n while (node && !this.util.isWysiwygDiv(node) && findColor.length === 0) {\r\n if (node.nodeType === 1 && node.style[styleProperty]) findColor = node.style[styleProperty];\r\n node = node.parentNode;\r\n }\r\n\r\n return findColor;\r\n },\r\n\r\n /**\r\n * @description Function to check hex format color\r\n * @param {String} str Color value\r\n */\r\n isHexColor: function (str) {\r\n return /^#[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(str);\r\n },\r\n\r\n /**\r\n * @description Function to convert hex format to a rgb color\r\n * @param {String} rgb RGB color format\r\n * @returns {String}\r\n */\r\n rgb2hex: function (rgb) {\r\n const rgbMatch = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\r\n\r\n return (rgbMatch && rgbMatch.length === 4) ? \"#\" +\r\n (\"0\" + parseInt(rgbMatch[1],10).toString(16)).slice(-2) +\r\n (\"0\" + parseInt(rgbMatch[2],10).toString(16)).slice(-2) +\r\n (\"0\" + parseInt(rgbMatch[3],10).toString(16)).slice(-2) : '';\r\n },\r\n\r\n /**\r\n * @description Converts color values of other formats to hex color values and returns.\r\n * @param {String} colorName Color value\r\n * @returns {String}\r\n */\r\n colorName2hex: function (colorName) {\r\n if (/^#/.test(colorName)) return colorName;\r\n var temp = this.util.createElement('div');\r\n temp.style.display = 'none';\r\n temp.style.color = colorName;\r\n var colors = this._w.getComputedStyle(this._d.body.appendChild(temp)).color.match(/\\d+/g).map(function (a) { return parseInt(a,10); });\r\n this.util.removeItem(temp);\r\n return (colors.length >= 3) ? '#' + (((1 << 24) + (colors[0] << 16) + (colors[1] << 8) + colors[2]).toString(16).substr(1)) : false;\r\n }\r\n};","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2017 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\nimport colorPicker from '../modules/_colorPicker';\r\n\r\nexport default {\r\n name: 'fontColor',\r\n display: 'submenu',\r\n add: function (core, targetElement) {\r\n core.addModule([colorPicker]);\r\n\r\n const context = core.context;\r\n context.fontColor = {\r\n previewEl: null,\r\n colorInput: null,\r\n colorList: null\r\n };\r\n\r\n /** set submenu */\r\n let listDiv = this.setSubmenu(core);\r\n context.fontColor.colorInput = listDiv.querySelector('._se_color_picker_input');\r\n\r\n /** add event listeners */\r\n context.fontColor.colorInput.addEventListener('keyup', this.onChangeInput.bind(core));\r\n listDiv.querySelector('._se_color_picker_submit').addEventListener('click', this.submit.bind(core));\r\n listDiv.querySelector('._se_color_picker_remove').addEventListener('click', this.remove.bind(core));\r\n listDiv.addEventListener('click', this.pickup.bind(core));\r\n context.fontColor.colorList = listDiv.querySelectorAll('li button');\r\n\r\n /** append target button menu */\r\n core.initMenuTarget(this.name, targetElement, listDiv);\r\n\r\n /** empty memory */\r\n listDiv = null;\r\n },\r\n\r\n setSubmenu: function (core) {\r\n const colorArea = core.context.colorPicker.colorListHTML;\r\n const listDiv = core.util.createElement('DIV');\r\n\r\n listDiv.className = 'se-submenu se-list-layer';\r\n listDiv.innerHTML = colorArea;\r\n\r\n return listDiv;\r\n },\r\n\r\n /**\r\n * @Override submenu\r\n */\r\n on: function () {\r\n const contextPicker = this.context.colorPicker;\r\n const contextFontColor = this.context.fontColor;\r\n\r\n contextPicker._colorInput = contextFontColor.colorInput;\r\n const color = this.wwComputedStyle.color;\r\n contextPicker._defaultColor = color ? this.plugins.colorPicker.isHexColor(color) ? color : this.plugins.colorPicker.rgb2hex(color) : \"#333333\";\r\n contextPicker._styleProperty = 'color';\r\n contextPicker._colorList = contextFontColor.colorList;\r\n \r\n this.plugins.colorPicker.init.call(this, this.getSelectionNode(), null);\r\n },\r\n\r\n /**\r\n * @Override _colorPicker\r\n */\r\n onChangeInput: function (e) {\r\n this.plugins.colorPicker.setCurrentColor.call(this, e.target.value);\r\n },\r\n\r\n submit: function () {\r\n this.plugins.fontColor.applyColor.call(this, this.context.colorPicker._currentColor);\r\n },\r\n\r\n pickup: function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.plugins.fontColor.applyColor.call(this, e.target.getAttribute('data-value'));\r\n },\r\n\r\n remove: function () {\r\n this.nodeChange(null, ['color'], ['span'], true);\r\n this.submenuOff();\r\n },\r\n\r\n applyColor: function (color) {\r\n if (!color) return;\r\n\r\n const newNode = this.util.createElement('SPAN');\r\n newNode.style.color = color;\r\n this.nodeChange(newNode, ['color'], null, null);\r\n\r\n this.submenuOff();\r\n }\r\n};\r\n","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2017 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\nimport colorPicker from '../modules/_colorPicker';\r\n\r\nexport default {\r\n name: 'hiliteColor',\r\n display: 'submenu',\r\n add: function (core, targetElement) {\r\n core.addModule([colorPicker]);\r\n\r\n const context = core.context;\r\n context.hiliteColor = {\r\n previewEl: null,\r\n colorInput: null,\r\n colorList: null\r\n };\r\n\r\n /** set submenu */\r\n let listDiv = this.setSubmenu(core);\r\n context.hiliteColor.colorInput = listDiv.querySelector('._se_color_picker_input');\r\n\r\n /** add event listeners */\r\n context.hiliteColor.colorInput.addEventListener('keyup', this.onChangeInput.bind(core));\r\n listDiv.querySelector('._se_color_picker_submit').addEventListener('click', this.submit.bind(core));\r\n listDiv.querySelector('._se_color_picker_remove').addEventListener('click', this.remove.bind(core));\r\n listDiv.addEventListener('click', this.pickup.bind(core));\r\n\r\n context.hiliteColor.colorList = listDiv.querySelectorAll('li button');\r\n\r\n /** append target button menu */\r\n core.initMenuTarget(this.name, targetElement, listDiv);\r\n\r\n /** empty memory */\r\n listDiv = null;\r\n },\r\n\r\n setSubmenu: function (core) {\r\n const colorArea = core.context.colorPicker.colorListHTML;\r\n const listDiv = core.util.createElement('DIV');\r\n\r\n listDiv.className = 'se-submenu se-list-layer';\r\n listDiv.innerHTML = colorArea;\r\n\r\n return listDiv;\r\n },\r\n\r\n /**\r\n * @Override submenu\r\n */\r\n on: function () {\r\n const contextPicker = this.context.colorPicker;\r\n const contextHiliteColor = this.context.hiliteColor;\r\n\r\n contextPicker._colorInput = contextHiliteColor.colorInput;\r\n const color = this.wwComputedStyle.backgroundColor;\r\n contextPicker._defaultColor = color ? this.plugins.colorPicker.isHexColor(color) ? color : this.plugins.colorPicker.rgb2hex(color) : \"#ffffff\";\r\n contextPicker._styleProperty = 'backgroundColor';\r\n contextPicker._colorList = contextHiliteColor.colorList;\r\n \r\n this.plugins.colorPicker.init.call(this, this.getSelectionNode(), null);\r\n },\r\n\r\n /**\r\n * @Override _colorPicker\r\n */\r\n onChangeInput: function (e) {\r\n this.plugins.colorPicker.setCurrentColor.call(this, e.target.value);\r\n },\r\n\r\n submit: function () {\r\n this.plugins.hiliteColor.applyColor.call(this, this.context.colorPicker._currentColor);\r\n },\r\n\r\n pickup: function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.plugins.hiliteColor.applyColor.call(this, e.target.getAttribute('data-value'));\r\n },\r\n\r\n remove: function () {\r\n this.nodeChange(null, ['background-color'], ['span'], true);\r\n this.submenuOff();\r\n },\r\n\r\n applyColor: function (color) {\r\n if (!color) return;\r\n \r\n const newNode = this.util.createElement('SPAN');\r\n newNode.style.backgroundColor = color;\r\n this.nodeChange(newNode, ['background-color'], null, null);\r\n \r\n this.submenuOff();\r\n }\r\n};\r\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'horizontalRule',\n display: 'submenu',\n add: function (core, targetElement) {\n core.context.horizontalRule = {\n currentHR: null,\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n\n /** add event listeners */\n listDiv.querySelector('ul').addEventListener('click', this.horizontalRulePick.bind(core));\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null;\n },\n\n setSubmenu: function (core) {\n const lang = core.lang;\n const listDiv = core.util.createElement('DIV');\n const items = core.options.hrItems || [{name: lang.toolbar.hr_solid, class: '__se__solid'}, {name: lang.toolbar.hr_dashed, class: '__se__dashed'}, {name: lang.toolbar.hr_dotted, class: '__se__dotted'}];\n \n let list = '';\n for (let i = 0, len = items.length; i < len; i++) {\n list += '
  • ' +\n '' +\n '
  • ';\n }\n \n listDiv.className = 'se-submenu se-list-layer se-list-line';\n listDiv.innerHTML = '' +\n '
    ' +\n '
      ' +\n list +\n '
    ' +\n '
    ';\n\n return listDiv;\n },\n\n active: function (element) {\n if (!element) {\n if (this.util.hasClass(this.context.horizontalRule.currentHR, 'on')) {\n this.controllersOff();\n }\n } else if (/HR/i.test(element.nodeName)) {\n this.context.horizontalRule.currentHR = element;\n if (!this.util.hasClass(element, 'on')) {\n this.util.addClass(element, 'on');\n this.controllersOn('hr', this.util.removeClass.bind(this.util, element, 'on'));\n }\n return true;\n }\n\n return false;\n },\n\n appendHr: function (hrTemp) {\n this.focus();\n return this.insertComponent(hrTemp.cloneNode(false), false, true, false);\n },\n\n horizontalRulePick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n let target = e.target;\n let command = target.getAttribute('data-command');\n \n while (!command && !/UL/i.test(target.tagName)) {\n target = target.parentNode;\n command = target.getAttribute('data-command');\n }\n\n if (!command) return;\n\n const oNode = this.plugins.horizontalRule.appendHr.call(this, target.firstElementChild);\n if (oNode) {\n this.setRange(oNode, 0, oNode, 0);\n this.submenuOff();\n }\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'list',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.list = {\n targetButton: targetElement,\n _list: null,\n currentList: '',\n icons: {\n bullets: core.icons.list_bullets,\n number: core.icons.list_number\n }\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n let listUl = listDiv.querySelector('ul');\n\n /** add event listeners */\n listUl.addEventListener('click', this.pickup.bind(core));\n context.list._list = listUl.querySelectorAll('li button');\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null, listUl = null;\n },\n\n setSubmenu: function (core) {\n const lang = core.lang;\n const listDiv = core.util.createElement('DIV');\n\n listDiv.className = 'se-submenu se-list-layer';\n listDiv.innerHTML = '' +\n '
    ' +\n '
      ' +\n '
    • ' +\n '
    • ' +\n '
    ' +\n '
    ';\n\n return listDiv;\n },\n\n /**\n * @Override core\n */\n active: function (element) {\n const button = this.context.list.targetButton;\n const icon = button.firstElementChild;\n const util = this.util;\n\n if (util.isList(element)) {\n const nodeName = element.nodeName;\n button.setAttribute('data-focus', nodeName);\n util.addClass(button, 'active');\n if (/UL/i.test(nodeName)) {\n util.changeElement(icon, this.context.list.icons.bullets);\n } else {\n util.changeElement(icon, this.context.list.icons.number);\n }\n \n return true;\n } else {\n button.removeAttribute('data-focus');\n util.changeElement(icon, this.context.list.icons.number);\n util.removeClass(button, 'active');\n }\n\n return false;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const listContext = this.context.list;\n const list = listContext._list;\n const currentList = listContext.targetButton.getAttribute('data-focus') || '';\n\n if (currentList !== listContext.currentList) {\n for (let i = 0, len = list.length; i < len; i++) {\n if (currentList === list[i].getAttribute('data-command')) {\n this.util.addClass(list[i], 'active');\n } else {\n this.util.removeClass(list[i], 'active');\n }\n }\n\n listContext.currentList = currentList;\n }\n },\n\n editList: function (command, selectedCells, detach) {\n let range = this.getRange();\n let selectedFormats = !selectedCells ? this.getSelectedElementsAndComponents(false) : selectedCells;\n\n if (selectedFormats.length === 0) {\n if (selectedCells) return;\n range = this.getRange_addLine(range, null);\n selectedFormats = this.getSelectedElementsAndComponents(false);\n if (selectedFormats.length === 0) return;\n }\n \n const util = this.util;\n util.sortByDepth(selectedFormats, true);\n\n // merge\n let firstSel = selectedFormats[0];\n let lastSel = selectedFormats[selectedFormats.length - 1];\n let topEl = (util.isListCell(firstSel) || util.isComponent(firstSel)) && !firstSel.previousElementSibling ? firstSel.parentNode.previousElementSibling : firstSel.previousElementSibling;\n let bottomEl = (util.isListCell(lastSel) || util.isComponent(lastSel)) && !lastSel.nextElementSibling ? lastSel.parentNode.nextElementSibling : lastSel.nextElementSibling;\n\n const isCollapsed = range.collapsed;\n const originRange = {\n sc: range.startContainer,\n so: (range.startContainer === range.endContainer && util.onlyZeroWidthSpace(range.startContainer) && range.startOffset === 0 && range.endOffset === 1) ? range.endOffset : range.startOffset,\n ec: range.endContainer,\n eo: range.endOffset\n };\n let afterRange = null;\n let isRemove = true;\n\n for (let i = 0, len = selectedFormats.length; i < len; i++) {\n if (!util.isList(util.getRangeFormatElement(selectedFormats[i], function (current) {\n return this.getRangeFormatElement(current) && current !== selectedFormats[i];\n }.bind(util)))) {\n isRemove = false;\n break;\n }\n }\n\n if (isRemove && (!topEl || (firstSel.tagName !== topEl.tagName || command !== topEl.tagName.toUpperCase())) && (!bottomEl || (lastSel.tagName !== bottomEl.tagName || command !== bottomEl.tagName.toUpperCase()))) {\n if (detach) {\n for (let i = 0, len = selectedFormats.length; i < len; i++) {\n for (let j = i - 1; j >= 0; j--) {\n if (selectedFormats[j].contains(selectedFormats[i])) {\n selectedFormats.splice(i, 1);\n i--; len--;\n break;\n }\n }\n }\n }\n\n const currentFormat = util.getRangeFormatElement(firstSel);\n const cancel = currentFormat && currentFormat.tagName === command;\n let rangeArr, tempList;\n const passComponent = function (current) {\n return !this.isComponent(current);\n }.bind(util);\n \n if (!cancel) tempList = util.createElement(command);\n\n for (let i = 0, len = selectedFormats.length, r, o; i < len; i++) {\n o = util.getRangeFormatElement(selectedFormats[i], passComponent);\n if (!o || !util.isList(o)) continue;\n\n if (!r) {\n r = o;\n rangeArr = {r: r, f: [util.getParentElement(selectedFormats[i], 'LI')]};\n } else {\n if (r !== o) {\n if (detach && util.isListCell(o.parentNode)) {\n this.plugins.list._detachNested.call(this, rangeArr.f);\n } else {\n afterRange = this.detachRangeFormatElement(rangeArr.f[0].parentNode, rangeArr.f, tempList, false, true);\n }\n \n o = selectedFormats[i].parentNode;\n if (!cancel) tempList = util.createElement(command);\n \n r = o;\n rangeArr = {r: r, f: [util.getParentElement(selectedFormats[i], 'LI')]};\n } else {\n rangeArr.f.push(util.getParentElement(selectedFormats[i], 'LI'));\n }\n }\n \n if (i === len - 1) {\n if (detach && util.isListCell(o.parentNode)) {\n this.plugins.list._detachNested.call(this, rangeArr.f);\n } else {\n afterRange = this.detachRangeFormatElement(rangeArr.f[0].parentNode, rangeArr.f, tempList, false, true);\n }\n }\n }\n } else {\n const topElParent = topEl ? topEl.parentNode : topEl;\n const bottomElParent = bottomEl ? bottomEl.parentNode : bottomEl;\n topEl = topElParent && !util.isWysiwygDiv(topElParent) && topElParent.nodeName === command ? topElParent : topEl;\n bottomEl = bottomElParent && !util.isWysiwygDiv(bottomElParent) && bottomElParent.nodeName === command ? bottomElParent : bottomEl;\n\n const mergeTop = topEl && topEl.tagName === command;\n const mergeBottom = bottomEl && bottomEl.tagName === command;\n \n let list = mergeTop ? topEl : util.createElement(command);\n let firstList = null;\n let lastList = null;\n let topNumber = null;\n let bottomNumber = null;\n\n const passComponent = function (current) {\n return !this.isComponent(current) && !this.isList(current);\n }.bind(util);\n \n for (let i = 0, len = selectedFormats.length, newCell, fTag, isCell, next, originParent, nextParent, parentTag, siblingTag, rangeTag; i < len; i++) {\n fTag = selectedFormats[i];\n if (fTag.childNodes.length === 0 && !util._isIgnoreNodeChange(fTag)) {\n util.removeItem(fTag);\n continue;\n }\n next = selectedFormats[i + 1];\n originParent = fTag.parentNode;\n nextParent = next ? next.parentNode : null;\n isCell = util.isListCell(fTag);\n rangeTag = util.isRangeFormatElement(originParent) ? originParent : null;\n parentTag = isCell && !util.isWysiwygDiv(originParent) ? originParent.parentNode : originParent;\n siblingTag = isCell && !util.isWysiwygDiv(originParent) ? (!next || util.isListCell(parentTag)) ? originParent : originParent.nextSibling : fTag.nextSibling;\n\n newCell = util.createElement('LI');\n util.copyFormatAttributes(newCell, fTag);\n\n if (i === 0 && originRange.sc === fTag) {\n originRange.sc = newCell;\n }\n if (i === len - 1 && originRange.ec === fTag) {\n originRange.ec = newCell;\n }\n\n if (util.isComponent(fTag)) {\n const isHR = /^HR$/i.test(fTag.nodeName);\n if (!isHR) newCell.innerHTML = '
    ';\n newCell.innerHTML += fTag.outerHTML;\n if (isHR) newCell.innerHTML += '
    ';\n } else {\n const fChildren = fTag.childNodes;\n while (fChildren[0]) {\n newCell.appendChild(fChildren[0]);\n }\n }\n list.appendChild(newCell);\n\n if (!next) lastList = list;\n if (!next || parentTag !== nextParent || util.isRangeFormatElement(siblingTag)) {\n if (!firstList) firstList = list;\n if ((!mergeTop || !next || parentTag !== nextParent) && !(next && util.isList(nextParent) && nextParent === originParent)) {\n if (list.parentNode !== parentTag) parentTag.insertBefore(list, siblingTag);\n }\n }\n\n util.removeItem(fTag);\n if (mergeTop && topNumber === null) topNumber = list.children.length - 1;\n if (next && (util.getRangeFormatElement(nextParent, passComponent) !== util.getRangeFormatElement(originParent, passComponent) || (util.isList(nextParent) && util.isList(originParent) && util.getElementDepth(nextParent) !== util.getElementDepth(originParent)))) {\n list = util.createElement(command);\n }\n\n if (rangeTag && rangeTag.children.length === 0) util.removeItem(rangeTag);\n }\n\n if (topNumber) {\n firstList = firstList.children[topNumber];\n }\n\n if (mergeBottom) {\n bottomNumber = list.children.length - 1;\n list.innerHTML += bottomEl.innerHTML;\n lastList = list.children[bottomNumber];\n util.removeItem(bottomEl);\n }\n }\n \n this.effectNode = null;\n return !isCollapsed ? originRange : afterRange || originRange;\n },\n\n _detachNested: function (cells) {\n const first = cells[0];\n const last = cells[cells.length - 1];\n const next = last.nextElementSibling;\n const originList = first.parentNode;\n const sibling = originList.parentNode.nextElementSibling;\n const parentNode = originList.parentNode.parentNode;\n\n for (let c = 0, cLen = cells.length; c < cLen; c++) {\n parentNode.insertBefore(cells[c], sibling);\n }\n\n if (next && originList.children.length > 0) {\n const newList = originList.cloneNode(false);\n const children = originList.childNodes;\n const index = this.util.getPositionIndex(next);\n while (children[index]) {\n newList.appendChild(children[index]);\n }\n last.appendChild(newList);\n }\n\n if (originList.children.length === 0) this.util.removeItem(originList);\n this.util.mergeSameTags(parentNode);\n\n const edge = this.util.getEdgeChildNodes(first, last);\n\n return {\n cc: first.parentNode,\n sc: edge.sc,\n ec: edge.ec\n };\n },\n\n editInsideList: function (remove, selectedCells) {\n selectedCells = !selectedCells ? this.getSelectedElements().filter(function (el) { return this.isListCell(el); }.bind(this.util)) : selectedCells;\n const cellsLen = selectedCells.length;\n if (cellsLen === 0 || (!remove && (!this.util.isListCell(selectedCells[0].previousElementSibling) && !this.util.isListCell(selectedCells[cellsLen - 1].nextElementSibling)))) {\n return {\n sc: selectedCells[0],\n so: 0,\n ec: selectedCells[cellsLen - 1],\n eo: 1\n };\n }\n\n let originList = selectedCells[0].parentNode;\n let lastCell = selectedCells[cellsLen - 1];\n let range = null;\n\n if (remove) {\n if (originList !== lastCell.parentNode && this.util.isList(lastCell.parentNode.parentNode) && lastCell.nextElementSibling) {\n lastCell = lastCell.nextElementSibling;\n while (lastCell) {\n selectedCells.push(lastCell);\n lastCell = lastCell.nextElementSibling;\n }\n }\n range = this.plugins.list.editList.call(this, originList.nodeName.toUpperCase(), selectedCells, true);\n } else {\n let innerList = this.util.createElement(originList.nodeName);\n let prev = selectedCells[0].previousElementSibling;\n let next = lastCell.nextElementSibling;\n const nodePath = { s: null, e: null, sl: originList, el: originList };\n\n for (let i = 0, len = cellsLen, c; i < len; i++) {\n c = selectedCells[i];\n if (c.parentNode !== originList) {\n this.plugins.list._insiedList.call(this, originList, innerList, prev, next, nodePath);\n originList = c.parentNode;\n innerList = this.util.createElement(originList.nodeName);\n }\n \n prev = c.previousElementSibling;\n next = c.nextElementSibling;\n innerList.appendChild(c);\n }\n \n this.plugins.list._insiedList.call(this, originList, innerList, prev, next, nodePath);\n\n const sc = this.util.getNodeFromPath(nodePath.s, nodePath.sl);\n const ec = this.util.getNodeFromPath(nodePath.e, nodePath.el);\n range = {\n sc: sc,\n so: 0,\n ec: ec,\n eo: ec.textContent.length\n };\n }\n\n return range;\n },\n\n _insiedList: function (originList, innerList, prev, next, nodePath) {\n let insertPrev = false;\n\n if (prev && innerList.tagName === prev.tagName) {\n const children = innerList.children;\n while (children[0]) {\n prev.appendChild(children[0]);\n }\n\n innerList = prev;\n insertPrev = true;\n }\n\n if (next && innerList.tagName === next.tagName) {\n const children = next.children;\n while (children[0]) {\n innerList.appendChild(children[0]);\n }\n\n const temp = next.nextElementSibling;\n next.parentNode.removeChild(next);\n next = temp;\n }\n\n if (!insertPrev) {\n if (this.util.isListCell(prev)) {\n originList = prev;\n next = null;\n }\n\n originList.insertBefore(innerList, next);\n\n if (!nodePath.s) {\n nodePath.s = this.util.getNodePath(innerList.firstElementChild.firstChild, originList, null);\n nodePath.sl = originList;\n }\n\n const slPath = originList.contains(nodePath.sl) ? this.util.getNodePath(nodePath.sl, originList) : null;\n nodePath.e = this.util.getNodePath(innerList.lastElementChild.firstChild, originList, null);\n nodePath.el = originList;\n\n this.util.mergeSameTags(originList, [nodePath.s, nodePath.e, slPath], false);\n this.util.mergeNestedTags(originList);\n if (slPath) nodePath.sl = this.util.getNodeFromPath(slPath, originList);\n }\n\n return innerList;\n },\n\n pickup: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n let target = e.target;\n let command = '';\n\n while (!command && !/^UL$/i.test(target.tagName)) {\n command = target.getAttribute('data-command');\n target = target.parentNode;\n }\n\n if (!command) return;\n\n const range = this.plugins.list.editList.call(this, command, null, false);\n if (range) this.setRange(range.sc, range.so, range.ec, range.eo);\n\n this.submenuOff();\n\n // history stack\n this.history.push(false);\n }\n};\n","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2017 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\nexport default {\r\n name: 'table',\r\n display: 'submenu',\r\n add: function (core, targetElement) {\r\n const context = core.context;\r\n let contextTable = context.table = {\r\n _element: null,\r\n _tdElement: null,\r\n _trElement: null,\r\n _trElements: null,\r\n _tableXY: [],\r\n _maxWidth: true,\r\n _fixedColumn: false,\r\n _rtl: core.options.rtl,\r\n cellControllerTop: core.options.tableCellControllerPosition === 'top',\r\n resizeText: null,\r\n headerButton: null,\r\n mergeButton: null,\r\n splitButton: null,\r\n splitMenu: null,\r\n maxText: core.lang.controller.maxSize,\r\n minText: core.lang.controller.minSize,\r\n _physical_cellCnt: 0,\r\n _logical_cellCnt: 0,\r\n _rowCnt: 0,\r\n _rowIndex: 0,\r\n _physical_cellIndex: 0,\r\n _logical_cellIndex: 0,\r\n _current_colSpan: 0,\r\n _current_rowSpan: 0,\r\n icons: {\r\n expansion: core.icons.expansion,\r\n reduction: core.icons.reduction\r\n }\r\n };\r\n\r\n /** set submenu */\r\n let listDiv = this.setSubmenu(core);\r\n let tablePicker = listDiv.querySelector('.se-controller-table-picker');\r\n\r\n contextTable.tableHighlight = listDiv.querySelector('.se-table-size-highlighted');\r\n contextTable.tableUnHighlight = listDiv.querySelector('.se-table-size-unhighlighted');\r\n contextTable.tableDisplay = listDiv.querySelector('.se-table-size-display');\r\n if (core.options.rtl) contextTable.tableHighlight.style.left = (10 * 18 - 13) + 'px';\r\n\r\n /** set table controller */\r\n let tableController = this.setController_table(core);\r\n contextTable.tableController = tableController;\r\n contextTable.resizeButton = tableController.querySelector('._se_table_resize');\r\n contextTable.resizeText = tableController.querySelector('._se_table_resize > span > span');\r\n contextTable.columnFixedButton = tableController.querySelector('._se_table_fixed_column');\r\n contextTable.headerButton = tableController.querySelector('._se_table_header');\r\n\r\n /** set resizing */\r\n let resizeDiv = this.setController_tableEditor(core, contextTable.cellControllerTop);\r\n contextTable.resizeDiv = resizeDiv;\r\n contextTable.splitMenu = resizeDiv.querySelector('.se-btn-group-sub');\r\n contextTable.mergeButton = resizeDiv.querySelector('._se_table_merge_button');\r\n contextTable.splitButton = resizeDiv.querySelector('._se_table_split_button');\r\n contextTable.insertRowAboveButton = resizeDiv.querySelector('._se_table_insert_row_a');\r\n contextTable.insertRowBelowButton = resizeDiv.querySelector('._se_table_insert_row_b');\r\n \r\n /** add event listeners */\r\n tablePicker.addEventListener('mousemove', this.onMouseMove_tablePicker.bind(core, contextTable));\r\n tablePicker.addEventListener('click', this.appendTable.bind(core));\r\n resizeDiv.addEventListener('click', this.onClick_tableController.bind(core));\r\n tableController.addEventListener('click', this.onClick_tableController.bind(core));\r\n\r\n /** append target button menu */\r\n core.initMenuTarget(this.name, targetElement, listDiv);\r\n\r\n /** append controller */\r\n context.element.relative.appendChild(resizeDiv);\r\n context.element.relative.appendChild(tableController);\r\n\r\n /** empty memory */\r\n listDiv = null, tablePicker = null, resizeDiv = null, tableController = null, contextTable = null;\r\n },\r\n\r\n setSubmenu: function (core) {\r\n const listDiv = core.util.createElement('DIV');\r\n listDiv.className = 'se-submenu se-selector-table';\r\n listDiv.innerHTML = '' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    1 x 1
    ';\r\n\r\n return listDiv;\r\n },\r\n\r\n setController_table: function (core) {\r\n const lang = core.lang;\r\n const icons = core.icons;\r\n const tableResize = core.util.createElement('DIV');\r\n\r\n tableResize.className = 'se-controller se-controller-table';\r\n tableResize.innerHTML = '' +\r\n '
    ' +\r\n '
    ' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
    ' +\r\n '
    ';\r\n\r\n return tableResize;\r\n },\r\n\r\n setController_tableEditor: function (core, cellControllerTop) {\r\n const lang = core.lang;\r\n const icons = core.icons;\r\n const tableResize = core.util.createElement('DIV');\r\n\r\n tableResize.className = 'se-controller se-controller-table-cell';\r\n tableResize.innerHTML = (cellControllerTop ? '' : '
    ') +\r\n '
    ' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
    ' +\r\n '
    ' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
    ' +\r\n '
    ' +\r\n '
      ' +\r\n '
    • ' + \r\n lang.controller.VerticalSplit + '
    • ' +\r\n '
    • ' + \r\n lang.controller.HorizontalSplit + '
    • ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ';\r\n\r\n return tableResize;\r\n },\r\n\r\n appendTable: function () {\r\n const oTable = this.util.createElement('TABLE');\r\n const createCells = this.plugins.table.createCells;\r\n\r\n const x = this.context.table._tableXY[0];\r\n let y = this.context.table._tableXY[1];\r\n let tableHTML = '';\r\n while (y > 0) {\r\n tableHTML += '' + createCells.call(this, 'td', x) + '';\r\n --y;\r\n }\r\n tableHTML += '';\r\n oTable.innerHTML = tableHTML;\r\n\r\n const changed = this.insertComponent(oTable, false, true, false);\r\n \r\n if (changed) {\r\n const firstTd = oTable.querySelector('td div');\r\n this.setRange(firstTd, 0, firstTd, 0);\r\n this.plugins.table.reset_table_picker.call(this);\r\n }\r\n },\r\n\r\n createCells: function (nodeName, cnt, returnElement) {\r\n nodeName = nodeName.toLowerCase();\r\n\r\n if (!returnElement) {\r\n let cellsHTML = '';\r\n while (cnt > 0) {\r\n cellsHTML += '<' +nodeName + '>

    ';\r\n cnt--;\r\n }\r\n return cellsHTML;\r\n } else {\r\n const cell = this.util.createElement(nodeName);\r\n cell.innerHTML = '

    ';\r\n return cell;\r\n }\r\n },\r\n\r\n onMouseMove_tablePicker: function (contextTable, e) {\r\n e.stopPropagation();\r\n\r\n let x = this._w.Math.ceil(e.offsetX / 18);\r\n let y = this._w.Math.ceil(e.offsetY / 18);\r\n x = x < 1 ? 1 : x;\r\n y = y < 1 ? 1 : y;\r\n \r\n if (contextTable._rtl) {\r\n contextTable.tableHighlight.style.left = (x * 18 - 13) + 'px';\r\n x = 11 - x;\r\n }\r\n \r\n contextTable.tableHighlight.style.width = x + 'em';\r\n contextTable.tableHighlight.style.height = y + 'em';\r\n\r\n // let x_u = x < 5 ? 5 : (x > 9 ? 10 : x + 1);\r\n // let y_u = y < 5 ? 5 : (y > 9 ? 10 : y + 1);\r\n // contextTable.tableUnHighlight.style.width = x_u + 'em';\r\n // contextTable.tableUnHighlight.style.height = y_u + 'em';\r\n\r\n this.util.changeTxt(contextTable.tableDisplay, x + ' x ' + y);\r\n contextTable._tableXY = [x, y];\r\n },\r\n\r\n reset_table_picker: function () {\r\n if (!this.context.table.tableHighlight) return;\r\n\r\n const highlight = this.context.table.tableHighlight.style;\r\n const unHighlight = this.context.table.tableUnHighlight.style;\r\n\r\n highlight.width = '1em';\r\n highlight.height = '1em';\r\n unHighlight.width = '10em';\r\n unHighlight.height = '10em';\r\n\r\n this.util.changeTxt(this.context.table.tableDisplay, '1 x 1');\r\n this.submenuOff();\r\n },\r\n\r\n init: function () {\r\n const contextTable = this.context.table;\r\n const tablePlugin = this.plugins.table;\r\n\r\n tablePlugin._removeEvents.call(this);\r\n\r\n if (tablePlugin._selectedTable) {\r\n const selectedCells = tablePlugin._selectedTable.querySelectorAll('.se-table-selected-cell');\r\n for (let i = 0, len = selectedCells.length; i < len; i++) {\r\n this.util.removeClass(selectedCells[i], 'se-table-selected-cell');\r\n }\r\n }\r\n\r\n tablePlugin._toggleEditor.call(this, true);\r\n\r\n contextTable._element = null;\r\n contextTable._tdElement = null;\r\n contextTable._trElement = null;\r\n contextTable._trElements = null;\r\n contextTable._tableXY = [];\r\n contextTable._maxWidth = true;\r\n contextTable._fixedColumn = false;\r\n contextTable._physical_cellCnt = 0;\r\n contextTable._logical_cellCnt = 0;\r\n contextTable._rowCnt = 0;\r\n contextTable._rowIndex = 0;\r\n contextTable._physical_cellIndex = 0;\r\n contextTable._logical_cellIndex = 0;\r\n contextTable._current_colSpan = 0;\r\n contextTable._current_rowSpan = 0;\r\n\r\n tablePlugin._shift = false;\r\n tablePlugin._selectedCells = null;\r\n tablePlugin._selectedTable = null;\r\n tablePlugin._ref = null;\r\n\r\n tablePlugin._fixedCell = null;\r\n tablePlugin._selectedCell = null;\r\n tablePlugin._fixedCellName = null;\r\n },\r\n\r\n /** table edit controller */\r\n call_controller_tableEdit: function (tdElement) {\r\n const tablePlugin = this.plugins.table;\r\n const contextTable = this.context.table;\r\n\r\n if (!this.getSelection().isCollapsed && !tablePlugin._selectedCell) {\r\n this.controllersOff();\r\n this.util.removeClass(tdElement, 'se-table-selected-cell');\r\n return;\r\n }\r\n\r\n const tableElement = contextTable._element || this.plugins.table._selectedTable || this.util.getParentElement(tdElement, 'TABLE');\r\n contextTable._maxWidth = this.util.hasClass(tableElement, 'se-table-size-100') || tableElement.style.width === '100%' || (!tableElement.style.width && !this.util.hasClass(tableElement, 'se-table-size-auto'));\r\n contextTable._fixedColumn = this.util.hasClass(tableElement, 'se-table-layout-fixed') || tableElement.style.tableLayout === 'fixed';\r\n tablePlugin.setTableStyle.call(this, contextTable._maxWidth ? 'width|column' : 'width');\r\n \r\n tablePlugin.setPositionControllerTop.call(this, tableElement);\r\n tablePlugin.setPositionControllerDiv.call(this, tdElement, tablePlugin._shift);\r\n \r\n if (!tablePlugin._shift) this.controllersOn(contextTable.resizeDiv, contextTable.tableController, tablePlugin.init.bind(this), tdElement, 'table');\r\n },\r\n\r\n setPositionControllerTop: function (tableElement) {\r\n this.setControllerPosition(this.context.table.tableController, tableElement, 'top', {left: 0, top: 0});\r\n },\r\n\r\n setPositionControllerDiv: function (tdElement, reset) {\r\n const contextTable = this.context.table;\r\n const resizeDiv = contextTable.resizeDiv;\r\n \r\n this.plugins.table.setCellInfo.call(this, tdElement, reset);\r\n \r\n if (contextTable.cellControllerTop) {\r\n this.setControllerPosition(resizeDiv, contextTable._element, 'top', {left: contextTable.tableController.offsetWidth, top: 0});\r\n } else {\r\n this.setControllerPosition(resizeDiv, tdElement, 'bottom', {left: 0, top: 0});\r\n }\r\n },\r\n\r\n setCellInfo: function (tdElement, reset) {\r\n const contextTable = this.context.table;\r\n const table = contextTable._element = this.plugins.table._selectedTable || this.util.getParentElement(tdElement, 'TABLE');\r\n\r\n if (/THEAD/i.test(table.firstElementChild.nodeName)) {\r\n this.util.addClass(contextTable.headerButton, 'active');\r\n } else {\r\n this.util.removeClass(contextTable.headerButton, 'active');\r\n }\r\n\r\n if (reset || contextTable._physical_cellCnt === 0) {\r\n if (contextTable._tdElement !== tdElement) {\r\n contextTable._tdElement = tdElement;\r\n contextTable._trElement = tdElement.parentNode;\r\n }\r\n\r\n const rows = contextTable._trElements = table.rows;\r\n const cellIndex = tdElement.cellIndex;\r\n\r\n let cellCnt = 0;\r\n for (let i = 0, cells = rows[0].cells, len = rows[0].cells.length; i < len; i++) {\r\n cellCnt += cells[i].colSpan;\r\n }\r\n\r\n // row cnt, row index\r\n const rowIndex = contextTable._rowIndex = contextTable._trElement.rowIndex;\r\n contextTable._rowCnt = rows.length;\r\n\r\n // cell cnt, physical cell index\r\n contextTable._physical_cellCnt = contextTable._trElement.cells.length;\r\n contextTable._logical_cellCnt = cellCnt;\r\n contextTable._physical_cellIndex = cellIndex;\r\n\r\n // span\r\n contextTable._current_colSpan = contextTable._tdElement.colSpan - 1;\r\n contextTable._current_rowSpan - contextTable._trElement.cells[cellIndex].rowSpan - 1;\r\n\r\n // find logcal cell index\r\n let rowSpanArr = [];\r\n let spanIndex = [];\r\n for (let i = 0, cells, colSpan; i <= rowIndex; i++) {\r\n cells = rows[i].cells;\r\n colSpan = 0;\r\n for (let c = 0, cLen = cells.length, cell, cs, rs, logcalIndex; c < cLen; c++) {\r\n cell = cells[c];\r\n cs = cell.colSpan - 1;\r\n rs = cell.rowSpan - 1;\r\n logcalIndex = c + colSpan;\r\n\r\n if (spanIndex.length > 0) {\r\n for (let r = 0, arr; r < spanIndex.length; r++) {\r\n arr = spanIndex[r];\r\n if (arr.row > i) continue;\r\n if (logcalIndex >= arr.index) {\r\n colSpan += arr.cs;\r\n logcalIndex += arr.cs;\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n } \r\n } else if (c === cLen - 1) {\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // logcal cell index\r\n if (i === rowIndex && c === cellIndex) {\r\n contextTable._logical_cellIndex = logcalIndex;\r\n break;\r\n }\r\n\r\n if (rs > 0) {\r\n rowSpanArr.push({\r\n index: logcalIndex,\r\n cs: cs + 1,\r\n rs: rs,\r\n row: -1\r\n });\r\n }\r\n \r\n colSpan += cs;\r\n }\r\n\r\n spanIndex = spanIndex.concat(rowSpanArr).sort(function (a, b) {return a.index - b.index;});\r\n rowSpanArr = [];\r\n }\r\n\r\n rowSpanArr = null;\r\n spanIndex = null;\r\n }\r\n },\r\n\r\n editTable: function (type, option) {\r\n const tablePlugin = this.plugins.table;\r\n const contextTable = this.context.table;\r\n const table = contextTable._element;\r\n const isRow = type === 'row';\r\n\r\n if (isRow) {\r\n const tableAttr = contextTable._trElement.parentNode;\r\n if (/^THEAD$/i.test(tableAttr.nodeName)) {\r\n if (option === 'up') {\r\n return;\r\n } else if (!tableAttr.nextElementSibling || !/^TBODY$/i.test(tableAttr.nextElementSibling.nodeName)) {\r\n table.innerHTML += '' + tablePlugin.createCells.call(this, 'td', contextTable._logical_cellCnt, false) + '';\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // multi\r\n if (tablePlugin._ref) {\r\n const positionCell = contextTable._tdElement;\r\n const selectedCells = tablePlugin._selectedCells;\r\n // multi - row\r\n if (isRow) {\r\n // remove row\r\n if (!option) {\r\n let row = selectedCells[0].parentNode;\r\n const removeCells = [selectedCells[0]];\r\n\r\n for (let i = 1, len = selectedCells.length, cell; i < len; i++) {\r\n cell = selectedCells[i];\r\n if (row !== cell.parentNode) {\r\n removeCells.push(cell);\r\n row = cell.parentNode;\r\n }\r\n }\r\n\r\n for (let i = 0, len = removeCells.length; i < len; i++) {\r\n tablePlugin.setCellInfo.call(this, removeCells[i], true);\r\n tablePlugin.editRow.call(this, option);\r\n }\r\n } else { // edit row\r\n tablePlugin.setCellInfo.call(this, option === 'up' ? selectedCells[0] : selectedCells[selectedCells.length - 1], true);\r\n tablePlugin.editRow.call(this, option, positionCell);\r\n }\r\n } else { // multi - cell\r\n const firstRow = selectedCells[0].parentNode;\r\n // remove cell\r\n if (!option) {\r\n const removeCells = [selectedCells[0]];\r\n \r\n for (let i = 1, len = selectedCells.length, cell; i < len; i++) {\r\n cell = selectedCells[i];\r\n if (firstRow === cell.parentNode) {\r\n removeCells.push(cell);\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n for (let i = 0, len = removeCells.length; i < len; i++) {\r\n tablePlugin.setCellInfo.call(this, removeCells[i], true);\r\n tablePlugin.editCell.call(this, option);\r\n }\r\n } else { // edit cell\r\n let rightCell = null;\r\n\r\n for (let i = 0, len = selectedCells.length - 1; i < len; i++) {\r\n if (firstRow !== selectedCells[i + 1].parentNode) {\r\n rightCell = selectedCells[i];\r\n break;\r\n }\r\n }\r\n\r\n tablePlugin.setCellInfo.call(this, option === 'left' ? selectedCells[0] : rightCell || selectedCells[0], true);\r\n tablePlugin.editCell.call(this, option, positionCell);\r\n }\r\n }\r\n\r\n if (!option) tablePlugin.init.call(this);\r\n } // one\r\n else {\r\n tablePlugin[isRow ? 'editRow' : 'editCell'].call(this, option);\r\n }\r\n\r\n // after remove\r\n if (!option) {\r\n const children = table.children;\r\n for (let i = 0; i < children.length; i++) {\r\n if (children[i].children.length === 0) {\r\n this.util.removeItem(children[i]);\r\n i--;\r\n }\r\n }\r\n\r\n if (table.children.length === 0) this.util.removeItem(table);\r\n }\r\n },\r\n\r\n editRow: function (option, positionResetElement) {\r\n const contextTable = this.context.table;\r\n const remove = !option;\r\n\r\n const up = option === 'up';\r\n const originRowIndex = contextTable._rowIndex;\r\n const rowIndex = remove || up ? originRowIndex : originRowIndex + contextTable._current_rowSpan + 1;\r\n const sign = remove ? -1 : 1;\r\n \r\n const rows = contextTable._trElements;\r\n let cellCnt = contextTable._logical_cellCnt;\r\n\r\n for (let i = 0, len = originRowIndex + (remove ? -1 : 0), cell; i <= len; i++) {\r\n cell = rows[i].cells;\r\n if (cell.length === 0) return;\r\n \r\n for (let c = 0, cLen = cell.length, rs, cs; c < cLen; c++) {\r\n rs = cell[c].rowSpan;\r\n cs = cell[c].colSpan;\r\n if (rs < 2 && cs < 2) continue;\r\n\r\n if (rs + i > rowIndex && rowIndex > i) {\r\n cell[c].rowSpan = rs + sign;\r\n cellCnt -= cs;\r\n }\r\n }\r\n }\r\n\r\n if (remove) {\r\n const next = rows[originRowIndex + 1];\r\n if (next) {\r\n const spanCells = [];\r\n let cells = rows[originRowIndex].cells;\r\n let colSpan = 0;\r\n\r\n for (let i = 0, len = cells.length, cell, logcalIndex; i < len; i++) {\r\n cell = cells[i];\r\n logcalIndex = i + colSpan;\r\n colSpan += cell.colSpan - 1;\r\n\r\n if (cell.rowSpan > 1) {\r\n cell.rowSpan -= 1;\r\n spanCells.push({cell: cell.cloneNode(false), index: logcalIndex});\r\n }\r\n }\r\n\r\n if (spanCells.length > 0) {\r\n let spanCell = spanCells.shift();\r\n cells = next.cells;\r\n colSpan = 0;\r\n\r\n for (let i = 0, len = cells.length, cell, logcalIndex; i < len; i++) {\r\n cell = cells[i];\r\n logcalIndex = i + colSpan;\r\n colSpan += cell.colSpan - 1;\r\n \r\n if (logcalIndex >= spanCell.index) {\r\n i--, colSpan--;\r\n colSpan += spanCell.cell.colSpan - 1;\r\n next.insertBefore(spanCell.cell, cell);\r\n spanCell = spanCells.shift();\r\n if (!spanCell) break;\r\n }\r\n }\r\n\r\n if (spanCell) {\r\n next.appendChild(spanCell.cell);\r\n for (let i = 0, len = spanCells.length; i < len; i++) {\r\n next.appendChild(spanCells[i].cell);\r\n }\r\n }\r\n }\r\n }\r\n\r\n contextTable._element.deleteRow(rowIndex);\r\n } else {\r\n const newRow = contextTable._element.insertRow(rowIndex);\r\n newRow.innerHTML = this.plugins.table.createCells.call(this, 'td', cellCnt, false);\r\n }\r\n\r\n if (!remove) {\r\n this.plugins.table.setPositionControllerDiv.call(this, positionResetElement || contextTable._tdElement, true);\r\n } else {\r\n this.controllersOff();\r\n }\r\n },\r\n\r\n editCell: function (option, positionResetElement) {\r\n const contextTable = this.context.table;\r\n const util = this.util;\r\n const remove = !option;\r\n\r\n const left = option === 'left';\r\n const colSpan = contextTable._current_colSpan;\r\n const cellIndex = remove || left ? contextTable._logical_cellIndex : contextTable._logical_cellIndex + colSpan + 1;\r\n\r\n const rows = contextTable._trElements;\r\n let rowSpanArr = [];\r\n let spanIndex = [];\r\n let passCell = 0;\r\n const removeCell = [];\r\n const removeSpanArr = [];\r\n\r\n for (let i = 0, len = contextTable._rowCnt, row, insertIndex, cells, newCell, applySpan, cellColSpan; i < len; i++) {\r\n row = rows[i];\r\n insertIndex = cellIndex;\r\n applySpan = false;\r\n cells = row.cells;\r\n cellColSpan = 0;\r\n\r\n for (let c = 0, cell, cLen = cells.length, rs, cs, removeIndex; c < cLen; c++) {\r\n cell = cells[c];\r\n if (!cell) break;\r\n\r\n rs = cell.rowSpan - 1;\r\n cs = cell.colSpan - 1;\r\n\r\n if (!remove) {\r\n if (c >= insertIndex) break;\r\n if (cs > 0) {\r\n if (passCell < 1 && cs + c >= insertIndex) {\r\n cell.colSpan += 1;\r\n insertIndex = null;\r\n passCell = rs + 1;\r\n break;\r\n }\r\n\r\n insertIndex -= cs;\r\n }\r\n\r\n if (!applySpan) {\r\n for (let r = 0, arr; r < spanIndex.length; r++) {\r\n arr = spanIndex[r];\r\n insertIndex -= arr.cs;\r\n arr.rs -= 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n } \r\n }\r\n applySpan = true;\r\n }\r\n } else {\r\n removeIndex = c + cellColSpan;\r\n\r\n if (spanIndex.length > 0) {\r\n const lastCell = !cells[c + 1];\r\n for (let r = 0, arr; r < spanIndex.length; r++) {\r\n arr = spanIndex[r];\r\n if (arr.row > i) continue;\r\n\r\n if (removeIndex >= arr.index) {\r\n cellColSpan += arr.cs;\r\n removeIndex = c + cellColSpan;\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n } \r\n } else if (lastCell) {\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (rs > 0) {\r\n rowSpanArr.push({\r\n rs: rs,\r\n cs: cs + 1,\r\n index: removeIndex,\r\n row: -1\r\n });\r\n }\r\n\r\n if (removeIndex >= insertIndex && removeIndex + cs <= insertIndex + colSpan) {\r\n removeCell.push(cell);\r\n } else if (removeIndex <= insertIndex + colSpan && removeIndex + cs >= insertIndex) {\r\n cell.colSpan -= util.getOverlapRangeAtIndex(cellIndex, cellIndex + colSpan, removeIndex, removeIndex + cs); \r\n } else if (rs > 0 && (removeIndex < insertIndex || removeIndex + cs > insertIndex + colSpan)) {\r\n removeSpanArr.push({\r\n cell: cell,\r\n i: i,\r\n rs: i + rs\r\n });\r\n }\r\n\r\n cellColSpan += cs;\r\n }\r\n }\r\n\r\n spanIndex = spanIndex.concat(rowSpanArr).sort(function (a, b) {return a.index - b.index;});\r\n rowSpanArr = [];\r\n\r\n if (!remove) {\r\n if (passCell > 0) {\r\n passCell -= 1;\r\n continue;\r\n }\r\n\r\n if (insertIndex !== null && cells.length > 0) {\r\n newCell = this.plugins.table.createCells.call(this, cells[0].nodeName, 0, true);\r\n newCell = row.insertBefore(newCell, cells[insertIndex]);\r\n }\r\n }\r\n }\r\n\r\n if (remove) {\r\n let removeFirst, removeEnd;\r\n for (let r = 0, rLen = removeCell.length, row; r < rLen; r++) {\r\n row = removeCell[r].parentNode;\r\n util.removeItem(removeCell[r]);\r\n if (row.cells.length === 0) {\r\n if (!removeFirst) removeFirst = util.getArrayIndex(rows, row);\r\n removeEnd = util.getArrayIndex(rows, row);\r\n util.removeItem(row);\r\n }\r\n }\r\n\r\n for (let c = 0, cLen = removeSpanArr.length, rowSpanCell; c < cLen; c++) {\r\n rowSpanCell = removeSpanArr[c];\r\n rowSpanCell.cell.rowSpan = util.getOverlapRangeAtIndex(removeFirst, removeEnd, rowSpanCell.i, rowSpanCell.rs);\r\n }\r\n\r\n this.controllersOff();\r\n } else {\r\n this.plugins.table.setPositionControllerDiv.call(this, positionResetElement || contextTable._tdElement, true);\r\n }\r\n },\r\n\r\n _closeSplitMenu: null,\r\n openSplitMenu: function () {\r\n this.util.addClass(this.context.table.splitButton, 'on');\r\n this.context.table.splitMenu.style.display = 'inline-table';\r\n\r\n this.plugins.table._closeSplitMenu = function () {\r\n this.util.removeClass(this.context.table.splitButton, 'on');\r\n this.context.table.splitMenu.style.display = 'none';\r\n this.removeDocEvent('click', this.plugins.table._closeSplitMenu);\r\n this.plugins.table._closeSplitMenu = null;\r\n }.bind(this);\r\n\r\n this.addDocEvent('click', this.plugins.table._closeSplitMenu);\r\n },\r\n\r\n splitCells: function (direction) {\r\n const util = this.util;\r\n const vertical = direction === 'vertical';\r\n const contextTable = this.context.table;\r\n const currentCell = contextTable._tdElement;\r\n const rows = contextTable._trElements;\r\n const currentRow = contextTable._trElement;\r\n const index = contextTable._logical_cellIndex;\r\n const rowIndex = contextTable._rowIndex;\r\n const newCell = this.plugins.table.createCells.call(this, currentCell.nodeName, 0, true);\r\n\r\n // vertical\r\n if (vertical) {\r\n const currentColSpan = currentCell.colSpan;\r\n newCell.rowSpan = currentCell.rowSpan;\r\n\r\n // colspan > 1\r\n if (currentColSpan > 1) {\r\n newCell.colSpan = this._w.Math.floor(currentColSpan/2);\r\n currentCell.colSpan = currentColSpan - newCell.colSpan;\r\n currentRow.insertBefore(newCell, currentCell.nextElementSibling);\r\n } else { // colspan - 1\r\n let rowSpanArr = [];\r\n let spanIndex = [];\r\n\r\n for (let i = 0, len = contextTable._rowCnt, cells, colSpan; i < len; i++) {\r\n cells = rows[i].cells;\r\n colSpan = 0;\r\n for (let c = 0, cLen = cells.length, cell, cs, rs, logcalIndex; c < cLen; c++) {\r\n cell = cells[c];\r\n cs = cell.colSpan - 1;\r\n rs = cell.rowSpan - 1;\r\n logcalIndex = c + colSpan;\r\n\r\n if (spanIndex.length > 0) {\r\n for (let r = 0, arr; r < spanIndex.length; r++) {\r\n arr = spanIndex[r];\r\n if (arr.row > i) continue;\r\n if (logcalIndex >= arr.index) {\r\n colSpan += arr.cs;\r\n logcalIndex += arr.cs;\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n } \r\n } else if (c === cLen - 1) {\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (logcalIndex <= index && rs > 0) {\r\n rowSpanArr.push({\r\n index: logcalIndex,\r\n cs: cs + 1,\r\n rs: rs,\r\n row: -1\r\n });\r\n }\r\n\r\n if (cell !== currentCell && logcalIndex <= index && logcalIndex + cs >= index + currentColSpan - 1) {\r\n cell.colSpan += 1;\r\n break;\r\n }\r\n\r\n if (logcalIndex > index) break;\r\n \r\n colSpan += cs;\r\n }\r\n\r\n spanIndex = spanIndex.concat(rowSpanArr).sort(function (a, b) {return a.index - b.index;});\r\n rowSpanArr = [];\r\n }\r\n\r\n currentRow.insertBefore(newCell, currentCell.nextElementSibling);\r\n }\r\n } else { // horizontal\r\n const currentRowSpan = currentCell.rowSpan;\r\n newCell.colSpan = currentCell.colSpan;\r\n\r\n // rowspan > 1\r\n if (currentRowSpan > 1) {\r\n newCell.rowSpan = this._w.Math.floor(currentRowSpan/2);\r\n const newRowSpan = currentRowSpan - newCell.rowSpan;\r\n\r\n const rowSpanArr = [];\r\n const nextRowIndex = util.getArrayIndex(rows, currentRow) + newRowSpan;\r\n\r\n for (let i = 0, cells, colSpan; i < nextRowIndex; i++) {\r\n cells = rows[i].cells;\r\n colSpan = 0;\r\n for (let c = 0, cLen = cells.length, cell, cs, logcalIndex; c < cLen; c++) {\r\n logcalIndex = c + colSpan;\r\n if (logcalIndex >= index) break;\r\n\r\n cell = cells[c];\r\n cs = cell.rowSpan - 1;\r\n if (cs > 0 && cs + i >= nextRowIndex && logcalIndex < index) {\r\n rowSpanArr.push({\r\n index: logcalIndex,\r\n cs: cell.colSpan\r\n });\r\n }\r\n colSpan += cell.colSpan - 1;\r\n }\r\n }\r\n\r\n const nextRow = rows[nextRowIndex];\r\n const nextCells = nextRow.cells;\r\n let rs = rowSpanArr.shift();\r\n\r\n for (let c = 0, cLen = nextCells.length, colSpan = 0, cell, cs, logcalIndex, insertIndex; c < cLen; c++) {\r\n logcalIndex = c + colSpan;\r\n cell = nextCells[c];\r\n cs = cell.colSpan - 1;\r\n insertIndex = logcalIndex + cs + 1;\r\n\r\n if (rs && insertIndex >= rs.index) {\r\n colSpan += rs.cs;\r\n insertIndex += rs.cs;\r\n rs = rowSpanArr.shift();\r\n }\r\n \r\n if (insertIndex >= index || c === cLen - 1) {\r\n nextRow.insertBefore(newCell, cell.nextElementSibling);\r\n break;\r\n }\r\n\r\n colSpan += cs;\r\n }\r\n\r\n currentCell.rowSpan = newRowSpan;\r\n } else { // rowspan - 1\r\n newCell.rowSpan = currentCell.rowSpan;\r\n const newRow = util.createElement('TR');\r\n newRow.appendChild(newCell);\r\n\r\n for (let i = 0, cells; i < rowIndex; i++) {\r\n cells = rows[i].cells;\r\n if (cells.length === 0) return;\r\n\r\n for (let c = 0, cLen = cells.length; c < cLen; c++) {\r\n if (i + cells[c].rowSpan - 1 >= rowIndex) {\r\n cells[c].rowSpan += 1;\r\n }\r\n }\r\n }\r\n\r\n const physicalIndex = contextTable._physical_cellIndex;\r\n const cells = currentRow.cells;\r\n\r\n for (let c = 0, cLen = cells.length; c < cLen; c++) {\r\n if (c === physicalIndex) continue; \r\n cells[c].rowSpan += 1; \r\n }\r\n\r\n currentRow.parentNode.insertBefore(newRow, currentRow.nextElementSibling);\r\n }\r\n }\r\n\r\n this.focusEdge(currentCell);\r\n this.plugins.table.setPositionControllerDiv.call(this, currentCell, true);\r\n },\r\n\r\n mergeCells: function () {\r\n const tablePlugin = this.plugins.table;\r\n const contextTable = this.context.table;\r\n const util = this.util;\r\n\r\n const ref = tablePlugin._ref;\r\n const selectedCells = tablePlugin._selectedCells;\r\n const mergeCell = selectedCells[0];\r\n \r\n let emptyRowFirst = null;\r\n let emptyRowLast = null;\r\n let cs = (ref.ce - ref.cs) + 1;\r\n let rs = (ref.re - ref.rs) + 1;\r\n let mergeHTML = '';\r\n let row = null;\r\n\r\n for (let i = 1, len = selectedCells.length, cell, ch; i < len; i++) {\r\n cell = selectedCells[i];\r\n if (row !== cell.parentNode) row = cell.parentNode;\r\n\r\n ch = cell.children;\r\n for (let c = 0, cLen = ch.length; c < cLen; c++) {\r\n if (util.isFormatElement(ch[c]) && util.onlyZeroWidthSpace(ch[c].textContent)) {\r\n util.removeItem(ch[c]);\r\n } \r\n }\r\n\r\n mergeHTML += cell.innerHTML;\r\n util.removeItem(cell);\r\n\r\n if (row.cells.length === 0) {\r\n if (!emptyRowFirst) emptyRowFirst = row;\r\n else emptyRowLast = row;\r\n rs -= 1;\r\n }\r\n }\r\n\r\n if (emptyRowFirst) {\r\n const rows = contextTable._trElements;\r\n const rowIndexFirst = util.getArrayIndex(rows, emptyRowFirst);\r\n const rowIndexLast = util.getArrayIndex(rows, emptyRowLast || emptyRowFirst);\r\n const removeRows = [];\r\n \r\n for (let i = 0, cells; i <= rowIndexLast; i++) {\r\n cells = rows[i].cells;\r\n if (cells.length === 0) {\r\n removeRows.push(rows[i]);\r\n continue;\r\n }\r\n \r\n for (let c = 0, cLen = cells.length, cell, rs; c < cLen; c++) {\r\n cell = cells[c];\r\n rs = cell.rowSpan - 1;\r\n if (rs > 0 && i + rs >= rowIndexFirst) {\r\n cell.rowSpan -= util.getOverlapRangeAtIndex(rowIndexFirst, rowIndexLast, i, i + rs);\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0, len = removeRows.length; i < len; i++) {\r\n util.removeItem(removeRows[i]);\r\n }\r\n }\r\n\r\n mergeCell.innerHTML += mergeHTML;\r\n mergeCell.colSpan = cs;\r\n mergeCell.rowSpan = rs;\r\n\r\n this.controllersOff();\r\n tablePlugin.setActiveButton.call(this, true, false);\r\n tablePlugin.call_controller_tableEdit.call(this, mergeCell);\r\n\r\n util.addClass(mergeCell, 'se-table-selected-cell');\r\n this.focusEdge(mergeCell);\r\n },\r\n\r\n toggleHeader: function () {\r\n const util = this.util;\r\n const headerButton = this.context.table.headerButton;\r\n const active = util.hasClass(headerButton, 'active');\r\n const table = this.context.table._element;\r\n\r\n if (!active) {\r\n const header = util.createElement('THEAD');\r\n header.innerHTML = '' + this.plugins.table.createCells.call(this, 'th', this.context.table._logical_cellCnt, false) + '';\r\n table.insertBefore(header, table.firstElementChild);\r\n } else {\r\n util.removeItem(table.querySelector('thead'));\r\n }\r\n\r\n util.toggleClass(headerButton, 'active');\r\n\r\n if (/TH/i.test(this.context.table._tdElement.nodeName)) {\r\n this.controllersOff();\r\n } else {\r\n this.plugins.table.setPositionControllerDiv.call(this, this.context.table._tdElement, false);\r\n }\r\n },\r\n\r\n setTableStyle: function (styles) {\r\n const contextTable = this.context.table;\r\n const tableElement = contextTable._element;\r\n let icon, span, sizeIcon, text;\r\n\r\n if (styles.indexOf('width') > -1) {\r\n icon = contextTable.resizeButton.firstElementChild;\r\n span = contextTable.resizeText;\r\n\r\n if (!contextTable._maxWidth) {\r\n sizeIcon = contextTable.icons.expansion;\r\n text = contextTable.maxText;\r\n contextTable.columnFixedButton.style.display = 'none';\r\n this.util.removeClass(tableElement, 'se-table-size-100');\r\n this.util.addClass(tableElement, 'se-table-size-auto');\r\n } else {\r\n sizeIcon = contextTable.icons.reduction;\r\n text = contextTable.minText;\r\n contextTable.columnFixedButton.style.display = 'block';\r\n this.util.removeClass(tableElement, 'se-table-size-auto');\r\n this.util.addClass(tableElement, 'se-table-size-100');\r\n }\r\n \r\n this.util.changeElement(icon, sizeIcon);\r\n this.util.changeTxt(span, text);\r\n }\r\n\r\n if (styles.indexOf('column') > -1) {\r\n if (!contextTable._fixedColumn) {\r\n this.util.removeClass(tableElement, 'se-table-layout-fixed');\r\n this.util.addClass(tableElement, 'se-table-layout-auto');\r\n this.util.removeClass(contextTable.columnFixedButton, 'active');\r\n } else {\r\n this.util.removeClass(tableElement, 'se-table-layout-auto');\r\n this.util.addClass(tableElement, 'se-table-layout-fixed');\r\n this.util.addClass(contextTable.columnFixedButton, 'active');\r\n }\r\n \r\n }\r\n },\r\n\r\n setActiveButton: function (fixedCell, selectedCell) {\r\n const contextTable = this.context.table;\r\n\r\n if (/^TH$/i.test(fixedCell.nodeName)) {\r\n contextTable.insertRowAboveButton.setAttribute('disabled', true);\r\n contextTable.insertRowBelowButton.setAttribute('disabled', true);\r\n } else {\r\n contextTable.insertRowAboveButton.removeAttribute('disabled');\r\n contextTable.insertRowBelowButton.removeAttribute('disabled');\r\n }\r\n\r\n if (!selectedCell || fixedCell === selectedCell) {\r\n contextTable.splitButton.removeAttribute('disabled');\r\n contextTable.mergeButton.setAttribute('disabled', true);\r\n } else {\r\n contextTable.splitButton.setAttribute('disabled', true);\r\n contextTable.mergeButton.removeAttribute('disabled');\r\n }\r\n },\r\n\r\n // multi selecte\r\n _bindOnSelect: null,\r\n _bindOffSelect: null,\r\n _bindOffShift: null,\r\n _selectedCells: null,\r\n _shift: false,\r\n _fixedCell: null,\r\n _fixedCellName: null,\r\n _selectedCell: null,\r\n _selectedTable: null,\r\n _ref: null,\r\n _toggleEditor: function (enabled) {\r\n this.context.element.wysiwyg.setAttribute('contenteditable', enabled);\r\n if (enabled) this.util.removeClass(this.context.element.wysiwyg, 'se-disabled');\r\n else this.util.addClass(this.context.element.wysiwyg, 'se-disabled');\r\n },\r\n\r\n _offCellMultiSelect: function (e) {\r\n e.stopPropagation();\r\n const tablePlugin = this.plugins.table;\r\n\r\n if (!tablePlugin._shift) {\r\n tablePlugin._removeEvents.call(this);\r\n tablePlugin._toggleEditor.call(this, true);\r\n } else if (tablePlugin._initBind) {\r\n this._wd.removeEventListener('touchmove', tablePlugin._initBind);\r\n tablePlugin._initBind = null;\r\n }\r\n\r\n if (!tablePlugin._fixedCell || !tablePlugin._selectedTable) return;\r\n \r\n tablePlugin.setActiveButton.call(this, tablePlugin._fixedCell, tablePlugin._selectedCell);\r\n tablePlugin.call_controller_tableEdit.call(this, tablePlugin._selectedCell || tablePlugin._fixedCell);\r\n\r\n tablePlugin._selectedCells = tablePlugin._selectedTable.querySelectorAll('.se-table-selected-cell');\r\n if (tablePlugin._selectedCell && tablePlugin._fixedCell) this.focusEdge(tablePlugin._selectedCell);\r\n\r\n if (!tablePlugin._shift) {\r\n tablePlugin._fixedCell = null;\r\n tablePlugin._selectedCell = null;\r\n tablePlugin._fixedCellName = null;\r\n }\r\n },\r\n\r\n _onCellMultiSelect: function (e) {\r\n this._antiBlur = true;\r\n const tablePlugin = this.plugins.table;\r\n const target = this.util.getParentElement(e.target, this.util.isCell);\r\n\r\n if (tablePlugin._shift) {\r\n if (target === tablePlugin._fixedCell) tablePlugin._toggleEditor.call(this, true);\r\n else tablePlugin._toggleEditor.call(this, false);\r\n } else if (!tablePlugin._ref) {\r\n if (target === tablePlugin._fixedCell) return;\r\n else tablePlugin._toggleEditor.call(this, false);\r\n }\r\n\r\n if (!target || target === tablePlugin._selectedCell || tablePlugin._fixedCellName !== target.nodeName || \r\n tablePlugin._selectedTable !== this.util.getParentElement(target, 'TABLE')) {\r\n return;\r\n }\r\n\r\n tablePlugin._selectedCell = target;\r\n tablePlugin._setMultiCells.call(this, tablePlugin._fixedCell, target);\r\n },\r\n\r\n _setMultiCells: function (startCell, endCell) {\r\n const tablePlugin = this.plugins.table;\r\n const rows = tablePlugin._selectedTable.rows;\r\n const util = this.util;\r\n\r\n const selectedCells = tablePlugin._selectedTable.querySelectorAll('.se-table-selected-cell');\r\n for (let i = 0, len = selectedCells.length; i < len; i++) {\r\n util.removeClass(selectedCells[i], 'se-table-selected-cell');\r\n }\r\n\r\n if (startCell === endCell) {\r\n util.addClass(startCell, 'se-table-selected-cell');\r\n if (!tablePlugin._shift) return;\r\n }\r\n\r\n let findSelectedCell = true;\r\n let spanIndex = [];\r\n let rowSpanArr = [];\r\n const ref = tablePlugin._ref = {_i: 0, cs: null, ce: null, rs: null, re: null};\r\n\r\n for (let i = 0, len = rows.length, cells, colSpan; i < len; i++) {\r\n cells = rows[i].cells;\r\n colSpan = 0;\r\n\r\n for (let c = 0, cLen = cells.length, cell, logcalIndex, cs, rs; c < cLen; c++) {\r\n cell = cells[c];\r\n cs = cell.colSpan - 1;\r\n rs = cell.rowSpan - 1;\r\n logcalIndex = c + colSpan;\r\n\r\n if (spanIndex.length > 0) {\r\n for (let r = 0, arr; r < spanIndex.length; r++) {\r\n arr = spanIndex[r];\r\n if (arr.row > i) continue;\r\n if (logcalIndex >= arr.index) {\r\n colSpan += arr.cs;\r\n logcalIndex += arr.cs;\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n }\r\n } else if (c === cLen - 1) {\r\n arr.rs -= 1;\r\n arr.row = i + 1;\r\n if (arr.rs < 1) {\r\n spanIndex.splice(r, 1);\r\n r--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (findSelectedCell) {\r\n if (cell === startCell || cell === endCell) {\r\n ref.cs = ref.cs !== null && ref.cs < logcalIndex ? ref.cs : logcalIndex;\r\n ref.ce = ref.ce !== null && ref.ce > logcalIndex + cs ? ref.ce : logcalIndex + cs;\r\n ref.rs = ref.rs !== null && ref.rs < i ? ref.rs : i;\r\n ref.re = ref.re !== null && ref.re > i + rs ? ref.re : i + rs;\r\n ref._i += 1;\r\n }\r\n \r\n if (ref._i === 2) {\r\n findSelectedCell = false;\r\n spanIndex = [];\r\n rowSpanArr = [];\r\n i = -1;\r\n break;\r\n }\r\n } else if (util.getOverlapRangeAtIndex(ref.cs, ref.ce, logcalIndex, logcalIndex + cs) && util.getOverlapRangeAtIndex(ref.rs, ref.re, i, i + rs)) {\r\n const newCs = ref.cs < logcalIndex ? ref.cs : logcalIndex;\r\n const newCe = ref.ce > logcalIndex + cs ? ref.ce : logcalIndex + cs;\r\n const newRs = ref.rs < i ? ref.rs : i;\r\n const newRe = ref.re > i + rs ? ref.re : i + rs;\r\n\r\n if (ref.cs !== newCs || ref.ce !== newCe || ref.rs !== newRs || ref.re !== newRe) {\r\n ref.cs = newCs;\r\n ref.ce = newCe;\r\n ref.rs = newRs;\r\n ref.re = newRe;\r\n i = -1;\r\n\r\n spanIndex = [];\r\n rowSpanArr = [];\r\n break;\r\n }\r\n\r\n util.addClass(cell, 'se-table-selected-cell');\r\n }\r\n\r\n if (rs > 0) {\r\n rowSpanArr.push({\r\n index: logcalIndex,\r\n cs: cs + 1,\r\n rs: rs,\r\n row: -1\r\n });\r\n }\r\n\r\n colSpan += cell.colSpan - 1;\r\n }\r\n\r\n spanIndex = spanIndex.concat(rowSpanArr).sort(function (a, b) {return a.index - b.index;});\r\n rowSpanArr = [];\r\n }\r\n },\r\n\r\n _removeEvents: function () {\r\n const tablePlugin = this.plugins.table;\r\n\r\n if (tablePlugin._initBind) {\r\n this._wd.removeEventListener('touchmove', tablePlugin._initBind);\r\n tablePlugin._initBind = null;\r\n }\r\n\r\n if (tablePlugin._bindOnSelect) {\r\n this._wd.removeEventListener('mousedown', tablePlugin._bindOnSelect);\r\n this._wd.removeEventListener('mousemove', tablePlugin._bindOnSelect);\r\n tablePlugin._bindOnSelect = null;\r\n }\r\n\r\n if (tablePlugin._bindOffSelect) {\r\n this._wd.removeEventListener('mouseup', tablePlugin._bindOffSelect);\r\n tablePlugin._bindOffSelect = null;\r\n }\r\n\r\n if (tablePlugin._bindOffShift) {\r\n this._wd.removeEventListener('keyup', tablePlugin._bindOffShift);\r\n tablePlugin._bindOffShift = null;\r\n }\r\n },\r\n\r\n _initBind: null,\r\n onTableCellMultiSelect: function (tdElement, shift) {\r\n const tablePlugin = this.plugins.table;\r\n\r\n tablePlugin._removeEvents.call(this);\r\n this.controllersOff();\r\n\r\n tablePlugin._shift = shift;\r\n tablePlugin._fixedCell = tdElement;\r\n tablePlugin._fixedCellName = tdElement.nodeName;\r\n tablePlugin._selectedTable = this.util.getParentElement(tdElement, 'TABLE');\r\n\r\n const selectedCells = tablePlugin._selectedTable.querySelectorAll('.se-table-selected-cell');\r\n for (let i = 0, len = selectedCells.length; i < len; i++) {\r\n this.util.removeClass(selectedCells[i], 'se-table-selected-cell');\r\n }\r\n\r\n this.util.addClass(tdElement, 'se-table-selected-cell');\r\n \r\n tablePlugin._bindOnSelect = tablePlugin._onCellMultiSelect.bind(this);\r\n tablePlugin._bindOffSelect = tablePlugin._offCellMultiSelect.bind(this);\r\n\r\n if (!shift) {\r\n this._wd.addEventListener('mousemove', tablePlugin._bindOnSelect, false);\r\n } else {\r\n tablePlugin._bindOffShift = function () {\r\n this.controllersOn(this.context.table.resizeDiv, this.context.table.tableController, this.plugins.table.init.bind(this), tdElement, 'table');\r\n if (!tablePlugin._ref) this.controllersOff();\r\n }.bind(this);\r\n\r\n this._wd.addEventListener('keyup', tablePlugin._bindOffShift, false);\r\n this._wd.addEventListener('mousedown', tablePlugin._bindOnSelect, false);\r\n }\r\n\r\n this._wd.addEventListener('mouseup', tablePlugin._bindOffSelect, false);\r\n tablePlugin._initBind = tablePlugin.init.bind(this);\r\n this._wd.addEventListener('touchmove', tablePlugin._initBind, false);\r\n },\r\n\r\n onClick_tableController: function (e) {\r\n e.stopPropagation();\r\n const target = e.target.getAttribute('data-command') ? e.target : e.target.parentNode;\r\n\r\n if (target.getAttribute('disabled')) return;\r\n\r\n const command = target.getAttribute('data-command');\r\n const value = target.getAttribute('data-value');\r\n const option = target.getAttribute('data-option');\r\n const tablePlugin = this.plugins.table;\r\n \r\n if (typeof tablePlugin._closeSplitMenu === 'function') {\r\n tablePlugin._closeSplitMenu();\r\n if (command === 'onsplit') return;\r\n }\r\n\r\n if (!command) return;\r\n\r\n e.preventDefault();\r\n const contextTable = this.context.table;\r\n\r\n switch (command) {\r\n case 'insert':\r\n case 'delete':\r\n tablePlugin.editTable.call(this, value, option);\r\n break;\r\n case 'header':\r\n tablePlugin.toggleHeader.call(this);\r\n break;\r\n case 'onsplit':\r\n tablePlugin.openSplitMenu.call(this);\r\n break;\r\n case 'split':\r\n tablePlugin.splitCells.call(this, value);\r\n break;\r\n case 'merge':\r\n tablePlugin.mergeCells.call(this);\r\n break;\r\n case 'resize':\r\n contextTable._maxWidth = !contextTable._maxWidth;\r\n tablePlugin.setTableStyle.call(this, 'width');\r\n tablePlugin.setPositionControllerTop.call(this, contextTable._element);\r\n tablePlugin.setPositionControllerDiv.call(this, contextTable._tdElement, tablePlugin._shift);\r\n break;\r\n case 'layout':\r\n contextTable._fixedColumn = !contextTable._fixedColumn;\r\n tablePlugin.setTableStyle.call(this, 'column');\r\n tablePlugin.setPositionControllerTop.call(this, contextTable._element);\r\n tablePlugin.setPositionControllerDiv.call(this, contextTable._tdElement, tablePlugin._shift);\r\n break;\r\n case 'remove':\r\n const emptyDiv = contextTable._element.parentNode;\r\n this.util.removeItem(contextTable._element);\r\n this.controllersOff();\r\n\r\n if (emptyDiv !== this.context.element.wysiwyg) this.util.removeItemAllParents(emptyDiv, function (current) { return current.childNodes.length === 0; }, null);\r\n this.focus();\r\n }\r\n\r\n // history stack\r\n this.history.push(false);\r\n }\r\n};\r\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'formatBlock',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.formatBlock = {\n targetText: targetElement.querySelector('.txt'),\n targetTooltip: targetElement.parentNode.querySelector('.se-tooltip-text'),\n _formatList: null,\n currentFormat: ''\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n\n /** add event listeners */\n listDiv.querySelector('ul').addEventListener('click', this.pickUp.bind(core));\n context.formatBlock._formatList = listDiv.querySelectorAll('li button');\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null;\n },\n\n setSubmenu: function (core) {\n const option = core.options;\n const lang_toolbar = core.lang.toolbar;\n const listDiv = core.util.createElement('DIV');\n listDiv.className = 'se-submenu se-list-layer se-list-format';\n\n const defaultFormats = ['p', 'div', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n const formatList = !option.formats || option.formats.length === 0 ? defaultFormats : option.formats;\n\n let list = '
      ';\n for (let i = 0, len = formatList.length, format, tagName, command, name, h, attrs, className; i < len; i++) {\n format = formatList[i];\n \n if (typeof format === 'string' && defaultFormats.indexOf(format) > -1) {\n tagName = format.toLowerCase();\n command = tagName === 'blockquote' ? 'range' : tagName === 'pre' ? 'free' : 'replace';\n h = /^h/.test(tagName) ? tagName.match(/\\d+/)[0] : '';\n name = lang_toolbar['tag_' + (h ? 'h' : tagName)] + h;\n className = '';\n attrs = '';\n } else {\n tagName = format.tag.toLowerCase();\n command = format.command;\n name = format.name || tagName;\n className = format.class;\n attrs = className ? ' class=\"' + className + '\"' : '';\n }\n\n list += '
    • ' +\n '
    • ';\n }\n list += '
    ';\n\n listDiv.innerHTML = list;\n\n return listDiv;\n },\n\n /**\n * @Override core\n */\n active: function (element) {\n let formatTitle = this.lang.toolbar.formats;\n const target = this.context.formatBlock.targetText;\n\n if (!element) {\n this.util.changeTxt(target, formatTitle);\n } else if (this.util.isFormatElement(element)) {\n const formatContext = this.context.formatBlock;\n const formatList = formatContext._formatList;\n const nodeName = element.nodeName.toLowerCase();\n const className = (element.className.match(/(\\s|^)__se__format__[^\\s]+/) || [''])[0].trim();\n\n for (let i = 0, len = formatList.length, f; i < len; i++) {\n f = formatList[i];\n if (nodeName === f.getAttribute('data-value') && className === f.getAttribute('data-class')) {\n formatTitle = f.title;\n break;\n }\n }\n\n this.util.changeTxt(target, formatTitle);\n target.setAttribute('data-value', nodeName);\n target.setAttribute('data-class', className);\n\n return true;\n }\n\n return false;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const formatContext = this.context.formatBlock;\n const formatList = formatContext._formatList;\n const target = formatContext.targetText;\n const currentFormat = (target.getAttribute('data-value') || '') + (target.getAttribute('data-class') || '');\n\n if (currentFormat !== formatContext.currentFormat) {\n for (let i = 0, len = formatList.length, f; i < len; i++) {\n f = formatList[i];\n if (currentFormat === f.getAttribute('data-value') + f.getAttribute('data-class')) {\n this.util.addClass(f, 'active');\n } else {\n this.util.removeClass(f, 'active');\n }\n }\n\n formatContext.currentFormat = currentFormat;\n }\n },\n\n pickUp: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n let target = e.target;\n let command = null, value = null, tag = null, className = '';\n \n while (!command && !/UL/i.test(target.tagName)) {\n command = target.getAttribute('data-command');\n value = target.getAttribute('data-value');\n className = target.getAttribute('data-class');\n if (command) {\n tag = target.firstChild;\n break;\n }\n target = target.parentNode;\n }\n\n if (!command) return;\n\n // blockquote\n if (command === 'range') {\n const rangeElement = tag.cloneNode(false);\n this.applyRangeFormatElement(rangeElement);\n }\n // free, replace\n else {\n let range = this.getRange();\n let selectedFormsts = this.getSelectedElementsAndComponents(false);\n\n if (selectedFormsts.length === 0) {\n range = this.getRange_addLine(range, null);\n selectedFormsts = this.getSelectedElementsAndComponents(false);\n if (selectedFormsts.length === 0) return;\n }\n\n const startOffset = range.startOffset;\n const endOffset = range.endOffset;\n\n const util = this.util;\n let first = selectedFormsts[0];\n let last = selectedFormsts[selectedFormsts.length - 1];\n const firstPath = util.getNodePath(range.startContainer, first, null, null);\n const lastPath = util.getNodePath(range.endContainer, last, null, null);\n \n // remove selected list\n const rlist = this.detachList(selectedFormsts, false);\n if (rlist.sc) first = rlist.sc;\n if (rlist.ec) last = rlist.ec;\n\n // change format tag\n this.setRange(util.getNodeFromPath(firstPath, first), startOffset, util.getNodeFromPath(lastPath, last), endOffset);\n const modifiedFormsts = this.getSelectedElementsAndComponents(false);\n\n // free format\n if (command === 'free') {\n const len = modifiedFormsts.length - 1;\n let parentNode = modifiedFormsts[len].parentNode;\n let freeElement = tag.cloneNode(false);\n const focusElement = freeElement;\n \n for (let i = len, f, html, before, next, inner, isComp, first = true; i >= 0; i--) {\n f = modifiedFormsts[i];\n if (f === (!modifiedFormsts[i + 1] ? null : modifiedFormsts[i + 1].parentNode)) continue;\n \n isComp = util.isComponent(f);\n html = isComp ? '' : f.innerHTML.replace(/(?!>)\\s+(?=<)|\\n/g, ' ');\n before = util.getParentElement(f, function (current) {\n return current.parentNode === parentNode;\n });\n \n if (parentNode !== f.parentNode || isComp) {\n if (util.isFormatElement(parentNode)) {\n parentNode.parentNode.insertBefore(freeElement, parentNode.nextSibling);\n parentNode = parentNode.parentNode;\n } else {\n parentNode.insertBefore(freeElement, before ? before.nextSibling : null);\n parentNode = f.parentNode;\n }\n\n next = freeElement.nextSibling;\n if (next && freeElement.nodeName === next.nodeName && util.isSameAttributes(freeElement, next)) {\n freeElement.innerHTML += '
    ' + next.innerHTML;\n util.removeItem(next);\n }\n\n freeElement = tag.cloneNode(false);\n first = true;\n }\n \n inner = freeElement.innerHTML;\n freeElement.innerHTML = ((first || !html || !inner || /
    $/i.test(html)) ? html : html + '
    ') + inner;\n\n if (i === 0) {\n parentNode.insertBefore(freeElement, f);\n next = f.nextSibling;\n if (next && freeElement.nodeName === next.nodeName && util.isSameAttributes(freeElement, next)) {\n freeElement.innerHTML += '
    ' + next.innerHTML;\n util.removeItem(next);\n }\n\n const prev = freeElement.previousSibling;\n if (prev && freeElement.nodeName === prev.nodeName && util.isSameAttributes(freeElement, prev)) {\n prev.innerHTML += '
    ' + freeElement.innerHTML;\n util.removeItem(freeElement);\n }\n }\n\n if (!isComp) util.removeItem(f);\n if (!!html) first = false;\n }\n \n this.setRange(focusElement, 0, focusElement, 0);\n }\n // replace format\n else {\n for (let i = 0, len = modifiedFormsts.length, node, newFormat; i < len; i++) {\n node = modifiedFormsts[i];\n \n if ((node.nodeName.toLowerCase() !== value.toLowerCase() || (node.className.match(/(\\s|^)__se__format__[^\\s]+/) || [''])[0].trim() !== className) && !util.isComponent(node)) {\n newFormat = tag.cloneNode(false);\n util.copyFormatAttributes(newFormat, node);\n newFormat.innerHTML = node.innerHTML;\n \n node.parentNode.replaceChild(newFormat, node);\n }\n \n if (i === 0) first = newFormat || node;\n if (i === len - 1) last = newFormat || node;\n newFormat = null;\n }\n \n this.setRange(util.getNodeFromPath(firstPath, first), startOffset, util.getNodeFromPath(lastPath, last), endOffset);\n }\n\n // history stack\n this.history.push(false);\n }\n\n this.submenuOff();\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 20197 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'lineHeight',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.lineHeight = {\n _sizeList: null,\n currentSize: -1\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n let listUl = listDiv.querySelector('ul');\n\n /** add event listeners */\n listUl.addEventListener('click', this.pickup.bind(core));\n\n context.lineHeight._sizeList = listUl.querySelectorAll('li button');\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null, listUl = null;\n },\n\n setSubmenu: function (core) {\n const option = core.options;\n const lang = core.lang;\n const listDiv = core.util.createElement('DIV');\n\n listDiv.className = 'se-submenu se-list-layer';\n\n const sizeList = !option.lineHeights ? [\n {text: '1', value: 1},\n {text: '1.15', value: 1.15},\n {text: '1.5', value: 1.5},\n {text: '2', value: 2}\n ] : option.lineHeights;\n\n let list = '
    ' +\n '
      ' +\n '
    • ';\n for (let i = 0, len = sizeList.length, size; i < len; i++) {\n size = sizeList[i];\n list += '
    • ';\n }\n list += '
    ';\n\n listDiv.innerHTML = list;\n\n return listDiv;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const lineHeightContext = this.context.lineHeight;\n const sizeList = lineHeightContext._sizeList;\n const format = this.util.getFormatElement(this.getSelectionNode());\n const currentSize = !format ? '' : format.style.lineHeight + '';\n\n if (currentSize !== lineHeightContext.currentSize) {\n for (let i = 0, len = sizeList.length; i < len; i++) {\n if (currentSize === sizeList[i].getAttribute('data-value')) {\n this.util.addClass(sizeList[i], 'active');\n } else {\n this.util.removeClass(sizeList[i], 'active');\n }\n }\n\n lineHeightContext.currentSize = currentSize;\n }\n },\n\n pickup: function (e) {\n if (!/^BUTTON$/i.test(e.target.tagName)) return false;\n \n e.preventDefault();\n e.stopPropagation();\n\n const value = e.target.getAttribute('data-value') || '';\n const formats = this.getSelectedElements();\n\n for (let i = 0, len = formats.length; i < len; i++) {\n formats[i].style.lineHeight = value;\n }\n\n this.submenuOff();\n\n // history stack\n this.history.push(false);\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'template',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.template = {\n selectedIndex: -1\n };\n\n /** set submenu */\n let templateDiv = this.setSubmenu(core);\n\n /** add event listeners */\n templateDiv.querySelector('ul').addEventListener('click', this.pickup.bind(core));\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, templateDiv);\n\n /** empty memory */\n templateDiv = null;\n },\n\n setSubmenu: function (core) {\n const templateList = core.options.templates;\n if (!templateList || templateList.length === 0) {\n throw Error('[SUNEDITOR.plugins.template.fail] To use the \"template\" plugin, please define the \"templates\" option.');\n }\n\n const listDiv = core.util.createElement('DIV');\n listDiv.className = 'se-list-layer';\n\n let list = '
    ' +\n '
      ';\n for (let i = 0, len = templateList.length, t; i < len; i++) {\n t = templateList[i];\n list += '
    • ';\n }\n list += '
    ';\n\n listDiv.innerHTML = list;\n\n return listDiv;\n },\n\n pickup: function (e) {\n if (!/^BUTTON$/i.test(e.target.tagName)) return false;\n\n e.preventDefault();\n e.stopPropagation();\n\n this.context.template.selectedIndex = e.target.getAttribute('data-value') * 1;\n const temp = this.options.templates[this.context.template.selectedIndex];\n\n if (temp.html) {\n this.setContents(temp.html);\n } else {\n this.submenuOff();\n throw Error('[SUNEDITOR.template.fail] cause : \"templates[i].html not found\"');\n }\n \n this.submenuOff();\n }\n};","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'paragraphStyle',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.paragraphStyle = {\n _classList: null\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n\n /** add event listeners */\n listDiv.querySelector('ul').addEventListener('click', this.pickUp.bind(core));\n\n context.paragraphStyle._classList = listDiv.querySelectorAll('li button');\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null;\n },\n\n setSubmenu: function (core) {\n const option = core.options;\n const listDiv = core.util.createElement('DIV');\n listDiv.className = 'se-submenu se-list-layer se-list-format';\n\n const menuLang = core.lang.menu;\n const defaultList = {\n spaced: {\n name: menuLang.spaced,\n class: '__se__p-spaced',\n _class: ''\n },\n bordered: {\n name: menuLang.bordered,\n class: '__se__p-bordered',\n _class: ''\n },\n neon: {\n name: menuLang.neon,\n class: '__se__p-neon',\n _class: ''\n }\n };\n const paragraphStyles = !option.paragraphStyles || option.paragraphStyles.length === 0 ? ['spaced', 'bordered', 'neon'] : option.paragraphStyles;\n\n let list = '
      ';\n for (let i = 0, len = paragraphStyles.length, p, name, attrs, _class; i < len; i++) {\n p = paragraphStyles[i];\n\n if (typeof p === 'string') {\n const defaultStyle = defaultList[p.toLowerCase()];\n if (!defaultStyle) continue;\n p = defaultStyle;\n }\n\n name = p.name;\n attrs = p.class ? ' class=\"' + p.class + '\"' : '';\n _class = p._class;\n\n list += '
    • ' +\n '
    ' +\n '';\n }\n list += '';\n\n listDiv.innerHTML = list;\n\n return listDiv;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const paragraphContext = this.context.paragraphStyle;\n const paragraphList = paragraphContext._classList;\n const currentFormat = this.util.getFormatElement(this.getSelectionNode());\n\n for (let i = 0, len = paragraphList.length; i < len; i++) {\n if (this.util.hasClass(currentFormat, paragraphList[i].getAttribute('data-value'))) {\n this.util.addClass(paragraphList[i], 'active');\n } else {\n this.util.removeClass(paragraphList[i], 'active');\n }\n }\n },\n\n pickUp: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n let target = e.target;\n let value = null;\n \n while (!/^UL$/i.test(target.tagName)) {\n value = target.getAttribute('data-value');\n if (value) break;\n target = target.parentNode;\n }\n\n if (!value) return;\n\n let selectedFormsts = this.getSelectedElements();\n if (selectedFormsts.length === 0) {\n this.getRange_addLine(this.getRange(), null);\n selectedFormsts = this.getSelectedElements();\n if (selectedFormsts.length === 0) return;\n }\n\n // change format class\n const toggleClass = this.util.hasClass(target, 'active') ? this.util.removeClass.bind(this.util) : this.util.addClass.bind(this.util);\n for (let i = 0, len = selectedFormsts.length; i < len; i++) {\n toggleClass(selectedFormsts[i], value);\n }\n\n this.submenuOff();\n\n // history stack\n this.history.push(false);\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'textStyle',\n display: 'submenu',\n add: function (core, targetElement) {\n const context = core.context;\n context.textStyle = {\n _styleList: null\n };\n\n /** set submenu */\n let listDiv = this.setSubmenu(core);\n let listUl = listDiv.querySelector('ul');\n\n /** add event listeners */\n listUl.addEventListener('click', this.pickup.bind(core));\n\n context.textStyle._styleList = listDiv.querySelectorAll('li button');\n\n /** append target button menu */\n core.initMenuTarget(this.name, targetElement, listDiv);\n\n /** empty memory */\n listDiv = null, listUl = null;\n },\n\n setSubmenu: function (core) {\n const option = core.options;\n const listDiv = core.util.createElement('DIV');\n listDiv.className = 'se-submenu se-list-layer se-list-format';\n\n const defaultList = {\n code: {\n name: core.lang.menu.code,\n class: '__se__t-code',\n tag: 'code',\n },\n translucent: {\n name: core.lang.menu.translucent,\n style: 'opacity: 0.5;',\n tag: 'span',\n },\n shadow: {\n name: core.lang.menu.shadow,\n class: '__se__t-shadow',\n tag: 'span',\n }\n };\n const styleList = !option.textStyles ? core._w.Object.keys(defaultList) : option.textStyles;\n\n let list = '
      ';\n for (let i = 0, len = styleList.length, t, tag, name, attrs, command, value, _class; i < len; i++) {\n t = styleList[i];\n attrs = '', value = '', command = [];\n\n if (typeof t === 'string') {\n const defaultStyle = defaultList[t.toLowerCase()];\n if (!defaultStyle) continue;\n t = defaultStyle;\n }\n\n name = t.name;\n tag = t.tag || 'span';\n _class = t._class;\n\n if (t.style) {\n attrs += ' style=\"' + t.style + '\"';\n value += t.style.replace(/:[^;]+(;|$)\\s*/g, ',');\n command.push('style');\n }\n if (t.class) {\n attrs += ' class=\"' + t.class + '\"';\n value += '.' + t.class.trim().replace(/\\s+/g, ',.');\n command.push('class');\n }\n\n value = value.replace(/,$/, '');\n\n list += '
    • ' +\n '
    • ';\n }\n list += '
    ';\n\n listDiv.innerHTML = list;\n\n return listDiv;\n },\n\n /**\n * @Override submenu\n */\n on: function () {\n const util = this.util;\n const textStyleContext = this.context.textStyle;\n const styleButtonList = textStyleContext._styleList;\n const selectionNode = this.getSelectionNode();\n\n for (let i = 0, len = styleButtonList.length, btn, data, active; i < len; i++) {\n btn = styleButtonList[i];\n data = btn.getAttribute('data-value').split(',');\n \n for (let v = 0, node, value; v < data.length; v++) {\n node = selectionNode;\n active = false;\n \n while (node && !util.isFormatElement(node) && !util.isComponent(node)) {\n if (node.nodeName.toLowerCase() === btn.getAttribute('data-command').toLowerCase()) {\n value = data[v];\n if (/^\\./.test(value) ? util.hasClass(node, value.replace(/^\\./, '')) : !!node.style[value]) {\n active = true;\n break;\n }\n }\n node = node.parentNode;\n }\n\n if (!active) break;\n }\n\n active ? util.addClass(btn, 'active') : util.removeClass(btn, 'active');\n }\n\n },\n\n pickup: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n let target = e.target;\n let command = null, tag = null;\n \n while (!command && !/UL/i.test(target.tagName)) {\n command = target.getAttribute('data-command');\n if (command) {\n tag = target.firstChild;\n break;\n }\n target = target.parentNode;\n }\n\n if (!command) return;\n\n const checkStyles = tag.style.cssText.replace(/:.+(;|$)/g, ',').split(',');\n checkStyles.pop();\n\n const classes = tag.classList;\n for (let i = 0, len = classes.length; i < len; i++) {\n checkStyles.push('.' + classes[i]);\n }\n\n const newNode = this.util.hasClass(target, 'active') ? null : tag.cloneNode(false);\n const removeNodes = newNode ? null : [tag.nodeName];\n this.nodeChange(newNode, checkStyles, removeNodes, true);\n\n this.submenuOff();\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2018 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'selectMenu',\n add: function (core) {\n core.context.selectMenu = {\n caller: {},\n callerContext: null\n };\n },\n\n setForm: function () {\n return '
    ';\n },\n\n createList: function (listContext, items, html) {\n listContext.form.innerHTML = '
      ' + html + '
    ';\n listContext.items = items;\n listContext.menus = listContext.form.querySelectorAll('li');\n },\n\n initEvent: function (pluginName, forms) {\n const form = forms.querySelector('.se-select-list');\n const context = this.context.selectMenu.caller[pluginName] = {\n form: form,\n items: [],\n menus: [],\n index: -1,\n item: null,\n clickMethod: null,\n callerName: pluginName\n };\n\n form.addEventListener('mousedown', this.plugins.selectMenu.onMousedown_list);\n form.addEventListener('mousemove', this.plugins.selectMenu.onMouseMove_list.bind(this, context));\n form.addEventListener('click', this.plugins.selectMenu.onClick_list.bind(this, context));\n },\n\n onMousedown_list: function (e) {\n e.preventDefault();\n e.stopPropagation();\n },\n\n onMouseMove_list: function (context, e) {\n this.util.addClass(context.form, '__se_select-menu-mouse-move');\n const index = e.target.getAttribute('data-index');\n if (!index) return;\n context.index = index * 1;\n },\n\n onClick_list: function (context, e) {\n const index = e.target.getAttribute('data-index');\n if (!index) return;\n context.clickMethod.call(this, context.items[index]);\n },\n\n moveItem: function (listContext, num) {\n this.util.removeClass(listContext.form, '__se_select-menu-mouse-move');\n num = listContext.index + num;\n const menus = listContext.menus;\n const len = menus.length;\n const selectIndex = listContext.index = num >= len ? 0 : num < 0 ? len - 1 : num;\n \n for (let i = 0; i < len; i++) {\n if (i === selectIndex) {\n this.util.addClass(menus[i], 'active');\n } else {\n this.util.removeClass(menus[i], 'active');\n }\n }\n\n listContext.item = listContext.items[selectIndex];\n },\n\n getItem: function (listContext, index) {\n index = (!index || index < 0) ? listContext.index : index;\n return listContext.items[index];\n },\n\n on: function (callerName, clickMethod) {\n const listContext = this.context.selectMenu.caller[callerName];\n this.context.selectMenu.callerContext = listContext;\n listContext.clickMethod = clickMethod;\n listContext.callerName = callerName;\n },\n\n open: function (listContext, positionHandler) {\n const form = listContext.form;\n form.style.visibility = 'hidden';\n form.style.display = 'block';\n positionHandler(form);\n form.style.visibility = '';\n },\n\n close: function (listContext) {\n listContext.form.style.display = 'none';\n listContext.items = [];\n listContext.menus = [];\n listContext.index = -1;\n listContext.item = null;\n },\n\n init: function (listContext) {\n if (!listContext) return;\n listContext.items = [];\n listContext.menus = [];\n listContext.index = -1;\n listContext.item = null;\n listContext.callerName = '';\n this.context.selectMenu.callerContext = null;\n }\n};","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nimport selectMenu from './_selectMenu';\n\nexport default {\n name: 'anchor',\n add: function (core) {\n core.addModule([selectMenu]);\n \n core.context.anchor = {\n caller: {},\n forms: this.setDialogForm(core),\n host: (core._w.location.origin + core._w.location.pathname).replace(/\\/$/, ''),\n callerContext: null\n };\n },\n\n /** dialog */\n setDialogForm: function (core) {\n const lang = core.lang;\n const relList = core.options.linkRel;\n const defaultRel = (core.options.linkRelDefault.default || '').split(' ');\n const icons = core.icons;\n const forms = core.util.createElement('DIV');\n\n let html = '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n core.plugins.selectMenu.setForm() +\n '
    ' +\n '
    ' +\n '' + icons.bookmark + '' +\n '' + icons.download + '' +\n '' +\n '
    ' +\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ' +\n '' +\n '';\n if (relList.length > 0) {\n html += '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
      ';\n for (let i = 0, len = relList.length, rel; i < len; i++) {\n rel = relList[i];\n html += '
    • ';\n }\n html += '
    ';\n }\n\n html += '
    ';\n\n forms.innerHTML = html;\n return forms;\n },\n\n initEvent: function (pluginName, forms) {\n const anchorPlugin = this.plugins.anchor;\n const context = this.context.anchor.caller[pluginName] = {\n modal: forms,\n urlInput: null,\n linkDefaultRel: this.options.linkRelDefault,\n defaultRel: this.options.linkRelDefault.default || '',\n currentRel: [],\n linkAnchor: null,\n linkValue: '',\n _change: false,\n callerName: pluginName\n };\n\n if (typeof context.linkDefaultRel.default === 'string') context.linkDefaultRel.default = context.linkDefaultRel.default.trim();\n if (typeof context.linkDefaultRel.check_new_window === 'string') context.linkDefaultRel.check_new_window = context.linkDefaultRel.check_new_window.trim();\n if (typeof context.linkDefaultRel.check_bookmark === 'string') context.linkDefaultRel.check_bookmark = context.linkDefaultRel.check_bookmark.trim();\n\n context.urlInput = forms.querySelector('.se-input-url');\n context.anchorText = forms.querySelector('._se_anchor_text');\n context.newWindowCheck = forms.querySelector('._se_anchor_check');\n context.downloadCheck = forms.querySelector('._se_anchor_download');\n context.download = forms.querySelector('._se_anchor_download_icon');\n context.preview = forms.querySelector('.se-link-preview');\n context.bookmark = forms.querySelector('._se_anchor_bookmark_icon');\n context.bookmarkButton = forms.querySelector('._se_bookmark_button');\n\n this.plugins.selectMenu.initEvent.call(this, pluginName, forms);\n const listContext = this.context.selectMenu.caller[pluginName];\n \n /** rel */\n if (this.options.linkRel.length > 0) {\n context.relButton = forms.querySelector('.se-anchor-rel-btn');\n context.relList = forms.querySelector('.se-list-layer');\n context.relPreview = forms.querySelector('.se-anchor-rel-preview');\n context.relButton.addEventListener('click', anchorPlugin.onClick_relButton.bind(this, context));\n context.relList.addEventListener('click', anchorPlugin.onClick_relList.bind(this, context));\n }\n\n context.newWindowCheck.addEventListener('change', anchorPlugin.onChange_newWindowCheck.bind(this, context));\n context.downloadCheck.addEventListener('change', anchorPlugin.onChange_downloadCheck.bind(this, context));\n context.anchorText.addEventListener('input', anchorPlugin.onChangeAnchorText.bind(this, context));\n context.urlInput.addEventListener('input', anchorPlugin.onChangeUrlInput.bind(this, context));\n context.urlInput.addEventListener('keydown', anchorPlugin.onKeyDownUrlInput.bind(this, listContext));\n context.urlInput.addEventListener('focus', anchorPlugin.onFocusUrlInput.bind(this, context, listContext));\n context.urlInput.addEventListener('blur', anchorPlugin.onBlurUrlInput.bind(this, listContext));\n context.bookmarkButton.addEventListener('click', anchorPlugin.onClick_bookmarkButton.bind(this, context));\n },\n\n on: function (contextAnchor, update) {\n const anchorPlugin = this.plugins.anchor;\n\n if (!update) {\n anchorPlugin.init.call(this, contextAnchor);\n contextAnchor.anchorText.value = this.getSelection().toString().trim();\n contextAnchor.newWindowCheck.checked = this.options.linkTargetNewWindow;\n } else if (contextAnchor.linkAnchor) {\n this.context.dialog.updateModal = true;\n const href = contextAnchor.linkAnchor.getAttribute('href');\n contextAnchor.linkValue = contextAnchor.preview.textContent = contextAnchor.urlInput.value = anchorPlugin.selfPathBookmark.call(this, href) ? href.substr(href.lastIndexOf('#')) : href;\n contextAnchor.anchorText.value = contextAnchor.linkAnchor.textContent;\n contextAnchor.newWindowCheck.checked = (/_blank/i.test(contextAnchor.linkAnchor.target) ? true : false);\n contextAnchor.downloadCheck.checked = contextAnchor.linkAnchor.download;\n }\n\n this.context.anchor.callerContext = contextAnchor;\n anchorPlugin.setRel.call(this, contextAnchor, (update && contextAnchor.linkAnchor) ? contextAnchor.linkAnchor.rel : contextAnchor.defaultRel);\n anchorPlugin.setLinkPreview.call(this, contextAnchor, contextAnchor.linkValue);\n this.plugins.selectMenu.on.call(this, contextAnchor.callerName, this.plugins.anchor.setHeaderBookmark);\n },\n\n selfPathBookmark: function(path) {\n const href = this._w.location.href.replace(/\\/$/, '');\n return path.indexOf('#') === 0 || (path.indexOf(href) === 0 && path.indexOf('#') === (href.indexOf(\"#\") === -1 ? href.length : href.substr(0, href.indexOf(\"#\")).length));\n },\n\n _closeRelMenu: null,\n toggleRelList: function (contextAnchor, show) {\n if (!show) {\n if (this.plugins.anchor._closeRelMenu) this.plugins.anchor._closeRelMenu();\n } else {\n const target = contextAnchor.relButton;\n const relList = contextAnchor.relList;\n this.util.addClass(target, 'active');\n relList.style.visibility = 'hidden';\n relList.style.display = 'block';\n if (!this.options.rtl) relList.style.left = (target.offsetLeft + target.offsetWidth + 1) + 'px';\n else relList.style.left = (target.offsetLeft - relList.offsetWidth - 1) + 'px';\n relList.style.top = (target.offsetTop + (target.offsetHeight / 2) - (relList.offsetHeight / 2)) + 'px';\n relList.style.visibility = '';\n\n this.plugins.anchor._closeRelMenu = function (context, target, e) {\n if (e && (context.relButton.contains(e.target) || context.relList.contains(e.target))) return;\n this.util.removeClass(target, 'active');\n context.relList.style.display = 'none';\n this.modalForm.removeEventListener('click', this.plugins.anchor._closeRelMenu);\n this.plugins.anchor._closeRelMenu = null;\n }.bind(this, contextAnchor, target);\n \n this.modalForm.addEventListener('click', this.plugins.anchor._closeRelMenu);\n }\n },\n\n onClick_relButton: function (contextAnchor, e) {\n this.plugins.anchor.toggleRelList.call(this, contextAnchor, !this.util.hasClass(e.target, 'active'));\n },\n\n onClick_relList: function (contextAnchor, e) {\n const target = e.target;\n const cmd = target.getAttribute('data-command');\n if (!cmd) return;\n \n const current = contextAnchor.currentRel;\n const checked = this.util.toggleClass(target, 'se-checked');\n const index = current.indexOf(cmd);\n if (checked) {\n if (index === -1) current.push(cmd);\n } else {\n if (index > -1) current.splice(index, 1);\n }\n\n contextAnchor.relPreview.title = contextAnchor.relPreview.textContent = current.join(' ');\n },\n\n setRel: function (contextAnchor, relAttr) {\n const relListEl = contextAnchor.relList;\n const rels = contextAnchor.currentRel = !relAttr ? [] : relAttr.split(' ');\n if (!relListEl) return;\n\n const checkedRel = relListEl.querySelectorAll('button');\n for (let i = 0, len = checkedRel.length, cmd; i < len; i++) {\n cmd = checkedRel[i].getAttribute('data-command');\n if (rels.indexOf(cmd) > -1) {\n this.util.addClass(checkedRel[i], 'se-checked');\n } else {\n this.util.removeClass(checkedRel[i], 'se-checked');\n }\n }\n\n contextAnchor.relPreview.title = contextAnchor.relPreview.textContent = rels.join(' ');\n },\n\n createHeaderList: function (contextAnchor, contextList, urlValue) {\n const headers = this.util.getListChildren(this.context.element.wysiwyg, function(current) {\n return /h[1-6]/i.test(current.nodeName);\n });\n if (headers.length === 0) return;\n\n const valueRegExp = new this._w.RegExp('^' + urlValue.replace(/^#/, ''), 'i');\n const list = [];\n let html = '';\n for(let i = 0, len = headers.length, h; i < len; i++) {\n h = headers[i];\n if (!valueRegExp.test(h.textContent)) continue;\n list.push(h);\n html += '
  • ' + h.textContent + '
  • ';\n }\n\n if (list.length === 0) {\n this.plugins.selectMenu.close.call(this, contextList);\n } else {\n this.plugins.selectMenu.createList(contextList, list, html);\n this.plugins.selectMenu.open.call(this, contextList, this.plugins.anchor._setMenuListPosition.bind(this, contextAnchor));\n }\n },\n\n _setMenuListPosition: function (contextAnchor, list) {\n list.style.top = (contextAnchor.urlInput.offsetHeight + 1) + 'px';\n },\n\n onKeyDownUrlInput: function (contextList, e) {\n const keyCode = e.keyCode;\n switch (keyCode) {\n case 38: // up\n e.preventDefault();\n e.stopPropagation();\n this.plugins.selectMenu.moveItem.call(this, contextList, -1);\n break;\n case 40: // down\n e.preventDefault();\n e.stopPropagation();\n this.plugins.selectMenu.moveItem.call(this, contextList, 1);\n break;\n case 13: // enter\n if (contextList.index > -1) {\n e.preventDefault();\n e.stopPropagation();\n this.plugins.anchor.setHeaderBookmark.call(this, this.plugins.selectMenu.getItem(contextList, null));\n }\n break;\n }\n },\n\n setHeaderBookmark: function (header) {\n const contextAnchor = this.context.anchor.callerContext;\n const id = header.id || 'h_' + this._w.Math.random().toString().replace(/.+\\./, '');\n header.id = id;\n contextAnchor.urlInput.value = '#' + id;\n\n if (!contextAnchor.anchorText.value.trim() || !contextAnchor._change) {\n contextAnchor.anchorText.value = header.textContent;\n }\n \n this.plugins.anchor.setLinkPreview.call(this, contextAnchor, contextAnchor.urlInput.value);\n this.plugins.selectMenu.close.call(this, this.context.selectMenu.callerContext);\n this.context.anchor.callerContext.urlInput.focus();\n },\n\n onChangeAnchorText: function (contextAnchor, e) {\n contextAnchor._change = !!e.target.value.trim();\n },\n\n onChangeUrlInput: function (contextAnchor, e) {\n const value = e.target.value.trim();\n this.plugins.anchor.setLinkPreview.call(this, contextAnchor, value);\n\n if (this.plugins.anchor.selfPathBookmark.call(this, value)) this.plugins.anchor.createHeaderList.call(this, contextAnchor, this.context.selectMenu.callerContext, value);\n else this.plugins.selectMenu.close.call(this, this.context.selectMenu.callerContext);\n },\n\n onFocusUrlInput: function (contextAnchor, contextLink) {\n const value = contextAnchor.urlInput.value;\n if (this.plugins.anchor.selfPathBookmark.call(this, value)) this.plugins.anchor.createHeaderList.call(this, contextAnchor, contextLink, value);\n },\n\n onBlurUrlInput: function (contextList) {\n this.plugins.selectMenu.close.call(this, contextList);\n },\n\n setLinkPreview: function (context, value) {\n const preview = context.preview;\n const protocol = this.options.linkProtocol;\n const noPrefix = this.options.linkNoPrefix;\n const reservedProtocol = /^(mailto\\:|tel\\:|sms\\:|https*\\:\\/\\/|#)/.test(value) || value.indexOf(protocol) === 0;\n const sameProtocol = !protocol ? false : this._w.RegExp('^' + this.util.escapeStringRegexp(value.substr(0, protocol.length))).test(protocol);\n value = context.linkValue = preview.textContent = !value ? '' : noPrefix ? value : (protocol && !reservedProtocol && !sameProtocol) ? protocol + value : reservedProtocol ? value : /^www\\./.test(value) ? 'http://' + value : this.context.anchor.host + (/^\\//.test(value) ? '' : '/') + value;\n\n if (this.plugins.anchor.selfPathBookmark.call(this, value)) {\n context.bookmark.style.display = 'block';\n this.util.addClass(context.bookmarkButton, 'active');\n } else {\n context.bookmark.style.display = 'none';\n this.util.removeClass(context.bookmarkButton, 'active');\n }\n\n if (!this.plugins.anchor.selfPathBookmark.call(this, value) && context.downloadCheck.checked) {\n context.download.style.display = 'block';\n } else {\n context.download.style.display = 'none';\n }\n },\n\n setCtx: function (anchor, contextAnchor) {\n if (!anchor) return;\n contextAnchor.linkAnchor = anchor;\n contextAnchor.linkValue = anchor.href;\n contextAnchor.currentRel = anchor.rel.split(\" \");\n },\n\n updateAnchor: function (anchor, url, displayText, contextAnchor, notText) {\n // download\n if (!this.plugins.anchor.selfPathBookmark.call(this, url) && contextAnchor.downloadCheck.checked) {\n anchor.setAttribute('download', displayText || url);\n } else {\n anchor.removeAttribute('download');\n }\n\n // new window\n if (contextAnchor.newWindowCheck.checked) anchor.target = '_blank';\n else anchor.removeAttribute('target');\n \n // rel\n const rel = contextAnchor.currentRel.join(' ');\n if (!rel) anchor.removeAttribute('rel');\n else anchor.rel = rel;\n\n // set url\n anchor.href = url;\n if (notText) {\n if (anchor.children.length === 0) anchor.textContent = '';\n } else {\n anchor.textContent = displayText;\n }\n },\n\n createAnchor: function (contextAnchor, notText) {\n if (contextAnchor.linkValue.length === 0) return null;\n \n const url = contextAnchor.linkValue;\n const anchor = contextAnchor.anchorText;\n const displayText = anchor.value.length === 0 ? url : anchor.value;\n\n const oA = contextAnchor.linkAnchor || this.util.createElement('A');\n this.plugins.anchor.updateAnchor.call(this, oA, url, displayText, contextAnchor, notText);\n\n contextAnchor.linkValue = contextAnchor.preview.textContent = contextAnchor.urlInput.value = contextAnchor.anchorText.value = '';\n\n return oA;\n },\n\n onClick_bookmarkButton: function (contextAnchor) {\n let url = contextAnchor.urlInput.value;\n if (this.plugins.anchor.selfPathBookmark.call(this, url)) {\n url = url.substr(1);\n contextAnchor.bookmark.style.display = 'none';\n this.util.removeClass(contextAnchor.bookmarkButton, 'active');\n this.plugins.selectMenu.close.call(this, this.context.selectMenu.callerContext);\n } else {\n url = '#' + url;\n contextAnchor.bookmark.style.display = 'block';\n this.util.addClass(contextAnchor.bookmarkButton, 'active');\n contextAnchor.downloadCheck.checked = false;\n contextAnchor.download.style.display = 'none';\n this.plugins.anchor.createHeaderList.call(this, contextAnchor, this.context.selectMenu.callerContext, url);\n }\n\n contextAnchor.urlInput.value = url;\n this.plugins.anchor.setLinkPreview.call(this, contextAnchor, url);\n contextAnchor.urlInput.focus();\n },\n\n onChange_newWindowCheck: function (contextAnchor, e) {\n if (typeof contextAnchor.linkDefaultRel.check_new_window !== 'string') return;\n if (e.target.checked) {\n this.plugins.anchor.setRel.call(this, contextAnchor, this.plugins.anchor._relMerge.call(this, contextAnchor, contextAnchor.linkDefaultRel.check_new_window));\n } else {\n this.plugins.anchor.setRel.call(this, contextAnchor, this.plugins.anchor._relDelete.call(this, contextAnchor, contextAnchor.linkDefaultRel.check_new_window));\n }\n },\n\n onChange_downloadCheck: function (contextAnchor, e) {\n if (e.target.checked) {\n contextAnchor.download.style.display = 'block';\n contextAnchor.bookmark.style.display = 'none';\n this.util.removeClass(contextAnchor.bookmarkButton, 'active');\n contextAnchor.linkValue = contextAnchor.preview.textContent = contextAnchor.urlInput.value = contextAnchor.urlInput.value.replace(/^\\#+/, '');\n if (typeof contextAnchor.linkDefaultRel.check_bookmark === 'string') {\n this.plugins.anchor.setRel.call(this, contextAnchor, this.plugins.anchor._relMerge.call(this, contextAnchor, contextAnchor.linkDefaultRel.check_bookmark));\n }\n } else {\n contextAnchor.download.style.display = 'none';\n if (typeof contextAnchor.linkDefaultRel.check_bookmark === 'string') {\n this.plugins.anchor.setRel.call(this, contextAnchor, this.plugins.anchor._relDelete.call(this, contextAnchor, contextAnchor.linkDefaultRel.check_bookmark));\n }\n }\n },\n\n _relMerge: function (contextAnchor, relAttr) {\n const current = contextAnchor.currentRel;\n if (!relAttr) return current.join(' ');\n \n if (/^only\\:/.test(relAttr)) {\n relAttr = relAttr.replace(/^only\\:/, '').trim();\n contextAnchor.currentRel = relAttr.split(' ');\n return relAttr;\n }\n\n const rels = relAttr.split(' ');\n for (let i = 0, len = rels.length, index; i < len; i++) {\n index = current.indexOf(rels[i]);\n if (index === -1) current.push(rels[i]);\n }\n\n return current.join(' ');\n },\n\n _relDelete: function (contextAnchor, relAttr) {\n if (!relAttr) return contextAnchor.currentRel.join(' ');\n if (/^only\\:/.test(relAttr)) relAttr = relAttr.replace(/^only\\:/, '').trim();\n\n const rels = contextAnchor.currentRel.join(' ').replace(this._w.RegExp(relAttr + '\\\\s*'), '');\n contextAnchor.currentRel = rels.split(' ');\n return rels;\n },\n\n init: function (contextAnchor) {\n contextAnchor.linkAnchor = null;\n contextAnchor.linkValue = contextAnchor.preview.textContent = contextAnchor.urlInput.value = '';\n contextAnchor.anchorText.value = '';\n contextAnchor.newWindowCheck.checked = false;\n contextAnchor.downloadCheck.checked = false;\n contextAnchor._change = false;\n this.plugins.anchor.setRel.call(this, contextAnchor, contextAnchor.defaultRel);\n if (contextAnchor.relList) {\n this.plugins.anchor.toggleRelList.call(this, contextAnchor, false);\n }\n this.context.anchor.callerContext = null;\n this.plugins.selectMenu.init.call(this, this.context.selectMenu.callerContext);\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nimport dialog from '../modules/dialog';\nimport anchor from '../modules/_anchor';\n\nexport default {\n name: 'link',\n display: 'dialog',\n add: function (core) {\n core.addModule([dialog, anchor]);\n\n const context = core.context;\n const contextLink = context.link = {\n focusElement: null, // @Override dialog // This element has focus when the dialog is opened.\n _linkAnchor: null,\n anchorCtx: null\n };\n\n /** link dialog */\n let link_dialog = this.setDialog(core);\n contextLink.modal = link_dialog;\n \n /** link controller */\n let link_controller = this.setController_LinkButton(core);\n contextLink.linkController = link_controller;\n\n link_dialog.querySelector('form').addEventListener('submit', this.submit.bind(core));\n link_controller.addEventListener('click', this.onClick_linkController.bind(core));\n\n /** append html */\n context.dialog.modal.appendChild(link_dialog);\n\n /** append controller */\n context.element.relative.appendChild(link_controller);\n\n /** link event */\n core.plugins.anchor.initEvent.call(core, 'link', link_dialog);\n contextLink.focusElement = context.anchor.caller.link.urlInput;\n\n /** empty memory */\n link_dialog = null, link_controller = null;\n },\n\n /** dialog */\n setDialog: function (core) {\n const lang = core.lang;\n const dialog = core.util.createElement('DIV');\n const icons = core.icons;\n\n dialog.className = 'se-dialog-content';\n dialog.style.display = 'none';\n let html = '' +\n '
    ' +\n '
    ' +\n '' +\n '' + lang.dialogBox.linkBox.title + '' +\n '
    ' +\n core.context.anchor.forms.innerHTML +\n '
    ' +\n '' +\n '
    ' +\n '
    ';\n\n dialog.innerHTML = html;\n return dialog;\n },\n\n /** modify controller button */\n setController_LinkButton: function (core) {\n const lang = core.lang;\n const icons = core.icons;\n const link_btn = core.util.createElement('DIV');\n\n link_btn.className = 'se-controller se-controller-link';\n link_btn.innerHTML = '' +\n '
    ' +\n '';\n\n return link_btn;\n },\n\n /**\n * @Override dialog\n */\n open: function () {\n this.plugins.dialog.open.call(this, 'link', 'link' === this.currentControllerName);\n },\n\n submit: function (e) {\n this.showLoading();\n\n e.preventDefault();\n e.stopPropagation();\n\n try {\n const oA = this.plugins.anchor.createAnchor.call(this, this.context.anchor.caller.link, false);\n if (oA === null) return;\n \n if (!this.context.dialog.updateModal) {\n const selectedFormats = this.getSelectedElements();\n if (selectedFormats.length > 1) {\n const oFormat = this.util.createElement(selectedFormats[0].nodeName);\n oFormat.appendChild(oA);\n if (!this.insertNode(oFormat, null, true)) return;\n } else {\n if (!this.insertNode(oA, null, true)) return;\n }\n \n this.setRange(oA.childNodes[0], 0, oA.childNodes[0], oA.textContent.length);\n } else {\n // set range\n const textNode = this.context.link._linkAnchor.childNodes[0];\n this.setRange(textNode, 0, textNode, textNode.textContent.length);\n }\n } finally {\n this.plugins.dialog.close.call(this);\n this.closeLoading();\n // history stack\n this.history.push(false);\n }\n\n return false;\n },\n\n /**\n * @Override core\n */\n active: function (element) {\n if (!element) {\n if (this.controllerArray.indexOf(this.context.link.linkController) > -1) {\n this.controllersOff();\n }\n } else if (this.util.isAnchor(element) && element.getAttribute('data-image-link') === null) {\n if (this.controllerArray.indexOf(this.context.link.linkController) < 0) {\n this.plugins.link.call_controller.call(this, element);\n }\n return true;\n }\n\n return false;\n },\n\n /**\n * @Override dialog\n */\n on: function (update) {\n this.plugins.anchor.on.call(this, this.context.anchor.caller.link, update);\n },\n\n call_controller: function (selectionATag) {\n this.editLink = this.context.link._linkAnchor = this.context.anchor.caller.link.linkAnchor = selectionATag;\n const linkBtn = this.context.link.linkController;\n const link = linkBtn.querySelector('a');\n\n link.href = selectionATag.href;\n link.title = selectionATag.textContent;\n link.textContent = selectionATag.textContent;\n\n this.util.addClass(selectionATag, 'on');\n this.setControllerPosition(linkBtn, selectionATag, 'bottom', {left: 0, top: 0});\n this.controllersOn(linkBtn, selectionATag, 'link', this.util.removeClass.bind(this.util, this.context.link._linkAnchor, 'on'));\n },\n\n onClick_linkController: function (e) {\n e.stopPropagation();\n\n const command = e.target.getAttribute('data-command') || e.target.parentNode.getAttribute('data-command');\n if (!command) return;\n\n e.preventDefault();\n\n if (/update/.test(command)) {\n this.plugins.dialog.open.call(this, 'link', true);\n } else if (/unlink/.test(command)) {\n const sc = this.util.getChildElement(this.context.link._linkAnchor, function (current) { return current.childNodes.length === 0 || current.nodeType === 3; }, false);\n const ec = this.util.getChildElement(this.context.link._linkAnchor, function (current) { return current.childNodes.length === 0 || current.nodeType === 3; }, true);\n this.setRange(sc, 0, ec, ec.textContent.length);\n this.nodeChange(null, null, ['A'], false);\n } else {\n /** delete */\n this.util.removeItem(this.context.link._linkAnchor);\n this.context.anchor.caller.link.linkAnchor = null;\n this.focus();\n\n // history stack\n this.history.push(false);\n }\n\n this.controllersOff();\n },\n\n /**\n * @Override dialog\n */\n init: function () {\n this.context.link.linkController.style.display = 'none';\n this.plugins.anchor.init.call(this, this.context.anchor.caller.link);\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nimport dialog from '../modules/dialog';\nimport anchor from '../modules/_anchor';\nimport component from '../modules/component';\nimport resizing from '../modules/resizing';\nimport fileManager from '../modules/fileManager';\n\nexport default {\n name: 'image',\n display: 'dialog',\n add: function (core) {\n core.addModule([dialog, anchor, component, resizing, fileManager]);\n \n const options = core.options;\n const context = core.context;\n const contextImage = context.image = {\n _infoList: [], // @Override fileManager\n _infoIndex: 0, // @Override fileManager\n _uploadFileLength: 0, // @Override fileManager\n focusElement: null, // @Override dialog // This element has focus when the dialog is opened.\n sizeUnit: options._imageSizeUnit,\n _linkElement: '',\n _altText: '',\n _align: 'none',\n _floatClassRegExp: '__se__float\\\\-[a-z]+',\n _v_src: {_linkValue: ''},\n svgDefaultSize: '30%',\n base64RenderIndex: 0,\n // @require @Override component\n _element: null,\n _cover: null,\n _container: null,\n // @Override resizing properties\n inputX: null,\n inputY: null,\n _element_w: 1,\n _element_h: 1,\n _element_l: 0,\n _element_t: 0,\n _defaultSizeX: 'auto',\n _defaultSizeY: 'auto',\n _origin_w: options.imageWidth === 'auto' ? '' : options.imageWidth,\n _origin_h: options.imageHeight === 'auto' ? '' : options.imageHeight,\n _proportionChecked: true,\n _resizing: options.imageResizing,\n _resizeDotHide: !options.imageHeightShow,\n _rotation: options.imageRotation,\n _alignHide: !options.imageAlignShow,\n _onlyPercentage: options.imageSizeOnlyPercentage,\n _ratio: false,\n _ratioX: 1,\n _ratioY: 1,\n _captionShow: true,\n _captionChecked: false,\n _caption: null,\n captionCheckEl: null\n };\n\n /** image dialog */\n let image_dialog = this.setDialog(core);\n contextImage.modal = image_dialog;\n contextImage.imgInputFile = image_dialog.querySelector('._se_image_file');\n contextImage.imgUrlFile = image_dialog.querySelector('._se_image_url');\n contextImage.focusElement = contextImage.imgInputFile || contextImage.imgUrlFile;\n contextImage.altText = image_dialog.querySelector('._se_image_alt');\n contextImage.captionCheckEl = image_dialog.querySelector('._se_image_check_caption');\n contextImage.previewSrc = image_dialog.querySelector('._se_tab_content_image .se-link-preview');\n\n /** add event listeners */\n image_dialog.querySelector('.se-dialog-tabs').addEventListener('click', this.openTab.bind(core));\n image_dialog.querySelector('form').addEventListener('submit', this.submit.bind(core));\n if (contextImage.imgInputFile) image_dialog.querySelector('.se-file-remove').addEventListener('click', this._removeSelectedFiles.bind(contextImage.imgInputFile, contextImage.imgUrlFile, contextImage.previewSrc));\n if (contextImage.imgUrlFile) contextImage.imgUrlFile.addEventListener('input', this._onLinkPreview.bind(contextImage.previewSrc, contextImage._v_src, options.linkProtocol));\n if (contextImage.imgInputFile && contextImage.imgUrlFile) contextImage.imgInputFile.addEventListener('change', this._fileInputChange.bind(contextImage));\n\n const imageGalleryButton = image_dialog.querySelector('.__se__gallery');\n if (imageGalleryButton) imageGalleryButton.addEventListener('click', this._openGallery.bind(core));\n \n contextImage.proportion = {};\n contextImage.inputX = {};\n contextImage.inputY = {};\n if (options.imageResizing) {\n contextImage.proportion = image_dialog.querySelector('._se_image_check_proportion');\n contextImage.inputX = image_dialog.querySelector('._se_image_size_x');\n contextImage.inputY = image_dialog.querySelector('._se_image_size_y');\n contextImage.inputX.value = options.imageWidth;\n contextImage.inputY.value = options.imageHeight;\n \n contextImage.inputX.addEventListener('keyup', this.setInputSize.bind(core, 'x'));\n contextImage.inputY.addEventListener('keyup', this.setInputSize.bind(core, 'y'));\n\n contextImage.inputX.addEventListener('change', this.setRatio.bind(core));\n contextImage.inputY.addEventListener('change', this.setRatio.bind(core));\n contextImage.proportion.addEventListener('change', this.setRatio.bind(core));\n \n image_dialog.querySelector('.se-dialog-btn-revert').addEventListener('click', this.sizeRevert.bind(core));\n }\n\n /** append html */\n context.dialog.modal.appendChild(image_dialog);\n\n /** link event */\n core.plugins.anchor.initEvent.call(core, 'image', image_dialog.querySelector('._se_tab_content_url'));\n contextImage.anchorCtx = core.context.anchor.caller.image;\n\n /** empty memory */\n image_dialog = null;\n },\n\n /** dialog */\n setDialog: function (core) {\n const option = core.options;\n const lang = core.lang;\n const dialog = core.util.createElement('DIV');\n\n dialog.className = 'se-dialog-content se-dialog-image';\n dialog.style.display = 'none';\n\n let html = '' +\n '
    ' +\n '' +\n '' + lang.dialogBox.imageBox.title + '' +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ';\n \n if (option.imageFileInput) {\n html += '' +\n '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' ;\n }\n \n if (option.imageUrlInput) {\n html += '' +\n '
    ' +\n '' +\n '
    ' +\n '' +\n ((option.imageGalleryUrl && core.plugins.imageGallery) ? '' : '') +\n '
    ' +\n '' +\n '
    ';\n }\n \n html += '
    ' +\n '
    ' +\n '' +\n '
    ';\n\n if (option.imageResizing) {\n const onlyPercentage = option.imageSizeOnlyPercentage;\n const onlyPercentDisplay = onlyPercentage ? ' style=\"display: none !important;\"' : '';\n const heightDisplay = !option.imageHeightShow ? ' style=\"display: none !important;\"' : '';\n html += '
    ';\n if (onlyPercentage || !option.imageHeightShow) {\n html += '' +\n '
    ' +\n '' +\n '
    ';\n } else {\n html += '' +\n '
    ' +\n '' +\n '' +\n '' +\n '
    ';\n }\n html += '' +\n '' +\n '' +\n '' +\n ' ' + lang.dialogBox.proportion + '' +\n '' +\n '
    ' ;\n }\n\n html += '' +\n '
    ' +\n '' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n core.context.anchor.forms.innerHTML +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ';\n\n dialog.innerHTML = html;\n\n return dialog;\n },\n\n _fileInputChange: function () {\n if (!this.imgInputFile.value) {\n this.imgUrlFile.removeAttribute('disabled');\n this.previewSrc.style.textDecoration = '';\n } else {\n this.imgUrlFile.setAttribute('disabled', true);\n this.previewSrc.style.textDecoration = 'line-through';\n }\n },\n\n _removeSelectedFiles: function (urlInput, previewSrc) {\n this.value = '';\n if (urlInput) {\n urlInput.removeAttribute('disabled');\n previewSrc.style.textDecoration = '';\n }\n },\n\n _openGallery: function () {\n this.callPlugin('imageGallery', this.plugins.imageGallery.open.bind(this, this.plugins.image._setUrlInput.bind(this.context.image)), null);\n },\n\n _setUrlInput: function (target) {\n this.altText.value = target.alt;\n this._v_src._linkValue = this.previewSrc.textContent = this.imgUrlFile.value = target.getAttribute('data-value') || target.src;\n this.imgUrlFile.focus();\n },\n\n _onLinkPreview: function (context, protocol, e) {\n const value = e.target.value.trim();\n context._linkValue = this.textContent = !value ? '' : (protocol && value.indexOf('://') === -1 && value.indexOf('#') !== 0) ? protocol + value : value.indexOf('://') === -1 ? '/' + value : value;\n },\n\n /**\n * @Override @Required fileManager\n */\n fileTags: ['img'],\n\n /**\n * @Override core, fileManager, resizing\n * @description It is called from core.selectComponent.\n * @param {Element} element Target element\n */\n select: function (element) {\n this.plugins.image.onModifyMode.call(this, element, this.plugins.resizing.call_controller_resize.call(this, element, 'image'));\n },\n\n /**\n * @Override fileManager, resizing\n */\n destroy: function (element) {\n const imageEl = element || this.context.image._element;\n const imageContainer = this.util.getParentElement(imageEl, this.util.isMediaComponent) || imageEl;\n const dataIndex = imageEl.getAttribute('data-index') * 1;\n\n // event\n if (typeof this.functions.onImageDeleteBefore === 'function' && (this.functions.onImageDeleteBefore(imageEl, imageContainer, dataIndex, this) === false)) return;\n\n let focusEl = (imageContainer.previousElementSibling || imageContainer.nextElementSibling);\n \n const emptyDiv = imageContainer.parentNode;\n this.util.removeItem(imageContainer);\n this.plugins.image.init.call(this);\n this.controllersOff();\n\n if (emptyDiv !== this.context.element.wysiwyg) this.util.removeItemAllParents(emptyDiv, function (current) { return current.childNodes.length === 0; }, null);\n\n // focus\n this.focusEdge(focusEl);\n \n // event\n this.plugins.fileManager.deleteInfo.call(this, 'image', dataIndex, this.functions.onImageUpload);\n\n // history stack\n this.history.push(false);\n },\n\n /**\n * @Required @Override dialog\n */\n on: function (update) {\n const contextImage = this.context.image;\n \n if (!update) {\n contextImage.inputX.value = contextImage._origin_w = this.options.imageWidth === contextImage._defaultSizeX ? '' : this.options.imageWidth;\n contextImage.inputY.value = contextImage._origin_h = this.options.imageHeight === contextImage._defaultSizeY ? '' : this.options.imageHeight;\n if (contextImage.imgInputFile && this.options.imageMultipleFile) contextImage.imgInputFile.setAttribute('multiple', 'multiple');\n } else {\n if (contextImage.imgInputFile && this.options.imageMultipleFile) contextImage.imgInputFile.removeAttribute('multiple');\n }\n this.plugins.anchor.on.call(this, contextImage.anchorCtx, update);\n },\n\n /**\n * @Required @Override dialog\n */\n open: function () {\n this.plugins.dialog.open.call(this, 'image', 'image' === this.currentControllerName);\n },\n\n openTab: function (e) {\n const modal = this.context.image.modal;\n const targetElement = (e === 'init' ? modal.querySelector('._se_tab_link') : e.target);\n\n if (!/^BUTTON$/i.test(targetElement.tagName)) {\n return false;\n }\n\n // Declare all variables\n const tabName = targetElement.getAttribute('data-tab-link');\n const contentClassName = '_se_tab_content';\n let i, tabContent, tabLinks;\n\n // Get all elements with class=\"tabcontent\" and hide them\n tabContent = modal.getElementsByClassName(contentClassName);\n for (i = 0; i < tabContent.length; i++) {\n tabContent[i].style.display = 'none';\n }\n\n // Get all elements with class=\"tablinks\" and remove the class \"active\"\n tabLinks = modal.getElementsByClassName('_se_tab_link');\n for (i = 0; i < tabLinks.length; i++) {\n this.util.removeClass(tabLinks[i], 'active');\n }\n\n // Show the current tab, and add an \"active\" class to the button that opened the tab\n modal.querySelector('.' + contentClassName + '_' + tabName).style.display = 'block';\n this.util.addClass(targetElement, 'active');\n\n // focus\n if (tabName === 'image' && this.context.image.focusElement) {\n this.context.image.focusElement.focus();\n } else if (tabName === 'url') {\n this.context.anchor.caller.image.urlInput.focus();\n }\n\n return false;\n },\n\n submit: function (e) {\n const contextImage = this.context.image;\n const imagePlugin = this.plugins.image;\n\n e.preventDefault();\n e.stopPropagation();\n\n contextImage._altText = contextImage.altText.value;\n contextImage._align = contextImage.modal.querySelector('input[name=\"suneditor_image_radio\"]:checked').value;\n contextImage._captionChecked = contextImage.captionCheckEl.checked;\n if (contextImage._resizing) contextImage._proportionChecked = contextImage.proportion.checked;\n\n try {\n if (this.context.dialog.updateModal) {\n imagePlugin.update_image.call(this, false, true, false);\n }\n \n if (contextImage.imgInputFile && contextImage.imgInputFile.files.length > 0) {\n this.showLoading();\n imagePlugin.submitAction.call(this, this.context.image.imgInputFile.files);\n } else if (contextImage.imgUrlFile && contextImage._v_src._linkValue.length > 0) {\n this.showLoading();\n imagePlugin.onRender_imgUrl.call(this, contextImage._v_src._linkValue);\n }\n } catch (error) {\n this.closeLoading();\n throw Error('[SUNEDITOR.image.submit.fail] cause : \"' + error.message + '\"');\n } finally {\n this.plugins.dialog.close.call(this);\n }\n\n return false;\n },\n\n submitAction: function (fileList) {\n if (fileList.length === 0) return;\n\n let fileSize = 0;\n let files = [];\n for (let i = 0, len = fileList.length; i < len; i++) {\n if (/image/i.test(fileList[i].type)) {\n files.push(fileList[i]);\n fileSize += fileList[i].size;\n }\n }\n\n const limitSize = this.options.imageUploadSizeLimit;\n if (limitSize > 0) {\n let infoSize = 0;\n const imagesInfo = this.context.image._infoList;\n for (let i = 0, len = imagesInfo.length; i < len; i++) {\n infoSize += imagesInfo[i].size * 1;\n }\n\n if ((fileSize + infoSize) > limitSize) {\n this.closeLoading();\n const err = '[SUNEDITOR.imageUpload.fail] Size of uploadable total images: ' + (limitSize/1000) + 'KB';\n if (typeof this.functions.onImageUploadError !== 'function' || this.functions.onImageUploadError(err, { 'limitSize': limitSize, 'currentSize': infoSize, 'uploadSize': fileSize }, this)) {\n this.functions.noticeOpen(err);\n }\n return;\n }\n }\n\n const contextImage = this.context.image;\n contextImage._uploadFileLength = files.length;\n \n const anchor = this.plugins.anchor.createAnchor.call(this, contextImage.anchorCtx, true);\n const info = {\n anchor: anchor,\n inputWidth: contextImage.inputX.value,\n inputHeight: contextImage.inputY.value,\n align: contextImage._align,\n isUpdate: this.context.dialog.updateModal,\n alt: contextImage._altText,\n element: contextImage._element\n };\n\n if (typeof this.functions.onImageUploadBefore === 'function') {\n const result = this.functions.onImageUploadBefore(files, info, this, function (data) {\n if (data && this._w.Array.isArray(data.result)) {\n this.plugins.image.register.call(this, info, data);\n } else {\n this.plugins.image.upload.call(this, info, data);\n }\n }.bind(this));\n \n if (typeof result === 'undefined') return;\n if (!result) {\n this.closeLoading();\n return;\n }\n if (this._w.Array.isArray(result) && result.length > 0) files = result;\n }\n\n this.plugins.image.upload.call(this, info, files);\n },\n\n error: function (message, response) {\n this.closeLoading();\n if (typeof this.functions.onImageUploadError !== 'function' || this.functions.onImageUploadError(message, response, this)) {\n this.functions.noticeOpen(message);\n throw Error('[SUNEDITOR.plugin.image.error] response: ' + message);\n }\n },\n\n upload: function (info, files) {\n if (!files) {\n this.closeLoading();\n return;\n }\n if (typeof files === 'string') {\n this.plugins.image.error.call(this, files, null);\n return;\n }\n\n const imageUploadUrl = this.options.imageUploadUrl;\n const filesLen = this.context.dialog.updateModal ? 1 : files.length;\n\n // server upload\n if (typeof imageUploadUrl === 'string' && imageUploadUrl.length > 0) {\n const formData = new FormData();\n for (let i = 0; i < filesLen; i++) {\n formData.append('file-' + i, files[i]);\n }\n this.plugins.fileManager.upload.call(this, imageUploadUrl, this.options.imageUploadHeader, formData, this.plugins.image.callBack_imgUpload.bind(this, info), this.functions.onImageUploadError);\n } else { // base64\n this.plugins.image.setup_reader.call(this, files, info.anchor, info.inputWidth, info.inputHeight, info.align, info.alt, filesLen, info.isUpdate);\n }\n },\n\n callBack_imgUpload: function (info, xmlHttp) {\n if (typeof this.functions.imageUploadHandler === 'function') {\n this.functions.imageUploadHandler(xmlHttp, info, this);\n } else {\n const response = JSON.parse(xmlHttp.responseText);\n if (response.errorMessage) {\n this.plugins.image.error.call(this, response.errorMessage, response);\n } else {\n this.plugins.image.register.call(this, info, response);\n }\n }\n },\n\n register: function (info, response) {\n const fileList = response.result;\n\n for (let i = 0, len = fileList.length, file; i < len; i++) {\n file = { name: fileList[i].name, size: fileList[i].size };\n if (info.isUpdate) {\n this.plugins.image.update_src.call(this, fileList[i].url, info.element, file);\n break;\n } else {\n this.plugins.image.create_image.call(this, fileList[i].url, info.anchor, info.inputWidth, info.inputHeight, info.align, file, info.alt);\n }\n }\n \n this.closeLoading();\n },\n\n setup_reader: function (files, anchor, width, height, align, alt, filesLen, isUpdate) {\n try {\n if (filesLen === 0) {\n this.closeLoading();\n console.warn('[SUNEDITOR.image.base64.fail] cause : No applicable files');\n return;\n }\n\n this.context.image.base64RenderIndex = filesLen;\n const wFileReader = this._w.FileReader;\n const filesStack = [filesLen];\n this.context.image.inputX.value = width;\n this.context.image.inputY.value = height;\n \n for (let i = 0, reader, file; i < filesLen; i++) {\n reader = new wFileReader();\n file = files[i];\n \n reader.onload = function (reader, update, updateElement, file, index) {\n filesStack[index] = { result: reader.result, file: file };\n\n if (--this.context.image.base64RenderIndex === 0) {\n this.plugins.image.onRender_imgBase64.call(this, update, filesStack, updateElement, anchor, width, height, align, alt);\n this.closeLoading();\n }\n }.bind(this, reader, isUpdate, this.context.image._element, file, i);\n\n reader.readAsDataURL(file);\n }\n } catch (e) {\n this.closeLoading();\n throw Error('[SUNEDITOR.image.setup_reader.fail] cause : \"' + e.message + '\"');\n }\n },\n\n onRender_imgBase64: function (update, filesStack, updateElement, anchor, width, height, align, alt) {\n const updateMethod = this.plugins.image.update_src;\n const createMethod = this.plugins.image.create_image;\n \n for (let i = 0, len = filesStack.length; i < len; i++) {\n if (update) {\n this.context.image._element.setAttribute('data-file-name', filesStack[i].file.name);\n this.context.image._element.setAttribute('data-file-size', filesStack[i].file.size);\n updateMethod.call(this, filesStack[i].result, updateElement, filesStack[i].file);\n } else {\n createMethod.call(this, filesStack[i].result, anchor, width, height, align, filesStack[i].file, alt);\n }\n }\n },\n\n onRender_imgUrl: function (url) {\n if (!url) url = this.context.image._v_src._linkValue;\n if (!url) return false;\n const contextImage = this.context.image;\n\n try {\n const file = {name: url.split('/').pop(), size: 0};\n if (this.context.dialog.updateModal) this.plugins.image.update_src.call(this, url, contextImage._element, file);\n else this.plugins.image.create_image.call(this, url, this.plugins.anchor.createAnchor.call(this, contextImage.anchorCtx, true), contextImage.inputX.value, contextImage.inputY.value, contextImage._align, file, contextImage._altText);\n } catch (e) {\n throw Error('[SUNEDITOR.image.URLRendering.fail] cause : \"' + e.message + '\"');\n } finally {\n this.closeLoading();\n }\n },\n\n onRender_link: function (imgTag, anchor) {\n if (anchor) {\n anchor.setAttribute('data-image-link', 'image');\n imgTag.setAttribute('data-image-link', anchor.href);\n anchor.appendChild(imgTag);\n return anchor;\n }\n\n return imgTag;\n },\n\n /**\n * @Override resizing\n * @param {String} xy 'x': width, 'y': height\n * @param {KeyboardEvent} e Event object\n */\n setInputSize: function (xy, e) {\n if (e && e.keyCode === 32) {\n e.preventDefault();\n return;\n }\n\n this.plugins.resizing._module_setInputSize.call(this, this.context.image, xy);\n },\n\n /**\n * @Override resizing\n */\n setRatio: function () {\n this.plugins.resizing._module_setRatio.call(this, this.context.image);\n },\n\n /**\n * @Override fileManager\n */\n checkFileInfo: function () {\n const imagePlugin = this.plugins.image;\n const contextImage = this.context.image;\n\n const modifyHandler = function (tag) {\n imagePlugin.onModifyMode.call(this, tag, null);\n imagePlugin.openModify.call(this, true);\n // get size\n contextImage.inputX.value = contextImage._origin_w;\n contextImage.inputY.value = contextImage._origin_h;\n // get align\n const format = this.util.getFormatElement(tag);\n if (format) contextImage._align = format.style.textAlign || format.style.float;\n // link\n if (this.util.isAnchor(tag.parentNode) && !contextImage.anchorCtx.linkValue) contextImage.anchorCtx.linkValue = ' ';\n \n imagePlugin.update_image.call(this, true, false, true);\n imagePlugin.init.call(this);\n }.bind(this);\n\n this.plugins.fileManager.checkInfo.call(this, 'image', ['img'], this.functions.onImageUpload, modifyHandler, true);\n },\n\n /**\n * @Override fileManager\n */\n resetFileInfo: function () {\n this.plugins.fileManager.resetInfo.call(this, 'image', this.functions.onImageUpload);\n },\n\n create_image: function (src, anchor, width, height, align, file, alt) {\n const imagePlugin = this.plugins.image;\n const contextImage = this.context.image;\n this.context.resizing._resize_plugin = 'image';\n\n let oImg = this.util.createElement('IMG');\n oImg.src = src;\n oImg.alt = alt;\n oImg.setAttribute('data-rotate', '0');\n anchor = imagePlugin.onRender_link.call(this, oImg, anchor ? anchor.cloneNode(false) : null);\n\n if (contextImage._resizing) {\n oImg.setAttribute('data-proportion', contextImage._proportionChecked);\n }\n\n const cover = this.plugins.component.set_cover.call(this, anchor);\n const container = this.plugins.component.set_container.call(this, cover, 'se-image-container');\n\n // caption\n if (contextImage._captionChecked) {\n contextImage._caption = this.plugins.component.create_caption.call(this);\n cover.appendChild(contextImage._caption);\n }\n\n contextImage._element = oImg;\n contextImage._cover = cover;\n contextImage._container = container;\n\n // set size\n imagePlugin.applySize.call(this, width, height);\n\n // align\n imagePlugin.setAlign.call(this, align, oImg, cover, container);\n\n oImg.onload = imagePlugin._image_create_onload.bind(this, oImg, contextImage.svgDefaultSize, container);\n if (this.insertComponent(container, true, true, !this.options.mediaAutoSelect)) this.plugins.fileManager.setInfo.call(this, 'image', oImg, this.functions.onImageUpload, file, true);\n this.context.resizing._resize_plugin = '';\n },\n\n _image_create_onload: function (oImg, svgDefaultSize, container) {\n // svg exception handling\n if (oImg.offsetWidth === 0) this.plugins.image.applySize.call(this, svgDefaultSize, '');\n if (this.options.mediaAutoSelect) {\n this.selectComponent(oImg, 'image');\n } else {\n const line = this.appendFormatTag(container, null);\n if (line) this.setRange(line, 0, line, 0);\n }\n this.history.push(false);\n },\n\n update_image: function (init, openController, notHistoryPush) {\n const contextImage = this.context.image;\n let imageEl = contextImage._element;\n let cover = contextImage._cover;\n let container = contextImage._container;\n let isNewContainer = false;\n\n if (cover === null) {\n isNewContainer = true;\n imageEl = contextImage._element.cloneNode(true);\n cover = this.plugins.component.set_cover.call(this, imageEl);\n }\n\n if (container === null) {\n cover = cover.cloneNode(true);\n imageEl = cover.querySelector('img');\n isNewContainer = true;\n container = this.plugins.component.set_container.call(this, cover, 'se-image-container');\n } else if (isNewContainer) {\n container.innerHTML = '';\n container.appendChild(cover);\n contextImage._cover = cover;\n contextImage._element = imageEl;\n isNewContainer = false;\n }\n\n // check size\n let changeSize;\n const x = this.util.isNumber(contextImage.inputX.value) ? contextImage.inputX.value + contextImage.sizeUnit : contextImage.inputX.value;\n const y = this.util.isNumber(contextImage.inputY.value) ? contextImage.inputY.value + contextImage.sizeUnit : contextImage.inputY.value;\n if (/%$/.test(imageEl.style.width)) {\n changeSize = x !== container.style.width || y !== container.style.height;\n } else {\n changeSize = x !== imageEl.style.width || y !== imageEl.style.height;\n }\n\n // alt\n imageEl.alt = contextImage._altText;\n \n // caption\n let modifiedCaption = false;\n if (contextImage._captionChecked) {\n if (!contextImage._caption) {\n contextImage._caption = this.plugins.component.create_caption.call(this);\n cover.appendChild(contextImage._caption);\n modifiedCaption = true;\n }\n } else {\n if (contextImage._caption) {\n this.util.removeItem(contextImage._caption);\n contextImage._caption = null;\n modifiedCaption = true;\n }\n }\n\n // link\n let isNewAnchor = null;\n const anchor = this.plugins.anchor.createAnchor.call(this, contextImage.anchorCtx, true);\n if (anchor) {\n if (contextImage._linkElement !== anchor || (isNewContainer && !container.contains(anchor))) {\n contextImage._linkElement = anchor.cloneNode(false);\n cover.insertBefore(this.plugins.image.onRender_link.call(this, imageEl, contextImage._linkElement), contextImage._caption);\n isNewAnchor = contextImage._element;\n } else {\n contextImage._linkElement.setAttribute('data-image-link', 'image');\n }\n } else if (contextImage._linkElement !== null) {\n const imageElement = imageEl;\n imageElement.setAttribute('data-image-link', '');\n if (cover.contains(contextImage._linkElement)) {\n const newEl = imageElement.cloneNode(true);\n cover.removeChild(contextImage._linkElement);\n cover.insertBefore(newEl, contextImage._caption);\n contextImage._element = imageEl = newEl;\n }\n }\n\n let existElement = null;\n if (isNewContainer) {\n existElement = (this.util.isRangeFormatElement(contextImage._element.parentNode) || this.util.isWysiwygDiv(contextImage._element.parentNode)) ? \n contextImage._element : \n this.util.isAnchor(contextImage._element.parentNode) ? contextImage._element.parentNode : this.util.getFormatElement(contextImage._element) || contextImage._element;\n \n if (this.util.getParentElement(contextImage._element, this.util.isNotCheckingNode)) {\n existElement = isNewAnchor ? anchor : contextImage._element;\n existElement.parentNode.replaceChild(container, existElement);\n } else if (this.util.isListCell(existElement)) {\n const refer = this.util.getParentElement(contextImage._element, function (current) { return current.parentNode === existElement; });\n existElement.insertBefore(container, refer);\n this.util.removeItem(contextImage._element);\n this.util.removeEmptyNode(refer, null, true);\n } else if (this.util.isFormatElement(existElement)) {\n const refer = this.util.getParentElement(contextImage._element, function (current) { return current.parentNode === existElement; });\n existElement = this.util.splitElement(existElement, refer);\n existElement.parentNode.insertBefore(container, existElement);\n this.util.removeItem(contextImage._element);\n this.util.removeEmptyNode(existElement, null, true);\n if (existElement.children.length === 0) existElement.innerHTML = this.util.htmlRemoveWhiteSpace(existElement.innerHTML);\n } else {\n if (this.util.isFormatElement(existElement.parentNode)) {\n const formats = existElement.parentNode;\n formats.parentNode.insertBefore(container, existElement.previousSibling ? formats.nextElementSibling : formats);\n if (contextImage.__updateTags.map(function (current) { return existElement.contains(current); }).length === 0) this.util.removeItem(existElement);\n } else {\n existElement = this.util.isFigures(existElement.parentNode) ? existElement.parentNode : existElement;\n existElement.parentNode.replaceChild(container, existElement);\n }\n }\n\n imageEl = container.querySelector('img');\n\n contextImage._element = imageEl;\n contextImage._cover = cover;\n contextImage._container = container;\n }\n\n if (isNewAnchor) {\n if (!isNewContainer) {\n this.util.removeItem(anchor);\n } else {\n this.util.removeItem(isNewAnchor);\n if (this.util.getListChildren(anchor, function (current) { return /IMG/i.test(current.tagName); }).length === 0) {\n this.util.removeItem(anchor);\n }\n }\n }\n\n // transform\n if (modifiedCaption || (!contextImage._onlyPercentage && changeSize)) {\n if (!init && (/\\d+/.test(imageEl.style.height) || (this.context.resizing._rotateVertical && contextImage._captionChecked))) {\n if (/%$/.test(contextImage.inputX.value) || /%$/.test(contextImage.inputY.value)) {\n this.plugins.resizing.resetTransform.call(this, imageEl);\n } else {\n this.plugins.resizing.setTransformSize.call(this, imageEl, this.util.getNumber(contextImage.inputX.value, 0), this.util.getNumber(contextImage.inputY.value, 0));\n }\n }\n }\n\n // size\n if (contextImage._resizing) {\n imageEl.setAttribute('data-proportion', contextImage._proportionChecked);\n if (changeSize) {\n this.plugins.image.applySize.call(this);\n }\n }\n\n // align\n this.plugins.image.setAlign.call(this, null, imageEl, null, null);\n\n // set imagesInfo\n if (init) {\n this.plugins.fileManager.setInfo.call(this, 'image', imageEl, this.functions.onImageUpload, null, true);\n }\n\n if (openController) {\n this.selectComponent(imageEl, 'image');\n }\n\n // history stack\n if (!notHistoryPush) this.history.push(false);\n },\n\n update_src: function (src, element, file) {\n element.src = src;\n this._w.setTimeout(this.plugins.fileManager.setInfo.bind(this, 'image', element, this.functions.onImageUpload, file, true));\n this.selectComponent(element, 'image');\n },\n\n /**\n * @Required @Override fileManager, resizing\n */\n onModifyMode: function (element, size) {\n if (!element) return;\n \n const contextImage = this.context.image;\n contextImage._linkElement = contextImage.anchorCtx.linkAnchor = this.util.isAnchor(element.parentNode) ? element.parentNode : null;\n contextImage._element = element;\n contextImage._cover = this.util.getParentElement(element, 'FIGURE');\n contextImage._container = this.util.getParentElement(element, this.util.isMediaComponent);\n contextImage._caption = this.util.getChildElement(contextImage._cover, 'FIGCAPTION');\n contextImage._align = element.getAttribute('data-align') || element.style.float || 'none';\n element.style.float = '';\n this.plugins.anchor.setCtx(contextImage._linkElement, contextImage.anchorCtx);\n\n if (size) {\n contextImage._element_w = size.w;\n contextImage._element_h = size.h;\n contextImage._element_t = size.t;\n contextImage._element_l = size.l;\n }\n\n let userSize = contextImage._element.getAttribute('data-size') || contextImage._element.getAttribute('data-origin');\n let w, h;\n if (userSize) {\n userSize = userSize.split(',');\n w = userSize[0];\n h = userSize[1];\n } else if (size) {\n w = size.w;\n h = size.h;\n }\n\n contextImage._origin_w = w || element.style.width || element.width || '';\n contextImage._origin_h = h || element.style.height || element.height || '';\n },\n\n /**\n * @Required @Override fileManager, resizing\n */\n openModify: function (notOpen) {\n const contextImage = this.context.image;\n if (contextImage.imgUrlFile) {\n contextImage._v_src._linkValue = contextImage.previewSrc.textContent = contextImage.imgUrlFile.value = contextImage._element.src;\n }\n contextImage._altText = contextImage.altText.value = contextImage._element.alt;\n (contextImage.modal.querySelector('input[name=\"suneditor_image_radio\"][value=\"' + contextImage._align + '\"]') || contextImage.modal.querySelector('input[name=\"suneditor_image_radio\"][value=\"none\"]')).checked = true;\n contextImage._align = contextImage.modal.querySelector('input[name=\"suneditor_image_radio\"]:checked').value;\n contextImage._captionChecked = contextImage.captionCheckEl.checked = !!contextImage._caption;\n \n if (contextImage._resizing) {\n this.plugins.resizing._module_setModifyInputSize.call(this, contextImage, this.plugins.image);\n }\n\n if (!notOpen) this.plugins.dialog.open.call(this, 'image', true);\n },\n\n /**\n * @Override fileManager\n */\n applySize: function (w, h) {\n const contextImage = this.context.image;\n\n if (!w) w = contextImage.inputX.value || this.options.imageWidth;\n if (!h) h = contextImage.inputY.value || this.options.imageHeight;\n \n if ((contextImage._onlyPercentage && !!w) || /%$/.test(w)) {\n this.plugins.image.setPercentSize.call(this, w, h);\n return true;\n } else if ((!w || w === 'auto') && (!h || h === 'auto')) {\n this.plugins.image.setAutoSize.call(this);\n } else {\n this.plugins.image.setSize.call(this, w, h, false);\n }\n\n return false;\n },\n\n /**\n * @Override resizing\n */\n sizeRevert: function () {\n this.plugins.resizing._module_sizeRevert.call(this, this.context.image);\n },\n\n /**\n * @Override resizing\n */\n setSize: function (w, h, notResetPercentage, direction) {\n const contextImage = this.context.image;\n const onlyW = /^(rw|lw)$/.test(direction) && /\\d+/.test(contextImage._element.style.height);\n const onlyH = /^(th|bh)$/.test(direction) && /\\d+/.test(contextImage._element.style.width);\n\n if (!onlyH) {\n contextImage._element.style.width = this.util.isNumber(w) ? w + contextImage.sizeUnit : w;\n this.plugins.image.cancelPercentAttr.call(this);\n }\n if (!onlyW) {\n contextImage._element.style.height = this.util.isNumber(h) ? h + contextImage.sizeUnit : /%$/.test(h) ? '' : h;\n }\n\n if (contextImage._align === 'center') this.plugins.image.setAlign.call(this, null, null, null, null);\n if (!notResetPercentage) contextImage._element.removeAttribute('data-percentage');\n\n // save current size\n this.plugins.resizing._module_saveCurrentSize.call(this, contextImage);\n },\n\n /**\n * @Override resizing\n */\n setAutoSize: function () {\n const contextImage = this.context.image;\n\n if (contextImage._caption) contextImage._caption.style.marginTop = '';\n this.plugins.resizing.resetTransform.call(this, contextImage._element);\n this.plugins.image.cancelPercentAttr.call(this);\n\n contextImage._element.style.maxWidth = '';\n contextImage._element.style.width = '';\n contextImage._element.style.height = '';\n contextImage._cover.style.width = '';\n contextImage._cover.style.height = '';\n\n this.plugins.image.setAlign.call(this, null, null, null, null);\n contextImage._element.setAttribute('data-percentage', 'auto,auto');\n\n // save current size\n this.plugins.resizing._module_saveCurrentSize.call(this, contextImage);\n },\n \n /**\n * @Override resizing\n */\n setOriginSize: function () {\n const contextImage = this.context.image;\n contextImage._element.removeAttribute('data-percentage');\n\n this.plugins.resizing.resetTransform.call(this, contextImage._element);\n this.plugins.image.cancelPercentAttr.call(this);\n\n const originSize = (contextImage._element.getAttribute('data-origin') || '').split(',');\n const w = originSize[0];\n const h = originSize[1];\n\n if (originSize) {\n if (contextImage._onlyPercentage || (/%$/.test(w) && (/%$/.test(h) || !/\\d/.test(h)))) {\n this.plugins.image.setPercentSize.call(this, w, h);\n } else {\n this.plugins.image.setSize.call(this, w, h);\n }\n\n // save current size\n this.plugins.resizing._module_saveCurrentSize.call(this, contextImage);\n }\n },\n\n /**\n * @Override resizing\n */\n setPercentSize: function (w, h) {\n const contextImage = this.context.image;\n h = !!h && !/%$/.test(h) && !this.util.getNumber(h, 0) ? this.util.isNumber(h) ? h + '%' : h : this.util.isNumber(h) ? h + contextImage.sizeUnit : (h || '');\n const heightPercentage = /%$/.test(h);\n\n contextImage._container.style.width = this.util.isNumber(w) ? w + '%' : w;\n contextImage._container.style.height = '';\n contextImage._cover.style.width = '100%';\n contextImage._cover.style.height = !heightPercentage ? '' : h;\n contextImage._element.style.width = '100%';\n contextImage._element.style.height = heightPercentage ? '' : h;\n contextImage._element.style.maxWidth = '';\n\n if (contextImage._align === 'center') this.plugins.image.setAlign.call(this, null, null, null, null);\n\n contextImage._element.setAttribute('data-percentage', w + ',' + h);\n this.plugins.resizing.setCaptionPosition.call(this, contextImage._element);\n\n // save current size\n this.plugins.resizing._module_saveCurrentSize.call(this, contextImage);\n },\n\n /**\n * @Override resizing\n */\n cancelPercentAttr: function () {\n const contextImage = this.context.image;\n \n contextImage._cover.style.width = '';\n contextImage._cover.style.height = '';\n contextImage._container.style.width = '';\n contextImage._container.style.height = '';\n\n this.util.removeClass(contextImage._container, this.context.image._floatClassRegExp);\n this.util.addClass(contextImage._container, '__se__float-' + contextImage._align);\n\n if (contextImage._align === 'center') this.plugins.image.setAlign.call(this, null, null, null, null);\n },\n\n /**\n * @Override resizing\n */\n setAlign: function (align, element, cover, container) {\n const contextImage = this.context.image;\n \n if (!align) align = contextImage._align;\n if (!element) element = contextImage._element;\n if (!cover) cover = contextImage._cover;\n if (!container) container = contextImage._container;\n\n if (/%$/.test(element.style.width) && align === 'center') {\n container.style.minWidth = '100%';\n cover.style.width = container.style.width;\n } else {\n container.style.minWidth = '';\n cover.style.width = this.context.resizing._rotateVertical ? (element.style.height || element.offsetHeight) : ((!element.style.width || element.style.width === 'auto') ? '' : element.style.width || '100%');\n }\n\n if (!this.util.hasClass(container, '__se__float-' + align)) {\n this.util.removeClass(container, contextImage._floatClassRegExp);\n this.util.addClass(container, '__se__float-' + align);\n }\n \n element.setAttribute('data-align', align);\n },\n\n /**\n * @Override dialog\n */\n init: function () {\n const contextImage = this.context.image;\n if (contextImage.imgInputFile) contextImage.imgInputFile.value = '';\n if (contextImage.imgUrlFile) contextImage._v_src._linkValue = contextImage.previewSrc.textContent = contextImage.imgUrlFile.value = '';\n if (contextImage.imgInputFile && contextImage.imgUrlFile) {\n contextImage.imgUrlFile.removeAttribute('disabled');\n contextImage.previewSrc.style.textDecoration = '';\n }\n\n contextImage.altText.value = '';\n contextImage.modal.querySelector('input[name=\"suneditor_image_radio\"][value=\"none\"]').checked = true;\n contextImage.captionCheckEl.checked = false;\n contextImage._element = null;\n this.plugins.image.openTab.call(this, 'init');\n\n if (contextImage._resizing) {\n contextImage.inputX.value = this.options.imageWidth === contextImage._defaultSizeX ? '' : this.options.imageWidth;\n contextImage.inputY.value = this.options.imageHeight === contextImage._defaultSizeY ? '' : this.options.imageHeight;\n contextImage.proportion.checked = true;\n contextImage._ratio = false;\n contextImage._ratioX = 1;\n contextImage._ratioY = 1;\n }\n\n this.plugins.anchor.init.call(this, contextImage.anchorCtx);\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nimport dialog from '../modules/dialog';\nimport component from '../modules/component';\nimport resizing from '../modules/resizing';\nimport fileManager from '../modules/fileManager';\n\nexport default {\n name: 'video',\n display: 'dialog',\n add: function (core) {\n core.addModule([dialog, component, resizing, fileManager]);\n\n const options = core.options;\n const context = core.context;\n const contextVideo = context.video = {\n _infoList: [], // @Override fileManager\n _infoIndex: 0, // @Override fileManager\n _uploadFileLength: 0, // @Override fileManager\n focusElement: null, // @Override dialog // This element has focus when the dialog is opened.\n sizeUnit: options._videoSizeUnit,\n _align: 'none',\n _floatClassRegExp: '__se__float\\\\-[a-z]+',\n _youtubeQuery: options.youtubeQuery,\n _vimeoQuery: options.vimeoQuery,\n _videoRatio: (options.videoRatio * 100) + '%',\n _defaultRatio: (options.videoRatio * 100) + '%',\n _linkValue: '',\n // @require @Override component\n _element: null,\n _cover: null,\n _container: null,\n // @Override resizing properties\n inputX: null,\n inputY: null,\n _element_w: 1,\n _element_h: 1,\n _element_l: 0,\n _element_t: 0,\n _defaultSizeX: '100%',\n _defaultSizeY: (options.videoRatio * 100) + '%',\n _origin_w: options.videoWidth === '100%' ? '' : options.videoWidth,\n _origin_h: options.videoHeight === '56.25%' ? '' : options.videoHeight,\n _proportionChecked: true,\n _resizing: options.videoResizing,\n _resizeDotHide: !options.videoHeightShow,\n _rotation: options.videoRotation,\n _alignHide: !options.videoAlignShow,\n _onlyPercentage: options.videoSizeOnlyPercentage,\n _ratio: false,\n _ratioX: 1,\n _ratioY: 1,\n _captionShow: false\n };\n\n /** video dialog */\n let video_dialog = this.setDialog(core);\n contextVideo.modal = video_dialog;\n contextVideo.videoInputFile = video_dialog.querySelector('._se_video_file');\n contextVideo.videoUrlFile = video_dialog.querySelector('.se-input-url');\n contextVideo.focusElement = contextVideo.videoUrlFile || contextVideo.videoInputFile;\n contextVideo.preview = video_dialog.querySelector('.se-link-preview');\n\n /** add event listeners */\n video_dialog.querySelector('form').addEventListener('submit', this.submit.bind(core));\n if (contextVideo.videoInputFile) video_dialog.querySelector('.se-dialog-files-edge-button').addEventListener('click', this._removeSelectedFiles.bind(contextVideo.videoInputFile, contextVideo.videoUrlFile, contextVideo.preview));\n if (contextVideo.videoInputFile && contextVideo.videoUrlFile) contextVideo.videoInputFile.addEventListener('change', this._fileInputChange.bind(contextVideo));\n if (contextVideo.videoUrlFile) contextVideo.videoUrlFile.addEventListener('input', this._onLinkPreview.bind(contextVideo.preview, contextVideo, options.linkProtocol));\n\n contextVideo.proportion = {};\n contextVideo.videoRatioOption = {};\n contextVideo.inputX = {};\n contextVideo.inputY = {};\n if (options.videoResizing) {\n contextVideo.proportion = video_dialog.querySelector('._se_video_check_proportion');\n contextVideo.videoRatioOption = video_dialog.querySelector('.se-video-ratio');\n contextVideo.inputX = video_dialog.querySelector('._se_video_size_x');\n contextVideo.inputY = video_dialog.querySelector('._se_video_size_y');\n contextVideo.inputX.value = options.videoWidth;\n contextVideo.inputY.value = options.videoHeight;\n\n contextVideo.inputX.addEventListener('keyup', this.setInputSize.bind(core, 'x'));\n contextVideo.inputY.addEventListener('keyup', this.setInputSize.bind(core, 'y'));\n\n contextVideo.inputX.addEventListener('change', this.setRatio.bind(core));\n contextVideo.inputY.addEventListener('change', this.setRatio.bind(core));\n contextVideo.proportion.addEventListener('change', this.setRatio.bind(core));\n contextVideo.videoRatioOption.addEventListener('change', this.setVideoRatio.bind(core));\n\n video_dialog.querySelector('.se-dialog-btn-revert').addEventListener('click', this.sizeRevert.bind(core));\n }\n\n /** append html */\n context.dialog.modal.appendChild(video_dialog);\n\n /** empty memory */\n video_dialog = null;\n },\n\n /** dialog */\n setDialog: function (core) {\n const option = core.options;\n const lang = core.lang;\n const dialog = core.util.createElement('DIV');\n\n dialog.className = 'se-dialog-content';\n dialog.style.display = 'none';\n let html = '' +\n '
    ' +\n '
    ' +\n '' +\n '' + lang.dialogBox.videoBox.title + '' +\n '
    ' +\n '
    ';\n\n if (option.videoFileInput) {\n html += '' +\n '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' ;\n }\n \n if (option.videoUrlInput) {\n html += '' +\n '
    ' +\n '' +\n '' +\n '' +\n '
    ';\n }\n\n if (option.videoResizing) {\n const ratioList = option.videoRatioList || [{name: '16:9', value: 0.5625}, {name: '4:3', value: 0.75}, {name: '21:9', value: 0.4285}];\n const ratio = option.videoRatio;\n const onlyPercentage = option.videoSizeOnlyPercentage;\n const onlyPercentDisplay = onlyPercentage ? ' style=\"display: none !important;\"' : '';\n const heightDisplay = !option.videoHeightShow ? ' style=\"display: none !important;\"' : '';\n const ratioDisplay = !option.videoRatioShow ? ' style=\"display: none !important;\"' : '';\n const onlyWidthDisplay = !onlyPercentage && !option.videoHeightShow && !option.videoRatioShow ? ' style=\"display: none !important;\"' : '';\n html += '' +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '' +\n '' +\n '
    ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
    ' +\n '
    ' +\n '' +\n '
    ';\n }\n\n html += '' +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ';\n\n dialog.innerHTML = html;\n\n return dialog;\n },\n\n _fileInputChange: function () {\n if (!this.videoInputFile.value) {\n this.videoUrlFile.removeAttribute('disabled');\n this.preview.style.textDecoration = '';\n } else {\n this.videoUrlFile.setAttribute('disabled', true);\n this.preview.style.textDecoration = 'line-through';\n }\n },\n\n _removeSelectedFiles: function (urlInput, preview) {\n this.value = '';\n if (urlInput) {\n urlInput.removeAttribute('disabled');\n preview.style.textDecoration = '';\n }\n },\n\n _onLinkPreview: function (context, protocol, e) {\n const value = e.target.value.trim();\n if (/^$/.test(value)) {\n context._linkValue = value;\n this.textContent = '';\n } else {\n context._linkValue = this.textContent = !value ? '' : (protocol && value.indexOf('://') === -1 && value.indexOf('#') !== 0) ? protocol + value : value.indexOf('://') === -1 ? '/' + value : value;\n }\n },\n\n _setTagAttrs: function (element) {\n element.setAttribute('controls', true);\n\n const attrs = this.options.videoTagAttrs;\n if (!attrs) return;\n\n for (let key in attrs) {\n if (!this.util.hasOwn(attrs, key)) continue;\n element.setAttribute(key, attrs[key]);\n }\n },\n\n createVideoTag: function () {\n const videoTag = this.util.createElement('VIDEO');\n this.plugins.video._setTagAttrs.call(this, videoTag);\n return videoTag;\n },\n\n _setIframeAttrs: function (element) {\n element.frameBorder = '0';\n element.allowFullscreen = true;\n\n const attrs = this.options.videoIframeAttrs;\n if (!attrs) return;\n\n for (let key in attrs) {\n if (!this.util.hasOwn(attrs, key)) continue;\n element.setAttribute(key, attrs[key]);\n }\n },\n\n createIframeTag: function () {\n const iframeTag = this.util.createElement('IFRAME');\n this.plugins.video._setIframeAttrs.call(this, iframeTag);\n return iframeTag;\n },\n\n /**\n * @Override @Required fileManager\n */\n fileTags: ['iframe', 'video'],\n\n /**\n * @Override core, resizing, fileManager\n * @description It is called from core.selectComponent.\n * @param {Element} element Target element\n */\n select: function (element) {\n this.plugins.video.onModifyMode.call(this, element, this.plugins.resizing.call_controller_resize.call(this, element, 'video'));\n },\n\n /**\n * @Override fileManager, resizing\n */\n destroy: function (element) {\n const frame = element || this.context.video._element;\n const container = this.context.video._container;\n const dataIndex = frame.getAttribute('data-index') * 1;\n\n if (typeof this.functions.onVideoDeleteBefore === 'function' && (this.functions.onVideoDeleteBefore(frame, container, dataIndex, this) === false)) return;\n\n let focusEl = (container.previousElementSibling || container.nextElementSibling);\n const emptyDiv = container.parentNode;\n this.util.removeItem(container);\n this.plugins.video.init.call(this);\n this.controllersOff();\n\n if (emptyDiv !== this.context.element.wysiwyg) this.util.removeItemAllParents(emptyDiv, function (current) { return current.childNodes.length === 0; }, null);\n\n // focus\n this.focusEdge(focusEl);\n\n // event\n this.plugins.fileManager.deleteInfo.call(this, 'video', dataIndex, this.functions.onVideoUpload);\n\n // history stack\n this.history.push(false);\n },\n\n /**\n * @Required @Override dialog\n */\n on: function (update) {\n const contextVideo = this.context.video;\n\n if (!update) {\n contextVideo.inputX.value = contextVideo._origin_w = this.options.videoWidth === contextVideo._defaultSizeX ? '' : this.options.videoWidth;\n contextVideo.inputY.value = contextVideo._origin_h = this.options.videoHeight === contextVideo._defaultSizeY ? '' : this.options.videoHeight;\n contextVideo.proportion.disabled = true;\n if (contextVideo.videoInputFile && this.options.videoMultipleFile) contextVideo.videoInputFile.setAttribute('multiple', 'multiple');\n } else {\n if (contextVideo.videoInputFile && this.options.videoMultipleFile) contextVideo.videoInputFile.removeAttribute('multiple');\n }\n\n if (contextVideo._resizing) {\n this.plugins.video.setVideoRatioSelect.call(this, contextVideo._origin_h || contextVideo._defaultRatio);\n }\n },\n\n /**\n * @Required @Override dialog\n */\n open: function () {\n this.plugins.dialog.open.call(this, 'video', 'video' === this.currentControllerName);\n },\n \n setVideoRatio: function (e) {\n const contextVideo = this.context.video;\n const value = e.target.options[e.target.selectedIndex].value;\n\n contextVideo._defaultSizeY = contextVideo._videoRatio = !value ? contextVideo._defaultSizeY : (value * 100) + '%';\n contextVideo.inputY.placeholder = !value ? '' : (value * 100) + '%';\n contextVideo.inputY.value = '';\n },\n\n /**\n * @Override resizing\n * @param {String} xy 'x': width, 'y': height\n * @param {KeyboardEvent} e Event object\n */\n setInputSize: function (xy, e) {\n if (e && e.keyCode === 32) {\n e.preventDefault();\n return;\n }\n\n const contextVideo = this.context.video;\n this.plugins.resizing._module_setInputSize.call(this, contextVideo, xy);\n\n if (xy === 'y') {\n this.plugins.video.setVideoRatioSelect.call(this, e.target.value || contextVideo._defaultRatio);\n }\n },\n\n /**\n * @Override resizing\n */\n setRatio: function () {\n this.plugins.resizing._module_setRatio.call(this, this.context.video);\n },\n\n submit: function (e) {\n const contextVideo = this.context.video;\n const videoPlugin = this.plugins.video;\n\n e.preventDefault();\n e.stopPropagation();\n\n contextVideo._align = contextVideo.modal.querySelector('input[name=\"suneditor_video_radio\"]:checked').value;\n\n try {\n if (contextVideo.videoInputFile && contextVideo.videoInputFile.files.length > 0) {\n this.showLoading();\n videoPlugin.submitAction.call(this, this.context.video.videoInputFile.files);\n } else if (contextVideo.videoUrlFile && contextVideo._linkValue.length > 0) {\n this.showLoading();\n videoPlugin.setup_url.call(this, contextVideo._linkValue);\n }\n } catch (error) {\n this.closeLoading();\n throw Error('[SUNEDITOR.video.submit.fail] cause : \"' + error.message + '\"');\n } finally {\n this.plugins.dialog.close.call(this);\n }\n\n return false;\n },\n\n submitAction: function (fileList) {\n if (fileList.length === 0) return;\n\n let fileSize = 0;\n let files = [];\n for (let i = 0, len = fileList.length; i < len; i++) {\n if (/video/i.test(fileList[i].type)) {\n files.push(fileList[i]);\n fileSize += fileList[i].size;\n }\n }\n\n const limitSize = this.options.videoUploadSizeLimit;\n if (limitSize > 0) {\n let infoSize = 0;\n const videosInfo = this.context.video._infoList;\n for (let i = 0, len = videosInfo.length; i < len; i++) {\n infoSize += videosInfo[i].size * 1;\n }\n\n if ((fileSize + infoSize) > limitSize) {\n this.closeLoading();\n const err = '[SUNEDITOR.videoUpload.fail] Size of uploadable total videos: ' + (limitSize/1000) + 'KB';\n if (typeof this.functions.onVideoUploadError !== 'function' || this.functions.onVideoUploadError(err, { 'limitSize': limitSize, 'currentSize': infoSize, 'uploadSize': fileSize }, this)) {\n this.functions.noticeOpen(err);\n }\n return;\n }\n }\n\n const contextVideo = this.context.video;\n contextVideo._uploadFileLength = files.length;\n\n const info = {\n inputWidth: contextVideo.inputX.value,\n inputHeight: contextVideo.inputY.value,\n align: contextVideo._align,\n isUpdate: this.context.dialog.updateModal,\n element: contextVideo._element\n };\n\n if (typeof this.functions.onVideoUploadBefore === 'function') {\n const result = this.functions.onVideoUploadBefore(files, info, this, function (data) {\n if (data && this._w.Array.isArray(data.result)) {\n this.plugins.video.register.call(this, info, data);\n } else {\n this.plugins.video.upload.call(this, info, data);\n }\n }.bind(this));\n\n if (typeof result === 'undefined') return;\n if (!result) {\n this.closeLoading();\n return;\n }\n if (typeof result === 'object' && result.length > 0) files = result;\n }\n\n this.plugins.video.upload.call(this, info, files);\n },\n\n error: function (message, response) {\n this.closeLoading();\n if (typeof this.functions.onVideoUploadError !== 'function' || this.functions.onVideoUploadError(message, response, this)) {\n this.functions.noticeOpen(message);\n throw Error('[SUNEDITOR.plugin.video.error] response: ' + message);\n }\n },\n\n upload: function (info, files) {\n if (!files) {\n this.closeLoading();\n return;\n }\n if (typeof files === 'string') {\n this.plugins.video.error.call(this, files, null);\n return;\n }\n\n const videoUploadUrl = this.options.videoUploadUrl;\n const filesLen = this.context.dialog.updateModal ? 1 : files.length;\n\n // server upload\n if (typeof videoUploadUrl === 'string' && videoUploadUrl.length > 0) {\n const formData = new FormData();\n for (let i = 0; i < filesLen; i++) {\n formData.append('file-' + i, files[i]);\n }\n this.plugins.fileManager.upload.call(this, videoUploadUrl, this.options.videoUploadHeader, formData, this.plugins.video.callBack_videoUpload.bind(this, info), this.functions.onVideoUploadError);\n } else {\n throw Error('[SUNEDITOR.videoUpload.fail] cause : There is no \"videoUploadUrl\" option.');\n }\n },\n\n callBack_videoUpload: function (info, xmlHttp) {\n if (typeof this.functions.videoUploadHandler === 'function') {\n this.functions.videoUploadHandler(xmlHttp, info, this);\n } else {\n const response = JSON.parse(xmlHttp.responseText);\n if (response.errorMessage) {\n this.plugins.video.error.call(this, response.errorMessage, response);\n } else {\n this.plugins.video.register.call(this, info, response);\n }\n }\n },\n\n register: function (info, response) {\n const fileList = response.result;\n const videoTag = this.plugins.video.createVideoTag.call(this);\n\n for (let i = 0, len = fileList.length, file; i < len; i++) {\n file = { name: fileList[i].name, size: fileList[i].size };\n this.plugins.video.create_video.call(this, (info.isUpdate ? info.element : videoTag.cloneNode(false)), fileList[i].url, info.inputWidth, info.inputHeight, info.align, file, info.isUpdate);\n }\n\n this.closeLoading();\n },\n\n setup_url: function (url) {\n try {\n const contextVideo = this.context.video;\n if (!url) url = contextVideo._linkValue;\n if (!url) return false;\n\n /** iframe source */\n if (/^$/.test(url)) {\n const oIframe = (new this._w.DOMParser()).parseFromString(url, 'text/html').querySelector('iframe');\n url = oIframe.src;\n if (url.length === 0) return false;\n }\n \n /** youtube */\n if (/youtu\\.?be/.test(url)) {\n if (!/^http/.test(url)) url = 'https://' + url;\n url = url.replace('watch?v=', '');\n if (!/^\\/\\/.+\\/embed\\//.test(url)) {\n url = url.replace(url.match(/\\/\\/.+\\//)[0], '//www.youtube.com/embed/').replace('&', '?&');\n }\n\n if (contextVideo._youtubeQuery.length > 0) {\n if (/\\?/.test(url)) {\n const splitUrl = url.split('?');\n url = splitUrl[0] + '?' + contextVideo._youtubeQuery + '&' + splitUrl[1];\n } else {\n url += '?' + contextVideo._youtubeQuery;\n }\n }\n } else if (/vimeo\\.com/.test(url)) {\n if (url.endsWith('/')) {\n url = url.slice(0, -1);\n }\n url = 'https://player.vimeo.com/video/' + url.slice(url.lastIndexOf('/') + 1);\n\n if (contextVideo._vimeoQuery.length > 0) {\n if (/\\?/.test(url)) {\n const splitUrl = url.split('?');\n url = splitUrl[0] + '?' + contextVideo._vimeoQuery + '&' + splitUrl[1];\n } else {\n url += '?' + contextVideo._vimeoQuery;\n }\n }\n }\n\n this.plugins.video.create_video.call(this, this.plugins.video[(!/embed|iframe|player|\\/e\\/|\\.php|\\.html?/.test(url) && !/vimeo\\.com/.test(url) ? \"createVideoTag\" : \"createIframeTag\")].call(this), url, contextVideo.inputX.value, contextVideo.inputY.value, contextVideo._align, null, this.context.dialog.updateModal);\n } catch (error) {\n throw Error('[SUNEDITOR.video.upload.fail] cause : \"' + error.message + '\"');\n } finally {\n this.closeLoading();\n }\n },\n\n create_video: function (oFrame, src, width, height, align, file, isUpdate) {\n this.context.resizing._resize_plugin = 'video';\n const contextVideo = this.context.video;\n \n let cover = null;\n let container = null;\n let init = false;\n\n /** update */\n if (isUpdate) {\n oFrame = contextVideo._element;\n if (oFrame.src !== src) {\n init = true;\n const isYoutube = /youtu\\.?be/.test(src);\n const isVimeo = /vimeo\\.com/.test(src);\n if ((isYoutube || isVimeo) && !/^iframe$/i.test(oFrame.nodeName)) {\n const newTag = this.plugins.video.createIframeTag.call(this);\n newTag.src = src;\n oFrame.parentNode.replaceChild(newTag, oFrame);\n contextVideo._element = oFrame = newTag;\n } else if (!isYoutube && !isVimeo && !/^video$/i.test(oFrame.nodeName)) {\n const newTag = this.plugins.video.createVideoTag.call(this);\n newTag.src = src;\n oFrame.parentNode.replaceChild(newTag, oFrame);\n contextVideo._element = oFrame = newTag;\n } else {\n oFrame.src = src;\n }\n }\n container = contextVideo._container;\n cover = this.util.getParentElement(oFrame, 'FIGURE');\n }\n /** create */\n else {\n init = true;\n oFrame.src = src;\n contextVideo._element = oFrame;\n cover = this.plugins.component.set_cover.call(this, oFrame);\n container = this.plugins.component.set_container.call(this, cover, 'se-video-container');\n }\n\n /** rendering */\n contextVideo._cover = cover;\n contextVideo._container = container;\n\n const inputUpdate = (this.plugins.resizing._module_getSizeX.call(this, contextVideo) !== (width || contextVideo._defaultSizeX)) || (this.plugins.resizing._module_getSizeY.call(this, contextVideo) !== (height || contextVideo._videoRatio));\n const changeSize = !isUpdate || inputUpdate;\n\n if (contextVideo._resizing) {\n this.context.video._proportionChecked = contextVideo.proportion.checked;\n oFrame.setAttribute('data-proportion', contextVideo._proportionChecked);\n }\n\n // size\n let isPercent = false;\n if (changeSize) {\n isPercent = this.plugins.video.applySize.call(this);\n }\n\n // align\n if (!(isPercent && align === 'center')) {\n this.plugins.video.setAlign.call(this, null, oFrame, cover, container);\n }\n\n let changed = true;\n if (!isUpdate) {\n changed = this.insertComponent(container, false, true, !this.options.mediaAutoSelect);\n if (!this.options.mediaAutoSelect) {\n const line = this.appendFormatTag(container, null);\n if (line) this.setRange(line, 0, line, 0);\n }\n } else if (contextVideo._resizing && this.context.resizing._rotateVertical && changeSize) {\n this.plugins.resizing.setTransformSize.call(this, oFrame, null, null);\n }\n\n if (changed) {\n if (init) {\n this.plugins.fileManager.setInfo.call(this, 'video', oFrame, this.functions.onVideoUpload, file, true);\n }\n if (isUpdate) {\n this.selectComponent(oFrame, 'video');\n // history stack\n this.history.push(false);\n }\n }\n\n this.context.resizing._resize_plugin = '';\n },\n\n _update_videoCover: function (oFrame) {\n if (!oFrame) return;\n\n const contextVideo = this.context.video;\n \n if (/^video$/i.test(oFrame.nodeName)) this.plugins.video._setTagAttrs.call(this, oFrame);\n else this.plugins.video._setIframeAttrs.call(this, oFrame);\n \n let existElement = (this.util.isRangeFormatElement(oFrame.parentNode) || this.util.isWysiwygDiv(oFrame.parentNode)) ? \n oFrame : this.util.getFormatElement(oFrame) || oFrame;\n\n const prevFrame = oFrame;\n contextVideo._element = oFrame = oFrame.cloneNode(true);\n const cover = contextVideo._cover = this.plugins.component.set_cover.call(this, oFrame);\n const container = contextVideo._container = this.plugins.component.set_container.call(this, cover, 'se-video-container');\n\n try {\n const figcaption = existElement.querySelector('figcaption');\n let caption = null;\n if (!!figcaption) {\n caption = this.util.createElement('DIV');\n caption.innerHTML = figcaption.innerHTML;\n this.util.removeItem(figcaption);\n }\n\n // size\n const size = (oFrame.getAttribute('data-size') || oFrame.getAttribute('data-origin') || '').split(',');\n this.plugins.video.applySize.call(this, (size[0] || prevFrame.style.width || prevFrame.width || ''), (size[1] || prevFrame.style.height || prevFrame.height || ''));\n\n // align\n const format = this.util.getFormatElement(prevFrame);\n if (format) contextVideo._align = format.style.textAlign || format.style.float;\n this.plugins.video.setAlign.call(this, null, oFrame, cover, container);\n\n if (this.util.getParentElement(prevFrame, this.util.isNotCheckingNode)) {\n prevFrame.parentNode.replaceChild(container, prevFrame);\n } else if (this.util.isListCell(existElement)) {\n const refer = this.util.getParentElement(prevFrame, function (current) { return current.parentNode === existElement; });\n existElement.insertBefore(container, refer);\n this.util.removeItem(prevFrame);\n this.util.removeEmptyNode(refer, null, true);\n } else if (this.util.isFormatElement(existElement)) {\n const refer = this.util.getParentElement(prevFrame, function (current) { return current.parentNode === existElement; });\n existElement = this.util.splitElement(existElement, refer);\n existElement.parentNode.insertBefore(container, existElement);\n this.util.removeItem(prevFrame);\n this.util.removeEmptyNode(existElement, null, true);\n if (existElement.children.length === 0) existElement.innerHTML = this.util.htmlRemoveWhiteSpace(existElement.innerHTML);\n } else {\n existElement.parentNode.replaceChild(container, existElement);\n }\n\n if (!!caption) existElement.parentNode.insertBefore(caption, container.nextElementSibling);\n } catch (error) {\n console.warn('[SUNEDITOR.video.error] Maybe the video tag is nested.', error);\n }\n\n this.plugins.fileManager.setInfo.call(this, 'video', oFrame, this.functions.onVideoUpload, null, true);\n this.plugins.video.init.call(this);\n },\n\n /**\n * @Required @Override fileManager, resizing\n */\n onModifyMode: function (element, size) {\n const contextVideo = this.context.video;\n contextVideo._element = element;\n contextVideo._cover = this.util.getParentElement(element, 'FIGURE');\n contextVideo._container = this.util.getParentElement(element, this.util.isMediaComponent);\n contextVideo._align = element.style.float || element.getAttribute('data-align') || 'none';\n element.style.float = '';\n\n if (size) {\n contextVideo._element_w = size.w;\n contextVideo._element_h = size.h;\n contextVideo._element_t = size.t;\n contextVideo._element_l = size.l;\n }\n\n let origin = contextVideo._element.getAttribute('data-size') || contextVideo._element.getAttribute('data-origin');\n let w, h;\n if (origin) {\n origin = origin.split(',');\n w = origin[0];\n h = origin[1];\n } else if (size) {\n w = size.w;\n h = size.h;\n }\n\n contextVideo._origin_w = w || element.style.width || element.width || '';\n contextVideo._origin_h = h || element.style.height || element.height || '';\n },\n\n /**\n * @Required @Override fileManager, resizing\n */\n openModify: function (notOpen) {\n const contextVideo = this.context.video;\n\n if (contextVideo.videoUrlFile) contextVideo._linkValue = contextVideo.preview.textContent = contextVideo.videoUrlFile.value = (contextVideo._element.src || (contextVideo._element.querySelector('source') || '').src || '');\n (contextVideo.modal.querySelector('input[name=\"suneditor_video_radio\"][value=\"' + contextVideo._align + '\"]') || contextVideo.modal.querySelector('input[name=\"suneditor_video_radio\"][value=\"none\"]')).checked = true;\n\n if (contextVideo._resizing) {\n this.plugins.resizing._module_setModifyInputSize.call(this, contextVideo, this.plugins.video);\n \n const y = contextVideo._videoRatio = this.plugins.resizing._module_getSizeY.call(this, contextVideo);\n const ratioSelected = this.plugins.video.setVideoRatioSelect.call(this, y);\n if (!ratioSelected) contextVideo.inputY.value = contextVideo._onlyPercentage ? this.util.getNumber(y, 2) : y;\n }\n\n if (!notOpen) this.plugins.dialog.open.call(this, 'video', true);\n },\n \n setVideoRatioSelect: function (value) {\n let ratioSelected = false;\n const contextVideo = this.context.video;\n const ratioOptions = contextVideo.videoRatioOption.options;\n\n if (/%$/.test(value) || contextVideo._onlyPercentage) value = (this.util.getNumber(value, 2) / 100) + '';\n else if (!this.util.isNumber(value) || (value * 1) >= 1) value = '';\n\n contextVideo.inputY.placeholder = '';\n for (let i = 0, len = ratioOptions.length; i < len; i++) {\n if (ratioOptions[i].value === value) {\n ratioSelected = ratioOptions[i].selected = true;\n contextVideo.inputY.placeholder = !value ? '' : (value * 100) + '%';\n }\n else ratioOptions[i].selected = false;\n }\n\n return ratioSelected;\n },\n\n /**\n * @Override fileManager\n */\n checkFileInfo: function () {\n this.plugins.fileManager.checkInfo.call(this, 'video', ['iframe', 'video'], this.functions.onVideoUpload, this.plugins.video._update_videoCover.bind(this), true);\n },\n\n /**\n * @Override fileManager\n */\n resetFileInfo: function () {\n this.plugins.fileManager.resetInfo.call(this, 'video', this.functions.onVideoUpload);\n },\n\n /**\n * @Override fileManager\n */\n applySize: function (w, h) {\n const contextVideo = this.context.video;\n\n if (!w) w = contextVideo.inputX.value || this.options.videoWidth;\n if (!h) h = contextVideo.inputY.value || this.options.videoHeight;\n \n if (contextVideo._onlyPercentage || /%$/.test(w) || !w) {\n this.plugins.video.setPercentSize.call(this, (w || '100%'), (h || (/%$/.test(contextVideo._videoRatio) ? contextVideo._videoRatio : contextVideo._defaultRatio)));\n return true;\n } else if ((!w || w === 'auto') && (!h || h === 'auto')) {\n this.plugins.video.setAutoSize.call(this);\n } else {\n this.plugins.video.setSize.call(this, w, (h || contextVideo._videoRatio || contextVideo._defaultRatio), false);\n }\n\n return false;\n },\n\n /**\n * @Override resizing\n */\n sizeRevert: function () {\n this.plugins.resizing._module_sizeRevert.call(this, this.context.video);\n },\n\n /**\n * @Override resizing\n */\n setSize: function (w, h, notResetPercentage, direction) {\n const contextVideo = this.context.video;\n const onlyW = /^(rw|lw)$/.test(direction);\n const onlyH = /^(th|bh)$/.test(direction);\n\n if (!onlyH) w = this.util.getNumber(w, 0);\n if (!onlyW) h = this.util.isNumber(h) ? h + contextVideo.sizeUnit : !h ? '' : h;\n w = w ? w + contextVideo.sizeUnit : '';\n\n if (!onlyH) contextVideo._element.style.width = w;\n if (!onlyW) contextVideo._cover.style.paddingBottom = contextVideo._cover.style.height = h;\n\n if (!onlyH && !/%$/.test(w)) {\n contextVideo._cover.style.width = w;\n contextVideo._container.style.width = '';\n }\n\n if (!onlyW && !/%$/.test(h)) {\n contextVideo._element.style.height = h;\n } else {\n contextVideo._element.style.height = '';\n }\n\n if (!notResetPercentage) contextVideo._element.removeAttribute('data-percentage');\n\n // save current size\n this.plugins.resizing._module_saveCurrentSize.call(this, contextVideo);\n },\n\n /**\n * @Override resizing\n */\n setAutoSize: function () {\n this.plugins.video.setPercentSize.call(this, 100, this.context.video._defaultRatio);\n },\n\n /**\n * @Override resizing\n */\n setOriginSize: function (dataSize) {\n const contextVideo = this.context.video;\n contextVideo._element.removeAttribute('data-percentage');\n\n this.plugins.resizing.resetTransform.call(this, contextVideo._element);\n this.plugins.video.cancelPercentAttr.call(this);\n\n const originSize = ((dataSize ? contextVideo._element.getAttribute('data-size') : '') || contextVideo._element.getAttribute('data-origin') || '').split(',');\n \n if (originSize) {\n const w = originSize[0];\n const h = originSize[1];\n\n if (contextVideo._onlyPercentage || (/%$/.test(w) && (/%$/.test(h) || !/\\d/.test(h)))) {\n this.plugins.video.setPercentSize.call(this, w, h);\n } else {\n this.plugins.video.setSize.call(this, w, h);\n }\n\n // save current size\n this.plugins.resizing._module_saveCurrentSize.call(this, contextVideo);\n }\n },\n\n /**\n * @Override resizing\n */\n setPercentSize: function (w, h) {\n const contextVideo = this.context.video;\n h = !!h && !/%$/.test(h) && !this.util.getNumber(h, 0) ? this.util.isNumber(h) ? h + '%' : h : this.util.isNumber(h) ? h + contextVideo.sizeUnit : (h || contextVideo._defaultRatio);\n\n contextVideo._container.style.width = this.util.isNumber(w) ? w + '%' : w;\n contextVideo._container.style.height = '';\n contextVideo._cover.style.width = '100%';\n contextVideo._cover.style.height = h;\n contextVideo._cover.style.paddingBottom = h;\n contextVideo._element.style.width = '100%';\n contextVideo._element.style.height = '100%';\n contextVideo._element.style.maxWidth = '';\n\n if (contextVideo._align === 'center') this.plugins.video.setAlign.call(this, null, null, null, null);\n contextVideo._element.setAttribute('data-percentage', w + ',' + h);\n\n // save current size\n this.plugins.resizing._module_saveCurrentSize.call(this, contextVideo);\n },\n\n /**\n * @Override resizing\n */\n cancelPercentAttr: function () {\n const contextVideo = this.context.video;\n \n contextVideo._cover.style.width = '';\n contextVideo._cover.style.height = '';\n contextVideo._cover.style.paddingBottom = '';\n contextVideo._container.style.width = '';\n contextVideo._container.style.height = '';\n\n this.util.removeClass(contextVideo._container, this.context.video._floatClassRegExp);\n this.util.addClass(contextVideo._container, '__se__float-' + contextVideo._align);\n\n if (contextVideo._align === 'center') this.plugins.video.setAlign.call(this, null, null, null, null);\n },\n\n /**\n * @Override resizing\n */\n setAlign: function (align, element, cover, container) {\n const contextVideo = this.context.video;\n \n if (!align) align = contextVideo._align;\n if (!element) element = contextVideo._element;\n if (!cover) cover = contextVideo._cover;\n if (!container) container = contextVideo._container;\n\n if (/%$/.test(element.style.width) && align === 'center') {\n container.style.minWidth = '100%';\n cover.style.width = container.style.width;\n cover.style.height = cover.style.height;\n cover.style.paddingBottom = !/%$/.test(cover.style.height) ? cover.style.height : this.util.getNumber((this.util.getNumber(cover.style.height, 2) / 100) * this.util.getNumber(cover.style.width, 2), 2) + '%';\n } else {\n container.style.minWidth = '';\n cover.style.width = this.context.resizing._rotateVertical ? (element.style.height || element.offsetHeight) : (element.style.width || '100%');\n cover.style.paddingBottom = cover.style.height;\n }\n\n if (!this.util.hasClass(container, '__se__float-' + align)) {\n this.util.removeClass(container, contextVideo._floatClassRegExp);\n this.util.addClass(container, '__se__float-' + align);\n }\n \n element.setAttribute('data-align', align);\n },\n\n /**\n * @Override dialog\n */\n init: function () {\n const contextVideo = this.context.video;\n if (contextVideo.videoInputFile) contextVideo.videoInputFile.value = '';\n if (contextVideo.videoUrlFile) contextVideo._linkValue = contextVideo.preview.textContent = contextVideo.videoUrlFile.value = '';\n if (contextVideo.videoInputFile && contextVideo.videoUrlFile) {\n contextVideo.videoUrlFile.removeAttribute('disabled');\n contextVideo.preview.style.textDecoration = '';\n }\n\n contextVideo._origin_w = this.options.videoWidth;\n contextVideo._origin_h = this.options.videoHeight;\n contextVideo.modal.querySelector('input[name=\"suneditor_video_radio\"][value=\"none\"]').checked = true;\n \n if (contextVideo._resizing) {\n contextVideo.inputX.value = this.options.videoWidth === contextVideo._defaultSizeX ? '' : this.options.videoWidth;\n contextVideo.inputY.value = this.options.videoHeight === contextVideo._defaultSizeY ? '' : this.options.videoHeight;\n contextVideo.proportion.checked = true;\n contextVideo.proportion.disabled = true;\n this.plugins.video.setVideoRatioSelect.call(this, contextVideo._defaultRatio);\n }\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nimport dialog from '../modules/dialog';\nimport component from '../modules/component';\nimport fileManager from '../modules/fileManager';\n\nexport default {\n name: 'audio',\n display: 'dialog',\n add: function (core) {\n core.addModule([dialog, component, fileManager]);\n\n const context = core.context;\n const contextAudio = context.audio = {\n _infoList: [], // @Override fileManager\n _infoIndex: 0, // @Override fileManager\n _uploadFileLength: 0, // @Override fileManager\n focusElement: null, // @Override dialog // This element has focus when the dialog is opened.\n targetSelect: null,\n _origin_w: core.options.audioWidth,\n _origin_h: core.options.audioHeight,\n _linkValue: '',\n // @require @Override component\n _element: null,\n _cover: null,\n _container: null,\n };\n\n /** dialog */\n let audio_dialog = this.setDialog(core);\n contextAudio.modal = audio_dialog;\n contextAudio.audioInputFile = audio_dialog.querySelector('._se_audio_files');\n contextAudio.audioUrlFile = audio_dialog.querySelector('.se-input-url');\n contextAudio.focusElement = contextAudio.audioInputFile || contextAudio.audioUrlFile;\n contextAudio.preview = audio_dialog.querySelector('.se-link-preview');\n\n /** controller */\n let audio_controller = this.setController(core);\n contextAudio.controller = audio_controller;\n\n /** add event listeners */\n audio_dialog.querySelector('form').addEventListener('submit', this.submit.bind(core));\n if (contextAudio.audioInputFile) audio_dialog.querySelector('.se-dialog-files-edge-button').addEventListener('click', this._removeSelectedFiles.bind(contextAudio.audioInputFile, contextAudio.audioUrlFile, contextAudio.preview));\n if (contextAudio.audioInputFile && contextAudio.audioUrlFile) contextAudio.audioInputFile.addEventListener('change', this._fileInputChange.bind(contextAudio));\n audio_controller.addEventListener('click', this.onClick_controller.bind(core));\n if (contextAudio.audioUrlFile) contextAudio.audioUrlFile.addEventListener('input', this._onLinkPreview.bind(contextAudio.preview, contextAudio, core.options.linkProtocol));\n\n /** append html */\n context.dialog.modal.appendChild(audio_dialog);\n\n /** append controller */\n context.element.relative.appendChild(audio_controller);\n\n /** empty memory */\n audio_dialog = null, audio_controller = null;\n },\n\n /** HTML - dialog */\n setDialog: function (core) {\n const option = core.options;\n const lang = core.lang;\n const dialog = core.util.createElement('DIV');\n\n dialog.className = 'se-dialog-content';\n dialog.style.display = 'none';\n let html = '' +\n '
    ' +\n '
    ' +\n '' +\n '' + lang.dialogBox.audioBox.title + '' +\n '
    ' +\n '
    ';\n\n if (option.audioFileInput) {\n html += '' +\n '
    ' +\n '' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ';\n }\n \n if (option.audioUrlInput) {\n html += '' +\n '
    ' +\n '' +\n '' +\n '' +\n '
    ';\n }\n \n html += '' +\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ';\n\n dialog.innerHTML = html;\n\n return dialog;\n },\n\n /** HTML - controller */\n setController: function (core) {\n const lang = core.lang;\n const icons = core.icons;\n const link_btn = core.util.createElement('DIV');\n\n link_btn.className = 'se-controller se-controller-link';\n link_btn.innerHTML = '' +\n '
    ' +\n '';\n\n return link_btn;\n },\n\n // Disable url input when uploading files\n _fileInputChange: function () {\n if (!this.audioInputFile.value) {\n this.audioUrlFile.removeAttribute('disabled');\n this.preview.style.textDecoration = '';\n } else {\n this.audioUrlFile.setAttribute('disabled', true);\n this.preview.style.textDecoration = 'line-through';\n }\n },\n\n // Disable url input when uploading files\n _removeSelectedFiles: function (urlInput, preview) {\n this.value = '';\n if (urlInput) {\n urlInput.removeAttribute('disabled');\n preview.style.textDecoration = '';\n }\n },\n\n // create new audio tag\n _createAudioTag: function () {\n const oAudio = this.util.createElement('AUDIO');\n this.plugins.audio._setTagAttrs.call(this, oAudio);\n\n const w = this.context.audio._origin_w;\n const h = this.context.audio._origin_h;\n oAudio.setAttribute('origin-size', w + ',' + h);\n oAudio.style.cssText = (w ? ('width:' + w + '; ') : '') + (h ? ('height:' + h + ';') : '');\n\n return oAudio;\n },\n\n _setTagAttrs: function (element) {\n element.setAttribute('controls', true);\n\n const attrs = this.options.audioTagAttrs;\n if (!attrs) return;\n\n for (let key in attrs) {\n if (!this.util.hasOwn(attrs, key)) continue;\n element.setAttribute(key, attrs[key]);\n }\n },\n\n _onLinkPreview: function (context, protocol, e) {\n const value = e.target.value.trim();\n context._linkValue = this.textContent = !value ? '' : (protocol && value.indexOf('://') === -1 && value.indexOf('#') !== 0) ? protocol + value : value.indexOf('://') === -1 ? '/' + value : value;\n },\n\n /**\n * @Required @Override fileManager\n */\n fileTags: ['audio'],\n\n /**\n * @Override core, fileManager, resizing\n * @description It is called from core.selectComponent.\n * @param {Element} element Target element\n */\n select: function (element) {\n this.plugins.audio.onModifyMode.call(this, element);\n },\n\n /**\n * @Override fileManager, resizing \n */\n destroy: function (element) {\n element = element || this.context.audio._element;\n const container = this.util.getParentElement(element, this.util.isComponent) || element;\n const dataIndex = element.getAttribute('data-index') * 1;\n \n if (typeof this.functions.onAudioDeleteBefore === 'function' && (this.functions.onAudioDeleteBefore(element, container, dataIndex, this) === false)) return;\n \n const focusEl = (container.previousElementSibling || container.nextElementSibling);\n const emptyDiv = container.parentNode;\n this.util.removeItem(container);\n this.plugins.audio.init.call(this);\n this.controllersOff();\n\n if (emptyDiv !== this.context.element.wysiwyg) this.util.removeItemAllParents(emptyDiv, function (current) { return current.childNodes.length === 0; }, null);\n\n // focus\n this.focusEdge(focusEl);\n\n // fileManager event\n this.plugins.fileManager.deleteInfo.call(this, 'audio', dataIndex, this.functions.onAudioUpload);\n\n // history stack\n this.history.push(false);\n },\n\n /**\n * @Override fileManager\n */\n checkFileInfo: function () {\n this.plugins.fileManager.checkInfo.call(this, 'audio', ['audio'], this.functions.onAudioUpload, this.plugins.audio.updateCover.bind(this), false);\n },\n\n /**\n * @Override fileManager\n */\n resetFileInfo: function () {\n this.plugins.fileManager.resetInfo.call(this, 'audio', this.functions.onAudioUpload);\n },\n\n /**\n * @Required @Override dialog\n */\n on: function (update) {\n const contextAudio = this.context.audio;\n\n if (!update) {\n this.plugins.audio.init.call(this);\n if (contextAudio.audioInputFile && this.options.audioMultipleFile) contextAudio.audioInputFile.setAttribute('multiple', 'multiple');\n } else if (contextAudio._element) {\n this.context.dialog.updateModal = true;\n contextAudio._linkValue = contextAudio.preview.textContent = contextAudio.audioUrlFile.value = contextAudio._element.src;\n if (contextAudio.audioInputFile && this.options.audioMultipleFile) contextAudio.audioInputFile.removeAttribute('multiple');\n } else {\n if (contextAudio.audioInputFile && this.options.audioMultipleFile) contextAudio.audioInputFile.removeAttribute('multiple');\n }\n },\n\n /**\n * @Required @Override dialog\n */\n open: function () {\n this.plugins.dialog.open.call(this, 'audio', 'audio' === this.currentControllerName);\n },\n\n submit: function (e) {\n const contextAudio = this.context.audio;\n\n e.preventDefault();\n e.stopPropagation();\n\n try {\n if (contextAudio.audioInputFile && contextAudio.audioInputFile.files.length > 0) {\n this.showLoading();\n this.plugins.audio.submitAction.call(this, contextAudio.audioInputFile.files);\n } else if (contextAudio.audioUrlFile && contextAudio._linkValue.length > 0) {\n this.showLoading();\n this.plugins.audio.setupUrl.call(this, contextAudio._linkValue);\n }\n } catch (error) {\n this.closeLoading();\n throw Error('[SUNEDITOR.audio.submit.fail] cause : \"' + error.message + '\"');\n } finally {\n this.plugins.dialog.close.call(this);\n }\n\n return false;\n },\n\n submitAction: function (fileList) {\n if (fileList.length === 0) return;\n\n let fileSize = 0;\n let files = [];\n for (let i = 0, len = fileList.length; i < len; i++) {\n if (/audio/i.test(fileList[i].type)) {\n files.push(fileList[i]);\n fileSize += fileList[i].size;\n }\n }\n\n const limitSize = this.options.audioUploadSizeLimit;\n if (limitSize > 0) {\n let infoSize = 0;\n const audiosInfo = this.context.audio._infoList;\n for (let i = 0, len = audiosInfo.length; i < len; i++) {\n infoSize += audiosInfo[i].size * 1;\n }\n\n if ((fileSize + infoSize) > limitSize) {\n this.closeLoading();\n const err = '[SUNEDITOR.audioUpload.fail] Size of uploadable total audios: ' + (limitSize/1000) + 'KB';\n if (typeof this.functions.onAudioUploadError !== 'function' || this.functions.onAudioUploadError(err, { 'limitSize': limitSize, 'currentSize': infoSize, 'uploadSize': fileSize }, this)) {\n this.functions.noticeOpen(err);\n }\n return;\n }\n }\n\n const contextAudio = this.context.audio;\n contextAudio._uploadFileLength = files.length;\n\n const info = {\n isUpdate: this.context.dialog.updateModal,\n element: contextAudio._element\n };\n\n if (typeof this.functions.onAudioUploadBefore === 'function') {\n const result = this.functions.onAudioUploadBefore(files, info, this, function (data) {\n if (data && this._w.Array.isArray(data.result)) {\n this.plugins.audio.register.call(this, info, data);\n } else {\n this.plugins.audio.upload.call(this, info, data);\n }\n }.bind(this));\n\n if (typeof result === 'undefined') return;\n if (!result) {\n this.closeLoading();\n return;\n }\n if (typeof result === 'object' && result.length > 0) files = result;\n }\n\n this.plugins.audio.upload.call(this, info, files);\n },\n\n error: function (message, response) {\n this.closeLoading();\n if (typeof this.functions.onAudioUploadError !== 'function' || this.functions.onAudioUploadError(message, response, this)) {\n this.functions.noticeOpen(message);\n throw Error('[SUNEDITOR.plugin.audio.exception] response: ' + message);\n }\n },\n\n upload: function (info, files) {\n if (!files) {\n this.closeLoading();\n return;\n }\n if (typeof files === 'string') {\n this.plugins.audio.error.call(this, files, null);\n return;\n }\n\n const audioUploadUrl = this.options.audioUploadUrl;\n const filesLen = this.context.dialog.updateModal ? 1 : files.length;\n\n // create formData\n const formData = new FormData();\n for (let i = 0; i < filesLen; i++) {\n formData.append('file-' + i, files[i]);\n }\n\n // server upload\n this.plugins.fileManager.upload.call(this, audioUploadUrl, this.options.audioUploadHeader, formData, this.plugins.audio.callBack_upload.bind(this, info), this.functions.onAudioUploadError);\n },\n\n callBack_upload: function (info, xmlHttp) {\n if (typeof this.functions.audioUploadHandler === 'function') {\n this.functions.audioUploadHandler(xmlHttp, info, this);\n } else {\n const response = JSON.parse(xmlHttp.responseText);\n if (response.errorMessage) {\n this.plugins.audio.error.call(this, response.errorMessage, response);\n } else {\n this.plugins.audio.register.call(this, info, response);\n }\n }\n },\n\n register: function (info, response) {\n const fileList = response.result;\n\n for (let i = 0, len = fileList.length, file, oAudio; i < len; i++) {\n if (info.isUpdate) oAudio = info.element;\n else oAudio = this.plugins.audio._createAudioTag.call(this);\n\n file = { name: fileList[i].name, size: fileList[i].size };\n this.plugins.audio.create_audio.call(this, oAudio, fileList[i].url, file, info.isUpdate);\n }\n\n this.closeLoading();\n },\n\n setupUrl: function (src) {\n try {\n if (src.length === 0) return false;\n this.plugins.audio.create_audio.call(this, this.plugins.audio._createAudioTag.call(this), src, null, this.context.dialog.updateModal);\n } catch (error) {\n throw Error('[SUNEDITOR.audio.audio.fail] cause : \"' + error.message + '\"');\n } finally {\n this.closeLoading();\n }\n },\n\n create_audio: function (element, src, file, isUpdate) {\n const contextAudio = this.context.audio;\n \n // create new tag\n if (!isUpdate) {\n element.src = src;\n const cover = this.plugins.component.set_cover.call(this, element);\n const container = this.plugins.component.set_container.call(this, cover, '');\n if (!this.insertComponent(container, false, true, !this.options.mediaAutoSelect)) {\n this.focus();\n return;\n }\n if (!this.options.mediaAutoSelect) {\n const line = this.appendFormatTag(container, null);\n if (line) this.setRange(line, 0, line, 0);\n }\n } // update\n else {\n if (contextAudio._element) element = contextAudio._element;\n if (element && element.src !== src) {\n element.src = src;\n this.selectComponent(element, 'audio');\n } else {\n this.selectComponent(element, 'audio');\n return;\n }\n }\n\n this.plugins.fileManager.setInfo.call(this, 'audio', element, this.functions.onAudioUpload, file, false);\n if (isUpdate) this.history.push(false);\n },\n\n updateCover: function (element) {\n const contextAudio = this.context.audio;\n this.plugins.audio._setTagAttrs.call(this, element);\n \n // find component element\n let existElement = (this.util.isRangeFormatElement(element.parentNode) || this.util.isWysiwygDiv(element.parentNode)) ? \n element : this.util.getFormatElement(element) || element;\n\n // clone element\n const prevElement = element;\n contextAudio._element = element = element.cloneNode(false);\n const cover = this.plugins.component.set_cover.call(this, element);\n const container = this.plugins.component.set_container.call(this, cover, 'se-audio-container');\n\n try {\n if (this.util.getParentElement(prevElement, this.util.isNotCheckingNode)) {\n prevElement.parentNode.replaceChild(container, prevElement);\n } else if (this.util.isListCell(existElement)) {\n const refer = this.util.getParentElement(prevElement, function (current) { return current.parentNode === existElement; });\n existElement.insertBefore(container, refer);\n this.util.removeItem(prevElement);\n this.util.removeEmptyNode(refer, null, true);\n } else if (this.util.isFormatElement(existElement)) {\n const refer = this.util.getParentElement(prevElement, function (current) { return current.parentNode === existElement; });\n existElement = this.util.splitElement(existElement, refer);\n existElement.parentNode.insertBefore(container, existElement);\n this.util.removeItem(prevElement);\n this.util.removeEmptyNode(existElement, null, true);\n if (existElement.children.length === 0) existElement.innerHTML = this.util.htmlRemoveWhiteSpace(existElement.innerHTML);\n } else {\n existElement.parentNode.replaceChild(container, existElement);\n }\n } catch (error) {\n console.warn('[SUNEDITOR.audio.error] Maybe the audio tag is nested.', error);\n }\n\n this.plugins.fileManager.setInfo.call(this, 'audio', element, this.functions.onAudioUpload, null, false);\n this.plugins.audio.init.call(this);\n },\n\n /**\n * @Required @Override fileManager, resizing\n */\n onModifyMode: function (selectionTag) {\n const contextAudio = this.context.audio;\n \n this.setControllerPosition(contextAudio.controller, selectionTag, 'bottom', {left: 0, top: 0});\n this.controllersOn(contextAudio.controller, selectionTag, this.plugins.audio.onControllerOff.bind(this, selectionTag), 'audio');\n\n this.util.addClass(selectionTag, 'active');\n contextAudio._element = selectionTag;\n contextAudio._cover = this.util.getParentElement(selectionTag, 'FIGURE');\n contextAudio._container = this.util.getParentElement(selectionTag, this.util.isComponent);\n },\n\n /**\n * @Required @Override fileManager, resizing\n */\n openModify: function (notOpen) {\n if (this.context.audio.audioUrlFile) {\n const contextAudio = this.context.audio;\n contextAudio._linkValue = contextAudio.preview.textContent = contextAudio.audioUrlFile.value = contextAudio._element.src;\n }\n if (!notOpen) this.plugins.dialog.open.call(this, 'audio', true);\n },\n\n onClick_controller: function (e) {\n e.stopPropagation();\n\n const command = e.target.getAttribute('data-command');\n if (!command) return;\n\n e.preventDefault();\n\n if (/update/.test(command)) {\n this.plugins.audio.openModify.call(this, false);\n }\n else { /** delete */\n this.plugins.audio.destroy.call(this, this.context.audio._element);\n }\n\n this.controllersOff();\n },\n\n onControllerOff: function (selectionTag) {\n this.util.removeClass(selectionTag, 'active');\n this.context.audio.controller.style.display = 'none';\n },\n\n /**\n * @Required @Override dialog\n */\n init: function () {\n if (this.context.dialog.updateModal) return;\n const contextAudio = this.context.audio;\n\n if (contextAudio.audioInputFile) contextAudio.audioInputFile.value = '';\n if (contextAudio.audioUrlFile) contextAudio._linkValue = contextAudio.preview.textContent = contextAudio.audioUrlFile.value = '';\n if (contextAudio.audioInputFile && contextAudio.audioUrlFile) {\n contextAudio.audioUrlFile.removeAttribute('disabled');\n contextAudio.preview.style.textDecoration = '';\n }\n\n contextAudio._element = null;\n }\n};","'use strict';\n\nimport dialog from '../modules/dialog';\n\nconst KATEX_WEBSITE = \"https://katex.org/docs/supported.html\";\n\nexport default {\n name: 'math',\n display: 'dialog',\n add: function (core) {\n core.addModule([dialog]);\n\n const context = core.context;\n context.math = {\n focusElement: null, // @Override dialog // This element has focus when the dialog is opened.\n previewElement: null,\n fontSizeElement: null,\n defaultFontSize: '',\n _mathExp: null\n };\n\n /** math dialog */\n let math_dialog = this.setDialog(core);\n context.math.modal = math_dialog;\n context.math.focusElement = math_dialog.querySelector('.se-math-exp');\n context.math.previewElement = math_dialog.querySelector('.se-math-preview');\n context.math.fontSizeElement = math_dialog.querySelector('.se-math-size');\n context.math.focusElement.addEventListener('paste', function (e) {\n if (typeof core.functions.onPasteMath === 'function') {\n core.functions.onPasteMath(e, core);\n }\n }, false);\n context.math.focusElement.addEventListener(core.util.isIE ? 'textinput' : 'input', this._renderMathExp.bind(core, context.math), false);\n context.math.fontSizeElement.addEventListener('change', function (e) { this.fontSize = e.target.value; }.bind(context.math.previewElement.style), false);\n\n /** math controller */\n let math_controller = this.setController_MathButton(core);\n context.math.mathController = math_controller;\n context.math._mathExp = null;\n\n /** add event listeners */\n math_dialog.querySelector('form').addEventListener('submit', this.submit.bind(core), false);\n math_controller.addEventListener('click', this.onClick_mathController.bind(core));\n context.math.previewElement.style.fontSize = context.math.defaultFontSize;\n\n /** append html */\n context.dialog.modal.appendChild(math_dialog);\n context.element.relative.appendChild(math_controller);\n\n /** empty memory */\n math_dialog = null, math_controller = null;\n },\n\n /** dialog */\n setDialog: function (core) {\n const lang = core.lang;\n const dialog = core.util.createElement('DIV');\n const fontSize = core.options.mathFontSize;\n let defaultFontSize = fontSize[0].value;\n\n dialog.className = 'se-dialog-content';\n dialog.style.display = 'none';\n let html = '' +\n '
    ' +\n '
    ' +\n '' +\n '' + lang.dialogBox.mathBox.title + '' +\n '
    ' +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ' +\n '' +\n '

    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ';\n\n core.context.math.defaultFontSize = defaultFontSize;\n dialog.innerHTML = html;\n return dialog;\n },\n\n /** modify controller button */\n setController_MathButton: function (core) {\n const lang = core.lang;\n const math_btn = core.util.createElement('DIV');\n\n math_btn.className = 'se-controller se-controller-link';\n math_btn.innerHTML = '' +\n '
    ' +\n '' +\n '';\n\n return math_btn;\n },\n\n /**\n * @Required @Override dialog\n */\n open: function () {\n this.plugins.dialog.open.call(this, 'math', 'math' === this.currentControllerName);\n },\n\n /**\n * @Override core - managedTagsInfo\n */\n managedTags: function () {\n return {\n className: 'katex',\n method: function (element) {\n if (!element.getAttribute('data-exp') || !this.options.katex) return;\n const dom = this._d.createRange().createContextualFragment(this.plugins.math._renderer.call(this, this.util.HTMLDecoder(element.getAttribute('data-exp'))));\n element.innerHTML = dom.querySelector('.katex').innerHTML;\n element.setAttribute('contenteditable', false);\n }\n };\n },\n\n _renderer: function (exp) {\n let result = '';\n try {\n this.util.removeClass(this.context.math.focusElement, 'se-error');\n result = this.options.katex.src.renderToString(exp, {throwOnError: true, displayMode: true});\n } catch(error) {\n this.util.addClass(this.context.math.focusElement, 'se-error');\n result = 'Katex syntax error. (Refer KaTeX)';\n console.warn('[SUNEDITOR.math.Katex.error] ', error);\n }\n return result;\n },\n\n _renderMathExp: function (contextMath, e) {\n contextMath.previewElement.innerHTML = this.plugins.math._renderer.call(this, e.target.value);\n },\n\n submit: function (e) {\n this.showLoading();\n\n e.preventDefault();\n e.stopPropagation();\n\n const submitAction = function () {\n if (this.context.math.focusElement.value.trim().length === 0) return false;\n\n const contextMath = this.context.math;\n const mathExp = contextMath.focusElement.value;\n const katexEl = contextMath.previewElement.querySelector('.katex');\n\n if (!katexEl) return false;\n katexEl.className = '__se__katex ' + katexEl.className;\n katexEl.setAttribute('contenteditable', false);\n katexEl.setAttribute('data-exp', this.util.HTMLEncoder(mathExp));\n katexEl.setAttribute('data-font-size', contextMath.fontSizeElement.value);\n katexEl.style.fontSize = contextMath.fontSizeElement.value;\n\n if (!this.context.dialog.updateModal) {\n const selectedFormats = this.getSelectedElements();\n\n if (selectedFormats.length > 1) {\n const oFormat = this.util.createElement(selectedFormats[0].nodeName);\n oFormat.appendChild(katexEl);\n if (!this.insertNode(oFormat, null, true)) return false;\n } else {\n if (!this.insertNode(katexEl, null, true)) return false;\n }\n\n const empty = this.util.createTextNode(this.util.zeroWidthSpace);\n katexEl.parentNode.insertBefore(empty, katexEl.nextSibling);\n this.setRange(katexEl, 0, katexEl, 1);\n } else {\n const containerEl = this.util.getParentElement(contextMath._mathExp, '.katex');\n containerEl.parentNode.replaceChild(katexEl, containerEl);\n this.setRange(katexEl, 0, katexEl, 1);\n }\n\n contextMath.focusElement.value = '';\n contextMath.fontSizeElement.value = '1em';\n contextMath.previewElement.style.fontSize = '1em';\n contextMath.previewElement.innerHTML = '';\n\n return true;\n }.bind(this);\n\n try {\n if (submitAction()) {\n this.plugins.dialog.close.call(this);\n // history stack\n this.history.push(false);\n }\n } catch (e) {\n this.plugins.dialog.close.call(this);\n } finally {\n this.closeLoading();\n }\n\n return false;\n },\n\n active: function (element) {\n if (!element) {\n if (this.controllerArray.indexOf(this.context.math.mathController) > -1) {\n this.controllersOff();\n }\n } else if (element.getAttribute('data-exp')) {\n if (this.controllerArray.indexOf(this.context.math.mathController) < 0) {\n this.setRange(element, 0, element, 1);\n this.plugins.math.call_controller.call(this, element);\n }\n return true;\n }\n\n return false;\n },\n\n on: function (update) {\n if (!update) {\n this.plugins.math.init.call(this);\n } else {\n const contextMath = this.context.math;\n if (contextMath._mathExp) {\n const exp = this.util.HTMLDecoder(contextMath._mathExp.getAttribute('data-exp'));\n const fontSize = contextMath._mathExp.getAttribute('data-font-size') || '1em';\n this.context.dialog.updateModal = true;\n contextMath.focusElement.value = exp;\n contextMath.fontSizeElement.value = fontSize;\n contextMath.previewElement.innerHTML = this.plugins.math._renderer.call(this, exp);\n contextMath.previewElement.style.fontSize = fontSize;\n }\n }\n },\n\n call_controller: function (mathTag) {\n this.context.math._mathExp = mathTag;\n const mathBtn = this.context.math.mathController;\n\n this.setControllerPosition(mathBtn, mathTag, 'bottom', {left: 0, top: 0});\n this.controllersOn(mathBtn, mathTag, 'math');\n },\n\n onClick_mathController: function (e) {\n e.stopPropagation();\n\n const command = e.target.getAttribute('data-command') || e.target.parentNode.getAttribute('data-command');\n if (!command) return;\n\n e.preventDefault();\n\n if (/update/.test(command)) {\n this.context.math.focusElement.value = this.util.HTMLDecoder(this.context.math._mathExp.getAttribute('data-exp'));\n this.plugins.dialog.open.call(this, 'math', true);\n } else {\n /** delete */\n this.util.removeItem(this.context.math._mathExp);\n this.context.math._mathExp = null;\n this.focus();\n\n // history stack\n this.history.push(false);\n }\n\n this.controllersOff();\n },\n\n init: function () {\n const contextMath = this.context.math;\n contextMath.mathController.style.display = 'none';\n contextMath._mathExp = null;\n contextMath.focusElement.value = '';\n contextMath.previewElement.innerHTML = '';\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nimport fileBrowser from '../modules/fileBrowser';\n\nexport default {\n name: 'imageGallery',\n /**\n * @description Constructor\n * @param {Object} core Core object \n */\n add: function (core) {\n core.addModule([fileBrowser]);\n\n const context = core.context;\n context.imageGallery = {\n title: core.lang.toolbar.imageGallery, // @Required @Override fileBrowser - File browser window title.\n directData: core.options.imageGalleryData, // @option @Override fileBrowser - Direct JSON data without making server requests.\n url: core.options.imageGalleryUrl, // @option @Override fileBrowser - File server url.\n header: core.options.imageGalleryHeader, // @Required @Override fileBrowser - File server http header.\n listClass: 'se-image-list', // @Required @Override fileBrowser - Class name of list div.\n itemTemplateHandler: this.drawItems, // @Required @Override fileBrowser - Function that defines the HTML of an file item.\n selectorHandler: this.setImage.bind(core), // @Required @Override fileBrowser - Function that action when item click.\n columnSize: 4 // @Option @Override fileBrowser - Number of \"div.se-file-item-column\" to be created (default: 4)\n };\n },\n \n /**\n * @Required @Override fileBrowser\n * @description Open a file browser.\n * @param {Function|null} selectorHandler When the function comes as an argument value, it substitutes \"context.selectorHandler\".\n */\n open: function (selectorHandler) {\n this.plugins.fileBrowser.open.call(this, 'imageGallery', selectorHandler);\n },\n\n /**\n * @Required @Override fileBrowser\n * @description Define the HTML of the item to be put in \"div.se-file-item-column\".\n * Format: [\n * { src: \"image src\", name: \"name(@option)\", alt: \"image alt(@option)\", tag: \"tag name(@option)\" }\n * ]\n * @param {Object} item Item of the response data's array\n */\n drawItems: function (item) {\n const srcName = item.src.split('/').pop();\n return '
    \"'' +\n '
    ' +\n '
    ' + (item.name || srcName) + '
    ' +\n '
    ';\n },\n\n setImage: function (target, fileName) {\n this.callPlugin('image', function () {\n const file = {name: fileName, size: 0};\n this.plugins.image.create_image.call(this, target.getAttribute('data-value'), null, this.context.image._origin_w, this.context.image._origin_h, 'none', file, target.alt);\n }.bind(this), null);\n }\n};","'use strict';\n\n// command\nimport blockquote from './command/blockquote';\n\n// submenu\nimport align from './submenu/align';\nimport font from './submenu/font';\nimport fontSize from './submenu/fontSize';\nimport fontColor from './submenu/fontColor';\nimport hiliteColor from './submenu/hiliteColor';\nimport horizontalRule from './submenu/horizontalRule';\nimport list from './submenu/list';\nimport table from './submenu/table';\nimport formatBlock from './submenu/formatBlock';\nimport lineHeight from './submenu/lineHeight';\nimport template from './submenu/template';\nimport paragraphStyle from './submenu/paragraphStyle';\nimport textStyle from './submenu/textStyle';\n\n// dialog\nimport link from './dialog/link';\nimport image from './dialog/image';\nimport video from './dialog/video';\nimport audio from './dialog/audio';\nimport math from './dialog/math';\n\n// file browser\nimport imageGallery from './fileBrowser/imageGallery';\n\nexport { blockquote, align, font, fontSize, fontColor, hiliteColor, horizontalRule, list, table, formatBlock, lineHeight, template, paragraphStyle, textStyle, link, image, video, audio, math, imageGallery };\nexport default { blockquote, align, font, fontSize, fontColor, hiliteColor, horizontalRule, list, table, formatBlock, lineHeight, template, paragraphStyle, textStyle, link, image, video, audio, math, imageGallery };\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'fa',\n toolbar: {\n default: 'پیش فرض',\n save: 'ذخیره',\n font: 'فونت',\n formats: 'قالب‌ها',\n fontSize: 'اندازه‌ی فونت',\n bold: 'پررنگ کردن',\n underline: 'زیرخطدار کردن',\n italic: 'کج کردن',\n strike: 'خط میان‌دار کردن',\n subscript: 'نوشتن به صورت زیر متن',\n superscript: 'نوشتن به صورت بالای متن',\n removeFormat: 'حذف قالب',\n fontColor: 'رنگ پیش زمینه',\n hiliteColor: 'رنگ پس‌زمینه',\n indent: 'جلو بردن',\n outdent: 'عقب بردن',\n align: 'چیدمان',\n alignLeft: 'چپ‌چین',\n alignRight: 'راست‌چین',\n alignCenter: 'وسط‌چین',\n alignJustify: 'همتراز از هر دو سمت',\n list: 'لیست',\n orderList: 'لیست شمارشی',\n unorderList: 'لیست گلوله‌ای',\n horizontalRule: 'درج خط افقی',\n hr_solid: 'تو پر',\n hr_dotted: 'نقطه‌چین',\n hr_dashed: 'خط تیره',\n table: 'درج جدول',\n link: 'درج لینک',\n math: 'درج فرمول ریاضی',\n image: 'درج تصویر',\n video: 'درج ویدئو',\n audio: 'درج صوت',\n fullScreen: 'تمام صفحه',\n showBlocks: 'نمایش بلاک‌بندی',\n codeView: 'مشاهده‌ی کُد HTML',\n undo: 'برگرداندن تغییر',\n redo: 'تکرار تغییر',\n preview: 'پیش نمایش',\n print: 'چاپ',\n tag_p: 'پاراگراف',\n tag_div: 'عادی (DIV)',\n tag_h: 'هدر',\n tag_blockquote: 'نقل قول',\n tag_pre: 'کُد',\n template: 'درج محتوا بر اساس الگو',\n lineHeight: 'ارتفاع خط',\n paragraphStyle: 'استایل پاراگراف',\n textStyle: 'استایل متن',\n imageGallery: 'گالری تصاویر',\n dir_ltr: 'چپ به راست',\n dir_rtl: 'راست به چپ',\n mention: 'ذکر کردن'\n },\n dialogBox: {\n linkBox: {\n title: 'درج لینک',\n url: 'آدرس لینک',\n text: 'عنوان لینک',\n newWindowCheck: 'در پنجره‌ی جدیدی باز شود',\n downloadLinkCheck: 'لینک دانلود',\n bookmark: 'نشان'\n },\n mathBox: {\n title: 'فرمول ریاضی',\n inputLabel: 'تعریف فرمول',\n fontSizeLabel: 'اندازه‌ی فونت',\n previewLabel: 'پیش نمایش'\n },\n imageBox: {\n title: 'درج تصویر',\n file: 'انتخاب فایل',\n url: 'آدرس Url',\n altText: 'متن جایگزین'\n },\n videoBox: {\n title: 'درج ویدئو',\n file: 'انتخاب فایل',\n url: 'آدرس Url ویدئو, YouTube/Vimeo'\n },\n audioBox: {\n title: 'درج صوت',\n file: 'انتخاب فایل',\n url: 'آدرس Url'\n },\n browser: {\n tags: 'تگ‌ها',\n search: 'جستجو',\n },\n caption: 'توضیح',\n close: 'بستن',\n submitButton: 'درج',\n revertButton: 'برگرداندن تغییرات',\n proportion: 'محدودیت اندازه',\n basic: 'چیدمان پیش فرض',\n left: 'چپ',\n right: 'راست',\n center: 'وسط',\n width: 'پهنا',\n height: 'ارتفاع',\n size: 'اندازه',\n ratio: 'نسبت'\n },\n controller: {\n edit: 'ویرایش',\n unlink: 'حذف لینک',\n remove: 'حذف',\n insertRowAbove: 'درج سطر در بالا',\n insertRowBelow: 'درج سطر در پایین',\n deleteRow: 'حذف سطر',\n insertColumnBefore: 'درج یک ستون به عقب',\n insertColumnAfter: 'درج یک ستون در جلو',\n deleteColumn: 'حذف ستون',\n fixedColumnWidth: 'اندازه ستون ثابت',\n resize100: 'اندازه‌ی 100%',\n resize75: 'اندازه‌ی 75%',\n resize50: 'اندازه‌ی 50%',\n resize25: 'اندازه‌ی 25%',\n autoSize: 'اندازه‌ی خودکار',\n mirrorHorizontal: 'بر عکس کردن در جهت افقی',\n mirrorVertical: 'بر عکس کردن در جهت عمودی',\n rotateLeft: 'دوران به چپ',\n rotateRight: 'دوران به راست',\n maxSize: 'حداکثر اندازه',\n minSize: 'حداقل اندازه',\n tableHeader: 'هدر جدول',\n mergeCells: 'ادغام خانه‌ها',\n splitCells: 'تقسیم خانه به چند خانه',\n HorizontalSplit: 'تقسیم در جهت افقی',\n VerticalSplit: 'تقسیم در جهت عمودی'\n },\n menu: {\n spaced: 'فضادار',\n bordered: 'لبه‌دار',\n neon: 'نئونی',\n translucent: 'نیمه شفاف',\n shadow: 'سایه',\n code: 'کُد'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'fa', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n\tif (typeof module === 'object' && typeof module.exports === 'object') {\n\t\tmodule.exports = global.document ?\n\t\t\tfactory(global, true) :\n\t\t\tfunction (w) {\n\t\t\t\tif (!w.document) {\n\t\t\t\t\tthrow new Error('SUNEDITOR_LANG a window with a document');\n\t\t\t\t}\n\t\t\t\treturn factory(w);\n\t\t\t};\n\t} else {\n\t\tfactory(global);\n\t}\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n\tconst lang = {\n\t\tcode: 'es',\n\t\ttoolbar: {\n\t\t\tdefault: 'Valor por defecto',\n\t\t\tsave: 'Guardar',\n\t\t\tfont: 'Fuente',\n\t\t\tformats: 'Formato',\n\t\t\tfontSize: 'Tamaño de fuente',\n\t\t\tbold: 'Negrita',\n\t\t\tunderline: 'Subrayado',\n\t\t\titalic: 'Cursiva',\n\t\t\tstrike: 'Tachado',\n\t\t\tsubscript: 'Subíndice',\n\t\t\tsuperscript: 'Superíndice',\n\t\t\tremoveFormat: 'Eliminar formato',\n\t\t\tfontColor: 'Color de fuente',\n\t\t\thiliteColor: 'Color de resaltado',\n\t\t\tindent: 'Más tabulación',\n\t\t\toutdent: 'Menos tabulación',\n\t\t\talign: 'Alinear',\n\t\t\talignLeft: 'Alinear a la izquierda',\n\t\t\talignRight: 'Alinear a la derecha',\n\t\t\talignCenter: 'Alinear al centro',\n\t\t\talignJustify: 'Justificar',\n\t\t\tlist: 'Lista',\n\t\t\torderList: 'Lista ordenada',\n\t\t\tunorderList: 'Lista desordenada',\n\t\t\thorizontalRule: 'Horizontal line',\n\t\t\thr_solid: 'Línea horizontal solida',\n\t\t\thr_dotted: 'Línea horizontal punteada',\n\t\t\thr_dashed: 'Línea horizontal discontinua',\n\t\t\ttable: 'Tabla',\n\t\t\tlink: 'Link',\n\t\t\tmath: 'Matemáticas',\n\t\t\timage: 'Imagen',\n\t\t\tvideo: 'Video',\n\t\t\taudio: 'Audio',\n\t\t\tfullScreen: 'Pantalla completa',\n\t\t\tshowBlocks: 'Ver bloques',\n\t\t\tcodeView: 'Ver código fuente',\n\t\t\tundo: 'UndoDeshacer última acción',\n\t\t\tredo: 'Rehacer última acción',\n\t\t\tpreview: 'Vista previa',\n\t\t\tprint: 'Imprimir',\n\t\t\ttag_p: 'Párrafo',\n\t\t\ttag_div: 'Normal (DIV)',\n\t\t\ttag_h: 'Header',\n\t\t\ttag_blockquote: 'Cita',\n\t\t\ttag_pre: 'Código',\n\t\t\ttemplate: 'Plantilla',\n\t\t\tlineHeight: 'Altura de la línea',\n\t\t\tparagraphStyle: 'Estilo del parrafo',\n\t\t\ttextStyle: 'Estilo del texto',\n\t\t\timageGallery: 'Galería de imágenes',\n\t\t\tdir_ltr: 'De izquierda a derecha',\n dir_rtl: 'De derecha a izquierda',\n\t\t\tmention: 'Mencionar'\n\t\t},\n\t\tdialogBox: {\n\t\t\tlinkBox: {\n\t\t\t\ttitle: 'Insertar Link',\n\t\t\t\turl: '¿Hacia que URL lleva el link?',\n\t\t\t\ttext: 'Texto para mostrar',\n\t\t\t\tnewWindowCheck: 'Abrir en una nueva ventana',\n\t\t\t\tdownloadLinkCheck: 'Enlace de descarga',\n bookmark: 'Marcador'\n\t\t\t},\n\t\t\tmathBox: {\n title: 'Matemáticas',\n inputLabel: 'Notación Matemática',\n fontSizeLabel: 'Tamaño de fuente',\n previewLabel: 'Vista previa'\n },\n\t\t\timageBox: {\n\t\t\t\ttitle: 'Insertar imagen',\n\t\t\t\tfile: 'Seleccionar desde los archivos',\n\t\t\t\turl: 'URL de la imagen',\n\t\t\t\taltText: 'Texto alternativo'\n\t\t\t},\n\t\t\tvideoBox: {\n\t\t\t\ttitle: 'Insertar Video',\n\t\t\t\tfile: 'Seleccionar desde los archivos',\n\t\t\t\turl: '¿URL del vídeo? Youtube/Vimeo'\n\t\t\t},\n\t\t\taudioBox: {\n title: 'Insertar Audio',\n file: 'Seleccionar desde los archivos',\n url: 'URL de la audio'\n },\n browser: {\n tags: 'Etiquetas',\n search: 'Buscar',\n },\n\t\t\tcaption: 'Insertar descripción',\n\t\t\tclose: 'Cerrar',\n\t\t\tsubmitButton: 'Enviar',\n\t\t\trevertButton: 'revertir',\n\t\t\tproportion: 'Restringir las proporciones',\n\t\t\tbasic: 'Basico',\n\t\t\tleft: 'Izquierda',\n\t\t\tright: 'derecha',\n\t\t\tcenter: 'Centro',\n\t\t\twidth: 'Ancho',\n\t\t\theight: 'Alto',\n\t\t\tsize: 'Tamaño',\n\t\t\tratio: 'Proporción'\n\t\t},\n\t\tcontroller: {\n\t\t\tedit: 'Editar',\n\t\t\tunlink: 'Desvincular',\n\t\t\tremove: 'RemoveQuitar',\n\t\t\tinsertRowAbove: 'Insertar fila arriba',\n\t\t\tinsertRowBelow: 'Insertar fila debajo',\n\t\t\tdeleteRow: 'Eliminar fila',\n\t\t\tinsertColumnBefore: 'Insertar columna antes',\n\t\t\tinsertColumnAfter: 'Insertar columna después',\n\t\t\tdeleteColumn: 'Eliminar columna',\n\t\t\tfixedColumnWidth: 'Ancho de columna fijo',\n\t\t\tresize100: 'Redimensionar 100%',\n\t\t\tresize75: 'Redimensionar 75%',\n\t\t\tresize50: 'Redimensionar 50%',\n\t\t\tresize25: 'Redimensionar 25%',\n\t\t\tautoSize: 'Tamaño automático',\n\t\t\tmirrorHorizontal: 'Espejo, Horizontal',\n\t\t\tmirrorVertical: 'Espejo, Vertical',\n\t\t\trotateLeft: 'Girar a la izquierda',\n\t\t\trotateRight: 'Girar a la derecha',\n\t\t\tmaxSize: 'Tamaño máximo',\n\t\t\tminSize: 'Tamaño minímo',\n\t\t\ttableHeader: 'Encabezado de tabla',\n\t\t\tmergeCells: 'Combinar celdas',\n\t\t\tsplitCells: 'Dividir celdas',\n\t\t\tHorizontalSplit: 'División horizontal',\n\t\t\tVerticalSplit: 'División vertical'\n\t\t},\n\t\tmenu: {\n\t\t\tspaced: 'Espaciado',\n\t\t\tbordered: 'Bordeado',\n\t\t\tneon: 'Neón',\n\t\t\ttranslucent: 'Translúcido',\n\t\t\tshadow: 'Sombreado',\n code: 'Código'\n\t\t}\n\t};\n\n\tif (typeof noGlobal === typeof undefined) {\n\t\tif (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'es', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n\t}\n\n\treturn lang;\n}));","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'nl',\n toolbar: {\n default: 'Standaard',\n save: 'Opslaan',\n font: 'Lettertype',\n formats: 'Formaten',\n fontSize: 'Lettergrootte',\n bold: 'Vetgedrukt',\n underline: 'Onderstrepen',\n italic: 'Cursief',\n strike: 'Doorstrepen',\n subscript: 'Subscript',\n superscript: 'Superscript',\n removeFormat: 'Opmaak verwijderen',\n fontColor: 'Tekstkleur',\n hiliteColor: 'Tekst markeren',\n indent: 'Inspringen',\n outdent: 'Inspringen ongedaan maken',\n align: 'Uitlijnen',\n alignLeft: 'Links uitlijnen',\n alignRight: 'Rechts uitlijnen',\n alignCenter: 'In het midden uitlijnen',\n alignJustify: 'Uitvullen',\n list: 'Lijst',\n orderList: 'Geordende lijst',\n unorderList: 'Ongeordende lijst',\n horizontalRule: 'Horizontale regel',\n hr_solid: 'Standaard',\n hr_dotted: 'Gestippeld',\n hr_dashed: 'Gestreept',\n table: 'Tabel',\n link: 'Link',\n math: 'Wiskunde',\n image: 'Afbeelding',\n video: 'Video',\n audio: 'Audio',\n fullScreen: 'Volledig scherm',\n showBlocks: 'Blokken tonen',\n codeView: 'Broncode weergeven',\n undo: 'Ongedaan maken',\n redo: 'Ongedaan maken herstellen',\n preview: 'Voorbeeldweergave',\n print: 'Printen',\n tag_p: 'Alinea',\n tag_div: 'Normaal (div)',\n tag_h: 'Kop',\n tag_blockquote: 'Citaat',\n tag_pre: 'Code',\n template: 'Sjabloon',\n lineHeight: 'Lijnhoogte',\n paragraphStyle: 'Alineastijl',\n textStyle: 'Tekststijl',\n imageGallery: 'Galerij',\n dir_ltr: 'Van links naar rechts',\n dir_rtl: 'Rechts naar links',\n mention: 'Vermelding'\n },\n dialogBox: {\n linkBox: {\n title: 'Link invoegen',\n url: 'URL',\n text: 'Tekst van de link',\n newWindowCheck: 'In een nieuw tabblad openen',\n downloadLinkCheck: 'Downloadlink',\n bookmark: 'Bladwijzer'\n },\n mathBox: {\n title: 'Wiskunde',\n inputLabel: 'Wiskundige notatie',\n fontSizeLabel: 'Lettergrootte',\n previewLabel: 'Voorbeeld'\n },\n imageBox: {\n title: 'Afbeelding invoegen',\n file: 'Selecteer een bestand van uw apparaat',\n url: 'URL',\n altText: 'Alt-tekst'\n },\n videoBox: {\n title: 'Video invoegen',\n file: 'Selecteer een bestand van uw apparaat',\n url: 'Embedded URL (YouTube/Vimeo)'\n },\n audioBox: {\n title: 'Audio invoegen',\n file: 'Selecteer een bestand van uw apparaat',\n url: 'URL'\n },\n browser: {\n tags: 'Tags',\n search: 'Zoeken',\n },\n caption: 'Omschrijving toevoegen',\n close: 'Sluiten',\n submitButton: 'Toepassen',\n revertButton: 'Standaardwaarden herstellen',\n proportion: 'Verhouding behouden',\n basic: 'Standaard',\n left: 'Links',\n right: 'Rechts',\n center: 'Midden',\n width: 'Breedte',\n height: 'Hoogte',\n size: 'Grootte',\n ratio: 'Verhouding'\n },\n controller: {\n edit: 'Bewerken',\n unlink: 'Ontkoppelen',\n remove: 'Verwijderen',\n insertRowAbove: 'Rij hierboven invoegen',\n insertRowBelow: 'Rij hieronder invoegen',\n deleteRow: 'Rij verwijderen',\n insertColumnBefore: 'Kolom links invoegen',\n insertColumnAfter: 'Kolom rechts invoegen',\n deleteColumn: 'Kolom verwijderen',\n fixedColumnWidth: 'Vaste kolombreedte',\n resize100: 'Formaat wijzigen: 100%',\n resize75: 'Formaat wijzigen: 75%',\n resize50: 'Formaat wijzigen: 50%',\n resize25: 'Formaat wijzigen: 25%',\n autoSize: 'Automatische grootte',\n mirrorHorizontal: 'Horizontaal spiegelen',\n mirrorVertical: 'Verticaal spiegelen',\n rotateLeft: 'Naar links draaien',\n rotateRight: 'Naar rechts draaien',\n maxSize: 'Maximale grootte',\n minSize: 'Minimale grootte',\n tableHeader: 'Tabelkoppen',\n mergeCells: 'Cellen samenvoegen',\n splitCells: 'Cellen splitsen',\n HorizontalSplit: 'Horizontaal splitsen',\n VerticalSplit: 'Verticaal splitsen'\n },\n menu: {\n spaced: 'Uit elkaar',\n bordered: 'Omlijnd',\n neon: 'Neon',\n translucent: 'Doorschijnend',\n shadow: 'Schaduw',\n code: 'Code'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'nl', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uploadBeforeEvents = exports.events = void 0;\nexports.events = [\n \"onMouseDown\",\n \"onScroll\",\n \"onInput\",\n \"onClick\",\n \"onKeyUp\",\n \"onKeyDown\",\n \"onFocus\",\n \"onImageUpload\",\n \"onAudioUpload\",\n \"onVideoUpload\",\n \"onImageUploadError\",\n \"onVideoUploadError\",\n \"onAudioUploadError\",\n \"onSave\",\n \"onSetToolbarButtons\",\n \"imageUploadHandler\",\n \"toggleCodeView\",\n \"toggleFullScreen\",\n \"showInline\",\n \"showController\",\n \"onCopy\",\n \"onCut\",\n \"onDrop\",\n \"onPaste\",\n];\nexports.uploadBeforeEvents = [\n \"onImageUploadBefore\",\n \"onVideoUploadBefore\",\n \"onAudioUploadBefore\",\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatting = exports.complex = exports.basic = void 0;\nexports.basic = [\n [\"font\", \"fontSize\"],\n [\"fontColor\"],\n [\"horizontalRule\"],\n [\"link\", \"image\"],\n];\nexports.complex = [\n [\"undo\", \"redo\"],\n [\"font\", \"fontSize\", \"formatBlock\"],\n [\"bold\", \"underline\", \"italic\", \"strike\", \"subscript\", \"superscript\"],\n [\"removeFormat\"],\n \"/\",\n [\"fontColor\", \"hiliteColor\"],\n [\"outdent\", \"indent\"],\n [\"align\", \"horizontalRule\", \"list\", \"table\"],\n [\"link\", \"image\", \"video\"],\n [\"fullScreen\", \"showBlocks\", \"codeView\"],\n [\"preview\", \"print\"],\n [\"save\", \"template\"],\n];\nexports.formatting = [\n [\"undo\", \"redo\"],\n [\"bold\", \"underline\", \"italic\", \"strike\", \"subscript\", \"superscript\"],\n [\"removeFormat\"],\n [\"outdent\", \"indent\"],\n [\"fullScreen\", \"showBlocks\", \"codeView\"],\n [\"preview\", \"print\"],\n];\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2020 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n // rtl icon\n rtl: {\n italic: '',\n indent: '',\n outdent: '',\n list_bullets: '',\n list_number: '',\n link: '',\n unlink: ''\n },\n // common, ltr icon\n redo: '',\n undo: '',\n bold: '',\n underline: '',\n italic: '',\n strike: '',\n subscript: '',\n superscript: '',\n erase: '',\n indent: '',\n outdent: '',\n expansion: '',\n reduction: '',\n code_view: '',\n preview: '',\n print: '',\n template: '',\n line_height: '',\n paragraph_style: '',\n text_style: '',\n save: '',\n blockquote: '',\n arrow_down: '',\n align_justify: '',\n align_left: '',\n align_right: '',\n align_center: '',\n font_color: '',\n highlight_color:'',\n list_bullets: '',\n list_number: '',\n table: '',\n horizontal_rule: '',\n show_blocks: '',\n cancel: '',\n image: '',\n video: '',\n link: '',\n math: '',\n unlink: '',\n table_header: '',\n merge_cell: '',\n split_cell: '',\n caption: '',\n edit: '',\n delete: '',\n modify: '',\n revert: '',\n auto_size: '',\n insert_row_below: '',\n insert_row_above: '',\n insert_column_left: '',\n insert_column_right: '',\n delete_row: '',\n delete_column: '',\n fixed_column_width: '',\n rotate_left: '',\n rotate_right: '',\n mirror_horizontal: '',\n mirror_vertical: '',\n checked: '',\n line_break: '',\n audio: '',\n image_gallery: '',\n bookmark: '',\n download: '',\n dir_ltr: '',\n dir_rtl: '',\n // Error\n alert_outline: '',\n // More icons\n more_text: '',\n more_paragraph: '',\n more_plus: '',\n more_horizontal: '',\n more_vertical: '',\n // Not currently used\n attachment: '',\n map: '',\n magic_stick: '',\n empty_file: ''\n};\n","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2017 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\n/**\r\n * @description utility function\r\n */\r\nconst util = {\r\n _d: null,\r\n _w: null,\r\n isIE: null,\r\n isIE_Edge: null,\r\n isOSX_IOS: null,\r\n isChromium: null,\r\n isMobile: null,\r\n isResizeObserverSupported: null,\r\n _propertiesInit: function () {\r\n if (this._d) return;\r\n this._d = document;\r\n this._w = window;\r\n this.isIE = navigator.userAgent.indexOf('Trident') > -1;\r\n this.isIE_Edge = (navigator.userAgent.indexOf('Trident') > -1) || (navigator.appVersion.indexOf('Edge') > -1);\r\n this.isOSX_IOS = /(Mac|iPhone|iPod|iPad)/.test(navigator.platform);\r\n this.isChromium = !!window.chrome;\r\n this.isResizeObserverSupported = (typeof ResizeObserver === 'function');\r\n this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || ((navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0) && 'ontouchstart' in window);\r\n },\r\n\r\n _allowedEmptyNodeList: '.se-component, pre, blockquote, hr, li, table, img, iframe, video, audio, canvas',\r\n\r\n /**\r\n * @description HTML Reserved Word Converter.\r\n * @param {String} contents \r\n * @returns {String} HTML string\r\n * @private\r\n */\r\n _HTMLConvertor: function (contents) {\r\n const ec = {'&': '&', '\\u00A0': ' ', '\\'': ''', '\"': '"', '<': '<', '>': '>'};\r\n return contents.replace(/&|\\u00A0|'|\"|<|>/g, function (m) {\r\n return (typeof ec[m] === 'string') ? ec[m] : m;\r\n });\r\n },\r\n\r\n /**\r\n * @description Unicode Character 'ZERO WIDTH SPACE' (\\u200B)\r\n */\r\n zeroWidthSpace: String.fromCharCode(8203),\r\n\r\n /**\r\n * @description Regular expression to find 'zero width space' (/\\u200B/g)\r\n */\r\n zeroWidthRegExp: new RegExp(String.fromCharCode(8203), 'g'),\r\n\r\n /**\r\n * @description Regular expression to find only 'zero width space' (/^\\u200B+$/)\r\n */\r\n onlyZeroWidthRegExp: new RegExp('^' + String.fromCharCode(8203) + '+$'),\r\n\r\n fontValueMap: {\r\n 'xx-small': 1,\r\n 'x-small': 2,\r\n 'small': 3,\r\n 'medium': 4,\r\n 'large': 5,\r\n 'x-large': 6,\r\n 'xx-large': 7\r\n },\r\n\r\n /**\r\n * @description A method that checks If the text is blank or to see if it contains 'ZERO WIDTH SPACE' or empty (util.zeroWidthSpace)\r\n * @param {String|Node} text String value or Node\r\n * @returns {Boolean}\r\n */\r\n onlyZeroWidthSpace: function (text) {\r\n if (text === null || text === undefined) return false;\r\n if (typeof text !== 'string') text = text.textContent;\r\n return text === '' || this.onlyZeroWidthRegExp.test(text);\r\n },\r\n\r\n /**\r\n * @description Gets XMLHttpRequest object\r\n * @returns {XMLHttpRequest|ActiveXObject}\r\n */\r\n getXMLHttpRequest: function () {\r\n /** IE */\r\n if (this._w.ActiveXObject) {\r\n try {\r\n return new ActiveXObject('Msxml2.XMLHTTP');\r\n } catch (e) {\r\n try {\r\n return new ActiveXObject('Microsoft.XMLHTTP');\r\n } catch (e1) {\r\n return null;\r\n }\r\n }\r\n }\r\n /** netscape */\r\n else if (this._w.XMLHttpRequest) {\r\n return new XMLHttpRequest();\r\n }\r\n /** fail */\r\n else {\r\n return null;\r\n }\r\n },\r\n\r\n /**\r\n * @description Object.values\r\n * @param {Object|null} obj Object parameter.\r\n * @returns {Array}\r\n */\r\n getValues: function (obj) {\r\n return !obj ? [] : this._w.Object.keys(obj).map(function (i) {\r\n return obj[i];\r\n });\r\n },\r\n\r\n /**\r\n * @description Convert the CamelCase To the KebabCase.\r\n * @param {String|Array} param [Camel string]\r\n * @returns {String|Array}\r\n */\r\n camelToKebabCase: function (param) {\r\n if (typeof param === 'string') {\r\n return param.replace(/[A-Z]/g, function (letter) { return \"-\" + letter.toLowerCase(); });\r\n } else {\r\n return param.map(function(str) { return util.camelToKebabCase(str); });\r\n }\r\n },\r\n\r\n /**\r\n * @description Convert the KebabCase To the CamelCase.\r\n * @param {String|Array} param [KebabCase string]\r\n * @returns {String|Array}\r\n */\r\n kebabToCamelCase: function (param) {\r\n if (typeof param === 'string') {\r\n return param.replace(/-[a-zA-Z]/g, function (letter) { return letter.replace('-', '').toUpperCase(); });\r\n } else {\r\n return param.map(function(str) { return util.camelToKebabCase(str); });\r\n }\r\n },\r\n\r\n /**\r\n * @description Create Element node\r\n * @param {String} elementName Element name\r\n * @returns {Element}\r\n */\r\n createElement: function (elementName) {\r\n return this._d.createElement(elementName);\r\n },\r\n\r\n /**\r\n * @description Create text node\r\n * @param {String} text text contents\r\n * @returns {Node}\r\n */\r\n createTextNode: function (text) {\r\n return this._d.createTextNode(text || '');\r\n },\r\n\r\n /**\r\n * @description The editor checks tags by string.\r\n * If there is \"<\" or \">\" in the attribute of tag, HTML is broken when checking the tag.\r\n * When using an attribute with \"<\" or \">\", use \"HTMLEncoder\" to save. (ex: math(katex))\r\n * @param {String} contents HTML or Text string\r\n * @returns {String}\r\n */\r\n HTMLEncoder: function (contents) {\r\n const ec = {'<': '$lt;', '>': '$gt;'};\r\n return contents.replace(/<|>/g, function (m) {\r\n return (typeof ec[m] === 'string') ? ec[m] : m;\r\n });\r\n },\r\n\r\n /**\r\n * @description The editor checks tags by string.\r\n * If there is \"<\" or \">\" in the attribute of tag, HTML is broken when checking the tag.\r\n * Decoder of data stored as \"HTMLEncoder\" (ex: math(katex))\r\n * @param {String} contents HTML or Text string\r\n * @returns {String}\r\n */\r\n HTMLDecoder: function (contents) {\r\n const ec = {'$lt;': '<', '$gt;': '>'};\r\n return contents.replace(/\\$lt;|\\$gt;/g, function (m) {\r\n return (typeof ec[m] === 'string') ? ec[m] : m;\r\n });\r\n },\r\n\r\n /**\r\n * @description This method run Object.prototype.hasOwnProperty.call(obj, key)\r\n * @param {Object} obj Object\r\n * @param {String} key obj.key\r\n * @returns {Boolean}\r\n */\r\n hasOwn: function (obj, key) {\r\n return this._hasOwn.call(obj, key);\r\n },\r\n _hasOwn: Object.prototype.hasOwnProperty,\r\n\r\n /**\r\n * @deprecated\r\n * @description Get the the tag path of the arguments value\r\n * If not found, return the first found value\r\n * @param {Array} nameArray File name array\r\n * @param {String} extension js, css\r\n * @returns {String}\r\n */\r\n getIncludePath: function (nameArray, extension) {\r\n let path = '';\r\n const pathList = [];\r\n const tagName = extension === 'js' ? 'script' : 'link';\r\n const src = extension === 'js' ? 'src' : 'href';\r\n\r\n let fileName = '(?:';\r\n for (let i = 0, len = nameArray.length; i < len; i++) {\r\n fileName += nameArray[i] + (i < len - 1 ? '|' : ')');\r\n }\r\n\r\n const regExp = new this._w.RegExp('(^|.*[\\\\/])' + fileName + '(\\\\.[^\\\\/]+)?\\.' + extension + '(?:\\\\?.*|;.*)?$', 'i');\r\n const extRegExp = new this._w.RegExp('.+\\\\.' + extension + '(?:\\\\?.*|;.*)?$', 'i');\r\n\r\n for (let c = this._d.getElementsByTagName(tagName), i = 0; i < c.length; i++) {\r\n if (extRegExp.test(c[i][src])) {\r\n pathList.push(c[i]);\r\n }\r\n }\r\n\r\n for (let i = 0; i < pathList.length; i++) {\r\n let editorTag = pathList[i][src].match(regExp);\r\n if (editorTag) {\r\n path = editorTag[0];\r\n break;\r\n }\r\n }\r\n\r\n if (path === '') path = pathList.length > 0 ? pathList[0][src] : '';\r\n\r\n -1 === path.indexOf(':/') && '//' !== path.slice(0, 2) && (path = 0 === path.indexOf('/') ? location.href.match(/^.*?:\\/\\/[^\\/]*/)[0] + path : location.href.match(/^[^\\?]*\\/(?:)/)[0] + path);\r\n\r\n if (!path) throw '[SUNEDITOR.util.getIncludePath.fail] The SUNEDITOR installation path could not be automatically detected. (name: +' + name + ', extension: ' + extension + ')';\r\n\r\n return path;\r\n },\r\n\r\n /**\r\n * @deprecated\r\n * @description Returns the CSS text that has been applied to the current page.\r\n * @param {Document|null} doc To get the CSS text of an document(core._wd). If null get the current document.\r\n * @returns {String} Styles string\r\n */\r\n getPageStyle: function (doc) {\r\n let cssText = '';\r\n const sheets = (doc || this._d).styleSheets;\r\n\r\n for (let i = 0, len = sheets.length, rules; i < len; i++) {\r\n try {\r\n rules = sheets[i].cssRules;\r\n } catch (e) {\r\n continue;\r\n }\r\n\r\n if (rules) {\r\n for (let c = 0, cLen = rules.length; c < cLen; c++) {\r\n cssText += rules[c].cssText;\r\n }\r\n }\r\n }\r\n\r\n return cssText;\r\n },\r\n\r\n /**\r\n * @description Get the argument iframe's document object\r\n * @param {Element} iframe Iframe element (context.element.wysiwygFrame)\r\n * @returns {Document}\r\n */\r\n getIframeDocument: function (iframe) {\r\n let wDocument = iframe.contentWindow || iframe.contentDocument;\r\n if (wDocument.document) wDocument = wDocument.document;\r\n return wDocument;\r\n },\r\n\r\n /**\r\n * @description Get attributes of argument element to string ('class=\"---\" name=\"---\" ')\r\n * @param {Element} element Element object\r\n * @param {Array|null} exceptAttrs Array of attribute names to exclude from the result\r\n * @returns {String}\r\n */\r\n getAttributesToString: function (element, exceptAttrs) {\r\n if (!element.attributes) return '';\r\n\r\n const attrs = element.attributes;\r\n let attrString = '';\r\n\r\n for (let i = 0, len = attrs.length; i < len; i++) {\r\n if (exceptAttrs && exceptAttrs.indexOf(attrs[i].name) > -1) continue;\r\n attrString += attrs[i].name + '=\"' + attrs[i].value + '\" ';\r\n }\r\n\r\n return attrString;\r\n },\r\n\r\n /**\r\n * @descriptionGets Get the length in bytes of a string.\r\n * referencing code: \"https://github.com/shaan1974/myrdin/blob/master/expressions/string.js#L11\"\r\n * @param {String} text String text\r\n * @returns {Number}\r\n */\r\n getByteLength: function(text) {\r\n if (!text || !text.toString) return 0;\r\n text = text.toString();\r\n\r\n const encoder = this._w.encodeURIComponent;\r\n let cr, cl;\r\n if (this.isIE_Edge) {\r\n cl = this._w.unescape(encoder(text)).length;\r\n cr = 0;\r\n\r\n if (encoder(text).match(/(%0A|%0D)/gi) !== null) {\r\n cr = encoder(text).match(/(%0A|%0D)/gi).length;\r\n }\r\n\r\n return cl + cr;\r\n } else {\r\n cl = (new this._w.TextEncoder('utf-8').encode(text)).length;\r\n cr = 0;\r\n\r\n if (encoder(text).match(/(%0A|%0D)/gi) !== null) {\r\n cr = encoder(text).match(/(%0A|%0D)/gi).length;\r\n }\r\n\r\n return cl + cr;\r\n }\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the edit region top div element or iframe's body tag.\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isWysiwygDiv: function (element) {\r\n return element && element.nodeType === 1 && (this.hasClass(element, 'se-wrapper-wysiwyg') || /^BODY$/i.test(element.nodeName));\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the contenteditable property is false.\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isNonEditable: function (element) {\r\n return element && element.nodeType === 1 && element.getAttribute('contenteditable') === 'false';\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is a node related to the text style.\r\n * (strong|span|font|b|var|i|em|u|ins|s|strike|del|sub|sup|mark|a|label|code)\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isTextStyleElement: function (element) {\r\n return element && element.nodeType !== 3 && /^(strong|span|font|b|var|i|em|u|ins|s|strike|del|sub|sup|mark|a|label|code|summary)$/i.test(element.nodeName);\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the input element (INPUT, TEXTAREA)\r\n * @param {Node} element The node to check\r\n * @returns \r\n */\r\n isInputElement: function (element) {\r\n return element && element.nodeType === 1 && /^(INPUT|TEXTAREA)$/i.test(element.nodeName);\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the format element (P, DIV, H[1-6], PRE, LI | class=\"__se__format__replace_xxx\")\r\n * Format element also contain \"free format Element\"\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isFormatElement: function (element) {\r\n return element && element.nodeType === 1 && (/^(P|DIV|H[1-6]|PRE|LI|TH|TD|DETAILS)$/i.test(element.nodeName) || this.hasClass(element, '(\\\\s|^)__se__format__replace_.+(\\\\s|$)|(\\\\s|^)__se__format__free_.+(\\\\s|$)')) && !this.isComponent(element) && !this.isWysiwygDiv(element);\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the range format element. (BLOCKQUOTE, OL, UL, FIGCAPTION, TABLE, THEAD, TBODY, TR, TH, TD | class=\"__se__format__range_xxx\")\r\n * Range format element is wrap the \"format element\" and \"component\"\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isRangeFormatElement: function (element) {\r\n return element && element.nodeType === 1 && (/^(BLOCKQUOTE|OL|UL|FIGCAPTION|TABLE|THEAD|TBODY|TR|TH|TD|DETAILS)$/i.test(element.nodeName) || this.hasClass(element, '(\\\\s|^)__se__format__range_.+(\\\\s|$)'));\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the closure range format element. (TH, TD | class=\"__se__format__range__closure_xxx\")\r\n * Closure range format elements is included in the range format element.\r\n * - Closure range format element is wrap the \"format element\" and \"component\"\r\n * ※ You cannot exit this format with the Enter key or Backspace key.\r\n * ※ Use it only in special cases. ([ex] format of table cells)\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isClosureRangeFormatElement: function (element) {\r\n return element && element.nodeType === 1 && (/^(TH|TD)$/i.test(element.nodeName) || this.hasClass(element, '(\\\\s|^)__se__format__range__closure_.+(\\\\s|$)'));\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the free format element. (PRE | class=\"__se__format__free_xxx\")\r\n * Free format elements is included in the format element.\r\n * Free format elements's line break is \"BR\" tag.\r\n * ※ Entering the Enter key in the space on the last line ends \"Free Format\" and appends \"Format\".\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isFreeFormatElement: function (element) {\r\n return element && element.nodeType === 1 && (/^PRE$/i.test(element.nodeName) || this.hasClass(element, '(\\\\s|^)__se__format__free_.+(\\\\s|$)')) && !this.isComponent(element) && !this.isWysiwygDiv(element);\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the closure free format element. (class=\"__se__format__free__closure_xxx\")\r\n * Closure free format elements is included in the free format element.\r\n * - Closure free format elements's line break is \"BR\" tag.\r\n * ※ You cannot exit this format with the Enter key or Backspace key.\r\n * ※ Use it only in special cases. ([ex] format of table cells)\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isClosureFreeFormatElement: function (element) {\r\n return element && element.nodeType === 1 && this.hasClass(element, '(\\\\s|^)__se__format__free__closure_.+(\\\\s|$)');\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the component[img, iframe, video, audio, table] cover(class=\"se-component\") and table, hr\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isComponent: function (element) {\r\n return element && (/se-component/.test(element.className) || /^(TABLE|HR)$/.test(element.nodeName));\r\n },\r\n\r\n /**\r\n * @description Checks for \"__se__uneditable\" in the class list.\r\n * Components with class \"__se__uneditable\" cannot be modified.\r\n * @param {Element} element The element to check\r\n * @returns {Boolean}\r\n */\r\n isUneditableComponent: function (element) {\r\n return element && this.hasClass(element, '__se__uneditable');\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the component [img, iframe] cover(class=\"se-component\")\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isMediaComponent: function (element) {\r\n return element && /se-component/.test(element.className);\r\n },\r\n\r\n /**\r\n * @description It is judged whether it is the not checking node. (class=\"katex\", \"__se__tag\")\r\n * @param {Node} element The node to check\r\n * @returns {Boolean}\r\n */\r\n isNotCheckingNode: function (element) {\r\n return element && /katex|__se__tag/.test(element.className);\r\n },\r\n\r\n /**\r\n * @description If a parent node that contains an argument node finds a format node (util.isFormatElement), it returns that node.\r\n * @param {Node} element Reference node.\r\n * @param {Function|null} validation Additional validation function.\r\n * @returns {Element|null}\r\n */\r\n getFormatElement: function (element, validation) {\r\n if (!element) return null;\r\n if (!validation) {\r\n validation = function () { return true; };\r\n }\r\n\r\n while (element) {\r\n if (this.isWysiwygDiv(element)) return null;\r\n if (this.isRangeFormatElement(element)) element.firstElementChild;\r\n if (this.isFormatElement(element) && validation(element)) return element;\r\n\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * @description If a parent node that contains an argument node finds a format node (util.isRangeFormatElement), it returns that node.\r\n * @param {Node} element Reference node.\r\n * @param {Function|null} validation Additional validation function.\r\n * @returns {Element|null}\r\n */\r\n getRangeFormatElement: function (element, validation) {\r\n if (!element) return null;\r\n if (!validation) {\r\n validation = function () { return true; };\r\n }\r\n\r\n while (element) {\r\n if (this.isWysiwygDiv(element)) return null;\r\n if (this.isRangeFormatElement(element) && !/^(THEAD|TBODY|TR)$/i.test(element.nodeName) && validation(element)) return element;\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * @description If a parent node that contains an argument node finds a free format node (util.isFreeFormatElement), it returns that node.\r\n * @param {Node} element Reference node.\r\n * @param {Function|null} validation Additional validation function.\r\n * @returns {Element|null}\r\n */\r\n getFreeFormatElement: function (element, validation) {\r\n if (!element) return null;\r\n if (!validation) {\r\n validation = function () { return true; };\r\n }\r\n\r\n while (element) {\r\n if (this.isWysiwygDiv(element)) return null;\r\n if (this.isFreeFormatElement(element) && validation(element)) return element;\r\n\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * @description If a parent node that contains an argument node finds a closure free format node (util.isClosureFreeFormatElement), it returns that node.\r\n * @param {Node} element Reference node.\r\n * @param {Function|null} validation Additional validation function.\r\n * @returns {Element|null}\r\n */\r\n getClosureFreeFormatElement: function (element, validation) {\r\n if (!element) return null;\r\n if (!validation) {\r\n validation = function () { return true; };\r\n }\r\n\r\n while (element) {\r\n if (this.isWysiwygDiv(element)) return null;\r\n if (this.isClosureFreeFormatElement(element) && validation(element)) return element;\r\n\r\n element = element.parentNode;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * @description Add style and className of copyEl to originEl\r\n * @param {Element} originEl Origin element\r\n * @param {Element} copyEl Element to copy\r\n * @param {Array|null} blacklist Blacklist array(LowerCase)\r\n */\r\n copyTagAttributes: function (originEl, copyEl, blacklist) {\r\n if (copyEl.style.cssText) {\r\n const copyStyles = copyEl.style;\r\n for (let i = 0, len = copyStyles.length; i < len; i++) {\r\n originEl.style[copyStyles[i]] = copyStyles[copyStyles[i]];\r\n }\r\n }\r\n\r\n const attrs = copyEl.attributes;\r\n for (let i = 0, len = attrs.length, name; i < len; i++) {\r\n name = attrs[i].name.toLowerCase();\r\n if ((blacklist && blacklist.indexOf(name) > -1) || !attrs[i].value) originEl.removeAttribute(name);\r\n else if (name !== 'style') originEl.setAttribute(attrs[i].name, attrs[i].value);\r\n }\r\n },\r\n\r\n /**\r\n * @description Copy and apply attributes of format tag that should be maintained. (style, class) Ignore \"__se__format__\" class\r\n * @param {Element} originEl Origin element\r\n * @param {Element} copyEl Element to copy\r\n */\r\n copyFormatAttributes: function (originEl, copyEl) {\r\n copyEl = copyEl.cloneNode(false);\r\n copyEl.className = copyEl.className.replace(/(\\s|^)__se__format__[^\\s]+/g, '');\r\n this.copyTagAttributes(originEl, copyEl);\r\n },\r\n\r\n /**\r\n * @description Get the item from the array that matches the condition.\r\n * @param {Array|HTMLCollection|NodeList} array Array to get item\r\n * @param {Function|null} validation Conditional function\r\n * @param {Boolean} multi If true, returns all items that meet the criteria otherwise, returns an empty array.\r\n * If false, returns only one item that meet the criteria otherwise return null.\r\n * @returns {Array|Node|null}\r\n */\r\n getArrayItem: function (array, validation, multi) {\r\n if (!array || array.length === 0) return null;\r\n\r\n validation = validation || function () { return true; };\r\n const arr = [];\r\n\r\n for (let i = 0, len = array.length, a; i < len; i++) {\r\n a = array[i];\r\n if (validation(a)) {\r\n if (!multi) return a;\r\n else arr.push(a);\r\n }\r\n }\r\n\r\n return !multi ? null : arr;\r\n },\r\n\r\n /**\r\n * @description Check if an array contains an element \r\n * @param {Array|HTMLCollection|NodeList} array element array\r\n * @param {Node} element The element to check for\r\n * @returns {Boolean}\r\n */\r\n arrayIncludes: function(array, element) {\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] === element) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * @description Get the index of the argument value in the element array\r\n * @param {Array|HTMLCollection|NodeList} array element array\r\n * @param {Node} element The element to find index\r\n * @returns {Number}\r\n */\r\n getArrayIndex: function (array, element) {\r\n let idx = -1;\r\n for (let i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === element) {\r\n idx = i;\r\n break;\r\n }\r\n }\r\n\r\n return idx;\r\n },\r\n\r\n /**\r\n * @description Get the next index of the argument value in the element array\r\n * @param {Array|HTMLCollection|NodeList} array element array\r\n * @param {Node} item The element to find index\r\n * @returns {Number}\r\n */\r\n nextIdx: function (array, item) {\r\n let idx = this.getArrayIndex(array, item);\r\n if (idx === -1) return -1;\r\n return idx + 1;\r\n },\r\n\r\n /**\r\n * @description Get the previous index of the argument value in the element array\r\n * @param {Array|HTMLCollection|NodeList} array Element array\r\n * @param {Node} item The element to find index\r\n * @returns {Number}\r\n */\r\n prevIdx: function (array, item) {\r\n let idx = this.getArrayIndex(array, item);\r\n if (idx === -1) return -1;\r\n return idx - 1;\r\n },\r\n\r\n /**\r\n * @description Returns the index compared to other sibling nodes.\r\n * @param {Node} node The Node to find index\r\n * @returns {Number}\r\n */\r\n getPositionIndex: function (node) {\r\n let idx = 0;\r\n while ((node = node.previousSibling)) {\r\n idx += 1;\r\n }\r\n return idx;\r\n },\r\n\r\n /**\r\n * @description Returns the position of the \"node\" in the \"parentNode\" in a numerical array.\r\n * ex)

    aabb

    : getNodePath(node: \"bb\", parentNode: \"

    \") -> [1, 0]\r\n * @param {Node} node The Node to find position path\r\n * @param {Node|null} parentNode Parent node. If null, wysiwyg div area\r\n * @param {Object|null} _newOffsets If you send an object of the form \"{s: 0, e: 0}\", the text nodes that are attached together are merged into one, centered on the \"node\" argument.\r\n * \"_newOffsets.s\" stores the length of the combined characters after \"node\" and \"_newOffsets.e\" stores the length of the combined characters before \"node\".\r\n * Do not use unless absolutely necessary.\r\n * @returns {Array}\r\n */\r\n getNodePath: function (node, parentNode, _newOffsets) {\r\n const path = [];\r\n let finds = true;\r\n\r\n this.getParentElement(node, function (el) {\r\n if (el === parentNode) finds = false;\r\n if (finds && !this.isWysiwygDiv(el)) {\r\n // merge text nodes\r\n if (_newOffsets && el.nodeType === 3) {\r\n let temp = null, tempText = null;\r\n _newOffsets.s = _newOffsets.e = 0;\r\n\r\n let previous = el.previousSibling;\r\n while (previous && previous.nodeType === 3) {\r\n tempText = previous.textContent.replace(this.zeroWidthRegExp, '');\r\n _newOffsets.s += tempText.length;\r\n el.textContent = tempText + el.textContent;\r\n temp = previous;\r\n previous = previous.previousSibling;\r\n this.removeItem(temp);\r\n }\r\n\r\n let next = el.nextSibling;\r\n while (next && next.nodeType === 3) {\r\n tempText = next.textContent.replace(this.zeroWidthRegExp, '');\r\n _newOffsets.e += tempText.length;\r\n el.textContent += tempText;\r\n temp = next;\r\n next = next.nextSibling;\r\n this.removeItem(temp);\r\n }\r\n }\r\n\r\n // index push\r\n path.push(el);\r\n }\r\n return false;\r\n }.bind(this));\r\n\r\n return path.map(this.getPositionIndex).reverse();\r\n },\r\n\r\n /**\r\n * @description Returns the node in the location of the path array obtained from \"util.getNodePath\".\r\n * @param {Array} offsets Position array, array obtained from \"util.getNodePath\"\r\n * @param {Node} parentNode Base parent element\r\n * @returns {Node}\r\n */\r\n getNodeFromPath: function (offsets, parentNode) {\r\n let current = parentNode;\r\n let nodes;\r\n\r\n for (let i = 0, len = offsets.length; i < len; i++) {\r\n nodes = current.childNodes;\r\n if (nodes.length === 0) break;\r\n if (nodes.length <= offsets[i]) {\r\n current = nodes[nodes.length - 1];\r\n } else {\r\n current = nodes[offsets[i]];\r\n }\r\n }\r\n\r\n return current;\r\n },\r\n\r\n /**\r\n * @description Compares the style and class for equal values.\r\n * Returns true if both are text nodes.\r\n * @param {Node} a Node to compare\r\n * @param {Node} b Node to compare\r\n * @returns {Boolean}\r\n */\r\n isSameAttributes: function (a, b) {\r\n if (a.nodeType === 3 && b.nodeType === 3) return true;\r\n if (a.nodeType === 3 || b.nodeType === 3) return false;\r\n\r\n const style_a = a.style;\r\n const style_b = b.style;\r\n let compStyle = 0;\r\n\r\n for (let i = 0, len = style_a.length; i < len; i++) {\r\n if (style_a[style_a[i]] === style_b[style_a[i]]) compStyle++;\r\n }\r\n\r\n const class_a = a.classList;\r\n const class_b = b.classList;\r\n const reg = this._w.RegExp;\r\n let compClass = 0;\r\n\r\n for (let i = 0, len = class_a.length; i < len; i++) {\r\n if (reg('(\\s|^)' + class_a[i] + '(\\s|$)').test(class_b.value)) compClass++;\r\n }\r\n\r\n return (compStyle === style_b.length && compStyle === style_a.length) && (compClass === class_b.length && compClass === class_a.length);\r\n },\r\n\r\n /**\r\n * @description Check the line element(util.isFormatElement) is empty.\r\n * @param {Element} element Format element node\r\n * @returns {Boolean}\r\n */\r\n isEmptyLine: function (element) {\r\n return !element || !element.parentNode || (!element.querySelector('IMG, IFRAME, AUDIO, VIDEO, CANVAS, TABLE') && element.children.length === 0 && this.onlyZeroWidthSpace(element.textContent));\r\n },\r\n\r\n /**\r\n * @description Check the span's attributes are empty.\r\n * @param {Element|null} element Element node\r\n * @returns {Boolean}\r\n */\r\n isSpanWithoutAttr: function (element) {\r\n return !!element && element.nodeType === 1 && /^SPAN$/i.test(element.nodeName) && !element.className && !element.style.cssText;\r\n },\r\n\r\n /**\r\n * @description Check the node is a list (ol, ul)\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isList: function (node) {\r\n return node && /^(OL|UL)$/i.test(typeof node === 'string' ? node : node.nodeName);\r\n },\r\n\r\n /**\r\n * @description Check the node is a list cell (li)\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isListCell: function (node) {\r\n return node && /^LI$/i.test(typeof node === 'string' ? node : node.nodeName);\r\n },\r\n\r\n /**\r\n * @description Check the node is a table (table, thead, tbody, tr, th, td)\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isTable: function (node) {\r\n return node && /^(TABLE|THEAD|TBODY|TR|TH|TD)$/i.test(typeof node === 'string' ? node : node.nodeName);\r\n },\r\n\r\n /**\r\n * @description Check the node is a table cell (td, th)\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isCell: function (node) {\r\n return node && /^(TD|TH)$/i.test(typeof node === 'string' ? node : node.nodeName);\r\n },\r\n\r\n /**\r\n * @description Check the node is a break node (BR)\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isBreak: function (node) {\r\n return node && /^BR$/i.test(typeof node === 'string' ? node : node.nodeName);\r\n },\r\n\r\n\r\n /**\r\n * @description Check the node is a anchor node (A)\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isAnchor: function (node) {\r\n return node && /^A$/i.test(typeof node === 'string' ? node : node.nodeName);\r\n },\r\n\r\n /**\r\n * @description Check the node is a media node (img, iframe, audio, video, canvas)\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isMedia: function (node) {\r\n return node && /^(IMG|IFRAME|AUDIO|VIDEO|CANVAS)$/i.test(typeof node === 'string' ? node : node.nodeName);\r\n },\r\n\r\n /**\r\n * @description Check the node is a figure tag or util.isMedia()\r\n * @param {Node|String} node The element or element name to check\r\n * @returns {Boolean}\r\n */\r\n isFigures: function (node) {\r\n return node && (this.isMedia(node) || /^(FIGURE)$/i.test(typeof node === 'string' ? node : node.nodeName));\r\n },\r\n\r\n /**\r\n * @description Checks for numeric (with decimal point).\r\n * @param {String|Number} text Text string or number\r\n * @returns {Boolean}\r\n */\r\n isNumber: function (text) {\r\n return !!text && /^-?\\d+(\\.\\d+)?$/.test(text + '');\r\n },\r\n\r\n /**\r\n * @description Get a number.\r\n * @param {String|Number} text Text string or number\r\n * @param {Number} maxDec Maximum number of decimal places (-1 : Infinity)\r\n * @returns {Number}\r\n */\r\n getNumber: function (text, maxDec) {\r\n if (!text) return 0;\r\n\r\n let number = (text + '').match(/-?\\d+(\\.\\d+)?/);\r\n if (!number || !number[0]) return 0;\r\n\r\n number = number[0];\r\n return maxDec < 0 ? number * 1 : maxDec === 0 ? this._w.Math.round(number * 1) : (number * 1).toFixed(maxDec) * 1;\r\n },\r\n\r\n /**\r\n * @description Get all \"children\" of the argument value element (Without text nodes)\r\n * @param {Element} element element to get child node\r\n * @param {Function|null} validation Conditional function\r\n * @returns {Array}\r\n */\r\n getListChildren: function (element, validation) {\r\n const children = [];\r\n if (!element || !element.children || element.children.length === 0) return children;\r\n\r\n validation = validation || function () { return true; };\r\n\r\n (function recursionFunc(current) {\r\n if (element !== current && validation(current)) {\r\n children.push(current);\r\n }\r\n\r\n if (!!current.children) {\r\n for (let i = 0, len = current.children.length; i < len; i++) {\r\n recursionFunc(current.children[i]);\r\n }\r\n }\r\n })(element);\r\n\r\n return children;\r\n },\r\n\r\n /**\r\n * @description Get all \"childNodes\" of the argument value element (Include text nodes)\r\n * @param {Node} element element to get child node\r\n * @param {Function|null} validation Conditional function\r\n * @returns {Array}\r\n */\r\n getListChildNodes: function (element, validation) {\r\n const children = [];\r\n if (!element || element.childNodes.length === 0) return children;\r\n\r\n validation = validation || function () { return true; };\r\n\r\n (function recursionFunc(current) {\r\n if (element !== current && validation(current)) {\r\n children.push(current);\r\n }\r\n\r\n for (let i = 0, len = current.childNodes.length; i < len; i++) {\r\n recursionFunc(current.childNodes[i]);\r\n }\r\n })(element);\r\n\r\n return children;\r\n },\r\n\r\n /**\r\n * @description Returns the number of parents nodes.\r\n * \"0\" when the parent node is the WYSIWYG area.\r\n * \"-1\" when the element argument is the WYSIWYG area.\r\n * @param {Node} element The element to check\r\n * @returns {Number}\r\n */\r\n getElementDepth: function (element) {\r\n if (!element || this.isWysiwygDiv(element)) return -1;\r\n\r\n let depth = 0;\r\n element = element.parentNode;\r\n\r\n while (element && !this.isWysiwygDiv(element)) {\r\n depth += 1;\r\n element = element.parentNode;\r\n }\r\n\r\n return depth;\r\n },\r\n\r\n /**\r\n * @description Compares two elements to find a common ancestor, and returns the order of the two elements.\r\n * @param {Node} a Node to compare.\r\n * @param {Node} b Node to compare.\r\n * @returns {Object} { ancesstor, a, b, result: (a > b ? 1 : a < b ? -1 : 0) };\r\n */\r\n compareElements: function (a, b) {\r\n let aNode = a, bNode = b;\r\n while (aNode && bNode && aNode.parentNode !== bNode.parentNode) {\r\n aNode = aNode.parentNode;\r\n bNode = bNode.parentNode;\r\n }\r\n\r\n if (!aNode || !bNode) return { ancestor: null, a: a, b: b, result: 0 };\r\n\r\n const children = aNode.parentNode.childNodes;\r\n const aIndex = this.getArrayIndex(children, aNode);\r\n const bIndex = this.getArrayIndex(children, bNode);\r\n\r\n return {\r\n ancestor: aNode.parentNode,\r\n a: aNode,\r\n b: bNode,\r\n result: aIndex > bIndex ? 1 : aIndex < bIndex ? -1 : 0\r\n };\r\n },\r\n\r\n /**\r\n * @description Get the parent element of the argument value.\r\n * A tag that satisfies the query condition is imported.\r\n * Returns null if not found.\r\n * @param {Node} element Reference element\r\n * @param {String|Function} query Query String (nodeName, .className, #ID, :name) or validation function.\r\n * Not use it like jquery.\r\n * Only one condition can be entered at a time.\r\n * @returns {Element|null}\r\n */\r\n getParentElement: function (element, query) {\r\n let check;\r\n\r\n if (typeof query === 'function') {\r\n check = query;\r\n } else {\r\n let attr;\r\n if (/^\\./.test(query)) {\r\n attr = 'className';\r\n query = query.split('.')[1];\r\n } else if (/^#/.test(query)) {\r\n attr = 'id';\r\n query = '^' + query.split('#')[1] + '$';\r\n } else if (/^:/.test(query)) {\r\n attr = 'name';\r\n query = '^' + query.split(':')[1] + '$';\r\n } else {\r\n attr = 'nodeName';\r\n query = '^' + query + '$';\r\n }\r\n\r\n const regExp = new this._w.RegExp(query, 'i');\r\n check = function (el) {\r\n return regExp.test(el[attr]);\r\n };\r\n }\r\n\r\n while (element && !check(element)) {\r\n if (this.isWysiwygDiv(element)) {\r\n return null;\r\n }\r\n element = element.parentNode;\r\n }\r\n\r\n return element;\r\n },\r\n\r\n /**\r\n * @description Gets the previous sibling last child. If there is no sibling, then it'll take it from the closest ancestor with child\r\n * Returns null if not found.\r\n * @param {Node} node Reference element\r\n * @param {Node|null} ceiling Highest boundary allowed\r\n * @returns {Node|null}\r\n */\r\n getPreviousDeepestNode: function (node, ceiling) {\r\n let previousNode = node.previousSibling;\r\n if (!previousNode) {\r\n for (let parentNode = node.parentNode; parentNode; parentNode = parentNode.parentNode) {\r\n if (parentNode === ceiling) return null;\r\n if (parentNode.previousSibling) {\r\n previousNode = parentNode.previousSibling;\r\n break;\r\n }\r\n }\r\n if (!previousNode) return null;\r\n }\r\n while (previousNode.lastChild) previousNode = previousNode.lastChild;\r\n\r\n return previousNode;\r\n },\r\n\r\n /**\r\n * @description Gets the next sibling first child. If there is no sibling, then it'll take it from the closest ancestor with child\r\n * Returns null if not found.\r\n * @param {Node} node Reference element\r\n * @param {Node|null} ceiling Highest boundary allowed\r\n * @returns {Node|null}\r\n */\r\n getNextDeepestNode: function (node, ceiling) {\r\n let nextNode = node.nextSibling;\r\n if (!nextNode) {\r\n for (let parentNode = node.parentNode; parentNode; parentNode = parentNode.parentNode) {\r\n if (parentNode === ceiling) return null;\r\n if (parentNode.nextSibling) {\r\n nextNode = parentNode.nextSibling;\r\n break;\r\n }\r\n }\r\n if (!nextNode) return null;\r\n }\r\n while (nextNode.firstChild) nextNode = nextNode.firstChild;\r\n\r\n return nextNode;\r\n },\r\n\r\n /**\r\n * @description Get the child element of the argument value.\r\n * A tag that satisfies the query condition is imported.\r\n * Returns null if not found.\r\n * @param {Node} element Reference element\r\n * @param {String|Function} query Query String (nodeName, .className, #ID, :name) or validation function.\r\n * @param {Boolean} last If true returns the last node among the found child nodes. (default: first node)\r\n * Not use it like jquery.\r\n * Only one condition can be entered at a time.\r\n * @returns {Element|null}\r\n */\r\n getChildElement: function (element, query, last) {\r\n let check;\r\n\r\n if (typeof query === 'function') {\r\n check = query;\r\n } else {\r\n let attr;\r\n if (/^\\./.test(query)) {\r\n attr = 'className';\r\n query = query.split('.')[1];\r\n } else if (/^#/.test(query)) {\r\n attr = 'id';\r\n query = '^' + query.split('#')[1] + '$';\r\n } else if (/^:/.test(query)) {\r\n attr = 'name';\r\n query = '^' + query.split(':')[1] + '$';\r\n } else {\r\n attr = 'nodeName';\r\n query = '^' + (query === 'text' ? '#' + query : query) + '$';\r\n }\r\n\r\n const regExp = new this._w.RegExp(query, 'i');\r\n check = function (el) {\r\n return regExp.test(el[attr]);\r\n };\r\n }\r\n\r\n const childList = this.getListChildNodes(element, function (current) {\r\n return check(current);\r\n });\r\n\r\n return childList[last ? childList.length - 1 : 0];\r\n },\r\n\r\n /**\r\n * @description 1. The first node of all the child nodes of the \"first\" element is returned.\r\n * 2. The last node of all the child nodes of the \"last\" element is returned.\r\n * 3. When there is no \"last\" element, the first and last nodes of all the children of the \"first\" element are returned.\r\n * { sc: \"first\", ec: \"last\" }\r\n * @param {Node} first First element\r\n * @param {Node|null} last Last element\r\n * @returns {Object}\r\n */\r\n getEdgeChildNodes: function (first, last) {\r\n if (!first) return;\r\n if (!last) last = first;\r\n\r\n while (first && first.nodeType === 1 && first.childNodes.length > 0 && !this.isBreak(first)) first = first.firstChild;\r\n while (last && last.nodeType === 1 && last.childNodes.length > 0 && !this.isBreak(last)) last = last.lastChild;\r\n\r\n return {\r\n sc: first,\r\n ec: last || first\r\n };\r\n },\r\n\r\n /**\r\n * @description Returns the position of the left and top of argument. {left:0, top:0}\r\n * @param {Node} element Target node\r\n * @param {Element|null} wysiwygFrame When use iframe option, iframe object should be sent (context.element.wysiwygFrame)\r\n * @returns {Object}\r\n */\r\n getOffset: function (element, wysiwygFrame) {\r\n let offsetLeft = 0;\r\n let offsetTop = 0;\r\n let offsetElement = element.nodeType === 3 ? element.parentElement : element;\r\n const wysiwyg = this.getParentElement(element, this.isWysiwygDiv.bind(this));\r\n\r\n while (offsetElement && !this.hasClass(offsetElement, 'se-container') && offsetElement !== wysiwyg) {\r\n offsetLeft += offsetElement.offsetLeft;\r\n offsetTop += offsetElement.offsetTop;\r\n offsetElement = offsetElement.offsetParent;\r\n }\r\n\r\n const iframe = wysiwygFrame && /iframe/i.test(wysiwygFrame.nodeName);\r\n\r\n return {\r\n left: offsetLeft + (iframe ? wysiwygFrame.parentElement.offsetLeft : 0),\r\n top: (offsetTop - (wysiwyg ? wysiwyg.scrollTop : 0)) + (iframe ? wysiwygFrame.parentElement.offsetTop : 0)\r\n };\r\n },\r\n\r\n /**\r\n * @description It compares the start and end indexes of \"a\" and \"b\" and returns the number of overlapping indexes in the range.\r\n * ex) 1, 5, 4, 6 => \"2\" (4 ~ 5)\r\n * @param {Number} aStart Start index of \"a\"\r\n * @param {Number} aEnd End index of \"a\"\r\n * @param {Number} bStart Start index of \"b\"\r\n * @param {Number} bEnd Start index of \"b\"\r\n * @returns {Number}\r\n */\r\n getOverlapRangeAtIndex: function (aStart, aEnd, bStart, bEnd) {\r\n if (aStart <= bEnd ? aEnd < bStart : aEnd > bStart) return 0;\r\n\r\n const overlap = (aStart > bStart ? aStart : bStart) - (aEnd < bEnd ? aEnd : bEnd);\r\n return (overlap < 0 ? overlap * -1 : overlap) + 1;\r\n },\r\n\r\n /**\r\n * @description Set the text content value of the argument value element\r\n * @param {Node} element Element to replace text content\r\n * @param {String} txt Text to be applied\r\n */\r\n changeTxt: function (element, txt) {\r\n if (!element || !txt) return;\r\n element.textContent = txt;\r\n },\r\n\r\n /**\r\n * @description Replace element\r\n * @param {Element} element Target element\r\n * @param {String|Element} newElement String or element of the new element to apply\r\n */\r\n changeElement: function (element, newElement) {\r\n if (typeof newElement === 'string') {\r\n if (element.outerHTML) {\r\n element.outerHTML = newElement;\r\n } else {\r\n const doc = this.createElement('DIV');\r\n doc.innerHTML = newElement;\r\n newElement = doc.firstChild;\r\n element.parentNode.replaceChild(newElement, element);\r\n }\r\n } else if (newElement.nodeType === 1) {\r\n element.parentNode.replaceChild(newElement, element);\r\n }\r\n },\r\n\r\n /**\r\n * @description Set style, if all styles are deleted, the style properties are deleted.\r\n * @param {Element} element Element to set style\r\n * @param {String} styleName Style attribute name (marginLeft, textAlign...)\r\n * @param {String|Number} value Style value\r\n */\r\n setStyle: function (element, styleName, value) {\r\n element.style[styleName] = value;\r\n\r\n if (!value && !element.style.cssText) {\r\n element.removeAttribute('style');\r\n }\r\n },\r\n\r\n /**\r\n * @description Determine whether any of the matched elements are assigned the given class\r\n * @param {Element} element Elements to search class name\r\n * @param {String} className Class name to search for\r\n * @returns {Boolean}\r\n */\r\n hasClass: function (element, className) {\r\n if (!element) return;\r\n\r\n return (new this._w.RegExp(className)).test(element.className);\r\n },\r\n\r\n /**\r\n * @description Append the className value of the argument value element\r\n * @param {Element} element Elements to add class name\r\n * @param {String} className Class name to be add\r\n */\r\n addClass: function (element, className) {\r\n if (!element) return;\r\n\r\n const check = new this._w.RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\r\n if (check.test(element.className)) return;\r\n\r\n element.className += (element.className.length > 0 ? ' ' : '') + className;\r\n },\r\n\r\n /**\r\n * @description Delete the className value of the argument value element\r\n * @param {Element} element Elements to remove class name\r\n * @param {String} className Class name to be remove\r\n */\r\n removeClass: function (element, className) {\r\n if (!element) return;\r\n\r\n const check = new this._w.RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\r\n element.className = element.className.replace(check, ' ').trim();\r\n\r\n if (!element.className.trim()) element.removeAttribute('class');\r\n },\r\n\r\n /**\r\n * @description Argument value If there is no class name, insert it and delete the class name if it exists\r\n * @param {Element} element Elements to replace class name\r\n * @param {String} className Class name to be change\r\n * @returns {Boolean|undefined}\r\n */\r\n toggleClass: function (element, className) {\r\n if (!element) return;\r\n let result = false;\r\n\r\n const check = new this._w.RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\r\n if (check.test(element.className)) {\r\n element.className = element.className.replace(check, ' ').trim();\r\n } else {\r\n element.className += ' ' + className;\r\n result = true;\r\n }\r\n\r\n if (!element.className.trim()) element.removeAttribute('class');\r\n\r\n return result;\r\n },\r\n\r\n /**\r\n * @description Checks if element can't be easily enabled\r\n * @param {Element} element Element to check for\r\n */\r\n isImportantDisabled: function (element) {\r\n return element.hasAttribute('data-important-disabled');\r\n },\r\n\r\n /**\r\n * @description In the predefined code view mode, the buttons except the executable button are changed to the 'disabled' state.\r\n * core.codeViewDisabledButtons (An array of buttons whose class name is not \"se-code-view-enabled\")\r\n * core.resizingDisabledButtons (An array of buttons whose class name is not \"se-resizing-enabled\")\r\n * @param {Boolean} disabled Disabled value\r\n * @param {Array|HTMLCollection|NodeList} buttonList Button array\r\n * @param {Boolean} important If priveleged mode should be used (Necessary to switch importantDisabled buttons)\r\n */\r\n setDisabledButtons: function (disabled, buttonList, important) {\r\n for (let i = 0, len = buttonList.length; i < len; i++) {\r\n let button = buttonList[i];\r\n if (important || !this.isImportantDisabled(button)) button.disabled = disabled;\r\n if (important) {\r\n if (disabled) {\r\n button.setAttribute('data-important-disabled', '');\r\n } else {\r\n button.removeAttribute('data-important-disabled');\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @description Delete argumenu value element\r\n * @param {Node} item Node to be remove\r\n */\r\n removeItem: function (item) {\r\n if (!item) return;\r\n\r\n if(typeof item.remove === 'function') item.remove();\r\n else if (item.parentNode) item.parentNode.removeChild(item);\r\n },\r\n\r\n /**\r\n * @description Delete all parent nodes that match the condition.\r\n * Returns an {sc: previousSibling, ec: nextSibling}(the deleted node reference) or null.\r\n * @param {Node} item Node to be remove\r\n * @param {Function|null} validation Validation function. default(Deleted if it only have breakLine and blanks)\r\n * @param {Element|null} stopParent Stop when the parent node reaches stopParent\r\n * @returns {Object|null} {sc: previousSibling, ec: nextSibling}\r\n */\r\n removeItemAllParents: function (item, validation, stopParent) {\r\n if (!item) return null;\r\n let cc = null;\r\n if (!validation) {\r\n validation = function (current) {\r\n if (current === stopParent || this.isComponent(current)) return false;\r\n const text = current.textContent.trim();\r\n return text.length === 0 || /^(\\n|\\u200B)+$/.test(text);\r\n }.bind(this);\r\n }\r\n\r\n (function recursionFunc (element) {\r\n if (!util.isWysiwygDiv(element)) {\r\n const parent = element.parentNode;\r\n if (parent && validation(element)) {\r\n cc = {\r\n sc: element.previousElementSibling,\r\n ec: element.nextElementSibling\r\n };\r\n util.removeItem(element);\r\n recursionFunc(parent);\r\n }\r\n }\r\n }(item));\r\n\r\n return cc;\r\n },\r\n\r\n /**\r\n * @description Detach Nested all nested lists under the \"baseNode\".\r\n * Returns a list with nested removed.\r\n * @param {Node} baseNode Element on which to base.\r\n * @param {Boolean} all If true, it also detach all nested lists of a returned list.\r\n * @returns {Element}\r\n */\r\n detachNestedList: function (baseNode, all) {\r\n const rNode = this._deleteNestedList(baseNode);\r\n let rangeElement, cNodes;\r\n\r\n if (rNode) {\r\n rangeElement = rNode.cloneNode(false);\r\n cNodes = rNode.childNodes;\r\n const index = this.getPositionIndex(baseNode);\r\n while (cNodes[index]) {\r\n rangeElement.appendChild(cNodes[index]);\r\n }\r\n } else {\r\n rangeElement = baseNode;\r\n }\r\n\r\n let rChildren;\r\n if (!all) {\r\n const depth = this.getElementDepth(baseNode) + 2;\r\n rChildren = this.getListChildren(baseNode, function (current) { return this.isListCell(current) && !current.previousElementSibling && this.getElementDepth(current) === depth; }.bind(this));\r\n } else {\r\n rChildren = this.getListChildren(rangeElement, function (current) { return this.isListCell(current) && !current.previousElementSibling; }.bind(this));\r\n }\r\n\r\n for (let i = 0, len = rChildren.length; i < len; i++) {\r\n this._deleteNestedList(rChildren[i]);\r\n }\r\n\r\n if (rNode) {\r\n rNode.parentNode.insertBefore(rangeElement, rNode.nextSibling);\r\n if (cNodes && cNodes.length === 0) this.removeItem(rNode);\r\n }\r\n\r\n return rangeElement === baseNode ? rangeElement.parentNode : rangeElement;\r\n },\r\n\r\n /**\r\n * @description Sub function of util.detachNestedList method.\r\n * @private\r\n */\r\n _deleteNestedList: function (baseNode) {\r\n const baseParent = baseNode.parentNode;\r\n let sibling = baseParent;\r\n let parent = sibling.parentNode;\r\n let liSibling, liParent, child, index, c;\r\n\r\n while (this.isListCell(parent)) {\r\n index = this.getPositionIndex(baseNode);\r\n liSibling = parent.nextElementSibling;\r\n liParent = parent.parentNode;\r\n child = sibling;\r\n while(child) {\r\n sibling = sibling.nextSibling;\r\n if (this.isList(child)) {\r\n c = child.childNodes;\r\n while (c[index]) {\r\n liParent.insertBefore(c[index], liSibling);\r\n }\r\n if (c.length === 0) this.removeItem(child);\r\n } else {\r\n liParent.appendChild(child);\r\n }\r\n child = sibling;\r\n }\r\n sibling = liParent;\r\n parent = liParent.parentNode;\r\n }\r\n\r\n if (baseParent.children.length === 0) this.removeItem(baseParent);\r\n\r\n return liParent;\r\n },\r\n\r\n /**\r\n * @description Split all tags based on \"baseNode\"\r\n * Returns the last element of the splited tag.\r\n * @param {Node} baseNode Element or text node on which to base\r\n * @param {Number|Node|null} offset Text offset of \"baseNode\" (Only valid when \"baseNode\" is a text node)\r\n * @param {Number} depth The nesting depth of the element being split. (default: 0)\r\n * @returns {Element}\r\n */\r\n splitElement: function (baseNode, offset, depth) {\r\n if (this.isWysiwygDiv(baseNode)) return baseNode;\r\n\r\n if (offset && !this.isNumber(offset)) {\r\n const children = baseNode.childNodes;\r\n let index = this.getPositionIndex(offset);\r\n const prev = baseNode.cloneNode(false);\r\n const next = baseNode.cloneNode(false);\r\n for (let i = 0, len = children.length; i < len; i++) {\r\n if (i < index) prev.appendChild(children[i]);\r\n else if (i > index) next.appendChild(children[i]);\r\n else continue;\r\n i--;\r\n len--;\r\n index--;\r\n }\r\n\r\n if (prev.childNodes.length > 0) baseNode.parentNode.insertBefore(prev, baseNode);\r\n if (next.childNodes.length > 0) baseNode.parentNode.insertBefore(next, baseNode.nextElementSibling);\r\n\r\n return baseNode;\r\n }\r\n\r\n const bp = baseNode.parentNode;\r\n let index = 0;\r\n let suffixIndex = 1;\r\n let next = true;\r\n let newEl, children, temp;\r\n if (!depth || depth < 0) depth = 0;\r\n\r\n if (baseNode.nodeType === 3) {\r\n index = this.getPositionIndex(baseNode);\r\n if (offset >= 0 && baseNode.length !== offset) {\r\n baseNode.splitText(offset);\r\n const after = this.getNodeFromPath([index + 1], bp);\r\n if (this.onlyZeroWidthSpace(after)) after.data = this.zeroWidthSpace;\r\n }\r\n } else if (baseNode.nodeType === 1) {\r\n if (offset === 0) {\r\n while (baseNode.firstChild) {\r\n baseNode = baseNode.firstChild;\r\n }\r\n if (baseNode.nodeType === 3) {\r\n const after = this.createTextNode(this.zeroWidthSpace);\r\n baseNode.parentNode.insertBefore(after, baseNode);\r\n baseNode = after;\r\n }\r\n }\r\n if (!baseNode.previousSibling) {\r\n if (this.getElementDepth(baseNode) === depth) next = false;\r\n } else {\r\n baseNode = baseNode.previousSibling;\r\n }\r\n }\r\n\r\n if (baseNode.nodeType === 1) suffixIndex = 0;\r\n let depthEl = baseNode;\r\n while (this.getElementDepth(depthEl) > depth) {\r\n index = this.getPositionIndex(depthEl) + suffixIndex;\r\n depthEl = depthEl.parentNode;\r\n\r\n temp = newEl;\r\n newEl = depthEl.cloneNode(false);\r\n children = depthEl.childNodes;\r\n\r\n if (temp) {\r\n if (this.isListCell(newEl) && this.isList(temp) && temp.firstElementChild) {\r\n newEl.innerHTML = temp.firstElementChild.innerHTML;\r\n util.removeItem(temp.firstElementChild);\r\n if (temp.children.length > 0) newEl.appendChild(temp);\r\n } else {\r\n newEl.appendChild(temp);\r\n }\r\n }\r\n\r\n while (children[index]) {\r\n newEl.appendChild(children[index]);\r\n }\r\n }\r\n\r\n if (depthEl.childNodes.length <= 1 && (!depthEl.firstChild || depthEl.firstChild.textContent.length === 0)) depthEl.innerHTML = '
    ';\r\n\r\n const pElement = depthEl.parentNode;\r\n if (next) depthEl = depthEl.nextSibling;\r\n if (!newEl) return depthEl;\r\n\r\n this.mergeSameTags(newEl, null, false);\r\n this.mergeNestedTags(newEl, function (current) { return this.isList(current); }.bind(this));\r\n\r\n if (newEl.childNodes.length > 0) pElement.insertBefore(newEl, depthEl);\r\n else newEl = depthEl;\r\n\r\n if (this.isListCell(newEl) && newEl.children && this.isList(newEl.children[0])) {\r\n newEl.insertBefore(this.createElement('BR'), newEl.children[0]);\r\n }\r\n\r\n if (bp.childNodes.length === 0) this.removeItem(bp);\r\n\r\n return newEl;\r\n },\r\n\r\n /**\r\n * @description Use with \"npdePath (util.getNodePath)\" to merge the same attributes and tags if they are present and modify the nodepath.\r\n * If \"offset\" has been changed, it will return as much \"offset\" as it has been modified.\r\n * An array containing change offsets is returned in the order of the \"nodePathArray\" array.\r\n * @param {Element} element Element\r\n * @param {Array|null} nodePathArray Array of NodePath object ([util.getNodePath(), ..])\r\n * @param {Boolean} onlyText If true, non-text nodes(!util._isIgnoreNodeChange) like 'span', 'strong'.. are ignored.\r\n * @returns {Array} [offset, ..]\r\n */\r\n mergeSameTags: function (element, nodePathArray, onlyText) {\r\n const inst = this;\r\n const nodePathLen = nodePathArray ? nodePathArray.length : 0;\r\n let offsets = null;\r\n\r\n if (nodePathLen) {\r\n offsets = this._w.Array.apply(null, new this._w.Array(nodePathLen)).map(this._w.Number.prototype.valueOf, 0);\r\n }\r\n\r\n (function recursionFunc(current, depth, depthIndex) {\r\n const children = current.childNodes;\r\n\r\n for (let i = 0, len = children.length, child, next; i < len; i++) {\r\n child = children[i];\r\n next = children[i + 1];\r\n if (!child) break;\r\n if (inst.isBreak(child) || inst.isMedia(child) || inst.isInputElement(child)) continue;\r\n if((onlyText && inst._isIgnoreNodeChange(child)) || (!onlyText && (inst.isTable(child) || inst.isListCell(child) || (inst.isFormatElement(child) && !inst.isFreeFormatElement(child))))) {\r\n if (inst.isTable(child) || inst.isListCell(child)) {\r\n recursionFunc(child, depth + 1, i);\r\n }\r\n continue;\r\n }\r\n if (len === 1 && current.nodeName === child.nodeName && current.parentNode) {\r\n // update nodePath\r\n if (nodePathLen) {\r\n let path, c, p, cDepth, spliceDepth;\r\n for (let n = 0; n < nodePathLen; n++) {\r\n path = nodePathArray[n];\r\n if (path && path[depth] === i) {\r\n c = child, p = current, cDepth = depth, spliceDepth = true;\r\n while (cDepth >= 0) {\r\n if (inst.getArrayIndex(p.childNodes, c) !== path[cDepth]) {\r\n spliceDepth = false;\r\n break;\r\n }\r\n c = child.parentNode;\r\n p = c.parentNode;\r\n cDepth--;\r\n }\r\n if (spliceDepth) {\r\n path.splice(depth, 1);\r\n path[depth] = i;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // merge tag\r\n inst.copyTagAttributes(child, current);\r\n current.parentNode.insertBefore(child, current);\r\n inst.removeItem(current);\r\n }\r\n\r\n if (!next) {\r\n if (child.nodeType === 1) recursionFunc(child, depth + 1, i);\r\n break;\r\n }\r\n\r\n if (child.nodeName === next.nodeName && inst.isSameAttributes(child, next) && child.href === next.href) {\r\n const childs = child.childNodes;\r\n let childLength = 0;\r\n for (let n = 0, nLen = childs.length; n < nLen; n++) {\r\n if (childs[n].textContent.length > 0) childLength++;\r\n }\r\n\r\n const l = child.lastChild;\r\n const r = next.firstChild;\r\n let addOffset = 0;\r\n if (l && r) {\r\n const textOffset = l.nodeType === 3 && r.nodeType === 3;\r\n addOffset = l.textContent.length;\r\n let tempL = l.previousSibling;\r\n while(tempL && tempL.nodeType === 3) {\r\n addOffset += tempL.textContent.length;\r\n tempL = tempL.previousSibling;\r\n }\r\n\r\n if (childLength > 0 && l.nodeType === 3 && r.nodeType === 3 && (l.textContent.length > 0 || r.textContent.length > 0)) childLength--;\r\n\r\n if (nodePathLen) {\r\n let path = null;\r\n for (let n = 0; n < nodePathLen; n++) {\r\n path = nodePathArray[n];\r\n if (path && path[depth] > i) {\r\n if (depth > 0 && path[depth - 1] !== depthIndex) continue;\r\n\r\n path[depth] -= 1;\r\n if (path[depth + 1] >= 0 && path[depth] === i) {\r\n path[depth + 1] += childLength;\r\n if (textOffset) {\r\n if (l && l.nodeType === 3 && r && r.nodeType === 3) {\r\n offsets[n] += addOffset;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (child.nodeType === 3) {\r\n addOffset = child.textContent.length;\r\n child.textContent += next.textContent;\r\n if (nodePathLen) {\r\n let path = null;\r\n for (let n = 0; n < nodePathLen; n++) {\r\n path = nodePathArray[n];\r\n if (path && path[depth] > i) {\r\n if (depth > 0 && path[depth - 1] !== depthIndex) continue;\r\n\r\n path[depth] -= 1;\r\n if (path[depth + 1] >= 0 && path[depth] === i) {\r\n path[depth + 1] += childLength;\r\n offsets[n] += addOffset;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n child.innerHTML += next.innerHTML;\r\n }\r\n\r\n inst.removeItem(next);\r\n i--;\r\n } else if (child.nodeType === 1) {\r\n recursionFunc(child, depth + 1, i);\r\n }\r\n }\r\n })(element, 0, 0);\r\n\r\n return offsets;\r\n },\r\n\r\n /**\r\n * @description Remove nested tags without other child nodes.\r\n * @param {Element} element Element object\r\n * @param {Function|String|null} validation Validation function / String(\"tag1|tag2..\") / If null, all tags are applicable.\r\n */\r\n mergeNestedTags: function (element, validation) {\r\n if (typeof validation === 'string') {\r\n validation = function (current) { return this.test(current.tagName); }.bind(new this._w.RegExp('^(' + (validation ? validation : '.+') + ')$', 'i'));\r\n } else if (typeof validation !== 'function') {\r\n validation = function () { return true; };\r\n }\r\n\r\n (function recursionFunc(current) {\r\n let children = current.children;\r\n if (children.length === 1 && children[0].nodeName === current.nodeName && validation(current)) {\r\n const temp = children[0];\r\n children = temp.children;\r\n while (children[0]) {\r\n current.appendChild(children[0]);\r\n }\r\n current.removeChild(temp);\r\n }\r\n\r\n for (let i = 0, len = current.children.length; i < len; i++) {\r\n recursionFunc(current.children[i]);\r\n }\r\n })(element);\r\n },\r\n\r\n /**\r\n * @description Delete a empty child node of argument element.\r\n * @param {Element} element Element node\r\n * @param {Node|null} notRemoveNode Do not remove node\r\n * @param {boolean} forceDelete When all child nodes are deleted, the parent node is also deleted.\r\n */\r\n removeEmptyNode: function (element, notRemoveNode, forceDelete) {\r\n const inst = this;\r\n\r\n if (notRemoveNode) {\r\n notRemoveNode = inst.getParentElement(notRemoveNode, function (current) {\r\n return element === current.parentElement;\r\n });\r\n }\r\n\r\n (function recursionFunc(current) {\r\n if (inst._notTextNode(current) || current === notRemoveNode || inst.isNonEditable(current)) return 0;\r\n if (current !== element && inst.onlyZeroWidthSpace(current.textContent) && (!current.firstChild || !inst.isBreak(current.firstChild)) && !current.querySelector(inst._allowedEmptyNodeList)) {\r\n if (current.parentNode) {\r\n current.parentNode.removeChild(current);\r\n return -1;\r\n }\r\n } else {\r\n const children = current.children;\r\n for (let i = 0, len = children.length, r = 0; i < len; i++) {\r\n if (!children[i + r] || inst.isComponent(children[i + r])) continue;\r\n r += recursionFunc(children[i + r]);\r\n }\r\n }\r\n\r\n return 0;\r\n })(element);\r\n\r\n if (element.childNodes.length === 0) {\r\n if (forceDelete) {\r\n this.removeItem(element);\r\n } else {\r\n element.innerHTML = '
    ';\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @description Remove whitespace between tags in HTML string.\r\n * @param {String} html HTML string\r\n * @returns {String}\r\n */\r\n htmlRemoveWhiteSpace: function (html) {\r\n if (!html) return '';\r\n return html.trim().replace(/<\\/?(?!strong|span|font|b|var|i|em|u|ins|s|strike|del|sub|sup|mark|a|label|code|summary)[^>^<]+>\\s+(?=<)/ig, function (m) { return m.replace(/\\n/g, '').replace(/\\s+/, ' '); });\r\n },\r\n\r\n /**\r\n * @description HTML code compression\r\n * @param {string} html HTML string\r\n * @returns {string} HTML string\r\n */\r\n htmlCompress: function (html) {\r\n return html.replace(/\\n/g, '').replace(/(>)(?:\\s+)(<)/g, '$1$2');\r\n },\r\n\r\n /**\r\n * @description Sort a element array by depth of element.\r\n * @param {Array} array Array object\r\n * @param {Boolean} des true: descending order / false: ascending order\r\n */\r\n sortByDepth: function (array, des) {\r\n const t = !des ? -1 : 1;\r\n const f = t * -1;\r\n\r\n array.sort(function (a, b) {\r\n if (!this.isListCell(a) || !this.isListCell(b)) return 0;\r\n a = this.getElementDepth(a);\r\n b = this.getElementDepth(b);\r\n return a > b ? t : a < b ? f : 0;\r\n }.bind(this));\r\n },\r\n \r\n /**\r\n * @description Escape a string for safe use in regular expressions.\r\n * @param {String} string String to escape\r\n * @returns {String}\r\n */\r\n escapeStringRegexp: function (string) {\r\n if (typeof string !== 'string') {\r\n throw new TypeError('Expected a string');\r\n }\r\n\r\n // Escape characters with special meaning either inside or outside character sets.\r\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\r\n return string\r\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\r\n .replace(/-/g, '\\\\x2d');\r\n },\r\n\r\n _isExcludeSelectionElement: function (element) {\r\n return !/FIGCAPTION/i.test(element.nodeName) && (this.isComponent(element) || /FIGURE/i.test(element.nodeName));\r\n },\r\n\r\n /**\r\n * @description Nodes that need to be added without modification when changing text nodes\r\n * @param {Node} element Element to check\r\n * @returns {Boolean}\r\n * @private\r\n */\r\n _isIgnoreNodeChange: function (element) {\r\n return element && element.nodeType !== 3 && (this.isNonEditable(element) || !this.isTextStyleElement(element));\r\n },\r\n\r\n /**\r\n * @description Nodes that must remain undetached when changing text nodes (A, Label, Code, Span:font-size)\r\n * @param {Node|String} element Element to check\r\n * @returns {Boolean}\r\n * @private\r\n */\r\n _isMaintainedNode: function (element) {\r\n return element && element.nodeType !== 3 && /^(a|label|code|summary)$/i.test(typeof element === 'string' ? element : element.nodeName);\r\n },\r\n\r\n /**\r\n * @description Node with font-size style\r\n * @param {Node} element Element to check\r\n * @returns {Boolean}\r\n * @private\r\n */\r\n _isSizeNode: function (element) {\r\n return element && element.nodeType !== 3 && this.isTextStyleElement(element) && !!element.style.fontSize;\r\n },\r\n\r\n /**\r\n * @description Nodes without text\r\n * @param {Node} element Element to check\r\n * @returns {Boolean}\r\n * @private\r\n */\r\n _notTextNode: function (element) {\r\n return element && element.nodeType !== 3 && (this.isComponent(element) || /^(br|input|select|canvas|img|iframe|audio|video)$/i.test(typeof element === 'string' ? element : element.nodeName));\r\n },\r\n\r\n /**\r\n * @deprecated\r\n * @description Check disallowed tags\r\n * @param {Node} element Element to check\r\n * @returns {Boolean}\r\n * @private\r\n */\r\n _disallowedTags: function (element) {\r\n return /^(meta|script|link|style|[a-z]+\\:[a-z]+)$/i.test(element.nodeName);\r\n },\r\n\r\n /**\r\n * @description Create whitelist RegExp object.\r\n * Return RegExp format: new RegExp(\"<\\\\/?\\\\b(?!\" + list + \")\\\\b[^>^<]*+>\", \"gi\")\r\n * @param {String} list Tags list (\"br|p|div|pre...\")\r\n * @returns {RegExp}\r\n */\r\n createTagsWhitelist: function (list) {\r\n return new RegExp('<\\\\/?\\\\b(?!\\\\b' + (list || '').replace(/\\|/g, '\\\\b|\\\\b') + '\\\\b)[^>]*>', 'gi');\r\n },\r\n\r\n /**\r\n * @description Create blacklist RegExp object.\r\n * Return RegExp format: new RegExp(\"<\\\\/?\\\\b(?:\" + list + \")\\\\b[^>^<]*+>\", \"gi\")\r\n * @param {String} list Tags list (\"br|p|div|pre...\")\r\n * @returns {RegExp}\r\n */\r\n createTagsBlacklist: function (list) {\r\n return new RegExp('<\\\\/?\\\\b(?:\\\\b' + (list || '^').replace(/\\|/g, '\\\\b|\\\\b') + '\\\\b)[^>]*>', 'gi');\r\n },\r\n\r\n /**\r\n * @description Fix tags that do not fit the editor format.\r\n * @param {Element} documentFragment Document fragment \"DOCUMENT_FRAGMENT_NODE\" (nodeType === 11)\r\n * @param {RegExp} htmlCheckWhitelistRegExp Editor tags whitelist (core._htmlCheckWhitelistRegExp)\r\n * @param {RegExp} htmlCheckBlacklistRegExp Editor tags blacklist (core._htmlCheckBlacklistRegExp)\r\n * @param {Function} classNameFilter Class name filter function\r\n * @param {Function} strictHTMLValidation Enforces strict HTML validation based on the editor`s policy\r\n * @private\r\n */\r\n _consistencyCheckOfHTML: function (documentFragment, htmlCheckWhitelistRegExp, htmlCheckBlacklistRegExp, classNameFilter, strictHTMLValidation) {\r\n /**\r\n * It is can use \".children(util.getListChildren)\" to exclude text nodes, but \"documentFragment.children\" is not supported in IE.\r\n * So check the node type and exclude the text no (current.nodeType !== 1)\r\n */\r\n const removeTags = [], emptyTags = [], wrongList = [], withoutFormatCells = [];\r\n\r\n // wrong position\r\n const wrongTags = this.getListChildNodes(documentFragment, function (current) {\r\n if (current.nodeType !== 1) {\r\n if (this.isList(current.parentElement)) removeTags.push(current);\r\n return false;\r\n }\r\n\r\n // white list\r\n if (htmlCheckBlacklistRegExp.test(current.nodeName) || (!htmlCheckWhitelistRegExp.test(current.nodeName) && current.childNodes.length === 0 && this.isNotCheckingNode(current))) {\r\n removeTags.push(current);\r\n return false;\r\n }\r\n\r\n // empty tags\r\n const nrtag = !this.getParentElement(current, this.isNotCheckingNode);\r\n if ((!this.isTable(current) && !this.isListCell(current) && !this.isAnchor(current)) && (this.isFormatElement(current) || this.isRangeFormatElement(current) || this.isTextStyleElement(current)) && current.childNodes.length === 0 && nrtag) {\r\n emptyTags.push(current);\r\n return false;\r\n }\r\n\r\n // wrong list\r\n if (this.isList(current.parentNode) && !this.isList(current) && !this.isListCell(current)) {\r\n wrongList.push(current);\r\n return false;\r\n }\r\n\r\n // table cells\r\n if (this.isCell(current)) {\r\n const fel = current.firstElementChild;\r\n if (!this.isFormatElement(fel) && !this.isRangeFormatElement(fel) && !this.isComponent(fel)) {\r\n withoutFormatCells.push(current);\r\n return false;\r\n }\r\n }\r\n\r\n // class filter\r\n if (nrtag && current.className) {\r\n const className = new this._w.Array(current.classList).map(classNameFilter).join(' ').trim();\r\n if (className) current.className = className;\r\n else current.removeAttribute('class');\r\n }\r\n\r\n const result = strictHTMLValidation && current.parentNode !== documentFragment && nrtag &&\r\n ((this.isListCell(current) && !this.isList(current.parentNode)) ||\r\n ((this.isFormatElement(current) || this.isComponent(current)) && !this.isRangeFormatElement(current.parentNode) && !this.getParentElement(current, this.isComponent)));\r\n\r\n return result;\r\n }.bind(this));\r\n\r\n for (let i = 0, len = removeTags.length; i < len; i++) {\r\n this.removeItem(removeTags[i]);\r\n }\r\n\r\n const checkTags = [];\r\n for (let i = 0, len = wrongTags.length, t, p; i < len; i++) {\r\n t = wrongTags[i];\r\n p = t.parentNode;\r\n if (!p || !p.parentNode) continue;\r\n\r\n if (this.getParentElement(t, this.isListCell)) {\r\n const cellChildren = t.childNodes;\r\n for (let j = cellChildren.length - 1; len >= 0; j--) {\r\n p.insertBefore(t, cellChildren[j]);\r\n }\r\n checkTags.push(t);\r\n } else {\r\n p.parentNode.insertBefore(t, p);\r\n checkTags.push(p);\r\n }\r\n }\r\n\r\n for (let i = 0, len = checkTags.length, t; i < len; i++) {\r\n t = checkTags[i];\r\n if (this.onlyZeroWidthSpace(t.textContent.trim())) {\r\n this.removeItem(t);\r\n }\r\n }\r\n\r\n for (let i = 0, len = emptyTags.length; i < len; i++) {\r\n this.removeItem(emptyTags[i]);\r\n }\r\n\r\n for (let i = 0, len = wrongList.length, t, tp, children, p; i < len; i++) {\r\n t = wrongList[i];\r\n p = t.parentNode;\r\n if (!p) continue;\r\n\r\n tp = this.createElement('LI');\r\n\r\n if (this.isFormatElement(t)) {\r\n children = t.childNodes;\r\n while (children[0]) {\r\n tp.appendChild(children[0]);\r\n }\r\n p.insertBefore(tp, t);\r\n this.removeItem(t);\r\n } else {\r\n t = t.nextSibling;\r\n tp.appendChild(wrongList[i]);\r\n p.insertBefore(tp, t);\r\n }\r\n }\r\n\r\n for (let i = 0, len = withoutFormatCells.length, t, f; i < len; i++) {\r\n t = withoutFormatCells[i];\r\n f = this.createElement('DIV');\r\n f.innerHTML = (t.textContent.trim().length === 0 && t.children.length === 0) ? '
    ' : t.innerHTML;\r\n t.innerHTML = f.outerHTML;\r\n }\r\n },\r\n\r\n _setDefaultOptionStyle: function (options, defaultStyle) {\r\n let optionStyle = '';\r\n if (options.height) optionStyle += 'height:' + options.height + ';';\r\n if (options.minHeight) optionStyle += 'min-height:' + options.minHeight + ';';\r\n if (options.maxHeight) optionStyle += 'max-height:' + options.maxHeight + ';';\r\n if (options.position) optionStyle += 'position:' + options.position + ';';\r\n if (options.width) optionStyle += 'width:' + options.width + ';';\r\n if (options.minWidth) optionStyle += 'min-width:' + options.minWidth + ';';\r\n if (options.maxWidth) optionStyle += 'max-width:' + options.maxWidth + ';';\r\n\r\n let top = '', frame = '', editor = '';\r\n defaultStyle = optionStyle + defaultStyle;\r\n const styleArr = defaultStyle.split(';');\r\n for (let i = 0, len = styleArr.length, s; i < len; i++) {\r\n s = styleArr[i].trim();\r\n if (!s) continue;\r\n if (/^(min-|max-)?width\\s*:/.test(s) || /^(z-index|position)\\s*:/.test(s)) {\r\n top += s + ';';\r\n continue;\r\n }\r\n if (/^(min-|max-)?height\\s*:/.test(s)) {\r\n if (/^height/.test(s) && s.split(':')[1].trim() === 'auto') {\r\n options.height = 'auto';\r\n }\r\n frame += s + ';';\r\n continue;\r\n }\r\n editor += s + ';';\r\n }\r\n\r\n return {\r\n top: top,\r\n frame: frame,\r\n editor: editor\r\n };\r\n },\r\n\r\n _setIframeDocument: function (frame, options) {\r\n frame.setAttribute('scrolling', 'auto');\r\n frame.contentDocument.head.innerHTML = '' +\r\n '' +\r\n '' +\r\n this._setIframeCssTags(options);\r\n frame.contentDocument.body.className = options._editableClass;\r\n frame.contentDocument.body.setAttribute('contenteditable', true);\r\n frame.contentDocument.body.setAttribute('autocorrect', \"off\");\r\n },\r\n\r\n _setIframeCssTags: function (options) {\r\n const linkNames = options.iframeCSSFileName;\r\n const wRegExp = this._w.RegExp;\r\n let tagString = '';\r\n\r\n for (let f = 0, len = linkNames.length, path; f < len; f++) {\r\n path = [];\r\n\r\n if (/(^https?:\\/\\/)|(^data:text\\/css,)/.test(linkNames[f])) {\r\n path.push(linkNames[f]);\r\n } else {\r\n const CSSFileName = new wRegExp('(^|.*[\\\\/])' + linkNames[f] + '(\\\\..+)?\\\\.css(?:\\\\?.*|;.*)?$', 'i');\r\n for (let c = document.getElementsByTagName('link'), i = 0, len = c.length, styleTag; i < len; i++) {\r\n styleTag = c[i].href.match(CSSFileName);\r\n if (styleTag) path.push(styleTag[0]);\r\n }\r\n }\r\n\r\n if (!path || path.length === 0) throw '[SUNEDITOR.constructor.iframe.fail] The suneditor CSS files installation path could not be automatically detected. Please set the option property \"iframeCSSFileName\" before creating editor instances.';\r\n\r\n for (let i = 0, len = path.length; i < len; i++) {\r\n tagString += '';\r\n }\r\n }\r\n\r\n return tagString + (options.height === 'auto' ? '' : '');\r\n }\r\n};\r\n\r\nexport default util;","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2017 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\nimport _icons from '../assets/defaultIcons';\r\nimport _defaultLang from '../lang/en';\r\nimport util from './util';\r\n\r\nexport default {\r\n /**\r\n * @description document create\r\n * @param {Element} element Textarea\r\n * @param {Object} options Options\r\n * @returns {Object}\r\n */\r\n init: function (element, options) {\r\n if (typeof options !== 'object') options = {};\r\n\r\n const doc = document;\r\n\r\n /** --- init options --- */\r\n this._initOptions(element, options);\r\n \r\n // suneditor div\r\n const top_div = doc.createElement('DIV');\r\n top_div.className = 'sun-editor' + (options.rtl ? ' se-rtl' : '');\r\n if (element.id) top_div.id = 'suneditor_' + element.id;\r\n \r\n // relative div\r\n const relative = doc.createElement('DIV');\r\n relative.className = 'se-container';\r\n \r\n // toolbar\r\n const tool_bar = this._createToolBar(doc, options.buttonList, options.plugins, options);\r\n const toolbarShadow = tool_bar.element.cloneNode(false);\r\n toolbarShadow.className += ' se-toolbar-shadow';\r\n tool_bar.element.style.visibility = 'hidden';\r\n if (tool_bar.pluginCallButtons.math) this._checkKatexMath(options.katex);\r\n const arrow = doc.createElement('DIV');\r\n arrow.className = 'se-arrow';\r\n\r\n // sticky toolbar dummy\r\n const sticky_dummy = doc.createElement('DIV');\r\n sticky_dummy.className = 'se-toolbar-sticky-dummy';\r\n \r\n // inner editor div\r\n const editor_div = doc.createElement('DIV');\r\n editor_div.className = 'se-wrapper';\r\n\r\n /** --- init elements and create bottom bar --- */\r\n const initElements = this._initElements(options, top_div, tool_bar.element, arrow);\r\n\r\n const bottomBar = initElements.bottomBar;\r\n const wysiwyg_div = initElements.wysiwygFrame;\r\n const placeholder_span = initElements.placeholder;\r\n let textarea = initElements.codeView;\r\n\r\n // resizing bar\r\n const resizing_bar = bottomBar.resizingBar;\r\n const navigation = bottomBar.navigation;\r\n const char_wrapper = bottomBar.charWrapper;\r\n const char_counter = bottomBar.charCounter;\r\n \r\n // loading box\r\n const loading_box = doc.createElement('DIV');\r\n loading_box.className = 'se-loading-box sun-editor-common';\r\n loading_box.innerHTML = '

    ';\r\n\r\n // enter line\r\n const line_breaker = doc.createElement('DIV');\r\n line_breaker.className = 'se-line-breaker';\r\n line_breaker.innerHTML = '';\r\n const line_breaker_t = doc.createElement('DIV');\r\n line_breaker_t.className += 'se-line-breaker-component';\r\n const line_breaker_b = line_breaker_t.cloneNode(true);\r\n line_breaker_t.innerHTML = line_breaker_b.innerHTML = options.icons.line_break;\r\n \r\n // resize operation background\r\n const resize_back = doc.createElement('DIV');\r\n resize_back.className = 'se-resizing-back';\r\n\r\n /// focus temp\r\n const focusTemp = doc.createElement('INPUT');\r\n focusTemp.tabIndex = -1;\r\n focusTemp.style.cssText = 'position: fixed !important; top: -10000px !important; display: block !important; width: 0 !important; height: 0 !important; margin: 0 !important; padding: 0 !important;';\r\n\r\n // toolbar container\r\n const toolbarContainer = options.toolbarContainer;\r\n if (toolbarContainer) {\r\n toolbarContainer.appendChild(tool_bar.element);\r\n toolbarContainer.appendChild(toolbarShadow);\r\n }\r\n\r\n // resizingbar\r\n const resizingBarContainer = options.resizingBarContainer;\r\n if (resizing_bar && resizingBarContainer) resizingBarContainer.appendChild(resizing_bar);\r\n \r\n /** append html */\r\n editor_div.appendChild(textarea);\r\n if (placeholder_span) editor_div.appendChild(placeholder_span);\r\n if (!toolbarContainer) {\r\n relative.appendChild(tool_bar.element);\r\n relative.appendChild(toolbarShadow);\r\n }\r\n relative.appendChild(sticky_dummy);\r\n relative.appendChild(editor_div);\r\n relative.appendChild(resize_back);\r\n relative.appendChild(loading_box);\r\n relative.appendChild(line_breaker);\r\n relative.appendChild(line_breaker_t);\r\n relative.appendChild(line_breaker_b);\r\n relative.appendChild(focusTemp);\r\n if (resizing_bar && !resizingBarContainer) relative.appendChild(resizing_bar);\r\n top_div.appendChild(relative);\r\n\r\n textarea = this._checkCodeMirror(options, textarea);\r\n \r\n return {\r\n constructed: {\r\n _top: top_div,\r\n _relative: relative,\r\n _toolBar: tool_bar.element,\r\n _toolbarShadow: toolbarShadow,\r\n _menuTray: tool_bar._menuTray,\r\n _editorArea: editor_div,\r\n _wysiwygArea: wysiwyg_div,\r\n _codeArea: textarea,\r\n _placeholder: placeholder_span,\r\n _resizingBar: resizing_bar,\r\n _navigation: navigation,\r\n _charWrapper: char_wrapper,\r\n _charCounter: char_counter,\r\n _loading: loading_box,\r\n _lineBreaker: line_breaker,\r\n _lineBreaker_t: line_breaker_t,\r\n _lineBreaker_b: line_breaker_b,\r\n _resizeBack: resize_back,\r\n _stickyDummy: sticky_dummy,\r\n _arrow: arrow,\r\n _focusTemp: focusTemp\r\n },\r\n options: options,\r\n plugins: tool_bar.plugins,\r\n pluginCallButtons: tool_bar.pluginCallButtons,\r\n _responsiveButtons: tool_bar.responsiveButtons\r\n };\r\n },\r\n\r\n /**\r\n * @description Check the CodeMirror option to apply the CodeMirror and return the CodeMirror element.\r\n * @param {Object} options options\r\n * @param {Element} textarea textarea element\r\n * @private\r\n */\r\n _checkCodeMirror: function (options, textarea) {\r\n if (options.codeMirror) {\r\n const cmOptions = [{\r\n mode: 'htmlmixed',\r\n htmlMode: true,\r\n lineNumbers: true,\r\n lineWrapping: true\r\n }, (options.codeMirror.options || {})].reduce(function (init, option) {\r\n for (let key in option) {\r\n if (util.hasOwn(option, key)) init[key] = option[key];\r\n }\r\n return init;\r\n }, {});\r\n\r\n if (options.height === 'auto') {\r\n cmOptions.viewportMargin = Infinity;\r\n cmOptions.height = 'auto';\r\n }\r\n \r\n const cm = options.codeMirror.src.fromTextArea(textarea, cmOptions);\r\n cm.display.wrapper.style.cssText = textarea.style.cssText;\r\n \r\n options.codeMirrorEditor = cm;\r\n textarea = cm.display.wrapper;\r\n textarea.className += ' se-wrapper-code-mirror';\r\n }\r\n\r\n return textarea;\r\n },\r\n\r\n /**\r\n * @description Check for a katex object.\r\n * @param {Object} katex katex object\r\n * @private\r\n */\r\n _checkKatexMath: function (katex) {\r\n if (!katex) throw Error('[SUNEDITOR.create.fail] To use the math button you need to add a \"katex\" object to the options.');\r\n\r\n const katexOptions = [{\r\n throwOnError: false,\r\n }, (katex.options || {})].reduce(function (init, option) {\r\n for (let key in option) {\r\n if (util.hasOwn(option, key)) init[key] = option[key];\r\n }\r\n return init;\r\n }, {});\r\n\r\n katex.options = katexOptions;\r\n },\r\n\r\n /**\r\n * @description Add or reset options\r\n * @param {Object} mergeOptions New options property\r\n * @param {Object} context Context object of core\r\n * @param {Object} originOptions Origin options\r\n * @returns {Object} pluginCallButtons\r\n * @private\r\n */\r\n _setOptions: function (mergeOptions, context, originOptions) {\r\n this._initOptions(context.element.originElement, mergeOptions);\r\n\r\n const el = context.element;\r\n const relative = el.relative;\r\n const editorArea = el.editorArea;\r\n const isNewToolbarContainer = mergeOptions.toolbarContainer && mergeOptions.toolbarContainer !== originOptions.toolbarContainer;\r\n const isNewToolbar = mergeOptions.lang !== originOptions.lang || mergeOptions.buttonList !== originOptions.buttonList || mergeOptions.mode !== originOptions.mode || isNewToolbarContainer;\r\n\r\n const tool_bar = this._createToolBar(document, (isNewToolbar ? mergeOptions.buttonList : originOptions.buttonList), mergeOptions.plugins, mergeOptions);\r\n if (tool_bar.pluginCallButtons.math) this._checkKatexMath(mergeOptions.katex);\r\n const arrow = document.createElement('DIV');\r\n arrow.className = 'se-arrow';\r\n\r\n if (isNewToolbar) {\r\n tool_bar.element.style.visibility = 'hidden';\r\n // toolbar container\r\n if (isNewToolbarContainer) {\r\n mergeOptions.toolbarContainer.appendChild(tool_bar.element);\r\n el.toolbar.parentElement.removeChild(el.toolbar);\r\n } else {\r\n el.toolbar.parentElement.replaceChild(tool_bar.element, el.toolbar);\r\n }\r\n\r\n el.toolbar = tool_bar.element;\r\n el._menuTray = tool_bar._menuTray;\r\n el._arrow = arrow;\r\n }\r\n \r\n const initElements = this._initElements(mergeOptions, el.topArea, (isNewToolbar ? tool_bar.element : el.toolbar), arrow);\r\n\r\n const bottomBar = initElements.bottomBar;\r\n const wysiwygFrame = initElements.wysiwygFrame;\r\n const placeholder_span = initElements.placeholder;\r\n let code = initElements.codeView;\r\n\r\n if (el.resizingBar) util.removeItem(el.resizingBar);\r\n if (bottomBar.resizingBar) {\r\n if (mergeOptions.resizingBarContainer && mergeOptions.resizingBarContainer !== originOptions.resizingBarContainer) {\r\n mergeOptions.resizingBarContainer.appendChild(bottomBar.resizingBar);\r\n } else {\r\n relative.appendChild(bottomBar.resizingBar);\r\n }\r\n }\r\n\r\n editorArea.innerHTML = '';\r\n editorArea.appendChild(code);\r\n if (placeholder_span) editorArea.appendChild(placeholder_span);\r\n\r\n code = this._checkCodeMirror(mergeOptions, code);\r\n \r\n el.resizingBar = bottomBar.resizingBar;\r\n el.navigation = bottomBar.navigation;\r\n el.charWrapper = bottomBar.charWrapper;\r\n el.charCounter = bottomBar.charCounter;\r\n el.wysiwygFrame = wysiwygFrame;\r\n el.code = code;\r\n el.placeholder = placeholder_span;\r\n\r\n if (mergeOptions.rtl) util.addClass(el.topArea, 'se-rtl');\r\n else util.removeClass(el.topArea, 'se-rtl');\r\n\r\n return {\r\n callButtons: tool_bar.pluginCallButtons,\r\n plugins: tool_bar.plugins,\r\n toolbar: tool_bar\r\n };\r\n },\r\n\r\n /**\r\n * @description Initialize property of suneditor elements\r\n * @param {Object} options Options\r\n * @param {Element} topDiv Suneditor top div\r\n * @param {Element} toolBar Tool bar\r\n * @param {Element} toolBarArrow Tool bar arrow (balloon editor)\r\n * @returns {Object} Bottom bar elements (resizingBar, navigation, charWrapper, charCounter)\r\n * @private\r\n */\r\n _initElements: function (options, topDiv, toolBar, toolBarArrow) {\r\n /** top div */\r\n topDiv.style.cssText = options._editorStyles.top;\r\n\r\n /** toolbar */\r\n if (/inline/i.test(options.mode)) {\r\n toolBar.className += ' se-toolbar-inline';\r\n toolBar.style.width = options.toolbarWidth;\r\n } else if (/balloon/i.test(options.mode)) {\r\n toolBar.className += ' se-toolbar-balloon';\r\n toolBar.style.width = options.toolbarWidth;\r\n toolBar.appendChild(toolBarArrow);\r\n }\r\n\r\n /** editor */\r\n // wysiwyg div or iframe\r\n const wysiwygDiv = document.createElement(!options.iframe ? 'DIV' : 'IFRAME');\r\n wysiwygDiv.className = 'se-wrapper-inner se-wrapper-wysiwyg';\r\n \r\n if (!options.iframe) {\r\n wysiwygDiv.setAttribute('contenteditable', true);\r\n wysiwygDiv.setAttribute('autocorrect', \"off\");\r\n wysiwygDiv.setAttribute('scrolling', 'auto');\r\n for (let key in options.iframeAttributes) {\r\n wysiwygDiv.setAttribute(key, options.iframeAttributes[key]);\r\n }\r\n wysiwygDiv.className += ' ' + options._editableClass;\r\n wysiwygDiv.style.cssText = options._editorStyles.frame + options._editorStyles.editor;\r\n wysiwygDiv.className += options.className;\r\n } else {\r\n wysiwygDiv.allowFullscreen = true;\r\n wysiwygDiv.frameBorder = 0;\r\n wysiwygDiv.style.cssText = options._editorStyles.frame;\r\n wysiwygDiv.className += options.className;\r\n }\r\n\r\n // textarea for code view\r\n const textarea = document.createElement('TEXTAREA');\r\n textarea.className = 'se-wrapper-inner se-wrapper-code' + options.className;\r\n textarea.style.cssText = options._editorStyles.frame;\r\n textarea.style.display = 'none';\r\n if (options.height === 'auto') textarea.style.overflow = 'hidden';\r\n\r\n /** resize bar */\r\n let resizingBar = null;\r\n let navigation = null;\r\n let charWrapper = null;\r\n let charCounter = null;\r\n if (options.resizingBar) {\r\n resizingBar = document.createElement('DIV');\r\n resizingBar.className = 'se-resizing-bar sun-editor-common';\r\n\r\n /** navigation */\r\n navigation = document.createElement('DIV');\r\n navigation.className = 'se-navigation sun-editor-common';\r\n resizingBar.appendChild(navigation);\r\n\r\n /** char counter */\r\n if (options.charCounter) {\r\n charWrapper = document.createElement('DIV');\r\n charWrapper.className = 'se-char-counter-wrapper';\r\n\r\n if (options.charCounterLabel) {\r\n const charLabel = document.createElement('SPAN');\r\n charLabel.className = 'se-char-label';\r\n charLabel.textContent = options.charCounterLabel;\r\n charWrapper.appendChild(charLabel);\r\n }\r\n \r\n charCounter = document.createElement('SPAN');\r\n charCounter.className = 'se-char-counter';\r\n charCounter.textContent = '0';\r\n charWrapper.appendChild(charCounter);\r\n \r\n if (options.maxCharCount > 0) {\r\n const char_max = document.createElement('SPAN');\r\n char_max.textContent = ' / ' + options.maxCharCount;\r\n charWrapper.appendChild(char_max);\r\n }\r\n\r\n resizingBar.appendChild(charWrapper);\r\n }\r\n }\r\n \r\n let placeholder = null;\r\n if (options.placeholder) {\r\n placeholder = document.createElement('SPAN');\r\n placeholder.className = 'se-placeholder';\r\n placeholder.innerText = options.placeholder;\r\n }\r\n\r\n return {\r\n bottomBar: {\r\n resizingBar: resizingBar,\r\n navigation: navigation,\r\n charWrapper: charWrapper,\r\n charCounter: charCounter\r\n },\r\n wysiwygFrame: wysiwygDiv,\r\n codeView: textarea,\r\n placeholder: placeholder\r\n };\r\n },\r\n\r\n /**\r\n * @description Initialize options\r\n * @param {Element} element Options object\r\n * @param {Object} options Options object\r\n * @private\r\n */\r\n _initOptions: function (element, options) {\r\n const plugins = {};\r\n if (options.plugins) {\r\n const _plugins = options.plugins;\r\n const pluginsValues = _plugins.length ? _plugins : Object.keys(_plugins).map(function(name) { return _plugins[name]; });\r\n for (let i = 0, len = pluginsValues.length, p; i < len; i++) {\r\n p = pluginsValues[i].default || pluginsValues[i];\r\n plugins[p.name] = p;\r\n }\r\n }\r\n options.plugins = plugins;\r\n /** Values */\r\n options.strictMode = options.strictMode !== false;\r\n options.strictHTMLValidation = options.strictHTMLValidation !== false;\r\n options.lang = options.lang || _defaultLang;\r\n options.value = typeof options.value === 'string' ? options.value : null;\r\n options.allowedClassNames = new util._w.RegExp((options.allowedClassNames && typeof options.allowedClassNames === 'string' ? options.allowedClassNames + '|' : '') + '^__se__|se-|katex');\r\n options.historyStackDelayTime = typeof options.historyStackDelayTime === 'number' ? options.historyStackDelayTime : 400;\r\n options.frameAttrbutes = options.frameAttrbutes || {};\r\n // tag style\r\n options.defaultTag = typeof options.defaultTag === 'string' && options.defaultTag.length > 0 ? options.defaultTag : 'p';\r\n const textTags = options.textTags = [{bold: 'STRONG', underline: 'U', italic: 'EM', strike: 'DEL', sub: 'SUB', sup: 'SUP'}, (options.textTags || {})].reduce(function (_default, _new) {\r\n for (let key in _new) {\r\n _default[key] = _new[key];\r\n }\r\n return _default;\r\n }, {});\r\n options._textTagsMap = {\r\n 'strong': textTags.bold.toLowerCase(),\r\n 'b': textTags.bold.toLowerCase(),\r\n 'u': textTags.underline.toLowerCase(),\r\n 'ins': textTags.underline.toLowerCase(),\r\n 'em': textTags.italic.toLowerCase(),\r\n 'i': textTags.italic.toLowerCase(),\r\n 'del': textTags.strike.toLowerCase(),\r\n 'strike': textTags.strike.toLowerCase(),\r\n 's': textTags.strike.toLowerCase(),\r\n 'sub': textTags.sub.toLowerCase(),\r\n 'sup': textTags.sup.toLowerCase()\r\n };\r\n options._defaultCommand = {\r\n bold: options.textTags.bold,\r\n underline: options.textTags.underline,\r\n italic: options.textTags.italic,\r\n strike: options.textTags.strike,\r\n subscript: options.textTags.sub,\r\n superscript: options.textTags.sup\r\n };\r\n /** Whitelist, Blacklist */\r\n options.__allowedScriptTag = options.__allowedScriptTag === true;\r\n const whitelist = 'br|p|div|pre|blockquote|h1|h2|h3|h4|h5|h6|ol|ul|li|hr|figure|figcaption|img|iframe|audio|video|source|table|thead|tbody|tr|th|td|a|b|strong|var|i|em|u|ins|s|span|strike|del|sub|sup|code|svg|path|details|summary';\r\n // tags\r\n options.tagsBlacklist = options.tagsBlacklist || '';\r\n options._defaultTagsWhitelist = (typeof options._defaultTagsWhitelist === 'string' ? options._defaultTagsWhitelist : whitelist) + (options.__allowedScriptTag ? '|script' : '');\r\n options._editorTagsWhitelist = options.addTagsWhitelist === '*' ? '*' : this._setWhitelist(options._defaultTagsWhitelist + (typeof options.addTagsWhitelist === 'string' && options.addTagsWhitelist.length > 0 ? '|' + options.addTagsWhitelist : ''), options.tagsBlacklist);\r\n // paste tags\r\n options.pasteTagsBlacklist = options.tagsBlacklist + (options.tagsBlacklist && options.pasteTagsBlacklist ? ('|' + options.pasteTagsBlacklist) : (options.pasteTagsBlacklist || ''));\r\n options.pasteTagsWhitelist = options.pasteTagsWhitelist === '*' ? '*' : this._setWhitelist(typeof options.pasteTagsWhitelist === 'string' ? options.pasteTagsWhitelist : options._editorTagsWhitelist, options.pasteTagsBlacklist);\r\n // tag attributes\r\n options.attributesWhitelist = (!options.attributesWhitelist || typeof options.attributesWhitelist !== 'object') ? null : options.attributesWhitelist;\r\n options.attributesBlacklist = (!options.attributesBlacklist || typeof options.attributesBlacklist !== 'object') ? null : options.attributesBlacklist;\r\n /** Layout */\r\n options.mode = options.mode || 'classic'; // classic, inline, balloon, balloon-always\r\n options.rtl = !!options.rtl;\r\n options.lineAttrReset = ['id'].concat((options.lineAttrReset && typeof options.lineAttrReset === 'string' ? options.lineAttrReset.toLowerCase().split('|') : []));\r\n options._editableClass = 'sun-editor-editable' + (options.rtl ? ' se-rtl' : '');\r\n options._printClass = typeof options._printClass === 'string' ? options._printClass : null;\r\n options.toolbarWidth = options.toolbarWidth ? (util.isNumber(options.toolbarWidth) ? options.toolbarWidth + 'px' : options.toolbarWidth) : 'auto';\r\n options.toolbarContainer = typeof options.toolbarContainer === 'string' ? document.querySelector(options.toolbarContainer) : options.toolbarContainer;\r\n options.stickyToolbar = (/balloon/i.test(options.mode) || !!options.toolbarContainer) ? -1 : options.stickyToolbar === undefined ? 0 : (/^\\d+/.test(options.stickyToolbar) ? util.getNumber(options.stickyToolbar, 0) : -1);\r\n options.hideToolbar = !!options.hideToolbar;\r\n options.fullScreenOffset = options.fullScreenOffset === undefined ? 0 : (/^\\d+/.test(options.fullScreenOffset) ? util.getNumber(options.fullScreenOffset, 0) : 0);\r\n options.fullPage = !!options.fullPage;\r\n options.iframe = options.fullPage || !!options.iframe;\r\n options.iframeAttributes = options.iframeAttributes || {};\r\n options.iframeCSSFileName = options.iframe ? typeof options.iframeCSSFileName === 'string' ? [options.iframeCSSFileName] : (options.iframeCSSFileName || ['suneditor']) : null;\r\n options.previewTemplate = typeof options.previewTemplate === 'string' ? options.previewTemplate : null;\r\n options.printTemplate = typeof options.printTemplate === 'string' ? options.printTemplate : null;\r\n /** CodeMirror object */\r\n options.codeMirror = options.codeMirror ? options.codeMirror.src ? options.codeMirror : {src: options.codeMirror} : null;\r\n /** katex object (Math plugin) */\r\n options.katex = options.katex ? options.katex.src ? options.katex : {src: options.katex} : null;\r\n options.mathFontSize = !!options.mathFontSize ? options.mathFontSize : [\r\n {text: '1', value: '1em'},\r\n {text: '1.5', value: '1.5em'},\r\n {text: '2', value: '2em'},\r\n {text: '2.5', value: '2.5em'}\r\n ];\r\n /** Display */\r\n options.position = typeof options.position === 'string' ? options.position : null;\r\n options.display = options.display || (element.style.display === 'none' || !element.style.display ? 'block' : element.style.display);\r\n options.popupDisplay = options.popupDisplay || 'full';\r\n /** Bottom resizing bar */\r\n options.resizingBar = options.resizingBar === undefined ? (/inline|balloon/i.test(options.mode) ? false : true) : options.resizingBar;\r\n options.showPathLabel = !options.resizingBar ? false : typeof options.showPathLabel === 'boolean' ? options.showPathLabel : true;\r\n options.resizeEnable = options.resizeEnable === undefined ? true : !!options.resizeEnable;\r\n options.resizingBarContainer = typeof options.resizingBarContainer === 'string' ? document.querySelector(options.resizingBarContainer) : options.resizingBarContainer;\r\n /** Character count */\r\n options.charCounter = options.maxCharCount > 0 ? true : typeof options.charCounter === 'boolean' ? options.charCounter : false;\r\n options.charCounterType = typeof options.charCounterType === 'string' ? options.charCounterType : 'char';\r\n options.charCounterLabel = typeof options.charCounterLabel === 'string' ? options.charCounterLabel.trim() : null;\r\n options.maxCharCount = util.isNumber(options.maxCharCount) && options.maxCharCount > -1 ? options.maxCharCount * 1 : null;\r\n /** Width size */\r\n options.width = options.width ? (util.isNumber(options.width) ? options.width + 'px' : options.width) : (element.clientWidth ? element.clientWidth + 'px' : '100%');\r\n options.minWidth = (util.isNumber(options.minWidth) ? options.minWidth + 'px' : options.minWidth) || '';\r\n options.maxWidth = (util.isNumber(options.maxWidth) ? options.maxWidth + 'px' : options.maxWidth) || '';\r\n /** Height size */\r\n options.height = options.height ? (util.isNumber(options.height) ? options.height + 'px' : options.height) : (element.clientHeight ? element.clientHeight + 'px' : 'auto');\r\n options.minHeight = (util.isNumber(options.minHeight) ? options.minHeight + 'px' : options.minHeight) || '';\r\n options.maxHeight = (util.isNumber(options.maxHeight) ? options.maxHeight + 'px' : options.maxHeight) || '';\r\n /** Editing area */\r\n options.className = (typeof options.className === 'string' && options.className.length > 0) ? ' ' + options.className : '';\r\n options.defaultStyle = typeof options.defaultStyle === 'string' ? options.defaultStyle : '';\r\n /** Defining menu items */\r\n options.font = !options.font ? ['Arial', 'Comic Sans MS', 'Courier New', 'Impact', 'Georgia', 'tahoma', 'Trebuchet MS', 'Verdana'] : options.font;\r\n options.fontSize = !options.fontSize ? null : options.fontSize;\r\n options.formats = !options.formats ? null : options.formats;\r\n options.colorList = !options.colorList ? null : options.colorList;\r\n options.lineHeights = !options.lineHeights ? null : options.lineHeights;\r\n options.paragraphStyles = !options.paragraphStyles ? null : options.paragraphStyles;\r\n options.textStyles = !options.textStyles ? null : options.textStyles;\r\n options.fontSizeUnit = typeof options.fontSizeUnit === 'string' ? (options.fontSizeUnit.trim().toLowerCase() || 'px') : 'px';\r\n options.alignItems = typeof options.alignItems === 'object' ? options.alignItems : (options.rtl ? ['right', 'center', 'left', 'justify'] : ['left', 'center', 'right', 'justify']);\r\n /** Image */\r\n options.imageResizing = options.imageResizing === undefined ? true : options.imageResizing;\r\n options.imageHeightShow = options.imageHeightShow === undefined ? true : !!options.imageHeightShow;\r\n options.imageAlignShow = options.imageAlignShow === undefined ? true : !!options.imageAlignShow;\r\n options.imageWidth = !options.imageWidth ? 'auto' : util.isNumber(options.imageWidth) ? options.imageWidth + 'px' : options.imageWidth;\r\n options.imageHeight = !options.imageHeight ? 'auto' : util.isNumber(options.imageHeight) ? options.imageHeight + 'px' : options.imageHeight;\r\n options.imageSizeOnlyPercentage = !!options.imageSizeOnlyPercentage;\r\n options._imageSizeUnit = options.imageSizeOnlyPercentage ? '%' : 'px';\r\n options.imageRotation = options.imageRotation !== undefined ? options.imageRotation : !(options.imageSizeOnlyPercentage || !options.imageHeightShow);\r\n options.imageFileInput = options.imageFileInput === undefined ? true : options.imageFileInput;\r\n options.imageUrlInput = (options.imageUrlInput === undefined || !options.imageFileInput) ? true : options.imageUrlInput;\r\n options.imageUploadHeader = options.imageUploadHeader || null;\r\n options.imageUploadUrl = typeof options.imageUploadUrl === 'string' ? options.imageUploadUrl : null;\r\n options.imageUploadSizeLimit = /\\d+/.test(options.imageUploadSizeLimit) ? util.getNumber(options.imageUploadSizeLimit, 0) : null;\r\n options.imageMultipleFile = !!options.imageMultipleFile;\r\n options.imageAccept = (typeof options.imageAccept !== 'string' || options.imageAccept.trim() === \"*\") ? 'image/*' : options.imageAccept.trim() || 'image/*';\r\n /** Image - image gallery */\r\n options.imageGalleryData = options.imageGalleryData || null;\r\n options.imageGalleryUrl = typeof options.imageGalleryUrl === 'string' ? options.imageGalleryUrl : null;\r\n options.imageGalleryHeader = options.imageGalleryHeader || null;\r\n /** Video */\r\n options.videoResizing = options.videoResizing === undefined ? true : options.videoResizing;\r\n options.videoHeightShow = options.videoHeightShow === undefined ? true : !!options.videoHeightShow;\r\n options.videoAlignShow = options.videoAlignShow === undefined ? true : !!options.videoAlignShow;\r\n options.videoRatioShow = options.videoRatioShow === undefined ? true : !!options.videoRatioShow;\r\n options.videoWidth = !options.videoWidth || !util.getNumber(options.videoWidth, 0) ? '' : util.isNumber(options.videoWidth) ? options.videoWidth + 'px' : options.videoWidth;\r\n options.videoHeight = !options.videoHeight || !util.getNumber(options.videoHeight, 0) ? '' : util.isNumber(options.videoHeight) ? options.videoHeight + 'px' : options.videoHeight;\r\n options.videoSizeOnlyPercentage = !!options.videoSizeOnlyPercentage;\r\n options._videoSizeUnit = options.videoSizeOnlyPercentage ? '%' : 'px';\r\n options.videoRotation = options.videoRotation !== undefined ? options.videoRotation : !(options.videoSizeOnlyPercentage || !options.videoHeightShow);\r\n options.videoRatio = (util.getNumber(options.videoRatio, 4) || 0.5625);\r\n options.videoRatioList = !options.videoRatioList ? null : options.videoRatioList;\r\n options.youtubeQuery = (options.youtubeQuery || '').replace('?', '');\r\n options.vimeoQuery = (options.vimeoQuery || '').replace('?', '');\r\n options.videoFileInput = !!options.videoFileInput;\r\n options.videoUrlInput = (options.videoUrlInput === undefined || !options.videoFileInput) ? true : options.videoUrlInput;\r\n options.videoUploadHeader = options.videoUploadHeader || null;\r\n options.videoUploadUrl = typeof options.videoUploadUrl === 'string' ? options.videoUploadUrl : null;\r\n options.videoUploadSizeLimit = /\\d+/.test(options.videoUploadSizeLimit) ? util.getNumber(options.videoUploadSizeLimit, 0) : null;\r\n options.videoMultipleFile = !!options.videoMultipleFile;\r\n options.videoTagAttrs = options.videoTagAttrs || null;\r\n options.videoIframeAttrs = options.videoIframeAttrs || null;\r\n options.videoAccept = (typeof options.videoAccept !== 'string' || options.videoAccept.trim() === \"*\") ? 'video/*' : options.videoAccept.trim() || 'video/*';\r\n /** Audio */\r\n options.audioWidth = !options.audioWidth ? '' : util.isNumber(options.audioWidth) ? options.audioWidth + 'px' : options.audioWidth;\r\n options.audioHeight = !options.audioHeight ? '' : util.isNumber(options.audioHeight) ? options.audioHeight + 'px' : options.audioHeight;\r\n options.audioFileInput = !!options.audioFileInput;\r\n options.audioUrlInput = (options.audioUrlInput === undefined || !options.audioFileInput) ? true : options.audioUrlInput;\r\n options.audioUploadHeader = options.audioUploadHeader || null;\r\n options.audioUploadUrl = typeof options.audioUploadUrl === 'string' ? options.audioUploadUrl : null;\r\n options.audioUploadSizeLimit = /\\d+/.test(options.audioUploadSizeLimit) ? util.getNumber(options.audioUploadSizeLimit, 0) : null;\r\n options.audioMultipleFile = !!options.audioMultipleFile;\r\n options.audioTagAttrs = options.audioTagAttrs || null;\r\n options.audioAccept = (typeof options.audioAccept !== 'string' || options.audioAccept.trim() === \"*\") ? 'audio/*' : options.audioAccept.trim() || 'audio/*';\r\n /** Table */\r\n options.tableCellControllerPosition = typeof options.tableCellControllerPosition === 'string' ? options.tableCellControllerPosition.toLowerCase() : 'cell';\r\n /** Link */\r\n options.linkTargetNewWindow = !!options.linkTargetNewWindow;\r\n options.linkProtocol = typeof options.linkProtocol === 'string' ? options.linkProtocol : null;\r\n options.linkRel = Array.isArray(options.linkRel) ? options.linkRel : [];\r\n options.linkRelDefault = options.linkRelDefault || {};\r\n /** HR */\r\n // options.hrItems = options.hrItems;\r\n /** Key actions */\r\n options.tabDisable = !!options.tabDisable;\r\n options.shortcutsDisable = Array.isArray(options.shortcutsDisable) ? options.shortcutsDisable : [];\r\n options.shortcutsHint = options.shortcutsHint === undefined ? true : !!options.shortcutsHint;\r\n /** Defining save button */\r\n options.callBackSave = !options.callBackSave ? null : options.callBackSave;\r\n /** Templates Array */\r\n options.templates = !options.templates ? null : options.templates;\r\n /** ETC */\r\n options.placeholder = typeof options.placeholder === 'string' ? options.placeholder : null;\r\n options.mediaAutoSelect = options.mediaAutoSelect === undefined ? true : !!options.mediaAutoSelect;\r\n /** Buttons */\r\n options.buttonList = !!options.buttonList ? options.buttonList : [\r\n ['undo', 'redo'],\r\n ['bold', 'underline', 'italic', 'strike', 'subscript', 'superscript'],\r\n ['removeFormat'],\r\n ['outdent', 'indent'],\r\n ['fullScreen', 'showBlocks', 'codeView'],\r\n ['preview', 'print']\r\n ];\r\n\r\n /** RTL - buttons */\r\n if (options.rtl) {\r\n options.buttonList = options.buttonList.reverse();\r\n }\r\n\r\n /** --- Define icons --- */\r\n // custom icons\r\n options.icons = (!options.icons || typeof options.icons !== 'object') ? _icons : [_icons, options.icons].reduce(function (_default, _new) {\r\n for (let key in _new) {\r\n if (util.hasOwn(_new, key)) _default[key] = _new[key];\r\n }\r\n return _default;\r\n }, {});\r\n // rtl icons\r\n options.icons = !options.rtl ? options.icons : [options.icons, options.icons.rtl].reduce(function (_default, _new) {\r\n for (let key in _new) {\r\n if (util.hasOwn(_new, key)) _default[key] = _new[key];\r\n }\r\n return _default;\r\n }, {});\r\n\r\n /** Private options */\r\n options.__listCommonStyle = options.__listCommonStyle || ['fontSize', 'color', 'fontFamily', 'fontWeight', 'fontStyle'];\r\n\r\n /** _init options */\r\n options._editorStyles = util._setDefaultOptionStyle(options, options.defaultStyle);\r\n },\r\n\r\n _setWhitelist: function (whitelist, blacklist) {\r\n if (typeof blacklist !== 'string') return whitelist;\r\n blacklist = blacklist.split('|');\r\n whitelist = whitelist.split('|');\r\n for (let i = 0, len = blacklist.length, index; i < len; i++) {\r\n index = whitelist.indexOf(blacklist[i]);\r\n if (index > -1) whitelist.splice(index, 1);\r\n }\r\n return whitelist.join('|');\r\n },\r\n\r\n /**\r\n * @description Suneditor's Default button list\r\n * @param {Object} options options\r\n * @private\r\n */\r\n _defaultButtons: function (options) {\r\n const icons = options.icons;\r\n const lang = options.lang;\r\n const cmd = util.isOSX_IOS ? '⌘' : 'CTRL';\r\n const addShift = util.isOSX_IOS ? '⇧' : '+SHIFT';\r\n const shortcutsDisable = !options.shortcutsHint ? ['bold', 'strike', 'underline', 'italic', 'undo', 'indent', 'save'] : options.shortcutsDisable;\r\n const indentKey = options.rtl ? ['[',']'] : [']','['];\r\n const indentIcon = options.rtl ? [icons.outdent, icons.indent] : [icons.indent, icons.outdent];\r\n\r\n return {\r\n /** default command */\r\n bold: ['', lang.toolbar.bold + '' + (shortcutsDisable.indexOf('bold') > -1 ? '' : cmd + '+B') + '', 'bold', '', icons.bold],\r\n underline: ['', lang.toolbar.underline + '' + (shortcutsDisable.indexOf('underline') > -1 ? '' : cmd + '+U') + '', 'underline', '', icons.underline],\r\n italic: ['', lang.toolbar.italic + '' + (shortcutsDisable.indexOf('italic') > -1 ? '' : cmd + '+I') + '', 'italic', '', icons.italic],\r\n strike: ['', lang.toolbar.strike + '' + (shortcutsDisable.indexOf('strike') > -1 ? '' : cmd + addShift + '+S') + '', 'strike', '', icons.strike],\r\n subscript: ['', lang.toolbar.subscript, 'SUB', '', icons.subscript],\r\n superscript: ['', lang.toolbar.superscript, 'SUP', '', icons.superscript],\r\n removeFormat: ['', lang.toolbar.removeFormat, 'removeFormat', '', icons.erase],\r\n indent: ['', lang.toolbar.indent + '' + (shortcutsDisable.indexOf('indent') > -1 ? '' : cmd + '+' + indentKey[0] + '') + '', 'indent', '', indentIcon[0]],\r\n outdent: ['', lang.toolbar.outdent + '' + (shortcutsDisable.indexOf('indent') > -1 ? '' : cmd + '+' + indentKey[1] + '') + '', 'outdent', '', indentIcon[1]],\r\n fullScreen: ['se-code-view-enabled se-resizing-enabled', lang.toolbar.fullScreen, 'fullScreen', '', icons.expansion],\r\n showBlocks: ['', lang.toolbar.showBlocks, 'showBlocks', '', icons.show_blocks],\r\n codeView: ['se-code-view-enabled se-resizing-enabled', lang.toolbar.codeView, 'codeView', '', icons.code_view],\r\n undo: ['', lang.toolbar.undo + '' + (shortcutsDisable.indexOf('undo') > -1 ? '' : cmd + '+Z') + '', 'undo', '', icons.undo],\r\n redo: ['', lang.toolbar.redo + '' + (shortcutsDisable.indexOf('undo') > -1 ? '' : cmd + '+Y / ' + cmd + addShift + '+Z') + '', 'redo', '', icons.redo],\r\n preview: ['se-resizing-enabled', lang.toolbar.preview, 'preview', '', icons.preview],\r\n print: ['se-resizing-enabled', lang.toolbar.print, 'print', '', icons.print],\r\n dir: ['', lang.toolbar[options.rtl ? 'dir_ltr' : 'dir_rtl'], 'dir', '', icons[options.rtl ? 'dir_ltr' : 'dir_rtl']],\r\n dir_ltr: ['', lang.toolbar.dir_ltr, 'dir_ltr', '', icons.dir_ltr],\r\n dir_rtl: ['', lang.toolbar.dir_rtl, 'dir_rtl', '', icons.dir_rtl],\r\n save: ['se-resizing-enabled', lang.toolbar.save + '' + (shortcutsDisable.indexOf('save') > -1 ? '' : cmd + '+S') + '', 'save', '', icons.save],\r\n /** plugins - command */\r\n blockquote: ['', lang.toolbar.tag_blockquote, 'blockquote', 'command', icons.blockquote],\r\n /** plugins - submenu */\r\n font: ['se-btn-select se-btn-tool-font', lang.toolbar.font, 'font', 'submenu', '' + lang.toolbar.font + '' + icons.arrow_down],\r\n formatBlock: ['se-btn-select se-btn-tool-format', lang.toolbar.formats, 'formatBlock', 'submenu', '' + lang.toolbar.formats + '' + icons.arrow_down],\r\n fontSize: ['se-btn-select se-btn-tool-size', lang.toolbar.fontSize, 'fontSize', 'submenu', '' + lang.toolbar.fontSize + '' + icons.arrow_down],\r\n fontColor: ['', lang.toolbar.fontColor, 'fontColor', 'submenu', icons.font_color],\r\n hiliteColor: ['', lang.toolbar.hiliteColor, 'hiliteColor', 'submenu', icons.highlight_color],\r\n align: ['se-btn-align', lang.toolbar.align, 'align', 'submenu', (options.rtl ? icons.align_right : icons.align_left)],\r\n list: ['', lang.toolbar.list, 'list', 'submenu', icons.list_number],\r\n horizontalRule: ['btn_line', lang.toolbar.horizontalRule, 'horizontalRule', 'submenu', icons.horizontal_rule],\r\n table: ['', lang.toolbar.table, 'table', 'submenu', icons.table],\r\n lineHeight: ['', lang.toolbar.lineHeight, 'lineHeight', 'submenu', icons.line_height],\r\n template: ['', lang.toolbar.template, 'template', 'submenu', icons.template],\r\n paragraphStyle: ['', lang.toolbar.paragraphStyle, 'paragraphStyle', 'submenu', icons.paragraph_style],\r\n textStyle: ['', lang.toolbar.textStyle, 'textStyle', 'submenu', icons.text_style],\r\n /** plugins - dialog */\r\n link: ['', lang.toolbar.link, 'link', 'dialog', icons.link],\r\n image: ['', lang.toolbar.image, 'image', 'dialog', icons.image],\r\n video: ['', lang.toolbar.video, 'video', 'dialog', icons.video],\r\n audio: ['', lang.toolbar.audio, 'audio', 'dialog', icons.audio],\r\n math: ['', lang.toolbar.math, 'math', 'dialog', icons.math],\r\n /** plugins - fileBrowser */\r\n imageGallery: ['', lang.toolbar.imageGallery, 'imageGallery', 'fileBrowser', icons.image_gallery]\r\n };\r\n },\r\n\r\n /**\r\n * @description Create a group div containing each module\r\n * @returns {Object}\r\n * @private\r\n */\r\n _createModuleGroup: function () {\r\n const oDiv = util.createElement('DIV');\r\n oDiv.className = 'se-btn-module se-btn-module-border';\r\n\r\n const oUl = util.createElement('UL');\r\n oUl.className = 'se-menu-list';\r\n oDiv.appendChild(oUl);\r\n\r\n return {\r\n 'div': oDiv,\r\n 'ul': oUl\r\n };\r\n },\r\n\r\n /**\r\n * @description Create a button element\r\n * @param {string} buttonClass className in button\r\n * @param {string} title Title in button\r\n * @param {string} dataCommand The data-command property of the button\r\n * @param {string} dataDisplay The data-display property of the button ('dialog', 'submenu', 'command')\r\n * @param {string} innerHTML Html in button\r\n * @param {string} _disabled Button disabled\r\n * @param {Object} _icons Icons\r\n * @returns {Object}\r\n * @private\r\n */\r\n _createButton: function (buttonClass, title, dataCommand, dataDisplay, innerHTML, _disabled, _icons) {\r\n const oLi = util.createElement('LI');\r\n const oButton = util.createElement('BUTTON');\r\n const label = (title || dataCommand);\r\n\r\n oButton.setAttribute('type', 'button');\r\n oButton.setAttribute('class', 'se-btn' + (buttonClass ? ' ' + buttonClass : '') + ' se-tooltip');\r\n oButton.setAttribute('data-command', dataCommand);\r\n oButton.setAttribute('data-display', dataDisplay);\r\n oButton.setAttribute('aria-label', label.replace(//, ''));\r\n oButton.setAttribute('tabindex', '-1');\r\n \r\n if (!innerHTML) innerHTML = '!';\r\n if (/^default\\./i.test(innerHTML)) {\r\n innerHTML = _icons[innerHTML.replace(/^default\\./i, '')];\r\n }\r\n if (/^text\\./i.test(innerHTML)) {\r\n innerHTML = innerHTML.replace(/^text\\./i, '');\r\n oButton.className += ' se-btn-more-text';\r\n }\r\n\r\n innerHTML += '' + label + '';\r\n\r\n if (_disabled) oButton.setAttribute('disabled', true);\r\n \r\n oButton.innerHTML = innerHTML;\r\n oLi.appendChild(oButton);\r\n\r\n return {\r\n 'li': oLi,\r\n 'button': oButton\r\n };\r\n },\r\n\r\n /**\r\n * @description Create editor HTML\r\n * @param {Array} doc document object\r\n * @param {Array} buttonList option.buttonList\r\n * @param {Object|null} plugins Plugins\r\n * @param {Array} options options\r\n * @returns {Object} { element: (Element) Toolbar element, plugins: (Array|null) Plugins Array, pluginCallButtons: (Object), responsiveButtons: (Array) }\r\n * @private\r\n */\r\n _createToolBar: function (doc, buttonList, plugins, options) {\r\n const separator_vertical = doc.createElement('DIV');\r\n separator_vertical.className = 'se-toolbar-separator-vertical';\r\n\r\n const tool_bar = doc.createElement('DIV');\r\n tool_bar.className = 'se-toolbar sun-editor-common';\r\n\r\n const _buttonTray = doc.createElement('DIV');\r\n _buttonTray.className = 'se-btn-tray';\r\n tool_bar.appendChild(_buttonTray);\r\n\r\n /** create button list */\r\n buttonList = JSON.parse(JSON.stringify(buttonList));\r\n const icons = options.icons;\r\n const defaultButtonList = this._defaultButtons(options);\r\n const pluginCallButtons = {};\r\n const responsiveButtons = [];\r\n\r\n let module = null;\r\n let button = null;\r\n let moduleElement = null;\r\n let buttonElement = null;\r\n let pluginName = '';\r\n let vertical = false;\r\n const moreLayer = util.createElement('DIV');\r\n moreLayer.className = 'se-toolbar-more-layer';\r\n\r\n buttonGroupLoop:\r\n for (let i = 0, more, moreContainer, moreCommand, buttonGroup, align; i < buttonList.length; i++) {\r\n more = false;\r\n align = '';\r\n buttonGroup = buttonList[i];\r\n moduleElement = this._createModuleGroup();\r\n\r\n // button object\r\n if (typeof buttonGroup === 'object') {\r\n // buttons loop\r\n for (let j = 0, moreButton; j < buttonGroup.length; j++) {\r\n button = buttonGroup[j];\r\n moreButton = false;\r\n\r\n if (/^\\%\\d+/.test(button) && j === 0) {\r\n buttonGroup[0] = button.replace(/[^\\d]/g, '');\r\n responsiveButtons.push(buttonGroup);\r\n buttonList.splice(i--, 1);\r\n continue buttonGroupLoop;\r\n }\r\n \r\n if (typeof button === 'object') {\r\n if (typeof button.add === 'function') {\r\n pluginName = button.name;\r\n module = defaultButtonList[pluginName];\r\n plugins[pluginName] = button;\r\n } else {\r\n pluginName = button.name;\r\n module = [button.buttonClass, button.title, button.name, button.dataDisplay, button.innerHTML, button._disabled];\r\n }\r\n } else {\r\n // align\r\n if (/^\\-/.test(button)) {\r\n align = button.substr(1);\r\n moduleElement.div.className += ' module-float-' + align;\r\n continue;\r\n }\r\n\r\n // rtl fix\r\n if (/^\\#/.test(button)) {\r\n const option = button.substr(1);\r\n if (option === 'fix') moduleElement.ul.className += ' se-menu-dir-fix';\r\n continue;\r\n }\r\n \r\n // more button\r\n if (/^\\:/.test(button)) {\r\n moreButton = true;\r\n const matched = button.match(/^\\:([^\\-]+)\\-([^\\-]+)\\-([^\\-]+)/);\r\n moreCommand = '__se__' + matched[1].trim();\r\n const title = matched[2].trim();\r\n const innerHTML = matched[3].trim();\r\n module = ['se-btn-more', title, moreCommand, 'MORE', innerHTML];\r\n }\r\n // buttons\r\n else {\r\n module = defaultButtonList[button];\r\n }\r\n\r\n pluginName = button;\r\n if (!module) {\r\n const custom = plugins[pluginName];\r\n if (!custom) throw Error('[SUNEDITOR.create.toolbar.fail] The button name of a plugin that does not exist. [' + pluginName + ']');\r\n module = [custom.buttonClass, custom.title, custom.name, custom.display, custom.innerHTML, custom._disabled];\r\n }\r\n }\r\n\r\n buttonElement = this._createButton(module[0], module[1], module[2], module[3], module[4], module[5], icons);\r\n (more ? moreContainer : moduleElement.ul).appendChild(buttonElement.li);\r\n\r\n if (plugins[pluginName]) {\r\n pluginCallButtons[pluginName] = buttonElement.button;\r\n }\r\n\r\n // more button\r\n if (moreButton) {\r\n more = true;\r\n moreContainer = util.createElement('DIV');\r\n moreContainer.className = 'se-more-layer ' + moreCommand;\r\n moreContainer.innerHTML = '
      ';\r\n moreLayer.appendChild(moreContainer);\r\n moreContainer = moreContainer.firstElementChild.firstElementChild;\r\n }\r\n }\r\n\r\n if (vertical) {\r\n const sv = separator_vertical.cloneNode(false);\r\n _buttonTray.appendChild(sv);\r\n }\r\n \r\n _buttonTray.appendChild(moduleElement.div);\r\n vertical = true;\r\n }\r\n /** line break */\r\n else if (/^\\/$/.test(buttonGroup)) {\r\n const enterDiv = doc.createElement('DIV');\r\n enterDiv.className = 'se-btn-module-enter';\r\n _buttonTray.appendChild(enterDiv);\r\n vertical = false;\r\n }\r\n }\r\n\r\n switch (_buttonTray.children.length) {\r\n case 0:\r\n _buttonTray.style.display = 'none';\r\n break;\r\n case 1:\r\n util.removeClass(_buttonTray.firstElementChild, 'se-btn-module-border');\r\n break;\r\n default:\r\n if (options.rtl) {\r\n const sv = separator_vertical.cloneNode(false);\r\n sv.style.float = _buttonTray.lastElementChild.style.float;\r\n _buttonTray.appendChild(sv);\r\n }\r\n }\r\n\r\n if (responsiveButtons.length > 0) responsiveButtons.unshift(buttonList);\r\n if (moreLayer.children.length > 0) _buttonTray.appendChild(moreLayer);\r\n\r\n // menu tray\r\n const _menuTray = doc.createElement('DIV');\r\n _menuTray.className = 'se-menu-tray';\r\n tool_bar.appendChild(_menuTray);\r\n\r\n // cover\r\n const tool_cover = doc.createElement('DIV');\r\n tool_cover.className = 'se-toolbar-cover';\r\n tool_bar.appendChild(tool_cover);\r\n\r\n if (options.hideToolbar) tool_bar.style.display = 'none';\r\n\r\n return {\r\n 'element': tool_bar,\r\n 'plugins': plugins,\r\n 'pluginCallButtons': pluginCallButtons,\r\n 'responsiveButtons': responsiveButtons,\r\n '_menuTray': _menuTray,\r\n '_buttonTray': _buttonTray\r\n };\r\n }\r\n};","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2017 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\n/**\r\n * @description Elements and variables you should have\r\n * @param {Element} element textarea element\r\n * @param {object} cons Toolbar element you created\r\n * @param {JSON|Object} options Inserted options\r\n * @returns {Object} {Elements, variables of the editor, option}\r\n * @private\r\n */\r\nconst _Context = function (element, cons, options) {\r\n return {\r\n element: {\r\n originElement: element,\r\n topArea: cons._top,\r\n relative: cons._relative,\r\n toolbar: cons._toolBar,\r\n _toolbarShadow: cons._toolbarShadow,\r\n _buttonTray: cons._toolBar.querySelector('.se-btn-tray'),\r\n _menuTray: cons._menuTray,\r\n resizingBar: cons._resizingBar,\r\n navigation: cons._navigation,\r\n charWrapper: cons._charWrapper,\r\n charCounter: cons._charCounter,\r\n editorArea: cons._editorArea,\r\n wysiwygFrame: cons._wysiwygArea,\r\n wysiwyg: cons._wysiwygArea, // if (options.iframe) cons._wysiwygArea.contentDocument.body\r\n code: cons._codeArea,\r\n placeholder: cons._placeholder,\r\n loading: cons._loading,\r\n lineBreaker: cons._lineBreaker,\r\n lineBreaker_t: cons._lineBreaker_t,\r\n lineBreaker_b: cons._lineBreaker_b,\r\n resizeBackground: cons._resizeBack,\r\n _stickyDummy: cons._stickyDummy,\r\n _arrow: cons._arrow,\r\n _focusTemp: cons._focusTemp\r\n },\r\n tool: {\r\n cover: cons._toolBar.querySelector('.se-toolbar-cover'),\r\n bold: cons._toolBar.querySelector('[data-command=\"bold\"]'),\r\n underline: cons._toolBar.querySelector('[data-command=\"underline\"]'),\r\n italic: cons._toolBar.querySelector('[data-command=\"italic\"]'),\r\n strike: cons._toolBar.querySelector('[data-command=\"strike\"]'),\r\n sub: cons._toolBar.querySelector('[data-command=\"SUB\"]'),\r\n sup: cons._toolBar.querySelector('[data-command=\"SUP\"]'),\r\n undo: cons._toolBar.querySelector('[data-command=\"undo\"]'),\r\n redo: cons._toolBar.querySelector('[data-command=\"redo\"]'),\r\n save: cons._toolBar.querySelector('[data-command=\"save\"]'),\r\n outdent: cons._toolBar.querySelector('[data-command=\"outdent\"]'),\r\n indent: cons._toolBar.querySelector('[data-command=\"indent\"]'),\r\n fullScreen: cons._toolBar.querySelector('[data-command=\"fullScreen\"]'),\r\n showBlocks: cons._toolBar.querySelector('[data-command=\"showBlocks\"]'),\r\n codeView: cons._toolBar.querySelector('[data-command=\"codeView\"]'),\r\n dir: cons._toolBar.querySelector('[data-command=\"dir\"]'),\r\n dir_ltr: cons._toolBar.querySelector('[data-command=\"dir_ltr\"]'),\r\n dir_rtl: cons._toolBar.querySelector('[data-command=\"dir_rtl\"]')\r\n },\r\n options: options,\r\n option: options\r\n };\r\n};\r\n\r\nexport default _Context;","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default {\n name: 'notice',\n /**\n * @description Constructor\n * @param {Object} core Core object \n */\n add: function (core) {\n const context = core.context;\n context.notice = {};\n\n /** dialog */\n let notice_div = core.util.createElement('DIV');\n let notice_span = core.util.createElement('SPAN');\n let notice_button = core.util.createElement('BUTTON');\n\n notice_div.className = 'se-notice';\n notice_button.className = 'close';\n notice_button.setAttribute('aria-label', 'Close');\n notice_button.setAttribute('title', core.lang.dialogBox.close);\n notice_button.innerHTML = core.icons.cancel;\n \n notice_div.appendChild(notice_span);\n notice_div.appendChild(notice_button);\n\n context.notice.modal = notice_div;\n context.notice.message = notice_span;\n\n /** add event listeners */\n notice_button.addEventListener('click', this.onClick_cancel.bind(core));\n \n /** append html */\n context.element.editorArea.appendChild(notice_div);\n \n /** empty memory */\n notice_div = null;\n },\n\n /**\n * @description Event when clicking the cancel button\n * @param {MouseEvent} e Event object\n */\n onClick_cancel: function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.plugins.notice.close.call(this);\n },\n\n /**\n * @description Open the notice panel\n * @param {String} text Notice message\n */\n open: function (text) {\n this.context.notice.message.textContent = text;\n this.context.notice.modal.style.display = 'block';\n },\n\n /**\n * @description Open the notice panel\n */\n close: function () {\n this.context.notice.modal.style.display = 'none';\n }\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nimport core from './lib/core';\nimport util from './lib/util';\nimport _Constructor from './lib/constructor';\nimport _Context from './lib/context';\n\nexport default {\n /**\n * @description Returns the create function with preset options.\n * If the options overlap, the options of the 'create' function take precedence.\n * @param {Json} options Initialization options\n * @returns {Object}\n */\n init: function (init_options) {\n return {\n create: function (idOrElement, options) {\n return this.create(idOrElement, options, init_options);\n }.bind(this)\n };\n },\n\n /**\n * @description Create the suneditor\n * @param {String|Element} idOrElement textarea Id or textarea element\n * @param {JSON|Object} options user options\n * @returns {Object}\n */\n create: function (idOrElement, options, _init_options) {\n util._propertiesInit();\n\n if (typeof options !== 'object') options = {};\n if (_init_options) {\n options = [_init_options, options].reduce(function (init, option) {\n for (let key in option) {\n if (!util.hasOwn(option, key)) continue;\n if (key === 'plugins' && option[key] && init[key]) {\n let i = init[key], o = option[key];\n i = i.length ? i : Object.keys(i).map(function(name) { return i[name]; });\n o = o.length ? o : Object.keys(o).map(function(name) { return o[name]; });\n init[key] = (o.filter(function(val) { return i.indexOf(val) === -1; })).concat(i);\n } else {\n init[key] = option[key];\n }\n }\n return init;\n }, {});\n }\n \n const element = typeof idOrElement === 'string' ? document.getElementById(idOrElement) : idOrElement;\n\n if (!element) {\n if (typeof idOrElement === 'string') {\n throw Error('[SUNEDITOR.create.fail] The element for that id was not found (ID:\"' + idOrElement + '\")');\n }\n\n throw Error('[SUNEDITOR.create.fail] suneditor requires textarea\\'s element or id value');\n }\n\n const cons = _Constructor.init(element, options);\n\n if (cons.constructed._top.id && document.getElementById(cons.constructed._top.id)) {\n throw Error('[SUNEDITOR.create.fail] The ID of the suneditor you are trying to create already exists (ID:\"' + cons.constructed._top.id + '\")');\n }\n\n return core(_Context(element, cons.constructed, cons.options), cons.pluginCallButtons, cons.plugins, cons.options.lang, options, cons._responsiveButtons);\n }\n};\n","/*\r\n * wysiwyg web editor\r\n *\r\n * suneditor.js\r\n * Copyright 2017 JiHong Lee.\r\n * MIT license.\r\n */\r\n'use strict';\r\n\r\nimport _Constructor from './constructor';\r\nimport _Context from './context';\r\nimport _history from './history';\r\nimport _util from './util';\r\nimport _notice from '../plugins/modules/_notice';\r\n\r\n/**\r\n * @description SunEditor constuctor function.\r\n * create core object and event registration.\r\n * core, event, functions\r\n * @param {Object} context\r\n * @param {Object} pluginCallButtons\r\n * @param {Object} plugins \r\n * @param {Object} lang\r\n * @param {Object} options\r\n * @param {Object} _responsiveButtons\r\n * @returns {Object} functions Object\r\n */\r\nexport default function (context, pluginCallButtons, plugins, lang, options, _responsiveButtons) {\r\n const _d = context.element.originElement.ownerDocument || document;\r\n const _w = _d.defaultView || window;\r\n const util = _util;\r\n const icons = options.icons;\r\n\r\n /**\r\n * @description editor core object\r\n * should always bind this object when registering an event in the plug-in.\r\n */\r\n const core = {\r\n _d: _d,\r\n _w: _w,\r\n _parser: new _w.DOMParser(),\r\n _prevRtl: options.rtl,\r\n _editorHeight: 0,\r\n _editorHeightPadding: 0,\r\n _listCamel: options.__listCommonStyle,\r\n _listKebab: util.camelToKebabCase(options.__listCommonStyle),\r\n __focusTemp: context.element._focusTemp,\r\n\r\n /**\r\n * @description Document object of the iframe if created as an iframe || _d\r\n * @private\r\n */\r\n _wd: null,\r\n\r\n /**\r\n * @description Window object of the iframe if created as an iframe || _w\r\n * @private\r\n */\r\n _ww: null,\r\n\r\n /**\r\n * @description Closest ShadowRoot to editor if found\r\n * @private\r\n */\r\n _shadowRoot: null,\r\n\r\n /**\r\n * @description Block controller mousedown events in \"shadowRoot\" environment\r\n * @private\r\n */\r\n _shadowRootControllerEventTarget: null,\r\n\r\n /**\r\n * @description Util object\r\n */\r\n util: util,\r\n\r\n /**\r\n * @description Functions object\r\n */\r\n functions: null,\r\n\r\n /**\r\n * @description Editor options\r\n */\r\n options: null,\r\n\r\n /**\r\n * @description Computed style of the wysiwyg area (window.getComputedStyle(context.element.wysiwyg))\r\n */\r\n wwComputedStyle: null,\r\n\r\n /**\r\n * @description Notice object\r\n */\r\n notice: _notice,\r\n\r\n /**\r\n * @description Default icons object\r\n */\r\n icons: icons,\r\n\r\n /**\r\n * @description History object for undo, redo\r\n */\r\n history: null,\r\n\r\n /**\r\n * @description Elements and user options parameters of the suneditor\r\n */\r\n context: context,\r\n\r\n /**\r\n * @description Plugin buttons\r\n */\r\n pluginCallButtons: pluginCallButtons,\r\n\r\n /**\r\n * @description Loaded plugins\r\n */\r\n plugins: plugins || {},\r\n\r\n /**\r\n * @description Whether the plugin is initialized\r\n */\r\n initPlugins: {},\r\n\r\n /**\r\n * @description Object for managing submenu elements\r\n * @private\r\n */\r\n _targetPlugins: {},\r\n\r\n /**\r\n * @description Save rendered submenus and containers\r\n * @private\r\n */\r\n _menuTray: {},\r\n\r\n /**\r\n * @description loaded language\r\n */\r\n lang: lang,\r\n\r\n /**\r\n * @description The selection node (core.getSelectionNode()) to which the effect was last applied\r\n */\r\n effectNode: null,\r\n\r\n /**\r\n * @description submenu element\r\n */\r\n submenu: null,\r\n\r\n /**\r\n * @description container element\r\n */\r\n container: null,\r\n\r\n /**\r\n * @description current subment name\r\n * @private\r\n */\r\n _submenuName: '',\r\n\r\n /**\r\n * @description binded submenuOff method\r\n * @private\r\n */\r\n _bindedSubmenuOff: null,\r\n\r\n /**\r\n * @description binded containerOff method\r\n * @private\r\n */\r\n _bindedContainerOff: null,\r\n\r\n /**\r\n * @description active button element in submenu\r\n */\r\n submenuActiveButton: null,\r\n\r\n /**\r\n * @description active button element in container\r\n */\r\n containerActiveButton: null,\r\n\r\n /**\r\n * @description The elements array to be processed unvisible when the controllersOff function is executed (resizing, link modified button, table controller)\r\n */\r\n controllerArray: [],\r\n\r\n /**\r\n * @description The name of the plugin that called the currently active controller\r\n */\r\n currentControllerName: '',\r\n\r\n /**\r\n * @description The target element of current controller\r\n */\r\n currentControllerTarget: null,\r\n\r\n /**\r\n * @description The file component object of current selected file tag (getFileComponent)\r\n */\r\n currentFileComponentInfo: null,\r\n\r\n /**\r\n * @description An array of buttons whose class name is not \"se-code-view-enabled\"\r\n */\r\n codeViewDisabledButtons: [],\r\n\r\n /**\r\n * @description An array of buttons whose class name is not \"se-resizing-enabled\"\r\n */\r\n resizingDisabledButtons: [],\r\n\r\n /**\r\n * @description active more layer element in submenu\r\n * @private\r\n */\r\n _moreLayerActiveButton: null,\r\n\r\n /**\r\n * @description Tag whitelist RegExp object used in \"_consistencyCheckOfHTML\" method\r\n * ^(options._editorTagsWhitelist)$\r\n * @private\r\n */\r\n _htmlCheckWhitelistRegExp: null,\r\n\r\n /**\r\n * @description Tag blacklist RegExp object used in \"_consistencyCheckOfHTML\" method\r\n * @private\r\n */\r\n _htmlCheckBlacklistRegExp: null,\r\n\r\n /**\r\n * @description RegExp when using check disallowd tags. (b, i, ins, strike, s)\r\n * @private\r\n */\r\n _disallowedTextTagsRegExp: null,\r\n\r\n /**\r\n * @description Editor tags whitelist (RegExp object)\r\n * util.createTagsWhitelist(options._editorTagsWhitelist)\r\n */\r\n editorTagsWhitelistRegExp: null,\r\n\r\n /**\r\n * @description Editor tags blacklist (RegExp object)\r\n * util.createTagsBlacklist(options.tagsBlacklist)\r\n */\r\n editorTagsBlacklistRegExp: null,\r\n\r\n /**\r\n * @description Tag whitelist when pasting (RegExp object)\r\n * util.createTagsWhitelist(options.pasteTagsWhitelist)\r\n */\r\n pasteTagsWhitelistRegExp: null,\r\n\r\n /**\r\n * @description Tag blacklist when pasting (RegExp object)\r\n * util.createTagsBlacklist(options.pasteTagsBlacklist)\r\n */\r\n pasteTagsBlacklistRegExp: null,\r\n\r\n /**\r\n * @description Boolean value of whether the editor has focus\r\n */\r\n hasFocus: false,\r\n\r\n /**\r\n * @description Boolean value of whether the editor is disabled\r\n */\r\n isDisabled: false,\r\n\r\n /**\r\n * @description Boolean value of whether the editor is readOnly\r\n */\r\n isReadOnly: false,\r\n\r\n /**\r\n * @description Attributes whitelist used by the cleanHTML method\r\n * @private\r\n */\r\n _attributesWhitelistRegExp: null,\r\n _attributesWhitelistRegExp_all_data: null,\r\n\r\n /**\r\n * @description Attributes blacklist used by the cleanHTML method\r\n * @private\r\n */\r\n _attributesBlacklistRegExp: null,\r\n\r\n /**\r\n * @description Attributes of tags whitelist used by the cleanHTML method\r\n * @private\r\n */\r\n _attributesTagsWhitelist: null,\r\n\r\n /**\r\n * @description Attributes of tags blacklist used by the cleanHTML method\r\n * @private\r\n */\r\n _attributesTagsBlacklist: null,\r\n\r\n /**\r\n * @description binded controllersOff method\r\n * @private\r\n */\r\n _bindControllersOff: null,\r\n\r\n /**\r\n * @description Is inline mode?\r\n * @private\r\n */\r\n _isInline: null,\r\n\r\n /**\r\n * @description Is balloon|balloon-always mode?\r\n * @private\r\n */\r\n _isBalloon: null,\r\n\r\n /**\r\n * @description Is balloon-always mode?\r\n * @private\r\n */\r\n _isBalloonAlways: null,\r\n\r\n /**\r\n * @description Required value when using inline mode to sticky toolbar\r\n * @private\r\n */\r\n _inlineToolbarAttr: {top: '', width: '', isShow: false},\r\n\r\n /**\r\n * @description Variable that controls the \"blur\" event in the editor of inline or balloon mode when the focus is moved to submenu\r\n * @private\r\n */\r\n _notHideToolbar: false,\r\n\r\n /**\r\n * @description Variable value that sticky toolbar mode\r\n * @private\r\n */\r\n _sticky: false,\r\n\r\n /**\r\n * @description Variables for controlling focus and blur events\r\n * @private\r\n */\r\n _antiBlur: false,\r\n\r\n /**\r\n * @description Component line breaker element\r\n * @private\r\n */\r\n _lineBreaker: null,\r\n _lineBreakerButton: null,\r\n\r\n /**\r\n * @description If true, (initialize, reset) all indexes of image, video information\r\n * @private\r\n */\r\n _componentsInfoInit: true,\r\n _componentsInfoReset: false,\r\n\r\n /**\r\n * @description Plugins array with \"active\" method.\r\n * \"activePlugins\" runs the \"add\" method when creating the editor.\r\n */\r\n activePlugins: null,\r\n\r\n /**\r\n * @description Information of tags that should maintain HTML structure, style, class name, etc. (In use by \"math\" plugin)\r\n * When inserting \"html\" such as paste, it is executed on the \"html\" to be inserted. (core.cleanHTML)\r\n * Basic Editor Actions:\r\n * 1. All classes not starting with \"__se__\" or \"se-\" in the editor are removed.\r\n * 2. The style of all tags except the \"span\" tag is removed from the editor.\r\n * \"managedTagsInfo\" structure ex:\r\n * managedTagsInfo: {\r\n * query: '.__se__xxx, se-xxx'\r\n * map: {\r\n * '__se__xxx': method.bind(core),\r\n * 'se-xxx': method.bind(core),\r\n * }\r\n * }\r\n * @example\r\n * Define in the following return format in the \"managedTagInfo\" function of the plugin.\r\n * managedTagInfo() => {\r\n * return {\r\n * className: 'string', // Class name to identify the tag. (\"__se__xxx\", \"se-xxx\")\r\n * // Change the html of the \"element\". (\"element\" is the element found with \"className\".)\r\n * // \"method\" is executed by binding \"core\".\r\n * method: function (element) {\r\n * // this === core\r\n * element.innerHTML = // (rendered html);\r\n * }\r\n * }\r\n * }\r\n */\r\n managedTagsInfo: null,\r\n\r\n /**\r\n * @description cashing: options.charCounterType === 'byte-html'\r\n * @private\r\n */\r\n _charTypeHTML: false,\r\n\r\n /**\r\n * @description Array of \"checkFileInfo\" functions with the core bound\r\n * (Plugins with \"checkFileInfo\" and \"resetFileInfo\" methods)\r\n * \"fileInfoPlugins\" runs the \"add\" method when creating the editor.\r\n * \"checkFileInfo\" method is always call just before the \"change\" event.\r\n * @private\r\n */\r\n _fileInfoPluginsCheck: null,\r\n\r\n /**\r\n * @description Array of \"resetFileInfo\" functions with the core bound\r\n * (Plugins with \"checkFileInfo\" and \"resetFileInfo\" methods)\r\n * \"checkFileInfo\" method is always call just before the \"functions.setOptions\" method.\r\n * @private\r\n */\r\n _fileInfoPluginsReset: null,\r\n\r\n /**\r\n * @description Variables for file component management\r\n * @private\r\n */\r\n _fileManager: {\r\n tags: null,\r\n regExp: null,\r\n queryString: null,\r\n pluginRegExp: null,\r\n pluginMap: null\r\n },\r\n\r\n /**\r\n * @description Elements that need to change text or className for each selection change\r\n * After creating the editor, \"activePlugins\" are added.\r\n * @property {Element} STRONG bold button\r\n * @property {Element} U underline button\r\n * @property {Element} EM italic button\r\n * @property {Element} DEL strike button\r\n * @property {Element} SUB subscript button\r\n * @property {Element} SUP superscript button\r\n * @property {Element} OUTDENT outdent button\r\n * @property {Element} INDENT indent button\r\n */\r\n commandMap: {},\r\n\r\n /**\r\n * @description CSS properties related to style tags \r\n * @private\r\n */\r\n _commandMapStyles: {\r\n STRONG: ['font-weight'],\r\n U: ['text-decoration'],\r\n EM: ['font-style'],\r\n DEL: ['text-decoration']\r\n },\r\n\r\n /**\r\n * @description Style button related to edit area\r\n * @property {Element} fullScreen fullScreen button element\r\n * @property {Element} showBlocks showBlocks button element\r\n * @property {Element} codeView codeView button element\r\n * @private\r\n */\r\n _styleCommandMap: null,\r\n\r\n /**\r\n * @private\r\n */\r\n _cleanStyleRegExp: {\r\n div: new _w.RegExp('\\\\s*[^-a-zA-Z](.+)\\\\s*:[^;]+(?!;)*', 'ig'),\r\n span: new _w.RegExp('\\\\s*[^-a-zA-Z](font-family|font-size|color|background-color)\\\\s*:[^;]+(?!;)*', 'ig'),\r\n format: new _w.RegExp('\\\\s*[^-a-zA-Z](text-align|margin-left|margin-right|width|height|line-height)\\\\s*:[^;]+(?!;)*', 'ig'),\r\n fontSizeUnit: new _w.RegExp('\\\\d+' + options.fontSizeUnit + '$', 'i'),\r\n },\r\n\r\n /**\r\n * @description Variables used internally in editor operation\r\n * @property {Boolean} isCodeView State of code view\r\n * @property {Boolean} isFullScreen State of full screen\r\n * @property {Number} innerHeight_fullScreen InnerHeight in editor when in full screen\r\n * @property {Number} resizeClientY Remember the vertical size of the editor before resizing the editor (Used when calculating during resize operation)\r\n * @property {Number} tabSize Indent size of tab (4)\r\n * @property {Number} codeIndent Indent size of Code view mode (2)\r\n * @property {Number} minResizingSize Minimum size of editing area when resized {Number} (.se-wrapper-inner {min-height: 65px;} || 65)\r\n * @property {Array} currentNodes An array of the current cursor's node structure\r\n * @private\r\n */\r\n _variable: {\r\n isChanged: false,\r\n isCodeView: false,\r\n isFullScreen: false,\r\n innerHeight_fullScreen: 0,\r\n resizeClientY: 0,\r\n tabSize: 4,\r\n codeIndent: 2,\r\n minResizingSize: util.getNumber((context.element.wysiwygFrame.style.minHeight || '65'), 0),\r\n currentNodes: [],\r\n currentNodesMap: [],\r\n _range: null,\r\n _selectionNode: null,\r\n _originCssText: context.element.topArea.style.cssText,\r\n _bodyOverflow: '',\r\n _editorAreaOriginCssText: '',\r\n _wysiwygOriginCssText: '',\r\n _codeOriginCssText: '',\r\n _fullScreenAttrs: {sticky: false, balloon: false, inline: false},\r\n _lineBreakComp: null,\r\n _lineBreakDir: ''\r\n },\r\n\r\n /**\r\n * @description Temp variable for set line attrs\r\n * @private\r\n */\r\n _formatAttrsTemp: null,\r\n\r\n /**\r\n * @description Save the current buttons states to \"allCommandButtons\" object\r\n * @private\r\n */\r\n _saveButtonStates: function () {\r\n if (!this.allCommandButtons) this.allCommandButtons = {};\r\n\r\n const currentButtons = this.context.element._buttonTray.querySelectorAll('.se-menu-list button[data-display]');\r\n for (let i = 0, element, command; i < currentButtons.length; i++) {\r\n element = currentButtons[i];\r\n command = element.getAttribute('data-command');\r\n\r\n this.allCommandButtons[command] = element;\r\n }\r\n },\r\n\r\n /**\r\n * @description Recover the current buttons states from \"allCommandButtons\" object\r\n * @private\r\n */\r\n _recoverButtonStates: function () {\r\n if (this.allCommandButtons) {\r\n const currentButtons = this.context.element._buttonTray.querySelectorAll('.se-menu-list button[data-display]');\r\n for (let i = 0, button, command, oldButton; i < currentButtons.length; i++) {\r\n button = currentButtons[i];\r\n command = button.getAttribute('data-command');\r\n\r\n oldButton = this.allCommandButtons[command];\r\n if (oldButton) {\r\n button.parentElement.replaceChild(oldButton, button);\r\n if (this.context.tool[command]) this.context.tool[command] = oldButton;\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @description If the plugin is not added, add the plugin and call the 'add' function.\r\n * If the plugin is added call callBack function.\r\n * @param {String} pluginName The name of the plugin to call\r\n * @param {function} callBackFunction Function to be executed immediately after module call\r\n * @param {Element|null} _target Plugin target button (This is not necessary if you have a button list when creating the editor)\r\n */\r\n callPlugin: function (pluginName, callBackFunction, _target) {\r\n _target = _target || pluginCallButtons[pluginName];\r\n\r\n if (!this.plugins[pluginName]) {\r\n throw Error('[SUNEDITOR.core.callPlugin.fail] The called plugin does not exist or is in an invalid format. (pluginName:\"' + pluginName + '\")');\r\n } else if (!this.initPlugins[pluginName]) {\r\n this.plugins[pluginName].add(this, _target);\r\n this.initPlugins[pluginName] = true;\r\n } else if (typeof this._targetPlugins[pluginName] === 'object' && !!_target) {\r\n this.initMenuTarget(pluginName, _target, this._targetPlugins[pluginName]);\r\n }\r\n\r\n if (this.plugins[pluginName].active && !this.commandMap[pluginName] && !!_target) {\r\n this.commandMap[pluginName] = _target;\r\n this.activePlugins.push(pluginName);\r\n }\r\n\r\n if (typeof callBackFunction === 'function') callBackFunction();\r\n },\r\n\r\n /**\r\n * @description If the module is not added, add the module and call the 'add' function\r\n * @param {Array} moduleArray module object's Array [dialog, resizing]\r\n */\r\n addModule: function (moduleArray) {\r\n for (let i = 0, len = moduleArray.length, moduleName; i < len; i++) {\r\n moduleName = moduleArray[i].name;\r\n if (!this.plugins[moduleName]) {\r\n this.plugins[moduleName] = moduleArray[i];\r\n }\r\n if (!this.initPlugins[moduleName]) {\r\n this.initPlugins[moduleName] = true;\r\n if (typeof this.plugins[moduleName].add === 'function') this.plugins[moduleName].add(this);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @description Gets the current editor-relative scroll offset.\r\n * @returns {Object} {top, left}\r\n */\r\n getGlobalScrollOffset: function () {\r\n let t = 0, l = 0;\r\n let el = context.element.topArea;\r\n while (el) {\r\n t += el.scrollTop;\r\n l += el.scrollLeft;\r\n el = el.parentElement;\r\n }\r\n\r\n el = this._shadowRoot ? this._shadowRoot.host : null;\r\n while (el) {\r\n t += el.scrollTop;\r\n l += el.scrollLeft;\r\n el = el.parentElement;\r\n }\r\n\r\n return {\r\n top: t,\r\n left: l\r\n };\r\n },\r\n\r\n /**\r\n * @description Method for managing submenu element.\r\n * You must add the \"submenu\" element using the this method at custom plugin.\r\n * @param {String} pluginName Plugin name\r\n * @param {Element|null} target Target button\r\n * @param {Element} menu Submenu element\r\n */\r\n initMenuTarget: function (pluginName, target, menu) {\r\n if (!target) {\r\n this._targetPlugins[pluginName] = menu;\r\n } else {\r\n context.element._menuTray.appendChild(menu);\r\n this._targetPlugins[pluginName] = true;\r\n this._menuTray[target.getAttribute('data-command')] = menu;\r\n }\r\n },\r\n\r\n /**\r\n * @description Enable submenu\r\n * @param {Element} element Submenu's button element to call\r\n */\r\n submenuOn: function (element) {\r\n if (this._bindedSubmenuOff) this._bindedSubmenuOff();\r\n if (this._bindControllersOff) this.controllersOff();\r\n\r\n const submenuName = this._submenuName = element.getAttribute('data-command');\r\n const menu = this.submenu = this._menuTray[submenuName];\r\n this.submenuActiveButton = element;\r\n this._setMenuPosition(element, menu);\r\n\r\n this._bindedSubmenuOff = this.submenuOff.bind(this);\r\n this.addDocEvent('mousedown', this._bindedSubmenuOff, false);\r\n\r\n if (this.plugins[submenuName].on) this.plugins[submenuName].on.call(this);\r\n this._antiBlur = true;\r\n },\r\n\r\n /**\r\n * @description Disable submenu\r\n */\r\n submenuOff: function () {\r\n this.removeDocEvent('mousedown', this._bindedSubmenuOff);\r\n this._bindedSubmenuOff = null;\r\n\r\n if (this.submenu) {\r\n this._submenuName = '';\r\n this.submenu.style.display = 'none';\r\n this.submenu = null;\r\n util.removeClass(this.submenuActiveButton, 'on');\r\n this.submenuActiveButton = null;\r\n this._notHideToolbar = false;\r\n }\r\n\r\n this._antiBlur = false;\r\n },\r\n\r\n /**\r\n * @description Disable more layer\r\n */\r\n moreLayerOff: function() {\r\n if (this._moreLayerActiveButton) {\r\n const layer = context.element.toolbar.querySelector('.' + this._moreLayerActiveButton.getAttribute('data-command'));\r\n layer.style.display = 'none';\r\n util.removeClass(this._moreLayerActiveButton, 'on');\r\n this._moreLayerActiveButton = null;\r\n }\r\n },\r\n\r\n /**\r\n * @description Enable container\r\n * @param {Element} element Container's button element to call\r\n */\r\n containerOn: function (element) {\r\n if (this._bindedContainerOff) this._bindedContainerOff();\r\n\r\n const containerName = this._containerName = element.getAttribute('data-command');\r\n const menu = this.container = this._menuTray[containerName];\r\n this.containerActiveButton = element;\r\n this._setMenuPosition(element, menu);\r\n\r\n this._bindedContainerOff = this.containerOff.bind(this);\r\n this.addDocEvent('mousedown', this._bindedContainerOff, false);\r\n\r\n if (this.plugins[containerName].on) this.plugins[containerName].on.call(this);\r\n this._antiBlur = true;\r\n },\r\n\r\n /**\r\n * @description Disable container\r\n */\r\n containerOff: function () {\r\n this.removeDocEvent('mousedown', this._bindedContainerOff);\r\n this._bindedContainerOff = null;\r\n\r\n if (this.container) {\r\n this._containerName = '';\r\n this.container.style.display = 'none';\r\n this.container = null;\r\n util.removeClass(this.containerActiveButton, 'on');\r\n this.containerActiveButton = null;\r\n this._notHideToolbar = false;\r\n }\r\n\r\n this._antiBlur = false;\r\n },\r\n\r\n /**\r\n * @description Set the menu position. (submenu, container)\r\n * @param {*} element Button element\r\n * @param {*} menu Menu element\r\n * @private\r\n */\r\n _setMenuPosition: function (element, menu) {\r\n menu.style.visibility = 'hidden';\r\n menu.style.display = 'block';\r\n menu.style.height = '';\r\n util.addClass(element, 'on');\r\n\r\n const toolbar = this.context.element.toolbar;\r\n const toolbarW = toolbar.offsetWidth;\r\n const toolbarOffset = event._getEditorOffsets(context.element.toolbar);\r\n const menuW = menu.offsetWidth;\r\n const l = element.parentElement.offsetLeft + 3;\r\n\r\n // rtl\r\n if (options.rtl) {\r\n const elementW = element.offsetWidth;\r\n const rtlW = menuW > elementW ? menuW - elementW : 0;\r\n const rtlL = rtlW > 0 ? 0 : elementW - menuW;\r\n menu.style.left = (l - rtlW + rtlL) + 'px';\r\n if (toolbarOffset.left > event._getEditorOffsets(menu).left) {\r\n menu.style.left = '0px';\r\n }\r\n } else {\r\n const overLeft = toolbarW <= menuW ? 0 : toolbarW - (l + menuW);\r\n if (overLeft < 0) menu.style.left = (l + overLeft) + 'px';\r\n else menu.style.left = l + 'px';\r\n }\r\n\r\n // get element top\r\n let t = 0;\r\n let offsetEl = element;\r\n while (offsetEl && offsetEl !== toolbar) {\r\n t += offsetEl.offsetTop;\r\n offsetEl = offsetEl.offsetParent;\r\n }\r\n\r\n const bt = t;\r\n if (this._isBalloon) {\r\n t += toolbar.offsetTop + element.offsetHeight;\r\n } else {\r\n t -= element.offsetHeight;\r\n }\r\n\r\n // set menu position\r\n const toolbarTop = toolbarOffset.top;\r\n const menuHeight = menu.offsetHeight;\r\n const scrollTop = this.getGlobalScrollOffset().top;\r\n\r\n const menuHeight_bottom = _w.innerHeight - (toolbarTop - scrollTop + bt + element.parentElement.offsetHeight);\r\n if (menuHeight_bottom < menuHeight) {\r\n let menuTop = -1 * (menuHeight - bt + 3);\r\n const insTop = toolbarTop - scrollTop + menuTop;\r\n const menuHeight_top = menuHeight + (insTop < 0 ? insTop : 0);\r\n\r\n if (menuHeight_top > menuHeight_bottom) {\r\n menu.style.height = menuHeight_top + 'px';\r\n menuTop = -1 * (menuHeight_top - bt + 3);\r\n } else {\r\n menu.style.height = menuHeight_bottom + 'px';\r\n menuTop = bt + element.parentElement.offsetHeight;\r\n }\r\n\r\n menu.style.top = menuTop + 'px';\r\n } else {\r\n menu.style.top = (bt + element.parentElement.offsetHeight) + 'px';\r\n }\r\n\r\n menu.style.visibility = '';\r\n },\r\n\r\n /**\r\n * @description Show controller at editor area (controller elements, function, \"controller target element(@Required)\", \"controller name(@Required)\", etc..)\r\n * @param {*} arguments controller elements, functions..\r\n */\r\n controllersOn: function () {\r\n if (this._bindControllersOff) this._bindControllersOff();\r\n this.controllerArray = [];\r\n\r\n for (let i = 0, arg; i < arguments.length; i++) {\r\n arg = arguments[i];\r\n if (!arg) continue;\r\n\r\n if (typeof arg === 'string') {\r\n this.currentControllerName = arg;\r\n continue;\r\n }\r\n if (typeof arg === 'function') {\r\n this.controllerArray.push(arg);\r\n continue;\r\n }\r\n if (!util.hasClass(arg, 'se-controller')) {\r\n this.currentControllerTarget = arg;\r\n this.currentFileComponentInfo = this.getFileComponent(arg);\r\n continue;\r\n }\r\n if (arg.style) {\r\n arg.style.display = 'block';\r\n if (this._shadowRoot && this._shadowRootControllerEventTarget.indexOf(arg) === -1) {\r\n arg.addEventListener('mousedown', function (e) { e.preventDefault(); e.stopPropagation(); });\r\n this._shadowRootControllerEventTarget.push(arg);\r\n }\r\n }\r\n this.controllerArray.push(arg);\r\n }\r\n\r\n this._bindControllersOff = this.controllersOff.bind(this);\r\n this.addDocEvent('mousedown', this._bindControllersOff, false);\r\n this.addDocEvent('keydown', this._bindControllersOff, false);\r\n this._antiBlur = true;\r\n\r\n if (typeof functions.showController === 'function') functions.showController(this.currentControllerName, this.controllerArray, this);\r\n },\r\n\r\n /**\r\n * @description Hide controller at editor area (link button, image resize button..)\r\n * @param {KeyboardEvent|MouseEvent|null} e Event object when called from mousedown and keydown events registered in \"core.controllersOn\"\r\n */\r\n controllersOff: function (e) {\r\n this._lineBreaker.style.display = 'none';\r\n const len = this.controllerArray.length;\r\n\r\n if (e && e.target && len > 0) {\r\n for (let i = 0; i < len; i++) {\r\n if (typeof this.controllerArray[i].contains === 'function' && this.controllerArray[i].contains(e.target)) return;\r\n }\r\n }\r\n\r\n if (this._fileManager.pluginRegExp.test(this.currentControllerName) && e && e.type === 'keydown' && e.keyCode !== 27) return;\r\n context.element.lineBreaker_t.style.display = context.element.lineBreaker_b.style.display = 'none';\r\n this._variable._lineBreakComp = null;\r\n\r\n this.currentControllerName = '';\r\n this.currentControllerTarget = null;\r\n this.currentFileComponentInfo = null;\r\n this.effectNode = null;\r\n if (!this._bindControllersOff) return;\r\n\r\n this.removeDocEvent('mousedown', this._bindControllersOff);\r\n this.removeDocEvent('keydown', this._bindControllersOff);\r\n this._bindControllersOff = null;\r\n\r\n if (len > 0) {\r\n for (let i = 0; i < len; i++) {\r\n if (typeof this.controllerArray[i] === 'function') this.controllerArray[i]();\r\n else this.controllerArray[i].style.display = 'none';\r\n }\r\n\r\n this.controllerArray = [];\r\n }\r\n\r\n this._antiBlur = false;\r\n },\r\n\r\n /**\r\n * @description Specify the position of the controller.\r\n * @param {Element} controller Controller element.\r\n * @param {Element} referEl Element that is the basis of the controller's position.\r\n * @param {String} position Type of position (\"top\" | \"bottom\")\r\n * When using the \"top\" position, there should not be an arrow on the controller.\r\n * When using the \"bottom\" position there should be an arrow on the controller.\r\n * @param {Object} addOffset These are the left and top values that need to be added specially. \r\n * This argument is required. - {left: 0, top: 0}\r\n * Please enter the value based on ltr mode.\r\n * Calculated automatically in rtl mode.\r\n */\r\n setControllerPosition: function (controller, referEl, position, addOffset) {\r\n if (options.rtl) addOffset.left *= -1;\r\n\r\n const offset = util.getOffset(referEl, context.element.wysiwygFrame);\r\n controller.style.visibility = 'hidden';\r\n controller.style.display = 'block';\r\n\r\n // Height value of the arrow element is 11px\r\n const topMargin = position === 'top' ? -(controller.offsetHeight + 2) : (referEl.offsetHeight + 12);\r\n controller.style.top = (offset.top + topMargin + addOffset.top) + 'px';\r\n\r\n const l = offset.left - context.element.wysiwygFrame.scrollLeft + addOffset.left;\r\n const controllerW = controller.offsetWidth;\r\n const referElW = referEl.offsetWidth;\r\n\r\n const allow = util.hasClass(controller.firstElementChild, 'se-arrow') ? controller.firstElementChild : null;\r\n\r\n // rtl (Width value of the arrow element is 22px)\r\n if (options.rtl) {\r\n const rtlW = (controllerW > referElW) ? controllerW - referElW : 0;\r\n const rtlL = rtlW > 0 ? 0 : referElW - controllerW;\r\n controller.style.left = (l - rtlW + rtlL) + 'px';\r\n\r\n if (rtlW > 0) {\r\n if (allow) allow.style.left = ((controllerW - 14 < 10 + rtlW) ? (controllerW - 14) : (10 + rtlW)) + 'px';\r\n }\r\n\r\n const overSize = context.element.wysiwygFrame.offsetLeft - controller.offsetLeft;\r\n if (overSize > 0) {\r\n controller.style.left = '0px';\r\n if (allow) allow.style.left = overSize + 'px';\r\n }\r\n } else {\r\n controller.style.left = l + 'px';\r\n\r\n const overSize = context.element.wysiwygFrame.offsetWidth - (controller.offsetLeft + controllerW);\r\n if (overSize < 0) {\r\n controller.style.left = (controller.offsetLeft + overSize) + 'px';\r\n if (allow) allow.style.left = (20 - overSize) + 'px';\r\n } else {\r\n if (allow) allow.style.left = '20px';\r\n }\r\n }\r\n\r\n controller.style.visibility = '';\r\n },\r\n\r\n /**\r\n * @description javascript execCommand\r\n * @param {String} command javascript execCommand function property\r\n * @param {Boolean|undefined} showDefaultUI javascript execCommand function property\r\n * @param {String|undefined} value javascript execCommand function property\r\n */\r\n execCommand: function (command, showDefaultUI, value) {\r\n this._wd.execCommand(command, showDefaultUI, (command === 'formatBlock' ? '<' + value + '>' : value));\r\n // history stack\r\n this.history.push(true);\r\n },\r\n\r\n /**\r\n * @description Focus to wysiwyg area using \"native focus function\"\r\n */\r\n nativeFocus: function () {\r\n this.__focus();\r\n this._editorRange();\r\n },\r\n\r\n /**\r\n * @description Focus method\r\n * @private\r\n */\r\n __focus: function () {\r\n const caption = util.getParentElement(this.getSelectionNode(), 'figcaption');\r\n if (caption) {\r\n caption.focus();\r\n } else {\r\n context.element.wysiwyg.focus();\r\n }\r\n },\r\n\r\n /**\r\n * @description Focus to wysiwyg area\r\n */\r\n focus: function () {\r\n if (context.element.wysiwygFrame.style.display === 'none') return;\r\n\r\n if (options.iframe) {\r\n this.nativeFocus();\r\n } else {\r\n try {\r\n const range = this.getRange();\r\n if (range.startContainer === range.endContainer && util.isWysiwygDiv(range.startContainer)) {\r\n const currentNode = range.commonAncestorContainer.children[range.startOffset];\r\n if (!util.isFormatElement(currentNode) && !util.isComponent(currentNode)) {\r\n const format = util.createElement(options.defaultTag);\r\n const br = util.createElement('BR');\r\n format.appendChild(br);\r\n context.element.wysiwyg.insertBefore(format, currentNode);\r\n this.setRange(br, 0, br, 0);\r\n return;\r\n }\r\n }\r\n this.setRange(range.startContainer, range.startOffset, range.endContainer, range.endOffset);\r\n } catch (e) {\r\n this.nativeFocus();\r\n }\r\n }\r\n\r\n event._applyTagEffects();\r\n if (this._isBalloon) event._toggleToolbarBalloon();\r\n },\r\n\r\n /**\r\n * @description If \"focusEl\" is a component, then that component is selected; if it is a format element, the last text is selected\r\n * If \"focusEdge\" is null, then selected last element\r\n * @param {Element|null} focusEl Focus element\r\n */\r\n focusEdge: function (focusEl) {\r\n if (!focusEl) focusEl = context.element.wysiwyg.lastElementChild;\r\n\r\n const fileComponentInfo = this.getFileComponent(focusEl);\r\n if (fileComponentInfo) {\r\n this.selectComponent(fileComponentInfo.target, fileComponentInfo.pluginName);\r\n } else if (focusEl) {\r\n focusEl = util.getChildElement(focusEl, function (current) { return current.childNodes.length === 0 || current.nodeType === 3; }, true);\r\n if (!focusEl) this.nativeFocus();\r\n else this.setRange(focusEl, focusEl.textContent.length, focusEl, focusEl.textContent.length);\r\n } else {\r\n this.focus();\r\n }\r\n },\r\n\r\n /**\r\n * @description Focusout to wysiwyg area (.blur())\r\n */\r\n blur: function () {\r\n if (options.iframe) {\r\n context.element.wysiwygFrame.blur();\r\n } else {\r\n context.element.wysiwyg.blur();\r\n }\r\n },\r\n\r\n /**\r\n * @description Set current editor's range object and return.\r\n * @param {Node} startCon The startContainer property of the selection object.\r\n * @param {Number} startOff The startOffset property of the selection object.\r\n * @param {Node} endCon The endContainer property of the selection object.\r\n * @param {Number} endOff The endOffset property of the selection object.\r\n * @returns {Object} Range object.\r\n */\r\n setRange: function (startCon, startOff, endCon, endOff) {\r\n if (!startCon || !endCon) return;\r\n if (startOff > startCon.textContent.length) startOff = startCon.textContent.length;\r\n if (endOff > endCon.textContent.length) endOff = endCon.textContent.length;\r\n if (util.isFormatElement(startCon)) {\r\n startCon = startCon.childNodes[startOff] || startCon.childNodes[startOff - 1] || startCon;\r\n startOff = startOff > 0 ? startCon.nodeType === 1 ? 1 : startCon.textContent ? startCon.textContent.length : 0 : 0;\r\n }\r\n if (util.isFormatElement(endCon)) {\r\n endCon = endCon.childNodes[endOff] || endCon.childNodes[endOff - 1] || endCon;\r\n endOff = endOff > 0 ? endCon.nodeType === 1 ? 1 : endCon.textContent ? endCon.textContent.length : 0 : 0;\r\n }\r\n\r\n const range = this._wd.createRange();\r\n\r\n try {\r\n range.setStart(startCon, startOff);\r\n range.setEnd(endCon, endOff);\r\n } catch (error) {\r\n console.warn('[SUNEDITOR.core.focus.error] ' + error);\r\n this.nativeFocus();\r\n return;\r\n }\r\n\r\n const selection = this.getSelection();\r\n\r\n if (selection.removeAllRanges) {\r\n selection.removeAllRanges();\r\n }\r\n\r\n selection.addRange(range);\r\n this._rangeInfo(range, this.getSelection());\r\n if (options.iframe) this.__focus();\r\n\r\n return range;\r\n },\r\n\r\n /**\r\n * @description Remove range object and button effect\r\n */\r\n removeRange: function () {\r\n this._variable._range = null;\r\n this._variable._selectionNode = null;\r\n if (this.hasFocus) this.getSelection().removeAllRanges();\r\n this._setKeyEffect([]);\r\n },\r\n\r\n /**\r\n * @description Get current editor's range object\r\n * @returns {Object}\r\n */\r\n getRange: function () {\r\n const range = this._variable._range || this._createDefaultRange();\r\n const selection = this.getSelection();\r\n if (range.collapsed === selection.isCollapsed || !context.element.wysiwyg.contains(selection.focusNode)) return range;\r\n\r\n if (selection.rangeCount > 0) {\r\n this._variable._range = selection.getRangeAt(0);\r\n return this._variable._range;\r\n } else {\r\n const sc = selection.anchorNode, ec = selection.focusNode, so = selection.anchorOffset, eo = selection.focusOffset;\r\n const compareValue = util.compareElements(sc, ec);\r\n const rightDir = compareValue.ancestor && (compareValue.result === 0 ? so <= eo : compareValue.result > 1 ? true : false);\r\n return this.setRange(\r\n rightDir ? sc : ec,\r\n rightDir ? so : eo,\r\n rightDir ? ec : sc,\r\n rightDir ? eo : so\r\n );\r\n }\r\n },\r\n\r\n /**\r\n * @description If the \"range\" object is a non-editable area, add a line at the top of the editor and update the \"range\" object.\r\n * Returns a new \"range\" or argument \"range\".\r\n * @param {Object} range core.getRange()\r\n * @param {Element|null} container If there is \"container\" argument, it creates a line in front of the container.\r\n * @returns {Object} range\r\n */\r\n getRange_addLine: function (range, container) {\r\n if (this._selectionVoid(range)) {\r\n const wysiwyg = context.element.wysiwyg;\r\n const op = util.createElement(options.defaultTag);\r\n op.innerHTML = '
      ';\r\n wysiwyg.insertBefore(op, container && container !== wysiwyg ? container.nextElementSibling : wysiwyg.firstElementChild);\r\n this.setRange(op.firstElementChild, 0, op.firstElementChild, 1);\r\n range = this._variable._range;\r\n }\r\n return range;\r\n },\r\n\r\n /**\r\n * @description Get window selection obejct\r\n * @returns {Object}\r\n */\r\n getSelection: function () {\r\n const selection = this._shadowRoot && this._shadowRoot.getSelection ? this._shadowRoot.getSelection() : this._ww.getSelection();\r\n if (!this._variable._range && !context.element.wysiwyg.contains(selection.focusNode)) {\r\n selection.removeAllRanges();\r\n selection.addRange(this._createDefaultRange());\r\n }\r\n return selection;\r\n },\r\n\r\n /**\r\n * @description Get current select node\r\n * @returns {Node}\r\n */\r\n getSelectionNode: function () {\r\n if (!context.element.wysiwyg.contains(this._variable._selectionNode)) this._editorRange();\r\n if (!this._variable._selectionNode) {\r\n const selectionNode = util.getChildElement(context.element.wysiwyg.firstChild, function (current) { return current.childNodes.length === 0 || current.nodeType === 3; }, false);\r\n if (!selectionNode) {\r\n this._editorRange();\r\n } else {\r\n this._variable._selectionNode = selectionNode;\r\n return selectionNode;\r\n }\r\n }\r\n return this._variable._selectionNode;\r\n },\r\n\r\n /**\r\n * @description Saving the range object and the currently selected node of editor\r\n * @private\r\n */\r\n _editorRange: function () {\r\n const activeEl = this._wd.activeElement;\r\n if (util.isInputElement(activeEl)) {\r\n this._variable._selectionNode = activeEl;\r\n return activeEl;\r\n }\r\n\r\n const selection = this.getSelection();\r\n if (!selection) return null;\r\n let range = null;\r\n\r\n if (selection.rangeCount > 0) {\r\n range = selection.getRangeAt(0);\r\n } else {\r\n range = this._createDefaultRange();\r\n }\r\n\r\n this._rangeInfo(range, selection);\r\n },\r\n\r\n /**\r\n * @description Set \"range\" and \"selection\" info.\r\n * @param {Object} range range object.\r\n * @param {Object} selection selection object.\r\n */\r\n _rangeInfo: function (range, selection) {\r\n let selectionNode = null;\r\n this._variable._range = range;\r\n\r\n if (range.collapsed) {\r\n if (util.isWysiwygDiv(range.commonAncestorContainer)) selectionNode = range.commonAncestorContainer.children[range.startOffset] || range.commonAncestorContainer;\r\n else selectionNode = range.commonAncestorContainer;\r\n } else {\r\n selectionNode = selection.extentNode || selection.anchorNode;\r\n }\r\n\r\n this._variable._selectionNode = selectionNode;\r\n },\r\n\r\n /**\r\n * @description Return the range object of editor's first child node\r\n * @returns {Object}\r\n * @private\r\n */\r\n _createDefaultRange: function () {\r\n const wysiwyg = context.element.wysiwyg;\r\n const range = this._wd.createRange();\r\n\r\n let firstFormat = wysiwyg.firstElementChild;\r\n let focusEl = null;\r\n if (!firstFormat) {\r\n firstFormat = util.createElement(options.defaultTag);\r\n focusEl = util.createElement('BR');\r\n firstFormat.appendChild(focusEl);\r\n wysiwyg.appendChild(firstFormat);\r\n } else {\r\n focusEl = firstFormat.firstChild;\r\n if (!focusEl) {\r\n focusEl = util.createElement('BR');\r\n firstFormat.appendChild(focusEl);\r\n }\r\n }\r\n\r\n range.setStart(focusEl, 0);\r\n range.setEnd(focusEl, 0);\r\n\r\n return range;\r\n },\r\n\r\n /**\r\n * @description Returns true if there is no valid \"selection\".\r\n * @param {Object} range core.getRange()\r\n * @returns {Object} range\r\n * @private\r\n */\r\n _selectionVoid: function (range) {\r\n const comm = range.commonAncestorContainer;\r\n return (util.isWysiwygDiv(range.startContainer) && util.isWysiwygDiv(range.endContainer)) || /FIGURE/i.test(comm.nodeName) || this._fileManager.regExp.test(comm.nodeName) || util.isMediaComponent(comm);\r\n },\r\n\r\n /**\r\n * @description Reset range object to text node selected status.\r\n * @returns {Boolean} Returns false if there is no valid selection.\r\n * @private\r\n */\r\n _resetRangeToTextNode: function () {\r\n const range = this.getRange();\r\n if (this._selectionVoid(range)) return false;\r\n\r\n const collapsed = range.collapsed;\r\n let startCon = range.startContainer;\r\n let startOff = range.startOffset;\r\n let endCon = range.endContainer;\r\n let endOff = range.endOffset;\r\n let tempCon, tempOffset, tempChild;\r\n\r\n if (util.isFormatElement(startCon)) {\r\n if (!startCon.childNodes[startOff]) {\r\n startCon = startCon.lastChild || startCon;\r\n startOff = startCon.textContent.length;\r\n } else {\r\n startCon = startCon.childNodes[startOff] || startCon;\r\n startOff = 0;\r\n }\r\n while (startCon && startCon.nodeType === 1 && startCon.firstChild) {\r\n startCon = startCon.firstChild || startCon;\r\n startOff = 0;\r\n }\r\n }\r\n if (util.isFormatElement(endCon)) {\r\n endCon = endCon.childNodes[endOff] || endCon.lastChild || endCon;\r\n while (endCon && endCon.nodeType === 1 && endCon.lastChild) {\r\n endCon = endCon.lastChild;\r\n }\r\n endOff = collapsed ? 0 : endCon.textContent.length;\r\n }\r\n\r\n // startContainer\r\n tempCon = util.isWysiwygDiv(startCon) ? context.element.wysiwyg.firstChild : startCon;\r\n tempOffset = startOff;\r\n\r\n if (util.isBreak(tempCon) || (tempCon.nodeType === 1 && tempCon.childNodes.length > 0)) {\r\n const onlyBreak = util.isBreak(tempCon);\r\n if (!onlyBreak) {\r\n while (tempCon && !util.isBreak(tempCon) && tempCon.nodeType === 1) {\r\n tempCon = tempCon.childNodes[tempOffset] || tempCon.nextElementSibling || tempCon.nextSibling;\r\n tempOffset = 0;\r\n }\r\n\r\n let format = util.getFormatElement(tempCon, null);\r\n if (format === util.getRangeFormatElement(format, null)) {\r\n format = util.createElement(util.getParentElement(tempCon, util.isCell) ? 'DIV' : options.defaultTag);\r\n tempCon.parentNode.insertBefore(format, tempCon);\r\n format.appendChild(tempCon);\r\n }\r\n }\r\n\r\n if (util.isBreak(tempCon)) {\r\n const emptyText = util.createTextNode(util.zeroWidthSpace);\r\n tempCon.parentNode.insertBefore(emptyText, tempCon);\r\n tempCon = emptyText;\r\n if (onlyBreak) {\r\n if (startCon === endCon) {\r\n endCon = tempCon;\r\n endOff = 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // set startContainer\r\n startCon = tempCon;\r\n startOff = tempOffset;\r\n\r\n // endContainer\r\n tempCon = util.isWysiwygDiv(endCon) ? context.element.wysiwyg.lastChild : endCon;\r\n tempOffset = endOff;\r\n\r\n if (util.isBreak(tempCon) || (tempCon.nodeType === 1 && tempCon.childNodes.length > 0)) {\r\n const onlyBreak = util.isBreak(tempCon);\r\n if (!onlyBreak) {\r\n while (tempCon && !util.isBreak(tempCon) && tempCon.nodeType === 1) {\r\n tempChild = tempCon.childNodes;\r\n if (tempChild.length === 0) break;\r\n tempCon = tempChild[tempOffset > 0 ? tempOffset - 1 : tempOffset] || !/FIGURE/i.test(tempChild[0].nodeName) ? tempChild[0] : (tempCon.previousElementSibling || tempCon.previousSibling || startCon);\r\n tempOffset = tempOffset > 0 ? tempCon.textContent.length : tempOffset;\r\n }\r\n\r\n let format = util.getFormatElement(tempCon, null);\r\n if (format === util.getRangeFormatElement(format, null)) {\r\n format = util.createElement(util.isCell(format) ? 'DIV' : options.defaultTag);\r\n tempCon.parentNode.insertBefore(format, tempCon);\r\n format.appendChild(tempCon);\r\n }\r\n }\r\n\r\n if (util.isBreak(tempCon)) {\r\n const emptyText = util.createTextNode(util.zeroWidthSpace);\r\n tempCon.parentNode.insertBefore(emptyText, tempCon);\r\n tempCon = emptyText;\r\n tempOffset = 1;\r\n if (onlyBreak && !tempCon.previousSibling) {\r\n util.removeItem(endCon);\r\n }\r\n }\r\n }\r\n\r\n // set endContainer\r\n endCon = tempCon;\r\n endOff = tempOffset;\r\n\r\n // set Range\r\n this.setRange(startCon, startOff, endCon, endOff);\r\n return true;\r\n },\r\n\r\n /**\r\n * @description Returns a \"formatElement\"(util.isFormatElement) array from the currently selected range.\r\n * @param {Function|null} validation The validation function. (Replaces the default validation function-util.isFormatElement(current))\r\n * @returns {Array}\r\n */\r\n getSelectedElements: function (validation) {\r\n if (!this._resetRangeToTextNode()) return [];\r\n let range = this.getRange();\r\n\r\n if (util.isWysiwygDiv(range.startContainer)) {\r\n const children = context.element.wysiwyg.children;\r\n if (children.length === 0) return [];\r\n this.setRange(children[0], 0, children[children.length - 1], children[children.length - 1].textContent.trim().length);\r\n range = this.getRange();\r\n }\r\n\r\n const startCon = range.startContainer;\r\n const endCon = range.endContainer;\r\n const commonCon = range.commonAncestorContainer;\r\n\r\n // get line nodes\r\n const lineNodes = util.getListChildren(commonCon, function (current) {\r\n return validation ? validation(current) : util.isFormatElement(current);\r\n });\r\n\r\n if (!util.isWysiwygDiv(commonCon) && !util.isRangeFormatElement(commonCon)) lineNodes.unshift(util.getFormatElement(commonCon, null));\r\n if (startCon === endCon || lineNodes.length === 1) return lineNodes;\r\n\r\n let startLine = util.getFormatElement(startCon, null);\r\n let endLine = util.getFormatElement(endCon, null);\r\n let startIdx = null;\r\n let endIdx = null;\r\n\r\n const onlyTable = function (current) {\r\n return util.isTable(current) ? /^TABLE$/i.test(current.nodeName) : true;\r\n };\r\n\r\n let startRangeEl = util.getRangeFormatElement(startLine, onlyTable);\r\n let endRangeEl = util.getRangeFormatElement(endLine, onlyTable);\r\n if (util.isTable(startRangeEl) && util.isListCell(startRangeEl.parentNode)) startRangeEl = startRangeEl.parentNode;\r\n if (util.isTable(endRangeEl) && util.isListCell(endRangeEl.parentNode)) endRangeEl = endRangeEl.parentNode;\r\n\r\n const sameRange = startRangeEl === endRangeEl;\r\n for (let i = 0, len = lineNodes.length, line; i < len; i++) {\r\n line = lineNodes[i];\r\n\r\n if (startLine === line || (!sameRange && line === startRangeEl)) {\r\n startIdx = i;\r\n continue;\r\n }\r\n\r\n if (endLine === line || (!sameRange && line === endRangeEl)) {\r\n endIdx = i;\r\n break;\r\n }\r\n }\r\n\r\n if (startIdx === null) startIdx = 0;\r\n if (endIdx === null) endIdx = lineNodes.length - 1;\r\n\r\n return lineNodes.slice(startIdx, endIdx + 1);\r\n },\r\n\r\n /**\r\n * @description Get format elements and components from the selected area. (P, DIV, H[1-6], OL, UL, TABLE..)\r\n * If some of the component are included in the selection, get the entire that component.\r\n * @param {Boolean} removeDuplicate If true, if there is a parent and child tag among the selected elements, the child tag is excluded.\r\n * @returns {Array}\r\n */\r\n getSelectedElementsAndComponents: function (removeDuplicate) {\r\n const commonCon = this.getRange().commonAncestorContainer;\r\n const myComponent = util.getParentElement(commonCon, util.isComponent);\r\n const selectedLines = util.isTable(commonCon) ?\r\n this.getSelectedElements(null) :\r\n this.getSelectedElements(function (current) {\r\n const component = this.getParentElement(current, this.isComponent);\r\n return (this.isFormatElement(current) && (!component || component === myComponent)) || (this.isComponent(current) && !this.getFormatElement(current));\r\n }.bind(util));\r\n\r\n if (removeDuplicate) {\r\n for (let i = 0, len = selectedLines.length; i < len; i++) {\r\n for (let j = i - 1; j >= 0; j--) {\r\n if (selectedLines[j].contains(selectedLines[i])) {\r\n selectedLines.splice(i, 1);\r\n i--; len--;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return selectedLines;\r\n },\r\n\r\n /**\r\n * @description Determine if this offset is the edge offset of container\r\n * @param {Node} container The node of the selection object. (range.startContainer..)\r\n * @param {Number} offset The offset of the selection object. (core.getRange().startOffset...)\r\n * @param {String|undefined} dir Select check point - Both edge, Front edge or End edge. (\"start\": Front edge, \"end\": End edge, undefined: Both edge)\r\n * @returns {Boolean}\r\n */\r\n isEdgePoint: function (container, offset, dir) {\r\n if (container.nodeType === 1 && !container.textContent.length) return true;\r\n return (dir !== 'end' && offset === 0) || ((!dir || dir !== 'start') && !container.nodeValue && offset === 1) || ((!dir || dir === 'end') && !!container.nodeValue && offset === container.nodeValue.length);\r\n },\r\n\r\n /**\r\n * @description Check if the container and offset values are the edges of the format tag\r\n * @param {Node} container The node of the selection object. (range.startContainer..)\r\n * @param {Number} offset The offset of the selection object. (core.getRange().startOffset...)\r\n * @param {String} dir Select check point - \"start\": Front edge, \"end\": End edge, undefined: Both edge.\r\n * @returns {Array|null}\r\n * @private\r\n */\r\n _isEdgeFormat: function (node, offset, dir) {\r\n if (!this.isEdgePoint(node, offset, dir)) return false;\r\n\r\n const result = [];\r\n dir = dir === 'start' ? 'previousSibling' : 'nextSibling';\r\n while (node && !util.isFormatElement(node) && !util.isWysiwygDiv(node)) {\r\n if (!node[dir] || (util.isBreak(node[dir]) && !node[dir][dir])) {\r\n if (node.nodeType === 1) result.push(node.cloneNode(false));\r\n node = node.parentNode;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n /**\r\n * @description Show loading box\r\n */\r\n showLoading: function () {\r\n context.element.loading.style.display = 'block';\r\n },\r\n\r\n /**\r\n * @description Close loading box\r\n */\r\n closeLoading: function () {\r\n context.element.loading.style.display = 'none';\r\n },\r\n\r\n /**\r\n * @description Append format element to sibling node of argument element.\r\n * If the \"formatNodeName\" argument value is present, the tag of that argument value is inserted,\r\n * If not, the currently selected format tag is inserted.\r\n * @param {Element} element Insert as siblings of that element\r\n * @param {String|Element|null} formatNode Node name or node obejct to be inserted\r\n * @returns {Element}\r\n */\r\n appendFormatTag: function (element, formatNode) {\r\n if (!element || !element.parentNode) return null;\r\n\r\n const currentFormatEl = util.getFormatElement(this.getSelectionNode(), null);\r\n let oFormat = null;\r\n if (!util.isFormatElement(element) && util.isFreeFormatElement(currentFormatEl || element.parentNode)) {\r\n oFormat = util.createElement('BR');\r\n } else {\r\n const oFormatName = formatNode ? (typeof formatNode === 'string' ? formatNode : formatNode.nodeName) : (util.isFormatElement(currentFormatEl) && !util.isRangeFormatElement(currentFormatEl) && !util.isFreeFormatElement(currentFormatEl)) ? currentFormatEl.nodeName : options.defaultTag;\r\n oFormat = util.createElement(oFormatName);\r\n oFormat.innerHTML = '
      ';\r\n if ((formatNode && typeof formatNode !== 'string') || (!formatNode && util.isFormatElement(currentFormatEl))) {\r\n util.copyTagAttributes(oFormat, formatNode || currentFormatEl, ['id']);\r\n }\r\n }\r\n\r\n if (util.isCell(element)) element.insertBefore(oFormat, element.nextElementSibling);\r\n else element.parentNode.insertBefore(oFormat, element.nextElementSibling);\r\n\r\n return oFormat;\r\n },\r\n\r\n /**\r\n * @description The method to insert a element and return. (used elements : table, hr, image, video)\r\n * If \"element\" is \"HR\", insert and return the new line.\r\n * @param {Element} element Element to be inserted\r\n * @param {Boolean} notHistoryPush When true, it does not update the history stack and the selection object and return EdgeNodes (util.getEdgeChildNodes)\r\n * @param {Boolean} checkCharCount If true, if \"options.maxCharCount\" is exceeded when \"element\" is added, null is returned without addition.\r\n * @param {Boolean} notSelect If true, Do not automatically select the inserted component.\r\n * @returns {Element}\r\n */\r\n insertComponent: function (element, notHistoryPush, checkCharCount, notSelect) {\r\n if (this.isReadOnly || (checkCharCount && !this.checkCharCount(element, null))) {\r\n return null;\r\n }\r\n\r\n const r = this.removeNode();\r\n this.getRange_addLine(this.getRange(), r.container);\r\n let oNode = null;\r\n let selectionNode = this.getSelectionNode();\r\n let formatEl = util.getFormatElement(selectionNode, null);\r\n\r\n if (util.isListCell(formatEl)) {\r\n this.insertNode(element, selectionNode === formatEl ? null : r.container.nextSibling, false);\r\n if (!element.nextSibling) element.parentNode.appendChild(util.createElement('BR'));\r\n } else {\r\n if (this.getRange().collapsed && (r.container.nodeType === 3 || util.isBreak(r.container))) {\r\n const depthFormat = util.getParentElement(r.container, function (current) { return this.isRangeFormatElement(current); }.bind(util));\r\n oNode = util.splitElement(r.container, r.offset, !depthFormat ? 0 : util.getElementDepth(depthFormat) + 1);\r\n if (oNode) formatEl = oNode.previousSibling;\r\n }\r\n this.insertNode(element, util.isRangeFormatElement(formatEl) ? null : formatEl, false);\r\n if (formatEl && util.onlyZeroWidthSpace(formatEl)) util.removeItem(formatEl);\r\n }\r\n\r\n if (!notSelect) {\r\n this.setRange(element, 0, element, 0);\r\n\r\n const fileComponentInfo = this.getFileComponent(element);\r\n if (fileComponentInfo) {\r\n this.selectComponent(fileComponentInfo.target, fileComponentInfo.pluginName);\r\n } else if (oNode) {\r\n oNode = util.getEdgeChildNodes(oNode, null).sc || oNode;\r\n this.setRange(oNode, 0, oNode, 0);\r\n }\r\n }\r\n\r\n // history stack\r\n if (!notHistoryPush) this.history.push(1);\r\n\r\n return oNode || element;\r\n },\r\n\r\n /**\r\n * @description Gets the file component and that plugin name\r\n * return: {target, component, pluginName} | null\r\n * @param {Element} element Target element (figure tag, component div, file tag)\r\n * @returns {Object|null}\r\n */\r\n getFileComponent: function (element) {\r\n if (!this._fileManager.queryString || !element) return null;\r\n\r\n let target, pluginName;\r\n if (/^FIGURE$/i.test(element.nodeName) || /se-component/.test(element.className)) {\r\n target = element.querySelector(this._fileManager.queryString);\r\n }\r\n if (!target && element.nodeName && this._fileManager.regExp.test(element.nodeName)) {\r\n target = element;\r\n }\r\n\r\n if (target) {\r\n pluginName = this._fileManager.pluginMap[target.nodeName.toLowerCase()];\r\n if (pluginName) {\r\n return {\r\n target: target,\r\n component: util.getParentElement(target, util.isComponent),\r\n pluginName: pluginName\r\n };\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * @description The component(image, video) is selected and the resizing module is called.\r\n * @param {Element} element Element tag (img, iframe, video)\r\n * @param {String} pluginName Plugin name (image, video)\r\n */\r\n selectComponent: function (element, pluginName) {\r\n if (util.isUneditableComponent(util.getParentElement(element, util.isComponent)) || util.isUneditableComponent(element)) return false;\r\n if (!this.hasFocus) this.focus();\r\n const plugin = this.plugins[pluginName];\r\n if (!plugin) return;\r\n _w.setTimeout(function () {\r\n if (typeof plugin.select === 'function') this.callPlugin(pluginName, plugin.select.bind(this, element), null);\r\n this._setComponentLineBreaker(element);\r\n }.bind(this));\r\n },\r\n\r\n /**\r\n * @description Set line breaker of component\r\n * @param {Element} element Element tag (img, iframe, video)\r\n * @private\r\n */\r\n _setComponentLineBreaker: function (element) {\r\n // line breaker\r\n this._lineBreaker.style.display = 'none';\r\n const container = util.getParentElement(element, util.isComponent);\r\n const t_style = context.element.lineBreaker_t.style;\r\n const b_style = context.element.lineBreaker_b.style;\r\n const target = this.context.resizing.resizeContainer.style.display === 'block' ? this.context.resizing.resizeContainer : element;\r\n\r\n const isList = util.isListCell(container.parentNode);\r\n let componentTop, wScroll, w;\r\n // top\r\n if (isList ? !container.previousSibling : !util.isFormatElement(container.previousElementSibling)) {\r\n this._variable._lineBreakComp = container;\r\n wScroll = context.element.wysiwyg.scrollTop;\r\n componentTop = util.getOffset(element, context.element.wysiwygFrame).top + wScroll;\r\n w = (target.offsetWidth / 2) / 2;\r\n\r\n t_style.top = (componentTop - wScroll - 12) + 'px';\r\n t_style.left = (util.getOffset(target).left + w) + 'px';\r\n t_style.display = 'block';\r\n } else {\r\n t_style.display = 'none';\r\n }\r\n // bottom\r\n if (isList ? !container.nextSibling : !util.isFormatElement(container.nextElementSibling)) {\r\n if (!componentTop) {\r\n this._variable._lineBreakComp = container;\r\n wScroll = context.element.wysiwyg.scrollTop;\r\n componentTop = util.getOffset(element, context.element.wysiwygFrame).top + wScroll;\r\n w = (target.offsetWidth / 2) / 2;\r\n }\r\n\r\n b_style.top = (componentTop + target.offsetHeight - wScroll - 12) + 'px';\r\n b_style.left = (util.getOffset(target).left + target.offsetWidth - w - 24) + 'px';\r\n b_style.display = 'block';\r\n } else {\r\n b_style.display = 'none';\r\n }\r\n },\r\n\r\n _checkDuplicateNode: function (oNode, parentNode) {\r\n (function recursionFunc(current) {\r\n core._dupleCheck(current, parentNode);\r\n const childNodes = current.childNodes;\r\n for (let i = 0, len = childNodes.length; i < len; i++) {\r\n recursionFunc(childNodes[i]);\r\n }\r\n })(oNode);\r\n },\r\n\r\n _dupleCheck: function (oNode, parentNode) {\r\n if (!util.isTextStyleElement(oNode)) return;\r\n\r\n const oStyles = (oNode.style.cssText.match(/[^;]+;/g) || []).map(function(v){ return v.trim(); });\r\n const nodeName = oNode.nodeName;\r\n if (/^span$/i.test(nodeName) && oStyles.length === 0) return oNode;\r\n\r\n let duple = false;\r\n (function recursionFunc(ancestor) {\r\n if (util.isWysiwygDiv(ancestor) || !util.isTextStyleElement(ancestor)) return;\r\n if (ancestor.nodeName === nodeName) {\r\n duple = true;\r\n const styles = ancestor.style.cssText.match(/[^;]+;/g) || [];\r\n for (let i = 0, len = styles.length, j; i < len; i++) {\r\n if ((j = oStyles.indexOf(styles[i].trim())) > -1) {\r\n oStyles.splice(j, 1);\r\n }\r\n }\r\n for (let i = 0, len = ancestor.classList.length; i < len; i++) {\r\n oNode.classList.remove(ancestor.classList[i]);\r\n }\r\n }\r\n\r\n recursionFunc(ancestor.parentElement);\r\n })(parentNode);\r\n\r\n if (duple) {\r\n if (!(oNode.style.cssText = oStyles.join(' '))) {\r\n oNode.setAttribute('style', '');\r\n oNode.removeAttribute('style');\r\n }\r\n if (!oNode.attributes.length) {\r\n oNode.setAttribute('data-se-duple', 'true');\r\n }\r\n }\r\n\r\n return oNode;\r\n },\r\n\r\n /**\r\n * @description Delete selected node and insert argument value node and return.\r\n * If the \"afterNode\" exists, it is inserted after the \"afterNode\"\r\n * Inserting a text node merges with both text nodes on both sides and returns a new \"{ container, startOffset, endOffset }\".\r\n * @param {Node} oNode Element to be inserted\r\n * @param {Node|null} afterNode If the node exists, it is inserted after the node\r\n * @param {Boolean} checkCharCount If true, if \"options.maxCharCount\" is exceeded when \"element\" is added, null is returned without addition.\r\n * @returns {Object|Node|null}\r\n */\r\n insertNode: function (oNode, afterNode, checkCharCount) {\r\n if (this.isReadOnly || (checkCharCount && !this.checkCharCount(oNode, null))) {\r\n return null;\r\n }\r\n\r\n let fNode = null;\r\n let range = this.getRange();\r\n let line = util.isListCell(range.commonAncestorContainer) ? range.commonAncestorContainer : util.getFormatElement(this.getSelectionNode(), null);\r\n let insertListCell = util.isListCell(line) && (util.isListCell(oNode) || util.isList(oNode));\r\n\r\n let parentNode, originAfter, tempAfterNode, tempParentNode = null;\r\n const freeFormat = util.isFreeFormatElement(line);\r\n const isFormats = (!freeFormat && (util.isFormatElement(oNode) || util.isRangeFormatElement(oNode))) || util.isComponent(oNode);\r\n\r\n if (insertListCell) {\r\n tempAfterNode = afterNode || util.isList(oNode) ? line.lastChild : line.nextElementSibling;\r\n tempParentNode = util.isList(oNode) ? line : (tempAfterNode || line).parentNode;\r\n }\r\n\r\n if (!afterNode && (isFormats || util.isComponent(oNode) || util.isMedia(oNode))) {\r\n const isEdge = this.isEdgePoint(range.endContainer, range.endOffset, 'end');\r\n const r = this.removeNode();\r\n const container = r.container;\r\n const prevContainer = (container === r.prevContainer && range.collapsed) ? null : r.prevContainer;\r\n\r\n if (insertListCell && prevContainer) {\r\n tempParentNode = prevContainer.nodeType === 3 ? prevContainer.parentNode : prevContainer;\r\n if (tempParentNode.contains(container)) {\r\n let sameParent = true;\r\n tempAfterNode = container;\r\n while (tempAfterNode.parentNode && tempAfterNode.parentNode !== tempParentNode) {\r\n tempAfterNode = tempAfterNode.parentNode;\r\n sameParent = false;\r\n }\r\n if (sameParent && container === prevContainer) tempAfterNode = tempAfterNode.nextSibling;\r\n } else {\r\n tempAfterNode = null;\r\n }\r\n } else if (insertListCell && util.isListCell(container) && !line.parentElement) {\r\n line = util.createElement('LI');\r\n tempParentNode.appendChild(line);\r\n container.appendChild(tempParentNode);\r\n tempAfterNode = null;\r\n } else if (container.nodeType === 3 || util.isBreak(container) || insertListCell) {\r\n const depthFormat = util.getParentElement(container, function (current) { return this.isRangeFormatElement(current) || this.isListCell(current); }.bind(util));\r\n afterNode = util.splitElement(container, r.offset, !depthFormat ? 0 : util.getElementDepth(depthFormat) + 1);\r\n if (!afterNode) {\r\n tempAfterNode = afterNode = line;\r\n } else if (insertListCell) {\r\n if (line.contains(container)) {\r\n const subList = util.isList(line.lastElementChild);\r\n let newCell = null;\r\n if (!isEdge) {\r\n newCell = line.cloneNode(false);\r\n newCell.appendChild(afterNode.textContent.trim() ? afterNode : util.createTextNode(util.zeroWidthSpace));\r\n }\r\n if (subList) {\r\n if (!newCell) {\r\n newCell = line.cloneNode(false);\r\n newCell.appendChild(util.createTextNode(util.zeroWidthSpace));\r\n }\r\n newCell.appendChild(line.lastElementChild);\r\n }\r\n if (newCell) {\r\n line.parentNode.insertBefore(newCell, line.nextElementSibling);\r\n tempAfterNode = afterNode = newCell;\r\n }\r\n }\r\n } else {\r\n afterNode = afterNode.previousSibling;\r\n }\r\n }\r\n }\r\n\r\n range = (!afterNode && !isFormats) ? this.getRange_addLine(this.getRange(), null) : this.getRange();\r\n const commonCon = range.commonAncestorContainer;\r\n const startOff = range.startOffset;\r\n const endOff = range.endOffset;\r\n const formatRange = range.startContainer === commonCon && util.isFormatElement(commonCon);\r\n const startCon = formatRange ? (commonCon.childNodes[startOff] || commonCon.childNodes[0] || range.startContainer) : range.startContainer;\r\n const endCon = formatRange ? (commonCon.childNodes[endOff] || commonCon.childNodes[commonCon.childNodes.length - 1] || range.endContainer) : range.endContainer;\r\n\r\n if (!insertListCell) {\r\n if (!afterNode) {\r\n parentNode = startCon;\r\n if (startCon.nodeType === 3) {\r\n parentNode = startCon.parentNode;\r\n }\r\n\r\n /** No Select range node */\r\n if (range.collapsed) {\r\n if (commonCon.nodeType === 3) {\r\n if (commonCon.textContent.length > endOff) afterNode = commonCon.splitText(endOff);\r\n else afterNode = commonCon.nextSibling;\r\n } else {\r\n if (!util.isBreak(parentNode)) {\r\n let c = parentNode.childNodes[startOff];\r\n const focusNode = (c && c.nodeType === 3 && util.onlyZeroWidthSpace(c) && util.isBreak(c.nextSibling)) ? c.nextSibling : c;\r\n if (focusNode) {\r\n if (!focusNode.nextSibling && util.isBreak(focusNode)) {\r\n parentNode.removeChild(focusNode);\r\n afterNode = null;\r\n } else {\r\n afterNode = (util.isBreak(focusNode) && !util.isBreak(oNode)) ? focusNode : focusNode.nextSibling;\r\n }\r\n } else {\r\n afterNode = null;\r\n }\r\n } else {\r\n afterNode = parentNode;\r\n parentNode = parentNode.parentNode;\r\n }\r\n }\r\n } else { /** Select range nodes */\r\n const isSameContainer = startCon === endCon;\r\n if (isSameContainer) {\r\n if (this.isEdgePoint(endCon, endOff)) afterNode = endCon.nextSibling;\r\n else afterNode = endCon.splitText(endOff);\r\n\r\n let removeNode = startCon;\r\n if (!this.isEdgePoint(startCon, startOff)) removeNode = startCon.splitText(startOff);\r\n\r\n parentNode.removeChild(removeNode);\r\n if (parentNode.childNodes.length === 0 && isFormats) {\r\n parentNode.innerHTML = '
      ';\r\n }\r\n }\r\n else {\r\n const removedTag = this.removeNode();\r\n const container = removedTag.container;\r\n const prevContainer = removedTag.prevContainer;\r\n\r\n if (container && container.childNodes.length === 0 && isFormats) {\r\n if (util.isFormatElement(container)) {\r\n container.innerHTML = '
      ';\r\n } else if (util.isRangeFormatElement(container)) {\r\n container.innerHTML = '<' + options.defaultTag + '>
      ';\r\n }\r\n }\r\n\r\n if (util.isListCell(container) && oNode.nodeType === 3) {\r\n parentNode = container;\r\n afterNode = null;\r\n } else if (!isFormats && prevContainer) {\r\n parentNode = prevContainer.nodeType === 3 ? prevContainer.parentNode : prevContainer;\r\n if (parentNode.contains(container)) {\r\n let sameParent = true;\r\n afterNode = container;\r\n while (afterNode.parentNode && afterNode.parentNode !== parentNode) {\r\n afterNode = afterNode.parentNode;\r\n sameParent = false;\r\n }\r\n if (sameParent && container === prevContainer) afterNode = afterNode.nextSibling;\r\n } else {\r\n afterNode = null;\r\n }\r\n } else if (util.isWysiwygDiv(container) && !util.isFormatElement(oNode)) {\r\n parentNode = container.appendChild(util.createElement(options.defaultTag));\r\n afterNode = null;\r\n } else {\r\n afterNode = isFormats ? endCon : container === prevContainer ? container.nextSibling : container;\r\n parentNode = (!afterNode || !afterNode.parentNode) ? commonCon : afterNode.parentNode;\r\n }\r\n\r\n while (afterNode && !util.isFormatElement(afterNode) && afterNode.parentNode !== commonCon) {\r\n afterNode = afterNode.parentNode;\r\n }\r\n }\r\n }\r\n } else { // has afterNode\r\n parentNode = afterNode.parentNode;\r\n afterNode = afterNode.nextSibling;\r\n originAfter = true;\r\n }\r\n }\r\n\r\n try {\r\n // set node\r\n if (!insertListCell) {\r\n if (util.isWysiwygDiv(afterNode) || parentNode === context.element.wysiwyg.parentNode) {\r\n parentNode = context.element.wysiwyg;\r\n afterNode = null;\r\n }\r\n\r\n if (util.isFormatElement(oNode) || util.isRangeFormatElement(oNode) || (!util.isListCell(parentNode) && util.isComponent(oNode))) {\r\n const oldParent = parentNode;\r\n if (util.isList(afterNode)) {\r\n parentNode = afterNode;\r\n afterNode = null;\r\n } else if (util.isListCell(afterNode)) {\r\n parentNode = afterNode.previousElementSibling || afterNode;\r\n } else if (!originAfter && !afterNode) {\r\n const r = this.removeNode();\r\n const container = r.container.nodeType === 3 ? (util.isListCell(util.getFormatElement(r.container, null)) ? r.container : (util.getFormatElement(r.container, null) || r.container.parentNode)) : r.container;\r\n const rangeCon = util.isWysiwygDiv(container) || util.isRangeFormatElement(container);\r\n parentNode = rangeCon ? container : container.parentNode;\r\n afterNode = rangeCon ? null : container.nextSibling;\r\n }\r\n\r\n if (oldParent.childNodes.length === 0 && parentNode !== oldParent) util.removeItem(oldParent);\r\n }\r\n\r\n if (isFormats && !freeFormat && !util.isRangeFormatElement(parentNode) && !util.isListCell(parentNode) && !util.isWysiwygDiv(parentNode)) {\r\n afterNode = parentNode.nextElementSibling;\r\n parentNode = parentNode.parentNode;\r\n }\r\n\r\n if (util.isWysiwygDiv(parentNode) && (oNode.nodeType === 3 || util.isBreak(oNode))) {\r\n const fomatNode = util.createElement(options.defaultTag);\r\n fomatNode.appendChild(oNode);\r\n fNode = oNode;\r\n oNode = fomatNode;\r\n }\r\n }\r\n\r\n // insert--\r\n if (insertListCell) {\r\n if (!tempParentNode.parentNode) {\r\n parentNode = context.element.wysiwyg;\r\n afterNode = null;\r\n } else {\r\n parentNode = tempParentNode;\r\n afterNode = tempAfterNode;\r\n }\r\n } else {\r\n afterNode = parentNode === afterNode ? parentNode.lastChild : afterNode;\r\n }\r\n\r\n if (util.isListCell(oNode) && !util.isList(parentNode)) {\r\n if (util.isListCell(parentNode)) {\r\n afterNode = parentNode.nextElementSibling;\r\n parentNode = parentNode.parentNode;\r\n } else {\r\n const ul = util.createElement('ol');\r\n parentNode.insertBefore(ul, afterNode);\r\n parentNode = ul;\r\n afterNode = null;\r\n }\r\n insertListCell = true;\r\n }\r\n\r\n this._checkDuplicateNode(oNode, parentNode);\r\n parentNode.insertBefore(oNode, afterNode);\r\n\r\n if (insertListCell) {\r\n if (util.onlyZeroWidthSpace(line.textContent.trim())) {\r\n util.removeItem(line);\r\n oNode = oNode.lastChild;\r\n } else {\r\n const chList = util.getArrayItem(line.children, util.isList);\r\n if (chList) {\r\n if (oNode !== chList) {\r\n oNode.appendChild(chList);\r\n oNode = chList.previousSibling;\r\n } else {\r\n parentNode.appendChild(oNode);\r\n oNode = parentNode;\r\n }\r\n\r\n if (util.onlyZeroWidthSpace(line.textContent.trim())) {\r\n util.removeItem(line);\r\n }\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n parentNode.appendChild(oNode);\r\n console.warn('[SUNEDITOR.insertNode.warn] ' + error);\r\n } finally {\r\n if (fNode) oNode = fNode;\r\n\r\n const dupleNodes = parentNode.querySelectorAll('[data-se-duple]');\r\n if (dupleNodes.length > 0) {\r\n for (let i = 0, len = dupleNodes.length, d, c, ch, parent; i < len; i++) {\r\n d = dupleNodes[i];\r\n ch = d.childNodes;\r\n parent = d.parentNode;\r\n\r\n while (ch[0]) {\r\n c = ch[0];\r\n parent.insertBefore(c, d);\r\n }\r\n\r\n if (d === oNode) oNode = c;\r\n util.removeItem(d);\r\n }\r\n }\r\n\r\n if ((util.isFormatElement(oNode) || util.isComponent(oNode)) && startCon === endCon) {\r\n const cItem = util.getFormatElement(commonCon, null);\r\n if (cItem && cItem.nodeType === 1 && util.isEmptyLine(cItem)) {\r\n util.removeItem(cItem);\r\n }\r\n }\r\n\r\n if (freeFormat && (util.isFormatElement(oNode) || util.isRangeFormatElement(oNode))) {\r\n oNode = this._setIntoFreeFormat(oNode);\r\n }\r\n\r\n if (!util.isComponent(oNode)) {\r\n let offset = 1;\r\n if (oNode.nodeType === 3) {\r\n offset = oNode.textContent.length;\r\n this.setRange(oNode, offset, oNode, offset);\r\n } else if (!util.isBreak(oNode) && !util.isListCell(oNode) && util.isFormatElement(parentNode)) {\r\n let zeroWidth = null;\r\n if (!oNode.previousSibling || util.isBreak(oNode.previousSibling)) {\r\n zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n oNode.parentNode.insertBefore(zeroWidth, oNode);\r\n }\r\n\r\n if (!oNode.nextSibling || util.isBreak(oNode.nextSibling)) {\r\n zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n oNode.parentNode.insertBefore(zeroWidth, oNode.nextSibling);\r\n }\r\n\r\n if (util._isIgnoreNodeChange(oNode)) {\r\n oNode = oNode.nextSibling;\r\n offset = 0;\r\n }\r\n }\r\n\r\n this.setRange(oNode, offset, oNode, offset);\r\n }\r\n\r\n return oNode;\r\n }\r\n },\r\n\r\n _setIntoFreeFormat: function (oNode) {\r\n const parentNode = oNode.parentNode;\r\n let oNodeChildren, lastONode;\r\n\r\n while (util.isFormatElement(oNode) || util.isRangeFormatElement(oNode)) {\r\n oNodeChildren = oNode.childNodes;\r\n lastONode = null;\r\n\r\n while (oNodeChildren[0]) {\r\n lastONode = oNodeChildren[0];\r\n if (util.isFormatElement(lastONode) || util.isRangeFormatElement(lastONode)) {\r\n this._setIntoFreeFormat(lastONode);\r\n if (!oNode.parentNode) break;\r\n oNodeChildren = oNode.childNodes;\r\n continue;\r\n }\r\n\r\n parentNode.insertBefore(lastONode, oNode);\r\n }\r\n\r\n if (oNode.childNodes.length === 0) util.removeItem(oNode);\r\n oNode = util.createElement('BR');\r\n parentNode.insertBefore(oNode, lastONode.nextSibling);\r\n }\r\n\r\n return oNode;\r\n },\r\n\r\n /**\r\n * @description Delete the currently selected nodes and reset selection range\r\n * Returns {container: \"the last element after deletion\", offset: \"offset\", prevContainer: \"previousElementSibling Of the deleted area\"}\r\n * @returns {Object}\r\n */\r\n removeNode: function () {\r\n this._resetRangeToTextNode();\r\n\r\n const range = this.getRange();\r\n\r\n if (range.startContainer === range.endContainer) {\r\n const fileComponent = util.getParentElement(range.startContainer, util.isMediaComponent);\r\n if (fileComponent) {\r\n const br = util.createElement('BR');\r\n const format = util.createElement(options.defaultTag);\r\n format.appendChild(br);\r\n\r\n util.changeElement(fileComponent, format);\r\n\r\n core.setRange(format, 0, format, 0);\r\n this.history.push(true);\r\n\r\n return {\r\n container: format,\r\n offset: 0,\r\n prevContainer: null\r\n };\r\n }\r\n }\r\n\r\n const isStartEdge = range.startOffset === 0;\r\n const isEndEdge = core.isEdgePoint(range.endContainer, range.endOffset, 'end');\r\n let prevContainer = null;\r\n let startPrevEl = null;\r\n let endNextEl = null;\r\n if (isStartEdge) {\r\n startPrevEl = util.getFormatElement(range.startContainer);\r\n if (startPrevEl) {\r\n prevContainer = startPrevEl.previousElementSibling;\r\n startPrevEl = prevContainer;\r\n }\r\n }\r\n if (isEndEdge) {\r\n endNextEl = util.getFormatElement(range.endContainer);\r\n endNextEl = endNextEl ? endNextEl.nextElementSibling : endNextEl;\r\n }\r\n\r\n let container, offset = 0;\r\n let startCon = range.startContainer;\r\n let endCon = range.endContainer;\r\n let startOff = range.startOffset;\r\n let endOff = range.endOffset;\r\n const commonCon = (range.commonAncestorContainer.nodeType === 3 && range.commonAncestorContainer.parentNode === startCon.parentNode) ? startCon.parentNode : range.commonAncestorContainer;\r\n if (commonCon === startCon && commonCon === endCon) {\r\n startCon = commonCon.children[startOff];\r\n endCon = commonCon.children[endOff];\r\n startOff = endOff = 0;\r\n }\r\n\r\n if (!startCon || !endCon) return {\r\n container: commonCon,\r\n offset: 0\r\n };\r\n\r\n if (startCon === endCon && range.collapsed) {\r\n if (startCon.textContent && util.onlyZeroWidthSpace(startCon.textContent.substr(startOff))) {\r\n return {\r\n container: startCon,\r\n offset: startOff,\r\n prevContainer: startCon && startCon.parentNode ? startCon : null\r\n };\r\n }\r\n }\r\n\r\n let beforeNode = null;\r\n let afterNode = null;\r\n\r\n const childNodes = util.getListChildNodes(commonCon, null);\r\n let startIndex = util.getArrayIndex(childNodes, startCon);\r\n let endIndex = util.getArrayIndex(childNodes, endCon);\r\n\r\n if (childNodes.length > 0 && startIndex > -1 && endIndex > -1) {\r\n for (let i = startIndex + 1, startNode = startCon; i >= 0; i--) {\r\n if (childNodes[i] === startNode.parentNode && childNodes[i].firstChild === startNode && startOff === 0) {\r\n startIndex = i;\r\n startNode = startNode.parentNode;\r\n }\r\n }\r\n\r\n for (let i = endIndex - 1, endNode = endCon; i > startIndex; i--) {\r\n if (childNodes[i] === endNode.parentNode && childNodes[i].nodeType === 1) {\r\n childNodes.splice(i, 1);\r\n endNode = endNode.parentNode;\r\n --endIndex;\r\n }\r\n }\r\n } else {\r\n if (childNodes.length === 0) {\r\n if (util.isFormatElement(commonCon) || util.isRangeFormatElement(commonCon) || util.isWysiwygDiv(commonCon) || util.isBreak(commonCon) || util.isMedia(commonCon)) {\r\n return {\r\n container: commonCon,\r\n offset: 0\r\n };\r\n } else if (commonCon.nodeType === 3) {\r\n return {\r\n container: commonCon,\r\n offset: endOff\r\n };\r\n }\r\n childNodes.push(commonCon);\r\n startCon = endCon = commonCon;\r\n } else {\r\n startCon = endCon = childNodes[0];\r\n if (util.isBreak(startCon) || util.onlyZeroWidthSpace(startCon)) {\r\n return {\r\n container: util.isMedia(commonCon) ? commonCon : startCon,\r\n offset: 0\r\n };\r\n }\r\n }\r\n\r\n startIndex = endIndex = 0;\r\n }\r\n\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n const item = childNodes[i];\r\n\r\n if (item.length === 0 || (item.nodeType === 3 && item.data === undefined)) {\r\n this._nodeRemoveListItem(item);\r\n continue;\r\n }\r\n\r\n if (item === startCon) {\r\n if (startCon.nodeType === 1) {\r\n if (util.isComponent(startCon)) continue;\r\n else beforeNode = util.createTextNode(startCon.textContent);\r\n } else {\r\n if (item === endCon) {\r\n beforeNode = util.createTextNode(startCon.substringData(0, startOff) + endCon.substringData(endOff, (endCon.length - endOff)));\r\n offset = startOff;\r\n } else {\r\n beforeNode = util.createTextNode(startCon.substringData(0, startOff));\r\n }\r\n }\r\n\r\n if (beforeNode.length > 0) {\r\n startCon.data = beforeNode.data;\r\n } else {\r\n this._nodeRemoveListItem(startCon);\r\n }\r\n\r\n if (item === endCon) break;\r\n continue;\r\n }\r\n\r\n if (item === endCon) {\r\n if (endCon.nodeType === 1) {\r\n if (util.isComponent(endCon)) continue;\r\n else afterNode = util.createTextNode(endCon.textContent);\r\n } else {\r\n afterNode = util.createTextNode(endCon.substringData(endOff, (endCon.length - endOff)));\r\n }\r\n\r\n if (afterNode.length > 0) {\r\n endCon.data = afterNode.data;\r\n } else {\r\n this._nodeRemoveListItem(endCon);\r\n }\r\n\r\n continue;\r\n }\r\n\r\n this._nodeRemoveListItem(item);\r\n }\r\n\r\n const endUl = util.getParentElement(endCon, 'ul');\r\n const startLi = util.getParentElement(startCon, 'li');\r\n if (endUl && startLi && startLi.contains(endUl)) {\r\n container = endUl.previousSibling;\r\n offset = container.textContent.length;\r\n } else {\r\n container = endCon && endCon.parentNode ? endCon : startCon && startCon.parentNode ? startCon : (range.endContainer || range.startContainer);\r\n offset = (!isStartEdge && !isEndEdge) ? offset : isEndEdge ? container.textContent.length : 0;\r\n }\r\n\r\n if (!util.isWysiwygDiv(container) && container.childNodes.length === 0) {\r\n const rc = util.removeItemAllParents(container, null, null);\r\n if (rc) container = rc.sc || rc.ec || context.element.wysiwyg;\r\n }\r\n\r\n if (!util.getFormatElement(container) && !(startCon && startCon.parentNode)) {\r\n if (endNextEl) {\r\n container = endNextEl;\r\n offset = 0;\r\n } else if (startPrevEl) {\r\n container = startPrevEl;\r\n offset = 1;\r\n }\r\n }\r\n\r\n // set range\r\n this.setRange(container, offset, container, offset);\r\n // history stack\r\n this.history.push(true);\r\n\r\n return {\r\n container: container,\r\n offset: offset,\r\n prevContainer: prevContainer\r\n };\r\n },\r\n\r\n _nodeRemoveListItem: function (item) {\r\n const format = util.getFormatElement(item, null);\r\n util.removeItem(item);\r\n\r\n if(!util.isListCell(format)) return;\r\n\r\n util.removeItemAllParents(format, null, null);\r\n\r\n if (format && util.isList(format.firstChild)) {\r\n format.insertBefore(util.createTextNode(util.zeroWidthSpace), format.firstChild);\r\n }\r\n },\r\n\r\n /**\r\n * @description Appended all selected format Element to the argument element and insert\r\n * @param {Element} rangeElement Element of wrap the arguments (BLOCKQUOTE...)\r\n */\r\n applyRangeFormatElement: function (rangeElement) {\r\n this.getRange_addLine(this.getRange(), null);\r\n const rangeLines = this.getSelectedElementsAndComponents(false);\r\n if (!rangeLines || rangeLines.length === 0) return;\r\n\r\n linesLoop:\r\n for (let i = 0, len = rangeLines.length, line, nested, fEl, lEl, f, l; i < len; i++) {\r\n line = rangeLines[i];\r\n if (!util.isListCell(line)) continue;\r\n\r\n nested = line.lastElementChild;\r\n if (nested && util.isListCell(line.nextElementSibling) && rangeLines.indexOf(line.nextElementSibling) > -1) {\r\n lEl = nested.lastElementChild;\r\n if (rangeLines.indexOf(lEl) > -1) {\r\n let list = null;\r\n while ((list = lEl.lastElementChild)) {\r\n if (util.isList(list)) {\r\n if (rangeLines.indexOf(list.lastElementChild) > -1) {\r\n lEl = list.lastElementChild;\r\n } else {\r\n continue linesLoop;\r\n }\r\n }\r\n }\r\n\r\n fEl = nested.firstElementChild;\r\n f = rangeLines.indexOf(fEl);\r\n l = rangeLines.indexOf(lEl);\r\n rangeLines.splice(f, (l - f) + 1);\r\n len = rangeLines.length;\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n let last = rangeLines[rangeLines.length - 1];\r\n let standTag, beforeTag, pElement;\r\n\r\n if (util.isRangeFormatElement(last) || util.isFormatElement(last)) {\r\n standTag = last;\r\n } else {\r\n standTag = util.getRangeFormatElement(last, null) || util.getFormatElement(last, null);\r\n }\r\n\r\n if (util.isCell(standTag)) {\r\n beforeTag = null;\r\n pElement = standTag;\r\n } else {\r\n beforeTag = standTag.nextSibling;\r\n pElement = standTag.parentNode;\r\n }\r\n\r\n let parentDepth = util.getElementDepth(standTag);\r\n let listParent = null;\r\n const lineArr = [];\r\n const removeItems = function (parent, origin, before) {\r\n let cc = null;\r\n if (parent !== origin && !util.isTable(origin)) {\r\n if (origin && util.getElementDepth(parent) === util.getElementDepth(origin)) return before;\r\n cc = util.removeItemAllParents(origin, null, parent);\r\n }\r\n\r\n return cc ? cc.ec : before;\r\n };\r\n\r\n for (let i = 0, len = rangeLines.length, line, originParent, depth, before, nextLine, nextList, nested; i < len; i++) {\r\n line = rangeLines[i];\r\n originParent = line.parentNode;\r\n if (!originParent || rangeElement.contains(originParent)) continue;\r\n\r\n depth = util.getElementDepth(line);\r\n\r\n if (util.isList(originParent)) {\r\n if (listParent === null) {\r\n if (nextList) {\r\n listParent = nextList;\r\n nested = true;\r\n nextList = null;\r\n } else {\r\n listParent = originParent.cloneNode(false);\r\n }\r\n }\r\n\r\n lineArr.push(line);\r\n nextLine = rangeLines[i + 1];\r\n\r\n if (i === len - 1 || (nextLine && nextLine.parentNode !== originParent)) {\r\n // nested list\r\n if (nextLine && line.contains(nextLine.parentNode)) {\r\n nextList = nextLine.parentNode.cloneNode(false);\r\n }\r\n\r\n let list = originParent.parentNode, p;\r\n while (util.isList(list)) {\r\n p = util.createElement(list.nodeName);\r\n p.appendChild(listParent);\r\n listParent = p;\r\n list = list.parentNode;\r\n }\r\n\r\n const edge = this.detachRangeFormatElement(originParent, lineArr, null, true, true);\r\n\r\n if (parentDepth >= depth) {\r\n parentDepth = depth;\r\n pElement = edge.cc;\r\n beforeTag = removeItems(pElement, originParent, edge.ec);\r\n if (beforeTag) pElement = beforeTag.parentNode;\r\n } else if (pElement === edge.cc) {\r\n beforeTag = edge.ec;\r\n }\r\n\r\n if (pElement !== edge.cc) {\r\n before = removeItems(pElement, edge.cc, before);\r\n if (before !== undefined) beforeTag = before;\r\n else beforeTag = edge.cc;\r\n }\r\n\r\n for (let c = 0, cLen = edge.removeArray.length; c < cLen; c++) {\r\n listParent.appendChild(edge.removeArray[c]);\r\n }\r\n\r\n if (!nested) rangeElement.appendChild(listParent);\r\n if (nextList) edge.removeArray[edge.removeArray.length - 1].appendChild(nextList);\r\n listParent = null;\r\n nested = false;\r\n }\r\n } else {\r\n if (parentDepth >= depth) {\r\n parentDepth = depth;\r\n pElement = originParent;\r\n beforeTag = line.nextSibling;\r\n }\r\n\r\n rangeElement.appendChild(line);\r\n\r\n if (pElement !== originParent) {\r\n before = removeItems(pElement, originParent);\r\n if (before !== undefined) beforeTag = before;\r\n }\r\n }\r\n }\r\n\r\n this.effectNode = null;\r\n util.mergeSameTags(rangeElement, null, false);\r\n util.mergeNestedTags(rangeElement, function (current) { return this.isList(current); }.bind(util));\r\n\r\n // Nested list\r\n if (beforeTag && util.getElementDepth(beforeTag) > 0 && (util.isList(beforeTag.parentNode) || util.isList(beforeTag.parentNode.parentNode))) {\r\n const depthFormat = util.getParentElement(beforeTag, function (current) { return this.isRangeFormatElement(current) && !this.isList(current); }.bind(util));\r\n const splitRange = util.splitElement(beforeTag, null, !depthFormat ? 0 : util.getElementDepth(depthFormat) + 1);\r\n splitRange.parentNode.insertBefore(rangeElement, splitRange);\r\n } else { // basic\r\n pElement.insertBefore(rangeElement, beforeTag);\r\n removeItems(rangeElement, beforeTag);\r\n }\r\n\r\n const edge = util.getEdgeChildNodes(rangeElement.firstElementChild, rangeElement.lastElementChild);\r\n if (rangeLines.length > 1) {\r\n this.setRange(edge.sc, 0, edge.ec, edge.ec.textContent.length);\r\n } else {\r\n this.setRange(edge.ec, edge.ec.textContent.length, edge.ec, edge.ec.textContent.length);\r\n }\r\n\r\n // history stack\r\n this.history.push(false);\r\n },\r\n\r\n /**\r\n * @description The elements of the \"selectedFormats\" array are detached from the \"rangeElement\" element. (\"LI\" tags are converted to \"P\" tags)\r\n * When \"selectedFormats\" is null, all elements are detached and return {cc: parentNode, sc: nextSibling, ec: previousSibling, removeArray: [Array of removed elements]}.\r\n * @param {Element} rangeElement Range format element (PRE, BLOCKQUOTE, OL, UL...)\r\n * @param {Array|null} selectedFormats Array of format elements (P, DIV, LI...) to remove.\r\n * If null, Applies to all elements and return {cc: parentNode, sc: nextSibling, ec: previousSibling}\r\n * @param {Element|null} newRangeElement The node(rangeElement) to replace the currently wrapped node.\r\n * @param {Boolean} remove If true, deleted without detached.\r\n * @param {Boolean} notHistoryPush When true, it does not update the history stack and the selection object and return EdgeNodes (util.getEdgeChildNodes)\r\n * @returns {Object}\r\n */\r\n detachRangeFormatElement: function (rangeElement, selectedFormats, newRangeElement, remove, notHistoryPush) {\r\n const range = this.getRange();\r\n let so = range.startOffset;\r\n let eo = range.endOffset;\r\n\r\n let children = util.getListChildNodes(rangeElement, function (current) { return current.parentNode === rangeElement; });\r\n let parent = rangeElement.parentNode;\r\n let firstNode = null;\r\n let lastNode = null;\r\n let rangeEl = rangeElement.cloneNode(false);\r\n\r\n const removeArray = [];\r\n const newList = util.isList(newRangeElement);\r\n let insertedNew = false;\r\n let reset = false;\r\n let moveComplete = false;\r\n\r\n function appendNode (parent, insNode, sibling, originNode) {\r\n if (util.onlyZeroWidthSpace(insNode)) {\r\n insNode.innerHTML = util.zeroWidthSpace;\r\n so = eo = 1;\r\n }\r\n\r\n if (insNode.nodeType === 3) {\r\n parent.insertBefore(insNode, sibling);\r\n return insNode;\r\n }\r\n\r\n const insChildren = (moveComplete ? insNode : originNode).childNodes;\r\n let format = insNode.cloneNode(false);\r\n let first = null;\r\n let c = null;\r\n\r\n while (insChildren[0]) {\r\n c = insChildren[0];\r\n if (util._notTextNode(c) && !util.isBreak(c) && !util.isListCell(format)) {\r\n if (format.childNodes.length > 0) {\r\n if (!first) first = format;\r\n parent.insertBefore(format, sibling);\r\n format = insNode.cloneNode(false);\r\n }\r\n parent.insertBefore(c, sibling);\r\n if (!first) first = c;\r\n } else {\r\n format.appendChild(c);\r\n }\r\n }\r\n\r\n if (format.childNodes.length > 0) {\r\n if (util.isListCell(parent) && util.isListCell(format) && util.isList(sibling)) {\r\n if (newList) {\r\n first = sibling;\r\n while(sibling) {\r\n format.appendChild(sibling);\r\n sibling = sibling.nextSibling;\r\n }\r\n parent.parentNode.insertBefore(format, parent.nextElementSibling);\r\n } else {\r\n const originNext = originNode.nextElementSibling;\r\n const detachRange = util.detachNestedList(originNode, false);\r\n if ((rangeElement !== detachRange) || (originNext !== originNode.nextElementSibling)) {\r\n const fChildren = format.childNodes;\r\n while (fChildren[0]) {\r\n originNode.appendChild(fChildren[0]);\r\n }\r\n\r\n rangeElement = detachRange;\r\n reset = true;\r\n }\r\n }\r\n } else {\r\n parent.insertBefore(format, sibling);\r\n }\r\n\r\n if (!first) first = format;\r\n }\r\n\r\n return first;\r\n }\r\n\r\n // detach loop\r\n for (let i = 0, len = children.length, insNode, lineIndex, next; i < len; i++) {\r\n insNode = children[i];\r\n if (insNode.nodeType === 3 && util.isList(rangeEl)) continue;\r\n\r\n moveComplete = false;\r\n if (remove && i === 0) {\r\n if (!selectedFormats || selectedFormats.length === len || selectedFormats[0] === insNode) {\r\n firstNode = rangeElement.previousSibling;\r\n } else {\r\n firstNode = rangeEl;\r\n }\r\n }\r\n\r\n if (selectedFormats) lineIndex = selectedFormats.indexOf(insNode);\r\n if (selectedFormats && lineIndex === -1) {\r\n if (!rangeEl) rangeEl = rangeElement.cloneNode(false);\r\n rangeEl.appendChild(insNode);\r\n } else {\r\n if (selectedFormats) next = selectedFormats[lineIndex + 1];\r\n if (rangeEl && rangeEl.children.length > 0) {\r\n parent.insertBefore(rangeEl, rangeElement);\r\n rangeEl = null;\r\n }\r\n\r\n if (!newList && util.isListCell(insNode)) {\r\n if (next && util.getElementDepth(insNode) !== util.getElementDepth(next) && (util.isListCell(parent) || util.getArrayItem(insNode.children, util.isList, false))) {\r\n const insNext = insNode.nextElementSibling;\r\n const detachRange = util.detachNestedList(insNode, false);\r\n if ((rangeElement !== detachRange) || insNext !== insNode.nextElementSibling) {\r\n rangeElement = detachRange;\r\n reset = true;\r\n }\r\n } else {\r\n const inner = insNode;\r\n insNode = util.createElement(remove ? inner.nodeName : (util.isList(rangeElement.parentNode) || util.isListCell(rangeElement.parentNode)) ? 'LI' : util.isCell(rangeElement.parentNode) ? 'DIV' : options.defaultTag);\r\n const isCell = util.isListCell(insNode);\r\n const innerChildren = inner.childNodes;\r\n while (innerChildren[0]) {\r\n if (util.isList(innerChildren[0]) && !isCell) break;\r\n insNode.appendChild(innerChildren[0]);\r\n }\r\n util.copyFormatAttributes(insNode, inner);\r\n moveComplete = true;\r\n }\r\n } else {\r\n insNode = insNode.cloneNode(false);\r\n }\r\n\r\n if (!reset) {\r\n if (!remove) {\r\n if (newRangeElement) {\r\n if (!insertedNew) {\r\n parent.insertBefore(newRangeElement, rangeElement);\r\n insertedNew = true;\r\n }\r\n insNode = appendNode(newRangeElement, insNode, null, children[i]);\r\n } else {\r\n insNode = appendNode(parent, insNode, rangeElement, children[i]);\r\n }\r\n\r\n if (!reset) {\r\n if (selectedFormats) {\r\n lastNode = insNode;\r\n if (!firstNode) {\r\n firstNode = insNode;\r\n }\r\n } else if (!firstNode) {\r\n firstNode = lastNode = insNode;\r\n }\r\n }\r\n } else {\r\n removeArray.push(insNode);\r\n util.removeItem(children[i]);\r\n }\r\n\r\n if (reset) {\r\n reset = moveComplete = false;\r\n children = util.getListChildNodes(rangeElement, function (current) { return current.parentNode === rangeElement; });\r\n rangeEl = rangeElement.cloneNode(false);\r\n parent = rangeElement.parentNode;\r\n i = -1;\r\n len = children.length;\r\n continue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const rangeParent = rangeElement.parentNode;\r\n let rangeRight = rangeElement.nextSibling;\r\n if (rangeEl && rangeEl.children.length > 0) {\r\n rangeParent.insertBefore(rangeEl, rangeRight);\r\n }\r\n\r\n if (newRangeElement) firstNode = newRangeElement.previousSibling;\r\n else if (!firstNode) firstNode = rangeElement.previousSibling;\r\n rangeRight = rangeElement.nextSibling !== rangeEl ? rangeElement.nextSibling : rangeEl ? rangeEl.nextSibling : null;\r\n\r\n if (rangeElement.children.length === 0 || rangeElement.textContent.length === 0) {\r\n util.removeItem(rangeElement);\r\n } else {\r\n util.removeEmptyNode(rangeElement, null, false);\r\n }\r\n\r\n let edge = null;\r\n if (remove) {\r\n edge = {\r\n cc: rangeParent,\r\n sc: firstNode,\r\n so: so,\r\n ec: rangeRight,\r\n eo: eo,\r\n removeArray: removeArray\r\n };\r\n } else {\r\n if (!firstNode) firstNode = lastNode;\r\n if (!lastNode) lastNode = firstNode;\r\n const childEdge = util.getEdgeChildNodes(firstNode, (lastNode.parentNode ? firstNode : lastNode));\r\n edge = {\r\n cc: (childEdge.sc || childEdge.ec).parentNode,\r\n sc: childEdge.sc,\r\n so: so,\r\n ec: childEdge.ec,\r\n eo: eo,\r\n removeArray: null\r\n };\r\n }\r\n\r\n this.effectNode = null;\r\n if (notHistoryPush) return edge;\r\n\r\n if (!remove && edge) {\r\n if (!selectedFormats) {\r\n this.setRange(edge.sc, 0, edge.sc, 0);\r\n } else {\r\n this.setRange(edge.sc, so, edge.ec, eo);\r\n }\r\n }\r\n\r\n // history stack\r\n this.history.push(false);\r\n },\r\n\r\n /**\r\n * @description \"selectedFormats\" array are detached from the list element.\r\n * The return value is applied when the first and last lines of \"selectedFormats\" are \"LI\" respectively.\r\n * @param {Array} selectedFormats Array of format elements (LI, P...) to remove.\r\n * @param {Boolean} remove If true, deleted without detached.\r\n * @returns {Object} {sc:
    • , ec:
    • }.\r\n */\r\n detachList: function (selectedFormats, remove) {\r\n let rangeArr = {};\r\n let listFirst = false;\r\n let listLast = false;\r\n let first = null;\r\n let last = null;\r\n const passComponent = function (current) { return !this.isComponent(current); }.bind(util);\r\n\r\n for (let i = 0, len = selectedFormats.length, r, o, lastIndex, isList; i < len; i++) {\r\n lastIndex = i === len - 1;\r\n o = util.getRangeFormatElement(selectedFormats[i], passComponent);\r\n isList = util.isList(o);\r\n if (!r && isList) {\r\n r = o;\r\n rangeArr = {r: r, f: [util.getParentElement(selectedFormats[i], 'LI')]};\r\n if (i === 0) listFirst = true;\r\n } else if (r && isList) {\r\n if (r !== o) {\r\n const edge = this.detachRangeFormatElement(rangeArr.f[0].parentNode, rangeArr.f, null, remove, true);\r\n o = selectedFormats[i].parentNode;\r\n if (listFirst) {\r\n first = edge.sc;\r\n listFirst = false;\r\n }\r\n if (lastIndex) last = edge.ec;\r\n\r\n if (isList) {\r\n r = o;\r\n rangeArr = {r: r, f: [util.getParentElement(selectedFormats[i], 'LI')]};\r\n if (lastIndex) listLast = true;\r\n } else {\r\n r = null;\r\n }\r\n } else {\r\n rangeArr.f.push(util.getParentElement(selectedFormats[i], 'LI'));\r\n if (lastIndex) listLast = true;\r\n }\r\n }\r\n\r\n if (lastIndex && util.isList(r)) {\r\n const edge = this.detachRangeFormatElement(rangeArr.f[0].parentNode, rangeArr.f, null, remove, true);\r\n if (listLast || len === 1) last = edge.ec;\r\n if (listFirst) first = edge.sc || last;\r\n }\r\n }\r\n\r\n return {\r\n sc: first,\r\n ec: last\r\n };\r\n },\r\n\r\n /**\r\n * @description Add, update, and delete nodes from selected text.\r\n * 1. If there is a node in the \"appendNode\" argument, a node with the same tags and attributes as \"appendNode\" is added to the selection text.\r\n * 2. If it is in the same tag, only the tag's attributes are changed without adding a tag.\r\n * 3. If the \"appendNode\" argument is null, the node of the selection is update or remove without adding a new node.\r\n * 4. The same style as the style attribute of the \"styleArray\" argument is deleted.\r\n * (Styles should be put with attribute names from css. [\"background-color\"])\r\n * 5. The same class name as the class attribute of the \"styleArray\" argument is deleted.\r\n * (The class name is preceded by \".\" [\".className\"])\r\n * 6. Use a list of styles and classes of \"appendNode\" in \"styleArray\" to avoid duplicate property values.\r\n * 7. If a node with all styles and classes removed has the same tag name as \"appendNode\" or \"removeNodeArray\", or \"appendNode\" is null, that node is deleted.\r\n * 8. Regardless of the style and class of the node, the tag with the same name as the \"removeNodeArray\" argument value is deleted.\r\n * 9. If the \"strictRemove\" argument is true, only nodes with all styles and classes removed from the nodes of \"removeNodeArray\" are removed.\r\n *10. It won't work if the parent node has the same class and same value style.\r\n * However, if there is a value in \"removeNodeArray\", it works and the text node is separated even if there is no node to replace.\r\n * @param {Element|null} appendNode The element to be added to the selection. If it is null, only delete the node.\r\n * @param {Array|null} styleArray The style or className attribute name Array to check (['font-size'], ['.className'], ['font-family', 'color', '.className']...])\r\n * @param {Array|null} removeNodeArray An array of node names to remove types from, remove all formats when \"appendNode\" is null and there is an empty array or null value. (['span'], ['strong', 'em'] ...])\r\n * @param {Boolean|null} strictRemove If true, only nodes with all styles and classes removed from the nodes of \"removeNodeArray\" are removed.\r\n */\r\n nodeChange: function (appendNode, styleArray, removeNodeArray, strictRemove) {\r\n this._resetRangeToTextNode();\r\n let range = this.getRange_addLine(this.getRange(), null);\r\n styleArray = styleArray && styleArray.length > 0 ? styleArray : false;\r\n removeNodeArray = removeNodeArray && removeNodeArray.length > 0 ? removeNodeArray : false;\r\n\r\n const isRemoveNode = !appendNode;\r\n const isRemoveFormat = isRemoveNode && !removeNodeArray && !styleArray;\r\n let startCon = range.startContainer;\r\n let startOff = range.startOffset;\r\n let endCon = range.endContainer;\r\n let endOff = range.endOffset;\r\n\r\n if ((isRemoveFormat && range.collapsed && util.isFormatElement(startCon.parentNode)) || (startCon === endCon && startCon.nodeType === 1 && util.isNonEditable(startCon))) {\r\n const format = startCon.parentNode;\r\n if (!util.isListCell(format) || !util.getValues(format.style).some(function(k) { return this._listKebab.indexOf(k) > -1; }.bind(this))) return;\r\n }\r\n\r\n if (range.collapsed && !isRemoveFormat) {\r\n if (startCon.nodeType === 1 && !util.isBreak(startCon) && !util.isComponent(startCon)) {\r\n let afterNode = null;\r\n const focusNode = startCon.childNodes[startOff];\r\n\r\n if (focusNode) {\r\n if (!focusNode.nextSibling) {\r\n afterNode = null;\r\n } else {\r\n afterNode = util.isBreak(focusNode) ? focusNode : focusNode.nextSibling;\r\n }\r\n }\r\n\r\n const zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n startCon.insertBefore(zeroWidth, afterNode);\r\n this.setRange(zeroWidth, 1, zeroWidth, 1);\r\n\r\n range = this.getRange();\r\n startCon = range.startContainer;\r\n startOff = range.startOffset;\r\n endCon = range.endContainer;\r\n endOff = range.endOffset;\r\n }\r\n }\r\n\r\n if (util.isFormatElement(startCon)) {\r\n startCon = startCon.childNodes[startOff] || startCon.firstChild;\r\n startOff = 0;\r\n }\r\n if (util.isFormatElement(endCon)) {\r\n endCon = endCon.childNodes[endOff] || endCon.lastChild;\r\n endOff = endCon.textContent.length;\r\n }\r\n\r\n if (isRemoveNode) {\r\n appendNode = util.createElement('DIV');\r\n }\r\n\r\n const wRegExp = _w.RegExp;\r\n const newNodeName = appendNode.nodeName;\r\n\r\n /* checked same style property */\r\n if (!isRemoveFormat && startCon === endCon && !removeNodeArray && appendNode) {\r\n let sNode = startCon;\r\n let checkCnt = 0;\r\n const checkAttrs = [];\r\n\r\n const checkStyles = appendNode.style;\r\n for (let i = 0, len = checkStyles.length; i < len; i++) {\r\n checkAttrs.push(checkStyles[i]);\r\n }\r\n\r\n const ckeckClasses = appendNode.classList;\r\n for (let i = 0, len = ckeckClasses.length; i < len; i++) {\r\n checkAttrs.push('.' + ckeckClasses[i]);\r\n }\r\n\r\n if (checkAttrs.length > 0) {\r\n while(!util.isFormatElement(sNode) && !util.isWysiwygDiv(sNode)) {\r\n for (let i = 0; i < checkAttrs.length; i++) {\r\n if (sNode.nodeType === 1) {\r\n const s = checkAttrs[i];\r\n const classReg = /^\\./.test(s) ? new wRegExp('\\\\s*' + s.replace(/^\\./, '') + '(\\\\s+|$)', 'ig') : false;\r\n\r\n const styleCheck = isRemoveNode ? !!sNode.style[s] : (!!sNode.style[s] && !!appendNode.style[s] && sNode.style[s] === appendNode.style[s]);\r\n const classCheck = classReg === false ? false : isRemoveNode ? !!sNode.className.match(classReg) : !!sNode.className.match(classReg) && !!appendNode.className.match(classReg);\r\n if (styleCheck || classCheck) {\r\n checkCnt++;\r\n }\r\n }\r\n }\r\n sNode = sNode.parentNode;\r\n }\r\n\r\n if (checkCnt >= checkAttrs.length) return;\r\n }\r\n }\r\n\r\n let start = {}, end = {};\r\n let newNode, styleRegExp = '', classRegExp = '', removeNodeRegExp = '';\r\n\r\n if (styleArray) {\r\n for (let i = 0, len = styleArray.length, s; i < len; i++) {\r\n s = styleArray[i];\r\n if (/^\\./.test(s)) {\r\n classRegExp += (classRegExp ? '|' : '\\\\s*(?:') + s.replace(/^\\./, '');\r\n } else {\r\n styleRegExp += (styleRegExp ? '|' : '(?:;|^|\\\\s)(?:') + s;\r\n }\r\n }\r\n\r\n if (styleRegExp) {\r\n styleRegExp += ')\\\\s*:[^;]*\\\\s*(?:;|$)';\r\n styleRegExp = new wRegExp(styleRegExp, 'ig');\r\n }\r\n\r\n if (classRegExp) {\r\n classRegExp += ')(?=\\\\s+|$)';\r\n classRegExp = new wRegExp(classRegExp, 'ig');\r\n }\r\n }\r\n\r\n if (removeNodeArray) {\r\n removeNodeRegExp = '^(?:' + removeNodeArray[0];\r\n for (let i = 1; i < removeNodeArray.length; i++) {\r\n removeNodeRegExp += '|' + removeNodeArray[i];\r\n }\r\n removeNodeRegExp += ')$';\r\n removeNodeRegExp = new wRegExp(removeNodeRegExp, 'i');\r\n }\r\n\r\n /** validation check function*/\r\n const wBoolean = _w.Boolean;\r\n const _removeCheck = {v: false};\r\n const validation = function (checkNode) {\r\n const vNode = checkNode.cloneNode(false);\r\n\r\n // all path\r\n if (vNode.nodeType === 3 || util.isBreak(vNode)) return vNode;\r\n // all remove\r\n if (isRemoveFormat) return null;\r\n\r\n // remove node check\r\n const tagRemove = (!removeNodeRegExp && isRemoveNode) || (removeNodeRegExp && removeNodeRegExp.test(vNode.nodeName));\r\n\r\n // tag remove\r\n if (tagRemove && !strictRemove) {\r\n _removeCheck.v = true;\r\n return null;\r\n }\r\n\r\n // style regexp\r\n const originStyle = vNode.style.cssText;\r\n let style = '';\r\n if (styleRegExp && originStyle.length > 0) {\r\n style = originStyle.replace(styleRegExp, '').trim();\r\n if (style !== originStyle) _removeCheck.v = true;\r\n }\r\n\r\n // class check\r\n const originClasses = vNode.className;\r\n let classes = '';\r\n if (classRegExp && originClasses.length > 0) {\r\n classes = originClasses.replace(classRegExp, '').trim();\r\n if (classes !== originClasses) _removeCheck.v = true;\r\n }\r\n\r\n // remove only\r\n if (isRemoveNode) {\r\n if ((classRegExp || !originClasses) && (styleRegExp || !originStyle) && !style && !classes && tagRemove) {\r\n _removeCheck.v = true;\r\n return null;\r\n }\r\n }\r\n\r\n // change\r\n if (style || classes || vNode.nodeName !== newNodeName || (wBoolean(styleRegExp) !== wBoolean(originStyle)) || (wBoolean(classRegExp) !== wBoolean(originClasses))) {\r\n if (styleRegExp && originStyle.length > 0) vNode.style.cssText = style;\r\n if (!vNode.style.cssText) {\r\n vNode.removeAttribute('style');\r\n }\r\n\r\n if (classRegExp && originClasses.length > 0) vNode.className = classes.trim();\r\n if (!vNode.className.trim()) {\r\n vNode.removeAttribute('class');\r\n }\r\n\r\n if (!vNode.style.cssText && !vNode.className && (vNode.nodeName === newNodeName || tagRemove)) {\r\n _removeCheck.v = true;\r\n return null;\r\n }\r\n\r\n return vNode;\r\n }\r\n\r\n _removeCheck.v = true;\r\n return null;\r\n };\r\n\r\n // get line nodes\r\n const lineNodes = this.getSelectedElements(null);\r\n range = this.getRange();\r\n startCon = range.startContainer;\r\n startOff = range.startOffset;\r\n endCon = range.endContainer;\r\n endOff = range.endOffset;\r\n\r\n if (!util.getFormatElement(startCon, null)) {\r\n startCon = util.getChildElement(lineNodes[0], function (current) { return current.nodeType === 3; }, false);\r\n startOff = 0;\r\n }\r\n\r\n if (!util.getFormatElement(endCon, null)) {\r\n endCon = util.getChildElement(lineNodes[lineNodes.length - 1], function (current) { return current.nodeType === 3; }, false);\r\n endOff = endCon.textContent.length;\r\n }\r\n\r\n\r\n const oneLine = util.getFormatElement(startCon, null) === util.getFormatElement(endCon, null);\r\n const endLength = lineNodes.length - (oneLine ? 0 : 1);\r\n\r\n // node Changes\r\n newNode = appendNode.cloneNode(false);\r\n\r\n const isRemoveAnchor = isRemoveFormat || (isRemoveNode && (function (arr) {\r\n for (let n = 0, len = arr.length; n < len; n++) {\r\n if (util._isMaintainedNode(arr[n]) || util._isSizeNode(arr[n])) return true;\r\n }\r\n return false;\r\n })(removeNodeArray));\r\n\r\n const isSizeNode = isRemoveNode || util._isSizeNode(newNode);\r\n const _getMaintainedNode = this._util_getMaintainedNode.bind(util, isRemoveAnchor, isSizeNode);\r\n const _isMaintainedNode = this._util_isMaintainedNode.bind(util, isRemoveAnchor, isSizeNode);\r\n\r\n // one line\r\n if (oneLine) {\r\n if (this._resetCommonListCell(lineNodes[0], styleArray)) range = this.setRange(startCon, startOff, endCon, endOff);\r\n\r\n const newRange = this._nodeChange_oneLine(lineNodes[0], newNode, validation, startCon, startOff, endCon, endOff, isRemoveFormat, isRemoveNode, range.collapsed, _removeCheck, _getMaintainedNode, _isMaintainedNode);\r\n start.container = newRange.startContainer;\r\n start.offset = newRange.startOffset;\r\n end.container = newRange.endContainer;\r\n end.offset = newRange.endOffset;\r\n\r\n if (start.container === end.container && util.onlyZeroWidthSpace(start.container)) {\r\n start.offset = end.offset = 1;\r\n }\r\n this._setCommonListStyle(newRange.ancestor, null);\r\n } else { // multi line \r\n let appliedCommonList = false;\r\n if (endLength > 0 && this._resetCommonListCell(lineNodes[endLength], styleArray)) appliedCommonList = true;\r\n if (this._resetCommonListCell(lineNodes[0], styleArray)) appliedCommonList = true;\r\n if (appliedCommonList) this.setRange(startCon, startOff, endCon, endOff);\r\n\r\n // end\r\n if (endLength > 0) {\r\n newNode = appendNode.cloneNode(false);\r\n end = this._nodeChange_endLine(lineNodes[endLength], newNode, validation, endCon, endOff, isRemoveFormat, isRemoveNode, _removeCheck, _getMaintainedNode, _isMaintainedNode);\r\n }\r\n\r\n // mid\r\n for (let i = endLength - 1, newRange; i > 0; i--) {\r\n this._resetCommonListCell(lineNodes[i], styleArray);\r\n newNode = appendNode.cloneNode(false);\r\n newRange = this._nodeChange_middleLine(lineNodes[i], newNode, validation, isRemoveFormat, isRemoveNode, _removeCheck, end.container);\r\n if (newRange.endContainer && newRange.ancestor.contains(newRange.endContainer)) {\r\n end.ancestor = null;\r\n end.container = newRange.endContainer;\r\n }\r\n this._setCommonListStyle(newRange.ancestor, null);\r\n }\r\n\r\n // start\r\n newNode = appendNode.cloneNode(false);\r\n start = this._nodeChange_startLine(lineNodes[0], newNode, validation, startCon, startOff, isRemoveFormat, isRemoveNode, _removeCheck, _getMaintainedNode, _isMaintainedNode, end.container);\r\n\r\n if (start.endContainer) {\r\n end.ancestor = null;\r\n end.container = start.endContainer;\r\n }\r\n\r\n if (endLength <= 0) {\r\n end = start;\r\n } else if (!end.container) {\r\n end.ancestor = null;\r\n end.container = start.container;\r\n end.offset = start.container.textContent.length;\r\n }\r\n\r\n this._setCommonListStyle(start.ancestor, null);\r\n this._setCommonListStyle(end.ancestor || util.getFormatElement(end.container), null);\r\n }\r\n\r\n // set range\r\n this.controllersOff();\r\n this.setRange(start.container, start.offset, end.container, end.offset);\r\n\r\n // history stack\r\n this.history.push(false);\r\n },\r\n\r\n /**\r\n * @description Reset common style of list cell\r\n * @param {Element} el List cell element.
    • \r\n * @param {Array|null} styleArray Style array\r\n * @private\r\n */\r\n _resetCommonListCell: function (el, styleArray) {\r\n if (!util.isListCell(el)) return;\r\n if (!styleArray) styleArray = this._listKebab;\r\n\r\n const children = util.getArrayItem((el).childNodes, function (current) { return !util.isBreak(current); }, true);\r\n const elStyles = el.style;\r\n\r\n const ec = [], ek = [], elKeys = util.getValues(elStyles);\r\n for (let i = 0, len = this._listKebab.length; i < len; i++) {\r\n if (elKeys.indexOf(this._listKebab[i]) > -1 && styleArray.indexOf(this._listKebab[i]) > -1) {\r\n ec.push(this._listCamel[i]);\r\n ek.push(this._listKebab[i]);\r\n }\r\n }\r\n\r\n if (!ec.length) return;\r\n\r\n // reset cell style---\r\n const refer = util.createElement('SPAN');\r\n for (let i = 0, len = ec.length; i < len; i++) {\r\n refer.style[ec[i]] = elStyles[ek[i]];\r\n elStyles.removeProperty(ek[i]);\r\n }\r\n\r\n let sel = refer.cloneNode(false);\r\n let r = null, appliedEl = false;\r\n for (let i = 0, len = children.length, c, s; i < len; i++) {\r\n c = children[i];\r\n if (options._textTagsMap[c.nodeName.toLowerCase()]) continue;\r\n\r\n s = util.getValues(c.style);\r\n if (s.length === 0 || (ec.some(function (k) {return s.indexOf(k) === -1;}) && s.some(function(k) {ec.indexOf(k) > -1;}))) {\r\n r = c.nextSibling;\r\n sel.appendChild(c);\r\n } else if (sel.childNodes.length > 0) {\r\n el.insertBefore(sel, r);\r\n sel = refer.cloneNode(false);\r\n r = null;\r\n appliedEl = true;\r\n }\r\n }\r\n\r\n if (sel.childNodes.length > 0) {\r\n el.insertBefore(sel, r);\r\n appliedEl = true;\r\n }\r\n if (!elStyles.length) {\r\n el.removeAttribute('style');\r\n }\r\n\r\n return appliedEl;\r\n },\r\n\r\n /**\r\n * @description If certain styles are applied to all child nodes of the list cell, the style of the list cell is also changed. (bold, color, size)\r\n * @param {Element} el List cell element.
    • \r\n * @param {Element|null} child Variable for recursive call. (\"null\" on the first call)\r\n * @private\r\n */\r\n _setCommonListStyle: function (el, child) {\r\n if (!util.isListCell(el)) return;\r\n\r\n const children = util.getArrayItem((child || el).childNodes, function (current) { return !util.isBreak(current); }, true);\r\n child = children[0];\r\n\r\n if (!child || children.length > 1 || child.nodeType !== 1) return;\r\n\r\n // set cell style---\r\n const childStyle = child.style;\r\n const elStyle = el.style;\r\n const nodeName = child.nodeName.toLowerCase();\r\n let appliedEl = false;\r\n\r\n // bold, italic\r\n if (options._textTagsMap[nodeName] === options._defaultCommand.bold.toLowerCase()) elStyle.fontWeight = 'bold';\r\n if (options._textTagsMap[nodeName] === options._defaultCommand.italic.toLowerCase()) elStyle.fontStyle = 'italic';\r\n\r\n // styles\r\n const cKeys = util.getValues(childStyle);\r\n if (cKeys.length > 0) {\r\n for (let i = 0, len = this._listCamel.length; i < len; i++) {\r\n if (cKeys.indexOf(this._listKebab[i]) > -1) {\r\n elStyle[this._listCamel[i]] = childStyle[this._listCamel[i]];\r\n childStyle.removeProperty(this._listKebab[i]);\r\n appliedEl = true;\r\n }\r\n }\r\n }\r\n\r\n this._setCommonListStyle(el, child);\r\n if (!appliedEl) return;\r\n\r\n // common style\r\n if (!childStyle.length) {\r\n const ch = child.childNodes;\r\n const p = child.parentNode;\r\n const n = child.nextSibling;\r\n while (ch.length > 0) {\r\n p.insertBefore(ch[0], n);\r\n }\r\n util.removeItem(child);\r\n }\r\n },\r\n\r\n /**\r\n * @description Strip remove node\r\n * @param {Node} removeNode The remove node\r\n * @private\r\n */\r\n _stripRemoveNode: function (removeNode) {\r\n const element = removeNode.parentNode;\r\n if (!removeNode || removeNode.nodeType === 3 || !element) return;\r\n\r\n const children = removeNode.childNodes;\r\n while (children[0]) {\r\n element.insertBefore(children[0], removeNode);\r\n }\r\n\r\n element.removeChild(removeNode);\r\n },\r\n\r\n /**\r\n * @description Return the parent maintained tag. (bind and use a util object)\r\n * @param {Element} element Element\r\n * @returns {Element}\r\n * @private\r\n */\r\n _util_getMaintainedNode: function (_isRemove, _isSizeNode, element) {\r\n if (!element || _isRemove) return null;\r\n return this.getParentElement(element, this._isMaintainedNode.bind(this)) || (!_isSizeNode ? this.getParentElement(element, this._isSizeNode.bind(this)) : null);\r\n },\r\n\r\n /**\r\n * @description Check if element is a tag that should be persisted. (bind and use a util object)\r\n * @param {Element} element Element\r\n * @returns {Element}\r\n * @private\r\n */\r\n _util_isMaintainedNode: function (_isRemove, _isSizeNode, element) {\r\n if (!element || _isRemove || element.nodeType !== 1) return false;\r\n const anchor = this._isMaintainedNode(element);\r\n return this.getParentElement(element, this._isMaintainedNode.bind(this)) ? anchor : (anchor || (!_isSizeNode ? this._isSizeNode(element) : false));\r\n },\r\n\r\n /**\r\n * @description wraps text nodes of line selected text.\r\n * @param {Element} element The node of the line that contains the selected text node.\r\n * @param {Element} newInnerNode The dom that will wrap the selected text area\r\n * @param {Function} validation Check if the node should be stripped.\r\n * @param {Node} startCon The startContainer property of the selection object.\r\n * @param {Number} startOff The startOffset property of the selection object.\r\n * @param {Node} endCon The endContainer property of the selection object.\r\n * @param {Number} endOff The endOffset property of the selection object.\r\n * @param {Boolean} isRemoveFormat Is the remove all formats command?\r\n * @param {Boolean} isRemoveNode \"newInnerNode\" is remove node?\r\n * @param {Boolean} collapsed range.collapsed\r\n * @returns {{ancestor: *, startContainer: *, startOffset: *, endContainer: *, endOffset: *}}\r\n * @private\r\n */\r\n _nodeChange_oneLine: function (element, newInnerNode, validation, startCon, startOff, endCon, endOff, isRemoveFormat, isRemoveNode, collapsed, _removeCheck, _getMaintainedNode, _isMaintainedNode) {\r\n // not add tag\r\n let parentCon = startCon.parentNode;\r\n while (!parentCon.nextSibling && !parentCon.previousSibling && !util.isFormatElement(parentCon.parentNode) && !util.isWysiwygDiv(parentCon.parentNode)) {\r\n if (parentCon.nodeName === newInnerNode.nodeName) break;\r\n parentCon = parentCon.parentNode;\r\n }\r\n\r\n if (!isRemoveNode && parentCon === endCon.parentNode && parentCon.nodeName === newInnerNode.nodeName) {\r\n if (util.onlyZeroWidthSpace(startCon.textContent.slice(0, startOff)) && util.onlyZeroWidthSpace(endCon.textContent.slice(endOff))) {\r\n const children = parentCon.childNodes;\r\n let sameTag = true;\r\n\r\n for (let i = 0, len = children.length, c, s, e, z; i < len; i++) {\r\n c = children[i];\r\n z = !util.onlyZeroWidthSpace(c);\r\n if (c === startCon) {\r\n s = true;\r\n continue;\r\n }\r\n if (c === endCon) {\r\n e = true;\r\n continue;\r\n }\r\n if ((!s && z) || (s && e && z)) {\r\n sameTag = false;\r\n break;\r\n }\r\n }\r\n\r\n if (sameTag) {\r\n util.copyTagAttributes(parentCon, newInnerNode);\r\n\r\n return {\r\n ancestor: element,\r\n startContainer: startCon,\r\n startOffset: startOff,\r\n endContainer: endCon,\r\n endOffset: endOff\r\n };\r\n }\r\n }\r\n }\r\n\r\n // add tag\r\n _removeCheck.v = false;\r\n const el = element;\r\n const nNodeArray = [newInnerNode];\r\n const pNode = element.cloneNode(false);\r\n const isSameNode = startCon === endCon;\r\n let startContainer = startCon;\r\n let startOffset = startOff;\r\n let endContainer = endCon;\r\n let endOffset = endOff;\r\n let startPass = false;\r\n let endPass = false;\r\n let pCurrent, newNode, appendNode, cssText, anchorNode;\r\n\r\n const wRegExp = _w.RegExp;\r\n function checkCss (vNode) {\r\n const regExp = new wRegExp('(?:;|^|\\\\s)(?:' + cssText + 'null)\\\\s*:[^;]*\\\\s*(?:;|$)', 'ig');\r\n let style = '';\r\n\r\n if (regExp && vNode.style.cssText.length > 0) {\r\n style = regExp.test(vNode.style.cssText);\r\n }\r\n\r\n return !style;\r\n }\r\n\r\n (function recursionFunc(current, ancestor) {\r\n const childNodes = current.childNodes;\r\n\r\n for (let i = 0, len = childNodes.length, vNode; i < len; i++) {\r\n let child = childNodes[i];\r\n if (!child) continue;\r\n let coverNode = ancestor;\r\n let cloneNode;\r\n\r\n // startContainer\r\n if (!startPass && child === startContainer) {\r\n let line = pNode;\r\n anchorNode = _getMaintainedNode(child);\r\n const prevNode = util.createTextNode(startContainer.nodeType === 1 ? '' : startContainer.substringData(0, startOffset));\r\n const textNode = util.createTextNode(startContainer.nodeType === 1 ? '' : startContainer.substringData(startOffset,\r\n isSameNode ?\r\n (endOffset >= startOffset ? endOffset - startOffset : startContainer.data.length - startOffset) :\r\n startContainer.data.length - startOffset)\r\n );\r\n\r\n if (anchorNode) {\r\n const a = _getMaintainedNode(ancestor);\r\n if (a && a.parentNode !== line) {\r\n let m = a;\r\n let p = null;\r\n while (m.parentNode !== line) {\r\n ancestor = p = m.parentNode.cloneNode(false);\r\n while(m.childNodes[0]) {\r\n p.appendChild(m.childNodes[0]);\r\n }\r\n m.appendChild(p);\r\n m = m.parentNode;\r\n }\r\n m.parentNode.appendChild(a);\r\n }\r\n anchorNode = anchorNode.cloneNode(false);\r\n }\r\n\r\n if (!util.onlyZeroWidthSpace(prevNode)) {\r\n ancestor.appendChild(prevNode);\r\n }\r\n\r\n const prevAnchorNode = _getMaintainedNode(ancestor);\r\n if (!!prevAnchorNode) anchorNode = prevAnchorNode;\r\n if (anchorNode) line = anchorNode;\r\n\r\n newNode = child;\r\n pCurrent = [];\r\n cssText = '';\r\n while (newNode !== line && newNode !== el && newNode !== null) {\r\n vNode = _isMaintainedNode(newNode) ? null : validation(newNode);\r\n if (vNode && newNode.nodeType === 1 && checkCss(newNode)) {\r\n pCurrent.push(vNode);\r\n cssText += newNode.style.cssText.substr(0, newNode.style.cssText.indexOf(':')) + '|';\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n\r\n const childNode = pCurrent.pop() || textNode;\r\n appendNode = newNode = childNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n newInnerNode.appendChild(childNode);\r\n line.appendChild(newInnerNode);\r\n\r\n if (anchorNode && !_getMaintainedNode(endContainer)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n }\r\n\r\n startContainer = textNode;\r\n startOffset = 0;\r\n startPass = true;\r\n\r\n if (newNode !== textNode) newNode.appendChild(startContainer);\r\n if (!isSameNode) continue;\r\n }\r\n\r\n // endContainer\r\n if (!endPass && child === endContainer) {\r\n anchorNode = _getMaintainedNode(child);\r\n const afterNode = util.createTextNode(endContainer.nodeType === 1 ? '' : endContainer.substringData(endOffset, (endContainer.length - endOffset)));\r\n const textNode = util.createTextNode(isSameNode || endContainer.nodeType === 1 ? '' : endContainer.substringData(0, endOffset));\r\n\r\n if (anchorNode) {\r\n anchorNode = anchorNode.cloneNode(false);\r\n } else if (_isMaintainedNode(newInnerNode.parentNode) && !anchorNode) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n }\r\n\r\n if (!util.onlyZeroWidthSpace(afterNode)) {\r\n newNode = child;\r\n cssText = '';\r\n pCurrent = [];\r\n const anchors = [];\r\n while (newNode !== pNode && newNode !== el && newNode !== null) {\r\n if (newNode.nodeType === 1 && checkCss(newNode)) {\r\n if (_isMaintainedNode(newNode)) anchors.push(newNode.cloneNode(false));\r\n else pCurrent.push(newNode.cloneNode(false));\r\n cssText += newNode.style.cssText.substr(0, newNode.style.cssText.indexOf(':')) + '|';\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n pCurrent = pCurrent.concat(anchors);\r\n\r\n cloneNode = appendNode = newNode = pCurrent.pop() || afterNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n pNode.appendChild(cloneNode);\r\n newNode.textContent = afterNode.data;\r\n }\r\n\r\n if (anchorNode && cloneNode) {\r\n const afterAnchorNode = _getMaintainedNode(cloneNode);\r\n if (afterAnchorNode) {\r\n anchorNode = afterAnchorNode;\r\n }\r\n }\r\n\r\n newNode = child;\r\n pCurrent = [];\r\n cssText = '';\r\n while (newNode !== pNode && newNode !== el && newNode !== null) {\r\n vNode = _isMaintainedNode(newNode) ? null : validation(newNode);\r\n if (vNode && newNode.nodeType === 1 && checkCss(newNode)) {\r\n pCurrent.push(vNode);\r\n cssText += newNode.style.cssText.substr(0, newNode.style.cssText.indexOf(':')) + '|';\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n\r\n const childNode = pCurrent.pop() || textNode;\r\n appendNode = newNode = childNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n if (anchorNode) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n newInnerNode.appendChild(childNode);\r\n anchorNode.insertBefore(newInnerNode, anchorNode.firstChild);\r\n pNode.appendChild(anchorNode);\r\n nNodeArray.push(newInnerNode);\r\n anchorNode = null;\r\n } else {\r\n newInnerNode.appendChild(childNode);\r\n }\r\n\r\n endContainer = textNode;\r\n endOffset = textNode.data.length;\r\n endPass = true;\r\n\r\n if (!isRemoveFormat && collapsed) {\r\n newInnerNode = textNode;\r\n textNode.textContent = util.zeroWidthSpace;\r\n }\r\n\r\n if (newNode !== textNode) newNode.appendChild(endContainer);\r\n continue;\r\n }\r\n\r\n // other\r\n if (startPass) {\r\n if (child.nodeType === 1 && !util.isBreak(child)) {\r\n if (util._isIgnoreNodeChange(child)) {\r\n pNode.appendChild(child.cloneNode(true));\r\n if (!collapsed) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n }\r\n } else {\r\n recursionFunc(child, child);\r\n }\r\n continue;\r\n }\r\n\r\n newNode = child;\r\n pCurrent = [];\r\n cssText = '';\r\n const anchors = [];\r\n while (newNode.parentNode !== null && newNode !== el && newNode !== newInnerNode) {\r\n vNode = endPass ? newNode.cloneNode(false) : validation(newNode);\r\n if (newNode.nodeType === 1 && !util.isBreak(child) && vNode && checkCss(newNode)) {\r\n if (_isMaintainedNode(newNode)) {\r\n if (!anchorNode) anchors.push(vNode);\r\n } else {\r\n pCurrent.push(vNode);\r\n }\r\n cssText += newNode.style.cssText.substr(0, newNode.style.cssText.indexOf(':')) + '|';\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n pCurrent = pCurrent.concat(anchors);\r\n\r\n const childNode = pCurrent.pop() || child;\r\n appendNode = newNode = childNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n if (_isMaintainedNode(newInnerNode.parentNode) && !_isMaintainedNode(childNode) && !util.onlyZeroWidthSpace(newInnerNode)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n }\r\n\r\n if (!endPass && !anchorNode && _isMaintainedNode(childNode)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n const aChildren = childNode.childNodes;\r\n for (let a = 0, aLen = aChildren.length; a < aLen; a++) {\r\n newInnerNode.appendChild(aChildren[a]);\r\n }\r\n childNode.appendChild(newInnerNode);\r\n pNode.appendChild(childNode);\r\n nNodeArray.push(newInnerNode);\r\n if (newInnerNode.children.length > 0) ancestor = newNode;\r\n else ancestor = newInnerNode;\r\n } else if (childNode === child) {\r\n if (!endPass) ancestor = newInnerNode;\r\n else ancestor = pNode;\r\n } else if (endPass) {\r\n pNode.appendChild(childNode);\r\n ancestor = newNode;\r\n } else {\r\n newInnerNode.appendChild(childNode);\r\n ancestor = newNode;\r\n }\r\n\r\n if (anchorNode && child.nodeType === 3) {\r\n if (_getMaintainedNode(child)) {\r\n const ancestorAnchorNode = util.getParentElement(ancestor, function (current) {return this._isMaintainedNode(current.parentNode) || current.parentNode === pNode;}.bind(util));\r\n anchorNode.appendChild(ancestorAnchorNode);\r\n newInnerNode = ancestorAnchorNode.cloneNode(false);\r\n nNodeArray.push(newInnerNode);\r\n pNode.appendChild(newInnerNode);\r\n } else {\r\n anchorNode = null;\r\n }\r\n }\r\n }\r\n\r\n cloneNode = child.cloneNode(false);\r\n ancestor.appendChild(cloneNode);\r\n if (child.nodeType === 1 && !util.isBreak(child)) coverNode = cloneNode;\r\n\r\n recursionFunc(child, coverNode);\r\n }\r\n })(element, pNode);\r\n\r\n // not remove tag\r\n if (isRemoveNode && !isRemoveFormat && !_removeCheck.v) {\r\n return {\r\n ancestor: element,\r\n startContainer: startCon,\r\n startOffset: startOff,\r\n endContainer: endCon,\r\n endOffset: endOff\r\n };\r\n }\r\n\r\n isRemoveFormat = isRemoveFormat && isRemoveNode;\r\n\r\n if (isRemoveFormat) {\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n let removeNode = nNodeArray[i];\r\n let textNode, textNode_s, textNode_e;\r\n\r\n if (collapsed) {\r\n textNode = util.createTextNode(util.zeroWidthSpace);\r\n pNode.replaceChild(textNode, removeNode);\r\n } else {\r\n const rChildren = removeNode.childNodes;\r\n textNode_s = rChildren[0];\r\n while (rChildren[0]) {\r\n textNode_e = rChildren[0];\r\n pNode.insertBefore(textNode_e, removeNode);\r\n }\r\n util.removeItem(removeNode);\r\n }\r\n\r\n if (i === 0) {\r\n if (collapsed) {\r\n startContainer = endContainer = textNode;\r\n } else {\r\n startContainer = textNode_s;\r\n endContainer = textNode_e;\r\n }\r\n }\r\n }\r\n } else {\r\n if (isRemoveNode) {\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n this._stripRemoveNode(nNodeArray[i]);\r\n }\r\n }\r\n\r\n if (collapsed) {\r\n startContainer = endContainer = newInnerNode;\r\n }\r\n }\r\n\r\n util.removeEmptyNode(pNode, newInnerNode, false);\r\n\r\n if (collapsed) {\r\n startOffset = startContainer.textContent.length;\r\n endOffset = endContainer.textContent.length;\r\n }\r\n\r\n // endContainer reset\r\n const endConReset = isRemoveFormat || endContainer.textContent.length === 0;\r\n\r\n if (!util.isBreak(endContainer) && endContainer.textContent.length === 0) {\r\n util.removeItem(endContainer);\r\n endContainer = startContainer;\r\n }\r\n endOffset = endConReset ? endContainer.textContent.length : endOffset;\r\n\r\n // node change\r\n const newStartOffset = {s: 0, e: 0};\r\n const startPath = util.getNodePath(startContainer, pNode, newStartOffset);\r\n\r\n const mergeEndCon = !endContainer.parentNode;\r\n if (mergeEndCon) endContainer = startContainer;\r\n const newEndOffset = {s: 0, e: 0};\r\n const endPath = util.getNodePath(endContainer , pNode, (!mergeEndCon && !endConReset) ? newEndOffset : null);\r\n\r\n startOffset += newStartOffset.s;\r\n endOffset = (collapsed ? startOffset : mergeEndCon ? startContainer.textContent.length : endConReset ? endOffset + newStartOffset.s : endOffset + newEndOffset.s);\r\n\r\n // tag merge\r\n const newOffsets = util.mergeSameTags(pNode, [startPath, endPath], true);\r\n\r\n element.parentNode.replaceChild(pNode, element);\r\n\r\n startContainer = util.getNodeFromPath(startPath, pNode);\r\n endContainer = util.getNodeFromPath(endPath, pNode);\r\n\r\n return {\r\n ancestor: pNode,\r\n startContainer: startContainer,\r\n startOffset: startOffset + newOffsets[0],\r\n endContainer: endContainer,\r\n endOffset: endOffset + newOffsets[1]\r\n };\r\n },\r\n\r\n /**\r\n * @description wraps first line selected text.\r\n * @param {Element} element The node of the line that contains the selected text node.\r\n * @param {Element} newInnerNode The dom that will wrap the selected text area\r\n * @param {Function} validation Check if the node should be stripped.\r\n * @param {Node} startCon The startContainer property of the selection object.\r\n * @param {Number} startOff The startOffset property of the selection object.\r\n * @param {Boolean} isRemoveFormat Is the remove all formats command?\r\n * @param {Boolean} isRemoveNode \"newInnerNode\" is remove node?\r\n * @returns {null|Node} If end container is renewed, returned renewed node\r\n * @returns {Object} { ancestor, container, offset, endContainer }\r\n * @private\r\n */\r\n _nodeChange_startLine: function (element, newInnerNode, validation, startCon, startOff, isRemoveFormat, isRemoveNode, _removeCheck, _getMaintainedNode, _isMaintainedNode, _endContainer) {\r\n // not add tag\r\n let parentCon = startCon.parentNode;\r\n while (!parentCon.nextSibling && !parentCon.previousSibling && !util.isFormatElement(parentCon.parentNode) && !util.isWysiwygDiv(parentCon.parentNode)) {\r\n if (parentCon.nodeName === newInnerNode.nodeName) break;\r\n parentCon = parentCon.parentNode;\r\n }\r\n\r\n if (!isRemoveNode && parentCon.nodeName === newInnerNode.nodeName && !util.isFormatElement(parentCon) && !parentCon.nextSibling && util.onlyZeroWidthSpace(startCon.textContent.slice(0, startOff))) {\r\n let sameTag = true;\r\n let s = startCon.previousSibling;\r\n while (s) {\r\n if (!util.onlyZeroWidthSpace(s)) {\r\n sameTag = false;\r\n break;\r\n }\r\n s = s.previousSibling;\r\n }\r\n\r\n if (sameTag) {\r\n util.copyTagAttributes(parentCon, newInnerNode);\r\n\r\n return {\r\n ancestor: element,\r\n container: startCon,\r\n offset: startOff\r\n };\r\n }\r\n }\r\n\r\n // add tag\r\n _removeCheck.v = false;\r\n const el = element;\r\n const nNodeArray = [newInnerNode];\r\n const pNode = element.cloneNode(false);\r\n\r\n let container = startCon;\r\n let offset = startOff;\r\n let passNode = false;\r\n let pCurrent, newNode, appendNode, anchorNode;\r\n\r\n (function recursionFunc(current, ancestor) {\r\n const childNodes = current.childNodes;\r\n\r\n for (let i = 0, len = childNodes.length, vNode, cloneChild; i < len; i++) {\r\n const child = childNodes[i];\r\n if (!child) continue;\r\n let coverNode = ancestor;\r\n\r\n if (passNode && !util.isBreak(child)) {\r\n if (child.nodeType === 1) {\r\n if (util._isIgnoreNodeChange(child)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n cloneChild = child.cloneNode(true);\r\n pNode.appendChild(cloneChild);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n\r\n // end container\r\n if (_endContainer && child.contains(_endContainer)) {\r\n const endPath = util.getNodePath(_endContainer, child);\r\n _endContainer = util.getNodeFromPath(endPath, cloneChild);\r\n }\r\n } else {\r\n recursionFunc(child, child);\r\n }\r\n continue;\r\n }\r\n\r\n newNode = child;\r\n pCurrent = [];\r\n const anchors = [];\r\n while (newNode.parentNode !== null && newNode !== el && newNode !== newInnerNode) {\r\n vNode = validation(newNode);\r\n if (newNode.nodeType === 1 && vNode) {\r\n if (_isMaintainedNode(newNode)) {\r\n if (!anchorNode) anchors.push(vNode);\r\n } else {\r\n pCurrent.push(vNode);\r\n }\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n pCurrent = pCurrent.concat(anchors);\r\n\r\n const isTopNode = pCurrent.length > 0;\r\n const childNode = pCurrent.pop() || child;\r\n appendNode = newNode = childNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n if (_isMaintainedNode(newInnerNode.parentNode) && !_isMaintainedNode(childNode)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n }\r\n\r\n if (!anchorNode && _isMaintainedNode(childNode)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n const aChildren = childNode.childNodes;\r\n for (let a = 0, aLen = aChildren.length; a < aLen; a++) {\r\n newInnerNode.appendChild(aChildren[a]);\r\n }\r\n childNode.appendChild(newInnerNode);\r\n pNode.appendChild(childNode);\r\n ancestor = !_isMaintainedNode(newNode) ? newNode : newInnerNode;\r\n nNodeArray.push(newInnerNode);\r\n } else if (isTopNode) {\r\n newInnerNode.appendChild(childNode);\r\n ancestor = newNode;\r\n } else {\r\n ancestor = newInnerNode;\r\n }\r\n\r\n if (anchorNode && child.nodeType === 3) {\r\n if (_getMaintainedNode(child)) {\r\n const ancestorAnchorNode = util.getParentElement(ancestor, function (current) {return this._isMaintainedNode(current.parentNode) || current.parentNode === pNode;}.bind(util));\r\n anchorNode.appendChild(ancestorAnchorNode);\r\n newInnerNode = ancestorAnchorNode.cloneNode(false);\r\n nNodeArray.push(newInnerNode);\r\n pNode.appendChild(newInnerNode);\r\n } else {\r\n anchorNode = null;\r\n }\r\n }\r\n }\r\n\r\n // startContainer\r\n if (!passNode && child === container) {\r\n let line = pNode;\r\n anchorNode = _getMaintainedNode(child);\r\n const prevNode = util.createTextNode(container.nodeType === 1 ? '' : container.substringData(0, offset));\r\n const textNode = util.createTextNode(container.nodeType === 1 ? '' : container.substringData(offset, (container.length - offset)));\r\n\r\n if (anchorNode) {\r\n const a = _getMaintainedNode(ancestor);\r\n if (a && a.parentNode !== line) {\r\n let m = a;\r\n let p = null;\r\n while (m.parentNode !== line) {\r\n ancestor = p = m.parentNode.cloneNode(false);\r\n while(m.childNodes[0]) {\r\n p.appendChild(m.childNodes[0]);\r\n }\r\n m.appendChild(p);\r\n m = m.parentNode;\r\n }\r\n m.parentNode.appendChild(a);\r\n }\r\n anchorNode = anchorNode.cloneNode(false);\r\n }\r\n\r\n if (!util.onlyZeroWidthSpace(prevNode)) {\r\n ancestor.appendChild(prevNode);\r\n }\r\n\r\n const prevAnchorNode = _getMaintainedNode(ancestor);\r\n if (!!prevAnchorNode) anchorNode = prevAnchorNode;\r\n if (anchorNode) line = anchorNode;\r\n\r\n newNode = ancestor;\r\n pCurrent = [];\r\n while (newNode !== line && newNode !== null) {\r\n vNode = validation(newNode);\r\n if (newNode.nodeType === 1 && vNode) {\r\n pCurrent.push(vNode);\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n\r\n const childNode = pCurrent.pop() || ancestor;\r\n appendNode = newNode = childNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n if (childNode !== ancestor) {\r\n newInnerNode.appendChild(childNode);\r\n ancestor = newNode;\r\n } else {\r\n ancestor = newInnerNode;\r\n }\r\n\r\n if (util.isBreak(child)) newInnerNode.appendChild(child.cloneNode(false));\r\n line.appendChild(newInnerNode);\r\n\r\n container = textNode;\r\n offset = 0;\r\n passNode = true;\r\n\r\n ancestor.appendChild(container);\r\n continue;\r\n }\r\n\r\n vNode = !passNode ? child.cloneNode(false) : validation(child);\r\n if (vNode) {\r\n ancestor.appendChild(vNode);\r\n if (child.nodeType === 1 && !util.isBreak(child)) coverNode = vNode;\r\n }\r\n\r\n recursionFunc(child, coverNode);\r\n }\r\n })(element, pNode);\r\n\r\n // not remove tag\r\n if (isRemoveNode && !isRemoveFormat && !_removeCheck.v) {\r\n return {\r\n ancestor: element,\r\n container: startCon,\r\n offset: startOff,\r\n endContainer: _endContainer\r\n };\r\n }\r\n\r\n isRemoveFormat = isRemoveFormat && isRemoveNode;\r\n\r\n if (isRemoveFormat) {\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n let removeNode = nNodeArray[i];\r\n\r\n const rChildren = removeNode.childNodes;\r\n const textNode = rChildren[0];\r\n while (rChildren[0]) {\r\n pNode.insertBefore(rChildren[0], removeNode);\r\n }\r\n util.removeItem(removeNode);\r\n\r\n if (i === 0) container = textNode;\r\n }\r\n } else if (isRemoveNode) {\r\n newInnerNode = newInnerNode.firstChild;\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n this._stripRemoveNode(nNodeArray[i]);\r\n }\r\n }\r\n\r\n if (!isRemoveFormat && pNode.childNodes.length === 0) {\r\n if (element.childNodes) {\r\n container = element.childNodes[0];\r\n } else {\r\n container = util.createTextNode(util.zeroWidthSpace);\r\n element.appendChild(container);\r\n }\r\n } else {\r\n util.removeEmptyNode(pNode, newInnerNode, false);\r\n\r\n if (util.onlyZeroWidthSpace(pNode.textContent)) {\r\n container = pNode.firstChild;\r\n offset = 0;\r\n }\r\n\r\n // node change\r\n const offsets = {s: 0, e: 0};\r\n const path = util.getNodePath(container, pNode, offsets);\r\n offset += offsets.s;\r\n\r\n // tag merge\r\n const newOffsets = util.mergeSameTags(pNode, [path], true);\r\n\r\n element.parentNode.replaceChild(pNode, element);\r\n\r\n container = util.getNodeFromPath(path, pNode);\r\n offset += newOffsets[0];\r\n }\r\n\r\n return {\r\n ancestor: pNode,\r\n container: container,\r\n offset: offset,\r\n endContainer: _endContainer\r\n };\r\n },\r\n\r\n /**\r\n * @description wraps mid lines selected text.\r\n * @param {Element} element The node of the line that contains the selected text node.\r\n * @param {Element} newInnerNode The dom that will wrap the selected text area\r\n * @param {Function} validation Check if the node should be stripped.\r\n * @param {Boolean} isRemoveFormat Is the remove all formats command?\r\n * @param {Boolean} isRemoveNode \"newInnerNode\" is remove node?\r\n * @param {Node} _endContainer Offset node of last line already modified (end.container)\r\n * @returns {Object} { ancestor, endContainer: \"If end container is renewed, returned renewed node\" }\r\n * @private\r\n */\r\n _nodeChange_middleLine: function (element, newInnerNode, validation, isRemoveFormat, isRemoveNode, _removeCheck, _endContainer) {\r\n // not add tag\r\n if (!isRemoveNode) {\r\n // end container path\r\n let endPath = null;\r\n if (_endContainer && element.contains(_endContainer)) endPath = util.getNodePath(_endContainer, element);\r\n\r\n const tempNode = element.cloneNode(true);\r\n const newNodeName = newInnerNode.nodeName;\r\n const newCssText = newInnerNode.style.cssText;\r\n const newClass = newInnerNode.className;\r\n\r\n let children = tempNode.childNodes;\r\n let i = 0, len = children.length;\r\n for (let child; i < len; i++) {\r\n child = children[i];\r\n if (child.nodeType === 3) break;\r\n if (child.nodeName === newNodeName) {\r\n child.style.cssText += newCssText;\r\n util.addClass(child, newClass);\r\n } else if (!util.isBreak(child) && util._isIgnoreNodeChange(child)) {\r\n continue;\r\n } else if (len === 1) {\r\n children = child.childNodes;\r\n len = children.length;\r\n i = -1;\r\n continue;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n if (len > 0 && i === len) {\r\n element.innerHTML = tempNode.innerHTML;\r\n return {\r\n ancestor: element,\r\n endContainer: endPath ? util.getNodeFromPath(endPath, element) : null\r\n };\r\n }\r\n }\r\n\r\n // add tag\r\n _removeCheck.v = false;\r\n const pNode = element.cloneNode(false);\r\n const nNodeArray = [newInnerNode];\r\n let noneChange = true;\r\n\r\n (function recursionFunc(current, ancestor) {\r\n const childNodes = current.childNodes;\r\n\r\n for (let i = 0, len = childNodes.length, vNode, cloneChild; i < len; i++) {\r\n let child = childNodes[i];\r\n if (!child) continue;\r\n let coverNode = ancestor;\r\n\r\n if (!util.isBreak(child) && util._isIgnoreNodeChange(child)) {\r\n if (newInnerNode.childNodes.length > 0) {\r\n pNode.appendChild(newInnerNode);\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n }\r\n\r\n cloneChild = child.cloneNode(true);\r\n pNode.appendChild(cloneChild);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n ancestor = newInnerNode;\r\n\r\n // end container\r\n if (_endContainer && child.contains(_endContainer)) {\r\n const endPath = util.getNodePath(_endContainer, child);\r\n _endContainer = util.getNodeFromPath(endPath, cloneChild);\r\n }\r\n\r\n continue;\r\n } else {\r\n vNode = validation(child);\r\n if (vNode) {\r\n noneChange = false;\r\n ancestor.appendChild(vNode);\r\n if (child.nodeType === 1) coverNode = vNode;\r\n }\r\n }\r\n\r\n if (!util.isBreak(child)) recursionFunc(child, coverNode);\r\n }\r\n })(element, newInnerNode);\r\n\r\n // not remove tag\r\n if (noneChange || (isRemoveNode && !isRemoveFormat && !_removeCheck.v)) return { ancestor: element, endContainer: _endContainer };\r\n\r\n pNode.appendChild(newInnerNode);\r\n\r\n if (isRemoveFormat && isRemoveNode) {\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n let removeNode = nNodeArray[i];\r\n\r\n const rChildren = removeNode.childNodes;\r\n while (rChildren[0]) {\r\n pNode.insertBefore(rChildren[0], removeNode);\r\n }\r\n util.removeItem(removeNode);\r\n }\r\n } else if (isRemoveNode) {\r\n newInnerNode = newInnerNode.firstChild;\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n this._stripRemoveNode(nNodeArray[i]);\r\n }\r\n }\r\n\r\n util.removeEmptyNode(pNode, newInnerNode, false);\r\n util.mergeSameTags(pNode, null, true);\r\n\r\n // node change\r\n element.parentNode.replaceChild(pNode, element);\r\n return { ancestor: pNode, endContainer: _endContainer };\r\n },\r\n\r\n /**\r\n * @description wraps last line selected text.\r\n * @param {Element} element The node of the line that contains the selected text node.\r\n * @param {Element} newInnerNode The dom that will wrap the selected text area\r\n * @param {Function} validation Check if the node should be stripped.\r\n * @param {Node} endCon The endContainer property of the selection object.\r\n * @param {Number} endOff The endOffset property of the selection object.\r\n * @param {Boolean} isRemoveFormat Is the remove all formats command?\r\n * @param {Boolean} isRemoveNode \"newInnerNode\" is remove node?\r\n * @returns {Object} { ancestor, container, offset }\r\n * @private\r\n */\r\n _nodeChange_endLine: function (element, newInnerNode, validation, endCon, endOff, isRemoveFormat, isRemoveNode, _removeCheck, _getMaintainedNode, _isMaintainedNode) {\r\n // not add tag\r\n let parentCon = endCon.parentNode;\r\n while (!parentCon.nextSibling && !parentCon.previousSibling && !util.isFormatElement(parentCon.parentNode) && !util.isWysiwygDiv(parentCon.parentNode)) {\r\n if (parentCon.nodeName === newInnerNode.nodeName) break;\r\n parentCon = parentCon.parentNode;\r\n }\r\n\r\n if (!isRemoveNode && parentCon.nodeName === newInnerNode.nodeName && !util.isFormatElement(parentCon) && !parentCon.previousSibling && util.onlyZeroWidthSpace(endCon.textContent.slice(endOff))) {\r\n let sameTag = true;\r\n let e = endCon.nextSibling;\r\n while (e) {\r\n if (!util.onlyZeroWidthSpace(e)) {\r\n sameTag = false;\r\n break;\r\n }\r\n e = e.nextSibling;\r\n }\r\n\r\n if (sameTag) {\r\n util.copyTagAttributes(parentCon, newInnerNode);\r\n\r\n return {\r\n ancestor: element,\r\n container: endCon,\r\n offset: endOff\r\n };\r\n }\r\n }\r\n\r\n // add tag\r\n _removeCheck.v = false;\r\n const el = element;\r\n const nNodeArray = [newInnerNode];\r\n const pNode = element.cloneNode(false);\r\n\r\n let container = endCon;\r\n let offset = endOff;\r\n let passNode = false;\r\n let pCurrent, newNode, appendNode, anchorNode;\r\n\r\n (function recursionFunc(current, ancestor) {\r\n const childNodes = current.childNodes;\r\n\r\n for (let i = childNodes.length - 1, vNode; 0 <= i; i--) {\r\n const child = childNodes[i];\r\n if (!child) continue;\r\n let coverNode = ancestor;\r\n\r\n if (passNode && !util.isBreak(child)) {\r\n if (child.nodeType === 1) {\r\n if (util._isIgnoreNodeChange(child)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n const cloneChild = child.cloneNode(true);\r\n pNode.insertBefore(cloneChild, ancestor);\r\n pNode.insertBefore(newInnerNode, cloneChild);\r\n nNodeArray.push(newInnerNode);\r\n } else {\r\n recursionFunc(child, child);\r\n }\r\n continue;\r\n }\r\n\r\n newNode = child;\r\n pCurrent = [];\r\n const anchors = [];\r\n while (newNode.parentNode !== null && newNode !== el && newNode !== newInnerNode) {\r\n vNode = validation(newNode);\r\n if (vNode && newNode.nodeType === 1) {\r\n if (_isMaintainedNode(newNode)) {\r\n if (!anchorNode) anchors.push(vNode);\r\n } else {\r\n pCurrent.push(vNode);\r\n }\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n pCurrent = pCurrent.concat(anchors);\r\n\r\n const isTopNode = pCurrent.length > 0;\r\n const childNode = pCurrent.pop() || child;\r\n appendNode = newNode = childNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n if (_isMaintainedNode(newInnerNode.parentNode) && !_isMaintainedNode(childNode)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n pNode.insertBefore(newInnerNode, pNode.firstChild);\r\n nNodeArray.push(newInnerNode);\r\n }\r\n\r\n if (!anchorNode && _isMaintainedNode(childNode)) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n const aChildren = childNode.childNodes;\r\n for (let a = 0, aLen = aChildren.length; a < aLen; a++) {\r\n newInnerNode.appendChild(aChildren[a]);\r\n }\r\n childNode.appendChild(newInnerNode);\r\n pNode.insertBefore(childNode, pNode.firstChild);\r\n nNodeArray.push(newInnerNode);\r\n if (newInnerNode.children.length > 0) ancestor = newNode;\r\n else ancestor = newInnerNode;\r\n } else if (isTopNode) {\r\n newInnerNode.insertBefore(childNode, newInnerNode.firstChild);\r\n ancestor = newNode;\r\n } else {\r\n ancestor = newInnerNode;\r\n }\r\n\r\n if (anchorNode && child.nodeType === 3) {\r\n if (_getMaintainedNode(child)) {\r\n const ancestorAnchorNode = util.getParentElement(ancestor, function (current) {return this._isMaintainedNode(current.parentNode) || current.parentNode === pNode;}.bind(util));\r\n anchorNode.appendChild(ancestorAnchorNode);\r\n newInnerNode = ancestorAnchorNode.cloneNode(false);\r\n nNodeArray.push(newInnerNode);\r\n pNode.insertBefore(newInnerNode, pNode.firstChild);\r\n } else {\r\n anchorNode = null;\r\n }\r\n }\r\n }\r\n\r\n // endContainer\r\n if (!passNode && child === container) {\r\n anchorNode = _getMaintainedNode(child);\r\n const afterNode = util.createTextNode(container.nodeType === 1 ? '' : container.substringData(offset, (container.length - offset)));\r\n const textNode = util.createTextNode(container.nodeType === 1 ? '' : container.substringData(0, offset));\r\n\r\n if (anchorNode) {\r\n anchorNode = anchorNode.cloneNode(false);\r\n const a = _getMaintainedNode(ancestor);\r\n if (a && a.parentNode !== pNode) {\r\n let m = a;\r\n let p = null;\r\n while (m.parentNode !== pNode) {\r\n ancestor = p = m.parentNode.cloneNode(false);\r\n while(m.childNodes[0]) {\r\n p.appendChild(m.childNodes[0]);\r\n }\r\n m.appendChild(p);\r\n m = m.parentNode;\r\n }\r\n m.parentNode.insertBefore(a, m.parentNode.firstChild);\r\n }\r\n anchorNode = anchorNode.cloneNode(false);\r\n } else if (_isMaintainedNode(newInnerNode.parentNode) && !anchorNode) {\r\n newInnerNode = newInnerNode.cloneNode(false);\r\n pNode.appendChild(newInnerNode);\r\n nNodeArray.push(newInnerNode);\r\n }\r\n\r\n if (!util.onlyZeroWidthSpace(afterNode)) {\r\n ancestor.insertBefore(afterNode, ancestor.firstChild);\r\n }\r\n\r\n newNode = ancestor;\r\n pCurrent = [];\r\n while (newNode !== pNode && newNode !== null) {\r\n vNode = _isMaintainedNode(newNode) ? null : validation(newNode);\r\n if (vNode && newNode.nodeType === 1) {\r\n pCurrent.push(vNode);\r\n }\r\n newNode = newNode.parentNode;\r\n }\r\n\r\n const childNode = pCurrent.pop() || ancestor;\r\n appendNode = newNode = childNode;\r\n while (pCurrent.length > 0) {\r\n newNode = pCurrent.pop();\r\n appendNode.appendChild(newNode);\r\n appendNode = newNode;\r\n }\r\n\r\n if (childNode !== ancestor) {\r\n newInnerNode.insertBefore(childNode, newInnerNode.firstChild);\r\n ancestor = newNode;\r\n } else {\r\n ancestor = newInnerNode;\r\n }\r\n\r\n if (util.isBreak(child)) newInnerNode.appendChild(child.cloneNode(false));\r\n\r\n if (anchorNode) {\r\n anchorNode.insertBefore(newInnerNode, anchorNode.firstChild);\r\n pNode.insertBefore(anchorNode, pNode.firstChild);\r\n anchorNode = null;\r\n } else {\r\n pNode.insertBefore(newInnerNode, pNode.firstChild);\r\n }\r\n\r\n container = textNode;\r\n offset = textNode.data.length;\r\n passNode = true;\r\n\r\n ancestor.insertBefore(container, ancestor.firstChild);\r\n continue;\r\n }\r\n\r\n vNode = !passNode ? child.cloneNode(false) : validation(child);\r\n if (vNode) {\r\n ancestor.insertBefore(vNode, ancestor.firstChild);\r\n if (child.nodeType === 1 && !util.isBreak(child)) coverNode = vNode;\r\n }\r\n\r\n recursionFunc(child, coverNode);\r\n }\r\n })(element, pNode);\r\n\r\n // not remove tag\r\n if (isRemoveNode && !isRemoveFormat && !_removeCheck.v) {\r\n return {\r\n ancestor: element,\r\n container: endCon,\r\n offset: endOff\r\n };\r\n }\r\n\r\n isRemoveFormat = isRemoveFormat && isRemoveNode;\r\n\r\n if (isRemoveFormat) {\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n let removeNode = nNodeArray[i];\r\n\r\n const rChildren = removeNode.childNodes;\r\n let textNode = null;\r\n while (rChildren[0]) {\r\n textNode = rChildren[0];\r\n pNode.insertBefore(textNode, removeNode);\r\n }\r\n util.removeItem(removeNode);\r\n\r\n if (i === nNodeArray.length - 1) {\r\n container = textNode;\r\n offset = textNode.textContent.length;\r\n }\r\n }\r\n } else if (isRemoveNode) {\r\n newInnerNode = newInnerNode.firstChild;\r\n for (let i = 0; i < nNodeArray.length; i++) {\r\n this._stripRemoveNode(nNodeArray[i]);\r\n }\r\n }\r\n\r\n if (!isRemoveFormat && pNode.childNodes.length === 0) {\r\n if (element.childNodes) {\r\n container = element.childNodes[0];\r\n } else {\r\n container = util.createTextNode(util.zeroWidthSpace);\r\n element.appendChild(container);\r\n }\r\n } else {\r\n if (!isRemoveNode && newInnerNode.textContent.length === 0) {\r\n util.removeEmptyNode(pNode, null, false);\r\n return {\r\n ancestor: null,\r\n container: null,\r\n offset: 0\r\n };\r\n }\r\n\r\n util.removeEmptyNode(pNode, newInnerNode, false);\r\n\r\n if (util.onlyZeroWidthSpace(pNode.textContent)) {\r\n container = pNode.firstChild;\r\n offset = container.textContent.length;\r\n } else if (util.onlyZeroWidthSpace(container)) {\r\n container = newInnerNode;\r\n offset = 1;\r\n }\r\n\r\n // node change\r\n const offsets = {s: 0, e: 0};\r\n const path = util.getNodePath(container, pNode, offsets);\r\n offset += offsets.s;\r\n\r\n // tag merge\r\n const newOffsets = util.mergeSameTags(pNode, [path], true);\r\n\r\n element.parentNode.replaceChild(pNode, element);\r\n\r\n container = util.getNodeFromPath(path, pNode);\r\n offset += newOffsets[0];\r\n }\r\n\r\n return {\r\n ancestor: pNode,\r\n container: container,\r\n offset: container.nodeType === 1 && offset === 1 ? container.childNodes.length : offset\r\n };\r\n },\r\n\r\n /**\r\n * @description Run plugin calls and basic commands.\r\n * @param {String} command Command string\r\n * @param {String} display Display type string ('command', 'submenu', 'dialog', 'container')\r\n * @param {Element} target The element of command button\r\n */\r\n actionCall: function (command, display, target) {\r\n // call plugins\r\n if (display) {\r\n if (/more/i.test(display)) {\r\n if (target !== this._moreLayerActiveButton) {\r\n const layer = context.element.toolbar.querySelector('.' + command);\r\n if (layer) {\r\n if (this._moreLayerActiveButton) this.moreLayerOff();\r\n\r\n this._moreLayerActiveButton = target;\r\n layer.style.display = 'block';\r\n\r\n event._showToolbarBalloon();\r\n event._showToolbarInline();\r\n }\r\n util.addClass(target, 'on');\r\n } else {\r\n const layer = context.element.toolbar.querySelector('.' + this._moreLayerActiveButton.getAttribute('data-command'));\r\n if (layer) {\r\n this.moreLayerOff();\r\n\r\n event._showToolbarBalloon();\r\n event._showToolbarInline();\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (/container/.test(display) && (this._menuTray[command] === null || target !== this.containerActiveButton)) {\r\n this.callPlugin(command, this.containerOn.bind(this, target), target);\r\n return;\r\n }\r\n\r\n if (this.isReadOnly && util.arrayIncludes(this.resizingDisabledButtons, target)) return;\r\n if (/submenu/.test(display) && (this._menuTray[command] === null || target !== this.submenuActiveButton)) {\r\n this.callPlugin(command, this.submenuOn.bind(this, target), target);\r\n return;\r\n } else if (/dialog/.test(display)) {\r\n this.callPlugin(command, this.plugins[command].open.bind(this), target);\r\n return;\r\n } else if (/command/.test(display)) {\r\n this.callPlugin(command, this.plugins[command].action.bind(this), target);\r\n } else if (/fileBrowser/.test(display)) {\r\n this.callPlugin(command, this.plugins[command].open.bind(this, null), target);\r\n }\r\n } // default command\r\n else if (command) {\r\n this.commandHandler(target, command);\r\n }\r\n\r\n if (/submenu/.test(display)) {\r\n this.submenuOff();\r\n } else if (!/command/.test(display)) {\r\n this.submenuOff();\r\n this.containerOff();\r\n }\r\n },\r\n\r\n /**\r\n * @description Execute command of command button(All Buttons except submenu and dialog)\r\n * (selectAll, codeView, fullScreen, indent, outdent, undo, redo, removeFormat, print, preview, showBlocks, save, bold, underline, italic, strike, subscript, superscript, copy, cut, paste)\r\n * @param {Element|null} target The element of command button\r\n * @param {String} command Property of command button (data-value)\r\n */\r\n commandHandler: function (target, command) {\r\n if (core.isReadOnly && !/copy|cut|selectAll|codeView|fullScreen|print|preview|showBlocks/.test(command)) return;\r\n switch (command) {\r\n case 'copy':\r\n case 'cut':\r\n this.execCommand(command);\r\n break;\r\n case 'paste':\r\n break;\r\n case 'selectAll':\r\n this.containerOff();\r\n const wysiwyg = context.element.wysiwyg;\r\n let first = util.getChildElement(wysiwyg.firstChild, function (current) { return current.childNodes.length === 0 || current.nodeType === 3; }, false) || wysiwyg.firstChild;\r\n let last = util.getChildElement(wysiwyg.lastChild, function (current) { return current.childNodes.length === 0 || current.nodeType === 3; }, true) || wysiwyg.lastChild;\r\n if (!first || !last) return;\r\n if (util.isMedia(first)) {\r\n const info = this.getFileComponent(first);\r\n const br = util.createElement('BR');\r\n const format = util.createElement(options.defaultTag);\r\n format.appendChild(br);\r\n first = info ? info.component : first;\r\n first.parentNode.insertBefore(format, first);\r\n first = br;\r\n }\r\n if (util.isMedia(last)) {\r\n const br = util.createElement('BR');\r\n const format = util.createElement(options.defaultTag);\r\n format.appendChild(br);\r\n wysiwyg.appendChild(format);\r\n last = br;\r\n }\r\n event._showToolbarBalloon(this.setRange(first, 0, last, last.textContent.length));\r\n break;\r\n case 'codeView':\r\n this.toggleCodeView();\r\n break;\r\n case 'fullScreen':\r\n this.toggleFullScreen(target);\r\n break;\r\n case 'indent':\r\n case 'outdent':\r\n this.indent(command);\r\n break;\r\n case 'undo':\r\n this.history.undo();\r\n break;\r\n case 'redo':\r\n this.history.redo();\r\n break;\r\n case 'removeFormat':\r\n this.removeFormat();\r\n this.focus();\r\n break;\r\n case 'print':\r\n this.print();\r\n break;\r\n case 'preview':\r\n this.preview();\r\n break;\r\n case 'showBlocks':\r\n this.toggleDisplayBlocks();\r\n break;\r\n case 'dir':\r\n this.setDir(options.rtl ? 'ltr' : 'rtl');\r\n break;\r\n case 'dir_ltr':\r\n this.setDir('ltr');\r\n break;\r\n case 'dir_rtl':\r\n this.setDir('rtl');\r\n break;\r\n case 'save':\r\n if (typeof options.callBackSave === 'function') {\r\n options.callBackSave(this.getContents(false), this._variable.isChanged);\r\n } else if (this._variable.isChanged && typeof functions.save === 'function') {\r\n functions.save();\r\n } else {\r\n throw Error('[SUNEDITOR.core.commandHandler.fail] Please register call back function in creation option. (callBackSave : Function)');\r\n }\r\n\r\n this._variable.isChanged = false;\r\n if (context.tool.save) context.tool.save.setAttribute('disabled', true);\r\n break;\r\n default : // 'STRONG', 'U', 'EM', 'DEL', 'SUB', 'SUP'..\r\n command = options._defaultCommand[command.toLowerCase()] || command;\r\n if (!this.commandMap[command]) this.commandMap[command] = target;\r\n\r\n const nodesMap = this._variable.currentNodesMap;\r\n const cmd = nodesMap.indexOf(command) > -1 ? null : util.createElement(command);\r\n let removeNode = command;\r\n\r\n if (/^SUB$/i.test(command) && nodesMap.indexOf('SUP') > -1) {\r\n removeNode = 'SUP';\r\n } else if (/^SUP$/i.test(command) && nodesMap.indexOf('SUB') > -1) {\r\n removeNode = 'SUB';\r\n }\r\n\r\n this.nodeChange(cmd, this._commandMapStyles[command] || null, [removeNode], false);\r\n this.focus();\r\n }\r\n },\r\n\r\n /**\r\n * @description Remove format of the currently selected range\r\n */\r\n removeFormat: function () {\r\n this.nodeChange(null, null, null, null);\r\n },\r\n\r\n /**\r\n * @description This method implements indentation to selected range.\r\n * Setted \"margin-left\" to \"25px\" in the top \"P\" tag of the parameter node.\r\n * @param {String} command Separator (\"indent\" or \"outdent\")\r\n */\r\n indent: function (command) {\r\n const range = this.getRange();\r\n const rangeLines = this.getSelectedElements(null);\r\n const cells = [];\r\n const shift = 'indent' !== command;\r\n const marginDir = options.rtl ? 'marginRight' : 'marginLeft';\r\n let sc = range.startContainer;\r\n let ec = range.endContainer;\r\n let so = range.startOffset;\r\n let eo = range.endOffset;\r\n\r\n for (let i = 0, len = rangeLines.length, f, margin; i < len; i++) {\r\n f = rangeLines[i];\r\n if (!util.isListCell(f) || !this.plugins.list) {\r\n margin = /\\d+/.test(f.style[marginDir]) ? util.getNumber(f.style[marginDir], 0) : 0;\r\n if (shift) {\r\n margin -= 25;\r\n } else {\r\n margin += 25;\r\n }\r\n util.setStyle(f, marginDir, (margin <= 0 ? '' : margin + 'px'));\r\n } else {\r\n if (shift || f.previousElementSibling) {\r\n cells.push(f);\r\n }\r\n }\r\n }\r\n\r\n // list cells\r\n if (cells.length > 0) {\r\n this.plugins.list.editInsideList.call(this, shift, cells);\r\n }\r\n\r\n this.effectNode = null;\r\n this.setRange(sc, so, ec, eo);\r\n\r\n // history stack\r\n this.history.push(false);\r\n },\r\n\r\n /**\r\n * @description Add or remove the class name of \"body\" so that the code block is visible\r\n */\r\n toggleDisplayBlocks: function () {\r\n const wysiwyg = context.element.wysiwyg;\r\n util.toggleClass(wysiwyg, 'se-show-block');\r\n if (util.hasClass(wysiwyg, 'se-show-block')) {\r\n util.addClass(this._styleCommandMap.showBlocks, 'active');\r\n } else {\r\n util.removeClass(this._styleCommandMap.showBlocks, 'active');\r\n }\r\n this._resourcesStateChange();\r\n },\r\n\r\n /**\r\n * @description Changes to code view or wysiwyg view\r\n */\r\n toggleCodeView: function () {\r\n const isCodeView = this._variable.isCodeView;\r\n this.controllersOff();\r\n util.setDisabledButtons(!isCodeView, this.codeViewDisabledButtons);\r\n\r\n if (isCodeView) {\r\n if (!util.isNonEditable(context.element.wysiwygFrame)) this._setCodeDataToEditor();\r\n context.element.wysiwygFrame.scrollTop = 0;\r\n context.element.code.style.display = 'none';\r\n context.element.wysiwygFrame.style.display = 'block';\r\n\r\n this._variable._codeOriginCssText = this._variable._codeOriginCssText.replace(/(\\s?display(\\s+)?:(\\s+)?)[a-zA-Z]+(?=;)/, 'display: none');\r\n this._variable._wysiwygOriginCssText = this._variable._wysiwygOriginCssText.replace(/(\\s?display(\\s+)?:(\\s+)?)[a-zA-Z]+(?=;)/, 'display: block');\r\n\r\n if (options.height === 'auto' && !options.codeMirrorEditor) context.element.code.style.height = '0px';\r\n\r\n this._variable.isCodeView = false;\r\n\r\n if (!this._variable.isFullScreen) {\r\n this._notHideToolbar = false;\r\n if (/balloon|balloon-always/i.test(options.mode)) {\r\n context.element._arrow.style.display = '';\r\n this._isInline = false;\r\n this._isBalloon = true;\r\n event._hideToolbar();\r\n }\r\n }\r\n\r\n this.nativeFocus();\r\n util.removeClass(this._styleCommandMap.codeView, 'active');\r\n\r\n // history stack\r\n if (!util.isNonEditable(context.element.wysiwygFrame)) {\r\n this.history.push(false);\r\n this.history._resetCachingButton();\r\n }\r\n } else {\r\n this._setEditorDataToCodeView();\r\n this._variable._codeOriginCssText = this._variable._codeOriginCssText.replace(/(\\s?display(\\s+)?:(\\s+)?)[a-zA-Z]+(?=;)/, 'display: block');\r\n this._variable._wysiwygOriginCssText = this._variable._wysiwygOriginCssText.replace(/(\\s?display(\\s+)?:(\\s+)?)[a-zA-Z]+(?=;)/, 'display: none');\r\n\r\n if (this._variable.isFullScreen) context.element.code.style.height = '100%';\r\n else if (options.height === 'auto' && !options.codeMirrorEditor) context.element.code.style.height = context.element.code.scrollHeight > 0 ? (context.element.code.scrollHeight + 'px') : 'auto';\r\n\r\n if (options.codeMirrorEditor) options.codeMirrorEditor.refresh();\r\n\r\n this._variable.isCodeView = true;\r\n\r\n if (!this._variable.isFullScreen) {\r\n this._notHideToolbar = true;\r\n if (this._isBalloon) {\r\n context.element._arrow.style.display = 'none';\r\n context.element.toolbar.style.left = '';\r\n this._isInline = true;\r\n this._isBalloon = false;\r\n event._showToolbarInline();\r\n }\r\n }\r\n\r\n this._variable._range = null;\r\n context.element.code.focus();\r\n util.addClass(this._styleCommandMap.codeView, 'active');\r\n }\r\n\r\n this._checkPlaceholder();\r\n if (this.isReadOnly) util.setDisabledButtons(true, this.resizingDisabledButtons);\r\n\r\n // user event\r\n if (typeof functions.toggleCodeView === 'function') functions.toggleCodeView(this._variable.isCodeView, this);\r\n },\r\n\r\n /**\r\n * @description Convert the data of the code view and put it in the WYSIWYG area.\r\n * @private\r\n */\r\n _setCodeDataToEditor: function () {\r\n const code_html = this._getCodeView();\r\n\r\n if (options.fullPage) {\r\n const parseDocument = this._parser.parseFromString(code_html, 'text/html');\r\n\r\n if (!this.options.__allowedScriptTag) {\r\n const headChildren = parseDocument.head.children;\r\n for (let i = 0, len = headChildren.length; i < len; i++) {\r\n if (/^script$/i.test(headChildren[i].tagName)) {\r\n parseDocument.head.removeChild(headChildren[i]);\r\n i--, len--;\r\n }\r\n }\r\n }\r\n\r\n let headers = parseDocument.head.innerHTML;\r\n if (!parseDocument.head.querySelector('link[rel=\"stylesheet\"]') || (this.options.height === 'auto' && !parseDocument.head.querySelector('style'))) {\r\n headers += util._setIframeCssTags(this.options);\r\n }\r\n\r\n this._wd.head.innerHTML = headers;\r\n this._wd.body.innerHTML = this.convertContentsForEditor(parseDocument.body.innerHTML);\r\n\r\n const attrs = parseDocument.body.attributes;\r\n for (let i = 0, len = attrs.length; i < len; i++) {\r\n if (attrs[i].name === 'contenteditable') continue;\r\n this._wd.body.setAttribute(attrs[i].name, attrs[i].value);\r\n }\r\n if (!util.hasClass(this._wd.body, 'sun-editor-editable')) {\r\n const editableClasses = options._editableClass.split(' ');\r\n for (let i = 0; i < editableClasses.length; i++) {\r\n util.addClass(this._wd.body, options._editableClass[i]);\r\n }\r\n }\r\n } else {\r\n context.element.wysiwyg.innerHTML = code_html.length > 0 ? this.convertContentsForEditor(code_html) : '<' + options.defaultTag + '>
      ';\r\n }\r\n },\r\n\r\n /**\r\n * @description Convert the data of the WYSIWYG area and put it in the code view area.\r\n * @private\r\n */\r\n _setEditorDataToCodeView: function () {\r\n const codeContents = this.convertHTMLForCodeView(context.element.wysiwyg, false);\r\n let codeValue = '';\r\n\r\n if (options.fullPage) {\r\n const attrs = util.getAttributesToString(this._wd.body, null);\r\n codeValue = '\\n\\n' + this._wd.head.outerHTML.replace(/>(?!\\n)/g, '>\\n') + '\\n' + codeContents + '\\n';\r\n } else {\r\n codeValue = codeContents;\r\n }\r\n\r\n context.element.code.style.display = 'block';\r\n context.element.wysiwygFrame.style.display = 'none';\r\n\r\n this._setCodeView(codeValue);\r\n },\r\n\r\n /**\r\n * @description Changes to full screen or default screen\r\n * @param {Element|null} element full screen button\r\n */\r\n toggleFullScreen: function (element) {\r\n const topArea = context.element.topArea;\r\n const toolbar = context.element.toolbar;\r\n const editorArea = context.element.editorArea;\r\n const wysiwygFrame = context.element.wysiwygFrame;\r\n const code = context.element.code;\r\n const _var = this._variable;\r\n this.controllersOff();\r\n\r\n const wasToolbarHidden = (toolbar.style.display === 'none' || (this._isInline && !this._inlineToolbarAttr.isShow));\r\n\r\n if (!_var.isFullScreen) {\r\n _var.isFullScreen = true;\r\n\r\n _var._fullScreenAttrs.inline = this._isInline;\r\n _var._fullScreenAttrs.balloon = this._isBalloon;\r\n\r\n if (this._isInline || this._isBalloon) {\r\n this._isInline = false;\r\n this._isBalloon = false;\r\n }\r\n\r\n if (!!options.toolbarContainer) context.element.relative.insertBefore(toolbar, editorArea);\r\n\r\n topArea.style.position = 'fixed';\r\n topArea.style.top = '0';\r\n topArea.style.left = '0';\r\n topArea.style.width = '100%';\r\n topArea.style.maxWidth = '100%';\r\n topArea.style.height = '100%';\r\n topArea.style.zIndex = '2147483647';\r\n\r\n if (context.element._stickyDummy.style.display !== ('none' && '')) {\r\n _var._fullScreenAttrs.sticky = true;\r\n context.element._stickyDummy.style.display = 'none';\r\n util.removeClass(toolbar, 'se-toolbar-sticky');\r\n }\r\n\r\n _var._bodyOverflow = _d.body.style.overflow;\r\n _d.body.style.overflow = 'hidden';\r\n\r\n _var._editorAreaOriginCssText = editorArea.style.cssText;\r\n _var._wysiwygOriginCssText = wysiwygFrame.style.cssText;\r\n _var._codeOriginCssText = code.style.cssText;\r\n\r\n editorArea.style.cssText = toolbar.style.cssText = '';\r\n wysiwygFrame.style.cssText = (wysiwygFrame.style.cssText.match(/\\s?display(\\s+)?:(\\s+)?[a-zA-Z]+;/) || [''])[0] + options._editorStyles.editor;\r\n code.style.cssText = (code.style.cssText.match(/\\s?display(\\s+)?:(\\s+)?[a-zA-Z]+;/) || [''])[0];\r\n toolbar.style.width = wysiwygFrame.style.height = code.style.height = '100%';\r\n toolbar.style.position = 'relative';\r\n toolbar.style.display = 'block';\r\n\r\n _var.innerHeight_fullScreen = (_w.innerHeight - toolbar.offsetHeight);\r\n editorArea.style.height = (_var.innerHeight_fullScreen - options.fullScreenOffset) + 'px';\r\n\r\n if (element) util.changeElement(element.firstElementChild, icons.reduction);\r\n\r\n if (options.iframe && options.height === 'auto') {\r\n editorArea.style.overflow = 'auto';\r\n this._iframeAutoHeight();\r\n }\r\n\r\n context.element.topArea.style.marginTop = options.fullScreenOffset + 'px';\r\n util.addClass(this._styleCommandMap.fullScreen, 'active');\r\n } else {\r\n _var.isFullScreen = false;\r\n\r\n wysiwygFrame.style.cssText = _var._wysiwygOriginCssText;\r\n code.style.cssText = _var._codeOriginCssText;\r\n toolbar.style.cssText = '';\r\n editorArea.style.cssText = _var._editorAreaOriginCssText;\r\n topArea.style.cssText = _var._originCssText;\r\n _d.body.style.overflow = _var._bodyOverflow;\r\n\r\n if (options.height === 'auto' && !options.codeMirrorEditor) event._codeViewAutoHeight();\r\n\r\n if (!!options.toolbarContainer) options.toolbarContainer.appendChild(toolbar);\r\n\r\n if (options.stickyToolbar > -1) {\r\n util.removeClass(toolbar, 'se-toolbar-sticky');\r\n }\r\n\r\n if (_var._fullScreenAttrs.sticky && !options.toolbarContainer) {\r\n _var._fullScreenAttrs.sticky = false;\r\n context.element._stickyDummy.style.display = 'block';\r\n util.addClass(toolbar, \"se-toolbar-sticky\");\r\n }\r\n\r\n this._isInline = _var._fullScreenAttrs.inline;\r\n this._isBalloon = _var._fullScreenAttrs.balloon;\r\n if (this._isInline) event._showToolbarInline();\r\n if (!!options.toolbarContainer) util.removeClass(toolbar, 'se-toolbar-balloon');\r\n\r\n event.onScroll_window();\r\n if (element) util.changeElement(element.firstElementChild, icons.expansion);\r\n\r\n context.element.topArea.style.marginTop = '';\r\n util.removeClass(this._styleCommandMap.fullScreen, 'active');\r\n }\r\n\r\n if (wasToolbarHidden) functions.toolbar.hide();\r\n\r\n // user event\r\n if (typeof functions.toggleFullScreen === 'function') functions.toggleFullScreen(this._variable.isFullScreen, this);\r\n },\r\n\r\n /**\r\n * @description Prints the current contents of the editor.\r\n */\r\n print: function () {\r\n const iframe = util.createElement('IFRAME');\r\n iframe.style.display = 'none';\r\n _d.body.appendChild(iframe);\r\n\r\n const contentsHTML = options.printTemplate ? options.printTemplate.replace(/\\{\\{\\s*contents\\s*\\}\\}/i, this.getContents(true)) : this.getContents(true);\r\n const printDocument = util.getIframeDocument(iframe);\r\n const wDoc = this._wd;\r\n\r\n if (options.iframe) {\r\n const arrts = options._printClass !== null ? 'class=\"' + options._printClass + '\"' : options.fullPage ? util.getAttributesToString(wDoc.body, ['contenteditable']) : 'class=\"' + options._editableClass + '\"';\r\n\r\n printDocument.write('' +\r\n '' +\r\n '' +\r\n wDoc.head.innerHTML +\r\n '' +\r\n '' + contentsHTML + '' +\r\n ''\r\n );\r\n } else {\r\n const links = _d.head.getElementsByTagName('link');\r\n const styles = _d.head.getElementsByTagName('style');\r\n let linkHTML = '';\r\n for (let i = 0, len = links.length; i < len; i++) {\r\n linkHTML += links[i].outerHTML;\r\n }\r\n for (let i = 0, len = styles.length; i < len; i++) {\r\n linkHTML += styles[i].outerHTML;\r\n }\r\n\r\n printDocument.write('' +\r\n '' +\r\n '' +\r\n linkHTML +\r\n '' +\r\n '' + contentsHTML + '' +\r\n ''\r\n );\r\n }\r\n\r\n this.showLoading();\r\n _w.setTimeout(function () {\r\n try {\r\n iframe.focus();\r\n // IE or Edge, Chromium\r\n if (util.isIE_Edge || util.isChromium || !!_d.documentMode || !!_w.StyleMedia) {\r\n try {\r\n iframe.contentWindow.document.execCommand('print', false, null);\r\n } catch (e) {\r\n iframe.contentWindow.print();\r\n }\r\n } else {\r\n // Other browsers\r\n iframe.contentWindow.print();\r\n }\r\n } catch (error) {\r\n throw Error('[SUNEDITOR.core.print.fail] error: ' + error);\r\n } finally {\r\n core.closeLoading();\r\n util.removeItem(iframe);\r\n }\r\n }, 1000);\r\n },\r\n\r\n /**\r\n * @description Open the preview window.\r\n */\r\n preview: function () {\r\n core.submenuOff();\r\n core.containerOff();\r\n core.controllersOff();\r\n\r\n const contentsHTML = options.previewTemplate ? options.previewTemplate.replace(/\\{\\{\\s*contents\\s*\\}\\}/i, this.getContents(true)) : this.getContents(true);\r\n const windowObject = _w.open('', '_blank');\r\n windowObject.mimeType = 'text/html';\r\n const wDoc = this._wd;\r\n\r\n if (options.iframe) {\r\n const arrts = options._printClass !== null ? 'class=\"' + options._printClass + '\"' : options.fullPage ? util.getAttributesToString(wDoc.body, ['contenteditable']) : 'class=\"' + options._editableClass + '\"';\r\n\r\n windowObject.document.write('' +\r\n '' +\r\n '' +\r\n wDoc.head.innerHTML +\r\n '' +\r\n '' +\r\n '' + contentsHTML + '' +\r\n ''\r\n );\r\n } else {\r\n const links = _d.head.getElementsByTagName('link');\r\n const styles = _d.head.getElementsByTagName('style');\r\n let linkHTML = '';\r\n for (let i = 0, len = links.length; i < len; i++) {\r\n linkHTML += links[i].outerHTML;\r\n }\r\n for (let i = 0, len = styles.length; i < len; i++) {\r\n linkHTML += styles[i].outerHTML;\r\n }\r\n\r\n windowObject.document.write('' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' + lang.toolbar.preview + '' +\r\n linkHTML +\r\n '' +\r\n '' + contentsHTML + '' +\r\n ''\r\n );\r\n }\r\n },\r\n\r\n /**\r\n * @description Set direction to \"rtl\" or \"ltr\".\r\n * @param {String} dir \"rtl\" or \"ltr\"\r\n */\r\n setDir: function (dir) {\r\n const rtl = dir === 'rtl';\r\n const changeDir = this._prevRtl !== rtl;\r\n this._prevRtl = options.rtl = rtl;\r\n\r\n if (changeDir) {\r\n // align buttons\r\n if (this.plugins.align) {\r\n this.plugins.align.exchangeDir.call(this);\r\n }\r\n // indent buttons\r\n if (context.tool.indent) util.changeElement(context.tool.indent.firstElementChild, icons.indent);\r\n if (context.tool.outdent) util.changeElement(context.tool.outdent.firstElementChild, icons.outdent);\r\n }\r\n\r\n const el = context.element;\r\n if (rtl) {\r\n util.addClass(el.topArea, 'se-rtl');\r\n util.addClass(el.wysiwygFrame, 'se-rtl');\r\n } else {\r\n util.removeClass(el.topArea, 'se-rtl');\r\n util.removeClass(el.wysiwygFrame, 'se-rtl');\r\n }\r\n\r\n const lineNodes = util.getListChildren(el.wysiwyg, function (current) {\r\n return util.isFormatElement(current) && (current.style.marginRight || current.style.marginLeft || current.style.textAlign);\r\n });\r\n\r\n for (let i = 0, len = lineNodes.length, n, l, r; i < len; i++) {\r\n n = lineNodes[i];\r\n // indent margin\r\n r = n.style.marginRight;\r\n l = n.style.marginLeft;\r\n if (r || l) {\r\n n.style.marginRight = l;\r\n n.style.marginLeft = r;\r\n }\r\n // text align\r\n r = n.style.textAlign;\r\n if (r === 'left') n.style.textAlign = 'right';\r\n else if (r === 'right') n.style.textAlign = 'left';\r\n }\r\n\r\n const tool = context.tool;\r\n if (tool.dir) {\r\n util.changeTxt(tool.dir.querySelector('.se-tooltip-text'), lang.toolbar[options.rtl ? 'dir_ltr' : 'dir_rtl']);\r\n util.changeElement(tool.dir.firstElementChild, icons[options.rtl ? 'dir_ltr' : 'dir_rtl']);\r\n }\r\n\r\n if (tool.dir_ltr) {\r\n if (rtl) util.removeClass(tool.dir_ltr, 'active');\r\n else util.addClass(tool.dir_ltr, 'active');\r\n }\r\n\r\n if (tool.dir_rtl) {\r\n if (rtl) util.addClass(tool.dir_rtl, 'active');\r\n else util.removeClass(tool.dir_rtl, 'active');\r\n }\r\n },\r\n\r\n /**\r\n * @description Sets the HTML string\r\n * @param {String|undefined} html HTML string\r\n */\r\n setContents: function (html) {\r\n this.removeRange();\r\n\r\n const convertValue = (html === null || html === undefined) ? '' : this.convertContentsForEditor(html, null, null);\r\n if (!this._variable.isCodeView) {\r\n context.element.wysiwyg.innerHTML = convertValue;\r\n this._resetComponents();\r\n // history stack\r\n this.history.push(false);\r\n } else {\r\n const value = this.convertHTMLForCodeView(convertValue, false);\r\n this._setCodeView(value);\r\n }\r\n },\r\n\r\n /**\r\n * @description Sets the contents of the iframe's head tag and body tag when using the \"iframe\" or \"fullPage\" option.\r\n * @param {Object} ctx { head: HTML string, body: HTML string}\r\n */\r\n setIframeContents: function (ctx) {\r\n if (!options.iframe) return false;\r\n if (ctx.head) this._wd.head.innerHTML = this.options.__allowedScriptTag ? ctx.head : ctx.head.replace(this.__scriptTagRegExp, '');\r\n if (ctx.body) this._wd.body.innerHTML = this.convertContentsForEditor(ctx.body);\r\n this._resetComponents();\r\n },\r\n\r\n /**\r\n * @description Gets the current contents\r\n * @param {Boolean} onlyContents Return only the contents of the body without headers when the \"fullPage\" option is true\r\n * @returns {Object}\r\n */\r\n getContents: function (onlyContents) {\r\n const contents = this.cleanHTML(context.element.wysiwyg.innerHTML, null, null);\r\n const renderHTML = util.createElement('DIV');\r\n renderHTML.innerHTML = contents;\r\n\r\n const editableEls = util.getListChildren(renderHTML, function (current) {\r\n return current.hasAttribute('contenteditable');\r\n });\r\n\r\n for (let i = 0, len = editableEls.length; i < len; i++) {\r\n editableEls[i].removeAttribute('contenteditable');\r\n }\r\n\r\n if (options.fullPage && !onlyContents) {\r\n const attrs = util.getAttributesToString(this._wd.body, ['contenteditable']);\r\n return '' + this._wd.head.outerHTML + '' + renderHTML.innerHTML + '';\r\n } else {\r\n return renderHTML.innerHTML;\r\n }\r\n },\r\n\r\n /**\r\n * @description Gets the current contents with containing parent div(div.sun-editor-editable).\r\n *
      {contents}
      \r\n * @param {Boolean} onlyContents Return only the contents of the body without headers when the \"fullPage\" option is true\r\n * @returns {String}\r\n */\r\n getFullContents: function (onlyContents) {\r\n return '
      ' + this.getContents(onlyContents) + '
      ';\r\n },\r\n\r\n /**\r\n * @description Returns HTML string according to tag type and configuration.\r\n * Use only \"cleanHTML\"\r\n * @param {Node} node Node\r\n * @param {Boolean} requireFormat If true, text nodes that do not have a format node is wrapped with the format tag.\r\n * @private\r\n */\r\n _makeLine: function (node, requireFormat) {\r\n const defaultTag = options.defaultTag;\r\n // element\r\n if (node.nodeType === 1) {\r\n if (this.__disallowedTagNameRegExp.test(node.nodeName)) return '';\r\n if (/__se__tag/.test(node.className)) return node.outerHTML;\r\n\r\n const ch = util.getListChildNodes(node, function(current) { return util.isSpanWithoutAttr(current) && !util.getParentElement(current, util.isNotCheckingNode); }) || [];\r\n for (let i = ch.length - 1; i >= 0; i--) {\r\n ch[i].outerHTML = ch[i].innerHTML;\r\n }\r\n\r\n if (!requireFormat || (util.isFormatElement(node) || util.isRangeFormatElement(node) || util.isComponent(node) || util.isFigures(node) || (util.isAnchor(node) && util.isMedia(node.firstElementChild)))) {\r\n return util.isSpanWithoutAttr(node) ? node.innerHTML : node.outerHTML;\r\n } else {\r\n return '<' + defaultTag + '>' + (util.isSpanWithoutAttr(node) ? node.innerHTML : node.outerHTML) + '';\r\n }\r\n }\r\n // text\r\n if (node.nodeType === 3) {\r\n if (!requireFormat) return util._HTMLConvertor(node.textContent);\r\n const textArray = node.textContent.split(/\\n/g);\r\n let html = '';\r\n for (let i = 0, tLen = textArray.length, text; i < tLen; i++) {\r\n text = textArray[i].trim();\r\n if (text.length > 0) html += '<' + defaultTag + '>' + util._HTMLConvertor(text) + '';\r\n }\r\n return html;\r\n }\r\n // comments\r\n if (node.nodeType === 8 && this._allowHTMLComments) {\r\n return '';\r\n }\r\n\r\n return '';\r\n },\r\n\r\n /**\r\n * @description Removes attribute values such as style and converts tags that do not conform to the \"html5\" standard.\r\n * @param {String} text \r\n * @returns {String} HTML string\r\n * @private\r\n */\r\n _tagConvertor: function (text) {\r\n if (!this._disallowedTextTagsRegExp) return text;\r\n\r\n const ec = options._textTagsMap;\r\n return text.replace(this._disallowedTextTagsRegExp, function (m, t, n, p) {\r\n return t + (typeof ec[n] === 'string' ? ec[n] : n) + (p ? ' ' + p : '');\r\n });\r\n },\r\n\r\n /**\r\n * @description Delete disallowed tags\r\n * @param {String} html HTML string\r\n * @returns {String}\r\n * @private\r\n */\r\n _deleteDisallowedTags: function (html) {\r\n html = html\r\n .replace(this.__disallowedTagsRegExp, '')\r\n .replace(/<[a-z0-9]+\\:[a-z0-9]+[^>^\\/]*>[^>]*<\\/[a-z0-9]+\\:[a-z0-9]+>/gi, '');\r\n\r\n if (!/\\bfont\\b/i.test(this.options._editorTagsWhitelist)) {\r\n html = html.replace(/(<\\/?)font(\\s?)/gi, '$1span$2');\r\n }\r\n\r\n return html.replace(this.editorTagsWhitelistRegExp, '').replace(this.editorTagsBlacklistRegExp, '');\r\n },\r\n\r\n _convertFontSize: function (to, size) {\r\n const math = this._w.Math;\r\n const value = size.match(/(\\d+(?:\\.\\d+)?)(.+)/);\r\n const sizeNum = value ? value[1] * 1 : util.fontValueMap[size];\r\n const from = value ? value[2] : 'rem';\r\n let pxSize = sizeNum;\r\n\r\n if (/em/.test(from)) {\r\n pxSize = math.round(sizeNum / 0.0625);\r\n } else if (from === 'pt') {\r\n pxSize = math.round(sizeNum * 1.333);\r\n } else if (from === '%') {\r\n pxSize = sizeNum / 100;\r\n }\r\n\r\n switch (to) {\r\n case 'em':\r\n case 'rem':\r\n case '%':\r\n return (pxSize * 0.0625).toFixed(2) + to;\r\n case 'pt':\r\n return math.floor(pxSize / 1.333) + to;\r\n default: // px\r\n return pxSize + to;\r\n }\r\n },\r\n\r\n _cleanStyle: function (m, v, name) {\r\n let sv = (m.match(/style\\s*=\\s*(?:\"|')[^\"']*(?:\"|')/) || [])[0];\r\n if (/span/i.test(name) && !sv && (m.match(/<[^\\s]+\\s(.+)/) || [])[1]) {\r\n const size = (m.match(/\\ssize=\"([^\"]+)\"/i) || [])[1];\r\n const face = (m.match(/\\sface=\"([^\"]+)\"/i) || [])[1];\r\n const color = (m.match(/\\scolor=\"([^\"]+)\"/i) || [])[1];\r\n if (size || face || color) {\r\n sv = 'style=\"' + (size ? 'font-size:' + (this.util.getNumber(size/3.333, 1)) + 'rem;' : '') + (face ? 'font-family:' + face + ';' : '') + (color ? 'color:' + color + ';' : '') + '\"';\r\n }\r\n }\r\n\r\n if (sv) {\r\n if (!v) v = [];\r\n const style = sv.replace(/"/g, '').match(this._cleanStyleRegExp[name]);\r\n if (style) {\r\n const allowedStyle = [];\r\n for (let i = 0, len = style.length, r; i < len; i++) {\r\n r = style[i].match(/([a-zA-Z0-9-]+)(:)([^\"']+)/);\r\n if (r && !/inherit|initial|revert|unset/i.test(r[3])) {\r\n const k = util.kebabToCamelCase(r[1].trim());\r\n const v = this.wwComputedStyle[k] ? this.wwComputedStyle[k].replace(/\"/g, '') : '';\r\n const c = r[3].trim();\r\n switch (k) {\r\n case 'fontFamily':\r\n if (!options.plugins.font || options.font.indexOf(c) === -1) continue;\r\n break;\r\n case 'fontSize':\r\n if (!options.plugins.fontSize) continue;\r\n if (!this._cleanStyleRegExp.fontSizeUnit.test(r[0])) {\r\n r[0] = r[0].replace((r[0].match(/:\\s*([^;]+)/) || [])[1], this._convertFontSize.bind(this, options.fontSizeUnit));\r\n }\r\n break;\r\n case 'color':\r\n if (!options.plugins.fontColor || /rgba\\(([0-9]+\\s*,\\s*){3}0\\)|windowtext/i.test(c)) continue;\r\n break;\r\n case 'backgroundColor':\r\n if (!options.plugins.hiliteColor || /rgba\\(([0-9]+\\s*,\\s*){3}0\\)|windowtext/i.test(c)) continue;\r\n break;\r\n }\r\n\r\n if (v !== c) {\r\n allowedStyle.push(r[0]);\r\n }\r\n }\r\n }\r\n if (allowedStyle.length > 0) v.push('style=\"' + allowedStyle.join(';') + '\"');\r\n }\r\n }\r\n\r\n return v;\r\n },\r\n\r\n /**\r\n * @description Tag and tag attribute check RegExp function. (used by \"cleanHTML\" and \"convertContentsForEditor\")\r\n * @param {Boolean} lowLevelCheck Row level check\r\n * @param {String} m RegExp value\r\n * @param {String} t RegExp value\r\n * @returns {String}\r\n * @private\r\n */\r\n _cleanTags: function (lowLevelCheck, m, t) {\r\n if (/^<[a-z0-9]+\\:[a-z0-9]+/i.test(m)) return m;\r\n\r\n let v = null;\r\n const tagName = t.match(/(?!<)[a-zA-Z0-9\\-]+/)[0].toLowerCase();\r\n\r\n // blacklist\r\n const bAttr = this._attributesTagsBlacklist[tagName];\r\n m = m.replace(/\\s(?:on[a-z]+)\\s*=\\s*(\")[^\"]*\\1/ig, '');\r\n if (bAttr) m = m.replace(bAttr, '');\r\n else m = m.replace(this._attributesBlacklistRegExp, '');\r\n\r\n // whitelist\r\n const wAttr = this._attributesTagsWhitelist[tagName];\r\n if (wAttr) v = m.match(wAttr);\r\n else v = m.match(lowLevelCheck ? this._attributesWhitelistRegExp : this._attributesWhitelistRegExp_all_data);\r\n\r\n // attribute\r\n if (lowLevelCheck || tagName === 'span' || tagName === 'li' || this._cleanStyleRegExp[tagName]) {\r\n if (tagName === 'a') {\r\n const sv = m.match(/(?:(?:id|name)\\s*=\\s*(?:\"|')[^\"']*(?:\"|'))/g);\r\n if (sv) {\r\n if (!v) v = [];\r\n v.push(sv[0]);\r\n }\r\n } else if (!v || !/style=/i.test(v.toString())) {\r\n if (tagName === 'span' || tagName === 'li') {\r\n v = this._cleanStyle(m, v, 'span');\r\n } if (this._cleanStyleRegExp[tagName]) {\r\n v = this._cleanStyle(m, v, tagName);\r\n } else if (/^(P|DIV|H[1-6]|PRE)$/i.test(tagName)) {\r\n v = this._cleanStyle(m, v, 'format');\r\n }\r\n }\r\n } else {\r\n const sv = m.match(/style\\s*=\\s*(?:\"|')[^\"']*(?:\"|')/);\r\n if (sv && !v) v = [sv[0]];\r\n else if (sv && !v.some(function (v) { return /^style/.test(v.trim()); })) v.push(sv[0]);\r\n }\r\n\r\n // figure\r\n if (util.isFigures(tagName)) {\r\n const sv = m.match(/style\\s*=\\s*(?:\"|')[^\"']*(?:\"|')/);\r\n if (!v) v = [];\r\n if (sv) v.push(sv[0]);\r\n }\r\n\r\n if (v) {\r\n for (let i = 0, len = v.length, a; i < len; i++) {\r\n // if (lowLevelCheck && /^class=\"(?!(__se__|se-|katex))/.test(v[i].trim())) continue;\r\n a = (/^(?:href|src)\\s*=\\s*('|\"|\\s)*javascript\\s*\\:/i.test(v[i].trim()) ? '' : v[i]);\r\n t += (/^\\s/.test(a) ? '' : ' ') + a;\r\n }\r\n }\r\n\r\n return t;\r\n },\r\n\r\n /**\r\n * @description Determines if formatting is required and returns a domTree\r\n * @param {Element} dom documentFragment\r\n * @returns {Element}\r\n * @private\r\n */\r\n _editFormat: function (dom) {\r\n let value = '', f;\r\n const tempTree = dom.childNodes;\r\n\r\n for (let i = 0, len = tempTree.length, n; i < len; i++) {\r\n n = tempTree[i];\r\n if (n.nodeType === 8) {\r\n value += '';\r\n } else if (!util.isFormatElement(n) && !util.isRangeFormatElement(n) && !util.isComponent(n) && !/meta/i.test(n.nodeName)) {\r\n if (!f) f = util.createElement(options.defaultTag);\r\n f.appendChild(n);\r\n i--; len--;\r\n } else {\r\n if (f) {\r\n value += f.outerHTML;\r\n f = null;\r\n }\r\n value += n.outerHTML;\r\n }\r\n }\r\n\r\n if (f) value += f.outerHTML;\r\n\r\n return _d.createRange().createContextualFragment(value);\r\n },\r\n\r\n _convertListCell: function (domTree) {\r\n let html = '';\r\n\r\n for (let i = 0, len = domTree.length, node; i < len; i++) {\r\n node = domTree[i];\r\n if (node.nodeType === 1) {\r\n if (util.isList(node)) {\r\n html += node.innerHTML;\r\n } else if (util.isListCell(node)) {\r\n html += node.outerHTML;\r\n } else if (util.isFormatElement(node)) {\r\n html += '
    • ' +(node.innerHTML.trim() || '
      ') + '
    • ';\r\n } else if (util.isRangeFormatElement(node) && !util.isTable(node)) {\r\n html += this._convertListCell(node);\r\n } else {\r\n html += '
    • ' + node.outerHTML + '
    • ';\r\n }\r\n } else {\r\n html += '
    • ' + (node.textContent || '
      ') + '
    • ';\r\n }\r\n }\r\n\r\n return html;\r\n },\r\n\r\n _isFormatData: function (domTree) {\r\n let requireFormat = false;\r\n\r\n for (let i = 0, len = domTree.length, t; i < len; i++) {\r\n t = domTree[i];\r\n if (t.nodeType === 1 && !util.isTextStyleElement(t) && !util.isBreak(t) && !this.__disallowedTagNameRegExp.test(t.nodeName)) {\r\n requireFormat = true;\r\n break;\r\n }\r\n }\r\n\r\n return requireFormat;\r\n },\r\n\r\n /**\r\n * @description Gets the clean HTML code for editor\r\n * @param {String} html HTML string\r\n * @param {String|RegExp|null} whitelist Regular expression of allowed tags.\r\n * RegExp object is create by util.createTagsWhitelist method. (core.pasteTagsWhitelistRegExp)\r\n * @param {String|RegExp|null} blacklist Regular expression of disallowed tags.\r\n * RegExp object is create by util.createTagsBlacklist method. (core.pasteTagsBlacklistRegExp)\r\n * @returns {String}\r\n */\r\n cleanHTML: function (html, whitelist, blacklist) {\r\n if (!options.strictMode) return util.htmlCompress(html);\r\n\r\n html = this._deleteDisallowedTags(this._parser.parseFromString(util.htmlCompress(html), 'text/html').body.innerHTML).replace(/(<[a-zA-Z0-9\\-]+)[^>]*(?=>)/g, this._cleanTags.bind(this, true)).replace(/$/i, '');\r\n const dom = _d.createRange().createContextualFragment(html);\r\n try {\r\n util._consistencyCheckOfHTML(dom, this._htmlCheckWhitelistRegExp, this._htmlCheckBlacklistRegExp, this._classNameFilter, options.strictHTMLValidation);\r\n } catch (error) {\r\n console.warn('[SUNEDITOR.cleanHTML.consistencyCheck.fail] ' + error);\r\n }\r\n\r\n if (this.managedTagsInfo && this.managedTagsInfo.query) {\r\n const textCompList = dom.querySelectorAll(this.managedTagsInfo.query);\r\n for (let i = 0, len = textCompList.length, initMethod, classList; i < len; i++) {\r\n classList = [].slice.call(textCompList[i].classList);\r\n for (let c = 0, cLen = classList.length; c < cLen; c++) {\r\n initMethod = this.managedTagsInfo.map[classList[c]];\r\n if (initMethod) {\r\n initMethod(textCompList[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let domTree = dom.childNodes;\r\n let cleanHTML = '';\r\n const requireFormat = this._isFormatData(domTree);\r\n\r\n if(requireFormat) {\r\n domTree = this._editFormat(dom).childNodes;\r\n }\r\n\r\n for (let i = 0, len = domTree.length, t; i < len; i++) {\r\n t = domTree[i];\r\n if (this.__allowedScriptRegExp.test(t.nodeName)) {\r\n cleanHTML += t.outerHTML;\r\n continue;\r\n }\r\n cleanHTML += this._makeLine(t, requireFormat);\r\n }\r\n\r\n cleanHTML = util.htmlRemoveWhiteSpace(cleanHTML);\r\n if (!cleanHTML) {\r\n cleanHTML = html;\r\n } else {\r\n if (whitelist) cleanHTML = cleanHTML.replace(typeof whitelist === 'string' ? util.createTagsWhitelist(whitelist) : whitelist, '');\r\n if (blacklist) cleanHTML = cleanHTML.replace(typeof blacklist === 'string' ? util.createTagsBlacklist(blacklist) : blacklist, '');\r\n }\r\n\r\n return this._tagConvertor(cleanHTML);\r\n },\r\n\r\n /**\r\n * @description Converts contents into a format that can be placed in an editor\r\n * @param {String} contents contents\r\n * @returns {String}\r\n */\r\n convertContentsForEditor: function (contents) {\r\n if (!options.strictMode) return util.htmlCompress(contents);\r\n\r\n contents = this._deleteDisallowedTags(this._parser.parseFromString(util.htmlCompress(contents), 'text/html').body.innerHTML).replace(/(<[a-zA-Z0-9\\-]+)[^>]*(?=>)/g, this._cleanTags.bind(this, true));\r\n const dom = _d.createRange().createContextualFragment(contents);\r\n\r\n try {\r\n util._consistencyCheckOfHTML(dom, this._htmlCheckWhitelistRegExp, this._htmlCheckBlacklistRegExp, this._classNameFilter, options.strictHTMLValidation);\r\n } catch (error) {\r\n console.warn('[SUNEDITOR.convertContentsForEditor.consistencyCheck.fail] ' + error);\r\n }\r\n\r\n if (this.managedTagsInfo && this.managedTagsInfo.query) {\r\n const textCompList = dom.querySelectorAll(this.managedTagsInfo.query);\r\n for (let i = 0, len = textCompList.length, initMethod, classList; i < len; i++) {\r\n classList = [].slice.call(textCompList[i].classList);\r\n for (let c = 0, cLen = classList.length; c < cLen; c++) {\r\n initMethod = this.managedTagsInfo.map[classList[c]];\r\n if (initMethod) {\r\n initMethod(textCompList[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const domTree = dom.childNodes;\r\n let cleanHTML = '', p = null;\r\n for (let i = 0, t; i < domTree.length; i++) {\r\n t = domTree[i];\r\n\r\n if (this.__allowedScriptRegExp.test(t.nodeName)) {\r\n cleanHTML += t.outerHTML;\r\n continue;\r\n }\r\n\r\n if (!util.isFormatElement(t) && !util.isRangeFormatElement(t) && !util.isComponent(t) && !util.isFigures(t) && t.nodeType !== 8 && !/__se__tag/.test(t.className)) {\r\n if (!p) p = util.createElement(options.defaultTag);\r\n p.appendChild(t);\r\n i--;\r\n if (domTree[i + 1] && !util.isFormatElement(domTree[i + 1])) {\r\n continue;\r\n } else {\r\n t = p;\r\n p = null;\r\n }\r\n }\r\n\r\n if (p) {\r\n cleanHTML += this._makeLine(p, true);\r\n p = null;\r\n }\r\n cleanHTML += this._makeLine(t, true);\r\n }\r\n if (p) cleanHTML += this._makeLine(p, true);\r\n\r\n if (cleanHTML.length === 0) return '<' + options.defaultTag + '>
      ';\r\n\r\n cleanHTML = util.htmlRemoveWhiteSpace(cleanHTML);\r\n return this._tagConvertor(cleanHTML);\r\n },\r\n\r\n /**\r\n * @description Converts wysiwyg area element into a format that can be placed in an editor of code view mode\r\n * @param {Element|String} html WYSIWYG element (context.element.wysiwyg) or HTML string.\r\n * @param {Boolean} comp If true, does not line break and indentation of tags.\r\n * @returns {String}\r\n */\r\n convertHTMLForCodeView: function (html, comp) {\r\n let returnHTML = '';\r\n const wRegExp = _w.RegExp;\r\n const brReg = new wRegExp('^(BLOCKQUOTE|PRE|TABLE|THEAD|TBODY|TR|TH|TD|OL|UL|IMG|IFRAME|VIDEO|AUDIO|FIGURE|FIGCAPTION|HR|BR|CANVAS|SELECT)$', 'i');\r\n const wDoc = typeof html === 'string' ? _d.createRange().createContextualFragment(html) : html;\r\n const isFormat = function (current) { return this.isFormatElement(current) || this.isComponent(current); }.bind(util);\r\n const brChar = comp ? '' : '\\n';\r\n\r\n let indentSize = comp ? 0 : this._variable.codeIndent * 1;\r\n indentSize = indentSize > 0 ? new _w.Array(indentSize + 1).join(' ') : '';\r\n\r\n (function recursionFunc (element, indent) {\r\n const children = element.childNodes;\r\n const elementRegTest = brReg.test(element.nodeName);\r\n const elementIndent = (elementRegTest ? indent : '');\r\n\r\n for (let i = 0, len = children.length, node, br, lineBR, nodeRegTest, tag, tagIndent; i < len; i++) {\r\n node = children[i];\r\n nodeRegTest = brReg.test(node.nodeName);\r\n br = nodeRegTest ? brChar : '';\r\n lineBR = isFormat(node) && !elementRegTest && !/^(TH|TD)$/i.test(element.nodeName) ? brChar : '';\r\n\r\n if (node.nodeType === 8) {\r\n returnHTML += '\\n' + br;\r\n continue;\r\n }\r\n if (node.nodeType === 3) {\r\n if (!util.isList(node.parentElement)) returnHTML += util._HTMLConvertor(/^\\n+$/.test(node.data) ? '' : node.data);\r\n continue;\r\n }\r\n if (node.childNodes.length === 0) {\r\n returnHTML += (/^HR$/i.test(node.nodeName) ? brChar : '') + (/^PRE$/i.test(node.parentElement.nodeName) && /^BR$/i.test(node.nodeName) ? '' : elementIndent) + node.outerHTML + br;\r\n continue;\r\n }\r\n\r\n if (!node.outerHTML) { // IE\r\n returnHTML += new _w.XMLSerializer().serializeToString(node);\r\n } else {\r\n tag = node.nodeName.toLowerCase();\r\n tagIndent = elementIndent || nodeRegTest ? indent : '';\r\n returnHTML += (lineBR || (elementRegTest ? '' : br)) + tagIndent + node.outerHTML.match(wRegExp('<' + tag + '[^>]*>', 'i'))[0] + br;\r\n recursionFunc(node, indent + indentSize, '');\r\n returnHTML += (/\\n$/.test(returnHTML) ? tagIndent : '') + '' + (lineBR || br || elementRegTest ? brChar : '' || /^(TH|TD)$/i.test(node.nodeName) ? brChar : '');\r\n }\r\n }\r\n }(wDoc, ''));\r\n\r\n return returnHTML.trim() + brChar;\r\n },\r\n\r\n /**\r\n * @description Add an event to document.\r\n * When created as an Iframe, the same event is added to the document in the Iframe.\r\n * @param {String} type Event type\r\n * @param {Function} listener Event listener\r\n * @param {Boolean} useCapture Use event capture\r\n */\r\n addDocEvent: function (type, listener, useCapture) {\r\n _d.addEventListener(type, listener, useCapture);\r\n if (options.iframe) {\r\n this._wd.addEventListener(type, listener);\r\n }\r\n },\r\n\r\n /**\r\n * @description Remove events from document.\r\n * When created as an Iframe, the event of the document inside the Iframe is also removed.\r\n * @param {String} type Event type\r\n * @param {Function} listener Event listener\r\n */\r\n removeDocEvent: function (type, listener) {\r\n _d.removeEventListener(type, listener);\r\n if (options.iframe) {\r\n this._wd.removeEventListener(type, listener);\r\n }\r\n },\r\n\r\n /**\r\n * @description The current number of characters is counted and displayed.\r\n * @param {String} inputText Text added.\r\n * @returns {Boolean}\r\n * @private\r\n */\r\n _charCount: function (inputText) {\r\n const maxCharCount = options.maxCharCount;\r\n const countType = options.charCounterType;\r\n let nextCharCount = 0;\r\n if (!!inputText) nextCharCount = this.getCharLength(inputText, countType);\r\n\r\n this._setCharCount();\r\n\r\n if (maxCharCount > 0) {\r\n let over = false;\r\n const count = functions.getCharCount(countType);\r\n\r\n if (count > maxCharCount) {\r\n over = true;\r\n if (nextCharCount > 0) {\r\n this._editorRange();\r\n const range = this.getRange();\r\n const endOff = range.endOffset - 1;\r\n const text = this.getSelectionNode().textContent;\r\n const slicePosition = range.endOffset - (count - maxCharCount);\r\n\r\n this.getSelectionNode().textContent = text.slice(0, slicePosition < 0 ? 0 : slicePosition) + text.slice(range.endOffset, text.length);\r\n this.setRange(range.endContainer, endOff, range.endContainer, endOff);\r\n }\r\n } else if ((count + nextCharCount) > maxCharCount) {\r\n over = true;\r\n }\r\n\r\n if (over) {\r\n this._callCounterBlink();\r\n if (nextCharCount > 0) return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n /**\r\n * @description When \"element\" is added, if it is greater than \"options.maxCharCount\", false is returned.\r\n * @param {Node|String} element Element node or String.\r\n * @param {String|null} charCounterType charCounterType. If it is null, the options.charCounterType\r\n * @returns {Boolean}\r\n */\r\n checkCharCount: function (element, charCounterType) {\r\n if (options.maxCharCount) {\r\n const countType = charCounterType || options.charCounterType;\r\n const length = this.getCharLength((typeof element === 'string' ? element : (this._charTypeHTML && element.nodeType === 1) ? element.outerHTML : element.textContent), countType);\r\n if (length > 0 && length + functions.getCharCount(countType) > options.maxCharCount) {\r\n this._callCounterBlink();\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n\r\n /**\r\n * @description Get the length of the content.\r\n * Depending on the option, the length of the character is taken. (charCounterType)\r\n * @param {String} content Content to count\r\n * @param {String} charCounterType options.charCounterType\r\n * @returns {Number}\r\n */\r\n getCharLength: function (content, charCounterType) {\r\n return /byte/.test(charCounterType) ? util.getByteLength(content) : content.length;\r\n },\r\n\r\n /**\r\n * @description Reset buttons of the responsive toolbar.\r\n */\r\n resetResponsiveToolbar: function () {\r\n core.controllersOff();\r\n\r\n const responsiveSize = event._responsiveButtonSize;\r\n if (responsiveSize) {\r\n let w = 0;\r\n if ((core._isBalloon || core._isInline) && options.toolbarWidth === 'auto') {\r\n w = context.element.topArea.offsetWidth;\r\n } else {\r\n w = context.element.toolbar.offsetWidth;\r\n }\r\n\r\n let responsiveWidth = 'default';\r\n for (let i = 1, len = responsiveSize.length; i < len; i++) {\r\n if (w < responsiveSize[i]) {\r\n responsiveWidth = responsiveSize[i] + '';\r\n break;\r\n }\r\n }\r\n\r\n if (event._responsiveCurrentSize !== responsiveWidth) {\r\n event._responsiveCurrentSize = responsiveWidth;\r\n functions.setToolbarButtons(event._responsiveButtons[responsiveWidth]);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @description Set the char count to charCounter element textContent.\r\n * @private\r\n */\r\n _setCharCount: function () {\r\n if (context.element.charCounter) {\r\n _w.setTimeout(function (functions, options) {\r\n if (this.textContent && functions) {\r\n this.textContent = functions.getCharCount(options.charCounterType);\r\n }\r\n }.bind(context.element.charCounter, functions, options), 0);\r\n }\r\n },\r\n\r\n /**\r\n * @description The character counter blinks.\r\n * @private\r\n */\r\n _callCounterBlink: function () {\r\n const charWrapper = context.element.charWrapper;\r\n if (charWrapper && !util.hasClass(charWrapper, 'se-blink')) {\r\n util.addClass(charWrapper, 'se-blink');\r\n _w.setTimeout(function () {\r\n util.removeClass(charWrapper, 'se-blink');\r\n }, 600);\r\n }\r\n },\r\n\r\n /**\r\n * @description Check the components such as image and video and modify them according to the format.\r\n * @private\r\n */\r\n _checkComponents: function () {\r\n for (let i = 0, len = this._fileInfoPluginsCheck.length; i < len; i++) {\r\n this._fileInfoPluginsCheck[i]();\r\n }\r\n },\r\n\r\n /**\r\n * @description Initialize the information of the components.\r\n * @private\r\n */\r\n _resetComponents: function () {\r\n for (let i = 0, len = this._fileInfoPluginsReset.length; i < len; i++) {\r\n this._fileInfoPluginsReset[i]();\r\n }\r\n },\r\n\r\n /**\r\n * @description Set method in the code view area\r\n * @param {String} value HTML string\r\n * @private\r\n */\r\n _setCodeView: function (value) {\r\n if (options.codeMirrorEditor) {\r\n options.codeMirrorEditor.getDoc().setValue(value);\r\n } else {\r\n context.element.code.value = value;\r\n }\r\n },\r\n\r\n /**\r\n * @description Get method in the code view area\r\n * @private\r\n */\r\n _getCodeView: function () {\r\n return options.codeMirrorEditor ? options.codeMirrorEditor.getDoc().getValue() : context.element.code.value;\r\n },\r\n\r\n /**\r\n * @description remove class, display text.\r\n * @param {Array|null} ignoredList Igonred button list\r\n */\r\n _setKeyEffect: function (ignoredList) {\r\n const commandMap = this.commandMap;\r\n const activePlugins = this.activePlugins;\r\n\r\n for (let key in commandMap) {\r\n if (ignoredList.indexOf(key) > -1 || !util.hasOwn(commandMap, key)) continue;\r\n if (activePlugins.indexOf(key) > -1) {\r\n plugins[key].active.call(this, null);\r\n } else if (commandMap.OUTDENT && /^OUTDENT$/i.test(key)) {\r\n if (!util.isImportantDisabled(commandMap.OUTDENT)) commandMap.OUTDENT.setAttribute('disabled', true);\r\n } else if (commandMap.INDENT && /^INDENT$/i.test(key)) {\r\n if (!util.isImportantDisabled(commandMap.INDENT)) commandMap.INDENT.removeAttribute('disabled');\r\n } else {\r\n util.removeClass(commandMap[key], 'active');\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @description Initializ core variable\r\n * @param {Boolean} reload Is relooad?\r\n * @param {String} _initHTML initial html string\r\n * @private\r\n */\r\n _init: function (reload, _initHTML) {\r\n const wRegExp = _w.RegExp;\r\n this._ww = options.iframe ? context.element.wysiwygFrame.contentWindow : _w;\r\n this._wd = _d;\r\n this._charTypeHTML = options.charCounterType === 'byte-html';\r\n this.wwComputedStyle = _w.getComputedStyle(context.element.wysiwyg);\r\n this._editorHeight = context.element.wysiwygFrame.offsetHeight;\r\n this._editorHeightPadding = util.getNumber(this.wwComputedStyle.getPropertyValue('padding-top')) + util.getNumber(this.wwComputedStyle.getPropertyValue('padding-bottom'));\r\n this._classNameFilter = function (v) {\r\n return this.test(v) ? v : '';\r\n }.bind(options.allowedClassNames);\r\n\r\n const sPrefix = (options.__allowedScriptTag ? '' : 'script|');\r\n this.__scriptTagRegExp = new wRegExp('<(script)[^>]*>([\\\\s\\\\S]*?)<\\\\/\\\\1>|]*\\\\/?>', 'gi');\r\n this.__disallowedTagsRegExp = new wRegExp('<(' + sPrefix + 'style)[^>]*>([\\\\s\\\\S]*?)<\\\\/\\\\1>|<(' + sPrefix + 'style)[^>]*\\\\/?>', 'gi');\r\n this.__disallowedTagNameRegExp = new wRegExp('^(' + sPrefix + 'meta|link|style|[a-z]+\\:[a-z]+)$', 'i');\r\n this.__allowedScriptRegExp = new wRegExp('^' + (options.__allowedScriptTag ? 'script' : '') + '$', 'i');\r\n\r\n if (!options.iframe && typeof _w.ShadowRoot === 'function') {\r\n let child = context.element.wysiwygFrame;\r\n while (child) {\r\n if (child.shadowRoot) {\r\n this._shadowRoot = child.shadowRoot;\r\n break;\r\n } else if (child instanceof _w.ShadowRoot) {\r\n this._shadowRoot = child;\r\n break;\r\n }\r\n child = child.parentNode;\r\n }\r\n if (this._shadowRoot) this._shadowRootControllerEventTarget = [];\r\n }\r\n\r\n // set disallow text nodes\r\n const disallowTextTags = _w.Object.keys(options._textTagsMap);\r\n const allowTextTags = !options.addTagsWhitelist ? [] : options.addTagsWhitelist.split('|').filter(function (v) { return /b|i|ins|s|strike/i.test(v); });\r\n for (let i = 0; i < allowTextTags.length; i++) {\r\n disallowTextTags.splice(disallowTextTags.indexOf(allowTextTags[i].toLowerCase()), 1);\r\n }\r\n this._disallowedTextTagsRegExp = disallowTextTags.length === 0 ? null : new wRegExp('(<\\\\/?)(' + disallowTextTags.join('|') + ')\\\\b\\\\s*([^>^<]+)?\\\\s*(?=>)', 'gi');\r\n\r\n // set whitelist\r\n const getRegList = function (str, str2) { return !str ? '^' : (str === '*' ? '[a-z-]+' : (!str2 ? str : (str + '|' + str2))); };\r\n // tags\r\n const videoAttr = '|controls|autoplay|loop|muted|poster|preload|playsinline';\r\n const iframeAttr = '|allowfullscreen|sandbox|loading|allow|referrerpolicy|frameborder|scrolling';\r\n const defaultAttr = 'contenteditable|colspan|rowspan|target|href|download|rel|src|alt|class|type|origin-size' + videoAttr + iframeAttr;\r\n const dataAttr = 'data-format|data-size|data-file-size|data-file-name|data-origin|data-align|data-image-link|data-rotate|data-proportion|data-percentage|data-exp|data-font-size';\r\n this._allowHTMLComments = options._editorTagsWhitelist.indexOf('//') > -1 || options._editorTagsWhitelist === '*';\r\n // html check\r\n this._htmlCheckWhitelistRegExp = new wRegExp('^(' + getRegList(options._editorTagsWhitelist.replace('|//', ''), '') + ')$', 'i');\r\n this._htmlCheckBlacklistRegExp = new wRegExp('^(' + (options.tagsBlacklist || '^') + ')$', 'i');\r\n // tags\r\n this.editorTagsWhitelistRegExp = util.createTagsWhitelist(getRegList(options._editorTagsWhitelist.replace('|//', '|'), ''));\r\n this.editorTagsBlacklistRegExp = util.createTagsBlacklist(options.tagsBlacklist.replace('|//', '|'));\r\n // paste tags\r\n this.pasteTagsWhitelistRegExp = util.createTagsWhitelist(getRegList(options.pasteTagsWhitelist, ''));\r\n this.pasteTagsBlacklistRegExp = util.createTagsBlacklist(options.pasteTagsBlacklist);\r\n // attributes\r\n const regEndStr = '\\\\s*=\\\\s*(\\\")[^\\\"]*\\\\1';\r\n const _wAttr = options.attributesWhitelist;\r\n let tagsAttr = {};\r\n let allAttr = '';\r\n if (!!_wAttr) {\r\n for (let k in _wAttr) {\r\n if (!util.hasOwn(_wAttr, k) || /^on[a-z]+$/i.test(_wAttr[k])) continue;\r\n if (k === 'all') {\r\n allAttr = getRegList(_wAttr[k], defaultAttr);\r\n } else {\r\n tagsAttr[k] = new wRegExp('\\\\s(?:' + getRegList(_wAttr[k], '') + ')' + regEndStr, 'ig');\r\n }\r\n }\r\n }\r\n\r\n this._attributesWhitelistRegExp = new wRegExp('\\\\s(?:' + (allAttr || defaultAttr + '|' + dataAttr) + ')' + regEndStr, 'ig');\r\n this._attributesWhitelistRegExp_all_data = new wRegExp('\\\\s(?:' + ((allAttr || defaultAttr) + '|data-[a-z0-9\\\\-]+') + ')' + regEndStr, 'ig');\r\n this._attributesTagsWhitelist = tagsAttr;\r\n\r\n // blacklist\r\n const _bAttr = options.attributesBlacklist;\r\n tagsAttr = {};\r\n allAttr = '';\r\n if (!!_bAttr) {\r\n for (let k in _bAttr) {\r\n if (!util.hasOwn(_bAttr, k)) continue;\r\n if (k === 'all') {\r\n allAttr = getRegList(_bAttr[k], '');\r\n } else {\r\n tagsAttr[k] = new wRegExp('\\\\s(?:' + getRegList(_bAttr[k], '') + ')' + regEndStr, 'ig');\r\n }\r\n }\r\n }\r\n\r\n this._attributesBlacklistRegExp = new wRegExp('\\\\s(?:' + (allAttr || '^') + ')' + regEndStr, 'ig');\r\n this._attributesTagsBlacklist = tagsAttr;\r\n\r\n // set modes\r\n this._isInline = /inline/i.test(options.mode);\r\n this._isBalloon = /balloon|balloon-always/i.test(options.mode);\r\n this._isBalloonAlways = /balloon-always/i.test(options.mode);\r\n\r\n // caching buttons\r\n this._cachingButtons();\r\n\r\n // file components\r\n this._fileInfoPluginsCheck = [];\r\n this._fileInfoPluginsReset = [];\r\n\r\n // text components\r\n this.managedTagsInfo = { query: '', map: {} };\r\n const managedClass = [];\r\n\r\n // Command and file plugins registration\r\n this.activePlugins = [];\r\n this._fileManager.tags = [];\r\n this._fileManager.pluginMap = {};\r\n\r\n let filePluginRegExp = [];\r\n let plugin, button;\r\n for (let key in plugins) {\r\n if (!util.hasOwn(plugins, key)) continue;\r\n plugin = plugins[key];\r\n button = pluginCallButtons[key];\r\n if ((plugin.active || plugin.action) && button) {\r\n this.callPlugin(key, null, button);\r\n }\r\n if (typeof plugin.checkFileInfo === 'function' && typeof plugin.resetFileInfo === 'function') {\r\n this.callPlugin(key, null, button);\r\n this._fileInfoPluginsCheck.push(plugin.checkFileInfo.bind(this));\r\n this._fileInfoPluginsReset.push(plugin.resetFileInfo.bind(this));\r\n }\r\n if (_w.Array.isArray(plugin.fileTags)) {\r\n const fileTags = plugin.fileTags;\r\n this.callPlugin(key, null, button);\r\n this._fileManager.tags = this._fileManager.tags.concat(fileTags);\r\n filePluginRegExp.push(key);\r\n for (let tag = 0, tLen = fileTags.length; tag < tLen; tag++) {\r\n this._fileManager.pluginMap[fileTags[tag].toLowerCase()] = key;\r\n }\r\n }\r\n if (plugin.managedTags) {\r\n const info = plugin.managedTags();\r\n managedClass.push('.' + info.className);\r\n this.managedTagsInfo.map[info.className] = info.method.bind(this);\r\n }\r\n }\r\n\r\n this.managedTagsInfo.query = managedClass.toString();\r\n this._fileManager.queryString = this._fileManager.tags.join(',');\r\n this._fileManager.regExp = new wRegExp('^(' + (this._fileManager.tags.join('|') || '^') + ')$', 'i');\r\n this._fileManager.pluginRegExp = new wRegExp('^(' + (filePluginRegExp.length === 0 ? '^' : filePluginRegExp.join('|')) + ')$', 'i');\r\n\r\n // cache editor's element\r\n this._variable._originCssText = context.element.topArea.style.cssText;\r\n this._placeholder = context.element.placeholder;\r\n this._lineBreaker = context.element.lineBreaker;\r\n this._lineBreakerButton = this._lineBreaker.querySelector('button');\r\n\r\n // Excute history function\r\n this.history = _history(this, this._onChange_historyStack.bind(this));\r\n\r\n // register notice module\r\n this.addModule([_notice]);\r\n\r\n // Init, validate\r\n if (options.iframe) {\r\n this._wd = context.element.wysiwygFrame.contentDocument;\r\n context.element.wysiwyg = this._wd.body;\r\n if (options._editorStyles.editor) context.element.wysiwyg.style.cssText = options._editorStyles.editor;\r\n if (options.height === 'auto') this._iframeAuto = this._wd.body;\r\n }\r\n\r\n this._initWysiwygArea(reload, _initHTML);\r\n },\r\n\r\n /**\r\n * @description Caching basic buttons to use\r\n * @private\r\n */\r\n _cachingButtons: function () {\r\n this.codeViewDisabledButtons = context.element._buttonTray.querySelectorAll('.se-menu-list button[data-display]:not([class~=\"se-code-view-enabled\"]):not([data-display=\"MORE\"])');\r\n this.resizingDisabledButtons = context.element._buttonTray.querySelectorAll('.se-menu-list button[data-display]:not([class~=\"se-resizing-enabled\"]):not([data-display=\"MORE\"])');\r\n\r\n const tool = context.tool;\r\n const commandMap = this.commandMap;\r\n commandMap.INDENT = tool.indent;\r\n commandMap.OUTDENT = tool.outdent;\r\n commandMap[options.textTags.bold.toUpperCase()] = tool.bold;\r\n commandMap[options.textTags.underline.toUpperCase()] = tool.underline;\r\n commandMap[options.textTags.italic.toUpperCase()] = tool.italic;\r\n commandMap[options.textTags.strike.toUpperCase()] = tool.strike;\r\n commandMap[options.textTags.sub.toUpperCase()] = tool.subscript;\r\n commandMap[options.textTags.sup.toUpperCase()] = tool.superscript;\r\n\r\n this._styleCommandMap = {\r\n fullScreen: tool.fullScreen,\r\n showBlocks: tool.showBlocks,\r\n codeView: tool.codeView\r\n };\r\n\r\n this._saveButtonStates();\r\n },\r\n\r\n /**\r\n * @description Initializ wysiwyg area (Only called from core._init)\r\n * @param {Boolean} reload Is relooad?\r\n * @param {String} _initHTML initial html string\r\n * @private\r\n */\r\n _initWysiwygArea: function (reload, _initHTML) {\r\n context.element.wysiwyg.innerHTML = reload ? _initHTML : this.convertContentsForEditor((typeof _initHTML === 'string' ? _initHTML : /^TEXTAREA$/i.test(context.element.originElement.nodeName) ? context.element.originElement.value : context.element.originElement.innerHTML) || '');\r\n },\r\n\r\n /**\r\n * @description Called when there are changes to tags in the wysiwyg region.\r\n * @private\r\n */\r\n _resourcesStateChange: function () {\r\n this._iframeAutoHeight();\r\n this._checkPlaceholder();\r\n },\r\n\r\n /**\r\n * @description Called when after execute \"history.push\"\r\n * @private\r\n */\r\n _onChange_historyStack: function () {\r\n if (this.hasFocus) event._applyTagEffects();\r\n this._variable.isChanged = true;\r\n if (context.tool.save) context.tool.save.removeAttribute('disabled');\r\n // user event\r\n if (functions.onChange) functions.onChange(this.getContents(true), this);\r\n if (context.element.toolbar.style.display === 'block') event._showToolbarBalloon();\r\n },\r\n\r\n /**\r\n * @description Modify the height value of the iframe when the height of the iframe is automatic.\r\n * @private\r\n */\r\n _iframeAutoHeight: function () {\r\n if (this._iframeAuto) {\r\n _w.setTimeout(function () {\r\n const h = core._iframeAuto.offsetHeight;\r\n context.element.wysiwygFrame.style.height = h + 'px';\r\n if (!util.isResizeObserverSupported) core.__callResizeFunction(h, null);\r\n });\r\n } else if (!util.isResizeObserverSupported) {\r\n core.__callResizeFunction(context.element.wysiwygFrame.offsetHeight, null);\r\n }\r\n },\r\n\r\n __callResizeFunction: function (h, resizeObserverEntry) {\r\n h = h === -1 ? (resizeObserverEntry.borderBoxSize && resizeObserverEntry.borderBoxSize[0] ? resizeObserverEntry.borderBoxSize[0].blockSize : (resizeObserverEntry.contentRect.height + this._editorHeightPadding)) : h;\r\n if (this._editorHeight !== h) {\r\n if (typeof functions.onResizeEditor === 'function') functions.onResizeEditor(h, this._editorHeight, core, resizeObserverEntry);\r\n this._editorHeight = h;\r\n }\r\n },\r\n\r\n /**\r\n * @description Set display property when there is placeholder.\r\n * @private\r\n */\r\n _checkPlaceholder: function () {\r\n if (this._placeholder) {\r\n if (this._variable.isCodeView) {\r\n this._placeholder.style.display = 'none';\r\n return;\r\n }\r\n\r\n const wysiwyg = context.element.wysiwyg;\r\n if (!util.onlyZeroWidthSpace(wysiwyg.textContent) || wysiwyg.querySelector(util._allowedEmptyNodeList) || (wysiwyg.innerText.match(/\\n/g) || '').length > 1) {\r\n this._placeholder.style.display = 'none';\r\n } else {\r\n this._placeholder.style.display = 'block';\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @description If there is no default format, add a format and move \"selection\".\r\n * @param {String|null} formatName Format tag name (default: 'P')\r\n * @returns {undefined|null}\r\n * @private\r\n */\r\n _setDefaultFormat: function (formatName) {\r\n if (this._fileManager.pluginRegExp.test(this.currentControllerName)) return;\r\n\r\n const range = this.getRange();\r\n const commonCon = range.commonAncestorContainer;\r\n const startCon = range.startContainer;\r\n const rangeEl = util.getRangeFormatElement(commonCon, null);\r\n let focusNode, offset, format;\r\n\r\n const fileComponent = util.getParentElement(commonCon, util.isComponent);\r\n if (fileComponent && !util.isTable(fileComponent)) {\r\n return;\r\n } else if (commonCon.nodeType === 1 && commonCon.getAttribute('data-se-embed') === 'true') {\r\n let el = commonCon.nextElementSibling;\r\n if (!util.isFormatElement(el)) el = this.appendFormatTag(commonCon, options.defaultTag);\r\n this.setRange(el.firstChild, 0, el.firstChild, 0);\r\n return;\r\n }\r\n\r\n if ((util.isRangeFormatElement(startCon) || util.isWysiwygDiv(startCon)) && (util.isComponent(startCon.children[range.startOffset]) || util.isComponent(startCon.children[range.startOffset - 1]))) return;\r\n if (util.getParentElement(commonCon, util.isNotCheckingNode)) return null;\r\n\r\n if (rangeEl) {\r\n format = util.createElement(formatName || options.defaultTag);\r\n format.innerHTML = rangeEl.innerHTML;\r\n if (format.childNodes.length === 0) format.innerHTML = util.zeroWidthSpace;\r\n\r\n rangeEl.innerHTML = format.outerHTML;\r\n format = rangeEl.firstChild;\r\n focusNode = util.getEdgeChildNodes(format, null).sc;\r\n\r\n if (!focusNode) {\r\n focusNode = util.createTextNode(util.zeroWidthSpace);\r\n format.insertBefore(focusNode, format.firstChild);\r\n }\r\n\r\n offset = focusNode.textContent.length;\r\n this.setRange(focusNode, offset, focusNode, offset);\r\n return;\r\n }\r\n\r\n if(util.isRangeFormatElement(commonCon) && (commonCon.childNodes.length <= 1)) {\r\n let br = null;\r\n if (commonCon.childNodes.length === 1 && util.isBreak(commonCon.firstChild)) {\r\n br = commonCon.firstChild;\r\n } else {\r\n br = util.createTextNode(util.zeroWidthSpace);\r\n commonCon.appendChild(br);\r\n }\r\n\r\n this.setRange(br, 1, br, 1);\r\n return;\r\n }\r\n\r\n try {\r\n if (commonCon.nodeType === 3) {\r\n format = util.createElement(formatName || options.defaultTag);\r\n commonCon.parentNode.insertBefore(format, commonCon);\r\n format.appendChild(commonCon);\r\n }\r\n \r\n if (util.isBreak(format.nextSibling)) util.removeItem(format.nextSibling);\r\n if (util.isBreak(format.previousSibling)) util.removeItem(format.previousSibling);\r\n if (util.isBreak(focusNode)) {\r\n const zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n focusNode.parentNode.insertBefore(zeroWidth, focusNode);\r\n focusNode = zeroWidth;\r\n }\r\n } catch (e) {\r\n this.execCommand('formatBlock', false, (formatName || options.defaultTag));\r\n this.removeRange();\r\n this._editorRange();\r\n this.effectNode = null;\r\n return;\r\n }\r\n\r\n if (format) {\r\n if (util.isBreak(format.nextSibling)) util.removeItem(format.nextSibling);\r\n if (util.isBreak(format.previousSibling)) util.removeItem(format.previousSibling);\r\n if (util.isBreak(focusNode)) {\r\n const zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n focusNode.parentNode.insertBefore(zeroWidth, focusNode);\r\n focusNode = zeroWidth;\r\n }\r\n }\r\n\r\n this.effectNode = null;\r\n\r\n if (startCon) {\r\n this.setRange(startCon, 1, startCon, 1);\r\n } else {\r\n this.nativeFocus();\r\n }\r\n },\r\n\r\n /**\r\n * @description Initialization after \"setOptions\"\r\n * @param {Object} el context.element\r\n * @param {String} _initHTML Initial html string\r\n * @private\r\n */\r\n _setOptionsInit: function (el, _initHTML) {\r\n this.context = context = _Context(el.originElement, this._getConstructed(el), options);\r\n this._componentsInfoReset = true;\r\n this._editorInit(true, _initHTML);\r\n },\r\n\r\n /**\r\n * @description Initializ editor\r\n * @param {Boolean} reload Is relooad?\r\n * @param {String} _initHTML initial html string\r\n * @private\r\n */\r\n _editorInit: function (reload, _initHTML) {\r\n // initialize core and add event listeners\r\n this._init(reload, _initHTML);\r\n event._addEvent();\r\n this._setCharCount();\r\n event._offStickyToolbar();\r\n event.onResize_window();\r\n\r\n // toolbar visibility\r\n context.element.toolbar.style.visibility = '';\r\n // wisywig attributes\r\n const attr = options.frameAttrbutes;\r\n for (let k in attr) {\r\n context.element.wysiwyg.setAttribute(k, attr[k]);\r\n }\r\n\r\n this._checkComponents();\r\n this._componentsInfoInit = false;\r\n this._componentsInfoReset = false;\r\n\r\n this.history.reset(true);\r\n\r\n _w.setTimeout(function () {\r\n if (typeof core._resourcesStateChange !== 'function') return;\r\n\r\n // observer\r\n if (event._resizeObserver) event._resizeObserver.observe(context.element.wysiwygFrame);\r\n if (event._toolbarObserver) event._toolbarObserver.observe(context.element._toolbarShadow);\r\n // resource state\r\n core._resourcesStateChange();\r\n // user event\r\n if (typeof functions.onload === 'function') functions.onload(core, reload);\r\n });\r\n },\r\n\r\n /**\r\n * @description Create and return an object to cache the new context.\r\n * @param {Element} contextEl context.element\r\n * @returns {Object}\r\n * @private\r\n */\r\n _getConstructed: function (contextEl) {\r\n return {\r\n _top: contextEl.topArea,\r\n _relative: contextEl.relative,\r\n _toolBar: contextEl.toolbar,\r\n _toolbarShadow: contextEl._toolbarShadow,\r\n _menuTray: contextEl._menuTray,\r\n _editorArea: contextEl.editorArea,\r\n _wysiwygArea: contextEl.wysiwygFrame,\r\n _codeArea: contextEl.code,\r\n _placeholder: contextEl.placeholder,\r\n _resizingBar: contextEl.resizingBar,\r\n _navigation: contextEl.navigation,\r\n _charCounter: contextEl.charCounter,\r\n _charWrapper: contextEl.charWrapper,\r\n _loading: contextEl.loading,\r\n _lineBreaker: contextEl.lineBreaker,\r\n _lineBreaker_t: contextEl.lineBreaker_t,\r\n _lineBreaker_b: contextEl.lineBreaker_b,\r\n _resizeBack: contextEl.resizeBackground,\r\n _stickyDummy: contextEl._stickyDummy,\r\n _arrow: contextEl._arrow\r\n };\r\n }\r\n };\r\n\r\n /**\r\n * @description event function\r\n */\r\n const event = {\r\n _IEisComposing: false, // In IE, there is no \"e.isComposing\" in the key-up event.\r\n _lineBreakerBind: null,\r\n _responsiveCurrentSize: 'default',\r\n _responsiveButtonSize: null,\r\n _responsiveButtons: null,\r\n _deleteKeyCode: new _w.RegExp('^(8|46)$'),\r\n _cursorMoveKeyCode: new _w.RegExp('^(8|3[2-9]|40|46)$'),\r\n _directionKeyCode: new _w.RegExp('^(8|13|3[2-9]|40|46)$'),\r\n _nonTextKeyCode: new _w.RegExp('^(8|13|1[6-9]|20|27|3[3-9]|40|45|46|11[2-9]|12[0-3]|144|145)$'),\r\n _historyIgnoreKeyCode: new _w.RegExp('^(1[6-9]|20|27|3[3-9]|40|45|11[2-9]|12[0-3]|144|145)$'),\r\n _onButtonsCheck: new _w.RegExp('^(' + _w.Object.keys(options._textTagsMap).join('|') + ')$', 'i'),\r\n _frontZeroWidthReg: new _w.RegExp(util.zeroWidthSpace + '+', ''),\r\n _keyCodeShortcut: {\r\n 65: 'A',\r\n 66: 'B',\r\n 83: 'S',\r\n 85: 'U',\r\n 73: 'I',\r\n 89: 'Y',\r\n 90: 'Z',\r\n 219: '[',\r\n 221: ']'\r\n },\r\n\r\n _shortcutCommand: function (keyCode, shift) {\r\n let command = null;\r\n const keyStr = event._keyCodeShortcut[keyCode];\r\n\r\n switch (keyStr) {\r\n case 'A':\r\n command = 'selectAll';\r\n break;\r\n case 'B':\r\n if (options.shortcutsDisable.indexOf('bold') === -1) {\r\n command = 'bold';\r\n }\r\n break;\r\n case 'S':\r\n if (shift && options.shortcutsDisable.indexOf('strike') === -1) {\r\n command = 'strike';\r\n } else if (!shift && options.shortcutsDisable.indexOf('save') === -1) {\r\n command = 'save';\r\n }\r\n break;\r\n case 'U':\r\n if (options.shortcutsDisable.indexOf('underline') === -1) {\r\n command = 'underline';\r\n }\r\n break;\r\n case 'I':\r\n if (options.shortcutsDisable.indexOf('italic') === -1) {\r\n command = 'italic';\r\n }\r\n break;\r\n case 'Z':\r\n if (options.shortcutsDisable.indexOf('undo') === -1) {\r\n if (shift) {\r\n command = 'redo';\r\n } else {\r\n command = 'undo';\r\n }\r\n }\r\n break;\r\n case 'Y':\r\n if (options.shortcutsDisable.indexOf('undo') === -1) {\r\n command = 'redo';\r\n }\r\n break;\r\n case '[':\r\n if (options.shortcutsDisable.indexOf('indent') === -1) {\r\n command = options.rtl ? 'indent' : 'outdent';\r\n }\r\n break;\r\n case ']':\r\n if (options.shortcutsDisable.indexOf('indent') === -1) {\r\n command = options.rtl ? 'outdent' : 'indent';\r\n }\r\n break;\r\n }\r\n\r\n if (!command) return !!keyStr;\r\n\r\n core.commandHandler(core.commandMap[command], command);\r\n return true;\r\n },\r\n\r\n _applyTagEffects: function () {\r\n if (util.hasClass(context.element.wysiwyg, 'se-read-only')) {\r\n return false;\r\n }\r\n\r\n let selectionNode = core.getSelectionNode();\r\n if (selectionNode === core.effectNode) return;\r\n core.effectNode = selectionNode;\r\n\r\n const marginDir = options.rtl ? 'marginRight' : 'marginLeft';\r\n const commandMap = core.commandMap;\r\n const classOnCheck = event._onButtonsCheck;\r\n const commandMapNodes = [];\r\n const currentNodes = [];\r\n\r\n const activePlugins = core.activePlugins;\r\n const cLen = activePlugins.length;\r\n let nodeName = '';\r\n\r\n while (selectionNode.firstChild) {\r\n selectionNode = selectionNode.firstChild;\r\n }\r\n\r\n for (let element = selectionNode; !util.isWysiwygDiv(element); element = element.parentNode) {\r\n if (!element) break;\r\n if (element.nodeType !== 1 || util.isBreak(element)) continue;\r\n nodeName = element.nodeName.toUpperCase();\r\n currentNodes.push(nodeName);\r\n\r\n /* Active plugins */\r\n if (!core.isReadOnly) {\r\n for (let c = 0, name; c < cLen; c++) {\r\n name = activePlugins[c];\r\n if (commandMapNodes.indexOf(name) === -1 && plugins[name].active.call(core, element)) {\r\n commandMapNodes.push(name);\r\n }\r\n }\r\n }\r\n\r\n if (util.isFormatElement(element)) {\r\n /* Outdent */\r\n if (commandMapNodes.indexOf('OUTDENT') === -1 && commandMap.OUTDENT && !util.isImportantDisabled(commandMap.OUTDENT)) {\r\n if (util.isListCell(element) || (element.style[marginDir] && util.getNumber(element.style[marginDir], 0) > 0)) {\r\n commandMapNodes.push('OUTDENT');\r\n commandMap.OUTDENT.removeAttribute('disabled');\r\n }\r\n }\r\n\r\n /* Indent */\r\n if (commandMapNodes.indexOf('INDENT') === -1 && commandMap.INDENT && !util.isImportantDisabled(commandMap.INDENT)) {\r\n commandMapNodes.push('INDENT');\r\n if (util.isListCell(element) && !element.previousElementSibling) {\r\n commandMap.INDENT.setAttribute('disabled', true);\r\n } else {\r\n commandMap.INDENT.removeAttribute('disabled');\r\n }\r\n }\r\n\r\n continue;\r\n }\r\n\r\n /** default active buttons [strong, ins, em, del, sub, sup] */\r\n if (classOnCheck && classOnCheck.test(nodeName)) {\r\n commandMapNodes.push(nodeName);\r\n util.addClass(commandMap[nodeName], 'active');\r\n }\r\n }\r\n\r\n core._setKeyEffect(commandMapNodes);\r\n\r\n /** save current nodes */\r\n core._variable.currentNodes = currentNodes.reverse();\r\n core._variable.currentNodesMap = commandMapNodes;\r\n\r\n /** Displays the current node structure to resizingBar */\r\n if (options.showPathLabel) context.element.navigation.textContent = core._variable.currentNodes.join(' > ');\r\n },\r\n\r\n _buttonsEventHandler: function (e) {\r\n let target = e.target;\r\n if (core._bindControllersOff) e.stopPropagation();\r\n\r\n if (/^(input|textarea|select|option)$/i.test(target.nodeName)) {\r\n core._antiBlur = false;\r\n } else {\r\n e.preventDefault();\r\n }\r\n\r\n if (util.getParentElement(target, '.se-submenu')) {\r\n e.stopPropagation();\r\n core._notHideToolbar = true;\r\n } else {\r\n let command = target.getAttribute('data-command');\r\n let className = target.className;\r\n\r\n while (!command && !/se-menu-list/.test(className) && !/sun-editor-common/.test(className)) {\r\n target = target.parentNode;\r\n command = target.getAttribute('data-command');\r\n className = target.className;\r\n }\r\n\r\n if (command === core._submenuName || command === core._containerName) {\r\n e.stopPropagation();\r\n }\r\n }\r\n },\r\n\r\n addGlobalEvent: function (type, listener, useCapture) {\r\n if (options.iframe) {\r\n core._ww.addEventListener(type, listener, useCapture);\r\n }\r\n core._w.addEventListener(type, listener, useCapture);\r\n return {\r\n type: type,\r\n listener: listener,\r\n useCapture: useCapture\r\n };\r\n },\r\n \r\n removeGlobalEvent: function (type, listener, useCapture) {\r\n if (!type) return;\r\n \r\n if (typeof type === 'object') {\r\n listener = type.listener;\r\n useCapture = type.useCapture;\r\n type = type.type;\r\n }\r\n if (options.iframe) {\r\n core._ww.removeEventListener(type, listener, useCapture);\r\n }\r\n core._w.removeEventListener(type, listener, useCapture);\r\n },\r\n\r\n onClick_toolbar: function (e) {\r\n let target = e.target;\r\n let display = target.getAttribute('data-display');\r\n let command = target.getAttribute('data-command');\r\n let className = target.className;\r\n core.controllersOff();\r\n\r\n while (target.parentNode && !command && !/se-menu-list/.test(className) && !/se-toolbar/.test(className)) {\r\n target = target.parentNode;\r\n command = target.getAttribute('data-command');\r\n display = target.getAttribute('data-display');\r\n className = target.className;\r\n }\r\n\r\n if (!command && !display) return;\r\n if (target.disabled) return;\r\n\r\n core.actionCall(command, display, target);\r\n },\r\n\r\n __selectionSyncEvent: null,\r\n onMouseDown_wysiwyg: function (e) {\r\n if (core.isReadOnly || util.isNonEditable(context.element.wysiwyg)) return;\r\n if (util._isExcludeSelectionElement(e.target)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n event.removeGlobalEvent(event.__selectionSyncEvent);\r\n event.__selectionSyncEvent = event.addGlobalEvent('mouseup', function() {\r\n if (core) {\r\n core._editorRange();\r\n }\r\n event.removeGlobalEvent(event.__selectionSyncEvent);\r\n });\r\n\r\n // user event\r\n if (typeof functions.onMouseDown === 'function' && functions.onMouseDown(e, core) === false) return;\r\n\r\n const tableCell = util.getParentElement(e.target, util.isCell);\r\n if (tableCell) {\r\n const tablePlugin = core.plugins.table;\r\n if (tablePlugin && tableCell !== tablePlugin._fixedCell && !tablePlugin._shift) {\r\n core.callPlugin('table', function () {\r\n tablePlugin.onTableCellMultiSelect.call(core, tableCell, false);\r\n }, null);\r\n }\r\n }\r\n\r\n if (core._isBalloon) {\r\n event._hideToolbar();\r\n }\r\n },\r\n\r\n onClick_wysiwyg: function (e) {\r\n // if (util.hasClass(context.element.wysiwyg, 'se-read-only')) {\r\n // e.preventDefault();\r\n // return false;\r\n // }\r\n\r\n const targetElement = e.target;\r\n\r\n if (core.isReadOnly) {\r\n e.preventDefault();\r\n if (util.isAnchor(targetElement)){\r\n _w.open(targetElement.href, targetElement.target);\r\n }\r\n return false;\r\n }\r\n\r\n if (util.isNonEditable(context.element.wysiwyg)) return;\r\n\r\n // user event\r\n if (typeof functions.onClick === 'function' && functions.onClick(e, core) === false) return;\r\n\r\n const fileComponentInfo = core.getFileComponent(targetElement);\r\n if (fileComponentInfo) {\r\n e.preventDefault();\r\n core.selectComponent(fileComponentInfo.target, fileComponentInfo.pluginName);\r\n return;\r\n }\r\n\r\n const figcaption = util.getParentElement(targetElement, 'FIGCAPTION');\r\n if (figcaption && util.isNonEditable(figcaption)) {\r\n e.preventDefault();\r\n figcaption.focus();\r\n\r\n if (core._isInline && !core._inlineToolbarAttr.isShow) {\r\n event._showToolbarInline();\r\n\r\n const hideToolbar = function () {\r\n event._hideToolbar();\r\n figcaption.removeEventListener('blur', hideToolbar);\r\n };\r\n\r\n figcaption.addEventListener('blur', hideToolbar);\r\n }\r\n }\r\n\r\n core._editorRange();\r\n\r\n if (e.detail === 3) {\r\n let range = core.getRange();\r\n if (util.isFormatElement(range.endContainer) && range.endOffset === 0) {\r\n range = core.setRange(range.startContainer, range.startOffset, range.startContainer, range.startContainer.length);\r\n core._rangeInfo(range, core.getSelection());\r\n }\r\n }\r\n\r\n const selectionNode = core.getSelectionNode();\r\n const formatEl = util.getFormatElement(selectionNode, null);\r\n const rangeEl = util.getRangeFormatElement(selectionNode, null);\r\n\r\n let selectionNodeDeepestFirstChild = selectionNode;\r\n while (selectionNodeDeepestFirstChild && selectionNodeDeepestFirstChild.firstChild) selectionNodeDeepestFirstChild = selectionNodeDeepestFirstChild.firstChild;\r\n\r\n const selectedComponentInfo = core.getFileComponent(selectionNodeDeepestFirstChild);\r\n if (selectedComponentInfo) {\r\n const range = core.getRange();\r\n if (!rangeEl && range.startContainer === range.endContainer) core.selectComponent(selectedComponentInfo.target, selectedComponentInfo.pluginName);\r\n } else if (core.currentFileComponentInfo) core.controllersOff();\r\n\r\n if (!formatEl && !util.isNonEditable(targetElement) && !util.isList(rangeEl)) {\r\n const range = core.getRange();\r\n if (util.getFormatElement(range.startContainer) === util.getFormatElement(range.endContainer)) {\r\n if (util.isList(rangeEl)) {\r\n e.preventDefault();\r\n const oLi = util.createElement('LI');\r\n const prevLi = selectionNode.nextElementSibling;\r\n oLi.appendChild(selectionNode);\r\n rangeEl.insertBefore(oLi, prevLi);\r\n core.focus();\r\n } else if (!util.isWysiwygDiv(selectionNode) && !util.isComponent(selectionNode) && (!util.isTable(selectionNode) || util.isCell(selectionNode)) && core._setDefaultFormat(util.isRangeFormatElement(rangeEl) ? 'DIV' : options.defaultTag) !== null) {\r\n e.preventDefault();\r\n core.focus();\r\n } else {\r\n event._applyTagEffects();\r\n }\r\n }\r\n } else {\r\n event._applyTagEffects();\r\n }\r\n\r\n if (core._isBalloon) _w.setTimeout(event._toggleToolbarBalloon);\r\n },\r\n\r\n _balloonDelay: null,\r\n _showToolbarBalloonDelay: function () {\r\n if (event._balloonDelay) {\r\n _w.clearTimeout(event._balloonDelay);\r\n }\r\n\r\n event._balloonDelay = _w.setTimeout(function () {\r\n _w.clearTimeout(this._balloonDelay);\r\n this._balloonDelay = null;\r\n this._showToolbarBalloon();\r\n }.bind(event), 350);\r\n },\r\n\r\n _toggleToolbarBalloon: function () {\r\n if (core) {\r\n core._editorRange();\r\n const range = core.getRange();\r\n if (core._bindControllersOff || (!core._isBalloonAlways && range.collapsed)) event._hideToolbar();\r\n else event._showToolbarBalloon(range);\r\n }\r\n },\r\n\r\n _showToolbarBalloon: function (rangeObj) {\r\n if (!core._isBalloon) return;\r\n\r\n const range = rangeObj || core.getRange();\r\n const toolbar = context.element.toolbar;\r\n const topArea = context.element.topArea;\r\n const selection = core.getSelection();\r\n\r\n let isDirTop;\r\n if (core._isBalloonAlways && range.collapsed) {\r\n isDirTop = true;\r\n } else if (selection.focusNode === selection.anchorNode) {\r\n isDirTop = selection.focusOffset < selection.anchorOffset;\r\n } else {\r\n const childNodes = util.getListChildNodes(range.commonAncestorContainer, null);\r\n isDirTop = util.getArrayIndex(childNodes, selection.focusNode) < util.getArrayIndex(childNodes, selection.anchorNode);\r\n }\r\n\r\n let rects = range.getClientRects();\r\n rects = rects[isDirTop ? 0 : rects.length - 1];\r\n\r\n const globalScroll = core.getGlobalScrollOffset();\r\n let scrollLeft = globalScroll.left;\r\n let scrollTop = globalScroll.top;\r\n\r\n const editorWidth = topArea.offsetWidth;\r\n const offsets = event._getEditorOffsets(null);\r\n const stickyTop = offsets.top;\r\n const editorLeft = offsets.left;\r\n\r\n toolbar.style.top = '-10000px';\r\n toolbar.style.visibility = 'hidden';\r\n toolbar.style.display = 'block';\r\n\r\n if (!rects) {\r\n const node = core.getSelectionNode();\r\n if (util.isFormatElement(node)) {\r\n const zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n core.insertNode(zeroWidth, null, false);\r\n core.setRange(zeroWidth, 1, zeroWidth, 1);\r\n core._editorRange();\r\n rects = core.getRange().getClientRects();\r\n rects = rects[isDirTop ? 0 : rects.length - 1];\r\n }\r\n\r\n if (!rects) {\r\n const nodeOffset = util.getOffset(node, context.element.wysiwygFrame);\r\n rects = {\r\n left: nodeOffset.left,\r\n top: nodeOffset.top,\r\n right: nodeOffset.left,\r\n bottom: nodeOffset.top + node.offsetHeight,\r\n noText: true\r\n };\r\n scrollLeft = 0;\r\n scrollTop = 0;\r\n }\r\n\r\n isDirTop = true;\r\n }\r\n\r\n const arrowMargin = _w.Math.round(context.element._arrow.offsetWidth / 2);\r\n const toolbarWidth = toolbar.offsetWidth;\r\n const toolbarHeight = toolbar.offsetHeight;\r\n const iframeRects = /iframe/i.test(context.element.wysiwygFrame.nodeName) ? context.element.wysiwygFrame.getClientRects()[0] : null;\r\n if (iframeRects) {\r\n rects = {\r\n left: rects.left + iframeRects.left,\r\n top: rects.top + iframeRects.top,\r\n right: rects.right + iframeRects.right - iframeRects.width,\r\n bottom: rects.bottom + iframeRects.bottom - iframeRects.height\r\n };\r\n }\r\n\r\n event._setToolbarOffset(isDirTop, rects, toolbar, editorLeft, editorWidth, scrollLeft, scrollTop, stickyTop, arrowMargin);\r\n if (toolbarWidth !== toolbar.offsetWidth || toolbarHeight !== toolbar.offsetHeight) {\r\n event._setToolbarOffset(isDirTop, rects, toolbar, editorLeft, editorWidth, scrollLeft, scrollTop, stickyTop, arrowMargin);\r\n }\r\n\r\n if (options.toolbarContainer) {\r\n const editorParent = topArea.parentElement;\r\n\r\n let container = options.toolbarContainer;\r\n let left = container.offsetLeft;\r\n let top = container.offsetTop;\r\n\r\n while(!container.parentElement.contains(editorParent) || !/^(BODY|HTML)$/i.test(container.parentElement.nodeName)) {\r\n container = container.offsetParent;\r\n left += container.offsetLeft;\r\n top += container.offsetTop;\r\n }\r\n\r\n toolbar.style.left = (toolbar.offsetLeft - left + topArea.offsetLeft) + 'px';\r\n toolbar.style.top = (toolbar.offsetTop - top + topArea.offsetTop) + 'px';\r\n }\r\n\r\n toolbar.style.visibility = '';\r\n },\r\n\r\n _setToolbarOffset: function (isDirTop, rects, toolbar, editorLeft, editorWidth, scrollLeft, scrollTop, stickyTop, arrowMargin) {\r\n const padding = 1;\r\n const toolbarWidth = toolbar.offsetWidth;\r\n const toolbarHeight = rects.noText && !isDirTop ? 0 : toolbar.offsetHeight;\r\n\r\n const absoluteLeft = (isDirTop ? rects.left : rects.right) - editorLeft - (toolbarWidth / 2) + scrollLeft;\r\n const overRight = absoluteLeft + toolbarWidth - editorWidth;\r\n\r\n let t = (isDirTop ? rects.top - toolbarHeight - arrowMargin : rects.bottom + arrowMargin) - (rects.noText ? 0 : stickyTop) + scrollTop;\r\n let l = absoluteLeft < 0 ? padding : overRight < 0 ? absoluteLeft : absoluteLeft - overRight - padding - 1;\r\n\r\n let resetTop = false;\r\n const space = t + (isDirTop ? (event._getEditorOffsets(null).top) : (toolbar.offsetHeight - context.element.wysiwyg.offsetHeight));\r\n if (!isDirTop && space > 0 && event._getPageBottomSpace() < space) {\r\n isDirTop = true;\r\n resetTop = true;\r\n } else if (isDirTop && _d.documentElement.offsetTop > space) {\r\n isDirTop = false;\r\n resetTop = true;\r\n }\r\n\r\n if (resetTop) t = (isDirTop ? rects.top - toolbarHeight - arrowMargin : rects.bottom + arrowMargin) - (rects.noText ? 0 : stickyTop) + scrollTop;\r\n\r\n toolbar.style.left = _w.Math.floor(l) + 'px';\r\n toolbar.style.top = _w.Math.floor(t) + 'px';\r\n\r\n if (isDirTop) {\r\n util.removeClass(context.element._arrow, 'se-arrow-up');\r\n util.addClass(context.element._arrow, 'se-arrow-down');\r\n context.element._arrow.style.top = toolbarHeight + 'px';\r\n } else {\r\n util.removeClass(context.element._arrow, 'se-arrow-down');\r\n util.addClass(context.element._arrow, 'se-arrow-up');\r\n context.element._arrow.style.top = -arrowMargin + 'px';\r\n }\r\n\r\n const arrow_left = _w.Math.floor((toolbarWidth / 2) + (absoluteLeft - l));\r\n context.element._arrow.style.left = (arrow_left + arrowMargin > toolbar.offsetWidth ? toolbar.offsetWidth - arrowMargin : arrow_left < arrowMargin ? arrowMargin : arrow_left) + 'px';\r\n },\r\n\r\n _showToolbarInline: function () {\r\n if (!core._isInline) return;\r\n\r\n const toolbar = context.element.toolbar;\r\n if (options.toolbarContainer) toolbar.style.position = 'relative';\r\n else toolbar.style.position = 'absolute';\r\n\r\n toolbar.style.visibility = 'hidden';\r\n toolbar.style.display = 'block';\r\n core._inlineToolbarAttr.width = toolbar.style.width = options.toolbarWidth;\r\n core._inlineToolbarAttr.top = toolbar.style.top = (options.toolbarContainer ? 0 : (-1 - toolbar.offsetHeight)) + 'px';\r\n\r\n if (typeof functions.showInline === 'function') functions.showInline(toolbar, context, core);\r\n\r\n event.onScroll_window();\r\n core._inlineToolbarAttr.isShow = true;\r\n toolbar.style.visibility = '';\r\n },\r\n\r\n _hideToolbar: function () {\r\n if (!core._notHideToolbar && !core._variable.isFullScreen) {\r\n context.element.toolbar.style.display = 'none';\r\n core._inlineToolbarAttr.isShow = false;\r\n }\r\n },\r\n\r\n onInput_wysiwyg: function (e) {\r\n if (/AUDIO/.test(e.target.nodeName)) return false;\r\n if (core.isReadOnly || core.isDisabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n core.history.go(core.history.getCurrentIndex());\r\n return false;\r\n }\r\n\r\n const range = core.getRange();\r\n const selectionNode = core.getSelectionNode();\r\n const formatEl = util.getFormatElement(selectionNode, null);\r\n if (!formatEl && range.collapsed && !util.isComponent(selectionNode) && !util.isList(selectionNode)) {\r\n const rangeEl = util.getRangeFormatElement(formatEl, null);\r\n core._setDefaultFormat(util.isRangeFormatElement(rangeEl) ? 'DIV' : options.defaultTag);\r\n }\r\n\r\n core._editorRange();\r\n\r\n const data = (e.data === null ? '' : e.data === undefined ? ' ' : e.data) || '';\r\n if (!core._charCount(data)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n // user event\r\n if (typeof functions.onInput === 'function' && functions.onInput(e, core) === false) return;\r\n\r\n // history stack\r\n core.history.push(true);\r\n },\r\n\r\n _isUneditableNode: function (range, isFront) {\r\n const container = isFront ? range.startContainer : range.endContainer;\r\n const offset = isFront ? range.startOffset : range.endOffset;\r\n const siblingKey = isFront ? 'previousSibling' : 'nextSibling';\r\n const isElement = container.nodeType === 1;\r\n let siblingNode;\r\n\r\n if (isElement) {\r\n siblingNode = event._isUneditableNode_getSibling(container.childNodes[offset], siblingKey, container);\r\n return siblingNode && siblingNode.nodeType === 1 && siblingNode.getAttribute('contenteditable') === 'false';\r\n } else {\r\n siblingNode = event._isUneditableNode_getSibling(container, siblingKey, container);\r\n return core.isEdgePoint(container, offset, isFront ? 'start' : 'end') && (siblingNode && siblingNode.nodeType === 1 && siblingNode.getAttribute('contenteditable') === 'false');\r\n }\r\n },\r\n\r\n _isUneditableNode_getSibling: function (selectNode, siblingKey, container) {\r\n if (!selectNode) return null;\r\n let siblingNode = selectNode[siblingKey];\r\n\r\n if (!siblingNode) {\r\n siblingNode = util.getFormatElement(container);\r\n siblingNode = siblingNode ? siblingNode[siblingKey] : null;\r\n if (siblingNode && !util.isComponent(siblingNode)) siblingNode = siblingKey === 'previousSibling' ? siblingNode.firstChild : siblingNode.lastChild;\r\n else return null;\r\n }\r\n\r\n return siblingNode;\r\n },\r\n\r\n _onShortcutKey: false,\r\n onKeyDown_wysiwyg: function (e) {\r\n let selectionNode = core.getSelectionNode();\r\n if (util.isInputElement(selectionNode)) return;\r\n\r\n const keyCode = e.keyCode;\r\n const shift = e.shiftKey;\r\n const ctrl = e.ctrlKey || e.metaKey || keyCode === 91 || keyCode === 92 || keyCode === 224;\r\n const alt = e.altKey;\r\n event._IEisComposing = keyCode === 229;\r\n\r\n if (!ctrl && core.isReadOnly && !event._cursorMoveKeyCode.test(keyCode)) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n\r\n core.submenuOff();\r\n\r\n if (core._isBalloon) {\r\n event._hideToolbar();\r\n }\r\n\r\n // user event\r\n if (typeof functions.onKeyDown === 'function' && functions.onKeyDown(e, core) === false) return;\r\n\r\n /** Shortcuts */\r\n if (ctrl && event._shortcutCommand(keyCode, shift)) {\r\n event._onShortcutKey = true;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n } else if (event._onShortcutKey) {\r\n event._onShortcutKey = false;\r\n }\r\n\r\n /** default key action */\r\n if (keyCode === 13 && util.isFormatElement(core.getRange().startContainer)) {\r\n core._resetRangeToTextNode();\r\n selectionNode = core.getSelectionNode();\r\n }\r\n \r\n const range = core.getRange();\r\n const selectRange = !range.collapsed || range.startContainer !== range.endContainer;\r\n const fileComponentName = core._fileManager.pluginRegExp.test(core.currentControllerName) ? core.currentControllerName : '';\r\n let formatEl = util.getFormatElement(selectionNode, null) || selectionNode;\r\n let rangeEl = util.getRangeFormatElement(formatEl, null);\r\n\r\n const isArrowKey = /37|38|39|40/.test(e.keyCode);\r\n if (isArrowKey && event._onKeyDown_wysiwyg_arrowKey(e) === false) return;\r\n\r\n switch (keyCode) {\r\n case 8: /** backspace key */\r\n if (!selectRange) {\r\n if (fileComponentName) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n core.plugins[fileComponentName].destroy.call(core);\r\n break;\r\n }\r\n }\r\n\r\n if (selectRange && event._hardDelete()) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n break;\r\n }\r\n\r\n if (!util.isFormatElement(formatEl) && !context.element.wysiwyg.firstElementChild && !util.isComponent(selectionNode) && core._setDefaultFormat(options.defaultTag) !== null) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n if (!selectRange && !formatEl.previousElementSibling && (range.startOffset === 0 && !selectionNode.previousSibling && !util.isListCell(formatEl) &&\r\n (util.isFormatElement(formatEl) && (!util.isFreeFormatElement(formatEl) || util.isClosureFreeFormatElement(formatEl))))) {\r\n // closure range\r\n if (util.isClosureRangeFormatElement(formatEl.parentNode)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n // maintain default format\r\n if (util.isWysiwygDiv(formatEl.parentNode) && formatEl.childNodes.length <= 1 && (!formatEl.firstChild || util.onlyZeroWidthSpace(formatEl.textContent))) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (formatEl.nodeName.toUpperCase() === options.defaultTag.toUpperCase()) {\r\n formatEl.innerHTML = '
      ';\r\n const attrs = formatEl.attributes;\r\n while (attrs[0]) {\r\n formatEl.removeAttribute(attrs[0].name);\r\n }\r\n } else {\r\n const defaultFormat = util.createElement(options.defaultTag);\r\n defaultFormat.innerHTML = '
      ';\r\n formatEl.parentElement.replaceChild(defaultFormat, formatEl);\r\n }\r\n\r\n core.nativeFocus();\r\n return false;\r\n }\r\n }\r\n\r\n // clean remove tag\r\n const startCon = range.startContainer;\r\n if (formatEl && !formatEl.previousElementSibling && range.startOffset === 0 && startCon.nodeType === 3 && !util.isFormatElement(startCon.parentNode)) {\r\n let prev = startCon.parentNode.previousSibling;\r\n const next = startCon.parentNode.nextSibling;\r\n if (!prev) {\r\n if (!next) {\r\n prev = util.createElement('BR');\r\n formatEl.appendChild(prev);\r\n } else {\r\n prev = next;\r\n }\r\n }\r\n\r\n let con = startCon;\r\n while(formatEl.contains(con) && !con.previousSibling) {\r\n con = con.parentNode;\r\n }\r\n\r\n if (!formatEl.contains(con)) {\r\n startCon.textContent = '';\r\n util.removeItemAllParents(startCon, null, formatEl);\r\n break;\r\n }\r\n }\r\n\r\n // tag[contenteditable=\"false\"]\r\n if (event._isUneditableNode(range, true)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n break;\r\n }\r\n\r\n // format attributes\r\n if (!selectRange && core._isEdgeFormat(range.startContainer, range.startOffset, 'start')) {\r\n if (util.isFormatElement(formatEl.previousElementSibling)) {\r\n core._formatAttrsTemp = formatEl.previousElementSibling.attributes;\r\n }\r\n }\r\n\r\n // nested list\r\n const commonCon = range.commonAncestorContainer;\r\n formatEl = util.getFormatElement(range.startContainer, null);\r\n rangeEl = util.getRangeFormatElement(formatEl, null);\r\n if (rangeEl && formatEl && !util.isCell(rangeEl) && !/^FIGCAPTION$/i.test(rangeEl.nodeName)) {\r\n if (util.isListCell(formatEl) && util.isList(rangeEl) && (util.isListCell(rangeEl.parentNode) || formatEl.previousElementSibling) && (selectionNode === formatEl || (selectionNode.nodeType === 3 && (!selectionNode.previousSibling || util.isList(selectionNode.previousSibling)))) &&\r\n (util.getFormatElement(range.startContainer, null) !== util.getFormatElement(range.endContainer, null) ? rangeEl.contains(range.startContainer) : (range.startOffset === 0 && range.collapsed))) {\r\n if (range.startContainer !== range.endContainer) {\r\n e.preventDefault();\r\n\r\n core.removeNode();\r\n if (range.startContainer.nodeType === 3) {\r\n core.setRange(range.startContainer, range.startContainer.textContent.length, range.startContainer, range.startContainer.textContent.length);\r\n }\r\n // history stack\r\n core.history.push(true);\r\n } else {\r\n let prev = formatEl.previousElementSibling || rangeEl.parentNode;\r\n if (util.isListCell(prev)) {\r\n e.preventDefault();\r\n\r\n let prevLast = prev;\r\n if (!prev.contains(formatEl) && util.isListCell(prevLast) && util.isList(prevLast.lastElementChild)) {\r\n prevLast = prevLast.lastElementChild.lastElementChild;\r\n while (util.isListCell(prevLast) && util.isList(prevLast.lastElementChild)) {\r\n prevLast = prevLast.lastElementChild && prevLast.lastElementChild.lastElementChild;\r\n }\r\n prev = prevLast;\r\n }\r\n\r\n let con = prev === rangeEl.parentNode ? rangeEl.previousSibling : prev.lastChild;\r\n if (!con) {\r\n con = util.createTextNode(util.zeroWidthSpace);\r\n rangeEl.parentNode.insertBefore(con, rangeEl.parentNode.firstChild);\r\n }\r\n const offset = con.nodeType === 3 ? con.textContent.length : 1;\r\n const children = formatEl.childNodes;\r\n let after = con;\r\n let child = children[0];\r\n while ((child = children[0])) {\r\n prev.insertBefore(child, after.nextSibling);\r\n after = child;\r\n }\r\n\r\n util.removeItem(formatEl);\r\n if (rangeEl.children.length === 0) util.removeItem(rangeEl);\r\n\r\n core.setRange(con, offset, con, offset);\r\n // history stack\r\n core.history.push(true);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n\r\n // detach range\r\n if (!selectRange && range.startOffset === 0) {\r\n let detach = true;\r\n let comm = commonCon;\r\n while (comm && comm !== rangeEl && !util.isWysiwygDiv(comm)) {\r\n if (comm.previousSibling) {\r\n if (comm.previousSibling.nodeType === 1 || !util.onlyZeroWidthSpace(comm.previousSibling.textContent.trim())) {\r\n detach = false;\r\n break;\r\n }\r\n }\r\n comm = comm.parentNode;\r\n }\r\n\r\n if (detach && rangeEl.parentNode) {\r\n e.preventDefault();\r\n core.detachRangeFormatElement(rangeEl, (util.isListCell(formatEl) ? [formatEl] : null), null, false, false);\r\n // history stack\r\n core.history.push(true);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // component\r\n if (!selectRange && formatEl && (range.startOffset === 0 || (selectionNode === formatEl ? !!formatEl.childNodes[range.startOffset] : false))) {\r\n const sel = selectionNode === formatEl ? formatEl.childNodes[range.startOffset] : selectionNode;\r\n const prev = formatEl.previousSibling;\r\n // select file component\r\n const ignoreZWS = (commonCon.nodeType === 3 || util.isBreak(commonCon)) && !commonCon.previousSibling && range.startOffset === 0;\r\n if (sel && !sel.previousSibling && ( (commonCon && util.isComponent(commonCon.previousSibling)) || (ignoreZWS && util.isComponent(prev)))) {\r\n const fileComponentInfo = core.getFileComponent(prev);\r\n if (fileComponentInfo) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (formatEl.textContent.length === 0) util.removeItem(formatEl);\r\n if (core.selectComponent(fileComponentInfo.target, fileComponentInfo.pluginName) === false) core.blur();\r\n } else if (util.isComponent(prev)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n util.removeItem(prev);\r\n }\r\n break;\r\n }\r\n // delete nonEditable\r\n if (sel && util.isNonEditable(sel.previousSibling)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n util.removeItem(sel.previousSibling);\r\n break;\r\n }\r\n }\r\n\r\n break;\r\n case 46: /** delete key */\r\n if (fileComponentName) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n core.plugins[fileComponentName].destroy.call(core);\r\n break;\r\n }\r\n\r\n if (selectRange && event._hardDelete()) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n break;\r\n }\r\n\r\n if (!selectRange && core._isEdgeFormat(range.endContainer, range.endOffset, 'end') && !formatEl.nextSibling) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n\r\n // tag[contenteditable=\"false\"]\r\n if (event._isUneditableNode(range, false)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n break;\r\n }\r\n\r\n // component\r\n if ((util.isFormatElement(selectionNode) || selectionNode.nextSibling === null || (util.onlyZeroWidthSpace(selectionNode.nextSibling) && selectionNode.nextSibling.nextSibling === null)) && range.startOffset === selectionNode.textContent.length) {\r\n const nextEl = formatEl.nextElementSibling;\r\n if (!nextEl) break;\r\n if (util.isComponent(nextEl)) {\r\n e.preventDefault();\r\n\r\n if (util.onlyZeroWidthSpace(formatEl)) {\r\n util.removeItem(formatEl);\r\n // table component\r\n if (util.isTable(nextEl)) {\r\n let cell = util.getChildElement(nextEl, util.isCell, false);\r\n cell = cell.firstElementChild || cell;\r\n core.setRange(cell, 0, cell, 0);\r\n break;\r\n }\r\n }\r\n\r\n // select file component\r\n const fileComponentInfo = core.getFileComponent(nextEl);\r\n if (fileComponentInfo) {\r\n e.stopPropagation();\r\n if (core.selectComponent(fileComponentInfo.target, fileComponentInfo.pluginName) === false) core.blur();\r\n } else if (util.isComponent(nextEl)) {\r\n e.stopPropagation();\r\n util.removeItem(nextEl);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (!selectRange && (core.isEdgePoint(range.endContainer, range.endOffset) || (selectionNode === formatEl ? !!formatEl.childNodes[range.startOffset] : false))) {\r\n const sel = selectionNode === formatEl ? formatEl.childNodes[range.startOffset] || selectionNode : selectionNode;\r\n // delete nonEditable\r\n if (sel && util.isNonEditable(sel.nextSibling)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n util.removeItem(sel.nextSibling);\r\n break;\r\n } else if (util.isComponent(sel)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n util.removeItem(sel);\r\n break;\r\n }\r\n }\r\n\r\n // format attributes\r\n if (!selectRange && core._isEdgeFormat(range.endContainer, range.endOffset, 'end')) {\r\n if (util.isFormatElement(formatEl.nextElementSibling)) {\r\n core._formatAttrsTemp = formatEl.attributes;\r\n }\r\n }\r\n\r\n // nested list\r\n formatEl = util.getFormatElement(range.startContainer, null);\r\n rangeEl = util.getRangeFormatElement(formatEl, null);\r\n if (util.isListCell(formatEl) && util.isList(rangeEl) && (selectionNode === formatEl || (selectionNode.nodeType === 3 && (!selectionNode.nextSibling || util.isList(selectionNode.nextSibling)) &&\r\n (util.getFormatElement(range.startContainer, null) !== util.getFormatElement(range.endContainer, null) ? rangeEl.contains(range.endContainer) : (range.endOffset === selectionNode.textContent.length && range.collapsed))))) {\r\n if (range.startContainer !== range.endContainer) core.removeNode();\r\n\r\n let next = util.getArrayItem(formatEl.children, util.isList, false);\r\n next = next || formatEl.nextElementSibling || rangeEl.parentNode.nextElementSibling;\r\n if (next && (util.isList(next) || util.getArrayItem(next.children, util.isList, false))) {\r\n e.preventDefault();\r\n\r\n let con, children;\r\n if (util.isList(next)) {\r\n const child = next.firstElementChild;\r\n children = child.childNodes;\r\n con = children[0];\r\n while (children[0]) {\r\n formatEl.insertBefore(children[0], next);\r\n }\r\n util.removeItem(child);\r\n } else {\r\n con = next.firstChild;\r\n children = next.childNodes;\r\n while (children[0]) {\r\n formatEl.appendChild(children[0]);\r\n }\r\n util.removeItem(next);\r\n }\r\n core.setRange(con, 0, con, 0);\r\n // history stack\r\n core.history.push(true);\r\n }\r\n break;\r\n }\r\n\r\n break;\r\n case 9: /** tab key */\r\n if (fileComponentName || options.tabDisable) break;\r\n e.preventDefault();\r\n if (ctrl || alt || util.isWysiwygDiv(selectionNode)) break;\r\n\r\n const isEdge = (!range.collapsed || core.isEdgePoint(range.startContainer, range.startOffset));\r\n const selectedFormats = core.getSelectedElements(null);\r\n selectionNode = core.getSelectionNode();\r\n const cells = [];\r\n let lines = [];\r\n let fc = util.isListCell(selectedFormats[0]), lc = util.isListCell(selectedFormats[selectedFormats.length - 1]);\r\n let r = {sc: range.startContainer, so: range.startOffset, ec: range.endContainer, eo: range.endOffset};\r\n for (let i = 0, len = selectedFormats.length, f; i < len; i++) {\r\n f = selectedFormats[i];\r\n if (util.isListCell(f)) {\r\n if (!f.previousElementSibling && !shift) {\r\n continue;\r\n } else {\r\n cells.push(f);\r\n }\r\n } else {\r\n lines.push(f);\r\n }\r\n }\r\n\r\n // Nested list\r\n if (cells.length > 0 && isEdge && core.plugins.list) {\r\n r = core.plugins.list.editInsideList.call(core, shift, cells);\r\n } else {\r\n // table\r\n const tableCell = util.getParentElement(selectionNode, util.isCell);\r\n if (tableCell && isEdge) {\r\n const table = util.getParentElement(tableCell, 'table');\r\n const cells = util.getListChildren(table, util.isCell);\r\n let idx = shift ? util.prevIdx(cells, tableCell) : util.nextIdx(cells, tableCell);\r\n\r\n if (idx === cells.length && !shift) idx = 0;\r\n if (idx === -1 && shift) idx = cells.length - 1;\r\n\r\n let moveCell = cells[idx];\r\n if (!moveCell) break;\r\n moveCell = moveCell.firstElementChild || moveCell;\r\n core.setRange(moveCell, 0, moveCell, 0);\r\n break;\r\n }\r\n\r\n lines = lines.concat(cells);\r\n fc = lc = null;\r\n }\r\n\r\n // Lines tab(4)\r\n if (lines.length > 0) {\r\n if (!shift) {\r\n const tabText = util.createTextNode(new _w.Array(core._variable.tabSize + 1).join('\\u00A0'));\r\n if (lines.length === 1) {\r\n if (!core.insertNode(tabText, null, true)) return false;\r\n if (!fc) {\r\n r.sc = tabText;\r\n r.so = tabText.length;\r\n }\r\n if (!lc) {\r\n r.ec = tabText;\r\n r.eo = tabText.length;\r\n }\r\n } else {\r\n const len = lines.length - 1;\r\n for (let i = 0, child; i <= len; i++) {\r\n child = lines[i].firstChild;\r\n if (!child) continue;\r\n\r\n if (util.isBreak(child)) {\r\n lines[i].insertBefore(tabText.cloneNode(false), child);\r\n } else {\r\n child.textContent = tabText.textContent + child.textContent;\r\n }\r\n }\r\n\r\n const firstChild = util.getChildElement(lines[0], 'text', false);\r\n const endChild = util.getChildElement(lines[len], 'text', true);\r\n if (!fc && firstChild) {\r\n r.sc = firstChild;\r\n r.so = 0;\r\n }\r\n if (!lc && endChild) {\r\n r.ec = endChild;\r\n r.eo = endChild.textContent.length;\r\n }\r\n }\r\n } else {\r\n const len = lines.length - 1;\r\n for (let i = 0, line; i <= len; i++) {\r\n line = lines[i].childNodes;\r\n for (let c = 0, cLen = line.length, child; c < cLen; c++) {\r\n child = line[c];\r\n if (!child) break;\r\n if (util.onlyZeroWidthSpace(child)) continue;\r\n\r\n if (/^\\s{1,4}$/.test(child.textContent)) {\r\n util.removeItem(child);\r\n } else if (/^\\s{1,4}/.test(child.textContent)) {\r\n child.textContent = child.textContent.replace(/^\\s{1,4}/, '');\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n const firstChild = util.getChildElement(lines[0], 'text', false);\r\n const endChild = util.getChildElement(lines[len], 'text', true);\r\n if (!fc && firstChild) {\r\n r.sc = firstChild;\r\n r.so = 0;\r\n }\r\n if (!lc && endChild) {\r\n r.ec = endChild;\r\n r.eo = endChild.textContent.length;\r\n }\r\n }\r\n }\r\n\r\n core.setRange(r.sc, r.so, r.ec, r.eo);\r\n // history stack\r\n core.history.push(false);\r\n\r\n break;\r\n case 13: /** enter key */\r\n // enter login start\r\n const freeFormatEl = util.getFreeFormatElement(selectionNode, null);\r\n\r\n if (core._charTypeHTML) {\r\n let enterHTML = '';\r\n if ((!shift && freeFormatEl) || shift) {\r\n enterHTML = '
      ';\r\n } else {\r\n enterHTML = '<' + formatEl.nodeName + '>
      ';\r\n }\r\n\r\n if (!core.checkCharCount(enterHTML, 'byte-html')) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n if (!shift && !fileComponentName) {\r\n const formatEndEdge = core._isEdgeFormat(range.endContainer, range.endOffset, 'end');\r\n const formatStartEdge = core._isEdgeFormat(range.startContainer, range.startOffset, 'start');\r\n\r\n // add default format line\r\n if (formatEndEdge && (/^H[1-6]$/i.test(formatEl.nodeName) || /^HR$/i.test(formatEl.nodeName))) {\r\n event._enterPrevent(e);\r\n let temp = null;\r\n const newFormat = core.appendFormatTag(formatEl, options.defaultTag);\r\n\r\n if (formatEndEdge && formatEndEdge.length > 0) {\r\n temp = formatEndEdge.pop();\r\n const innerNode = temp;\r\n while(formatEndEdge.length > 0) {\r\n temp = temp.appendChild(formatEndEdge.pop());\r\n }\r\n newFormat.appendChild(innerNode);\r\n }\r\n\r\n temp = !temp ? newFormat.firstChild : temp.appendChild(newFormat.firstChild);\r\n if (util.isBreak(temp)) {\r\n const zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n temp.parentNode.insertBefore(zeroWidth, temp);\r\n core.setRange(zeroWidth, 1, zeroWidth, 1);\r\n } else {\r\n core.setRange(temp, 0, temp, 0);\r\n }\r\n break;\r\n } else if (rangeEl && formatEl && !util.isCell(rangeEl) && !/^FIGCAPTION$/i.test(rangeEl.nodeName)) {\r\n const range = core.getRange();\r\n if(core.isEdgePoint(range.endContainer, range.endOffset) && util.isList(selectionNode.nextSibling)) {\r\n event._enterPrevent(e);\r\n const newEl = util.createElement('LI');\r\n const br = util.createElement('BR');\r\n newEl.appendChild(br);\r\n\r\n formatEl.parentNode.insertBefore(newEl, formatEl.nextElementSibling);\r\n newEl.appendChild(selectionNode.nextSibling);\r\n\r\n core.setRange(br, 1, br, 1);\r\n break;\r\n }\r\n\r\n if ((range.commonAncestorContainer.nodeType === 3 ? !range.commonAncestorContainer.nextElementSibling : true) && util.onlyZeroWidthSpace(formatEl.innerText.trim()) && !util.isListCell(formatEl.nextElementSibling)) {\r\n event._enterPrevent(e);\r\n let newEl = null;\r\n\r\n if (util.isListCell(rangeEl.parentNode)) {\r\n const parentLi = formatEl.parentNode.parentNode;\r\n rangeEl = parentLi.parentNode;\r\n const newListCell = util.createElement('LI');\r\n newListCell.innerHTML = '
      ';\r\n util.copyTagAttributes(newListCell, formatEl, options.lineAttrReset);\r\n newEl = newListCell;\r\n rangeEl.insertBefore(newEl, parentLi.nextElementSibling);\r\n } else {\r\n const newFormat = util.isCell(rangeEl.parentNode) ? 'DIV' : util.isList(rangeEl.parentNode) ? 'LI' : (util.isFormatElement(rangeEl.nextElementSibling) && !util.isRangeFormatElement(rangeEl.nextElementSibling)) ? rangeEl.nextElementSibling.nodeName : (util.isFormatElement(rangeEl.previousElementSibling) && !util.isRangeFormatElement(rangeEl.previousElementSibling)) ? rangeEl.previousElementSibling.nodeName : options.defaultTag;\r\n newEl = util.createElement(newFormat);\r\n util.copyTagAttributes(newEl, formatEl, options.lineAttrReset);\r\n const edge = core.detachRangeFormatElement(rangeEl, [formatEl], null, true, true);\r\n edge.cc.insertBefore(newEl, edge.ec);\r\n }\r\n\r\n newEl.innerHTML = '
      ';\r\n util.removeItemAllParents(formatEl, null, null);\r\n core.setRange(newEl, 1, newEl, 1);\r\n break;\r\n }\r\n }\r\n\r\n if (freeFormatEl) {\r\n event._enterPrevent(e);\r\n const selectionFormat = selectionNode === freeFormatEl;\r\n const wSelection = core.getSelection();\r\n const children = selectionNode.childNodes, offset = wSelection.focusOffset, prev = selectionNode.previousElementSibling, next = selectionNode.nextSibling;\r\n\r\n if (!util.isClosureFreeFormatElement(freeFormatEl) && !!children && ((selectionFormat && range.collapsed && children.length - 1 <= offset + 1 && util.isBreak(children[offset]) && (!children[offset + 1] || ((!children[offset + 2] || util.onlyZeroWidthSpace(children[offset + 2].textContent)) && children[offset + 1].nodeType === 3 && util.onlyZeroWidthSpace(children[offset + 1].textContent))) && offset > 0 && util.isBreak(children[offset - 1])) ||\r\n (!selectionFormat && util.onlyZeroWidthSpace(selectionNode.textContent) && util.isBreak(prev) && (util.isBreak(prev.previousSibling) || !util.onlyZeroWidthSpace(prev.previousSibling.textContent)) && (!next || (!util.isBreak(next) && util.onlyZeroWidthSpace(next.textContent)))))) {\r\n if (selectionFormat) util.removeItem(children[offset - 1]);\r\n else util.removeItem(selectionNode);\r\n const newEl = core.appendFormatTag(freeFormatEl, (util.isFormatElement(freeFormatEl.nextElementSibling) && !util.isRangeFormatElement(freeFormatEl.nextElementSibling)) ? freeFormatEl.nextElementSibling : null);\r\n util.copyFormatAttributes(newEl, freeFormatEl);\r\n core.setRange(newEl, 1, newEl, 1);\r\n break;\r\n }\r\n\r\n if (selectionFormat) {\r\n functions.insertHTML(((range.collapsed && util.isBreak(range.startContainer.childNodes[range.startOffset - 1])) ? '
      ' : '

      '), true, false);\r\n\r\n let focusNode = wSelection.focusNode;\r\n const wOffset = wSelection.focusOffset;\r\n if (freeFormatEl === focusNode) {\r\n focusNode = focusNode.childNodes[wOffset - offset > 1 ? wOffset - 1 : wOffset];\r\n }\r\n\r\n core.setRange(focusNode, 1, focusNode, 1);\r\n } else {\r\n const focusNext = wSelection.focusNode.nextSibling;\r\n const br = util.createElement('BR');\r\n core.insertNode(br, null, false);\r\n\r\n const brPrev = br.previousSibling, brNext = br.nextSibling;\r\n if (!util.isBreak(focusNext) && !util.isBreak(brPrev) && (!brNext || util.onlyZeroWidthSpace(brNext))) {\r\n br.parentNode.insertBefore(br.cloneNode(false), br);\r\n core.setRange(br, 1, br, 1);\r\n } else {\r\n core.setRange(brNext, 0, brNext, 0);\r\n }\r\n }\r\n\r\n event._onShortcutKey = true;\r\n break;\r\n }\r\n\r\n // set format attrs - edge\r\n if (range.collapsed && (formatStartEdge || formatEndEdge)) {\r\n event._enterPrevent(e);\r\n const focusBR = util.createElement('BR');\r\n const newFormat = util.createElement(formatEl.nodeName);\r\n util.copyTagAttributes(newFormat, formatEl, options.lineAttrReset);\r\n\r\n let child = focusBR;\r\n do {\r\n if (!util.isBreak(selectionNode) && selectionNode.nodeType === 1) {\r\n const f = selectionNode.cloneNode(false);\r\n f.appendChild(child);\r\n child = f;\r\n }\r\n selectionNode = selectionNode.parentNode;\r\n } while(formatEl !== selectionNode && formatEl.contains(selectionNode));\r\n\r\n newFormat.appendChild(child);\r\n formatEl.parentNode.insertBefore(newFormat, formatStartEdge && !formatEndEdge ? formatEl : formatEl.nextElementSibling);\r\n if (formatEndEdge) {\r\n core.setRange(focusBR, 1, focusBR, 1);\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (formatEl) {\r\n e.stopPropagation();\r\n\r\n let newEl;\r\n let offset = 0;\r\n if (!range.collapsed) {\r\n const isMultiLine = util.getFormatElement(range.startContainer, null) !== util.getFormatElement(range.endContainer, null);\r\n const newFormat = formatEl.cloneNode(false);\r\n newFormat.innerHTML = '
      ';\r\n const commonCon = range.commonAncestorContainer;\r\n const r = commonCon === range.startContainer && commonCon === range.endContainer && util.onlyZeroWidthSpace(commonCon) ? range : core.removeNode();\r\n newEl = util.getFormatElement(r.container, null);\r\n if (!newEl) {\r\n if (util.isWysiwygDiv(r.container)) {\r\n event._enterPrevent(e);\r\n context.element.wysiwyg.appendChild(newFormat);\r\n newEl = newFormat;\r\n util.copyTagAttributes(newEl, formatEl, options.lineAttrReset);\r\n core.setRange(newEl, offset, newEl, offset);\r\n }\r\n break;\r\n }\r\n\r\n const innerRange = util.getRangeFormatElement(r.container);\r\n newEl = newEl.contains(innerRange) ? util.getChildElement(innerRange, util.getFormatElement.bind(util)) : newEl;\r\n if (isMultiLine) {\r\n if (formatEndEdge && !formatStartEdge) {\r\n newEl.parentNode.insertBefore(newFormat, (!r.prevContainer || r.container === r.prevContainer) ? newEl.nextElementSibling : newEl);\r\n newEl = newFormat;\r\n offset = 0;\r\n } else {\r\n offset = r.offset;\r\n if (formatStartEdge) {\r\n const tempEl = newEl.parentNode.insertBefore(newFormat, newEl);\r\n if (formatEndEdge) {\r\n newEl = tempEl;\r\n offset = 0;\r\n }\r\n }\r\n }\r\n } else {\r\n if (formatEndEdge && formatStartEdge) {\r\n newEl.parentNode.insertBefore(newFormat, (r.prevContainer && r.container === r.prevContainer) ? newEl.nextElementSibling : newEl);\r\n newEl = newFormat;\r\n offset = 0;\r\n } else {\r\n newEl = util.splitElement(r.container, r.offset, util.getElementDepth(formatEl));\r\n }\r\n }\r\n } else {\r\n if (util.onlyZeroWidthSpace(formatEl)) {\r\n newEl = core.appendFormatTag(formatEl, formatEl.cloneNode(false));\r\n } else {\r\n newEl = util.splitElement(range.endContainer, range.endOffset, util.getElementDepth(formatEl));\r\n }\r\n }\r\n\r\n event._enterPrevent(e);\r\n util.copyTagAttributes(newEl, formatEl, options.lineAttrReset);\r\n core.setRange(newEl, offset, newEl, offset);\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (selectRange) break;\r\n\r\n if (rangeEl && util.getParentElement(rangeEl, 'FIGCAPTION') && util.getParentElement(rangeEl, util.isList)) {\r\n event._enterPrevent(e);\r\n formatEl = core.appendFormatTag(formatEl, null);\r\n core.setRange(formatEl, 0, formatEl, 0);\r\n }\r\n\r\n if (fileComponentName) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n core.containerOff();\r\n core.controllersOff();\r\n\r\n const compContext = context[fileComponentName];\r\n const container = compContext._container;\r\n const sibling = container.previousElementSibling || container.nextElementSibling;\r\n\r\n let newEl = null;\r\n if (util.isListCell(container.parentNode)) {\r\n newEl = util.createElement('BR');\r\n } else {\r\n newEl = util.createElement((util.isFormatElement(sibling) && !util.isRangeFormatElement(sibling)) ? sibling.nodeName : options.defaultTag);\r\n newEl.innerHTML = '
      ';\r\n }\r\n\r\n if (shift) container.parentNode.insertBefore(newEl, container);\r\n else container.parentNode.insertBefore(newEl, container.nextElementSibling);\r\n\r\n core.callPlugin(fileComponentName, function () {\r\n if (core.selectComponent(compContext._element, fileComponentName) === false) core.blur();\r\n }, null);\r\n }\r\n\r\n break;\r\n case 27:\r\n if (fileComponentName) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n core.controllersOff();\r\n return false;\r\n }\r\n break;\r\n }\r\n\r\n if (shift && keyCode === 16) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const tablePlugin = core.plugins.table;\r\n if (tablePlugin && !tablePlugin._shift && !tablePlugin._ref) {\r\n const cell = util.getParentElement(formatEl, util.isCell);\r\n if (cell) {\r\n tablePlugin.onTableCellMultiSelect.call(core, cell, true);\r\n return;\r\n }\r\n }\r\n } else if (shift && (util.isOSX_IOS ? alt : ctrl) && keyCode === 32) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const nbsp = core.insertNode(util.createTextNode('\\u00a0'));\r\n if (nbsp) {\r\n core.setRange(nbsp, nbsp.length, nbsp, nbsp.length);\r\n return;\r\n }\r\n }\r\n\r\n if (util.isIE && !ctrl && !alt && !selectRange && !event._nonTextKeyCode.test(keyCode) && util.isBreak(range.commonAncestorContainer)) {\r\n const zeroWidth = util.createTextNode(util.zeroWidthSpace);\r\n core.insertNode(zeroWidth, null, false);\r\n core.setRange(zeroWidth, 1, zeroWidth, 1);\r\n }\r\n\r\n if (event._directionKeyCode.test(keyCode)) {\r\n _w.setTimeout(core._editorRange.bind(core), 0);\r\n event._applyTagEffects();\r\n }\r\n },\r\n\r\n _onKeyDown_wysiwyg_arrowKey: function (e) {\r\n if (e.shiftKey) return; // shiftkey needs(?) other custom handler. This one may be adapted (in 'selectNode(...)'), but not for table\r\n\r\n let selectionNode = core.getSelectionNode();\r\n\r\n const selectNode = function (node, offset) {\r\n if (!offset) offset = 0;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (!node) return;\r\n\r\n let componentInfo = core.getFileComponent(node);\r\n if (componentInfo) {\r\n core.selectComponent(componentInfo.target, componentInfo.pluginName); // more responsive for key holdness\r\n } else {\r\n core.setRange(node, offset, node, offset);\r\n core.controllersOff();\r\n }\r\n };\r\n\r\n const table = util.getParentElement(selectionNode, 'table');\r\n if (table) {\r\n const currentRow = util.getParentElement(selectionNode, 'tr');\r\n const currentCell = util.getParentElement(selectionNode, 'td');\r\n\r\n let currentCellFirstNode = currentCell;\r\n let currentCellLastNode = currentCell;\r\n if (currentCell) {\r\n while (currentCellFirstNode && currentCellFirstNode.firstChild) currentCellFirstNode = currentCellFirstNode.firstChild;\r\n while (currentCellLastNode && currentCellLastNode.lastChild) currentCellLastNode = currentCellLastNode.lastChild;\r\n }\r\n\r\n let selectionNodeDeepestFirstChild = selectionNode;\r\n while (selectionNodeDeepestFirstChild && selectionNodeDeepestFirstChild.firstChild) selectionNodeDeepestFirstChild = selectionNodeDeepestFirstChild.firstChild;\r\n const isCellFirstNode = (selectionNodeDeepestFirstChild === currentCellFirstNode);\r\n const isCellLastNode = (selectionNodeDeepestFirstChild === currentCellLastNode);\r\n\r\n let siblingToSet = null;\r\n let offset = 0;\r\n if (e.keyCode === 38 && isCellFirstNode) { // UP\r\n const previousRow = currentRow && currentRow.previousElementSibling;\r\n if (previousRow) siblingToSet = previousRow.children[currentCell.cellIndex];\r\n else siblingToSet = util.getPreviousDeepestNode(table, core.context.element.wysiwyg);\r\n\r\n while (siblingToSet && siblingToSet.lastChild) siblingToSet = siblingToSet.lastChild;\r\n if (siblingToSet) offset = siblingToSet.textContent.length;\r\n } else if (e.keyCode === 40 && isCellLastNode) { // DOWN\r\n const nextRow = currentRow && currentRow.nextElementSibling;\r\n if (nextRow) siblingToSet = nextRow.children[currentCell.cellIndex];\r\n else siblingToSet = util.getNextDeepestNode(table, core.context.element.wysiwyg);\r\n\r\n while (siblingToSet && siblingToSet.firstChild) siblingToSet = siblingToSet.firstChild;\r\n }\r\n\r\n if (siblingToSet) {\r\n selectNode(siblingToSet, offset);\r\n return false;\r\n }\r\n }\r\n\r\n const componentInfo = core.getFileComponent(selectionNode);\r\n if (componentInfo) {\r\n const selectPrevious = /37|38/.test(e.keyCode);\r\n const selectNext = /39|40/.test(e.keyCode);\r\n\r\n if (selectPrevious) {\r\n const previousDeepestNode = util.getPreviousDeepestNode(componentInfo.target, core.context.element.wysiwyg);\r\n selectNode(previousDeepestNode, previousDeepestNode && previousDeepestNode.textContent.length);\r\n } else if (selectNext) {\r\n const nextDeepestNode = util.getNextDeepestNode(componentInfo.target, core.context.element.wysiwyg);\r\n selectNode(nextDeepestNode);\r\n }\r\n }\r\n\r\n },\r\n\r\n onKeyUp_wysiwyg: function (e) {\r\n if (event._onShortcutKey) return;\r\n\r\n core._editorRange();\r\n const keyCode = e.keyCode;\r\n const ctrl = e.ctrlKey || e.metaKey || keyCode === 91 || keyCode === 92 || keyCode === 224;\r\n const alt = e.altKey;\r\n\r\n if (core.isReadOnly) {\r\n if (!ctrl && event._cursorMoveKeyCode.test(keyCode)) event._applyTagEffects();\r\n return;\r\n }\r\n\r\n const range = core.getRange();\r\n let selectionNode = core.getSelectionNode();\r\n\r\n if (core._isBalloon && ((core._isBalloonAlways && keyCode !== 27) || !range.collapsed)) {\r\n if (core._isBalloonAlways) {\r\n if (keyCode !== 27) event._showToolbarBalloonDelay();\r\n } else {\r\n event._showToolbarBalloon();\r\n return;\r\n }\r\n }\r\n\r\n let selectionNodeDeepestFirstChild = selectionNode;\r\n while (selectionNodeDeepestFirstChild && selectionNodeDeepestFirstChild.firstChild) selectionNodeDeepestFirstChild = selectionNodeDeepestFirstChild.firstChild;\r\n\r\n const selectedComponentInfo = core.getFileComponent(selectionNodeDeepestFirstChild);\r\n if (!(e.keyCode === 16 || e.shiftKey) && selectedComponentInfo) core.selectComponent(selectedComponentInfo.target, selectedComponentInfo.pluginName);\r\n else if (core.currentFileComponentInfo) core.controllersOff();\r\n\r\n /** when format tag deleted */\r\n if (keyCode === 8 && util.isWysiwygDiv(selectionNode) && selectionNode.textContent === '' && selectionNode.children.length === 0) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n selectionNode.innerHTML = '';\r\n\r\n const oFormatTag = util.createElement(util.isFormatElement(core._variable.currentNodes[0]) ? core._variable.currentNodes[0] : options.defaultTag);\r\n oFormatTag.innerHTML = '
      ';\r\n\r\n selectionNode.appendChild(oFormatTag);\r\n core.setRange(oFormatTag, 0, oFormatTag, 0);\r\n event._applyTagEffects();\r\n\r\n core.history.push(false);\r\n return;\r\n }\r\n\r\n const formatEl = util.getFormatElement(selectionNode, null);\r\n const rangeEl = util.getRangeFormatElement(selectionNode, null);\r\n const attrs = core._formatAttrsTemp;\r\n\r\n if (attrs) {\r\n for (let i = 0, len = attrs.length; i < len; i++) {\r\n if (keyCode === 13 && /^id$/i.test(attrs[i].name)) {\r\n formatEl.removeAttribute('id');\r\n continue;\r\n }\r\n formatEl.setAttribute(attrs[i].name, attrs[i].value);\r\n }\r\n core._formatAttrsTemp = null;\r\n }\r\n\r\n if (!formatEl && range.collapsed && !util.isComponent(selectionNode) && !util.isList(selectionNode) && core._setDefaultFormat(util.isRangeFormatElement(rangeEl) ? 'DIV' : options.defaultTag) !== null) {\r\n selectionNode = core.getSelectionNode();\r\n }\r\n\r\n const textKey = !ctrl && !alt && !event._nonTextKeyCode.test(keyCode);\r\n if (textKey && selectionNode.nodeType === 3 && util.zeroWidthRegExp.test(selectionNode.textContent) && !(e.isComposing !== undefined ? e.isComposing : event._IEisComposing)) {\r\n let so = range.startOffset, eo = range.endOffset;\r\n const frontZeroWidthCnt = (selectionNode.textContent.substring(0, eo).match(event._frontZeroWidthReg) || '').length;\r\n so = range.startOffset - frontZeroWidthCnt;\r\n eo = range.endOffset - frontZeroWidthCnt;\r\n selectionNode.textContent = selectionNode.textContent.replace(util.zeroWidthRegExp, '');\r\n core.setRange(selectionNode, so < 0 ? 0 : so, selectionNode, eo < 0 ? 0 : eo);\r\n }\r\n\r\n if (event._deleteKeyCode.test(keyCode) && formatEl && util.onlyZeroWidthSpace(formatEl.textContent) && !formatEl.previousElementSibling) {\r\n formatEl.innerHTML = '
      ';\r\n core.setRange(formatEl, 0, formatEl, 0);\r\n }\r\n\r\n core._charCount('');\r\n\r\n // user event\r\n if (typeof functions.onKeyUp === 'function' && functions.onKeyUp(e, core) === false) return;\r\n\r\n // history stack\r\n if (!ctrl && !alt && !event._historyIgnoreKeyCode.test(keyCode)) {\r\n core.history.push(true);\r\n }\r\n },\r\n\r\n onScroll_wysiwyg: function (e) {\r\n core.controllersOff();\r\n if (core._isBalloon) event._hideToolbar();\r\n\r\n // user event\r\n if (typeof functions.onScroll === 'function') functions.onScroll(e, core);\r\n },\r\n\r\n onFocus_wysiwyg: function (e) {\r\n if (core._antiBlur) return;\r\n core.hasFocus = true;\r\n _w.setTimeout(event._applyTagEffects);\r\n\r\n if (core._isInline) event._showToolbarInline();\r\n\r\n // user event\r\n if (typeof functions.onFocus === 'function') functions.onFocus(e, core);\r\n },\r\n\r\n onBlur_wysiwyg: function (e) {\r\n if (core._antiBlur || core._variable.isCodeView) return;\r\n core.hasFocus = false;\r\n core.effectNode = null;\r\n core.controllersOff();\r\n if (core._isInline || core._isBalloon) event._hideToolbar();\r\n\r\n core._setKeyEffect([]);\r\n\r\n core._variable.currentNodes = [];\r\n core._variable.currentNodesMap = [];\r\n if (options.showPathLabel) context.element.navigation.textContent = '';\r\n // user event\r\n if (typeof functions.onBlur === 'function') functions.onBlur(e, core,this);\r\n },\r\n\r\n onMouseDown_resizingBar: function (e) {\r\n e.stopPropagation();\r\n\r\n core.submenuOff();\r\n core.controllersOff();\r\n\r\n core._variable.resizeClientY = e.clientY;\r\n context.element.resizeBackground.style.display = 'block';\r\n\r\n function closureFunc() {\r\n context.element.resizeBackground.style.display = 'none';\r\n _d.removeEventListener('mousemove', event._resize_editor);\r\n _d.removeEventListener('mouseup', closureFunc);\r\n }\r\n\r\n _d.addEventListener('mousemove', event._resize_editor);\r\n _d.addEventListener('mouseup', closureFunc);\r\n },\r\n\r\n _resize_editor: function (e) {\r\n const resizeInterval = context.element.editorArea.offsetHeight + (e.clientY - core._variable.resizeClientY);\r\n const h = (resizeInterval < core._variable.minResizingSize ? core._variable.minResizingSize : resizeInterval);\r\n context.element.wysiwygFrame.style.height = context.element.code.style.height = h + 'px';\r\n core._variable.resizeClientY = e.clientY;\r\n if (!util.isResizeObserverSupported) core.__callResizeFunction(h, null);\r\n },\r\n\r\n onResize_window: function () {\r\n if (!util.isResizeObserverSupported) core.resetResponsiveToolbar();\r\n\r\n const toolbar = context.element.toolbar;\r\n const isToolbarHidden = (toolbar.style.display === 'none' || (core._isInline && !core._inlineToolbarAttr.isShow));\r\n if (toolbar.offsetWidth === 0 && !isToolbarHidden) return;\r\n\r\n if (context.fileBrowser && context.fileBrowser.area.style.display === 'block') {\r\n context.fileBrowser.body.style.maxHeight = (_w.innerHeight - context.fileBrowser.header.offsetHeight - 50) + 'px';\r\n }\r\n\r\n if (core.submenuActiveButton && core.submenu) {\r\n core._setMenuPosition(core.submenuActiveButton, core.submenu);\r\n }\r\n\r\n if (core._variable.isFullScreen) {\r\n core._variable.innerHeight_fullScreen += (_w.innerHeight - toolbar.offsetHeight) - core._variable.innerHeight_fullScreen;\r\n context.element.editorArea.style.height = core._variable.innerHeight_fullScreen + 'px';\r\n return;\r\n }\r\n\r\n if (core._variable.isCodeView && core._isInline) {\r\n event._showToolbarInline();\r\n return;\r\n }\r\n\r\n core._iframeAutoHeight();\r\n\r\n if (core._sticky) {\r\n toolbar.style.width = (context.element.topArea.offsetWidth - 2) + 'px';\r\n event.onScroll_window();\r\n }\r\n },\r\n\r\n onScroll_window: function () {\r\n if (core._variable.isFullScreen || context.element.toolbar.offsetWidth === 0 || options.stickyToolbar < 0) return;\r\n\r\n const element = context.element;\r\n const editorHeight = element.editorArea.offsetHeight;\r\n const y = (this.scrollY || _d.documentElement.scrollTop) + options.stickyToolbar;\r\n const editorTop = event._getEditorOffsets(options.toolbarContainer).top - (core._isInline ? element.toolbar.offsetHeight : 0);\r\n const inlineOffset = core._isInline && (y - editorTop) > 0 ? y - editorTop - context.element.toolbar.offsetHeight : 0;\r\n\r\n if (y < editorTop) {\r\n event._offStickyToolbar();\r\n }\r\n else if (y + core._variable.minResizingSize >= editorHeight + editorTop) {\r\n if (!core._sticky) event._onStickyToolbar(inlineOffset);\r\n element.toolbar.style.top = (inlineOffset + editorHeight + editorTop + options.stickyToolbar - y - core._variable.minResizingSize) + 'px';\r\n }\r\n else if (y >= editorTop) {\r\n event._onStickyToolbar(inlineOffset);\r\n }\r\n },\r\n\r\n _getEditorOffsets: function (container) {\r\n let offsetEl = container || context.element.topArea;\r\n let t = 0, l = 0, s = 0;\r\n\r\n while (offsetEl) {\r\n t += offsetEl.offsetTop;\r\n l += offsetEl.offsetLeft;\r\n s += offsetEl.scrollTop;\r\n offsetEl = offsetEl.offsetParent;\r\n }\r\n\r\n return {\r\n top: t,\r\n left: l,\r\n scroll: s\r\n };\r\n },\r\n\r\n _getPageBottomSpace: function () {\r\n return _d.documentElement.scrollHeight - (event._getEditorOffsets(null).top + context.element.topArea.offsetHeight);\r\n },\r\n\r\n _onStickyToolbar: function (inlineOffset) {\r\n const element = context.element;\r\n\r\n if (!core._isInline && !options.toolbarContainer) {\r\n element._stickyDummy.style.height = element.toolbar.offsetHeight + 'px';\r\n element._stickyDummy.style.display = 'block';\r\n }\r\n\r\n element.toolbar.style.top = (options.stickyToolbar + inlineOffset) + 'px';\r\n element.toolbar.style.width = core._isInline ? core._inlineToolbarAttr.width : element.toolbar.offsetWidth + 'px';\r\n util.addClass(element.toolbar, 'se-toolbar-sticky');\r\n core._sticky = true;\r\n },\r\n\r\n _offStickyToolbar: function () {\r\n const element = context.element;\r\n\r\n element._stickyDummy.style.display = 'none';\r\n element.toolbar.style.top = core._isInline ? core._inlineToolbarAttr.top : '';\r\n element.toolbar.style.width = core._isInline ? core._inlineToolbarAttr.width : '';\r\n element.editorArea.style.marginTop = '';\r\n\r\n util.removeClass(element.toolbar, 'se-toolbar-sticky');\r\n core._sticky = false;\r\n },\r\n\r\n _codeViewAutoHeight: function () {\r\n if (core._variable.isFullScreen) return;\r\n context.element.code.style.height = context.element.code.scrollHeight + 'px';\r\n },\r\n\r\n // FireFox - table delete, Chrome - image, video, audio\r\n _hardDelete: function () {\r\n const range = core.getRange();\r\n const sc = range.startContainer;\r\n const ec = range.endContainer;\r\n\r\n // table\r\n const sCell = util.getRangeFormatElement(sc);\r\n const eCell = util.getRangeFormatElement(ec);\r\n const sIsCell = util.isCell(sCell);\r\n const eIsCell = util.isCell(eCell);\r\n const ancestor = range.commonAncestorContainer;\r\n if (((sIsCell && !sCell.previousElementSibling && !sCell.parentElement.previousElementSibling) || (eIsCell && !eCell.nextElementSibling && !eCell.parentElement.nextElementSibling)) && sCell !== eCell) {\r\n if (!sIsCell) {\r\n util.removeItem(util.getParentElement(eCell, function(current) {return ancestor === current.parentNode;}));\r\n } else if (!eIsCell) {\r\n util.removeItem(util.getParentElement(sCell, function(current) {return ancestor === current.parentNode;}));\r\n } else {\r\n util.removeItem(util.getParentElement(sCell, function(current) {return ancestor === current.parentNode;}));\r\n core.nativeFocus();\r\n return true;\r\n }\r\n }\r\n\r\n // component\r\n const sComp = sc.nodeType === 1 ? util.getParentElement(sc, '.se-component') : null;\r\n const eComp = ec.nodeType === 1 ? util.getParentElement(ec, '.se-component') : null;\r\n if (sComp) util.removeItem(sComp);\r\n if (eComp) util.removeItem(eComp);\r\n\r\n return false;\r\n },\r\n\r\n onPaste_wysiwyg: function (e) {\r\n const clipboardData = util.isIE ? _w.clipboardData : e.clipboardData;\r\n if (!clipboardData) return true;\r\n return event._dataTransferAction('paste', e, clipboardData);\r\n },\r\n\r\n _setClipboardComponent: function (e, info, clipboardData) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n clipboardData.setData('text/html', info.component.outerHTML);\r\n },\r\n\r\n onCopy_wysiwyg: function (e) {\r\n const clipboardData = util.isIE ? _w.clipboardData : e.clipboardData;\r\n\r\n // user event\r\n if (typeof functions.onCopy === 'function' && functions.onCopy(e, clipboardData, core) === false) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n const info = core.currentFileComponentInfo;\r\n if (info && !util.isIE) {\r\n event._setClipboardComponent(e, info, clipboardData);\r\n util.addClass(info.component, 'se-component-copy');\r\n // copy effect\r\n _w.setTimeout(function () {\r\n util.removeClass(info.component, 'se-component-copy');\r\n }, 150);\r\n }\r\n },\r\n\r\n onSave_wysiwyg: function (content) {\r\n // user event\r\n if (typeof functions.onSave === 'function') {\r\n functions.onSave(content, core);\r\n return;\r\n }\r\n },\r\n\r\n onCut_wysiwyg: function (e) {\r\n const clipboardData = util.isIE ? _w.clipboardData : e.clipboardData;\r\n\r\n // user event\r\n if (typeof functions.onCut === 'function' && functions.onCut(e, clipboardData, core) === false) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n const info = core.currentFileComponentInfo;\r\n if (info && !util.isIE) {\r\n event._setClipboardComponent(e, info, clipboardData);\r\n util.removeItem(info.component);\r\n core.controllersOff();\r\n }\r\n\r\n _w.setTimeout(function () {\r\n // history stack\r\n core.history.push(false);\r\n });\r\n },\r\n\r\n onDrop_wysiwyg: function (e) {\r\n if (core.isReadOnly || util.isIE) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n const dataTransfer = e.dataTransfer;\r\n if (!dataTransfer) return true;\r\n\r\n event._setDropLocationSelection(e);\r\n core.removeNode();\r\n\r\n if (!document.body.contains(core.currentControllerTarget)) core.controllersOff();\r\n\r\n return event._dataTransferAction('drop', e, dataTransfer);\r\n },\r\n\r\n _setDropLocationSelection: function (e) {\r\n const range = { startContainer: null, startOffset: null, endContainer: null, endOffset: null };\r\n\r\n let r = null;\r\n if (e.rangeParent) {\r\n range.startContainer = e.rangeParent;\r\n range.startOffset = e.rangeOffset;\r\n range.endContainer = e.rangeParent;\r\n range.endOffset = e.rangeOffset;\r\n } else if (core._wd.caretRangeFromPoint) {\r\n r = core._wd.caretRangeFromPoint(e.clientX, e.clientY);\r\n } else {\r\n r = core.getRange();\r\n }\r\n if (r) {\r\n range.startContainer = r.startContainer;\r\n range.startOffset = r.startOffset;\r\n range.endContainer = r.endContainer;\r\n range.endOffset = r.endOffset;\r\n }\r\n\r\n if (range.startContainer === range.endContainer) {\r\n const component = util.getParentElement(range.startContainer, util.isComponent);\r\n if (component) {\r\n range.startContainer = component;\r\n range.startOffset = 0;\r\n range.endContainer = component;\r\n range.endOffset = 0;\r\n }\r\n }\r\n core.setRange(range.startContainer, range.startOffset, range.endContainer, range.endOffset);\r\n },\r\n\r\n _dataTransferAction: function (type, e, data) {\r\n let plainText, cleanData;\r\n if (util.isIE) {\r\n plainText = data.getData('Text');\r\n\r\n const range = core.getRange();\r\n const tempDiv = util.createElement('DIV');\r\n const tempRange = {\r\n sc: range.startContainer,\r\n so: range.startOffset,\r\n ec: range.endContainer,\r\n eo: range.endOffset\r\n };\r\n\r\n tempDiv.setAttribute('contenteditable', true);\r\n tempDiv.style.cssText = 'position:absolute; top:0; left:0; width:1px; height:1px; overflow:hidden;';\r\n\r\n context.element.relative.appendChild(tempDiv);\r\n tempDiv.focus();\r\n\r\n _w.setTimeout(function () {\r\n cleanData = tempDiv.innerHTML;\r\n util.removeItem(tempDiv);\r\n core.setRange(tempRange.sc, tempRange.so, tempRange.ec, tempRange.eo);\r\n event._setClipboardData(type, e, plainText, cleanData, data);\r\n });\r\n\r\n return true;\r\n } else {\r\n plainText = data.getData('text/plain');\r\n cleanData = data.getData('text/html');\r\n if (event._setClipboardData(type, e, plainText, cleanData, data) === false) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n },\r\n\r\n _setClipboardData: function (type, e, plainText, cleanData, data) {\r\n // MS word, OneNode, Excel\r\n const MSData = /class=[\"']*Mso(Normal|List)/i.test(cleanData) || /content=[\"']*Word.Document/i.test(cleanData) || /content=[\"']*OneNote.File/i.test(cleanData) || /content=[\"']*Excel.Sheet/i.test(cleanData);\r\n const onlyText = !cleanData;\r\n\r\n if (!onlyText) {\r\n cleanData = cleanData.replace(/^\\r?\\n?\\r?\\n?\\x3C!--StartFragment--\\>|\\x3C!--EndFragment-->\\r?\\n?<\\/body\\>\\r?\\n?<\\/html>$/g, '');\r\n if (MSData) {\r\n cleanData = cleanData.replace(/\\n/g, ' ');\r\n plainText = plainText.replace(/\\n/g, ' ');\r\n }\r\n cleanData = core.cleanHTML(cleanData, core.pasteTagsWhitelistRegExp, core.pasteTagsBlacklistRegExp);\r\n } else {\r\n cleanData = util._HTMLConvertor(plainText).replace(/\\n/g, '
      ');\r\n }\r\n\r\n const maxCharCount = core._charCount(core._charTypeHTML ? cleanData : plainText);\r\n // user event - paste\r\n if (type === 'paste' && typeof functions.onPaste === 'function') {\r\n const value = functions.onPaste(e, cleanData, maxCharCount, core);\r\n if (value === false) {\r\n return false;\r\n } else if (typeof value === 'string') {\r\n if (!value) return false;\r\n cleanData = value;\r\n }\r\n }\r\n // user event - drop\r\n if (type === 'drop' && typeof functions.onDrop === 'function') {\r\n const value = functions.onDrop(e, cleanData, maxCharCount, core);\r\n if (value === false) {\r\n return false;\r\n } else if (typeof value === 'string') {\r\n if (!value) return false;\r\n cleanData = value;\r\n }\r\n }\r\n\r\n // files\r\n const files = data.files;\r\n if (files.length > 0 && !MSData) {\r\n if (/^image/.test(files[0].type) && core.plugins.image) {\r\n functions.insertImage(files);\r\n }\r\n return false;\r\n }\r\n\r\n if (!maxCharCount) {\r\n return false;\r\n }\r\n\r\n if (cleanData) {\r\n functions.insertHTML(cleanData, true, false);\r\n return false;\r\n }\r\n },\r\n\r\n onMouseMove_wysiwyg: function (e) {\r\n if (core.isDisabled || core.isReadOnly) return false;\r\n const component = util.getParentElement(e.target, util.isComponent);\r\n const lineBreakerStyle = core._lineBreaker.style;\r\n\r\n if (component && !core.currentControllerName) {\r\n const ctxEl = context.element;\r\n let scrollTop = 0;\r\n let el = ctxEl.wysiwyg;\r\n do {\r\n scrollTop += el.scrollTop;\r\n el = el.parentElement;\r\n } while (el && !/^(BODY|HTML)$/i.test(el.nodeName));\r\n\r\n const wScroll = ctxEl.wysiwyg.scrollTop;\r\n const offsets = event._getEditorOffsets(null);\r\n const componentTop = util.getOffset(component, ctxEl.wysiwygFrame).top + wScroll;\r\n const y = e.pageY + scrollTop + (options.iframe && !options.toolbarContainer ? ctxEl.toolbar.offsetHeight : 0);\r\n const c = componentTop + (options.iframe ? scrollTop : offsets.top);\r\n\r\n const isList = util.isListCell(component.parentNode);\r\n let dir = '', top = '';\r\n if ((isList ? !component.previousSibling : !util.isFormatElement(component.previousElementSibling)) && y < (c + 20)) {\r\n top = componentTop;\r\n dir = 't';\r\n } else if ((isList ? !component.nextSibling : !util.isFormatElement(component.nextElementSibling)) && y > (c + component.offsetHeight - 20)) {\r\n top = componentTop + component.offsetHeight;\r\n dir = 'b';\r\n } else {\r\n lineBreakerStyle.display = 'none';\r\n return;\r\n }\r\n\r\n core._variable._lineBreakComp = component;\r\n core._variable._lineBreakDir = dir;\r\n lineBreakerStyle.top = (top - wScroll) + 'px';\r\n core._lineBreakerButton.style.left = (util.getOffset(component).left + (component.offsetWidth / 2) - 15) + 'px';\r\n lineBreakerStyle.display = 'block';\r\n } // off line breaker\r\n else if (lineBreakerStyle.display !== 'none') {\r\n lineBreakerStyle.display = 'none';\r\n }\r\n },\r\n\r\n _enterPrevent: function (e) {\r\n e.preventDefault();\r\n if (!util.isMobile) return;\r\n\r\n core.__focusTemp.focus();\r\n },\r\n\r\n _onMouseDown_lineBreak: function (e) {\r\n e.preventDefault();\r\n },\r\n\r\n _onLineBreak: function (e) {\r\n e.preventDefault();\r\n\r\n const component = core._variable._lineBreakComp;\r\n const dir = !this ? core._variable._lineBreakDir : this;\r\n const isList = util.isListCell(component.parentNode);\r\n\r\n const format = util.createElement(isList ? 'BR' : util.isCell(component.parentNode) ? 'DIV' : options.defaultTag);\r\n if (!isList) format.innerHTML = '
      ';\r\n\r\n if (core._charTypeHTML && !core.checkCharCount(format.outerHTML, 'byte-html')) return;\r\n\r\n component.parentNode.insertBefore(format, dir === 't' ? component : component.nextSibling);\r\n core._lineBreaker.style.display = 'none';\r\n core._variable._lineBreakComp = null;\r\n\r\n const focusEl = isList ? format : format.firstChild;\r\n core.setRange(focusEl, 1, focusEl, 1);\r\n // history stack\r\n core.history.push(false);\r\n },\r\n\r\n _resizeObserver: null,\r\n _toolbarObserver: null,\r\n _addEvent: function () {\r\n const eventWysiwyg = options.iframe ? core._ww : context.element.wysiwyg;\r\n if (util.isResizeObserverSupported) {\r\n this._resizeObserver = new _w.ResizeObserver(function(entries) {\r\n core.__callResizeFunction(-1, entries[0]);\r\n });\r\n }\r\n\r\n /** toolbar event */\r\n context.element.toolbar.addEventListener('mousedown', event._buttonsEventHandler, false);\r\n context.element._menuTray.addEventListener('mousedown', event._buttonsEventHandler, false);\r\n context.element.toolbar.addEventListener('click', event.onClick_toolbar, false);\r\n /** editor area */\r\n eventWysiwyg.addEventListener('mousedown', event.onMouseDown_wysiwyg, false);\r\n eventWysiwyg.addEventListener('click', event.onClick_wysiwyg, false);\r\n eventWysiwyg.addEventListener(util.isIE ? 'textinput' : 'input', event.onInput_wysiwyg, false);\r\n eventWysiwyg.addEventListener('keydown', event.onKeyDown_wysiwyg, false);\r\n eventWysiwyg.addEventListener('keyup', event.onKeyUp_wysiwyg, false);\r\n eventWysiwyg.addEventListener('paste', event.onPaste_wysiwyg, false);\r\n eventWysiwyg.addEventListener('copy', event.onCopy_wysiwyg, false);\r\n eventWysiwyg.addEventListener('cut', event.onCut_wysiwyg, false);\r\n eventWysiwyg.addEventListener('drop', event.onDrop_wysiwyg, false);\r\n eventWysiwyg.addEventListener('scroll', event.onScroll_wysiwyg, false);\r\n eventWysiwyg.addEventListener('focus', event.onFocus_wysiwyg, false);\r\n eventWysiwyg.addEventListener('blur', event.onBlur_wysiwyg, false);\r\n\r\n /** line breaker */\r\n event._lineBreakerBind = { a: event._onLineBreak.bind(''), t: event._onLineBreak.bind('t'), b: event._onLineBreak.bind('b') };\r\n eventWysiwyg.addEventListener('mousemove', event.onMouseMove_wysiwyg, false);\r\n core._lineBreakerButton.addEventListener('mousedown', event._onMouseDown_lineBreak, false);\r\n core._lineBreakerButton.addEventListener('click', event._lineBreakerBind.a, false);\r\n context.element.lineBreaker_t.addEventListener('mousedown', event._lineBreakerBind.t, false);\r\n context.element.lineBreaker_b.addEventListener('mousedown', event._lineBreakerBind.b, false);\r\n\r\n /** Events are registered mobile. */\r\n eventWysiwyg.addEventListener('touchstart', event.onMouseDown_wysiwyg, {passive: true, useCapture: false});\r\n eventWysiwyg.addEventListener('touchend', event.onClick_wysiwyg, {passive: true, useCapture: false});\r\n\r\n /** code view area auto line */\r\n if (options.height === 'auto' && !options.codeMirrorEditor) {\r\n context.element.code.addEventListener('keydown', event._codeViewAutoHeight, false);\r\n context.element.code.addEventListener('keyup', event._codeViewAutoHeight, false);\r\n context.element.code.addEventListener('paste', event._codeViewAutoHeight, false);\r\n }\r\n\r\n /** resizingBar */\r\n if (context.element.resizingBar) {\r\n if (/\\d+/.test(options.height) && options.resizeEnable) {\r\n context.element.resizingBar.addEventListener('mousedown', event.onMouseDown_resizingBar, false);\r\n } else {\r\n util.addClass(context.element.resizingBar, 'se-resizing-none');\r\n }\r\n }\r\n\r\n /** set response toolbar */\r\n event._setResponsiveToolbar();\r\n\r\n /** responsive toolbar observer */\r\n if (util.isResizeObserverSupported) this._toolbarObserver = new _w.ResizeObserver(core.resetResponsiveToolbar);\r\n\r\n /** window event */\r\n _w.addEventListener('resize', event.onResize_window, false);\r\n if (options.stickyToolbar > -1) {\r\n _w.addEventListener('scroll', event.onScroll_window, false);\r\n }\r\n },\r\n\r\n _removeEvent: function () {\r\n const eventWysiwyg = options.iframe ? core._ww : context.element.wysiwyg;\r\n\r\n context.element.toolbar.removeEventListener('mousedown', event._buttonsEventHandler);\r\n context.element._menuTray.removeEventListener('mousedown', event._buttonsEventHandler);\r\n context.element.toolbar.removeEventListener('click', event.onClick_toolbar);\r\n\r\n eventWysiwyg.removeEventListener('mousedown', event.onMouseDown_wysiwyg);\r\n eventWysiwyg.removeEventListener('click', event.onClick_wysiwyg);\r\n eventWysiwyg.removeEventListener(util.isIE ? 'textinput' : 'input', event.onInput_wysiwyg);\r\n eventWysiwyg.removeEventListener('keydown', event.onKeyDown_wysiwyg);\r\n eventWysiwyg.removeEventListener('keyup', event.onKeyUp_wysiwyg);\r\n eventWysiwyg.removeEventListener('paste', event.onPaste_wysiwyg);\r\n eventWysiwyg.removeEventListener('copy', event.onCopy_wysiwyg);\r\n eventWysiwyg.removeEventListener('cut', event.onCut_wysiwyg);\r\n eventWysiwyg.removeEventListener('drop', event.onDrop_wysiwyg);\r\n eventWysiwyg.removeEventListener('scroll', event.onScroll_wysiwyg);\r\n\r\n eventWysiwyg.removeEventListener('mousemove', event.onMouseMove_wysiwyg);\r\n core._lineBreakerButton.removeEventListener('mousedown', event._onMouseDown_lineBreak);\r\n core._lineBreakerButton.removeEventListener('click', event._lineBreakerBind.a);\r\n context.element.lineBreaker_t.removeEventListener('mousedown', event._lineBreakerBind.t);\r\n context.element.lineBreaker_b.removeEventListener('mousedown', event._lineBreakerBind.b);\r\n event._lineBreakerBind = null;\r\n\r\n eventWysiwyg.removeEventListener('touchstart', event.onMouseDown_wysiwyg, {passive: true, useCapture: false});\r\n eventWysiwyg.removeEventListener('touchend', event.onClick_wysiwyg, {passive: true, useCapture: false});\r\n eventWysiwyg.removeEventListener('focus', event.onFocus_wysiwyg);\r\n eventWysiwyg.removeEventListener('blur', event.onBlur_wysiwyg);\r\n\r\n context.element.code.removeEventListener('keydown', event._codeViewAutoHeight);\r\n context.element.code.removeEventListener('keyup', event._codeViewAutoHeight);\r\n context.element.code.removeEventListener('paste', event._codeViewAutoHeight);\r\n\r\n if (context.element.resizingBar) {\r\n context.element.resizingBar.removeEventListener('mousedown', event.onMouseDown_resizingBar);\r\n }\r\n\r\n if (event._resizeObserver) {\r\n event._resizeObserver.unobserve(context.element.wysiwygFrame);\r\n event._resizeObserver = null;\r\n }\r\n\r\n if (event._toolbarObserver) {\r\n event._toolbarObserver.unobserve(context.element._toolbarShadow);\r\n event._toolbarObserver = null;\r\n }\r\n\r\n _w.removeEventListener('resize', event.onResize_window);\r\n _w.removeEventListener('scroll', event.onScroll_window);\r\n },\r\n\r\n _setResponsiveToolbar: function () {\r\n if (_responsiveButtons.length === 0) {\r\n _responsiveButtons = null;\r\n return;\r\n }\r\n\r\n event._responsiveCurrentSize = 'default';\r\n const sizeArray = event._responsiveButtonSize = [];\r\n const buttonsObj = event._responsiveButtons = {default: _responsiveButtons[0]};\r\n for (let i = 1, len = _responsiveButtons.length, size, buttonGroup; i < len; i++) {\r\n buttonGroup = _responsiveButtons[i];\r\n size = buttonGroup[0] * 1;\r\n sizeArray.push(size);\r\n buttonsObj[size] = buttonGroup[1];\r\n }\r\n\r\n sizeArray.sort(function (a, b) { return a - b; }).unshift('default');\r\n }\r\n };\r\n\r\n /** functions */\r\n const functions = {\r\n /**\r\n * @description Core, Util object\r\n */\r\n core: core,\r\n util: util,\r\n\r\n /**\r\n * @description Event functions\r\n * @param {Object} e Event Object\r\n * @param {Object} core Core object\r\n */\r\n onload: null,\r\n onScroll: null,\r\n onMouseDown: null,\r\n onClick: null,\r\n onInput: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onCopy: null,\r\n onCut: null,\r\n onFocus: null,\r\n\r\n /**\r\n * @description Event functions\r\n * @param {Object} e Event Object\r\n * @param {Object} core Core object\r\n * @param {String} contents Current contents\r\n */\r\n onBlur: null,\r\n\r\n /**\r\n * @description Event functions\r\n * @param {String} contents Current contents\r\n * @param {Object} core Core object\r\n */\r\n onChange: null,\r\n\r\n /**\r\n * @description Event functions\r\n * @param {String} contents Current contents\r\n * @param {Object} core Core object\r\n */\r\n onSave: null,\r\n\r\n /**\r\n * @description Event functions (drop, paste)\r\n * When false is returned, the default behavior is stopped.\r\n * If the string is returned, the cleanData value is modified to the return value.\r\n * @param {Object} e Event object.\r\n * @param {String} cleanData HTML string modified for editor format.\r\n * @param {Boolean} maxChartCount option (true if max character is exceeded)\r\n * @param {Object} core Core object\r\n * @returns {Boolean|String}\r\n */\r\n onDrop: null,\r\n onPaste: null,\r\n\r\n /**\r\n * @description Called just before the inline toolbar is positioned and displayed on the screen.\r\n * @param {Element} toolbar Toolbar Element\r\n * @param {Object} context The editor's context object (editor.getContext())\r\n * @param {Object} core Core object\r\n */\r\n showInline: null,\r\n\r\n /**\r\n * @description Called just after the controller is positioned and displayed on the screen.\r\n * controller - editing elements displayed on the screen [image resizing, table editor, link editor..]]\r\n * @param {String} name The name of the plugin that called the controller\r\n * @param {Array} controllers Array of Controller elements\r\n * @param {Object} core Core object\r\n */\r\n showController: null,\r\n\r\n /**\r\n * @description An event when toggling between code view and wysiwyg view.\r\n * @param {Boolean} isCodeView Whether the current code view mode\r\n * @param {Object} core Core object\r\n */\r\n toggleCodeView: null,\r\n\r\n /**\r\n * @description An event when toggling full screen.\r\n * @param {Boolean} isFullScreen Whether the current full screen mode\r\n * @param {Object} core Core object\r\n */\r\n toggleFullScreen: null,\r\n\r\n /**\r\n * @description It replaces the default callback function of the image upload\r\n * @param {Object} response Response object\r\n * @param {Object} info Input information\r\n * - linkValue: Link url value\r\n * - linkNewWindow: Open in new window Check Value\r\n * - inputWidth: Value of width input\r\n * - inputHeight: Value of height input\r\n * - align: Align Check Value\r\n * - isUpdate: Update image if true, create image if false\r\n * - element: If isUpdate is true, the currently selected image.\r\n * @param {Object} core Core object\r\n */\r\n imageUploadHandler: null,\r\n\r\n /**\r\n * @description It replaces the default callback function of the video upload\r\n * @param xmlHttp xmlHttpRequest object\r\n * @param info Input information\r\n * - inputWidth: Value of width input\r\n * - inputHeight: Value of height input\r\n * - align: Align Check Value\r\n * - isUpdate: Update video if true, create video if false\r\n * - element: If isUpdate is true, the currently selected video.\r\n * @param core Core object\r\n */\r\n videoUploadHandler: null,\r\n\r\n /**\r\n * @description It replaces the default callback function of the audio upload\r\n * @param xmlHttp xmlHttpRequest object\r\n * @param info Input information\r\n * - isUpdate: Update audio if true, create audio if false\r\n * - element: If isUpdate is true, the currently selected audio.\r\n * @param core Core object\r\n */\r\n audioUploadHandler: null,\r\n\r\n /**\r\n * @description Called before the image is uploaded\r\n * If true is returned, the internal upload process runs normally.\r\n * If false is returned, no image upload is performed.\r\n * If new fileList are returned, replaced the previous fileList\r\n * If undefined is returned, it waits until \"uploadHandler\" is executed.\r\n * @param {Array} files Files array\r\n * @param {Object} info info: {\r\n * - linkValue: Link url value\r\n * - linkNewWindow: Open in new window Check Value\r\n * - inputWidth: Value of width input\r\n * - inputHeight: Value of height input\r\n * - align: Align Check Value\r\n * - isUpdate: Update image if true, create image if false\r\n * - element: If isUpdate is true, the currently selected image.\r\n * }\r\n * @param {Object} core Core object\r\n * @param {Function} uploadHandler If undefined is returned, it waits until \"uploadHandler\" is executed.\r\n * \"uploadHandler\" is an upload function with \"core\" and \"info\" bound.\r\n * [upload files] : uploadHandler(files or [new File(...),])\r\n * [error] : uploadHandler(\"Error message\")\r\n * [Just finish] : uploadHandler()\r\n * [directly register] : uploadHandler(response) // Same format as \"imageUploadUrl\" response\r\n * ex) {\r\n * // \"errorMessage\": \"insert error message\",\r\n * \"result\": [ { \"url\": \"...\", \"name\": \"...\", \"size\": \"999\" }, ]\r\n * }\r\n * @returns {Boolean|Array|undefined}\r\n */\r\n onImageUploadBefore: null,\r\n /**\r\n * @description Called before the video is uploaded\r\n * If true is returned, the internal upload process runs normally.\r\n * If false is returned, no video(iframe, video) upload is performed.\r\n * If new fileList are returned, replaced the previous fileList\r\n * If undefined is returned, it waits until \"uploadHandler\" is executed.\r\n * @param {Array} files Files array\r\n * @param {Object} info info: {\r\n * - inputWidth: Value of width input\r\n * - inputHeight: Value of height input\r\n * - align: Align Check Value\r\n * - isUpdate: Update video if true, create video if false\r\n * - element: If isUpdate is true, the currently selected video.\r\n * }\r\n * @param {Object} core Core object\r\n * @param {Function} uploadHandler If undefined is returned, it waits until \"uploadHandler\" is executed.\r\n * \"uploadHandler\" is an upload function with \"core\" and \"info\" bound.\r\n * [upload files] : uploadHandler(files or [new File(...),])\r\n * [error] : uploadHandler(\"Error message\")\r\n * [Just finish] : uploadHandler()\r\n * [directly register] : uploadHandler(response) // Same format as \"videoUploadUrl\" response\r\n * ex) {\r\n * // \"errorMessage\": \"insert error message\",\r\n * \"result\": [ { \"url\": \"...\", \"name\": \"...\", \"size\": \"999\" }, ]\r\n * }\r\n * @returns {Boolean|Array|undefined}\r\n */\r\n onVideoUploadBefore: null,\r\n /**\r\n * @description Called before the audio is uploaded\r\n * If true is returned, the internal upload process runs normally.\r\n * If false is returned, no audio upload is performed.\r\n * If new fileList are returned, replaced the previous fileList\r\n * If undefined is returned, it waits until \"uploadHandler\" is executed.\r\n * @param {Array} files Files array\r\n * @param {Object} info info: {\r\n * - isUpdate: Update audio if true, create audio if false\r\n * - element: If isUpdate is true, the currently selected audio.\r\n * }\r\n * @param {Object} core Core object\r\n * @param {Function} uploadHandler If undefined is returned, it waits until \"uploadHandler\" is executed.\r\n * \"uploadHandler\" is an upload function with \"core\" and \"info\" bound.\r\n * [upload files] : uploadHandler(files or [new File(...),])\r\n * [error] : uploadHandler(\"Error message\")\r\n * [Just finish] : uploadHandler()\r\n * [directly register] : uploadHandler(response) // Same format as \"audioUploadUrl\" response\r\n * ex) {\r\n * // \"errorMessage\": \"insert error message\",\r\n * \"result\": [ { \"url\": \"...\", \"name\": \"...\", \"size\": \"999\" }, ]\r\n * }\r\n * @returns {Boolean|Array|undefined}\r\n */\r\n onAudioUploadBefore: null,\r\n\r\n /**\r\n * @description Called when the image is uploaded, updated, deleted\r\n * @param {Element} targetElement Target element\r\n * @param {Number} index Uploaded index\r\n * @param {String} state Upload status ('create', 'update', 'delete')\r\n * @param {Object} info Image info object\r\n * - index: data index\r\n * - name: file name\r\n * - size: file size\r\n * - select: select function\r\n * - delete: delete function\r\n * - element: target element\r\n * - src: src attribute of tag\r\n * @param {Number} remainingFilesCount Count of remaining files to upload (0 when added as a url)\r\n * @param {Object} core Core object\r\n */\r\n onImageUpload: null,\r\n /**\r\n * @description Called when the video(iframe, video) is is uploaded, updated, deleted\r\n * -- arguments is same \"onImageUpload\" --\r\n */\r\n onVideoUpload: null,\r\n /**\r\n * @description Called when the audio is is uploaded, updated, deleted\r\n * -- arguments is same \"onImageUpload\" --\r\n */\r\n onAudioUpload: null,\r\n\r\n /**\r\n * @description Called when the image is upload failed\r\n * @param {String} errorMessage Error message\r\n * @param {Object} result Response Object\r\n * @param {Object} core Core object\r\n * @returns {Boolean}\r\n */\r\n onImageUploadError: null,\r\n /**\r\n * @description Called when the video(iframe, video) upload failed\r\n * -- arguments is same \"onImageUploadError\" --\r\n */\r\n onVideoUploadError: null,\r\n /**\r\n * @description Called when the audio upload failed\r\n * -- arguments is same \"onImageUploadError\" --\r\n */\r\n onAudioUploadError: null,\r\n\r\n /**\r\n * @description Called when the editor is resized using the bottom bar\r\n */\r\n onResizeEditor: null,\r\n\r\n /**\r\n * @description Called after the \"setToolbarButtons\" invocation.\r\n * Can be used to tweak buttons properties (useful for custom buttons)\r\n * @param {Array} buttonList Button list \r\n * @param {Object} core Core object\r\n */\r\n onSetToolbarButtons: null,\r\n\r\n /**\r\n * @description Reset the buttons on the toolbar. (Editor is not reloaded)\r\n * You cannot set a new plugin for the button.\r\n * @param {Array} buttonList Button list \r\n */\r\n setToolbarButtons: function (buttonList) {\r\n core.submenuOff();\r\n core.containerOff();\r\n core.moreLayerOff();\r\n\r\n const newToolbar = _Constructor._createToolBar(_d, buttonList, core.plugins, options);\r\n _responsiveButtons = newToolbar.responsiveButtons;\r\n event._setResponsiveToolbar();\r\n\r\n context.element.toolbar.replaceChild(newToolbar._buttonTray, context.element._buttonTray);\r\n const newContext = _Context(context.element.originElement, core._getConstructed(context.element), options);\r\n\r\n context.element = newContext.element;\r\n context.tool = newContext.tool;\r\n if (options.iframe) context.element.wysiwyg = core._wd.body;\r\n\r\n core._recoverButtonStates();\r\n core._cachingButtons();\r\n core.history._resetCachingButton();\r\n\r\n core.effectNode = null;\r\n if (core.hasFocus) event._applyTagEffects();\r\n if (core.isReadOnly) util.setDisabledButtons(true, core.resizingDisabledButtons);\r\n if (typeof functions.onSetToolbarButtons === 'function') functions.onSetToolbarButtons(newToolbar._buttonTray.querySelectorAll('button'), core);\r\n },\r\n\r\n /**\r\n * @description Add or reset option property (Editor is reloaded)\r\n * @param {Object} _options Options\r\n */\r\n setOptions: function (_options) {\r\n event._removeEvent();\r\n core._resetComponents();\r\n\r\n util.removeClass(core._styleCommandMap.showBlocks, 'active');\r\n util.removeClass(core._styleCommandMap.codeView, 'active');\r\n core._variable.isCodeView = false;\r\n core._iframeAuto = null;\r\n\r\n core.plugins = _options.plugins || core.plugins;\r\n const mergeOptions = [options, _options].reduce(function (init, option) {\r\n for (let key in option) {\r\n if (!util.hasOwn(option, key)) continue;\r\n if (key === 'plugins' && option[key] && init[key]) {\r\n let i = init[key], o = option[key];\r\n i = i.length ? i : _w.Object.keys(i).map(function(name) { return i[name]; });\r\n o = o.length ? o : _w.Object.keys(o).map(function(name) { return o[name]; });\r\n init[key] = (o.filter(function(val) { return i.indexOf(val) === -1; })).concat(i);\r\n } else {\r\n init[key] = option[key];\r\n }\r\n }\r\n return init;\r\n }, {});\r\n\r\n const el = context.element;\r\n const _initHTML = el.wysiwyg.innerHTML;\r\n\r\n // set option\r\n const cons = _Constructor._setOptions(mergeOptions, context, options);\r\n\r\n if (cons.callButtons) {\r\n pluginCallButtons = cons.callButtons;\r\n core.initPlugins = {};\r\n }\r\n\r\n if (cons.plugins) {\r\n core.plugins = plugins = cons.plugins;\r\n }\r\n\r\n // reset context\r\n if (el._menuTray.children.length === 0) this._menuTray = {};\r\n _responsiveButtons = cons.toolbar.responsiveButtons;\r\n core.options = options = mergeOptions;\r\n core.lang = lang = options.lang;\r\n\r\n if (options.iframe) {\r\n el.wysiwygFrame.addEventListener('load', function () {\r\n util._setIframeDocument(this, options);\r\n core._setOptionsInit(el, _initHTML);\r\n });\r\n }\r\n\r\n el.editorArea.appendChild(el.wysiwygFrame);\r\n\r\n if (!options.iframe) {\r\n core._setOptionsInit(el, _initHTML);\r\n }\r\n },\r\n\r\n /**\r\n * @description Set \"options.defaultStyle\" style.\r\n * Define the style of the edit area\r\n * It can also be defined with the \"setOptions\" method, but the \"setDefaultStyle\" method does not render the editor again.\r\n * @param {String} style Style string\r\n */\r\n setDefaultStyle: function (style) {\r\n const newStyles = options._editorStyles = util._setDefaultOptionStyle(options, style);\r\n const el = context.element;\r\n\r\n // top area\r\n el.topArea.style.cssText = newStyles.top;\r\n // code view\r\n el.code.style.cssText = options._editorStyles.frame;\r\n el.code.style.display = 'none';\r\n if (options.height === 'auto') {\r\n el.code.style.overflow = 'hidden';\r\n } else {\r\n el.code.style.overflow = '';\r\n }\r\n // wysiwyg frame\r\n if (!options.iframe) {\r\n el.wysiwygFrame.style.cssText = newStyles.frame + newStyles.editor;\r\n } else {\r\n el.wysiwygFrame.style.cssText = newStyles.frame;\r\n el.wysiwyg.style.cssText = newStyles.editor;\r\n }\r\n },\r\n\r\n /**\r\n * @description Open a notice area\r\n * @param {String} message Notice message\r\n */\r\n noticeOpen: function (message) {\r\n core.notice.open.call(core, message);\r\n },\r\n\r\n /**\r\n * @description Close a notice area\r\n */\r\n noticeClose: function () {\r\n core.notice.close.call(core);\r\n },\r\n\r\n /**\r\n * @description Copying the contents of the editor to the original textarea and execute onSave callback\r\n * * not working during enabled codeView mode\r\n */\r\n save: function () {\r\n const contents = core.getContents(false);\r\n context.element.originElement.value = contents;\r\n event.onSave_wysiwyg(contents, core);\r\n },\r\n\r\n /**\r\n * @description Gets the suneditor's context object. Contains settings, plugins, and cached element objects\r\n * @returns {Object}\r\n */\r\n getContext: function () {\r\n return context;\r\n },\r\n\r\n /**\r\n * @description Gets the contents of the suneditor\r\n * * not working during enabled codeView mode\r\n * @param {Boolean} onlyContents - Return only the contents of the body without headers when the \"fullPage\" option is true\r\n * @returns {String}\r\n */\r\n getContents: function (onlyContents) {\r\n return core.getContents(onlyContents);\r\n },\r\n\r\n /**\r\n * @description Gets only the text of the suneditor contents\r\n * * not working during enabled codeView mode\r\n * @returns {String}\r\n */\r\n getText: function () {\r\n return context.element.wysiwyg.textContent;\r\n },\r\n\r\n /**\r\n * @description Get the editor's number of characters or binary data size.\r\n * You can use the \"charCounterType\" option format.\r\n * @param {String|null} charCounterType options - charCounterType ('char', 'byte', 'byte-html')\r\n * If argument is no value, the currently set \"charCounterType\" option is used.\r\n * @returns {Number}\r\n */\r\n getCharCount: function (charCounterType) {\r\n charCounterType = typeof charCounterType === 'string' ? charCounterType : options.charCounterType;\r\n return core.getCharLength((core._charTypeHTML ? context.element.wysiwyg.innerHTML : context.element.wysiwyg.textContent), charCounterType);\r\n },\r\n\r\n /**\r\n * @description Gets uploaded images informations\r\n * - index: data index\r\n * - name: file name\r\n * - size: file size\r\n * - select: select function\r\n * - delete: delete function\r\n * - element: target element\r\n * - src: src attribute of tag\r\n * @returns {Array}\r\n */\r\n getImagesInfo: function () {\r\n return context.image ? context.image._infoList : [];\r\n },\r\n\r\n /**\r\n * @description Gets uploaded files(plugin using fileManager) information list.\r\n * image: [img], video: [video, iframe], audio: [audio]\r\n * When the argument value is 'image', it is the same function as \"getImagesInfo\".\r\n * - index: data index\r\n * - name: file name\r\n * - size: file size\r\n * - select: select function\r\n * - delete: delete function\r\n * - element: target element\r\n * - src: src attribute of tag\r\n * @param {String} pluginName Plugin name (image, video, audio)\r\n * @returns {Array}\r\n */\r\n getFilesInfo: function (pluginName) {\r\n return context[pluginName] ? context[pluginName]._infoList : [];\r\n },\r\n\r\n /**\r\n * @description Upload images using image plugin\r\n * @param {FileList} files FileList\r\n */\r\n insertImage: function (files) {\r\n if (!core.plugins.image || !files) return;\r\n\r\n if (!core.initPlugins.image) core.callPlugin('image', core.plugins.image.submitAction.bind(core, files), null);\r\n else core.plugins.image.submitAction.call(core, files);\r\n core.focus();\r\n },\r\n\r\n /**\r\n * @description Inserts an HTML element or HTML string or plain string at the current cursor position\r\n * @param {Element|String} html HTML Element or HTML string or plain string\r\n * @param {Boolean} notCleaningData If true, inserts the HTML string without refining it with core.cleanHTML.\r\n * @param {Boolean} checkCharCount If true, if \"options.maxCharCount\" is exceeded when \"element\" is added, null is returned without addition.\r\n * @param {Boolean} rangeSelection If true, range select the inserted node.\r\n */\r\n insertHTML: function (html, notCleaningData, checkCharCount, rangeSelection) {\r\n if (!context.element.wysiwygFrame.contains(core.getSelection().focusNode)) core.focus();\r\n\r\n if (typeof html === 'string') {\r\n if (!notCleaningData) html = core.cleanHTML(html, null, null);\r\n try {\r\n if (util.isListCell(util.getFormatElement(core.getSelectionNode(), null))) {\r\n const dom = _d.createRange().createContextualFragment(html);\r\n const domTree = dom.childNodes;\r\n if (core._isFormatData(domTree)) html = core._convertListCell(domTree);\r\n }\r\n\r\n const dom = _d.createRange().createContextualFragment(html);\r\n const domTree = dom.childNodes;\r\n\r\n if (checkCharCount) {\r\n const type = core._charTypeHTML ? 'outerHTML' : 'textContent';\r\n let checkHTML = '';\r\n for (let i = 0, len = domTree.length; i < len; i++) {\r\n checkHTML += domTree[i][type];\r\n }\r\n if (!core.checkCharCount(checkHTML, null)) return;\r\n }\r\n\r\n let c, a, t, prev, firstCon;\r\n while ((c = domTree[0])) {\r\n if (prev && prev.nodeType === 3 && a && a.nodeType === 1 && util.isBreak(c)) {\r\n prev = c;\r\n util.removeItem(c);\r\n continue;\r\n }\r\n t = core.insertNode(c, a, false);\r\n a = t.container || t;\r\n if (!firstCon) firstCon = t;\r\n prev = c;\r\n }\r\n\r\n if (prev.nodeType === 3 && a.nodeType === 1) a = prev;\r\n const offset = a.nodeType === 3 ? (t.endOffset || a.textContent.length): a.childNodes.length;\r\n if (rangeSelection) core.setRange(firstCon.container || firstCon, firstCon.startOffset || 0, a, offset);\r\n else core.setRange(a, offset, a, offset);\r\n } catch (error) {\r\n if (core.isDisabled || core.isReadOnly) return;\r\n console.warn('[SUNEDITOR.insertHTML.fail] ' + error);\r\n core.execCommand('insertHTML', false, html);\r\n }\r\n } else {\r\n if (util.isComponent(html)) {\r\n core.insertComponent(html, false, checkCharCount, false);\r\n } else {\r\n let afterNode = null;\r\n if (util.isFormatElement(html) || util.isMedia(html)) {\r\n afterNode = util.getFormatElement(core.getSelectionNode(), null);\r\n }\r\n core.insertNode(html, afterNode, checkCharCount);\r\n }\r\n }\r\n\r\n core.effectNode = null;\r\n core.focus();\r\n\r\n // history stack\r\n core.history.push(false);\r\n },\r\n\r\n /**\r\n * @description Change the contents of the suneditor\r\n * @param {String|undefined} contents Contents to Input\r\n */\r\n setContents: function (contents) {\r\n core.setContents(contents);\r\n },\r\n\r\n /**\r\n * @description Add contents to the suneditor\r\n * @param {String} contents Contents to Input\r\n */\r\n appendContents: function (contents) {\r\n const convertValue = core.convertContentsForEditor(contents);\r\n\r\n if (!core._variable.isCodeView) {\r\n const temp = util.createElement('DIV');\r\n temp.innerHTML = convertValue;\r\n\r\n const wysiwyg = context.element.wysiwyg;\r\n const children = temp.children;\r\n for (let i = 0, len = children.length; i < len; i++) {\r\n if (children[i]) {\r\n wysiwyg.appendChild(children[i]);\r\n }\r\n }\r\n } else {\r\n core._setCodeView(core._getCodeView() + '\\n' + core.convertHTMLForCodeView(convertValue, false));\r\n }\r\n\r\n // history stack\r\n core.history.push(false);\r\n },\r\n\r\n /**\r\n * @description Switch to or off \"ReadOnly\" mode.\r\n * @param {Boolean} value \"readOnly\" boolean value.\r\n */\r\n readOnly: function (value) {\r\n core.isReadOnly = value;\r\n\r\n util.setDisabledButtons(!!value, core.resizingDisabledButtons);\r\n\r\n if (value) {\r\n /** off menus */\r\n core.controllersOff();\r\n if (core.submenuActiveButton && core.submenuActiveButton.disabled) core.submenuOff();\r\n if (core._moreLayerActiveButton && core._moreLayerActiveButton.disabled) core.moreLayerOff();\r\n if (core.containerActiveButton && core.containerActiveButton.disabled) core.containerOff();\r\n if (core.modalForm) core.plugins.dialog.close.call(core);\r\n\r\n context.element.code.setAttribute(\"readOnly\", \"true\");\r\n util.addClass(context.element.wysiwygFrame, 'se-read-only');\r\n } else {\r\n context.element.code.removeAttribute(\"readOnly\");\r\n util.removeClass(context.element.wysiwygFrame, 'se-read-only');\r\n }\r\n\r\n if (options.codeMirrorEditor) options.codeMirrorEditor.setOption('readOnly', !!value);\r\n },\r\n\r\n /**\r\n * @description Disable the suneditor\r\n */\r\n disable: function () {\r\n this.toolbar.disable();\r\n this.wysiwyg.disable();\r\n },\r\n\r\n /**\r\n * @description Provided for backward compatibility and will be removed in 3.0.0 version\r\n */\r\n disabled: function () {\r\n this.disable();\r\n },\r\n\r\n /**\r\n * @description Enable the suneditor\r\n */\r\n enable: function () {\r\n this.toolbar.enable();\r\n this.wysiwyg.enable();\r\n },\r\n\r\n /**\r\n * @description Provided for backward compatibility and will be removed in 3.0.0 version\r\n */\r\n enabled: function () {\r\n this.enable();\r\n },\r\n\r\n /**\r\n * @description Show the suneditor\r\n */\r\n show: function () {\r\n const topAreaStyle = context.element.topArea.style;\r\n if (topAreaStyle.display === 'none') topAreaStyle.display = options.display;\r\n },\r\n\r\n /**\r\n * @description Hide the suneditor\r\n */\r\n hide: function () {\r\n context.element.topArea.style.display = 'none';\r\n },\r\n\r\n /**\r\n * @description Destroy the suneditor\r\n */\r\n destroy: function () {\r\n /** off menus */\r\n core.submenuOff();\r\n core.containerOff();\r\n core.controllersOff();\r\n if (core.notice) core.notice.close.call(core);\r\n if (core.modalForm) core.plugins.dialog.close.call(core);\r\n\r\n /** remove history */\r\n core.history._destroy();\r\n\r\n /** remove event listeners */\r\n event._removeEvent();\r\n\r\n /** remove element */\r\n util.removeItem(context.element.toolbar);\r\n util.removeItem(context.element.topArea);\r\n\r\n /** remove object reference */\r\n for (let k in core.functions) { if (util.hasOwn(core, k)) delete core.functions[k]; }\r\n for (let k in core) { if (util.hasOwn(core, k)) delete core[k]; }\r\n for (let k in event) { if (util.hasOwn(event, k)) delete event[k]; }\r\n for (let k in context) { if (util.hasOwn(context, k)) delete context[k]; }\r\n for (let k in pluginCallButtons) { if (util.hasOwn(pluginCallButtons, k)) delete pluginCallButtons[k]; }\r\n\r\n /** remove user object */\r\n for (let k in this) { if (util.hasOwn(this, k)) delete this[k]; }\r\n },\r\n\r\n /**\r\n * @description Toolbar methods\r\n */\r\n toolbar: {\r\n /**\r\n * @description Disable the toolbar\r\n */\r\n disable: function () {\r\n /** off menus */\r\n core.submenuOff();\r\n core.moreLayerOff();\r\n core.containerOff();\r\n\r\n context.tool.cover.style.display = 'block';\r\n },\r\n\r\n /**\r\n * @description Provided for backward compatibility and will be removed in 3.0.0 version\r\n */\r\n disabled: function () {\r\n this.disable();\r\n },\r\n\r\n /**\r\n * @description Enable the toolbar\r\n */\r\n enable: function () {\r\n context.tool.cover.style.display = 'none';\r\n },\r\n\r\n /**\r\n * @description Provided for backward compatibility and will be removed in 3.0.0 version\r\n */\r\n enabled: function () {\r\n this.enable();\r\n },\r\n\r\n /**\r\n * @description Show the toolbar\r\n */\r\n show: function () {\r\n if (core._isInline) {\r\n event._showToolbarInline();\r\n } else {\r\n context.element.toolbar.style.display = '';\r\n context.element._stickyDummy.style.display = '';\r\n }\r\n\r\n event.onResize_window();\r\n },\r\n\r\n /**\r\n * @description Hide the toolbar\r\n */\r\n hide: function () {\r\n if (core._isInline) {\r\n event._hideToolbar();\r\n } else {\r\n context.element.toolbar.style.display = 'none';\r\n context.element._stickyDummy.style.display = 'none';\r\n }\r\n\r\n event.onResize_window();\r\n },\r\n },\r\n\r\n /**\r\n * @description Wysiwyg methods\r\n */\r\n wysiwyg: {\r\n /**\r\n * @description Disable the wysiwyg area\r\n */\r\n disable: function () {\r\n /** off menus */\r\n core.controllersOff();\r\n if (core.modalForm) core.plugins.dialog.close.call(core);\r\n\r\n context.element.wysiwyg.setAttribute('contenteditable', false);\r\n core.isDisabled = true;\r\n\r\n if (options.codeMirrorEditor) {\r\n options.codeMirrorEditor.setOption('readOnly', true);\r\n } else {\r\n context.element.code.setAttribute('disabled', 'disabled');\r\n }\r\n },\r\n\r\n /**\r\n * @description Enable the wysiwyg area\r\n */\r\n enable: function () {\r\n context.element.wysiwyg.setAttribute('contenteditable', true);\r\n core.isDisabled = false;\r\n\r\n if (options.codeMirrorEditor) {\r\n options.codeMirrorEditor.setOption('readOnly', false);\r\n } else {\r\n context.element.code.removeAttribute('disabled');\r\n }\r\n },\r\n }\r\n };\r\n\r\n /************ Core init ************/\r\n // functions\r\n core.functions = functions;\r\n core.options = options;\r\n\r\n // Create to sibling node\r\n let contextEl = context.element;\r\n let originEl = contextEl.originElement;\r\n let topEl = contextEl.topArea;\r\n originEl.style.display = 'none';\r\n topEl.style.display = 'block';\r\n\r\n // init\r\n if (options.iframe) {\r\n contextEl.wysiwygFrame.addEventListener('load', function () {\r\n util._setIframeDocument(this, options);\r\n core._editorInit(false, options.value);\r\n options.value = null;\r\n });\r\n }\r\n\r\n // insert editor element\r\n if (typeof originEl.nextElementSibling === 'object') {\r\n originEl.parentNode.insertBefore(topEl, originEl.nextElementSibling);\r\n } else {\r\n originEl.parentNode.appendChild(topEl);\r\n }\r\n\r\n contextEl.editorArea.appendChild(contextEl.wysiwygFrame);\r\n contextEl = originEl = topEl = null;\r\n\r\n // init\r\n if (!options.iframe) {\r\n core._editorInit(false, options.value);\r\n options.value = null;\r\n }\r\n\r\n return functions;\r\n}","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2019 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\nexport default function (core, change) {\n const _w = core._w;\n const util = core.util;\n const delayTime = core.options.historyStackDelayTime;\n let editor = core.context.element;\n let undo = core.context.tool.undo;\n let redo = core.context.tool.redo;\n\n let pushDelay = null;\n let stackIndex = 0;\n let stack = [];\n\n function setContentsFromStack () {\n const item = stack[stackIndex];\n editor.wysiwyg.innerHTML = item.contents;\n\n core.setRange(util.getNodeFromPath(item.s.path, editor.wysiwyg), item.s.offset, util.getNodeFromPath(item.e.path, editor.wysiwyg), item.e.offset);\n core.focus();\n\n if (stack.length <= 1) {\n if (undo) undo.setAttribute('disabled', true);\n if (redo) redo.setAttribute('disabled', true);\n } else {\n if (stackIndex === 0) {\n if (undo) undo.setAttribute('disabled', true);\n if (redo) redo.removeAttribute('disabled');\n } else if (stackIndex === stack.length - 1) {\n if (undo) undo.removeAttribute('disabled');\n if (redo) redo.setAttribute('disabled', true);\n } else {\n if (undo) undo.removeAttribute('disabled');\n if (redo) redo.removeAttribute('disabled');\n }\n }\n\n core.controllersOff();\n core._checkComponents();\n core._setCharCount();\n core._resourcesStateChange();\n \n // onChange\n change();\n }\n\n function pushStack () {\n core._checkComponents();\n const current = editor.wysiwyg.innerHTML;\n if (!current || (!!stack[stackIndex] && current === stack[stackIndex].contents)) return;\n\n stackIndex++;\n const range = core._variable._range;\n\n if (stack.length > stackIndex) {\n stack = stack.slice(0, stackIndex);\n if (redo) redo.setAttribute('disabled', true);\n }\n\n if (!range) {\n stack[stackIndex] = {\n contents: current,\n s: { path: [0, 0], offset: [0, 0] },\n e: { path: 0, offset: 0 }\n };\n } else {\n stack[stackIndex] = {\n contents: current,\n s: {\n path: util.getNodePath(range.startContainer, null, null),\n offset: range.startOffset\n },\n e: {\n path: util.getNodePath(range.endContainer, null, null),\n offset: range.endOffset\n }\n };\n }\n\n if (stackIndex === 1 && undo) undo.removeAttribute('disabled');\n\n core._setCharCount();\n // onChange\n change();\n }\n\n return {\n /**\n * @description History stack\n */\n stack: stack,\n\n /**\n * @description Saving the current status to the history object stack\n * If \"delay\" is true, it will be saved after (options.historyStackDelayTime || 400) miliseconds\n * If the function is called again with the \"delay\" argument true before it is saved, the delay time is renewal\n * You can specify the delay time by sending a number.\n * @param {Boolean|Number} delay If true, Add stack without delay time.\n */\n push: function (delay) {\n _w.setTimeout(core._resourcesStateChange.bind(core));\n const time = typeof delay === 'number' ? (delay > 0 ? delay : 0) : (!delay ? 0 : delayTime);\n \n if (!time || pushDelay) {\n _w.clearTimeout(pushDelay);\n if (!time) {\n pushStack();\n return;\n }\n }\n\n pushDelay = _w.setTimeout(function () {\n _w.clearTimeout(pushDelay);\n pushDelay = null;\n pushStack();\n }, time);\n },\n\n /**\n * @description Undo function\n */\n undo: function () {\n if (stackIndex > 0) {\n stackIndex--;\n setContentsFromStack();\n }\n },\n\n /**\n * @description Redo function\n */\n redo: function () {\n if (stack.length - 1 > stackIndex) {\n stackIndex++;\n setContentsFromStack();\n }\n },\n\n /**\n * @description Go to the history stack for that index.\n * If \"index\" is -1, go to the last stack\n */\n go: function (index) {\n stackIndex = index < 0 ? (stack.length - 1) : index;\n setContentsFromStack();\n },\n\n /**\n * @description Get the current history stack index.\n * @returns {Number} Current Stack index\n */\n getCurrentIndex: function () {\n return stackIndex;\n },\n \n /**\n * @description Reset the history object\n */\n reset: function (ignoreChangeEvent) {\n if (undo) undo.setAttribute('disabled', true);\n if (redo) redo.setAttribute('disabled', true);\n core._variable.isChanged = false;\n if (core.context.tool.save) core.context.tool.save.setAttribute('disabled', true);\n \n stack.splice(0);\n stackIndex = 0;\n\n // pushStack\n stack[stackIndex] = {\n contents: core.getContents(true),\n s: {\n path: [0, 0],\n offset: 0\n },\n e: {\n path: [0, 0],\n offset: 0\n }\n };\n\n if (!ignoreChangeEvent) change();\n },\n\n /**\n * @description Reset the disabled state of the buttons to fit the current stack.\n * @private\n */\n _resetCachingButton: function () {\n editor = core.context.element;\n undo = core.context.tool.undo;\n redo = core.context.tool.redo;\n\n if (stackIndex === 0) {\n if (undo) undo.setAttribute('disabled', true);\n if (redo && stackIndex === stack.length - 1) redo.setAttribute('disabled', true);\n core._variable.isChanged = false;\n if (core.context.tool.save) core.context.tool.save.setAttribute('disabled', true);\n } else if (stackIndex === stack.length - 1) {\n if (redo) redo.setAttribute('disabled', true);\n }\n },\n\n /**\n * @description Remove all stacks and remove the timeout function.\n * @private\n */\n _destroy: function () {\n if (pushDelay) _w.clearTimeout(pushDelay);\n stack = null;\n }\n };\n}","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'cs',\n toolbar: {\n default: 'Výchozí',\n save: 'Uložit',\n font: 'Písmo',\n formats: 'Formáty',\n fontSize: 'Velikost',\n bold: 'Tučné',\n underline: 'Podtržení',\n italic: 'Kurzíva',\n strike: 'Přeškrtnutí',\n subscript: 'Dolní index',\n superscript: 'Horní index',\n removeFormat: 'Odebrat formát',\n fontColor: 'Barva písma',\n hiliteColor: 'Barva zvýraznění',\n indent: 'Odsadit',\n outdent: 'Předsadit',\n align: 'Zarovnat',\n alignLeft: 'Zarovnat vlevo',\n alignRight: 'Zarovnat vpravo',\n alignCenter: 'Zarovnat na střed',\n alignJustify: 'Zarovnat do bloku',\n list: 'Seznam',\n orderList: 'Seřazený seznam',\n unorderList: 'Neřazený seznam',\n horizontalRule: 'Vodorovná čára',\n hr_solid: 'Nepřerušovaná',\n hr_dotted: 'Tečkovaná',\n hr_dashed: 'Čárkovaná',\n table: 'Tabulka',\n link: 'Odkaz',\n math: 'Matematika',\n image: 'Obrázek',\n video: 'Video',\n audio: 'Zvuk',\n fullScreen: 'Celá obrazovka',\n showBlocks: 'Zobrazit bloky',\n codeView: 'Zobrazení kódu',\n undo: 'Zpět',\n redo: 'Opakovat',\n preview: 'Náhled',\n print: 'tisk',\n tag_p: 'Odstavec',\n tag_div: 'Normální (DIV)',\n tag_h: 'Záhlaví',\n tag_blockquote: 'Citovat',\n tag_pre: 'Kód',\n template: 'Šablona',\n lineHeight: 'Výška řádku',\n paragraphStyle: 'Styl odstavce',\n textStyle: 'Styl textu',\n imageGallery: 'Obrázková galerie',\n dir_ltr: 'Zleva doprava',\n dir_rtl: 'Zprava doleva',\n mention: 'Zmínka'\n },\n dialogBox: {\n linkBox: {\n title: 'Vložit odkaz',\n url: 'URL pro odkaz',\n text: 'Text k zobrazení',\n newWindowCheck: 'Otevřít v novém okně',\n downloadLinkCheck: 'Odkaz ke stažení',\n bookmark: 'Záložka'\n },\n mathBox: {\n title: 'Matematika',\n inputLabel: 'Matematická notace',\n fontSizeLabel: 'Velikost písma',\n previewLabel: 'Náhled'\n },\n imageBox: {\n title: 'Vložit obrázek',\n file: 'Vybrat ze souborů',\n url: 'URL obrázku',\n altText: 'Alternativní text'\n },\n videoBox: {\n title: 'Vložit video',\n file: 'Vybrat ze souborů',\n url: 'URL pro vložení médií, YouTube/Vimeo'\n },\n audioBox: {\n title: 'Vložit zvuk',\n file: 'Vybrat ze souborů',\n url: 'Adresa URL zvuku'\n },\n browser: {\n tags: 'Štítky',\n search: 'Hledat',\n },\n caption: 'Vložit popis',\n close: 'Zavřít',\n submitButton: 'Odeslat',\n revertButton: 'Vrátit zpět',\n proportion: 'Omezení proporcí',\n basic: 'Základní',\n left: 'Vlevo',\n right: 'Vpravo',\n center: 'Střed',\n width: 'Šířka',\n height: 'Výška',\n size: 'Velikost',\n ratio: 'Poměr'\n },\n controller: {\n edit: 'Upravit',\n unlink: 'Odpojit',\n remove: 'Odebrat',\n insertRowAbove: 'Vložit řádek výše',\n insertRowBelow: 'Vložit řádek níže',\n deleteRow: 'Smazat řádek',\n insertColumnBefore: 'Vložit sloupec před',\n insertColumnAfter: 'Vložit sloupec za',\n deleteColumn: 'Smazat sloupec',\n fixedColumnWidth: 'Pevná šířka sloupce',\n resize100: 'Změnit velikost 100%',\n resize75: 'Změnit velikost 75%',\n resize50: 'Změnit velikost 50%',\n resize25: 'Změnit velikost 25%',\n autoSize: 'Automatická velikost',\n mirrorHorizontal: 'Zrcadlo, horizontální',\n mirrorVertical: 'Zrcadlo, vertikální',\n rotateLeft: 'Otočit doleva',\n rotateRight: 'Otočit doprava',\n maxSize: 'Max. velikost',\n minSize: 'Min. velikost',\n tableHeader: 'Záhlaví tabulky',\n mergeCells: 'Spojit buňky',\n splitCells: 'Rozdělit buňky',\n HorizontalSplit: 'Vodorovné rozdělení',\n VerticalSplit: 'Svislé rozdělení'\n },\n menu: {\n spaced: 'Rozložené',\n bordered: 'Ohraničené',\n neon: 'Neon',\n translucent: 'Průsvitné',\n shadow: 'Stín',\n code: 'Kód'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'cs', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2019 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'fr',\n toolbar: {\n default: 'Défaut',\n save: 'Sauvegarder',\n font: 'Police',\n formats: 'Formats',\n fontSize: 'Taille',\n bold: 'Gras',\n underline: 'Souligné',\n italic: 'Italique',\n strike: 'Barré',\n subscript: 'Indice',\n superscript: 'Exposant',\n removeFormat: 'Effacer le formatage',\n fontColor: 'Couleur du texte',\n hiliteColor: 'Couleur en arrière plan',\n indent: 'Indenter',\n outdent: 'Désindenter',\n align: 'Alignement',\n alignLeft: 'À gauche',\n alignRight: 'À droite',\n alignCenter: 'Centré',\n alignJustify: 'Justifié',\n list: 'Liste',\n orderList: 'Ordonnée',\n unorderList: 'Non-ordonnée',\n horizontalRule: 'Ligne horizontale',\n hr_solid: 'Solide',\n hr_dotted: 'Points',\n hr_dashed: 'Tirets',\n table: 'Table',\n link: 'Lien',\n math: 'Math',\n image: 'Image',\n video: 'Video',\n audio: 'Audio',\n fullScreen: 'Plein écran',\n showBlocks: 'Voir les blocs',\n codeView: 'Voir le code',\n undo: 'Annuler',\n redo: 'Rétablir',\n preview: 'Prévisualiser',\n print: 'Imprimer',\n tag_p: 'Paragraphe',\n tag_div: 'Normal (DIV)',\n tag_h: 'Titre',\n tag_blockquote: 'Citation',\n tag_pre: 'Code',\n template: 'Template',\n lineHeight: 'Hauteur de la ligne',\n paragraphStyle: 'Style de paragraphe',\n textStyle: 'Style de texte',\n imageGallery: 'Galerie d\\'images',\n dir_ltr: 'De gauche à droite',\n dir_rtl: 'De droite à gauche',\n mention: 'Mention'\n },\n dialogBox: {\n linkBox: {\n title: 'Insérer un lien',\n url: 'Adresse URL du lien',\n text: 'Texte à afficher',\n newWindowCheck: 'Ouvrir dans une nouvelle fenêtre',\n downloadLinkCheck: 'Lien de téléchargement',\n bookmark: 'Signet'\n },\n mathBox: {\n title: 'Math',\n inputLabel: 'Notation mathématique',\n fontSizeLabel: 'Taille',\n previewLabel: 'Prévisualiser'\n },\n imageBox: {\n title: 'Insérer une image',\n file: 'Sélectionner le fichier',\n url: 'Adresse URL du fichier',\n altText: 'Texte Alternatif'\n },\n videoBox: {\n title: 'Insérer une vidéo',\n file: 'Sélectionner le fichier',\n url: 'URL d’intégration du média, YouTube/Vimeo'\n },\n audioBox: {\n title: 'Insérer un fichier audio',\n file: 'Sélectionner le fichier',\n url: 'Adresse URL du fichier'\n },\n browser: {\n tags: 'Mots clés',\n search: 'Chercher',\n },\n caption: 'Insérer une description',\n close: 'Fermer',\n submitButton: 'Appliquer',\n revertButton: 'Revenir en arrière',\n proportion: 'Maintenir le rapport hauteur/largeur',\n basic: 'Basique',\n left: 'Gauche',\n right: 'Droite',\n center: 'Centré',\n width: 'Largeur',\n height: 'Hauteur',\n size: 'Taille',\n ratio: 'Rapport'\n },\n controller: {\n edit: 'Modifier',\n unlink: 'Supprimer un lien',\n remove: 'Effacer',\n insertRowAbove: 'Insérer une ligne en dessous',\n insertRowBelow: 'Insérer une ligne au dessus',\n deleteRow: 'Effacer la ligne',\n insertColumnBefore: 'Insérer une colonne avant',\n insertColumnAfter: 'Insérer une colonne après',\n deleteColumn: 'Effacer la colonne',\n fixedColumnWidth: 'Largeur de colonne fixe',\n resize100: 'Redimensionner à 100%',\n resize75: 'Redimensionner à 75%',\n resize50: 'Redimensionner à 50%',\n resize25: 'Redimensionner à 25%',\n autoSize: 'Taille automatique',\n mirrorHorizontal: 'Mirroir, Horizontal',\n mirrorVertical: 'Mirroir, Vertical',\n rotateLeft: 'Rotation à gauche',\n rotateRight: 'Rotation à droite',\n maxSize: 'Taille max',\n minSize: 'Taille min',\n tableHeader: 'En-tête de table',\n mergeCells: 'Fusionner les cellules',\n splitCells: 'Diviser les Cellules',\n HorizontalSplit: 'Scission horizontale',\n VerticalSplit: 'Scission verticale'\n },\n menu: {\n spaced: 'Espacement',\n bordered: 'Ligne de démarcation',\n neon: 'Néon',\n translucent: 'Translucide',\n shadow: 'Ombre',\n code: 'Code'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'fr', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * Brazilian Portuguese translation by lpeil github\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'pt_br',\n toolbar: {\n default: 'Padrão',\n save: 'Salvar',\n font: 'Fonte',\n formats: 'Formatos',\n fontSize: 'Tamanho',\n bold: 'Negrito',\n underline: 'Sublinhado',\n italic: 'Itálico',\n strike: 'Riscado',\n subscript: 'Subescrito',\n superscript: 'Sobrescrito',\n removeFormat: 'Remover Formatação',\n fontColor: 'Cor da Fonte',\n hiliteColor: 'Cor de destaque',\n indent: 'Recuo',\n outdent: 'Avançar',\n align: 'Alinhar',\n alignLeft: 'Alinhar à esquerda',\n alignRight: 'Alinhar à direita',\n alignCenter: 'Centralizar',\n alignJustify: 'Justificar',\n list: 'Lista',\n orderList: 'Lista ordenada',\n unorderList: 'Lista desordenada',\n horizontalRule: 'Linha horizontal',\n hr_solid: 'sólida',\n hr_dotted: 'pontilhada',\n hr_dashed: 'tracejada',\n table: 'Tabela',\n link: 'Link',\n math: 'Matemática',\n image: 'Imagem',\n video: 'Vídeo',\n audio: 'Áudio',\n fullScreen: 'Tela cheia',\n showBlocks: 'Mostrar blocos',\n codeView: 'Mostrar códigos',\n undo: 'Voltar',\n redo: 'Refazer',\n preview: 'Prever',\n print: 'Imprimir',\n tag_p: 'Paragráfo',\n tag_div: '(DIV) Normal',\n tag_h: 'Cabeçalho',\n tag_blockquote: 'Citar',\n tag_pre: 'Código',\n template: 'Modelo',\n lineHeight: 'Altura da linha',\n paragraphStyle: 'Estilo do parágrafo',\n textStyle: 'Estilo do texto',\n imageGallery: 'Galeria de imagens',\n dir_ltr: 'Esquerda para direita',\n dir_rtl: 'Direita para esquerda',\n mention: 'Menção'\n },\n dialogBox: {\n linkBox: {\n title: 'Inserir link',\n url: 'URL para link',\n text: 'Texto a mostrar',\n newWindowCheck: 'Abrir em nova guia',\n downloadLinkCheck: 'Link para Download',\n bookmark: 'marcar páginas'\n },\n mathBox: {\n title: 'Matemática',\n inputLabel: 'Notação matemática',\n fontSizeLabel: 'Tamanho',\n previewLabel: 'Prever'\n },\n imageBox: {\n title: 'Inserir imagens',\n file: 'Selecionar arquivos',\n url: 'URL da imagem',\n altText: 'Texto alternativo'\n },\n videoBox: {\n title: 'Inserir vídeo',\n file: 'Selecionar arquivos',\n url: 'URL do YouTube/Vimeo'\n },\n audioBox: {\n title: 'Inserir áudio',\n file: 'Selecionar arquivos',\n url: 'URL da áudio'\n },\n browser: {\n tags: 'Tag',\n search: 'Procurar',\n },\n caption: 'Inserir descrição',\n close: 'Fechar',\n submitButton: 'Enviar',\n revertButton: 'Reverter',\n proportion: 'Restringir proporções',\n basic: 'Básico',\n left: 'Esquerda',\n right: 'Direita',\n center: 'Centro',\n width: 'Largura',\n height: 'Altura',\n size: 'Tamanho',\n ratio: 'Proporções'\n },\n controller: {\n edit: 'Editar',\n unlink: 'Remover link',\n remove: 'Remover',\n insertRowAbove: 'Inserir linha acima',\n insertRowBelow: 'Inserir linha abaixo',\n deleteRow: 'Deletar linha',\n insertColumnBefore: 'Inserir coluna antes',\n insertColumnAfter: 'Inserir coluna depois',\n deleteColumn: 'Deletar coluna',\n fixedColumnWidth: 'Largura fixa da coluna',\n resize100: 'Redimensionar para 100%',\n resize75: 'Redimensionar para 75%',\n resize50: 'Redimensionar para 50%',\n resize25: 'Redimensionar para 25%',\n autoSize: 'Tamanho automático',\n mirrorHorizontal: 'Espelho, Horizontal',\n mirrorVertical: 'Espelho, Vertical',\n rotateLeft: 'Girar para esquerda',\n rotateRight: 'Girar para direita',\n maxSize: 'Tam máx',\n minSize: 'Tam mín',\n tableHeader: 'Cabeçalho da tabela',\n mergeCells: 'Mesclar células',\n splitCells: 'Dividir células',\n HorizontalSplit: 'Divisão horizontal',\n VerticalSplit: 'Divisão vertical'\n },\n menu: {\n spaced: 'Espaçado',\n bordered: 'Com borda',\n neon: 'Neon',\n translucent: 'Translúcido',\n shadow: 'Sombreado',\n code: 'Código'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'pt_br', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));\n","/*\n * wysiwyg web editor\n *\n * suneditor.js\n * Copyright 2017 JiHong Lee.\n * MIT license.\n */\n'use strict';\n\n(function (global, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = global.document ?\n factory(global, true) :\n function (w) {\n if (!w.document) {\n throw new Error('SUNEDITOR_LANG a window with a document');\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n}(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {\n const lang = {\n code: 'pl',\n toolbar: {\n default: 'Domyślne',\n save: 'Zapisz',\n font: 'Czcionka',\n formats: 'Formaty',\n fontSize: 'Rozmiar',\n bold: 'Pogrubienie',\n underline: 'Podkreślenie',\n italic: 'Kursywa',\n strike: 'Przekreślenie',\n subscript: 'Indeks dolny',\n superscript: 'Indeks górny',\n removeFormat: 'Wyczyść formatowanie',\n fontColor: 'Kolor tekstu',\n hiliteColor: 'Kolor tła tekstu',\n indent: 'Zwiększ wcięcie',\n outdent: 'Zmniejsz wcięcie',\n align: 'Wyrównaj',\n alignLeft: 'Do lewej',\n alignRight: 'Do prawej',\n alignCenter: 'Do środka',\n alignJustify: 'Wyjustuj',\n list: 'Lista',\n orderList: 'Lista numerowana',\n unorderList: 'Lista wypunktowana',\n horizontalRule: 'Pozioma linia',\n hr_solid: 'Ciągła',\n hr_dotted: 'Kropkowana',\n hr_dashed: 'Przerywana',\n table: 'Tabela',\n link: 'Odnośnik',\n math: 'Matematyczne',\n image: 'Obraz',\n video: 'Wideo',\n audio: 'Audio',\n fullScreen: 'Pełny ekran',\n showBlocks: 'Pokaż bloki',\n codeView: 'Widok kodu',\n undo: 'Cofnij',\n redo: 'Ponów',\n preview: 'Podgląd', \n print: 'Drukuj',\n tag_p: 'Akapit',\n tag_div: 'Blok (DIV)',\n tag_h: 'Nagłówek H',\n tag_blockquote: 'Cytat',\n tag_pre: 'Kod',\n template: 'Szablon',\n lineHeight: 'Odstęp między wierszami',\n paragraphStyle: 'Styl akapitu',\n textStyle: 'Styl tekstu',\n imageGallery: 'Galeria obrazów',\n dir_ltr: 'Od lewej do prawej',\n dir_rtl: 'Od prawej do lewej',\n mention: 'Wzmianka'\n },\n dialogBox: {\n linkBox: {\n title: 'Wstaw odnośnik',\n url: 'Adres URL',\n text: 'Tekst do wyświetlenia',\n newWindowCheck: 'Otwórz w nowym oknie',\n downloadLinkCheck: 'Link do pobrania',\n bookmark: 'Zakładka'\n },\n mathBox: {\n title: 'Matematyczne',\n inputLabel: 'Zapis matematyczny',\n fontSizeLabel: 'Rozmiar czcionki',\n previewLabel: 'Podgląd'\n },\n imageBox: {\n title: 'Wstaw obraz',\n file: 'Wybierz plik',\n url: 'Adres URL obrazka',\n altText: 'Tekst alternatywny'\n },\n videoBox: {\n title: 'Wstaw wideo',\n file: 'Wybierz plik',\n url: 'Adres URL video, np. YouTube/Vimeo'\n },\n audioBox: {\n title: 'Wstaw audio',\n file: 'Wybierz plik',\n url: 'Adres URL audio'\n },\n browser: {\n tags: 'Tagi',\n search: 'Szukaj',\n },\n caption: 'Wstaw opis',\n close: 'Zamknij',\n submitButton: 'Zatwierdź',\n revertButton: 'Cofnij zmiany',\n proportion: 'Ogranicz proporcje',\n basic: 'Bez wyrównania',\n left: 'Do lewej',\n right: 'Do prawej',\n center: 'Do środka',\n width: 'Szerokość',\n height: 'Wysokość',\n size: 'Rozmiar',\n ratio: 'Proporcje'\n },\n controller: {\n edit: 'Edycja',\n unlink: 'Usuń odnośnik',\n remove: 'Usuń',\n insertRowAbove: 'Wstaw wiersz powyżej',\n insertRowBelow: 'Wstaw wiersz poniżej',\n deleteRow: 'Usuń wiersz',\n insertColumnBefore: 'Wstaw kolumnę z lewej',\n insertColumnAfter: 'Wstaw kolumnę z prawej',\n deleteColumn: 'Usuń kolumnę',\n fixedColumnWidth: 'Stała szerokość kolumny',\n resize100: 'Zmień rozmiar - 100%',\n resize75: 'Zmień rozmiar - 75%',\n resize50: 'Zmień rozmiar - 50%',\n resize25: 'Zmień rozmiar - 25%',\n autoSize: 'Rozmiar automatyczny',\n mirrorHorizontal: 'Odbicie lustrzane w poziomie',\n mirrorVertical: 'Odbicie lustrzane w pionie',\n rotateLeft: 'Obróć w lewo',\n rotateRight: 'Obróć w prawo',\n maxSize: 'Maksymalny rozmiar',\n minSize: 'Minimalny rozmiar',\n tableHeader: 'Nagłówek tabeli',\n mergeCells: 'Scal komórki',\n splitCells: 'Podziel komórki',\n HorizontalSplit: 'Podział poziomy',\n VerticalSplit: 'Podział pionowy'\n },\n menu: {\n spaced: 'Rozstawiony',\n bordered: 'Z obwódką',\n neon: 'Neon',\n translucent: 'Półprzezroczysty',\n shadow: 'Cień',\n code: 'Kod'\n }\n };\n\n if (typeof noGlobal === typeof undefined) {\n if (!window.SUNEDITOR_LANG) {\n Object.defineProperty(window, 'SUNEDITOR_LANG', {\n enumerable: true,\n writable: false,\n configurable: false,\n value: {}\n });\n }\n\n Object.defineProperty(window.SUNEDITOR_LANG, 'pl', {\n enumerable: true,\n writable: true,\n configurable: true,\n value: lang\n });\n }\n\n return lang;\n}));","import { Alignment, Direction, Media } from './constants';\nimport { CSSObject } from 'styled-components';\n\nexport enum SortOrder {\n\tASC = 'asc',\n\tDESC = 'desc',\n}\n\nexport type Primitive = string | number | boolean;\nexport type ColumnSortFunction = (a: T, b: T) => number;\nexport type ExpandRowToggled = (expanded: boolean, row: T) => void;\nexport type Format = (row: T, rowIndex: number) => React.ReactNode;\nexport type RowState = ((row: T) => boolean) | null;\nexport type Selector = (row: T, rowIndex?: number) => Primitive;\nexport type SortFunction = (rows: T[], field: Selector, sortDirection: SortOrder) => T[];\nexport type TableRow = Record;\nexport type ComponentProps = Record;\nexport type ExpanderComponentProps = { data: T };\nexport type ExpandableRowsComponent = React.ComponentType>;\nexport type PaginationChangePage = (page: number, totalRows: number) => void;\nexport type PaginationChangeRowsPerPage = (currentRowsPerPage: number, currentPage: number) => void;\nexport type PaginationComponentProps = {\n\trowsPerPage: number;\n\trowCount: number;\n\tcurrentPage: number;\n\tonChangePage: PaginationChangePage;\n\tonChangeRowsPerPage: PaginationChangeRowsPerPage;\n};\nexport type PaginationComponent = React.ComponentType;\n\nexport type TableProps = {\n\tactions?: React.ReactNode | React.ReactNode[];\n\tclassName?: string;\n\tclearSelectedRows?: boolean;\n\tcolumns: TableColumn[];\n\tconditionalRowStyles?: ConditionalStyles[];\n\tcontextActions?: React.ReactNode | React.ReactNode[];\n\tcontextComponent?: React.ReactNode;\n\tcontextMessage?: ContextMessage;\n\tcustomStyles?: TableStyles;\n\tdata: T[];\n\tdefaultSortAsc?: boolean;\n\tdefaultSortFieldId?: string | number | null | undefined;\n\tdense?: boolean;\n\tdirection?: Direction;\n\tdisabled?: boolean;\n\texpandableIcon?: ExpandableIcon;\n\texpandableInheritConditionalStyles?: boolean;\n\texpandableRowDisabled?: RowState;\n\texpandableRowExpanded?: RowState;\n\texpandableRows?: boolean;\n\texpandableRowsComponent?: ExpandableRowsComponent;\n\texpandableRowsComponentProps?: ComponentProps;\n\texpandableRowsHideExpander?: boolean;\n\texpandOnRowClicked?: boolean;\n\texpandOnRowDoubleClicked?: boolean;\n\tfixedHeader?: boolean;\n\tfixedHeaderScrollHeight?: string;\n\thighlightOnHover?: boolean;\n\tkeyField?: string;\n\tnoContextMenu?: boolean;\n\tnoDataComponent?: React.ReactNode;\n\tnoHeader?: boolean;\n\tnoTableHead?: boolean;\n\tonChangePage?: PaginationChangePage;\n\tonChangeRowsPerPage?: PaginationChangeRowsPerPage;\n\tonRowClicked?: (row: T, e: React.MouseEvent) => void;\n\tonRowDoubleClicked?: (row: T, e: React.MouseEvent) => void;\n\tonRowMouseEnter?: (row: T, e: React.MouseEvent) => void;\n\tonRowMouseLeave?: (row: T, e: React.MouseEvent) => void;\n\tonRowExpandToggled?: ExpandRowToggled;\n\tonSelectedRowsChange?: (selected: { allSelected: boolean; selectedCount: number; selectedRows: T[] }) => void;\n\tonSort?: (selectedColumn: TableColumn, sortDirection: SortOrder, sortedRows: T[]) => void;\n\tonColumnOrderChange?: (nextOrder: TableColumn[]) => void;\n\tpagination?: boolean;\n\tpaginationComponent?: PaginationComponent;\n\tpaginationComponentOptions?: PaginationOptions;\n\tpaginationDefaultPage?: number;\n\tpaginationIconFirstPage?: React.ReactNode;\n\tpaginationIconLastPage?: React.ReactNode;\n\tpaginationIconNext?: React.ReactNode;\n\tpaginationIconPrevious?: React.ReactNode;\n\tpaginationPerPage?: number;\n\tpaginationResetDefaultPage?: boolean;\n\tpaginationRowsPerPageOptions?: number[];\n\tpaginationServer?: boolean;\n\tpaginationServerOptions?: PaginationServerOptions;\n\tpaginationTotalRows?: number;\n\tpersistTableHead?: boolean;\n\tpointerOnHover?: boolean;\n\tprogressComponent?: React.ReactNode;\n\tprogressPending?: boolean;\n\tresponsive?: boolean;\n\tselectableRowDisabled?: RowState;\n\tselectableRows?: boolean;\n\tselectableRowsComponent?: 'input' | React.ReactNode;\n\tselectableRowsComponentProps?: ComponentProps;\n\tselectableRowSelected?: RowState;\n\tselectableRowsHighlight?: boolean;\n\tselectableRowsNoSelectAll?: boolean;\n\tselectableRowsVisibleOnly?: boolean;\n\tselectableRowsSingle?: boolean;\n\tsortFunction?: SortFunction | null;\n\tsortIcon?: React.ReactNode;\n\tsortServer?: boolean;\n\tstriped?: boolean;\n\tstyle?: CSSObject;\n\tsubHeader?: React.ReactNode | React.ReactNode[];\n\tsubHeaderAlign?: Alignment;\n\tsubHeaderComponent?: React.ReactNode | React.ReactNode[];\n\tsubHeaderWrap?: boolean;\n\ttheme?: Themes;\n\t/**\n\t * Shows and displays a header with a title\n\t * */\n\ttitle?: string | React.ReactNode;\n};\n\nexport type TableColumnBase = {\n\tallowOverflow?: boolean;\n\tbutton?: boolean;\n\tcenter?: boolean;\n\tcompact?: boolean;\n\treorder?: boolean;\n\tgrow?: number;\n\thide?: number | ((value: number) => CSSObject) | Media;\n\tid?: string | number;\n\tignoreRowClick?: boolean;\n\tmaxWidth?: string;\n\tminWidth?: string;\n\tname?: string | number | React.ReactNode;\n\tomit?: boolean;\n\tright?: boolean;\n\tsortable?: boolean;\n\tstyle?: CSSObject;\n\twidth?: string;\n\twrap?: boolean;\n};\n\nexport interface TableColumn extends TableColumnBase {\n\tname?: string | number | React.ReactNode;\n\tsortField?: string;\n\tcell?: (row: T, rowIndex: number, column: TableColumn, id: string | number) => React.ReactNode;\n\tconditionalCellStyles?: ConditionalStyles[];\n\tformat?: Format | undefined;\n\tselector?: Selector;\n\tsortFunction?: ColumnSortFunction;\n}\n\nexport interface ConditionalStyles {\n\twhen: (row: T) => boolean;\n\tstyle?: CSSObject | ((row: T) => CSSObject);\n\tclassNames?: string[];\n}\n\nexport interface TableStyles {\n\ttable?: {\n\t\tstyle: CSSObject;\n\t};\n\ttableWrapper?: {\n\t\tstyle: CSSObject;\n\t};\n\tresponsiveWrapper?: {\n\t\tstyle: CSSObject;\n\t};\n\theader?: {\n\t\tstyle: CSSObject;\n\t};\n\tsubHeader?: {\n\t\tstyle: CSSObject;\n\t};\n\thead?: {\n\t\tstyle: CSSObject;\n\t};\n\theadRow?: {\n\t\tstyle?: CSSObject;\n\t\tdenseStyle?: CSSObject;\n\t};\n\theadCells?: {\n\t\tstyle?: CSSObject;\n\t\tdraggingStyle?: CSSObject;\n\t};\n\tcontextMenu?: {\n\t\tstyle?: CSSObject;\n\t\tactiveStyle?: CSSObject;\n\t};\n\tcells?: {\n\t\tstyle: CSSObject;\n\t\tdraggingStyle?: CSSObject;\n\t};\n\trows?: {\n\t\tstyle?: CSSObject;\n\t\tselectedHighlightStyle?: CSSObject;\n\t\tdenseStyle?: CSSObject;\n\t\thighlightOnHoverStyle?: CSSObject;\n\t\tstripedStyle?: CSSObject;\n\t};\n\texpanderRow?: {\n\t\tstyle: CSSObject;\n\t};\n\texpanderCell?: {\n\t\tstyle: CSSObject;\n\t};\n\texpanderButton?: {\n\t\tstyle: CSSObject;\n\t};\n\tpagination?: {\n\t\tstyle?: CSSObject;\n\t\tpageButtonsStyle?: CSSObject;\n\t};\n\tnoData?: {\n\t\tstyle: CSSObject;\n\t};\n\tprogress?: {\n\t\tstyle: CSSObject;\n\t};\n}\n\nexport interface PaginationOptions {\n\tnoRowsPerPage?: boolean;\n\trowsPerPageText?: string;\n\trangeSeparatorText?: string;\n\tselectAllRowsItem?: boolean;\n\tselectAllRowsItemText?: string;\n}\n\nexport interface PaginationServerOptions {\n\tpersistSelectedOnSort?: boolean;\n\tpersistSelectedOnPageChange?: boolean;\n}\n\nexport interface ExpandableIcon {\n\tcollapsed: React.ReactNode;\n\texpanded: React.ReactNode;\n}\n\nexport interface ContextMessage {\n\tsingular: string;\n\tplural: string;\n\tmessage?: string;\n}\n\nexport type TableState = {\n\tallSelected: boolean;\n\tcontextMessage: ContextMessage;\n\tselectedCount: number;\n\tselectedRows: T[];\n\tselectedColumn: TableColumn;\n\tsortDirection: SortOrder;\n\tcurrentPage: number;\n\trowsPerPage: number;\n\tselectedRowsFlag: boolean;\n\t/* server-side pagination and server-side sorting will cause selectedRows to change\n\t because of this behavior onSelectedRowsChange useEffect is triggered (by design it should notify if there was a change)\n\t however, when using selectableRowsSingle\n\t*/\n\ttoggleOnSelectedRowsChange: boolean;\n};\n\n// Theming\ntype ThemeText = {\n\tprimary: string;\n\tsecondary: string;\n\tdisabled: string;\n};\n\ntype ThemeBackground = {\n\tdefault: string;\n};\n\ntype ThemeContext = {\n\tbackground: string;\n\ttext: string;\n};\n\ntype ThemeDivider = {\n\tdefault: string;\n};\n\ntype ThemeButton = {\n\tdefault: string;\n\tfocus: string;\n\thover: string;\n\tdisabled: string;\n};\n\ntype ThemeSelected = {\n\tdefault: string;\n\ttext: string;\n};\n\ntype ThemeHighlightOnHover = {\n\tdefault: string;\n\ttext: string;\n};\n\ntype ThemeStriped = {\n\tdefault: string;\n\ttext: string;\n};\n\nexport type Themes = string;\n\nexport interface Theme {\n\ttext: ThemeText;\n\tbackground: ThemeBackground;\n\tcontext: ThemeContext;\n\tdivider: ThemeDivider;\n\tbutton: ThemeButton;\n\tselected: ThemeSelected;\n\thighlightOnHover: ThemeHighlightOnHover;\n\tstriped: ThemeStriped;\n}\n\n// Reducer Actions\nexport interface AllRowsAction {\n\ttype: 'SELECT_ALL_ROWS';\n\tkeyField: string;\n\trows: T[];\n\trowCount: number;\n\tmergeSelections: boolean;\n}\n\nexport interface SingleRowAction {\n\ttype: 'SELECT_SINGLE_ROW';\n\tkeyField: string;\n\trow: T;\n\tisSelected: boolean;\n\trowCount: number;\n\tsingleSelect: boolean;\n}\n\nexport interface MultiRowAction {\n\ttype: 'SELECT_MULTIPLE_ROWS';\n\tkeyField: string;\n\tselectedRows: T[];\n\ttotalRows: number;\n\tmergeSelections: boolean;\n}\n\nexport interface SortAction {\n\ttype: 'SORT_CHANGE';\n\tsortDirection: SortOrder;\n\tselectedColumn: TableColumn;\n\tclearSelectedOnSort: boolean;\n}\n\nexport interface PaginationPageAction {\n\ttype: 'CHANGE_PAGE';\n\tpage: number;\n\tpaginationServer: boolean;\n\tvisibleOnly: boolean;\n\tpersistSelectedOnPageChange: boolean;\n}\n\nexport interface PaginationRowsPerPageAction {\n\ttype: 'CHANGE_ROWS_PER_PAGE';\n\trowsPerPage: number;\n\tpage: number;\n}\n\nexport interface ClearSelectedRowsAction {\n\ttype: 'CLEAR_SELECTED_ROWS';\n\tselectedRowsFlag: boolean;\n}\n\nexport interface ColumnsAction {\n\ttype: 'UPDATE_COLUMNS';\n\tcols: TableColumn[];\n}\n\nexport type Action =\n\t| AllRowsAction\n\t| SingleRowAction\n\t| MultiRowAction\n\t| SortAction\n\t| PaginationPageAction\n\t| PaginationRowsPerPageAction\n\t| ClearSelectedRowsAction;\n","import { CSSObject } from 'styled-components';\nimport { ConditionalStyles, TableColumn, Format, TableRow, Selector, SortOrder, SortFunction } from './types';\n\nexport function prop(obj: T, key: K): T[K] {\n\treturn obj[key];\n}\n\nexport function isEmpty(field: string | number | undefined = ''): boolean {\n\tif (typeof field === 'number') {\n\t\treturn false;\n\t}\n\n\treturn !field || field.length === 0;\n}\n\nexport function sort(\n\trows: T[],\n\tselector: Selector | null | undefined,\n\tdirection: SortOrder,\n\tsortFn?: SortFunction | null,\n): T[] {\n\tif (!selector) {\n\t\treturn rows;\n\t}\n\n\tif (sortFn && typeof sortFn === 'function') {\n\t\t// we must create a new rows reference\n\t\treturn sortFn(rows.slice(0), selector, direction);\n\t}\n\n\treturn rows.slice(0).sort((a: T, b: T) => {\n\t\tconst aValue = selector(a);\n\t\tconst bValue = selector(b);\n\n\t\tif (direction === 'asc') {\n\t\t\tif (aValue < bValue) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\tif (aValue > bValue) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\tif (direction === 'desc') {\n\t\t\tif (aValue > bValue) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\tif (aValue < bValue) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t});\n}\n\nexport function getProperty(\n\trow: T,\n\t// TODO: remove string type in V8\n\tselector: Selector | undefined | null,\n\tformat: Format | undefined | null,\n\trowIndex: number,\n): React.ReactNode {\n\tif (!selector) {\n\t\treturn null;\n\t}\n\n\t// format will override how the selector is displayed but the original dataset is used for sorting\n\tif (format && typeof format === 'function') {\n\t\treturn format(row, rowIndex);\n\t}\n\n\treturn selector(row, rowIndex);\n}\n\nexport function insertItem(array: T[] = [], item: T, index = 0): T[] {\n\treturn [...array.slice(0, index), item, ...array.slice(index)];\n}\n\nexport function removeItem(array: T[] = [], item: T, keyField = 'id'): T[] {\n\tconst newArray = array.slice();\n\tconst outerField = prop(item as TableRow, keyField);\n\n\tif (outerField) {\n\t\tnewArray.splice(\n\t\t\tnewArray.findIndex((a: T) => {\n\t\t\t\tconst innerField = prop(a as TableRow, keyField);\n\n\t\t\t\treturn innerField === outerField;\n\t\t\t}),\n\t\t\t1,\n\t\t);\n\t} else {\n\t\tnewArray.splice(\n\t\t\tnewArray.findIndex(a => a === item),\n\t\t\t1,\n\t\t);\n\t}\n\n\treturn newArray;\n}\n\n// Make sure columns have unique id's\nexport function decorateColumns(columns: TableColumn[]): TableColumn[] {\n\treturn columns.map((column, index) => {\n\t\tconst decoratedColumn: TableColumn = {\n\t\t\t...column,\n\t\t\tsortable: column.sortable || !!column.sortFunction || undefined,\n\t\t};\n\n\t\tif (!column.id) {\n\t\t\tdecoratedColumn.id = index + 1;\n\n\t\t\treturn decoratedColumn;\n\t\t}\n\n\t\treturn decoratedColumn;\n\t});\n}\n\nexport function getSortDirection(ascDirection: boolean | undefined = false): SortOrder {\n\treturn ascDirection ? SortOrder.ASC : SortOrder.DESC;\n}\n\nexport function handleFunctionProps(\n\tobject: { [key: string]: unknown },\n\t...args: unknown[]\n): { [key: string]: unknown } {\n\tlet newObject;\n\n\tObject.keys(object)\n\t\t.map(o => object[o])\n\t\t.forEach((value, index) => {\n\t\t\tconst oldObject = object;\n\n\t\t\tif (typeof value === 'function') {\n\t\t\t\tnewObject = { ...oldObject, [Object.keys(object)[index]]: value(...args) };\n\t\t\t\t// delete oldObject[value];\n\t\t\t}\n\t\t});\n\n\treturn newObject || object;\n}\n\nexport function getNumberOfPages(rowCount: number, rowsPerPage: number): number {\n\treturn Math.ceil(rowCount / rowsPerPage);\n}\n\nexport function recalculatePage(prevPage: number, nextPage: number): number {\n\treturn Math.min(prevPage, nextPage);\n}\n\nexport const noop = (): null => null;\n\nexport function getConditionalStyle(\n\trow: T,\n\tconditionalRowStyles: ConditionalStyles[] = [],\n\tbaseClassNames: string[] = [],\n): { conditionalStyle: CSSObject; classNames: string } {\n\tlet rowStyle = {};\n\tlet classNames: string[] = [...baseClassNames];\n\n\tif (conditionalRowStyles.length) {\n\t\tconditionalRowStyles.forEach(crs => {\n\t\t\tif (!crs.when || typeof crs.when !== 'function') {\n\t\t\t\tthrow new Error('\"when\" must be defined in the conditional style object and must be function');\n\t\t\t}\n\n\t\t\t// evaluate the field and if true return a the style to be applied\n\t\t\tif (crs.when(row)) {\n\t\t\t\trowStyle = crs.style || {};\n\n\t\t\t\tif (crs.classNames) {\n\t\t\t\t\tclassNames = [...classNames, ...crs.classNames];\n\t\t\t\t}\n\n\t\t\t\tif (typeof crs.style === 'function') {\n\t\t\t\t\trowStyle = crs.style(row) || {};\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\treturn { conditionalStyle: rowStyle, classNames: classNames.join(' ') };\n}\n\nexport function isRowSelected(row: T, selectedRows: T[] = [], keyField = 'id'): boolean {\n\t// cast row as TableRow because the property is unknown in advance therefore, typescript will throw an error\n\tconst outerField = prop(row as TableRow, keyField);\n\n\tif (outerField) {\n\t\treturn selectedRows.some(r => {\n\t\t\tconst innerField = prop(r as TableRow, keyField);\n\n\t\t\treturn innerField === outerField;\n\t\t});\n\t}\n\n\treturn selectedRows.some(r => r === row);\n}\n\nexport function isOdd(num: number): boolean {\n\treturn num % 2 === 0;\n}\n\nexport function findColumnIndexById(columns: TableColumn[], id: string | undefined): number {\n\tif (!id) {\n\t\treturn -1;\n\t}\n\n\treturn columns.findIndex(c => {\n\t\treturn equalizeId(c.id, id);\n\t});\n}\n\nexport function equalizeId(a: string | number | undefined, b: string | number | undefined): boolean {\n\treturn a == b;\n}\n","import { insertItem, isRowSelected, removeItem } from './util';\nimport { Action, TableState } from './types';\n\nexport function tableReducer(state: TableState, action: Action): TableState {\n\tconst toggleOnSelectedRowsChange = !state.toggleOnSelectedRowsChange;\n\n\tswitch (action.type) {\n\t\tcase 'SELECT_ALL_ROWS': {\n\t\t\tconst { keyField, rows, rowCount, mergeSelections } = action;\n\t\t\tconst allChecked = !state.allSelected;\n\t\t\tconst toggleOnSelectedRowsChange = !state.toggleOnSelectedRowsChange;\n\n\t\t\tif (mergeSelections) {\n\t\t\t\tconst selections = allChecked\n\t\t\t\t\t? [...state.selectedRows, ...rows.filter(row => !isRowSelected(row, state.selectedRows, keyField))]\n\t\t\t\t\t: state.selectedRows.filter(row => !isRowSelected(row, rows, keyField));\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tallSelected: allChecked,\n\t\t\t\t\tselectedCount: selections.length,\n\t\t\t\t\tselectedRows: selections,\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tallSelected: allChecked,\n\t\t\t\tselectedCount: allChecked ? rowCount : 0,\n\t\t\t\tselectedRows: allChecked ? rows : [],\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SELECT_SINGLE_ROW': {\n\t\t\tconst { keyField, row, isSelected, rowCount, singleSelect } = action;\n\n\t\t\t// handle single select mode\n\t\t\tif (singleSelect) {\n\t\t\t\tif (isSelected) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\t\tallSelected: false,\n\t\t\t\t\t\tselectedRows: [],\n\t\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: 1,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: [row],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// handle multi select mode\n\t\t\tif (isSelected) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: state.selectedRows.length > 0 ? state.selectedRows.length - 1 : 0,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: removeItem(state.selectedRows, row, keyField),\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedCount: state.selectedRows.length + 1,\n\t\t\t\tallSelected: state.selectedRows.length + 1 === rowCount,\n\t\t\t\tselectedRows: insertItem(state.selectedRows, row),\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SELECT_MULTIPLE_ROWS': {\n\t\t\tconst { keyField, selectedRows, totalRows, mergeSelections } = action;\n\n\t\t\tif (mergeSelections) {\n\t\t\t\tconst selections = [\n\t\t\t\t\t...state.selectedRows,\n\t\t\t\t\t...selectedRows.filter(row => !isRowSelected(row, state.selectedRows, keyField)),\n\t\t\t\t];\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: selections.length,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: selections,\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedCount: selectedRows.length,\n\t\t\t\tallSelected: selectedRows.length === totalRows,\n\t\t\t\tselectedRows,\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'CLEAR_SELECTED_ROWS': {\n\t\t\tconst { selectedRowsFlag } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tallSelected: false,\n\t\t\t\tselectedCount: 0,\n\t\t\t\tselectedRows: [],\n\t\t\t\tselectedRowsFlag,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SORT_CHANGE': {\n\t\t\tconst { sortDirection, selectedColumn, clearSelectedOnSort } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedColumn,\n\t\t\t\tsortDirection,\n\t\t\t\tcurrentPage: 1,\n\t\t\t\t// when using server-side paging reset selected row counts when sorting\n\t\t\t\t...(clearSelectedOnSort && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\tselectedRows: [],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t}),\n\t\t\t};\n\t\t}\n\n\t\tcase 'CHANGE_PAGE': {\n\t\t\tconst { page, paginationServer, visibleOnly, persistSelectedOnPageChange } = action;\n\t\t\tconst mergeSelections = paginationServer && persistSelectedOnPageChange;\n\t\t\tconst clearSelectedOnPage = (paginationServer && !persistSelectedOnPageChange) || visibleOnly;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrentPage: page,\n\t\t\t\t...(mergeSelections && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t}),\n\t\t\t\t// when using server-side paging reset selected row counts\n\t\t\t\t...(clearSelectedOnPage && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\tselectedRows: [],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t}),\n\t\t\t};\n\t\t}\n\n\t\tcase 'CHANGE_ROWS_PER_PAGE': {\n\t\t\tconst { rowsPerPage, page } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrentPage: page,\n\t\t\t\trowsPerPage,\n\t\t\t};\n\t\t}\n\t}\n}\n","import styled, { css } from 'styled-components';\n\nconst disabledCSS = css`\n\tpointer-events: none;\n\topacity: 0.4;\n`;\n\nconst TableStyle = styled.div<{\n\tdisabled?: boolean;\n}>`\n\tposition: relative;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\theight: 100%;\n\tmax-width: 100%;\n\t${({ disabled }) => disabled && disabledCSS};\n\t${({ theme }) => theme.table.style};\n`;\n\nexport default TableStyle;\n","import styled, { css } from 'styled-components';\n\nconst fixedCSS = css`\n\tposition: sticky;\n\tposition: -webkit-sticky; /* Safari */\n\ttop: 0;\n\tz-index: 1;\n`;\n\nconst Head = styled.div<{\n\t$fixedHeader?: boolean;\n}>`\n\tdisplay: flex;\n\twidth: 100%;\n\t${({ $fixedHeader }) => $fixedHeader && fixedCSS};\n\t${({ theme }) => theme.head.style};\n`;\n\nexport default Head;\n","import styled from 'styled-components';\n\nconst HeadRow = styled.div<{\n\t$dense?: boolean;\n\tdisabled?: boolean;\n}>`\n\tdisplay: flex;\n\talign-items: stretch;\n\twidth: 100%;\n\t${({ theme }) => theme.headRow.style};\n\t${({ $dense, theme }) => $dense && theme.headRow.denseStyle};\n`;\n\nexport default HeadRow;\n","import { css, CSSObject, RuleSet } from 'styled-components';\n\nexport const SMALL = 599;\nexport const MEDIUM = 959;\nexport const LARGE = 1280;\n\nexport const media = {\n\tsm: (literals: TemplateStringsArray, ...args: CSSObject[]): RuleSet => css`\n\t\t@media screen and (max-width: ${SMALL}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tmd: (literals: TemplateStringsArray, ...args: CSSObject[]): RuleSet => css`\n\t\t@media screen and (max-width: ${MEDIUM}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tlg: (literals: TemplateStringsArray, ...args: CSSObject[]): RuleSet => css`\n\t\t@media screen and (max-width: ${LARGE}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tcustom:\n\t\t(value: number) =>\n\t\t(literals: TemplateStringsArray, ...args: CSSObject[]): RuleSet => css`\n\t\t\t@media screen and (max-width: ${value}px) {\n\t\t\t\t${css(literals, ...args)}\n\t\t\t}\n\t\t`,\n};\n","import styled, { css } from 'styled-components';\nimport { media } from './media';\nimport { TableColumnBase } from './types';\n\nexport const CellBase = styled.div<{\n\t$headCell?: boolean;\n\t$noPadding?: boolean;\n}>`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tline-height: normal;\n\t${({ theme, $headCell }) => theme[$headCell ? 'headCells' : 'cells'].style};\n\t${({ $noPadding }) => $noPadding && 'padding: 0'};\n`;\n\nexport type CellProps = Pick<\n\tTableColumnBase,\n\t'button' | 'grow' | 'maxWidth' | 'minWidth' | 'width' | 'right' | 'center' | 'compact' | 'hide' | 'allowOverflow'\n>;\n\n// Flex calculations\nexport const CellExtended = styled(CellBase)`\n\tflex-grow: ${({ button, grow }) => (grow === 0 || button ? 0 : grow || 1)};\n\tflex-shrink: 0;\n\tflex-basis: 0;\n\tmax-width: ${({ maxWidth }) => maxWidth || '100%'};\n\tmin-width: ${({ minWidth }) => minWidth || '100px'};\n\t${({ width }) =>\n\t\twidth &&\n\t\tcss`\n\t\t\tmin-width: ${width};\n\t\t\tmax-width: ${width};\n\t\t`};\n\t${({ right }) => right && 'justify-content: flex-end'};\n\t${({ button, center }) => (center || button) && 'justify-content: center'};\n\t${({ compact, button }) => (compact || button) && 'padding: 0'};\n\n\t/* handle hiding cells */\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'sm' &&\n\t\tmedia.sm`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'md' &&\n\t\tmedia.md`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'lg' &&\n\t\tmedia.lg`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\tNumber.isInteger(hide) &&\n\t\tmedia.custom(hide as number)`\n display: none;\n `};\n`;\n","import * as React from 'react';\nimport styled, { css, CSSObject } from 'styled-components';\nimport { CellExtended } from './Cell';\nimport { getProperty, getConditionalStyle } from './util';\nimport { TableColumn } from './types';\n\ninterface CellStyleProps {\n\t$renderAsCell: boolean | undefined;\n\t$wrapCell: boolean | undefined;\n\t$allowOverflow: boolean | undefined;\n\t$cellStyle: CSSObject | undefined;\n\t$isDragging: boolean;\n}\n\nconst overflowCSS = css`\n\tdiv:first-child {\n\t\twhite-space: ${({ $wrapCell }) => ($wrapCell ? 'normal' : 'nowrap')};\n\t\toverflow: ${({ $allowOverflow }) => ($allowOverflow ? 'visible' : 'hidden')};\n\t\ttext-overflow: ellipsis;\n\t}\n`;\n\nconst CellStyle = styled(CellExtended).attrs(props => ({\n\tstyle: props.style,\n}))`\n\t${({ $renderAsCell }) => !$renderAsCell && overflowCSS};\n\t${({ theme, $isDragging }) => $isDragging && theme.cells.draggingStyle};\n\t${({ $cellStyle }) => $cellStyle};\n`;\n\ninterface CellProps {\n\tid: string;\n\tdataTag: string | null;\n\tcolumn: TableColumn;\n\trow: T;\n\trowIndex: number;\n\tisDragging: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nfunction Cell({\n\tid,\n\tcolumn,\n\trow,\n\trowIndex,\n\tdataTag,\n\tisDragging,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: CellProps): JSX.Element {\n\tconst { conditionalStyle, classNames } = getConditionalStyle(row, column.conditionalCellStyles, ['rdt_TableCell']);\n\n\treturn (\n\t\t\n\t\t\t{!column.cell &&
      {getProperty(row, column.selector, column.format, rowIndex)}
      }\n\t\t\t{column.cell && column.cell(row, rowIndex, column, id)}\n\t\t\n\t);\n}\n\nexport default React.memo(Cell) as typeof Cell;\n","import * as React from 'react';\nimport { handleFunctionProps, noop } from './util';\n\nconst defaultComponentName = 'input';\n\nconst calculateBaseStyle = (disabled: boolean) => ({\n\tfontSize: '18px',\n\t...(!disabled && { cursor: 'pointer' }),\n\tpadding: 0,\n\tmarginTop: '1px',\n\tverticalAlign: 'middle',\n\tposition: 'relative',\n});\n\ninterface CheckboxProps {\n\tname: string;\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tcomponent?: any;\n\tcomponentOptions?: { [key: string]: unknown };\n\tindeterminate?: boolean;\n\tchecked?: boolean;\n\tdisabled?: boolean;\n\tonClick?: (e: React.MouseEvent) => void;\n}\n\nfunction Checkbox({\n\tname,\n\tcomponent = defaultComponentName,\n\tcomponentOptions = { style: {} },\n\tindeterminate = false,\n\tchecked = false,\n\tdisabled = false,\n\tonClick = noop,\n}: CheckboxProps): JSX.Element {\n\tconst setCheckboxRef = (checkbox: HTMLInputElement) => {\n\t\tif (checkbox) {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tcheckbox.indeterminate = indeterminate;\n\t\t}\n\t};\n\n\tconst TagName = component;\n\tconst baseStyle = TagName !== defaultComponentName ? componentOptions.style : calculateBaseStyle(disabled);\n\tconst resolvedComponentOptions = React.useMemo(\n\t\t() => handleFunctionProps(componentOptions, indeterminate),\n\t\t[componentOptions, indeterminate],\n\t);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default React.memo(Checkbox);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport Checkbox from './Checkbox';\nimport { RowState, SingleRowAction, ComponentProps } from './types';\n\nconst TableCellCheckboxStyle = styled(CellBase)`\n\tflex: 0 0 48px;\n\tmin-width: 48px;\n\tjustify-content: center;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n`;\n\ntype TableCellCheckboxProps = {\n\tname: string;\n\tkeyField: string;\n\trow: T;\n\trowCount: number;\n\tselected: boolean;\n\tselectableRowsComponent: 'input' | React.ReactNode;\n\tselectableRowsComponentProps: ComponentProps;\n\tselectableRowsSingle: boolean;\n\tselectableRowDisabled: RowState;\n\tonSelectedRow: (action: SingleRowAction) => void;\n};\n\nfunction TableCellCheckbox({\n\tname,\n\tkeyField,\n\trow,\n\trowCount,\n\tselected,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowsSingle,\n\tselectableRowDisabled,\n\tonSelectedRow,\n}: TableCellCheckboxProps): JSX.Element {\n\tconst disabled = !!(selectableRowDisabled && selectableRowDisabled(row));\n\n\tconst handleOnRowSelected = () => {\n\t\tonSelectedRow({\n\t\t\ttype: 'SELECT_SINGLE_ROW',\n\t\t\trow,\n\t\t\tisSelected: selected,\n\t\t\tkeyField,\n\t\t\trowCount,\n\t\t\tsingleSelect: selectableRowsSingle,\n\t\t});\n\t};\n\n\treturn (\n\t\t e.stopPropagation()} className=\"rdt_TableCell\" $noPadding>\n\t\t\t\n\t\t\n\t);\n}\n\nexport default TableCellCheckbox;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { ExpandableIcon } from './types';\n\nconst ButtonStyle = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n\tborder: none;\n\tbackground-color: transparent;\n\t${({ theme }) => theme.expanderButton.style};\n`;\n\ntype ExpanderButtonProps = {\n\tdisabled?: boolean;\n\texpanded?: boolean;\n\texpandableIcon: ExpandableIcon;\n\tid: string | number;\n\trow: T;\n\tonToggled?: (row: T) => void;\n};\n\nfunction ExpanderButton({\n\tdisabled = false,\n\texpanded = false,\n\texpandableIcon,\n\tid,\n\trow,\n\tonToggled,\n}: ExpanderButtonProps): JSX.Element {\n\tconst icon = expanded ? expandableIcon.expanded : expandableIcon.collapsed;\n\tconst handleToggle = () => onToggled && onToggled(row);\n\n\treturn (\n\t\t\n\t\t\t{icon}\n\t\t\n\t);\n}\n\nexport default ExpanderButton;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport ExpanderButton from './ExpanderButton';\nimport { ExpandableIcon } from './types';\n\nconst CellExpanderStyle = styled(CellBase)`\n\twhite-space: nowrap;\n\tfont-weight: 400;\n\tmin-width: 48px;\n\t${({ theme }) => theme.expanderCell.style};\n`;\n\ntype CellExpanderProps = {\n\tdisabled: boolean;\n\texpanded: boolean;\n\texpandableIcon: ExpandableIcon;\n\tid: string | number;\n\trow: T;\n\tonToggled: (row: T) => void;\n};\n\nfunction CellExpander({\n\trow,\n\texpanded = false,\n\texpandableIcon,\n\tid,\n\tonToggled,\n\tdisabled = false,\n}: CellExpanderProps): JSX.Element {\n\treturn (\n\t\t e.stopPropagation()} $noPadding>\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CellExpander;\n","import * as React from 'react';\nimport styled, { CSSObject } from 'styled-components';\nimport { ComponentProps, ExpandableRowsComponent } from './types';\n\nconst ExpanderRowStyle = styled.div<{\n\t$extendedRowStyle: CSSObject;\n}>`\n\twidth: 100%;\n\tbox-sizing: border-box;\n\t${({ theme }) => theme.expanderRow.style};\n\t${({ $extendedRowStyle }) => $extendedRowStyle};\n`;\n\ntype ExpanderRowProps = {\n\tdata: T;\n\tExpanderComponent: ExpandableRowsComponent;\n\textendedRowStyle: CSSObject;\n\textendedClassNames: string;\n\texpanderComponentProps: ComponentProps;\n};\n\nfunction ExpanderRow({\n\tdata,\n\tExpanderComponent,\n\texpanderComponentProps,\n\textendedRowStyle,\n\textendedClassNames,\n}: ExpanderRowProps): JSX.Element {\n\t// we need to strip of rdt_TableRow from extendedClassNames\n\tconst classNamesSplit = extendedClassNames.split(' ').filter(c => c !== 'rdt_TableRow');\n\tconst classNames = ['rdt_ExpanderRow', ...classNamesSplit].join(' ');\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default React.memo(ExpanderRow) as typeof ExpanderRow;\n","export const STOP_PROP_TAG = 'allowRowEvents';\n\nexport enum Direction {\n\tLTR = 'ltr',\n\tRTL = 'rtl',\n\tAUTO = 'auto',\n}\n\nexport enum Alignment {\n\tLEFT = 'left',\n\tRIGHT = 'right',\n\tCENTER = 'center',\n}\n\nexport enum Media {\n\tSM = 'sm',\n\tMD = 'md',\n\tLG = 'lg',\n}\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport TableCell from './TableCell';\nimport TableCellCheckbox from './TableCellCheckbox';\nimport TableCellExpander from './TableCellExpander';\nimport ExpanderRow from './ExpanderRow';\nimport { prop, equalizeId, getConditionalStyle, isOdd, noop } from './util';\nimport { STOP_PROP_TAG } from './constants';\nimport { TableRow, SingleRowAction, TableProps } from './types';\nimport { CSSObject } from 'styled-components';\n\nconst highlightCSS = css<{\n\t$highlightOnHover?: boolean;\n}>`\n\t&:hover {\n\t\t${({ $highlightOnHover, theme }) => $highlightOnHover && theme.rows.highlightOnHoverStyle};\n\t}\n`;\n\nconst pointerCSS = css`\n\t&:hover {\n\t\tcursor: pointer;\n\t}\n`;\n\nconst TableRowStyle = styled.div.attrs(props => ({\n\tstyle: props.style,\n}))<{\n\t$dense?: boolean;\n\t$highlightOnHover?: boolean;\n\t$pointerOnHover?: boolean;\n\t$selected?: boolean;\n\t$striped?: boolean;\n\t$conditionalStyle?: CSSObject;\n}>`\n\tdisplay: flex;\n\talign-items: stretch;\n\talign-content: stretch;\n\twidth: 100%;\n\tbox-sizing: border-box;\n\t${({ theme }) => theme.rows.style};\n\t${({ $dense, theme }) => $dense && theme.rows.denseStyle};\n\t${({ $striped, theme }) => $striped && theme.rows.stripedStyle};\n\t${({ $highlightOnHover }) => $highlightOnHover && highlightCSS};\n\t${({ $pointerOnHover }) => $pointerOnHover && pointerCSS};\n\t${({ $selected, theme }) => $selected && theme.rows.selectedHighlightStyle};\n\t${({ $conditionalStyle }) => $conditionalStyle};\n`;\n\ntype DProps = Pick<\n\tTableProps,\n\t| 'columns'\n\t| 'conditionalRowStyles'\n\t| 'dense'\n\t| 'expandableIcon'\n\t| 'expandableRows'\n\t| 'expandableRowsComponent'\n\t| 'expandableRowsComponentProps'\n\t| 'expandableRowsHideExpander'\n\t| 'expandOnRowClicked'\n\t| 'expandOnRowDoubleClicked'\n\t| 'highlightOnHover'\n\t| 'expandableInheritConditionalStyles'\n\t| 'keyField'\n\t| 'onRowClicked'\n\t| 'onRowDoubleClicked'\n\t| 'onRowMouseEnter'\n\t| 'onRowMouseLeave'\n\t| 'onRowExpandToggled'\n\t| 'pointerOnHover'\n\t| 'selectableRowDisabled'\n\t| 'selectableRows'\n\t| 'selectableRowsComponent'\n\t| 'selectableRowsComponentProps'\n\t| 'selectableRowsHighlight'\n\t| 'selectableRowsSingle'\n\t| 'striped'\n>;\n\ninterface TableRowProps extends Required> {\n\tdraggingColumnId: number | string;\n\tdefaultExpanded?: boolean;\n\tdefaultExpanderDisabled: boolean;\n\tid: string | number;\n\tonSelectedRow: (action: SingleRowAction) => void;\n\tpointerOnHover: boolean;\n\trow: T;\n\trowCount: number;\n\trowIndex: number;\n\tselected: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nfunction Row({\n\tcolumns = [],\n\tconditionalRowStyles = [],\n\tdefaultExpanded = false,\n\tdefaultExpanderDisabled = false,\n\tdense = false,\n\texpandableIcon,\n\texpandableRows = false,\n\texpandableRowsComponent,\n\texpandableRowsComponentProps,\n\texpandableRowsHideExpander,\n\texpandOnRowClicked = false,\n\texpandOnRowDoubleClicked = false,\n\thighlightOnHover = false,\n\tid,\n\texpandableInheritConditionalStyles,\n\tkeyField,\n\tonRowClicked = noop,\n\tonRowDoubleClicked = noop,\n\tonRowMouseEnter = noop,\n\tonRowMouseLeave = noop,\n\tonRowExpandToggled = noop,\n\tonSelectedRow = noop,\n\tpointerOnHover = false,\n\trow,\n\trowCount,\n\trowIndex,\n\tselectableRowDisabled = null,\n\tselectableRows = false,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowsHighlight = false,\n\tselectableRowsSingle = false,\n\tselected,\n\tstriped = false,\n\tdraggingColumnId,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: TableRowProps): JSX.Element {\n\tconst [expanded, setExpanded] = React.useState(defaultExpanded);\n\n\tReact.useEffect(() => {\n\t\tsetExpanded(defaultExpanded);\n\t}, [defaultExpanded]);\n\n\tconst handleExpanded = React.useCallback(() => {\n\t\tsetExpanded(!expanded);\n\t\tonRowExpandToggled(!expanded, row);\n\t}, [expanded, onRowExpandToggled, row]);\n\n\tconst showPointer = pointerOnHover || (expandableRows && (expandOnRowClicked || expandOnRowDoubleClicked));\n\n\tconst handleRowClick = React.useCallback(\n\t\t(e: React.MouseEvent) => {\n\t\t\t// use event delegation allow events to propagate only when the element with data-tag STOP_PROP_TAG is present\n\t\t\tconst target = e.target as HTMLDivElement;\n\n\t\t\tif (target.getAttribute('data-tag') === STOP_PROP_TAG) {\n\t\t\t\tonRowClicked(row, e);\n\n\t\t\t\tif (!defaultExpanderDisabled && expandableRows && expandOnRowClicked) {\n\t\t\t\t\thandleExpanded();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[defaultExpanderDisabled, expandOnRowClicked, expandableRows, handleExpanded, onRowClicked, row],\n\t);\n\n\tconst handleRowDoubleClick = React.useCallback(\n\t\t(e: React.MouseEvent) => {\n\t\t\tconst target = e.target as HTMLDivElement;\n\n\t\t\tif (target.getAttribute('data-tag') === STOP_PROP_TAG) {\n\t\t\t\tonRowDoubleClicked(row, e);\n\t\t\t\tif (!defaultExpanderDisabled && expandableRows && expandOnRowDoubleClicked) {\n\t\t\t\t\thandleExpanded();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[defaultExpanderDisabled, expandOnRowDoubleClicked, expandableRows, handleExpanded, onRowDoubleClicked, row],\n\t);\n\n\tconst handleRowMouseEnter = React.useCallback(\n\t\t(e: React.MouseEvent) => {\n\t\t\tonRowMouseEnter(row, e);\n\t\t},\n\t\t[onRowMouseEnter, row],\n\t);\n\n\tconst handleRowMouseLeave = React.useCallback(\n\t\t(e: React.MouseEvent) => {\n\t\t\tonRowMouseLeave(row, e);\n\t\t},\n\t\t[onRowMouseLeave, row],\n\t);\n\n\tconst rowKeyField = prop(row as TableRow, keyField);\n\tconst { conditionalStyle, classNames } = getConditionalStyle(row, conditionalRowStyles, ['rdt_TableRow']);\n\tconst highlightSelected = selectableRowsHighlight && selected;\n\tconst inheritStyles = expandableInheritConditionalStyles ? conditionalStyle : {};\n\tconst isStriped = striped && isOdd(rowIndex);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{selectableRows && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{expandableRows && !expandableRowsHideExpander && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{columns.map(column => {\n\t\t\t\t\tif (column.omit) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\n\t\t\t{expandableRows && expanded && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport default Row;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { SortOrder } from '../DataTable/types';\n\nconst Icon = styled.span<{\n\t$sortActive: boolean;\n\t$sortDirection: SortOrder;\n}>`\n\tpadding: 2px;\n\tcolor: inherit;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\t${({ $sortActive }) => ($sortActive ? 'opacity: 1' : 'opacity: 0')};\n\t${({ $sortDirection }) => $sortDirection === 'desc' && 'transform: rotate(180deg)'};\n`;\n\ninterface NativeSortIconProps {\n\tsortActive: boolean;\n\tsortDirection: SortOrder;\n}\n\nconst NativeSortIcon: React.FC = ({ sortActive, sortDirection }) => (\n\t\n\t\t▲\n\t\n);\n\nexport default NativeSortIcon;\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { CellExtended, CellProps } from './Cell';\nimport NativeSortIcon from '../icons/NativeSortIcon';\nimport { equalizeId } from './util';\nimport { TableColumn, SortAction, SortOrder } from './types';\n\ninterface ColumnStyleProps extends CellProps {\n\t$isDragging?: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nconst ColumnStyled = styled(CellExtended)`\n\t${({ button }) => button && 'text-align: center'};\n\t${({ theme, $isDragging }) => $isDragging && theme.headCells.draggingStyle};\n`;\n\ninterface ColumnSortableProps {\n\tdisabled: boolean;\n\t$sortActive: boolean;\n}\n\nconst sortableCSS = css`\n\tcursor: pointer;\n\tspan.__rdt_custom_sort_icon__ {\n\t\ti,\n\t\tsvg {\n\t\t\ttransform: 'translate3d(0, 0, 0)';\n\t\t\t${({ $sortActive }) => ($sortActive ? 'opacity: 1' : 'opacity: 0')};\n\t\t\tcolor: inherit;\n\t\t\tfont-size: 18px;\n\t\t\theight: 18px;\n\t\t\twidth: 18px;\n\t\t\tbackface-visibility: hidden;\n\t\t\ttransform-style: preserve-3d;\n\t\t\ttransition-duration: 95ms;\n\t\t\ttransition-property: transform;\n\t\t}\n\n\t\t&.asc i,\n\t\t&.asc svg {\n\t\t\ttransform: rotate(180deg);\n\t\t}\n\t}\n\n\t${({ $sortActive }) =>\n\t\t!$sortActive &&\n\t\tcss`\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\topacity: 0.7;\n\n\t\t\t\tspan,\n\t\t\t\tspan.__rdt_custom_sort_icon__ * {\n\t\t\t\t\topacity: 0.7;\n\t\t\t\t}\n\t\t\t}\n\t\t`};\n`;\n\nconst ColumnSortable = styled.div`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: inherit;\n\theight: 100%;\n\twidth: 100%;\n\toutline: none;\n\tuser-select: none;\n\toverflow: hidden;\n\t${({ disabled }) => !disabled && sortableCSS};\n`;\n\nconst ColumnText = styled.div`\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n`;\n\ntype TableColProps = {\n\tcolumn: TableColumn;\n\tdisabled: boolean;\n\tdraggingColumnId?: string | number;\n\tsortIcon?: React.ReactNode;\n\tpagination: boolean;\n\tpaginationServer: boolean;\n\tpersistSelectedOnSort: boolean;\n\tselectedColumn: TableColumn;\n\tsortDirection: SortOrder;\n\tsortServer: boolean;\n\tselectableRowsVisibleOnly: boolean;\n\tonSort: (action: SortAction) => void;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n};\n\nfunction TableCol({\n\tcolumn,\n\tdisabled,\n\tdraggingColumnId,\n\tselectedColumn = {},\n\tsortDirection,\n\tsortIcon,\n\tsortServer,\n\tpagination,\n\tpaginationServer,\n\tpersistSelectedOnSort,\n\tselectableRowsVisibleOnly,\n\tonSort,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: TableColProps): JSX.Element | null {\n\tReact.useEffect(() => {\n\t\tif (typeof column.selector === 'string') {\n\t\t\tconsole.error(\n\t\t\t\t`Warning: ${column.selector} is a string based column selector which has been deprecated as of v7 and will be removed in v8. Instead, use a selector function e.g. row => row[field]...`,\n\t\t\t);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tconst [showTooltip, setShowTooltip] = React.useState(false);\n\tconst columnRef = React.useRef(null);\n\n\tReact.useEffect(() => {\n\t\tif (columnRef.current) {\n\t\t\tsetShowTooltip(columnRef.current.scrollWidth > columnRef.current.clientWidth);\n\t\t}\n\t}, [showTooltip]);\n\n\tif (column.omit) {\n\t\treturn null;\n\t}\n\n\tconst handleSortChange = () => {\n\t\tif (!column.sortable && !column.selector) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet direction = sortDirection;\n\n\t\tif (equalizeId(selectedColumn.id, column.id)) {\n\t\t\tdirection = sortDirection === SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC;\n\t\t}\n\n\t\tonSort({\n\t\t\ttype: 'SORT_CHANGE',\n\t\t\tsortDirection: direction,\n\t\t\tselectedColumn: column,\n\t\t\tclearSelectedOnSort:\n\t\t\t\t(pagination && paginationServer && !persistSelectedOnSort) || sortServer || selectableRowsVisibleOnly,\n\t\t});\n\t};\n\n\tconst handleKeyPress = (event: React.KeyboardEvent) => {\n\t\tif (event.key === 'Enter') {\n\t\t\thandleSortChange();\n\t\t}\n\t};\n\n\tconst renderNativeSortIcon = (sortActive: boolean) => (\n\t\t\n\t);\n\n\tconst renderCustomSortIcon = () => (\n\t\t{sortIcon}\n\t);\n\n\tconst sortActive = !!(column.sortable && equalizeId(selectedColumn.id, column.id));\n\tconst disableSort = !column.sortable || disabled;\n\tconst nativeSortIconLeft = column.sortable && !sortIcon && !column.right;\n\tconst nativeSortIconRight = column.sortable && !sortIcon && column.right;\n\tconst customSortIconLeft = column.sortable && sortIcon && !column.right;\n\tconst customSortIconRight = column.sortable && sortIcon && column.right;\n\n\treturn (\n\t\t\n\t\t\t{column.name && (\n\t\t\t\t\n\t\t\t\t\t{!disableSort && customSortIconRight && renderCustomSortIcon()}\n\t\t\t\t\t{!disableSort && nativeSortIconRight && renderNativeSortIcon(sortActive)}\n\n\t\t\t\t\t{typeof column.name === 'string' ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{column.name}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\tcolumn.name\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!disableSort && customSortIconLeft && renderCustomSortIcon()}\n\t\t\t\t\t{!disableSort && nativeSortIconLeft && renderNativeSortIcon(sortActive)}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport default React.memo(TableCol) as typeof TableCol;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport Checkbox from './Checkbox';\nimport { AllRowsAction, RowState } from './types';\n\nconst ColumnStyle = styled(CellBase)`\n\tflex: 0 0 48px;\n\tjustify-content: center;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n\tfont-size: unset;\n`;\n\ninterface ColumnCheckboxProps {\n\theadCell?: boolean;\n\tselectableRowsComponent: 'input' | React.ReactNode;\n\tselectableRowsComponentProps: Record;\n\tselectableRowDisabled: RowState;\n\tkeyField: string;\n\tmergeSelections: boolean;\n\trowData: T[];\n\tselectedRows: T[];\n\tallSelected: boolean;\n\tonSelectAllRows: (action: AllRowsAction) => void;\n}\n\nfunction ColumnCheckbox({\n\theadCell = true,\n\trowData,\n\tkeyField,\n\tallSelected,\n\tmergeSelections,\n\tselectedRows,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowDisabled,\n\tonSelectAllRows,\n}: ColumnCheckboxProps): JSX.Element {\n\tconst indeterminate = selectedRows.length > 0 && !allSelected;\n\tconst rows = selectableRowDisabled ? rowData.filter((row: T) => !selectableRowDisabled(row)) : rowData;\n\tconst isDisabled = rows.length === 0;\n\t// The row count should subtract rows that are disabled\n\tconst rowCount = Math.min(rowData.length, rows.length);\n\n\tconst handleSelectAll = () => {\n\t\tonSelectAllRows({\n\t\t\ttype: 'SELECT_ALL_ROWS',\n\t\t\trows,\n\t\t\trowCount,\n\t\t\tmergeSelections,\n\t\t\tkeyField,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ColumnCheckbox;\n","import * as React from 'react';\nimport { Direction } from '../DataTable/constants';\n\nfunction useRTL(direction: Direction = Direction.AUTO): boolean {\n\tconst isClient = typeof window === 'object';\n\n\tconst [isRTL, setIsRTL] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tif (!isClient) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'auto') {\n\t\t\tconst canUse = !!(window.document && window.document.createElement);\n\t\t\tconst bodyRTL = document.getElementsByTagName('BODY')[0];\n\t\t\tconst htmlTRL = document.getElementsByTagName('HTML')[0];\n\t\t\tconst hasRTL = bodyRTL.dir === 'rtl' || htmlTRL.dir === 'rtl';\n\n\t\t\tsetIsRTL(canUse && hasRTL);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsRTL(direction === 'rtl');\n\t}, [direction, isClient]);\n\n\treturn isRTL;\n}\n\nexport default useRTL;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport useRTL from '../hooks/useRTL';\nimport { Direction } from './constants';\nimport { ContextMessage } from './types';\n\nconst Title = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex: 1 0 auto;\n\theight: 100%;\n\tcolor: ${({ theme }) => theme.contextMenu.fontColor};\n\tfont-size: ${({ theme }) => theme.contextMenu.fontSize};\n\tfont-weight: 400;\n`;\n\nconst ContextActions = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\tflex-wrap: wrap;\n`;\n\nconst ContextMenuStyle = styled.div<{\n\t$rtl?: boolean;\n\t$visible: boolean;\n}>`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbox-sizing: inherit;\n\tz-index: 1;\n\talign-items: center;\n\tjustify-content: space-between;\n\tdisplay: flex;\n\t${({ $rtl }) => $rtl && 'direction: rtl'};\n\t${({ theme }) => theme.contextMenu.style};\n\t${({ theme, $visible }) => $visible && theme.contextMenu.activeStyle};\n`;\n\nconst generateDefaultContextTitle = (contextMessage: ContextMessage, selectedCount: number, rtl: boolean) => {\n\tif (selectedCount === 0) {\n\t\treturn null;\n\t}\n\n\tconst datumName = selectedCount === 1 ? contextMessage.singular : contextMessage.plural;\n\n\t// TODO: add mock document rtl tests\n\tif (rtl) {\n\t\treturn `${selectedCount} ${contextMessage.message || ''} ${datumName}`;\n\t}\n\n\treturn `${selectedCount} ${datumName} ${contextMessage.message || ''}`;\n};\n\ntype ContextMenuProps = {\n\tcontextMessage: ContextMessage;\n\tcontextActions: React.ReactNode | React.ReactNode[];\n\tcontextComponent: React.ReactNode | null;\n\tselectedCount: number;\n\tdirection: Direction;\n};\n\nfunction ContextMenu({\n\tcontextMessage,\n\tcontextActions,\n\tcontextComponent,\n\tselectedCount,\n\tdirection,\n}: ContextMenuProps): JSX.Element {\n\tconst isRTL = useRTL(direction);\n\tconst visible = selectedCount > 0;\n\n\tif (contextComponent) {\n\t\treturn (\n\t\t\t\n\t\t\t\t{React.cloneElement(contextComponent as React.ReactElement, { selectedCount })}\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{generateDefaultContextTitle(contextMessage, selectedCount, isRTL)}\n\t\t\t{contextActions}\n\t\t\n\t);\n}\n\nexport default ContextMenu;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport ContextMenu from './ContextMenu';\nimport { Direction } from './constants';\nimport { ContextMessage } from './types';\n\nconst HeaderStyle = styled.div`\n\tposition: relative;\n\tbox-sizing: border-box;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\talign-items: center;\n\tjustify-content: space-between;\n\twidth: 100%;\n\tflex-wrap: wrap;\n\t${({ theme }) => theme.header.style}\n`;\n\nconst Title = styled.div`\n\tflex: 1 0 auto;\n\tcolor: ${({ theme }) => theme.header.fontColor};\n\tfont-size: ${({ theme }) => theme.header.fontSize};\n\tfont-weight: 400;\n`;\n\nconst Actions = styled.div`\n\tflex: 1 0 auto;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\n\t> * {\n\t\tmargin-left: 5px;\n\t}\n`;\n\ntype HeaderProps = {\n\ttitle?: string | React.ReactNode;\n\tactions?: React.ReactNode | React.ReactNode[];\n\tdirection: Direction;\n\tselectedCount: number;\n\tshowMenu?: boolean;\n\tcontextMessage: ContextMessage;\n\tcontextActions: React.ReactNode | React.ReactNode[];\n\tcontextComponent: React.ReactNode | null;\n};\n\nconst Header = ({\n\ttitle,\n\tactions = null,\n\tcontextMessage,\n\tcontextActions,\n\tcontextComponent,\n\tselectedCount,\n\tdirection,\n\tshowMenu = true,\n}: HeaderProps): JSX.Element => (\n\t\n\t\t{title}\n\t\t{actions && {actions}}\n\n\t\t{showMenu && (\n\t\t\t\n\t\t)}\n\t\n);\n\nexport default Header;\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst alignMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n};\n\ntype AlignItems = 'center' | 'left' | 'right';\n\nconst SubheaderWrapper = styled.header<{\n\talign: AlignItems;\n\t$wrapContent: boolean;\n}>`\n\tposition: relative;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tbox-sizing: border-box;\n\talign-items: center;\n\tpadding: 4px 16px 4px 24px;\n\twidth: 100%;\n\tjustify-content: ${({ align }) => alignMap[align]};\n\tflex-wrap: ${({ $wrapContent }) => ($wrapContent ? 'wrap' : 'nowrap')};\n\t${({ theme }) => theme.subHeader.style}\n`;\n\ntype SubheaderProps = {\n\talign?: AlignItems;\n\twrapContent?: boolean;\n\tchildren?: React.ReactNode;\n};\n\nconst Subheader = ({ align = 'right', wrapContent = true, ...rest }: SubheaderProps): JSX.Element => (\n\t\n);\n\nexport default Subheader;\n","import styled from 'styled-components';\n\nconst Body = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport default Body;\n","import styled, { css } from 'styled-components';\n\n/* Hack when using layovers/menus that get clipped by overflow-x\n when a table is responsive due to overflow-xy scroll spec stupidity.\n Note: The parent element height must be set to 100%!\n https://www.brunildo.org/test/Overflowxy2.html\n*/\n\nconst ResponsiveWrapper = styled.div<{\n\t$responsive: boolean;\n\t$fixedHeader?: boolean;\n\t$fixedHeaderScrollHeight?: string;\n}>`\n\tposition: relative;\n\twidth: 100%;\n\tborder-radius: inherit;\n\t${({ $responsive, $fixedHeader }) =>\n\t\t$responsive &&\n\t\tcss`\n\t\t\toverflow-x: auto;\n\n\t\t\t// hidden prevents vertical scrolling in firefox when fixedHeader is disabled\n\t\t\toverflow-y: ${$fixedHeader ? 'auto' : 'hidden'};\n\t\t\tmin-height: 0;\n\t\t`};\n\n\t${({ $fixedHeader = false, $fixedHeaderScrollHeight = '100vh' }) =>\n\t\t$fixedHeader &&\n\t\tcss`\n\t\t\tmax-height: ${$fixedHeaderScrollHeight};\n\t\t\t-webkit-overflow-scrolling: touch;\n\t\t`};\n\n\t${({ theme }) => theme.responsiveWrapper.style};\n`;\n\nexport default ResponsiveWrapper;\n","import styled from 'styled-components';\n\nconst ProgressWrapper = styled.div`\n\tposition: relative;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\t${props => props.theme.progress.style};\n`;\n\nexport default ProgressWrapper;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n\tposition: relative;\n\twidth: 100%;\n\t${({ theme }) => theme.tableWrapper.style};\n`;\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport { CellBase } from './Cell';\n\nconst ColumnExpander = styled(CellBase)`\n\twhite-space: nowrap;\n\t${({ theme }) => theme.expanderCell.style};\n`;\n\nexport default ColumnExpander;\n","import styled from 'styled-components';\n\nconst NoDataWrapper = styled.div`\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\t${({ theme }) => theme.noData.style};\n`;\n\nexport default NoDataWrapper;\n","import React from 'react';\n\nconst DropdownIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default DropdownIcon;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport DropDownIcon from '../icons/Dropdown';\n\nconst SelectControl = styled.select`\n\tcursor: pointer;\n\theight: 24px;\n\tmax-width: 100%;\n\tuser-select: none;\n\tpadding-left: 8px;\n\tpadding-right: 24px;\n\tbox-sizing: content-box;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tborder: none;\n\tbackground-color: transparent;\n\tappearance: none;\n\tdirection: ltr;\n\tflex-shrink: 0;\n\n\t&::-ms-expand {\n\t\tdisplay: none;\n\t}\n\n\t&:disabled::-ms-expand {\n\t\tbackground: #f60;\n\t}\n\n\toption {\n\t\tcolor: initial;\n\t}\n`;\n\nconst SelectWrapper = styled.div`\n\tposition: relative;\n\tflex-shrink: 0;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tmargin-top: 1px;\n\n\tsvg {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tcolor: inherit;\n\t\tposition: absolute;\n\t\tfill: currentColor;\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tdisplay: inline-block;\n\t\tuser-select: none;\n\t\tpointer-events: none;\n\t}\n`;\n\ntype SelectProps = {\n\tonChange: (e: React.ChangeEvent) => void;\n\tdefaultValue: string | number;\n\tchildren: React.ReactNode;\n};\n\nconst Select = ({ defaultValue, onChange, ...rest }: SelectProps): JSX.Element => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Select;\n","import React from 'react';\nimport FirstPageIcon from '../icons/FirstPage';\nimport LastPageIcon from '../icons/LastPage';\nimport LeftIcon from '../icons/Left';\nimport RightIcon from '../icons/Right';\nimport ExpanderCollapsedIcon from '../icons/ExpanderCollapsedIcon';\nimport ExpanderExpandedIcon from '../icons/ExpanderExpandedIcon';\nimport { noop } from './util';\nimport { Alignment, Direction } from './constants';\n\nexport const defaultProps = {\n\tcolumns: [],\n\tdata: [],\n\ttitle: '',\n\tkeyField: 'id',\n\tselectableRows: false,\n\tselectableRowsHighlight: false,\n\tselectableRowsNoSelectAll: false,\n\tselectableRowSelected: null,\n\tselectableRowDisabled: null,\n\tselectableRowsComponent: 'input' as const,\n\tselectableRowsComponentProps: {},\n\tselectableRowsVisibleOnly: false,\n\tselectableRowsSingle: false,\n\tclearSelectedRows: false,\n\texpandableRows: false,\n\texpandableRowDisabled: null,\n\texpandableRowExpanded: null,\n\texpandOnRowClicked: false,\n\texpandableRowsHideExpander: false,\n\texpandOnRowDoubleClicked: false,\n\texpandableInheritConditionalStyles: false,\n\texpandableRowsComponent: function DefaultExpander(): JSX.Element {\n\t\treturn (\n\t\t\t
      \n\t\t\t\tTo add an expander pass in a component instance via expandableRowsComponent. You can then\n\t\t\t\taccess props.data from this component.\n\t\t\t
      \n\t\t);\n\t},\n\texpandableIcon: {\n\t\tcollapsed: ,\n\t\texpanded: ,\n\t},\n\texpandableRowsComponentProps: {},\n\tprogressPending: false,\n\tprogressComponent:
      Loading...
      ,\n\tpersistTableHead: false,\n\tsortIcon: null,\n\tsortFunction: null,\n\tsortServer: false,\n\tstriped: false,\n\thighlightOnHover: false,\n\tpointerOnHover: false,\n\tnoContextMenu: false,\n\tcontextMessage: { singular: 'item', plural: 'items', message: 'selected' },\n\tactions: null,\n\tcontextActions: null,\n\tcontextComponent: null,\n\tdefaultSortFieldId: null,\n\tdefaultSortAsc: true,\n\tresponsive: true,\n\tnoDataComponent:
      There are no records to display
      ,\n\tdisabled: false,\n\tnoTableHead: false,\n\tnoHeader: false,\n\tsubHeader: false,\n\tsubHeaderAlign: Alignment.RIGHT,\n\tsubHeaderWrap: true,\n\tsubHeaderComponent: null,\n\tfixedHeader: false,\n\tfixedHeaderScrollHeight: '100vh',\n\tpagination: false,\n\tpaginationServer: false,\n\tpaginationServerOptions: {\n\t\tpersistSelectedOnSort: false,\n\t\tpersistSelectedOnPageChange: false,\n\t},\n\tpaginationDefaultPage: 1,\n\tpaginationResetDefaultPage: false,\n\tpaginationTotalRows: 0,\n\tpaginationPerPage: 10,\n\tpaginationRowsPerPageOptions: [10, 15, 20, 25, 30],\n\tpaginationComponent: null,\n\tpaginationComponentOptions: {},\n\tpaginationIconFirstPage: ,\n\tpaginationIconLastPage: ,\n\tpaginationIconNext: ,\n\tpaginationIconPrevious: ,\n\tdense: false,\n\tconditionalRowStyles: [],\n\ttheme: 'default' as const,\n\tcustomStyles: {},\n\tdirection: Direction.AUTO,\n\tonChangePage: noop,\n\tonChangeRowsPerPage: noop,\n\tonRowClicked: noop,\n\tonRowDoubleClicked: noop,\n\tonRowMouseEnter: noop,\n\tonRowMouseLeave: noop,\n\tonRowExpandToggled: noop,\n\tonSelectedRowsChange: noop,\n\tonSort: noop,\n\tonColumnOrderChange: noop,\n};\n","import React from 'react';\n\nconst ExpanderCollapsedIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default ExpanderCollapsedIcon;\n","import React from 'react';\n\nconst ExpanderExpandedIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default ExpanderExpandedIcon;\n","import React from 'react';\n\nconst FirstPage: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default FirstPage;\n","import React from 'react';\n\nconst LastPage: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default LastPage;\n","import React from 'react';\n\nconst Right: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Right;\n","import React from 'react';\n\nconst Left: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Left;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport Select from './Select';\nimport { getNumberOfPages } from './util';\nimport useWindowSize from '../hooks/useWindowSize';\nimport useRTL from '../hooks/useRTL';\nimport { media, SMALL } from './media';\nimport { Direction } from './constants';\nimport { PaginationOptions } from './types';\nimport { defaultProps } from './defaultProps';\n\nconst defaultComponentOptions = {\n\trowsPerPageText: 'Rows per page:',\n\trangeSeparatorText: 'of',\n\tnoRowsPerPage: false,\n\tselectAllRowsItem: false,\n\tselectAllRowsItemText: 'All',\n};\n\nconst PaginationWrapper = styled.nav`\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding-right: 8px;\n\tpadding-left: 8px;\n\twidth: 100%;\n\t${({ theme }) => theme.pagination.style};\n`;\n\nconst Button = styled.button<{\n\t$isRTL: boolean;\n}>`\n\tposition: relative;\n\tdisplay: block;\n\tuser-select: none;\n\tborder: none;\n\t${({ theme }) => theme.pagination.pageButtonsStyle};\n\t${({ $isRTL }) => $isRTL && 'transform: scale(-1, -1)'};\n`;\n\nconst PageList = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tborder-radius: 4px;\n\twhite-space: nowrap;\n\t${media.sm`\n width: 100%;\n justify-content: space-around;\n `};\n`;\n\nconst Span = styled.span`\n\tflex-shrink: 1;\n\tuser-select: none;\n`;\n\nconst Range = styled(Span)`\n\tmargin: 0 24px;\n`;\n\nconst RowLabel = styled(Span)`\n\tmargin: 0 4px;\n`;\n\ninterface PaginationProps {\n\trowsPerPage: number;\n\trowCount: number;\n\tcurrentPage: number;\n\tdirection?: Direction;\n\tpaginationRowsPerPageOptions?: number[];\n\tpaginationIconLastPage?: React.ReactNode;\n\tpaginationIconFirstPage?: React.ReactNode;\n\tpaginationIconNext?: React.ReactNode;\n\tpaginationIconPrevious?: React.ReactNode;\n\tpaginationComponentOptions?: PaginationOptions;\n\tonChangePage: (page: number) => void;\n\tonChangeRowsPerPage: (numRows: number, currentPage: number) => void;\n}\n\nfunction Pagination({\n\trowsPerPage,\n\trowCount,\n\tcurrentPage,\n\tdirection = defaultProps.direction,\n\tpaginationRowsPerPageOptions = defaultProps.paginationRowsPerPageOptions,\n\tpaginationIconLastPage = defaultProps.paginationIconLastPage,\n\tpaginationIconFirstPage = defaultProps.paginationIconFirstPage,\n\tpaginationIconNext = defaultProps.paginationIconNext,\n\tpaginationIconPrevious = defaultProps.paginationIconPrevious,\n\tpaginationComponentOptions = defaultProps.paginationComponentOptions,\n\tonChangeRowsPerPage = defaultProps.onChangeRowsPerPage,\n\tonChangePage = defaultProps.onChangePage,\n}: PaginationProps): JSX.Element {\n\tconst windowSize = useWindowSize();\n\tconst isRTL = useRTL(direction);\n\tconst shouldShow = windowSize.width && windowSize.width > SMALL;\n\t// const isRTL = detectRTL(direction);\n\tconst numPages = getNumberOfPages(rowCount, rowsPerPage);\n\tconst lastIndex = currentPage * rowsPerPage;\n\tconst firstIndex = lastIndex - rowsPerPage + 1;\n\tconst disabledLesser = currentPage === 1;\n\tconst disabledGreater = currentPage === numPages;\n\tconst options = { ...defaultComponentOptions, ...paginationComponentOptions };\n\tconst range =\n\t\tcurrentPage === numPages\n\t\t\t? `${firstIndex}-${rowCount} ${options.rangeSeparatorText} ${rowCount}`\n\t\t\t: `${firstIndex}-${lastIndex} ${options.rangeSeparatorText} ${rowCount}`;\n\n\tconst handlePrevious = React.useCallback(() => onChangePage(currentPage - 1), [currentPage, onChangePage]);\n\tconst handleNext = React.useCallback(() => onChangePage(currentPage + 1), [currentPage, onChangePage]);\n\tconst handleFirst = React.useCallback(() => onChangePage(1), [onChangePage]);\n\tconst handleLast = React.useCallback(\n\t\t() => onChangePage(getNumberOfPages(rowCount, rowsPerPage)),\n\t\t[onChangePage, rowCount, rowsPerPage],\n\t);\n\tconst handleRowsPerPage = React.useCallback(\n\t\t(e: React.ChangeEvent) => onChangeRowsPerPage(Number(e.target.value), currentPage),\n\t\t[currentPage, onChangeRowsPerPage],\n\t);\n\n\tconst selectOptions = paginationRowsPerPageOptions.map((num: number) => (\n\t\t\n\t));\n\n\tif (options.selectAllRowsItem) {\n\t\tselectOptions.push(\n\t\t\t,\n\t\t);\n\t}\n\n\tconst select = (\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t{!options.noRowsPerPage && shouldShow && (\n\t\t\t\t<>\n\t\t\t\t\t{options.rowsPerPageText}\n\t\t\t\t\t{select}\n\t\t\t\t\n\t\t\t)}\n\t\t\t{shouldShow && {range}}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{paginationIconFirstPage}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconPrevious}\n\t\t\t\t\n\n\t\t\t\t{!options.noRowsPerPage && !shouldShow && select}\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconNext}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconLastPage}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default React.memo(Pagination);\n","// Credit: https://usehooks.com/useWindowSize/\nimport * as React from 'react';\n\ntype Hook = () => {\n\twidth: number | undefined;\n\theight: number | undefined;\n};\n\nconst useWindowSize: Hook = () => {\n\tconst isClient = typeof window === 'object';\n\n\tfunction getSize() {\n\t\treturn {\n\t\t\twidth: isClient ? window.innerWidth : undefined,\n\t\t\theight: isClient ? window.innerHeight : undefined,\n\t\t};\n\t}\n\n\tconst [windowSize, setWindowSize] = React.useState(getSize);\n\n\tReact.useEffect(() => {\n\t\tif (!isClient) {\n\t\t\treturn () => null;\n\t\t}\n\n\t\tfunction handleResize() {\n\t\t\tsetWindowSize(getSize());\n\t\t}\n\n\t\twindow.addEventListener('resize', handleResize);\n\t\treturn () => window.removeEventListener('resize', handleResize);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\treturn windowSize;\n};\n\nexport default useWindowSize;\n","import * as React from 'react';\n\ntype Hook = (fn: () => void, inputs: unknown[]) => void;\n\nconst useFirstUpdate: Hook = (fn, inputs) => {\n\tconst firstUpdate = React.useRef(true);\n\n\tReact.useEffect(() => {\n\t\tif (firstUpdate.current) {\n\t\t\tfirstUpdate.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tfn();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, inputs);\n};\n\nexport default useFirstUpdate;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import merge from 'deepmerge';\nimport { Theme, Themes } from './types';\n\ntype ThemeMapping = {\n\t[propertyName: string]: Theme;\n};\n\nconst defaultTheme = {\n\ttext: {\n\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\tsecondary: 'rgba(0, 0, 0, 0.54)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.38)',\n\t},\n\tbackground: {\n\t\tdefault: '#FFFFFF',\n\t},\n\tcontext: {\n\t\tbackground: '#e3f2fd',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\tdivider: {\n\t\tdefault: 'rgba(0,0,0,.12)',\n\t},\n\tbutton: {\n\t\tdefault: 'rgba(0,0,0,.54)',\n\t\tfocus: 'rgba(0,0,0,.12)',\n\t\thover: 'rgba(0,0,0,.12)',\n\t\tdisabled: 'rgba(0, 0, 0, .18)',\n\t},\n\tselected: {\n\t\tdefault: '#e3f2fd',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\thighlightOnHover: {\n\t\tdefault: '#EEEEEE',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\tstriped: {\n\t\tdefault: '#FAFAFA',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n};\n\nexport const defaultThemes: ThemeMapping = {\n\tdefault: defaultTheme,\n\tlight: defaultTheme,\n\tdark: {\n\t\ttext: {\n\t\t\tprimary: '#FFFFFF',\n\t\t\tsecondary: 'rgba(255, 255, 255, 0.7)',\n\t\t\tdisabled: 'rgba(0,0,0,.12)',\n\t\t},\n\t\tbackground: {\n\t\t\tdefault: '#424242',\n\t\t},\n\t\tcontext: {\n\t\t\tbackground: '#E91E63',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\tdivider: {\n\t\t\tdefault: 'rgba(81, 81, 81, 1)',\n\t\t},\n\t\tbutton: {\n\t\t\tdefault: '#FFFFFF',\n\t\t\tfocus: 'rgba(255, 255, 255, .54)',\n\t\t\thover: 'rgba(255, 255, 255, .12)',\n\t\t\tdisabled: 'rgba(255, 255, 255, .18)',\n\t\t},\n\t\tselected: {\n\t\t\tdefault: 'rgba(0, 0, 0, .7)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\thighlightOnHover: {\n\t\t\tdefault: 'rgba(0, 0, 0, .7)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\tstriped: {\n\t\t\tdefault: 'rgba(0, 0, 0, .87)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t},\n};\n\nexport function createTheme(name = 'default', customTheme?: T, inherit: Themes = 'default'): Theme {\n\tif (!defaultThemes[name]) {\n\t\tdefaultThemes[name] = merge(defaultThemes[inherit], customTheme || {});\n\t}\n\n\t// allow tweaking default or light themes if the theme passed in matches\n\tdefaultThemes[name] = merge(defaultThemes[name], customTheme || {});\n\n\treturn defaultThemes[name];\n}\n","import * as React from 'react';\nimport { decorateColumns, findColumnIndexById, getSortDirection } from '../DataTable/util';\nimport useDidUpdateEffect from '../hooks/useDidUpdateEffect';\nimport { SortOrder, TableColumn } from '../DataTable/types';\n\ntype ColumnsHook = {\n\ttableColumns: TableColumn[];\n\tdraggingColumnId: string;\n\thandleDragStart: (e: React.DragEvent) => void;\n\thandleDragEnter: (e: React.DragEvent) => void;\n\thandleDragOver: (e: React.DragEvent) => void;\n\thandleDragLeave: (e: React.DragEvent) => void;\n\thandleDragEnd: (e: React.DragEvent) => void;\n\tdefaultSortDirection: SortOrder;\n\tdefaultSortColumn: TableColumn;\n};\n\nfunction useColumns(\n\tcolumns: TableColumn[],\n\tonColumnOrderChange: (nextOrder: TableColumn[]) => void,\n\tdefaultSortFieldId: string | number | null | undefined,\n\tdefaultSortAsc: boolean,\n): ColumnsHook {\n\tconst [tableColumns, setTableColumns] = React.useState[]>(() => decorateColumns(columns));\n\tconst [draggingColumnId, setDraggingColumn] = React.useState('');\n\tconst sourceColumnId = React.useRef('');\n\n\tuseDidUpdateEffect(() => {\n\t\tsetTableColumns(decorateColumns(columns));\n\t}, [columns]);\n\n\tconst handleDragStart = React.useCallback(\n\t\t(e: React.DragEvent) => {\n\t\t\tconst { attributes } = e.target as HTMLDivElement;\n\t\t\tconst id = attributes.getNamedItem('data-column-id')?.value;\n\n\t\t\tif (id) {\n\t\t\t\tsourceColumnId.current = tableColumns[findColumnIndexById(tableColumns, id)]?.id?.toString() || '';\n\n\t\t\t\tsetDraggingColumn(sourceColumnId.current);\n\t\t\t}\n\t\t},\n\t\t[tableColumns],\n\t);\n\n\tconst handleDragEnter = React.useCallback(\n\t\t(e: React.DragEvent) => {\n\t\t\tconst { attributes } = e.target as HTMLDivElement;\n\t\t\tconst id = attributes.getNamedItem('data-column-id')?.value;\n\n\t\t\tif (id && sourceColumnId.current && id !== sourceColumnId.current) {\n\t\t\t\tconst selectedColIndex = findColumnIndexById(tableColumns, sourceColumnId.current);\n\t\t\t\tconst targetColIndex = findColumnIndexById(tableColumns, id);\n\t\t\t\tconst reorderedCols = [...tableColumns];\n\n\t\t\t\treorderedCols[selectedColIndex] = tableColumns[targetColIndex];\n\t\t\t\treorderedCols[targetColIndex] = tableColumns[selectedColIndex];\n\n\t\t\t\tsetTableColumns(reorderedCols);\n\n\t\t\t\tonColumnOrderChange(reorderedCols);\n\t\t\t}\n\t\t},\n\t\t[onColumnOrderChange, tableColumns],\n\t);\n\n\tconst handleDragOver = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\t}, []);\n\n\tconst handleDragLeave = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\t}, []);\n\n\tconst handleDragEnd = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\n\t\tsourceColumnId.current = '';\n\n\t\tsetDraggingColumn('');\n\t}, []);\n\n\tconst defaultSortDirection = getSortDirection(defaultSortAsc);\n\tconst defaultSortColumn = React.useMemo(\n\t\t() => tableColumns[findColumnIndexById(tableColumns, defaultSortFieldId?.toString())] || {},\n\t\t[defaultSortFieldId, tableColumns],\n\t);\n\n\treturn {\n\t\ttableColumns,\n\t\tdraggingColumnId,\n\t\thandleDragStart,\n\t\thandleDragEnter,\n\t\thandleDragOver,\n\t\thandleDragLeave,\n\t\thandleDragEnd,\n\t\tdefaultSortDirection,\n\t\tdefaultSortColumn,\n\t};\n}\n\nexport default useColumns;\n","import * as React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport { tableReducer } from './tableReducer';\nimport Table from './Table';\nimport Head from './TableHead';\nimport HeadRow from './TableHeadRow';\nimport Row from './TableRow';\nimport Column from './TableCol';\nimport ColumnCheckbox from './TableColCheckbox';\nimport Header from './TableHeader';\nimport Subheader from './TableSubheader';\nimport Body from './TableBody';\nimport ResponsiveWrapper from './ResponsiveWrapper';\nimport ProgressWrapper from './ProgressWrapper';\nimport Wrapper from './TableWrapper';\nimport ColumnExpander from './TableColExpander';\nimport { CellBase } from './Cell';\nimport NoData from './NoDataWrapper';\nimport NativePagination from './Pagination';\nimport useDidUpdateEffect from '../hooks/useDidUpdateEffect';\nimport { prop, getNumberOfPages, sort, isEmpty, isRowSelected, recalculatePage } from './util';\nimport { defaultProps } from './defaultProps';\nimport { createStyles } from './styles';\nimport {\n\tAction,\n\tAllRowsAction,\n\tSingleRowAction,\n\tTableRow,\n\tSortAction,\n\tTableProps,\n\tTableState,\n\tSortOrder,\n} from './types';\nimport useColumns from '../hooks/useColumns';\n\nfunction DataTable(props: TableProps): JSX.Element {\n\tconst {\n\t\tdata = defaultProps.data,\n\t\tcolumns = defaultProps.columns,\n\t\ttitle = defaultProps.title,\n\t\tactions = defaultProps.actions,\n\t\tkeyField = defaultProps.keyField,\n\t\tstriped = defaultProps.striped,\n\t\thighlightOnHover = defaultProps.highlightOnHover,\n\t\tpointerOnHover = defaultProps.pointerOnHover,\n\t\tdense = defaultProps.dense,\n\t\tselectableRows = defaultProps.selectableRows,\n\t\tselectableRowsSingle = defaultProps.selectableRowsSingle,\n\t\tselectableRowsHighlight = defaultProps.selectableRowsHighlight,\n\t\tselectableRowsNoSelectAll = defaultProps.selectableRowsNoSelectAll,\n\t\tselectableRowsVisibleOnly = defaultProps.selectableRowsVisibleOnly,\n\t\tselectableRowSelected = defaultProps.selectableRowSelected,\n\t\tselectableRowDisabled = defaultProps.selectableRowDisabled,\n\t\tselectableRowsComponent = defaultProps.selectableRowsComponent,\n\t\tselectableRowsComponentProps = defaultProps.selectableRowsComponentProps,\n\t\tonRowExpandToggled = defaultProps.onRowExpandToggled,\n\t\tonSelectedRowsChange = defaultProps.onSelectedRowsChange,\n\t\texpandableIcon = defaultProps.expandableIcon,\n\t\tonChangeRowsPerPage = defaultProps.onChangeRowsPerPage,\n\t\tonChangePage = defaultProps.onChangePage,\n\t\tpaginationServer = defaultProps.paginationServer,\n\t\tpaginationServerOptions = defaultProps.paginationServerOptions,\n\t\tpaginationTotalRows = defaultProps.paginationTotalRows,\n\t\tpaginationDefaultPage = defaultProps.paginationDefaultPage,\n\t\tpaginationResetDefaultPage = defaultProps.paginationResetDefaultPage,\n\t\tpaginationPerPage = defaultProps.paginationPerPage,\n\t\tpaginationRowsPerPageOptions = defaultProps.paginationRowsPerPageOptions,\n\t\tpaginationIconLastPage = defaultProps.paginationIconLastPage,\n\t\tpaginationIconFirstPage = defaultProps.paginationIconFirstPage,\n\t\tpaginationIconNext = defaultProps.paginationIconNext,\n\t\tpaginationIconPrevious = defaultProps.paginationIconPrevious,\n\t\tpaginationComponent = defaultProps.paginationComponent,\n\t\tpaginationComponentOptions = defaultProps.paginationComponentOptions,\n\t\tresponsive = defaultProps.responsive,\n\t\tprogressPending = defaultProps.progressPending,\n\t\tprogressComponent = defaultProps.progressComponent,\n\t\tpersistTableHead = defaultProps.persistTableHead,\n\t\tnoDataComponent = defaultProps.noDataComponent,\n\t\tdisabled = defaultProps.disabled,\n\t\tnoTableHead = defaultProps.noTableHead,\n\t\tnoHeader = defaultProps.noHeader,\n\t\tfixedHeader = defaultProps.fixedHeader,\n\t\tfixedHeaderScrollHeight = defaultProps.fixedHeaderScrollHeight,\n\t\tpagination = defaultProps.pagination,\n\t\tsubHeader = defaultProps.subHeader,\n\t\tsubHeaderAlign = defaultProps.subHeaderAlign,\n\t\tsubHeaderWrap = defaultProps.subHeaderWrap,\n\t\tsubHeaderComponent = defaultProps.subHeaderComponent,\n\t\tnoContextMenu = defaultProps.noContextMenu,\n\t\tcontextMessage = defaultProps.contextMessage,\n\t\tcontextActions = defaultProps.contextActions,\n\t\tcontextComponent = defaultProps.contextComponent,\n\t\texpandableRows = defaultProps.expandableRows,\n\t\tonRowClicked = defaultProps.onRowClicked,\n\t\tonRowDoubleClicked = defaultProps.onRowDoubleClicked,\n\t\tonRowMouseEnter = defaultProps.onRowMouseEnter,\n\t\tonRowMouseLeave = defaultProps.onRowMouseLeave,\n\t\tsortIcon = defaultProps.sortIcon,\n\t\tonSort = defaultProps.onSort,\n\t\tsortFunction = defaultProps.sortFunction,\n\t\tsortServer = defaultProps.sortServer,\n\t\texpandableRowsComponent = defaultProps.expandableRowsComponent,\n\t\texpandableRowsComponentProps = defaultProps.expandableRowsComponentProps,\n\t\texpandableRowDisabled = defaultProps.expandableRowDisabled,\n\t\texpandableRowsHideExpander = defaultProps.expandableRowsHideExpander,\n\t\texpandOnRowClicked = defaultProps.expandOnRowClicked,\n\t\texpandOnRowDoubleClicked = defaultProps.expandOnRowDoubleClicked,\n\t\texpandableRowExpanded = defaultProps.expandableRowExpanded,\n\t\texpandableInheritConditionalStyles = defaultProps.expandableInheritConditionalStyles,\n\t\tdefaultSortFieldId = defaultProps.defaultSortFieldId,\n\t\tdefaultSortAsc = defaultProps.defaultSortAsc,\n\t\tclearSelectedRows = defaultProps.clearSelectedRows,\n\t\tconditionalRowStyles = defaultProps.conditionalRowStyles,\n\t\ttheme = defaultProps.theme,\n\t\tcustomStyles = defaultProps.customStyles,\n\t\tdirection = defaultProps.direction,\n\t\tonColumnOrderChange = defaultProps.onColumnOrderChange,\n\t\tclassName,\n\t} = props;\n\n\tconst {\n\t\ttableColumns,\n\t\tdraggingColumnId,\n\t\thandleDragStart,\n\t\thandleDragEnter,\n\t\thandleDragOver,\n\t\thandleDragLeave,\n\t\thandleDragEnd,\n\t\tdefaultSortDirection,\n\t\tdefaultSortColumn,\n\t} = useColumns(columns, onColumnOrderChange, defaultSortFieldId, defaultSortAsc);\n\n\tconst [\n\t\t{\n\t\t\trowsPerPage,\n\t\t\tcurrentPage,\n\t\t\tselectedRows,\n\t\t\tallSelected,\n\t\t\tselectedCount,\n\t\t\tselectedColumn,\n\t\t\tsortDirection,\n\t\t\ttoggleOnSelectedRowsChange,\n\t\t},\n\t\tdispatch,\n\t] = React.useReducer, Action>>(tableReducer, {\n\t\tallSelected: false,\n\t\tselectedCount: 0,\n\t\tselectedRows: [],\n\t\tselectedColumn: defaultSortColumn,\n\t\ttoggleOnSelectedRowsChange: false,\n\t\tsortDirection: defaultSortDirection,\n\t\tcurrentPage: paginationDefaultPage,\n\t\trowsPerPage: paginationPerPage,\n\t\tselectedRowsFlag: false,\n\t\tcontextMessage: defaultProps.contextMessage,\n\t});\n\n\tconst { persistSelectedOnSort = false, persistSelectedOnPageChange = false } = paginationServerOptions;\n\tconst mergeSelections = !!(paginationServer && (persistSelectedOnPageChange || persistSelectedOnSort));\n\tconst enabledPagination = pagination && !progressPending && data.length > 0;\n\tconst Pagination = paginationComponent || NativePagination;\n\n\tconst currentTheme = React.useMemo(() => createStyles(customStyles, theme), [customStyles, theme]);\n\tconst wrapperProps = React.useMemo(() => ({ ...(direction !== 'auto' && { dir: direction }) }), [direction]);\n\n\tconst sortedData = React.useMemo(() => {\n\t\t// server-side sorting bypasses internal sorting\n\t\tif (sortServer) {\n\t\t\treturn data;\n\t\t}\n\n\t\tif (selectedColumn?.sortFunction && typeof selectedColumn.sortFunction === 'function') {\n\t\t\tconst sortFn = selectedColumn.sortFunction;\n\t\t\tconst customSortFunction = sortDirection === SortOrder.ASC ? sortFn : (a: T, b: T) => sortFn(a, b) * -1;\n\n\t\t\treturn [...data].sort(customSortFunction);\n\t\t}\n\n\t\treturn sort(data, selectedColumn?.selector, sortDirection, sortFunction);\n\t}, [sortServer, selectedColumn, sortDirection, data, sortFunction]);\n\n\tconst tableRows = React.useMemo(() => {\n\t\tif (pagination && !paginationServer) {\n\t\t\t// when using client-side pagination we can just slice the rows set\n\t\t\tconst lastIndex = currentPage * rowsPerPage;\n\t\t\tconst firstIndex = lastIndex - rowsPerPage;\n\n\t\t\treturn sortedData.slice(firstIndex, lastIndex);\n\t\t}\n\n\t\treturn sortedData;\n\t}, [currentPage, pagination, paginationServer, rowsPerPage, sortedData]);\n\n\tconst handleSort = React.useCallback((action: SortAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleSelectAllRows = React.useCallback((action: AllRowsAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleSelectedRow = React.useCallback((action: SingleRowAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleRowClicked = React.useCallback(\n\t\t(row: T, e: React.MouseEvent) => onRowClicked(row, e),\n\t\t[onRowClicked],\n\t);\n\n\tconst handleRowDoubleClicked = React.useCallback(\n\t\t(row: T, e: React.MouseEvent) => onRowDoubleClicked(row, e),\n\t\t[onRowDoubleClicked],\n\t);\n\n\tconst handleRowMouseEnter = React.useCallback(\n\t\t(row: T, e: React.MouseEvent) => onRowMouseEnter(row, e),\n\t\t[onRowMouseEnter],\n\t);\n\n\tconst handleRowMouseLeave = React.useCallback(\n\t\t(row: T, e: React.MouseEvent) => onRowMouseLeave(row, e),\n\t\t[onRowMouseLeave],\n\t);\n\n\tconst handleChangePage = React.useCallback(\n\t\t(page: number) =>\n\t\t\tdispatch({\n\t\t\t\ttype: 'CHANGE_PAGE',\n\t\t\t\tpage,\n\t\t\t\tpaginationServer,\n\t\t\t\tvisibleOnly: selectableRowsVisibleOnly,\n\t\t\t\tpersistSelectedOnPageChange,\n\t\t\t}),\n\t\t[paginationServer, persistSelectedOnPageChange, selectableRowsVisibleOnly],\n\t);\n\n\tconst handleChangeRowsPerPage = React.useCallback(\n\t\t(newRowsPerPage: number) => {\n\t\t\tconst rowCount = paginationTotalRows || tableRows.length;\n\t\t\tconst updatedPage = getNumberOfPages(rowCount, newRowsPerPage);\n\t\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\t\t// update the currentPage for client-side pagination\n\t\t\t// server - side should be handled by onChangeRowsPerPage\n\t\t\tif (!paginationServer) {\n\t\t\t\thandleChangePage(recalculatedPage);\n\t\t\t}\n\n\t\t\tdispatch({ type: 'CHANGE_ROWS_PER_PAGE', page: recalculatedPage, rowsPerPage: newRowsPerPage });\n\t\t},\n\t\t[currentPage, handleChangePage, paginationServer, paginationTotalRows, tableRows.length],\n\t);\n\n\tconst showTableHead = () => {\n\t\tif (noTableHead) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (persistTableHead) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn sortedData.length > 0 && !progressPending;\n\t};\n\n\tconst showHeader = () => {\n\t\tif (noHeader) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (title) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (actions) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\t// recalculate the pagination and currentPage if the rows length changes\n\tif (pagination && !paginationServer && sortedData.length > 0 && tableRows.length === 0) {\n\t\tconst updatedPage = getNumberOfPages(sortedData.length, rowsPerPage);\n\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\thandleChangePage(recalculatedPage);\n\t}\n\n\tuseDidUpdateEffect(() => {\n\t\tonSelectedRowsChange({ allSelected, selectedCount, selectedRows: selectedRows.slice(0) });\n\t\t// onSelectedRowsChange trigger is controlled by toggleOnSelectedRowsChange state\n\t}, [toggleOnSelectedRowsChange]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonSort(selectedColumn, sortDirection, sortedData.slice(0));\n\t\t// do not update on sortedData\n\t}, [selectedColumn, sortDirection]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonChangePage(currentPage, paginationTotalRows || sortedData.length);\n\t}, [currentPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonChangeRowsPerPage(rowsPerPage, currentPage);\n\t}, [rowsPerPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\thandleChangePage(paginationDefaultPage);\n\t}, [paginationDefaultPage, paginationResetDefaultPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\tif (pagination && paginationServer && paginationTotalRows > 0) {\n\t\t\tconst updatedPage = getNumberOfPages(paginationTotalRows, rowsPerPage);\n\t\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\t\tif (currentPage !== recalculatedPage) {\n\t\t\t\thandleChangePage(recalculatedPage);\n\t\t\t}\n\t\t}\n\t}, [paginationTotalRows]);\n\n\tReact.useEffect(() => {\n\t\tdispatch({ type: 'CLEAR_SELECTED_ROWS', selectedRowsFlag: clearSelectedRows });\n\t}, [selectableRowsSingle, clearSelectedRows]);\n\n\tReact.useEffect(() => {\n\t\tif (!selectableRowSelected) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst preSelectedRows = sortedData.filter(row => selectableRowSelected(row));\n\t\t// if selectableRowsSingle mode then return the first match\n\t\tconst selected = selectableRowsSingle ? preSelectedRows.slice(0, 1) : preSelectedRows;\n\n\t\tdispatch({\n\t\t\ttype: 'SELECT_MULTIPLE_ROWS',\n\t\t\tkeyField,\n\t\t\tselectedRows: selected,\n\t\t\ttotalRows: sortedData.length,\n\t\t\tmergeSelections,\n\t\t});\n\n\t\t// We only want to update the selectedRowState if data changes\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [data, selectableRowSelected]);\n\n\tconst visibleRows = selectableRowsVisibleOnly ? tableRows : sortedData;\n\tconst showSelectAll = persistSelectedOnPageChange || selectableRowsSingle || selectableRowsNoSelectAll;\n\n\treturn (\n\t\t\n\t\t\t{showHeader() && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{subHeader && (\n\t\t\t\t\n\t\t\t\t\t{subHeaderComponent}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{progressPending && !persistTableHead && {progressComponent}}\n\n\t\t\t\t\t\n\t\t\t\t\t\t{showTableHead() && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{selectableRows &&\n\t\t\t\t\t\t\t\t\t\t(showSelectAll ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t{expandableRows && !expandableRowsHideExpander && }\n\t\t\t\t\t\t\t\t\t{tableColumns.map(column => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!sortedData.length && !progressPending && {noDataComponent}}\n\n\t\t\t\t\t\t{progressPending && persistTableHead && {progressComponent}}\n\n\t\t\t\t\t\t{!progressPending && sortedData.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{tableRows.map((row, i) => {\n\t\t\t\t\t\t\t\t\tconst key = prop(row as TableRow, keyField) as string | number;\n\t\t\t\t\t\t\t\t\tconst id = isEmpty(key) ? i : key;\n\t\t\t\t\t\t\t\t\tconst selected = isRowSelected(row, selectedRows, keyField);\n\t\t\t\t\t\t\t\t\tconst expanderExpander = !!(expandableRows && expandableRowExpanded && expandableRowExpanded(row));\n\t\t\t\t\t\t\t\t\tconst expanderDisabled = !!(expandableRows && expandableRowDisabled && expandableRowDisabled(row));\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
      \n\t\t\t\t
      \n\t\t\t\n\n\t\t\t{enabledPagination && (\n\t\t\t\t
      \n\t\t\t\t\t\n\t\t\t\t
      \n\t\t\t)}\n\t\t
      \n\t);\n}\n\nexport default React.memo(DataTable) as typeof DataTable;\n","import merge from 'deepmerge';\nimport { defaultThemes } from './themes';\nimport { TableStyles, Theme, Themes } from './types';\n\nexport const defaultStyles = (theme: Theme): TableStyles => ({\n\ttable: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\ttableWrapper: {\n\t\tstyle: {\n\t\t\tdisplay: 'table',\n\t\t},\n\t},\n\tresponsiveWrapper: {\n\t\tstyle: {},\n\t},\n\theader: {\n\t\tstyle: {\n\t\t\tfontSize: '22px',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '56px',\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '8px',\n\t\t},\n\t},\n\tsubHeader: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '52px',\n\t\t},\n\t},\n\thead: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tfontSize: '12px',\n\t\t\tfontWeight: 500,\n\t\t},\n\t},\n\theadRow: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '52px',\n\t\t\tborderBottomWidth: '1px',\n\t\t\tborderBottomColor: theme.divider.default,\n\t\t\tborderBottomStyle: 'solid',\n\t\t},\n\t\tdenseStyle: {\n\t\t\tminHeight: '32px',\n\t\t},\n\t},\n\theadCells: {\n\t\tstyle: {\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '16px',\n\t\t},\n\t\tdraggingStyle: {\n\t\t\tcursor: 'move',\n\t\t},\n\t},\n\tcontextMenu: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.context.background,\n\t\t\tfontSize: '18px',\n\t\t\tfontWeight: 400,\n\t\t\tcolor: theme.context.text,\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '8px',\n\t\t\ttransform: 'translate3d(0, -100%, 0)',\n\t\t\ttransitionDuration: '125ms',\n\t\t\ttransitionTimingFunction: 'cubic-bezier(0, 0, 0.2, 1)',\n\t\t\twillChange: 'transform',\n\t\t},\n\t\tactiveStyle: {\n\t\t\ttransform: 'translate3d(0, 0, 0)',\n\t\t},\n\t},\n\tcells: {\n\t\tstyle: {\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '16px',\n\t\t\twordBreak: 'break-word',\n\t\t},\n\t\tdraggingStyle: {},\n\t},\n\trows: {\n\t\tstyle: {\n\t\t\tfontSize: '13px',\n\t\t\tfontWeight: 400,\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '48px',\n\t\t\t'&:not(:last-of-type)': {\n\t\t\t\tborderBottomStyle: 'solid',\n\t\t\t\tborderBottomWidth: '1px',\n\t\t\t\tborderBottomColor: theme.divider.default,\n\t\t\t},\n\t\t},\n\t\tdenseStyle: {\n\t\t\tminHeight: '32px',\n\t\t},\n\t\tselectedHighlightStyle: {\n\t\t\t// use nth-of-type(n) to override other nth selectors\n\t\t\t'&:nth-of-type(n)': {\n\t\t\t\tcolor: theme.selected.text,\n\t\t\t\tbackgroundColor: theme.selected.default,\n\t\t\t\tborderBottomColor: theme.background.default,\n\t\t\t},\n\t\t},\n\t\thighlightOnHoverStyle: {\n\t\t\tcolor: theme.highlightOnHover.text,\n\t\t\tbackgroundColor: theme.highlightOnHover.default,\n\t\t\ttransitionDuration: '0.15s',\n\t\t\ttransitionProperty: 'background-color',\n\t\t\tborderBottomColor: theme.background.default,\n\t\t\toutlineStyle: 'solid',\n\t\t\toutlineWidth: '1px',\n\t\t\toutlineColor: theme.background.default,\n\t\t},\n\t\tstripedStyle: {\n\t\t\tcolor: theme.striped.text,\n\t\t\tbackgroundColor: theme.striped.default,\n\t\t},\n\t},\n\texpanderRow: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\texpanderCell: {\n\t\tstyle: {\n\t\t\tflex: '0 0 48px',\n\t\t},\n\t},\n\texpanderButton: {\n\t\tstyle: {\n\t\t\tcolor: theme.button.default,\n\t\t\tfill: theme.button.default,\n\t\t\tbackgroundColor: 'transparent',\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: '0.25s',\n\t\t\theight: '100%',\n\t\t\twidth: '100%',\n\t\t\t'&:hover:enabled': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t},\n\t\t\t'&:disabled': {\n\t\t\t\tcolor: theme.button.disabled,\n\t\t\t},\n\t\t\t'&:hover:not(:disabled)': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\tbackgroundColor: theme.button.hover,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tbackgroundColor: theme.button.focus,\n\t\t\t},\n\t\t\tsvg: {\n\t\t\t\tmargin: 'auto',\n\t\t\t},\n\t\t},\n\t},\n\tpagination: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.secondary,\n\t\t\tfontSize: '13px',\n\t\t\tminHeight: '56px',\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tborderTopStyle: 'solid',\n\t\t\tborderTopWidth: '1px',\n\t\t\tborderTopColor: theme.divider.default,\n\t\t},\n\t\tpageButtonsStyle: {\n\t\t\tborderRadius: '50%',\n\t\t\theight: '40px',\n\t\t\twidth: '40px',\n\t\t\tpadding: '8px',\n\t\t\tmargin: 'px',\n\t\t\tcursor: 'pointer',\n\t\t\ttransition: '0.4s',\n\t\t\tcolor: theme.button.default,\n\t\t\tfill: theme.button.default,\n\t\t\tbackgroundColor: 'transparent',\n\t\t\t'&:disabled': {\n\t\t\t\tcursor: 'unset',\n\t\t\t\tcolor: theme.button.disabled,\n\t\t\t\tfill: theme.button.disabled,\n\t\t\t},\n\t\t\t'&:hover:not(:disabled)': {\n\t\t\t\tbackgroundColor: theme.button.hover,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tbackgroundColor: theme.button.focus,\n\t\t\t},\n\t\t},\n\t},\n\tnoData: {\n\t\tstyle: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\tprogress: {\n\t\tstyle: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n});\n\nexport const createStyles = (\n\tcustomStyles: TableStyles = {},\n\tthemeName = 'default',\n\tinherit: Themes = 'default',\n): TableStyles => {\n\tconst themeType = defaultThemes[themeName] ? themeName : inherit;\n\n\treturn merge(defaultStyles(defaultThemes[themeType]), customStyles);\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","// @flow\nimport type { Interpolation } from '../types';\n\nexport default (\n strings: Array,\n interpolations: Array\n): Array => {\n const result = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n};\n","// @flow\nimport { typeOf } from 'react-is';\n\nexport default (x: any): boolean =>\n x !== null &&\n typeof x === 'object' &&\n (x.toString ? x.toString() : Object.prototype.toString.call(x)) === '[object Object]' &&\n !typeOf(x);\n","// @flow\nexport const EMPTY_ARRAY = Object.freeze([]);\nexport const EMPTY_OBJECT = Object.freeze({});\n","// @flow\nexport default function isFunction(test: any): boolean %checks {\n return typeof test === 'function';\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function getComponentName(\n target: $PropertyType\n): string {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n // $FlowFixMe\n target.displayName ||\n // $FlowFixMe\n target.name ||\n 'Component'\n );\n}\n","// @flow\nexport default function isStyledComponent(target: any): boolean %checks {\n return target && typeof target.styledComponentId === 'string';\n}\n","// @flow\n\ndeclare var SC_DISABLE_SPEEDY: ?boolean;\ndeclare var __VERSION__: string;\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY = Boolean(\n typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' && process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n : false\n);\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","// @flow\nimport errorMap from './errors';\n\nconst ERRORS = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: Array\n) {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n `An error occurred. See https://git.io/JUIaE#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n throw new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport type { GroupedTag, Tag } from './types';\nimport { SPLITTER } from '../constants';\nimport throwStyledError from '../utils/error';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag): GroupedTag => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nclass DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n\n length: number;\n\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number): number {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]): void {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throwStyledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number): void {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number): string {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n}\n","// @flow\n\nimport throwStyledError from '../utils/error';\n\nconst MAX_SMI = 1 << 31 - 1;\n\nlet groupIDRegister: Map = new Map();\nlet reverseRegister: Map = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return (groupIDRegister.get(id): any);\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (\n process.env.NODE_ENV !== 'production' &&\n ((group | 0) < 0 || group > MAX_SMI)\n ) {\n throwStyledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n if (group >= nextFreeGroup) {\n nextFreeGroup = group + 1;\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n","// @flow\n\nimport { SPLITTER, SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport type { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (!names || !rules || !names.size) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n // eslint-disable-next-line\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent || '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = ((nodes[i]: any): HTMLStyleElement);\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n","// @flow\n/* eslint-disable camelcase, no-undef */\n\ndeclare var __webpack_nonce__: string;\n\nconst getNonce = () => {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n};\n\nexport default getNonce;\n","// @flow\n\nimport { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport getNonce from '../utils/nonce';\nimport throwStyledError from '../utils/error';\n\nconst ELEMENT_TYPE = 1; /* Node.ELEMENT_TYPE */\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: HTMLElement): void | HTMLStyleElement => {\n const { childNodes } = target;\n\n for (let i = childNodes.length; i >= 0; i--) {\n const child = ((childNodes[i]: any): ?HTMLElement);\n if (child && child.nodeType === ELEMENT_TYPE && child.hasAttribute(SC_ATTR)) {\n return ((child: any): HTMLStyleElement);\n }\n }\n\n return undefined;\n};\n\n/** Create a style element inside `target` or after the last */\nexport const makeStyleTag = (target?: HTMLElement): HTMLStyleElement => {\n const head = ((document.head: any): HTMLElement);\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return ((tag.sheet: any): CSSStyleSheet);\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return ((sheet: any): CSSStyleSheet);\n }\n }\n\n throwStyledError(17);\n return (undefined: any);\n};\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport { makeStyleTag, getSheet } from './dom';\nimport type { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions): Tag => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n\n // Avoid Edge bug where empty style elements don't create sheets\n element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule !== undefined && typeof rule.cssText === 'string') {\n return rule.cssText;\n } else {\n return '';\n }\n }\n}\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport class TextTag implements Tag {\n element: HTMLStyleElement;\n\n nodes: NodeList;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n this.nodes = element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.nodes[index].textContent;\n } else {\n return '';\n }\n }\n}\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: HTMLElement) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n}\n","// @flow\nimport { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport type { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean,\n useCSSOMInjection?: boolean,\n target?: HTMLElement,\n};\n\ntype GlobalStylesAllocationMap = { [key: string]: number };\ntype NamesAllocationMap = Map>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n\n names: NamesAllocationMap;\n\n options: SheetOptions;\n\n server: boolean;\n\n tag: void | GroupedTag;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT,\n globalStyles?: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames?: boolean = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag(): GroupedTag {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id): any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id): any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id): any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n\n /** Outputs the current sheet as a CSS string with markers for SSR */\n toString(): string {\n return outputSheet(this);\n }\n}\n","// @flow\n/* eslint-disable no-bitwise */\n\nconst AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number): string =>\n String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number): string {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","// @flow\n/* eslint-disable */\n\nexport const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string): number => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string): number => {\n return phash(SEED, x);\n};\n","// @flow\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\nimport type { RuleSet } from '../types';\n\nexport default function isStaticRules(rules: RuleSet): boolean {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n","// @flow\nimport { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n\n baseStyle: ?ComponentStyle;\n\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n staticRulesId: string;\n\n constructor(rules: RuleSet, componentId: string, baseStyle?: ComponentStyle) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic = process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n this.baseHash = phash(SEED, componentId);\n\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n generateAndInjectStyles(executionContext: Object, styleSheet: StyleSheet, stylis: Stringifier) {\n const { componentId } = this;\n\n const names = [];\n\n if (this.baseStyle) {\n names.push(this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis));\n }\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(componentId, this.staticRulesId)) {\n names.push(this.staticRulesId);\n } else {\n const cssStatic = flatten(this.rules, executionContext, styleSheet, stylis).join('');\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, componentId);\n\n styleSheet.insertRules(componentId, name, cssStaticFormatted);\n }\n\n names.push(name);\n this.staticRulesId = name;\n }\n } else {\n const { length } = this.rules;\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule + i);\n } else if (partRule) {\n const partChunk = flatten(partRule, executionContext, styleSheet, stylis);\n const partString = Array.isArray(partChunk) ? partChunk.join('') : partChunk;\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssFormatted = stylis(css, `.${name}`, undefined, componentId);\n styleSheet.insertRules(componentId, name, cssFormatted);\n }\n\n names.push(name);\n }\n }\n\n return names.join(' ');\n }\n}\n","import Stylis from '@emotion/stylis';\nimport { type Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { phash, SEED } from './hash';\nimport insertRulePlugin from './stylisPluginInsertRule';\n\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\nconst COMPLEX_SELECTOR_PREFIX = [':', '[', '.', '#'];\n\ntype StylisInstanceConstructorArgs = {\n options?: Object,\n plugins?: Array,\n};\n\nexport default function createStylisInstance({\n options = EMPTY_OBJECT,\n plugins = EMPTY_ARRAY,\n}: StylisInstanceConstructorArgs = EMPTY_OBJECT) {\n const stylis = new Stylis(options);\n\n // Wrap `insertRulePlugin to build a list of rules,\n // and then make our own plugin to return the rules. This\n // makes it easier to hook into the existing SSR architecture\n\n let parsingRules = [];\n\n // eslint-disable-next-line consistent-return\n const returnRulesPlugin = context => {\n if (context === -2) {\n const parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n };\n\n const parseRulesPlugin = insertRulePlugin(rule => {\n parsingRules.push(rule);\n });\n\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n let _consecutiveSelfRefRegExp: RegExp;\n\n const selfReferenceReplacer = (match, offset, string) => {\n if (\n // do not replace the first occurrence if it is complex (has a modifier)\n (offset === 0 ? COMPLEX_SELECTOR_PREFIX.indexOf(string[_selector.length]) === -1 : true) &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n !string.match(_consecutiveSelfRefRegExp)\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v3.5.4#plugins <- more info about the context phase values\n * \"2\" means this plugin is taking effect at the very end after all other processing is complete\n */\n const selfReferenceReplacementPlugin = (context, _, selectors) => {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n stylis.use([...plugins, selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\n\n function stringifyRules(css, selector, prefix, componentId = '&'): Stringifier {\n const flatCSS = css.replace(COMMENT_REGEX, '');\n const cssStr = selector && prefix ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n _consecutiveSelfRefRegExp = new RegExp(`(\\\\${_selector}\\\\b){2,}`);\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n }\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2016 Sultan Tarimo\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR\n * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/* eslint-disable */\n\nexport default function(insertRule) {\n const delimiter = '/*|*/';\n const needle = `${delimiter}}`;\n\n function toSheet(block) {\n if (block) {\n try {\n insertRule(`${block}}`);\n } catch (e) {}\n }\n }\n\n return function ruleSheet(\n context,\n content,\n selectors,\n parents,\n line,\n column,\n length,\n ns,\n depth,\n at\n ) {\n switch (context) {\n // property\n case 1:\n // @import\n if (depth === 0 && content.charCodeAt(0) === 64) return insertRule(`${content};`), '';\n break;\n // selector\n case 2:\n if (ns === 0) return content + delimiter;\n break;\n // at-rule\n case 3:\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n return insertRule(selectors[0] + content), '';\n default:\n return content + (at === 0 ? delimiter : '');\n }\n case -2:\n content.split(needle).forEach(toSheet);\n }\n };\n}\n","// @flow\nimport React, { type Context, type Node, useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport StyleSheet from '../sheet';\nimport type { Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\ntype Props = {\n children?: Node,\n disableCSSOMInjection?: boolean,\n disableVendorPrefixes?: boolean,\n sheet?: StyleSheet,\n stylisPlugins?: Array,\n target?: HTMLElement,\n};\n\nexport const StyleSheetContext: Context = React.createContext();\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\nexport const StylisContext: Context = React.createContext();\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport const masterSheet: StyleSheet = new StyleSheet();\nexport const masterStylis: Stringifier = createStylisInstance();\n\nexport function useStyleSheet(): StyleSheet {\n return useContext(StyleSheetContext) || masterSheet;\n}\n\nexport function useStylis(): Stringifier {\n return useContext(StylisContext) || masterStylis;\n}\n\nexport default function StyleSheetManager(props: Props) {\n const [plugins, setPlugins] = useState(props.stylisPlugins);\n const contextStyleSheet = useStyleSheet();\n\n const styleSheet = useMemo(() => {\n let sheet = contextStyleSheet;\n\n if (props.sheet) {\n // eslint-disable-next-line prefer-destructuring\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target]);\n\n const stylis = useMemo(\n () =>\n createStylisInstance({\n options: { prefix: !props.disableVendorPrefixes },\n plugins,\n }),\n [props.disableVendorPrefixes, plugins]\n );\n\n useEffect(() => {\n if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n }, [props.stylisPlugins]);\n\n return (\n \n \n {process.env.NODE_ENV !== 'production'\n ? React.Children.only(props.children)\n : props.children}\n \n \n );\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport { type Stringifier } from '../types';\nimport throwStyledError from '../utils/error';\nimport { masterStylis } from './StyleSheetManager';\n\nexport default class Keyframes {\n id: string;\n\n name: string;\n\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = masterStylis) => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n toString = () => {\n return throwStyledError(12, String(this.name));\n };\n\n getName(stylisInstance: Stringifier = masterStylis) {\n return this.name + stylisInstance.hash;\n }\n}\n","// @flow\n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nconst uppercaseCheck = /([A-Z])/;\nconst uppercasePattern = /([A-Z])/g;\nconst msPattern = /^ms-/;\nconst prefixAndLowerCase = (char: string): string => `-${char.toLowerCase()}`;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nexport default function hyphenateStyleName(string: string): string {\n return uppercaseCheck.test(string)\n ? string\n .replace(uppercasePattern, prefixAndLowerCase)\n .replace(msPattern, '-ms-')\n : string;\n}\n","// @flow\nimport { isElement } from 'react-is';\nimport getComponentName from './getComponentName';\nimport isFunction from './isFunction';\nimport isStatelessFunction from './isStatelessFunction';\nimport isPlainObject from './isPlainObject';\nimport isStyledComponent from './isStyledComponent';\nimport Keyframes from '../models/Keyframes';\nimport hyphenate from './hyphenateStyleName';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { type Stringifier } from '../types';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = chunk => chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Object, prevKey?: string): Array => {\n const rules = [];\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || isFalsish(obj[key])) continue;\n\n if ((Array.isArray(obj[key]) && obj[key].isCss) || isFunction(obj[key])) {\n rules.push(`${hyphenate(key)}:`, obj[key], ';');\n } else if (isPlainObject(obj[key])) {\n rules.push(...objToCssArray(obj[key], key));\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, obj[key])};`);\n }\n }\n\n return prevKey ? [`${prevKey} {`, ...rules, '}'] : rules;\n};\n\nexport default function flatten(\n chunk: any,\n executionContext: ?Object,\n styleSheet: ?Object,\n stylisInstance: ?Stringifier\n): any {\n if (Array.isArray(chunk)) {\n const ruleSet = [];\n\n for (let i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet, stylisInstance);\n\n if (result === '') continue;\n else if (Array.isArray(result)) ruleSet.push(...result);\n else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return '';\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return `.${chunk.styledComponentId}`;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(result)) {\n // eslint-disable-next-line no-console\n console.warn(\n `${getComponentName(\n chunk\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten(result, executionContext, styleSheet, stylisInstance);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return chunk.getName(stylisInstance);\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n","// @flow\nexport default function isStatelessFunction(test: any): boolean {\n return (\n typeof test === 'function'\n && !(\n test.prototype\n && test.prototype.isReactComponent\n )\n );\n}\n","// @flow\nimport unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any): any {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless) && !name.startsWith('--')) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers except for CSS variables\n }\n\n return String(value).trim();\n}\n","// @flow\nimport interleave from '../utils/interleave';\nimport isPlainObject from '../utils/isPlainObject';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport isFunction from '../utils/isFunction';\nimport flatten from '../utils/flatten';\nimport type { Interpolation, RuleSet, Styles } from '../types';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = arg => {\n if (Array.isArray(arg)) {\n // eslint-disable-next-line no-param-reassign\n arg.isCss = true;\n }\n return arg;\n};\n\nexport default function css(styles: Styles, ...interpolations: Array): RuleSet {\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return addTag(flatten(interleave(EMPTY_ARRAY, [styles, ...interpolations])));\n }\n\n if (interpolations.length === 0 && styles.length === 1 && typeof styles[0] === 'string') {\n // $FlowFixMe\n return styles;\n }\n\n // $FlowFixMe\n return addTag(flatten(interleave(styles, interpolations)));\n}\n","// @flow\n\nimport { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string) => {\n if (process.env.NODE_ENV !== 'production') {\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error // eslint-disable-line no-console\n try {\n let didNotCallInvalidHook = true\n /* $FlowIgnore[cannot-write] */\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => { // eslint-disable-line no-console\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n }\n // We purposefully call `useRef` outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useRef();\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n // eslint-disable-next-line no-console\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(error.message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n /* $FlowIgnore[cannot-write] */\n console.error = originalConsoleError; // eslint-disable-line no-console\n }\n }\n};\n","// @flow\nimport { EMPTY_OBJECT } from './empties';\n\ntype Props = {\n theme?: any,\n};\n\nexport default (props: Props, providedTheme: any, defaultProps: any = EMPTY_OBJECT) => {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n};\n","// @flow\n\n// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string): string {\n return (\n str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '')\n );\n}\n","// @flow\n/* eslint-disable */\nimport generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default (str: string): string => {\n return generateAlphabeticName(hash(str) >>> 0);\n};\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function isTag(target: $PropertyType): boolean %checks {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n","/* eslint-disable */\n/**\n mixin-deep; https://github.com/jonschlinkert/mixin-deep\n Inlined such that it will be consistently transpiled to an IE-compatible syntax.\n\n The MIT License (MIT)\n\n Copyright (c) 2014-present, Jon Schlinkert.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\n\nconst isObject = val => {\n return (\n typeof val === 'function' || (typeof val === 'object' && val !== null && !Array.isArray(val))\n );\n};\n\nconst isValidKey = key => {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n};\n\nfunction mixin(target, val, key) {\n const obj = target[key];\n if (isObject(val) && isObject(obj)) {\n mixinDeep(obj, val);\n } else {\n target[key] = val;\n }\n}\n\nexport default function mixinDeep(target, ...rest) {\n for (const obj of rest) {\n if (isObject(obj)) {\n for (const key in obj) {\n if (isValidKey(key)) {\n mixin(target, obj[key], key);\n }\n }\n }\n }\n\n return target;\n}\n","// @flow\nimport React, { useContext, useMemo, type Element, type Context } from 'react';\nimport throwStyledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\nexport type Theme = { [key: string]: mixed };\n\ntype ThemeArgument = Theme | ((outerTheme?: Theme) => Theme);\n\ntype Props = {\n children?: Element,\n theme: ThemeArgument,\n};\n\nexport const ThemeContext: Context = React.createContext();\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: Theme): Theme {\n if (!theme) {\n return throwStyledError(14);\n }\n\n if (isFunction(theme)) {\n const mergedTheme = theme(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n return throwStyledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n return throwStyledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props) {\n const outerTheme = useContext(ThemeContext);\n const themeContext = useMemo(() => mergeTheme(props.theme, outerTheme), [\n props.theme,\n outerTheme,\n ]);\n\n if (!props.children) {\n return null;\n }\n\n return {props.children};\n}\n","// @flow\nimport validAttr from '@emotion/is-prop-valid';\nimport hoist from 'hoist-non-react-statics';\nimport React, { createElement, type Ref, useContext } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n Attrs,\n IStyledComponent,\n IStyledStatics,\n RuleSet,\n ShouldForwardProp,\n Target,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport getComponentName from '../utils/getComponentName';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport joinStrings from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheet, useStylis } from './StyleSheetManager';\nimport { ThemeContext } from './ThemeProvider';\n\nconst identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(displayName?: string, parentComponentId?: string) {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useResolvedAttrs(theme: any = EMPTY_OBJECT, props: Config, attrs: Attrs) {\n // NOTE: can't memoize this\n // returns [context, resolvedAttrs]\n // where resolvedAttrs is only the things injected by the attrs themselves\n const context = { ...props, theme };\n const resolvedAttrs = {};\n\n attrs.forEach(attrDef => {\n let resolvedAttrDef = attrDef;\n let key;\n\n if (isFunction(resolvedAttrDef)) {\n resolvedAttrDef = resolvedAttrDef(context);\n }\n\n /* eslint-disable guard-for-in */\n for (key in resolvedAttrDef) {\n context[key] = resolvedAttrs[key] =\n key === 'className'\n ? joinStrings(resolvedAttrs[key], resolvedAttrDef[key])\n : resolvedAttrDef[key];\n }\n /* eslint-enable guard-for-in */\n });\n\n return [context, resolvedAttrs];\n}\n\nfunction useInjectedStyle(\n componentStyle: ComponentStyle,\n isStatic: boolean,\n resolvedAttrs: T,\n warnTooManyClasses?: $Call\n) {\n const styleSheet = useStyleSheet();\n const stylis = useStylis();\n\n const className = isStatic\n ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis)\n : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);\n\n if (process.env.NODE_ENV !== 'production' && !isStatic && warnTooManyClasses) {\n warnTooManyClasses(className);\n }\n\n return className;\n}\n\nfunction useStyledComponentImpl(\n forwardedComponent: IStyledComponent,\n props: Object,\n forwardedRef: Ref,\n isStatic: boolean\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n shouldForwardProp,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, useContext(ThemeContext), defaultProps);\n\n const [context, attrs] = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs);\n\n const generatedClassName = useInjectedStyle(\n componentStyle,\n isStatic,\n context,\n process.env.NODE_ENV !== 'production' ? forwardedComponent.warnTooManyClasses : undefined\n );\n\n const refToForward = forwardedRef;\n\n const elementToBeCreated: Target = attrs.$as || props.$as || attrs.as || props.as || target;\n\n const isTargetTag = isTag(elementToBeCreated);\n const computedProps = attrs !== props ? { ...props, ...attrs } : props;\n const propsForElement = {};\n\n // eslint-disable-next-line guard-for-in\n for (const key in computedProps) {\n if (key[0] === '$' || key === 'as') continue;\n else if (key === 'forwardedAs') {\n propsForElement.as = computedProps[key];\n } else if (\n shouldForwardProp\n ? shouldForwardProp(key, validAttr, elementToBeCreated)\n : isTargetTag\n ? validAttr(key)\n : true\n ) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (props.style && attrs.style !== props.style) {\n propsForElement.style = { ...props.style, ...attrs.style };\n }\n\n propsForElement.className = Array.prototype\n .concat(\n foldedComponentIds,\n styledComponentId,\n generatedClassName !== styledComponentId ? generatedClassName : null,\n props.className,\n attrs.className\n )\n .filter(Boolean)\n .join(' ');\n\n propsForElement.ref = refToForward;\n\n return createElement(elementToBeCreated, propsForElement);\n}\n\nexport default function createStyledComponent(\n target: $PropertyType,\n options: {\n attrs?: Attrs,\n componentId: string,\n displayName?: string,\n parentComponentId?: string,\n shouldForwardProp?: ShouldForwardProp,\n },\n rules: RuleSet\n) {\n const isTargetStyledComp = isStyledComponent(target);\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && ((target: any): IStyledComponent).attrs\n ? Array.prototype.concat(((target: any): IStyledComponent).attrs, attrs).filter(Boolean)\n : attrs;\n\n // eslint-disable-next-line prefer-destructuring\n let shouldForwardProp = options.shouldForwardProp;\n\n if (isTargetStyledComp && target.shouldForwardProp) {\n if (options.shouldForwardProp) {\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, filterFn, elementToBeCreated) =>\n ((((target: any): IStyledComponent).shouldForwardProp: any): ShouldForwardProp)(\n prop,\n filterFn,\n elementToBeCreated\n ) &&\n ((options.shouldForwardProp: any): ShouldForwardProp)(prop, filterFn, elementToBeCreated);\n } else {\n // eslint-disable-next-line prefer-destructuring\n shouldForwardProp = ((target: any): IStyledComponent).shouldForwardProp;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? ((target: Object).componentStyle: ComponentStyle) : undefined\n );\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n const isStatic = componentStyle.isStatic && attrs.length === 0;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent: IStyledComponent;\n\n const forwardRef = (props, ref) =>\n // eslint-disable-next-line\n useStyledComponentImpl(WrappedStyledComponent, props, ref, isStatic);\n\n forwardRef.displayName = displayName;\n\n WrappedStyledComponent = ((React.forwardRef(forwardRef): any): IStyledComponent);\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.displayName = displayName;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? Array.prototype.concat(\n ((target: any): IStyledComponent).foldedComponentIds,\n ((target: any): IStyledComponent).styledComponentId\n )\n : EMPTY_ARRAY;\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp\n ? ((target: any): IStyledComponent).target\n : target;\n\n WrappedStyledComponent.withComponent = function withComponent(tag: Target) {\n const { componentId: previousComponentId, ...optionsToCopy } = options;\n\n const newComponentId =\n previousComponentId &&\n `${previousComponentId}-${isTag(tag) ? tag : escape(getComponentName(tag))}`;\n\n const newOptions = {\n ...optionsToCopy,\n attrs: finalAttrs,\n componentId: newComponentId,\n };\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, ((target: any): IStyledComponent).defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n // If the Object prototype is frozen, the \"toString\" property is non-writable. This means that any objects which inherit this property\n // cannot have the property changed using an assignment. If using strict mode, attempting that will cause an error. If not using strict\n // mode, attempting that will be silently ignored.\n // However, we can still explicitly shadow the prototype's \"toString\" property by defining a new \"toString\" property on this object.\n Object.defineProperty(WrappedStyledComponent, 'toString', { value: () => `.${WrappedStyledComponent.styledComponentId}` });\n\n if (isCompositeComponent) {\n hoist<\n IStyledStatics,\n $PropertyType,\n { [key: $Keys]: true }\n >(WrappedStyledComponent, ((target: any): $PropertyType), {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n withComponent: true,\n });\n }\n\n return WrappedStyledComponent;\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(\n target: $PropertyType\n): string {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport default function joinStrings(a: ?String, b: ?String): ?String {\n return a && b ? `${a} ${b}` : a || b;\n}\n","// @flow\n// Thanks to ReactDOMFactories for this handy list!\n\nexport default [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'textPath',\n 'tspan',\n];\n","// @flow\nimport constructWithOptions from './constructWithOptions';\nimport StyledComponent from '../models/StyledComponent';\nimport domElements from '../utils/domElements';\n\nimport type { Target } from '../types';\n\nconst styled = (tag: Target) => constructWithOptions(StyledComponent, tag);\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n styled[domElement] = styled(domElement);\n});\n\nexport default styled;\n","// @flow\nimport { isValidElementType } from 'react-is';\nimport css from './css';\nimport throwStyledError from '../utils/error';\nimport { EMPTY_OBJECT } from '../utils/empties';\n\nimport type { Target } from '../types';\n\nexport default function constructWithOptions(\n componentConstructor: Function,\n tag: Target,\n options: Object = EMPTY_OBJECT\n) {\n if (!isValidElementType(tag)) {\n return throwStyledError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n const templateFunction = (...args) => componentConstructor(tag, options, css(...args));\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = config =>\n constructWithOptions(componentConstructor, tag, { ...options, ...config });\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = attrs =>\n constructWithOptions(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n return templateFunction;\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\n\nexport default class GlobalStyle {\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n constructor(rules: RuleSet, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n const flatCSS = flatten(this.rules, executionContext, styleSheet, stylis);\n const css = stylis(flatCSS.join(''), '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet) {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n","// @flow\nimport React, { useContext, useLayoutEffect, useRef } from 'react';\nimport { STATIC_EXECUTION_CONTEXT } from '../constants';\nimport GlobalStyle from '../models/GlobalStyle';\nimport { useStyleSheet, useStylis } from '../models/StyleSheetManager';\nimport { ThemeContext } from '../models/ThemeProvider';\nimport type { Interpolation } from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport determineTheme from '../utils/determineTheme';\nimport generateComponentId from '../utils/generateComponentId';\nimport css from './css';\n\ndeclare var __SERVER__: boolean;\n\ntype GlobalStyleComponentPropsType = Object;\n\nexport default function createGlobalStyle(\n strings: Array,\n ...interpolations: Array\n) {\n const rules = css(strings, ...interpolations);\n const styledComponentId = `sc-global-${generateComponentId(JSON.stringify(rules))}`;\n const globalStyle = new GlobalStyle(rules, styledComponentId);\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(styledComponentId);\n }\n\n function GlobalStyleComponent(props: GlobalStyleComponentPropsType) {\n const styleSheet = useStyleSheet();\n const stylis = useStylis();\n const theme = useContext(ThemeContext);\n const instanceRef = useRef(styleSheet.allocateGSInstance(styledComponentId));\n\n const instance = instanceRef.current;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(props.children)) {\n // eslint-disable-next-line no-console\n console.warn(\n `The global style component ${styledComponentId} was given child JSX. createGlobalStyle does not render children.`\n );\n }\n\n if (\n process.env.NODE_ENV !== 'production' &&\n rules.some(rule => typeof rule === 'string' && rule.indexOf('@import') !== -1)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n `Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.`\n );\n }\n\n if (styleSheet.server) {\n renderStyles(instance, props, styleSheet, theme, stylis);\n }\n\n if (!__SERVER__) {\n // this conditional is fine because it is compiled away for the relevant builds during minification,\n // resulting in a single unguarded hook call\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n if (!styleSheet.server) {\n renderStyles(instance, props, styleSheet, theme, stylis);\n return () => globalStyle.removeStyles(instance, styleSheet);\n }\n }, [instance, props, styleSheet, theme, stylis]);\n }\n\n return null;\n }\n\n function renderStyles(instance, props, styleSheet, theme, stylis) {\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(instance, STATIC_EXECUTION_CONTEXT, styleSheet, stylis);\n } else {\n const context = {\n ...props,\n theme: determineTheme(props, theme, GlobalStyleComponent.defaultProps),\n };\n\n globalStyle.renderStyles(instance, context, styleSheet, stylis);\n }\n }\n\n // $FlowFixMe\n return React.memo(GlobalStyleComponent);\n}\n","// @flow\n\nimport css from './css';\nimport generateComponentId from '../utils/generateComponentId';\nimport Keyframes from '../models/Keyframes';\n\nimport type { Interpolation, Styles } from '../types';\n\nexport default function keyframes(\n strings: Styles,\n ...interpolations: Array\n): Keyframes {\n /* Warning if you've used keyframes on React Native */\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n '`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.'\n );\n }\n\n const rules = css(strings, ...interpolations).join('');\n const name = generateComponentId(rules);\n return new Keyframes(name, rules);\n}\n","// @flow\n/* eslint-disable no-underscore-dangle */\nimport React from 'react';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport throwStyledError from '../utils/error';\nimport getNonce from '../utils/nonce';\nimport StyleSheet from '../sheet';\nimport StyleSheetManager from './StyleSheetManager';\n\ndeclare var __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n isStreaming: boolean;\n\n instance: StyleSheet;\n\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n if (!css) return '';\n\n const nonce = getNonce();\n const attrs = [nonce && `nonce=\"${nonce}\"`, `${SC_ATTR}=\"true\"`, `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`];\n const htmlAttr = attrs.filter(Boolean).join(' ');\n\n return ``;\n };\n\n collectStyles(children: any) {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: this.instance.toString(),\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props: any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [\n \n );\n};\n\nexport default LoadingMessages;\n","import { Modal, ModalBody, Progress } from 'reactstrap';\nimport Lottie from 'lottie-react';\nimport animationData from '../../../assets/animations/lead_leads.anim.json';\nimport { useEffect, useState } from 'react';\nimport LoadingMessages from '../../../components/alerts/LoadingMessages';\n\ninterface LoadingModalProps {\n phrases?: string[];\n isDone?: boolean;\n}\n\nconst defaultMessages = [\n 'Initializing the process... Setting up the system',\n 'Connecting to the data source... This might take a moment',\n 'Fetching the data based on your criteria... Hang tight',\n 'Filtering and cleaning the data... Ensuring quality results',\n 'Analyzing the information... Looking for relevant matches',\n 'Sorting the results... Prioritizing the best options',\n 'Compiling the data... Almost ready to present it',\n 'Finalizing the process... Wrapping things up',\n 'Preparing your results... Getting everything in place',\n 'Your data is ready! Displaying it shortly',\n];\n\nexport const LoadingModal = ({ isDone = false }: LoadingModalProps) => {\n const simulateProgress = () => {\n let currentProgress = 0;\n const interval = setInterval(() => {\n currentProgress += Math.random() * 5 + 3;\n if (currentProgress >= 95) {\n clearInterval(interval);\n } else {\n setProgress(Math.min(currentProgress, 100));\n }\n }, 1000);\n };\n\n const [progress, setProgress] = useState(0);\n useEffect(() => {\n simulateProgress();\n }, []);\n\n return (\n \n \n
      \n {/* Lottie Animation */}\n \n\n {/* Loading Bar */}\n
      \n \n
      \n\n {/* Loading Messages */}\n \n
      \n
      \n
      \n );\n};\n","import { Navigate, Outlet } from 'react-router';\nimport { useEffect } from 'react';\nimport { jwtDecode } from 'jwt-decode';\nimport { useAuth } from '../context/Auth/auth.contex';\nimport { LoadingModal } from '../pages/components/modal/LoadingModal';\nimport { TPayload } from '../types/auth.types';\nimport { useNotification } from '../context/NotificationContext/useNotification';\n\nconst Protected = () => {\n const { user, setUser, isLoading, logout } = useAuth();\n const { createNotification } = useNotification();\n useEffect(() => {\n const token = localStorage.getItem('vit_a');\n if (token) {\n try {\n const decoded = jwtDecode(token);\n if (decoded.exp * 1000 > Date.now()) {\n setUser(decoded); // Define o usuário apenas se o token for válido\n } else {\n console.warn('Token expired');\n logout(); // Realiza logout se o token estiver expirado\n }\n } catch (error) {\n console.error('Invalid token', error);\n logout(); // Realiza logout se o token for inválido\n }\n } else {\n createNotification(\n 'danger',\n 'You are not logged in, please login to continue',\n );\n logout(); // Realiza logout se não houver token\n }\n }, []); // Array de dependências vazio para evitar re-execução\n\n if (isLoading) {\n return ;\n }\n\n if (!user?.publicId || !user.firstName) {\n return ;\n }\n\n return ;\n};\n\nexport default Protected;\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","var _excluded = [\"className\", \"closeClassName\", \"closeAriaLabel\", \"cssModule\", \"tag\", \"color\", \"isOpen\", \"toggle\", \"children\", \"transition\", \"fade\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport Fade from './Fade';\nvar propTypes = {\n /** Pass children so this component can wrap the child elements */\n children: PropTypes.node,\n /** Add custom class */\n className: PropTypes.string,\n /** Add custom class for close button */\n closeClassName: PropTypes.string,\n /** Aria label for close button */\n closeAriaLabel: PropTypes.string,\n /** Change color of alert */\n color: PropTypes.string,\n /** Change existing className with a new className */\n cssModule: PropTypes.object,\n /** Toggle fade animation */\n fade: PropTypes.bool,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]),\n /** Control visibility state of Alert */\n isOpen: PropTypes.bool,\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Function to toggle visibility */\n toggle: PropTypes.func,\n /** Props to be passed to `Fade` to modify transition */\n transition: PropTypes.shape(Fade.propTypes)\n};\nfunction Alert(props) {\n var className = props.className,\n closeClassName = props.closeClassName,\n _props$closeAriaLabel = props.closeAriaLabel,\n closeAriaLabel = _props$closeAriaLabel === void 0 ? 'Close' : _props$closeAriaLabel,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n _props$color = props.color,\n color = _props$color === void 0 ? 'success' : _props$color,\n _props$isOpen = props.isOpen,\n isOpen = _props$isOpen === void 0 ? true : _props$isOpen,\n toggle = props.toggle,\n children = props.children,\n _props$transition = props.transition,\n transition = _props$transition === void 0 ? _objectSpread(_objectSpread({}, Fade.defaultProps), {}, {\n unmountOnExit: true\n }) : _props$transition,\n _props$fade = props.fade,\n fade = _props$fade === void 0 ? true : _props$fade,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'alert', \"alert-\".concat(color), {\n 'alert-dismissible': toggle\n }), cssModule);\n var closeClasses = mapToCssModules(classNames('btn-close', closeClassName), cssModule);\n var alertTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), transition), {}, {\n baseClass: fade ? transition.baseClass : '',\n timeout: fade ? transition.timeout : 0\n });\n return /*#__PURE__*/React.createElement(Fade, _extends({}, attributes, alertTransition, {\n tag: Tag,\n className: classes,\n \"in\": isOpen,\n role: \"alert\",\n innerRef: innerRef\n }), toggle ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: closeClasses,\n \"aria-label\": closeAriaLabel,\n onClick: toggle\n }) : null, children);\n}\nAlert.propTypes = propTypes;\nexport default Alert;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component } from 'react';\nimport Alert from './Alert';\nvar UncontrolledAlert = /*#__PURE__*/function (_Component) {\n _inherits(UncontrolledAlert, _Component);\n var _super = _createSuper(UncontrolledAlert);\n function UncontrolledAlert(props) {\n var _this;\n _classCallCheck(this, UncontrolledAlert);\n _this = _super.call(this, props);\n _this.state = {\n isOpen: true\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(UncontrolledAlert, [{\n key: \"toggle\",\n value: function toggle() {\n this.setState(function (prevState) {\n return {\n isOpen: !prevState.isOpen\n };\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Alert, _extends({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, this.props));\n }\n }]);\n return UncontrolledAlert;\n}(Component);\nexport default UncontrolledAlert;","import React, { useEffect } from 'react';\nimport { UncontrolledAlert } from 'reactstrap';\nimport Icon from '../icon/Icon';\nimport { Notification } from '../../context/NotificationContext/NotificationContext';\n\ninterface NotificationComponentProps {\n notifications: Notification[];\n removeNotification: (id: string) => void;\n}\n\nconst NotificationComponent: React.FC = ({\n notifications,\n removeNotification,\n}) => {\n const hideNotificationTime = 6000;\n\n useEffect(() => {\n notifications.forEach(notification => {\n const timer = setTimeout(() => {\n removeNotification(notification.id);\n }, hideNotificationTime);\n\n return () => clearTimeout(timer);\n });\n }, [notifications, removeNotification]);\n\n const getNotificationColor = (type: Notification['type']) => {\n switch (type) {\n case 'success':\n return 'success';\n case 'danger':\n return 'danger';\n case 'warning':\n return 'warning';\n case 'info':\n return 'info';\n default:\n return 'primary';\n }\n };\n\n return (\n
      \n
      \n {notifications.map(notification => (\n \n \n {notification.message}\n \n ))}\n
      \n
      \n );\n};\n\nexport default NotificationComponent;\n","export class APIError extends Error {\n status: number;\n statusText: string;\n\n constructor(status: number, statusText: string, message: string) {\n super(message);\n this.status = status;\n this.statusText = statusText;\n this.name = 'APIError';\n }\n}\n\nexport const parseAPIResponse = (response: any): T => {\n const responseStatus = response.status;\n const statusText = response.statusText;\n console.log('#parseAPIResponse', responseStatus, statusText, response.data);\n\n if (\n response.data?.message &&\n (response.status < 200 || response.status >= 300)\n ) {\n throw new APIError(responseStatus, statusText, response.data.message);\n }\n\n if (responseStatus === 500) {\n throw new APIError(\n responseStatus,\n statusText,\n 'Server error. Please try again later.',\n );\n }\n\n return response.data as T;\n};\n","import React, { ReactNode, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { Notification, NotificationContext } from './NotificationContext';\nimport NotificationComponent from '../../components/alerts/Notification';\nimport { APIError } from '../../utils/apiError';\n\ninterface NotificationProviderProps {\n children: ReactNode;\n}\n\nconst NotificationProvider: React.FC = ({\n children,\n}) => {\n const [notifications, setNotifications] = useState([]);\n\n const createNotification = (type: Notification['type'], message: string) => {\n const id = uuidv4();\n setNotifications(prev => [...prev, { id, type, message }]);\n };\n\n const removeNotification = (id: string) => {\n setNotifications(prev =>\n prev.filter(notification => notification.id !== id),\n );\n };\n\n const handleAPIError = (err: unknown, defaultMessage?: string): void => {\n if (err instanceof APIError) {\n createNotification('danger', err.message);\n } else {\n createNotification(\n 'danger',\n defaultMessage || 'An error occurred. Please try again later.',\n );\n }\n };\n\n return (\n \n {children}\n \n \n );\n};\n\nexport default NotificationProvider;\n","import React from \"react\";\r\n\r\nconst Content = ({ ...props }) => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n {!props.page ? props.children : null}\r\n {props.page === \"component\" ? (\r\n
      {props.children}
      \r\n ) : null}\r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n};\r\nexport default Content;\r\n","import { Contact } from './contact.types';\nimport { TJobScrapFilters } from './jobScrape.types';\nimport { TJobWithCompany } from './job.types';\nimport { TLeadFilters } from './leadFilters.types';\n\nexport enum ECampaignStatus {\n PENDING = 'Pending',\n IN_PROGRESS = 'In Progress',\n COMPLETED = 'Completed',\n FAILED = 'Failed',\n}\n\nexport type TCreateCampaign = {\n name: string;\n userId: string;\n jobFilters: TJobScrapFilters;\n leadFilters: TLeadFilters;\n status: ECampaignStatus;\n};\n\nexport type TCampaign = TCreateCampaign & {\n publicId: string;\n jobs: string[] | [];\n contacts: Contact[] | [];\n status: ECampaignStatus;\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport type TAddJobsToCampaign = {\n campaignId: string;\n jobs: string[];\n};\n\nexport type TCampaignJobsCompany = Omit & {\n jobs: TJobWithCompany[];\n contacts: Contact[];\n};\n\nexport type TCampaignWithJobsPaginated = {\n campaign: TCampaignJobsCompany;\n totalJobs: number;\n};\n\nexport type TUserCampaignsPaginated = {\n campaigns: TCampaign[];\n total: number;\n};\n\nexport type TCampaignContactsPaginated = {\n totalContacts: number;\n contacts: Contact[];\n};\n","import {\n TCampaign,\n TCampaignContactsPaginated,\n TCampaignJobsCompany,\n TCampaignWithJobsPaginated,\n TCreateCampaign,\n TUserCampaignsPaginated,\n} from '../../types/lists.types';\nimport { TJobScrapFilters } from '../../types/jobScrape.types';\nimport { TLeadFilters } from '../../types/leadFilters.types';\nimport { api, checkError } from './server';\n\nexport const APIGetJobSearchesByUser = async (\n userId: string,\n currentPage: number,\n itemPerPage: number,\n): Promise => {\n try {\n const response = await api.get(\n `/job-search/user/${userId}?page=${currentPage}&limit=${itemPerPage}`,\n );\n return response.data as TUserCampaignsPaginated;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIGetJobSearchWithJobs = async (\n campaignId: string,\n userId: string,\n page: number,\n limit: number,\n): Promise => {\n try {\n const response = await api.get(\n `/job-search/${campaignId}/user/${userId}/jobs?page=${page}&limit=${limit}`,\n );\n return response.data as TCampaignWithJobsPaginated;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIGetJobSearchWithContacts = async (\n campaignId: string,\n userId: string,\n page: number,\n limit: number,\n): Promise => {\n try {\n const response = await api.get(\n `/job-search/${campaignId}/user/${userId}/contacts?page=${page}&limit=${limit}`,\n );\n return response.data as TCampaignJobsCompany;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APICreateJobSearch = async (\n campaign: TCreateCampaign,\n): Promise => {\n try {\n const response = await api.post('/job-search', campaign);\n return response.data as TCampaign;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIDeleteJobSearch = async (publicId: string): Promise => {\n try {\n await api.delete(`/job-search/${publicId}`);\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIDeleteContactsFromJobSearch = async (\n campaignId: string,\n contactIds: string[],\n): Promise => {\n try {\n await api.patch(`/job-search/${campaignId}/remove-contacts`, contactIds, {\n timeout: 100000,\n });\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIJobSearchContacts = async (\n userId: string,\n campaignId: string,\n page: number,\n limit: number,\n companyId?: string,\n): Promise => {\n try {\n const response = await api.get(\n `/job-search/${campaignId}/user/${userId}/contacts?page=${page}&limit=${limit}${companyId ? `&companyId=${companyId}` : ''}`,\n );\n return response.data as TCampaignContactsPaginated;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIGetJobSearchByPublicId = async (\n publicId: string,\n): Promise => {\n try {\n const response = await api.get(`/job-search/${publicId}`);\n return response.data as TCampaign;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APISearchJobSearchForJob = async (\n publicJobSearchId: string,\n jobId: string,\n): Promise => {\n try {\n const response = await api.get(\n `/job-search/${publicJobSearchId}/search-contacts?jobId=${jobId}`,\n );\n return response.data;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIRefreshJobsFromJobSearch = async (\n jobSearchId: string,\n): Promise => {\n try {\n await api.get(`/job-search/${jobSearchId}/refresh-jobs`);\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIUpdateJobSearch = async (\n campaignId: string,\n data: {\n name: string;\n leadFilters: TLeadFilters;\n jobFilters: TJobScrapFilters;\n },\n): Promise => {\n try {\n await api.patch(`/job-search/${campaignId}`, data);\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIRemoveJobsFromCampaign = async (\n campaignId: string,\n jobIds: string[],\n): Promise => {\n try {\n await api.patch(`/job-search/${campaignId}/remove-jobs`, jobIds);\n } catch (error: any) {\n return checkError(error);\n }\n};\n","import { Button } from '../../../components/Component';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faClose } from '@fortawesome/free-solid-svg-icons';\nimport { useState } from 'react';\n\ninterface CreateSearchModalProps {\n newCampaignName: string;\n setNewCampaignName: (value: string) => void;\n goToNextStep: () => void;\n onClose: () => void;\n isEditing: boolean;\n}\n\nexport default function CreateSearchModal({\n newCampaignName,\n setNewCampaignName,\n goToNextStep,\n onClose,\n isEditing,\n}: CreateSearchModalProps) {\n const [error, setError] = useState('');\n const validateCampaignName = () => {\n if (!newCampaignName) {\n setError('Campaign name is required.');\n return;\n }\n\n goToNextStep();\n };\n\n return (\n
      \n
      \n
      \n

      \n {isEditing ? 'Edit Search' : 'Create New Search'}\n

      \n \n
      \n \n Name of Search\n \n setNewCampaignName(e.target.value)}\n autoComplete=\"off\"\n />\n {error &&

      {error}

      }\n
      \n \n
      \n
      \n
      \n );\n}\n","import React from 'react';\n\ninterface BadgeProps {\n text: string;\n className?: string;\n color:\n | 'gray'\n | 'red'\n | 'yellow'\n | 'green'\n | 'blue'\n | 'indigo'\n | 'purple'\n | 'pink'\n | 'light-blue'\n | 'light-gray'\n | 'orange';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nconst colorClasses: Record = {\n gray: 'bg-gray-500',\n red: 'bg-red-500',\n yellow: 'bg-yellow-500',\n green: 'bg-greenColor',\n blue: 'bg-primary',\n indigo: 'bg-indigo-500',\n purple: 'bg-purple-500',\n pink: 'bg-pink-500',\n 'light-blue': 'bg-sky-400',\n 'light-gray': 'bg-gray-400',\n orange: 'bg-orange-500',\n};\n\nconst sizeClasses: Record, string> = {\n sm: 'py-0.5',\n md: 'py-1',\n lg: 'py-1.5',\n xl: 'py-2',\n};\n\nconst Badge: React.FC = ({\n text,\n className = '',\n color,\n size = 'md',\n}) => {\n return (\n \n {text}\n \n );\n};\n\nexport default Badge;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { millisecondsInHour, millisecondsInMinute } from \"./constants.mjs\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n const timestamp = date.getTime();\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n const dirtyDate = new Date(timestamp + time);\n // JS parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n const result = new Date(0);\n result.setFullYear(\n dirtyDate.getUTCFullYear(),\n dirtyDate.getUTCMonth(),\n dirtyDate.getUTCDate(),\n );\n result.setHours(\n dirtyDate.getUTCHours(),\n dirtyDate.getUTCMinutes(),\n dirtyDate.getUTCSeconds(),\n dirtyDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n","import {\n differenceInCalendarDays,\n format,\n parseISO,\n subDays,\n subMonths,\n} from 'date-fns';\n\nexport const today = new Date();\nexport const todayOnlyDate = format(today, 'yyyy-MM-dd');\n\nexport const calculateDifferenceBetweenDates = (start: Date, end: Date) =>\n differenceInCalendarDays(end, start);\n\nexport const getDateMonthsAgo = (months: number) => subMonths(today, months);\nexport const daysAgo = (days: number): Date => subDays(today, days);\nexport const parseDateToString = (date: Date): string =>\n format(date, 'yyyy-MM-dd');\n\nexport const formatDate = (date: Date): string => {\n return format(date, 'yyyy-MM-dd HH:mm:ss');\n};\n\nexport const formatDateToMonthYear = (date: string | Date): string => {\n if (!date) return 'N/A';\n\n try {\n const parsedDate = typeof date === 'string' ? parseISO(date) : date;\n return format(parsedDate, 'MMMM yyyy');\n } catch (error) {\n console.error('Invalid date format:', error);\n return 'Invalid Date';\n }\n};\n\nexport const formatDateTime = (isoDateString: string | Date): string => {\n try {\n const date =\n typeof isoDateString === 'string'\n ? new Date(isoDateString)\n : isoDateString;\n\n if (isNaN(date.getTime())) {\n return 'Invalid Date';\n }\n\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = String(date.getFullYear()).slice(-2);\n // Extract time components\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n\n return `${month}/${day}/${year} - ${hours}:${minutes}`;\n } catch (error) {\n console.error('Error formatting date:', error);\n return 'Invalid Date';\n }\n};\n","export const industriesMapper = [\n 'Real Estate',\n 'Design Services',\n 'Retail',\n 'Chemical Manufacturing',\n 'Broadcast Media Production and Distribution',\n 'Telecommunications',\n 'Retail Art Supplies',\n 'Wholesale Import and Export',\n 'Fine Art',\n 'Information Technology & Services',\n 'Advertising Services',\n 'Food and Beverage Services',\n 'Technology, Information and Internet',\n 'E-learning',\n 'Financial Services',\n 'Non-profit Organizations',\n 'Software Development',\n 'Computer Networking Products',\n 'Government Relations',\n 'Packaging & Containers',\n 'Education Administration Programs',\n 'Capital Markets',\n 'Manufacturing',\n 'Higher Education',\n 'Renewables & Environment',\n 'Retail Apparel and Fashion',\n 'Accounting',\n 'Construction',\n 'Law Practice',\n 'Business Consulting and Services',\n 'Alternative Medicine',\n 'Agriculture, Construction, Mining Machinery Manufacturing',\n 'Executive Offices',\n 'Restaurants',\n 'Online Audio and Video Media',\n 'International Trade and Development',\n 'Performing Arts',\n 'Management Consulting',\n 'Professional Training & Coaching',\n 'IT Services and IT Consulting',\n 'Environmental Services',\n 'Music',\n 'Food & Beverages',\n 'Internet',\n 'Wholesale',\n 'Oil and Gas',\n 'Design',\n 'Professional Training and Coaching',\n 'Investment Management',\n 'Apparel & Fashion',\n 'Book and Periodical Publishing',\n 'Information Services',\n 'Mining',\n 'Photography',\n 'Transportation/Trucking/Railroad',\n 'Appliances, Electrical, and Electronics Manufacturing',\n 'Furniture and Home Furnishings Manufacturing',\n 'Hospitals and Health Care',\n 'Entertainment Providers',\n 'Consumer Services',\n 'Food Production',\n 'Human Resources Services',\n 'Staffing and Recruiting',\n 'Machinery Manufacturing',\n 'Wellness and Fitness Services',\n 'Legal Services',\n 'Civil Engineering',\n 'Religious Institutions',\n 'Transportation, Logistics, Supply Chain and Storage',\n 'Public Relations and Communications Services',\n 'Sports',\n 'Events Services',\n 'Artists and Writers',\n 'Venture Capital and Private Equity Principals',\n 'Medical Equipment Manufacturing',\n 'Automotive',\n 'Consumer Electronics',\n 'Architecture and Planning',\n 'Insurance',\n 'Health, Wellness & Fitness',\n 'Market Research',\n 'Writing and Editing',\n 'Media Production',\n 'Musicians',\n 'Personal Care Product Manufacturing',\n 'Mental Health Care',\n 'International Trade & Development',\n 'Printing Services',\n 'Biotechnology Research',\n 'Motor Vehicle Manufacturing',\n 'Computer Hardware',\n 'Industrial Machinery Manufacturing',\n 'Biotechnology',\n 'Spectator Sports',\n 'Retail Luxury Goods and Jewelry',\n 'Movies, Videos, and Sound',\n 'Wine & Spirits',\n 'Philanthropic Fundraising Services',\n 'Medical Device',\n 'Plastics Manufacturing',\n 'Entertainment',\n 'Newspaper Publishing',\n 'Education',\n 'Travel Arrangements',\n 'Law Enforcement',\n 'Commercial Real Estate',\n 'Renewable Energy Semiconductor Manufacturing',\n 'Arts & Crafts',\n 'International Affairs',\n 'Banking',\n 'Industrial Automation',\n 'Dairy Product Manufacturing',\n 'Human Resources',\n 'Retail Office Equipment',\n 'Truck Transportation',\n 'Airlines and Aviation',\n 'Packaging and Containers Manufacturing',\n 'Defense & Space',\n 'Beverage Manufacturing',\n 'Graphic Design',\n 'Automation Machinery Manufacturing',\n 'Individual and Family Services',\n 'Pharmaceutical Manufacturing',\n 'Research',\n 'Business Supplies & Equipment',\n 'Farming',\n 'Hospital & Health Care',\n 'Medical Practices',\n 'Government Administration',\n 'Wholesale Building Materials',\n 'Consumer Goods',\n 'Security and Investigations',\n 'Furniture',\n 'Education Management',\n 'Pharmaceuticals',\n 'Government Relations Services',\n 'Oil & Energy',\n 'Public Safety',\n 'Fundraising',\n 'Facilities Services',\n 'Non-profit Organization Management',\n 'Venture Capital & Private Equity',\n 'Computer and Network Security',\n 'Translation and Localization',\n 'Primary and Secondary Education',\n 'Investment Advice',\n 'Gambling Facilities and Casinos',\n 'Online Media',\n 'Civic and Social Organizations',\n 'Mechanical Or Industrial Engineering',\n 'Semiconductors',\n 'Glass, Ceramics and Concrete Manufacturing',\n 'Glass, Ceramics & Concrete',\n 'Leisure, Travel & Tourism',\n 'Strategic Management Services',\n 'Research Services',\n 'Other',\n 'Utilities',\n 'Think Tanks',\n 'Writing & Editing',\n 'Import & Export',\n 'Gambling & Casinos',\n 'Veterinary',\n 'Translation & Localization',\n 'Defense and Space Manufacturing',\n 'Textile Manufacturing',\n 'Sporting Goods',\n 'Staffing & Recruiting',\n 'Aviation and Aerospace Component Manufacturing',\n 'Broadcast Media',\n 'Veterinary Services',\n 'E-Learning Providers',\n 'Sports Teams and Clubs',\n 'Food and Beverage Manufacturing',\n 'Recreational Facilities',\n 'Electrical & Electronic Manufacturing',\n 'Movies and Sound Recording',\n 'Judiciary',\n 'Food and Beverage Retail',\n 'Outsourcing and Offshoring Consulting',\n 'Paper and Forest Product Manufacturing',\n 'Logistics & Supply Chain',\n 'Investment Banking',\n 'Political Organizations',\n 'Computer Software',\n 'Animation',\n 'Maritime Transportation',\n 'Warehousing and Storage',\n 'Libraries',\n 'Leasing Non-residential Real Estate',\n 'Philanthropy',\n 'Sporting Goods Manufacturing',\n 'Luxury Goods & Jewelry',\n 'Maritime',\n 'Museums, Historical Sites, and Zoos',\n 'Ranching',\n 'Cosmetics',\n 'Computers and Electronics Manufacturing',\n 'Textiles',\n 'Building Materials',\n 'Civic & Social Organization',\n 'Aviation & Aerospace',\n 'Architecture & Planning',\n 'Alternative Dispute Resolution',\n 'Wireless Services',\n 'Computer Games',\n 'Freight and Package Transportation',\n 'Public Policy Offices',\n 'Publishing',\n 'Printing',\n 'Sports and Recreation Instruction',\n 'Fisheries',\n 'Nanotechnology Research',\n 'Building Construction',\n 'Public Relations & Communications',\n 'Program Development',\n 'Animation and Post-production',\n 'Armed Forces',\n 'Computer Hardware Manufacturing',\n 'Computer Networking',\n 'Paper & Forest Products',\n 'Security & Investigations',\n 'Computer & Network Security',\n 'Services for Renewable Energy',\n 'Chemicals',\n 'IT System Custom Software Development',\n 'Semiconductor Manufacturing',\n 'Operations Consulting',\n 'Professional Services',\n 'Marketing & Advertising',\n 'Tobacco Manufacturing',\n 'Warehousing',\n 'Executive Office',\n 'Machinery',\n 'Internet Marketplace Platforms',\n 'Outsourcing/Offshoring',\n 'Insurance Agencies and Brokerages',\n 'Marketing Services',\n 'Technology, Information and Media',\n 'Commercial and Industrial Machinery Maintenance',\n 'Railroad Equipment Manufacturing',\n 'Administration of Justice',\n 'Primary/Secondary Education',\n 'Security Systems Services',\n 'Solar Electric Power Generation',\n 'Internet Publishing',\n 'Political Organization',\n 'Legislative Offices',\n 'Retail Appliances, Electrical, and Electronic Equipment',\n 'Engineering Services',\n 'Medical Practice',\n 'Newspapers',\n 'Public Policy',\n 'Renewable Energy Power Generation',\n 'Motor Vehicle Parts Manufacturing',\n 'Media and Telecommunications',\n 'Individual & Family Services',\n 'Shipbuilding',\n 'Golf Courses and Country Clubs',\n 'Rail Transportation',\n 'Retail Groceries',\n 'Real Estate Agents and Brokers',\n 'Wholesale Motor Vehicles and Parts',\n 'Electric Power Generation',\n 'Wholesale Furniture and Home Furnishings',\n 'Vehicle Repair and Maintenance',\n 'Digital Accessibility Services',\n 'Recreational Facilities & Services',\n 'IT System Design Services',\n 'Retail Furniture and Home Furnishings',\n 'Health and Human Services',\n 'Mining & Metals',\n 'Retail Books and Printed News',\n 'Fabricated Metal Products',\n 'Book Publishing',\n 'Package/Freight Delivery',\n 'Leather Product Manufacturing',\n 'Dentists',\n 'Tobacco',\n 'Economic Programs',\n 'Military',\n 'Ground Passenger Transportation',\n 'Plastics',\n 'Dairy',\n 'Physicians',\n 'Space Research and Technology',\n 'Executive Search Services',\n 'Wholesale Paper Products',\n 'Repair and Maintenance',\n 'Personal Care Services',\n 'Community Services',\n 'Retail Motor Vehicles',\n 'Supermarkets',\n 'Wireless',\n 'Periodical Publishing',\n 'Plastics and Rubber Product Manufacturing',\n 'Retail Health and Personal Care Products',\n 'Data Infrastructure and Analytics',\n 'Interior Design',\n 'Bars, Taverns, and Nightclubs',\n 'Water, Waste, Steam, and Air Conditioning Services',\n 'Urban Transit Services',\n 'Zoos and Botanical Gardens',\n 'Nanotechnology',\n 'Airlines/Aviation',\n 'Railroad Manufacture',\n 'IT System Operations and Maintenance',\n 'Leasing Residential Real Estate',\n 'Fishery',\n 'Blogs',\n 'Museums & Institutions',\n 'Taxi and Limousine Services',\n 'Wind Electric Power Generation',\n 'Holding Companies',\n 'Motion Pictures & Film',\n 'Retail Building Materials and Garden Equipment',\n 'Medical and Diagnostic Laboratories',\n 'Retail Art Dealers',\n 'Electric Lighting Equipment Manufacturing',\n 'Social Networking Platforms',\n 'Commercial and Service Industry Machinery Manufacturing',\n 'Language Schools',\n 'Animal Feed Manufacturing',\n 'Funds and Trusts',\n 'Business Content',\n 'Theater Companies',\n 'Internet News',\n 'Services for the Elderly and Disabled',\n 'Real Estate and Equipment Rental Services',\n 'Skiing Facilities',\n 'IT System Data Services',\n 'Retail Sporting Goods',\n 'Pet Services',\n 'Waste Collection',\n 'Forestry and Logging',\n 'Data Security Software Products',\n 'Landscaping Services',\n 'Architectural and Structural Metal Manufacturing',\n 'Embedded Software Products',\n 'Baked Goods Manufacturing',\n 'Trusts and Estates',\n 'Wholesale Computer Equipment',\n 'Soap and Cleaning Product Manufacturing',\n 'Wholesale Drugs and Sundries',\n 'Blockchain Services',\n 'Metal Treatments',\n 'Public Health',\n 'Industry Associations',\n 'Transportation Equipment Manufacturing',\n 'Metalworking Machinery Manufacturing',\n 'Primary Metal Manufacturing',\n 'Hotels and Motels',\n 'Hydroelectric Power Generation',\n 'Transportation Programs',\n 'Housing and Community Development',\n 'Specialty Trade Contractors',\n 'Chiropractors',\n 'Conservation Programs',\n 'Biomass Electric Power Generation',\n 'Bed-and-Breakfasts, Hostels, Homestays',\n 'Physical, Occupational and Speech Therapists',\n];\n\nexport const countriesMapper = [\n 'Afghanistan',\n 'Albania',\n 'Algeria',\n 'American Samoa',\n 'Andorra',\n 'Angola',\n 'Anguilla',\n 'Antarctica',\n 'Antigua and Barbuda',\n 'Argentina',\n 'Armenia',\n 'Aruba',\n 'Australia',\n 'Austria',\n 'Azerbaijan',\n 'Bahamas',\n 'Bahrain',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Belgium',\n 'Belize',\n 'Benin',\n 'Bermuda',\n 'Bhutan',\n 'Bolivia, Plurinational State of',\n 'Bosnia and Herzegovina',\n 'Botswana',\n 'Brazil',\n 'British Indian Ocean Territory',\n 'Brunei Darussalam',\n 'Bulgaria',\n 'Burkina Faso',\n 'Burundi',\n 'Cambodia',\n 'Cameroon',\n 'Canada',\n 'Cayman Islands',\n 'Central African Republic',\n 'Chad',\n 'Chile',\n 'China',\n 'Christmas Island',\n 'Cocos (Keeling) Islands',\n 'Colombia',\n 'Comoros',\n 'Congo',\n 'Congo, the Democratic Republic of the',\n 'Cook Islands',\n 'Costa Rica',\n \"Côte d'Ivoire\",\n 'Croatia',\n 'Cuba',\n 'Cyprus',\n 'Czech Republic',\n 'Denmark',\n 'Djibouti',\n 'Dominica',\n 'Dominican Republic',\n 'Ecuador',\n 'Egypt',\n 'El Salvador',\n 'Equatorial Guinea',\n 'Eritrea',\n 'Estonia',\n 'Ethiopia',\n 'Fiji',\n 'Finland',\n 'France',\n 'French Guiana',\n 'French Polynesia',\n 'French Southern Territories',\n 'Gabon',\n 'Gambia',\n 'Georgia',\n 'Germany',\n 'Ghana',\n 'Gibraltar',\n 'Greece',\n 'Greenland',\n 'Grenada',\n 'Guadeloupe',\n 'Guam',\n 'Guatemala',\n 'Guernsey',\n 'Guinea',\n 'Guinea-Bissau',\n 'Guyana',\n 'Haiti',\n 'Holy See (Vatican City State)',\n 'Honduras',\n 'Hong Kong',\n 'Hungary',\n 'Iceland',\n 'India',\n 'Indonesia',\n 'Iraq',\n 'Ireland',\n 'Isle of Man',\n 'Israel',\n 'Italy',\n 'Jamaica',\n 'Japan',\n 'Jersey',\n 'Jordan',\n 'Kazakhstan',\n 'Kenya',\n 'Kiribati',\n \"Korea, Democratic People's Republic of\",\n 'Korea, Republic of',\n 'Kuwait',\n 'Kyrgyzstan',\n \"Lao People's Democratic Republic\",\n 'Latvia',\n 'Lebanon',\n 'Lesotho',\n 'Liberia',\n 'Libya',\n 'Liechtenstein',\n 'Lithuania',\n 'Luxembourg',\n 'Macedonia, the former Yugoslav Republic of',\n 'Madagascar',\n 'Malawi',\n 'Malaysia',\n 'Maldives',\n 'Mali',\n 'Malta',\n 'Marshall Islands',\n 'Martinique',\n 'Mauritania',\n 'Mauritius',\n 'Mayotte',\n 'Mexico',\n 'Moldova, Republic of',\n 'Monaco',\n 'Mongolia',\n 'Montenegro',\n 'Montserrat',\n 'Morocco',\n 'Mozambique',\n 'Myanmar',\n 'Namibia',\n 'Nauru',\n 'Nepal',\n 'Netherlands',\n 'New Caledonia',\n 'New Zealand',\n 'Nicaragua',\n 'Niger',\n 'Nigeria',\n 'Niue',\n 'Norfolk Island',\n 'Northern Mariana Islands',\n 'Norway',\n 'Oman',\n 'Pakistan',\n 'Palau',\n 'Panama',\n 'Papua New Guinea',\n 'Paraguay',\n 'Peru',\n 'Philippines',\n 'Pitcairn',\n 'Poland',\n 'Portugal',\n 'Puerto Rico',\n 'Qatar',\n 'Romania',\n 'Russian Federation',\n 'Rwanda',\n 'Saint Barthélemy',\n 'Saint Helena, Ascension and Tristan da Cunha',\n 'Saint Kitts and Nevis',\n 'Saint Lucia',\n 'Saint Martin (French part)',\n 'Saint Pierre and Miquelon',\n 'Saint Vincent and the Grenadines',\n 'Samoa',\n 'San Marino',\n 'Sao Tome and Principe',\n 'Saudi Arabia',\n 'Senegal',\n 'Serbia',\n 'Seychelles',\n 'Sierra Leone',\n 'Singapore',\n 'Slovakia',\n 'Slovenia',\n 'Solomon Islands',\n 'Somalia',\n 'South Africa',\n 'South Sudan',\n 'Spain',\n 'Sri Lanka',\n 'Sudan',\n 'Suriname',\n 'Swaziland',\n 'Sweden',\n 'Switzerland',\n 'Syrian Arab Republic',\n 'Taiwan, Province of China',\n 'Tajikistan',\n 'Tanzania, United Republic of',\n 'Thailand',\n 'Timor-Leste',\n 'Togo',\n 'Tokelau',\n 'Tonga',\n 'Trinidad and Tobago',\n 'Tunisia',\n 'Turkey',\n 'Turkmenistan',\n 'Turks and Caicos Islands',\n 'Tuvalu',\n 'Uganda',\n 'Ukraine',\n 'United Arab Emirates',\n 'United Kingdom',\n 'United States',\n 'Unknown',\n 'Uruguay',\n 'Uzbekistan',\n 'Vanuatu',\n 'Venezuela, Bolivarian Republic of',\n 'Viet Nam',\n 'Virgin Islands, British',\n 'Virgin Islands, U.S.',\n 'Western Sahara',\n 'Yemen',\n 'Zambia',\n 'Zimbabwe',\n];\n\nexport const titlesMapper = [\n 'Software Engineer',\n 'Nurse',\n 'Salesperson',\n 'Registered Nurse',\n 'Travel Specialist',\n 'Truck Driver',\n 'Customer Service Representative',\n 'Data Engineer',\n 'Driver',\n 'Licensed Practical Nurse',\n 'Physical Therapist',\n 'Medical Doctor',\n 'Tutor',\n 'Teacher',\n 'Rehabilitation Therapist',\n 'Nursing Manager',\n 'Health Specialist',\n 'Mechanical Technician',\n 'Certified Nursing Assistant',\n 'Talent Acquisition',\n 'Waiter',\n 'Waitress',\n 'Server',\n 'Chef',\n 'Dishwasher',\n 'Marketing Manager',\n 'Project Manager',\n 'Customer Service Specialist',\n 'Data Scientist',\n 'Surgical Nurse',\n 'Associate',\n 'Delivery Driver',\n 'Crew Member',\n 'Guest Services Associate',\n 'Server',\n 'Receptionist',\n 'Cleaner',\n 'Clerk',\n 'Cashier',\n 'Shift Manager',\n 'Sales Consultant',\n 'Account Executive',\n 'Food Service Worker',\n 'Business Analyst',\n 'Product Manager',\n 'Lead Sales Representative',\n 'Accountant',\n 'Retail Salesperson',\n 'Administrative Assistant',\n 'Mechanical Engineer',\n 'Training Specialist',\n 'Speech Language Pathologist',\n 'Store Manager',\n 'Supply Chain Associate',\n 'Assistant Store Manager',\n 'Cashier',\n 'Lawyer',\n 'Head of Retail',\n 'Graphic Designer',\n 'Sales Representative',\n 'Financial Analyst',\n 'Human Resources Manager',\n 'Web Developer',\n 'Operations Manager',\n 'Consultant',\n 'Network Engineer',\n 'Electrical Engineer',\n 'UX/UI Designer',\n 'Civil Engineer',\n 'Systems Analyst',\n 'Digital Marketing Specialist',\n 'Software Developer',\n 'Data Analyst',\n 'Quality Assurance Engineer',\n 'Executive Assistant',\n 'Content Writer',\n 'Art Director',\n 'Sales Manager',\n 'Database Administrator',\n 'IT Manager',\n 'Business Development Manager',\n 'Legal Assistant',\n 'HR Generalist',\n 'Supply Chain Manager',\n 'Event Coordinator',\n 'Social Media Manager',\n 'Technical Support Specialist',\n 'Account Manager',\n 'Architect',\n 'Copywriter',\n 'Financial Manager',\n 'Biomedical Engineer',\n 'Research Assistant',\n 'Pharmacist',\n 'Industrial Engineer',\n 'Instructional Designer',\n 'Product Designer',\n 'SEO Specialist',\n 'Cloud Engineer',\n 'Customer Success Manager',\n 'Electrical Technician',\n 'Graphic Artist',\n 'Environmental Engineer',\n 'Executive Director',\n 'IT Support Specialist',\n 'Chemical Engineer',\n 'Animator',\n 'Brand Manager',\n 'Clinical Research Associate',\n 'E-commerce Manager',\n 'Front-end Developer',\n 'Full Stack Developer',\n 'Geologist',\n 'Healthcare Administrator',\n 'Interior Designer',\n 'Logistics Coordinator',\n 'Management Consultant',\n 'Manufacturing Engineer',\n 'Medical Assistant',\n 'Mobile Developer',\n 'Occupational Therapist',\n 'Operations Analyst',\n 'Physician Assistant',\n 'Policy Analyst',\n 'Product Marketing Manager',\n 'Program Manager',\n 'Psychologist',\n 'Public Relations Specialist',\n 'Head of Human Resources',\n 'Radiologic Technologist',\n 'Recruiter',\n 'Research Scientist',\n 'Risk Manager',\n 'Sales Engineer',\n 'Security Analyst',\n 'Service Manager',\n 'Software Architect',\n 'Statistician',\n 'Supply Chain Analyst',\n 'System Administrator',\n 'Technical Writer',\n 'Veterinarian',\n 'Video Editor',\n 'User Experience Researcher',\n 'Actuarial Analyst',\n 'Advertising Manager',\n 'Agricultural Engineer',\n 'Air Traffic Controller',\n 'Anesthesiologist',\n 'Anthropologist',\n 'App Developer',\n 'Archaeologist',\n 'Art Therapist',\n 'Auditor',\n 'Automation Engineer',\n 'Biochemist',\n 'Blockchain Developer',\n 'Budget Analyst',\n 'Chemical Technician',\n 'Chief Executive Officer',\n 'Chief Financial Officer',\n 'Chief Marketing Officer',\n 'Chief Technology Officer',\n 'Chiropractor',\n 'Clinical Laboratory Technician',\n 'Compliance Officer',\n 'Construction Manager',\n 'Counselor',\n 'Court Reporter',\n 'Creative Director',\n 'Crime Scene Investigator',\n 'Cryptographer',\n 'Cybersecurity Specialist',\n 'Data Architect',\n 'Dentist',\n 'Dietitian',\n 'Director of Operations',\n 'Economist',\n 'Editor',\n 'Education Consultant',\n 'Electrical Designer',\n 'Emergency Management Director',\n 'Energy Engineer',\n 'Engineering Manager',\n 'Entrepreneur',\n 'Epidemiologist',\n 'Facilities Manager',\n 'Fashion Designer',\n 'Film Director',\n 'Firefighter',\n 'Flight Attendant',\n 'Forensic Scientist',\n 'Fundraiser',\n 'Genetic Counselor',\n 'Graphic Illustrator',\n 'Health Educator',\n 'Historian',\n 'Hotel Manager',\n 'Human Resources Specialist',\n 'Hydrologist',\n 'Import/Export Manager',\n 'Information Security Analyst',\n 'Instructional Coordinator',\n 'Interpreter',\n 'Investment Banker',\n 'Journalist',\n 'Judge',\n 'Laboratory Manager',\n 'Landscape Architect',\n 'Librarian',\n 'Logistician',\n 'Maintenance Manager',\n 'Market Research Analyst',\n 'Mathematician',\n 'Mechanical Designer',\n 'Medical Lab Technician',\n 'Microbiologist',\n 'Multimedia Artist',\n 'Museum Curator',\n 'Music Director',\n 'Nuclear Engineer',\n 'Nutritionist',\n 'Occupational Health and Safety Specialist',\n 'Oceanographer',\n 'Orthodontist',\n 'Paralegal',\n 'Petroleum Engineer',\n 'Pharmacologist',\n 'Photographer',\n 'Pilot',\n 'Plant Manager',\n 'Policy Advisor',\n 'Police Officer',\n 'Political Scientist',\n 'Professor',\n 'Property Manager',\n 'Public Health Administrator',\n 'Purchasing Manager',\n 'Quality Control Inspector',\n 'Real Estate Agent',\n 'Regulatory Affairs Specialist',\n 'Remote Sensing Scientist',\n 'School Counselor',\n 'Scientific Writer',\n 'Scriptwriter',\n 'Sociologist',\n 'Sound Engineer',\n 'Speech Pathologist',\n 'Surgeon',\n 'Surveyor',\n 'Technical Recruiter',\n 'Telecommunications Engineer',\n 'Tourism Manager',\n 'Translator',\n 'Urban Planner',\n 'Video Game Developer',\n 'Water Resource Engineer',\n 'Web Content Manager',\n 'Wind Energy Engineer',\n 'Zoologist',\n 'Strategy Consultant',\n 'Chief Operating Officer',\n 'Chief Revenue Officer',\n 'Chief Product Officer',\n 'Chief Information Officer',\n 'Chief Security Officer',\n 'Chief Compliance Officer',\n 'Chief Data Officer',\n 'Chief Experience Officer',\n 'Chief People Officer',\n 'Chief Customer Officer',\n 'Chief Legal Officer',\n 'Chief Talent Officer',\n 'Chief Strategy Officer',\n 'Chief Sales Officer',\n 'Chief Risk Officer',\n 'Chief Transformation Officer',\n 'Chief Innovation Officer',\n 'Chief Brand Officer',\n 'Chief Growth Officer',\n 'VP of Marketing',\n 'VP of Sales',\n 'VP of Operations',\n 'VP of Finance',\n 'VP of Engineering',\n 'VP of Product',\n 'VP of Customer Success',\n 'VP of HR',\n 'VP of Business Development',\n 'VP of Growth',\n 'VP of IT',\n 'VP of Legal',\n 'VP of Strategy',\n 'VP of Talent',\n 'Lead Product Developer',\n 'VP of Partnerships',\n 'VP of Communications',\n 'VP of Compliance',\n 'Director of Marketing',\n 'Director of Sales',\n 'Director of Finance',\n 'Director of Engineering',\n 'Director of Product',\n 'Director of Customer Success',\n 'Director of HR',\n 'Director of Human Resources',\n 'Director of Business Development',\n 'Director of Growth',\n 'Director of IT',\n 'Director of Technology',\n 'Director of Legal',\n 'Director of Strategy',\n 'Director of Talent',\n 'Director of Partnerships',\n 'Sales Director',\n 'Finance Manager',\n 'Credit Analyst',\n 'Investment Analyst',\n 'Treasury Analyst',\n 'IT Specialist',\n 'Network Administrator',\n 'System Analyst',\n 'Front End Developer',\n 'Back End Developer',\n 'DevOps Engineer',\n 'Sales Analyst',\n 'Sales Operations Specialist',\n 'Regional Sales Manager',\n 'Inside Sales Representative',\n 'AI Specialist',\n 'Cloud Solutions Architect',\n 'Blockchain Engineer',\n 'Cyber Threat Analyst',\n 'Quantum Computing Researcher',\n 'Renewable Energy Consultant',\n 'IoT Developer',\n 'Augmented Reality Designer',\n '3D Printing Technician',\n 'Genomics Data Analyst',\n 'Bioinformatics Specialist',\n 'Healthcare Data Analyst',\n 'Telehealth Coordinator',\n 'Environmental Scientist',\n 'Sustainability Manager',\n 'Climate Change Analyst',\n 'Solar Energy Technician',\n 'Wind Turbine Technician',\n 'AI Ethics Researcher',\n 'Behavioral Scientist',\n 'Urban Ecologist',\n 'Digital Twin Developer',\n 'Drone Operator',\n 'Game Environment Designer',\n 'Esports Manager',\n 'Virtual Reality Developer',\n 'Metaverse Architect',\n 'Spacecraft Systems Engineer',\n 'Astrobiologist',\n 'Satellite Communications Specialist',\n 'Agricultural Economist',\n 'Aquaculture Specialist',\n 'Food Technologist',\n 'Soil Scientist',\n 'Wildlife Conservationist',\n 'Park Ranger',\n 'Veterinary Technician',\n 'Supply Chain Planner',\n 'Last-Mile Delivery Specialist',\n 'Fleet Operations Manager',\n 'Customs Broker',\n 'Inventory Optimization Analyst',\n 'Ethical Hacker',\n 'Threat Intelligence Analyst',\n 'Penetration Tester',\n 'Vulnerability Manager',\n 'Compliance Auditor',\n 'Privacy Consultant',\n 'Cloud Security Engineer',\n 'Digital Forensics Expert',\n 'Energy Auditor',\n 'Water Resources Engineer',\n 'Urban Designer',\n 'Land Use Planner',\n 'Construction Safety Officer',\n 'Project Controls Specialist',\n 'Geotechnical Engineer',\n 'Structural Dynamics Specialist',\n 'Aerospace Systems Engineer',\n 'Flight Operations Specialist',\n 'Payload Specialist',\n 'Hydrographic Surveyor',\n 'Marine Biologist',\n 'Oceanographic Technician',\n 'Shipbuilding Engineer',\n 'Naval Architect',\n 'Motion Graphics Designer',\n 'Sound Designer',\n 'Film Producer',\n 'Storyboard Artist',\n 'Creative Strategist',\n 'Experiential Marketing Manager',\n 'Art Producer',\n 'Music Producer',\n 'Theater Director',\n 'Casting Coordinator',\n 'Lighting Designer',\n 'Event Producer',\n 'Public Speaking Coach',\n 'Image Consultant',\n 'Content Moderator',\n 'Localization Specialist',\n 'Language Model Trainer',\n 'Open Source Developer',\n 'API Integration Specialist',\n 'Middleware Developer',\n 'Web3 Developer',\n 'Data Governance Analyst',\n 'Data Warehouse Architect',\n 'Data Quality Manager',\n 'Machine Learning Ops Engineer',\n 'AI Trainer',\n 'Robotics Programmer',\n 'Embedded Systems Engineer',\n 'Control Systems Engineer',\n 'Automation Tester',\n 'Electric Vehicle Engineer',\n 'Battery Systems Engineer',\n 'Electronics Design Engineer',\n 'Optics Engineer',\n 'Nanotechnology Researcher',\n 'Materials Scientist',\n 'Acoustical Engineer',\n 'HVAC Design Engineer',\n 'Building Information Modeler',\n 'Urban Mobility Analyst',\n 'Rail Systems Engineer',\n 'Traffic Engineer',\n 'Accessibility Consultant',\n 'UI Motion Designer',\n 'Human-Computer Interaction Researcher',\n 'UX Research Coordinator',\n 'Conversion Rate Optimization Specialist',\n 'Behavioral Data Analyst',\n 'Customer Journey Analyst',\n 'Personal Branding Consultant',\n 'Career Transition Coach',\n 'Organizational Development Consultant',\n 'Leadership Development Coach',\n 'Talent Strategy Analyst',\n 'Equity and Inclusion Officer',\n 'HRIS Analyst',\n 'Remote Work Consultant',\n 'Wellness Program Coordinator',\n 'Corporate Trainer',\n 'Succession Planning Analyst',\n 'Investor Relations Manager',\n 'Angel Investor',\n 'Venture Capital Associate',\n 'Private Equity Analyst',\n 'Portfolio Manager',\n 'Crypto Asset Manager',\n 'Digital Transformation Consultant',\n 'Lean Process Consultant',\n 'Six Sigma Specialist',\n 'Agile Coach',\n 'Scrum Master',\n 'Kanban Specialist',\n 'Value Stream Manager',\n 'Customer Retention Specialist',\n 'Brand Strategist',\n 'Omnichannel Marketing Manager',\n 'Influencer Relations Manager',\n 'Affiliate Marketing Specialist',\n 'SEO Content Strategist',\n 'PPC Campaign Manager',\n 'Social Listening Analyst',\n 'Video Content Creator',\n 'Podcast Producer',\n 'E-commerce Specialist',\n 'UX Copywriter',\n 'Digital Community Manager',\n 'Digital Fundraising Specialist',\n 'Nonprofit Technology Manager',\n 'Grant Writer',\n 'Development Director',\n 'Volunteer Coordinator',\n 'Social Impact Consultant',\n 'Corporate Social Responsibility Manager',\n 'Ethics Officer',\n 'Digital Archivist',\n 'Collections Manager',\n 'Art Conservator',\n 'Museum Educator',\n 'Cultural Programs Coordinator',\n 'Heritage Specialist',\n 'Archivist',\n 'Intellectual Property Specialist',\n 'Patent Examiner',\n 'Trademark Attorney',\n 'Legal Technology Consultant',\n 'Parole Officer',\n 'Corrections Counselor',\n 'Juvenile Justice Specialist',\n 'Crisis Intervention Specialist',\n 'Community Health Worker',\n 'Public Policy Analyst',\n 'Legislative Assistant',\n 'Diplomatic Officer',\n 'Immigration Consultant',\n 'Public Affairs Manager',\n 'Emergency Preparedness Coordinator',\n 'Disaster Recovery Specialist',\n 'AI Engineer',\n 'Data Privacy Officer',\n 'Game Developer',\n 'Ethical AI Specialist',\n 'Renewable Energy Analyst',\n 'Sustainability Consultant',\n 'Digital Strategy Manager',\n 'UX Accessibility Designer',\n 'Robotics Engineer',\n 'Space Systems Engineer',\n 'Quantum Analyst',\n 'Machine Learning Researcher',\n 'Crisis Manager',\n 'Cybersecurity Engineer',\n 'Threat Response Analyst',\n 'DevSecOps Engineer',\n 'Product Growth Manager',\n 'User Researcher',\n 'Brand Experience Manager',\n 'Campaign Strategist',\n 'Content SEO Manager',\n 'E-learning Developer',\n 'Learning Experience Designer',\n 'Instructional Technologist',\n 'EdTech Specialist',\n 'Curriculum Developer',\n 'Data Visualization Engineer',\n 'BI Developer',\n 'Advanced Analytics Specialist',\n 'Mobile App Designer',\n 'AR/VR Specialist',\n 'Simulation Engineer',\n 'AI Product Manager',\n 'Startup Founder',\n 'Innovation Catalyst',\n 'Innovation Program Manager',\n 'Corporate Development Analyst',\n 'Go-to-Market Strategist',\n 'Portfolio Risk Manager',\n 'Cloud DevOps Engineer',\n 'Multi-cloud Architect',\n 'Blockchain Strategist',\n 'Tokenomics Analyst',\n 'Smart Contract Developer',\n 'DeFi Specialist',\n 'Crypto Research Analyst',\n 'NFT Consultant',\n 'Energy Consultant',\n 'Battery Design Engineer',\n 'Smart Grid Specialist',\n 'Urban Energy Planner',\n 'Geothermal Energy Engineer',\n 'AI Trainer Specialist',\n 'AI Bias Auditor',\n 'Data Ethics Consultant',\n 'Information Governance Manager',\n 'Compliance Program Manager',\n 'Legal Innovation Analyst',\n 'Contract Automation Specialist',\n 'Legal AI Researcher',\n 'Chief AI Officer',\n 'Operational Excellence Manager',\n 'Continuous Improvement Consultant',\n 'Automation Coordinator',\n 'Talent Acquisition Partner',\n 'Diversity Recruitment Specialist',\n 'Employee Experience Manager',\n 'Global Mobility Specialist',\n 'People Operations Specialist',\n 'Performance Analyst',\n 'Workforce Development Specialist',\n 'HR Transformation Consultant',\n 'Remote Work Policy Advisor',\n 'Digital Workplace Specialist',\n 'Chief Remote Officer',\n 'Virtual Event Coordinator',\n 'Metaverse Consultant',\n 'Digital Twin Specialist',\n 'Gamification Designer',\n 'Crowdfunding Campaign Manager',\n 'Nonprofit Strategist',\n 'Philanthropy Manager',\n 'Sustainability Reporting Analyst',\n 'Corporate Responsibility Advisor',\n 'Carbon Footprint Analyst',\n 'Environmental Compliance Specialist',\n 'Circular Economy Consultant',\n 'Green Technology Specialist',\n 'Climate Data Analyst',\n 'Energy Transition Consultant',\n 'Blue Economy Specialist',\n 'Biodiversity Officer',\n 'Aquatic Ecologist',\n 'Wildlife Rehabilitation Specialist',\n 'Marine Policy Analyst',\n 'Fisheries Manager',\n 'Hydrology Specialist',\n 'AI Operations Manager',\n 'Fleet Optimization Specialist',\n 'Last-Mile Operations Manager',\n 'Drone Fleet Manager',\n 'Predictive Maintenance Analyst',\n 'Logistics Innovation Manager',\n 'Warehouse Automation Engineer',\n 'E-commerce Logistics Specialist',\n 'Omnichannel Operations Manager',\n 'Supply Chain Technology Specialist',\n 'Demand Planner',\n 'Inventory Optimization Consultant',\n 'Freight Network Analyst',\n 'Cold Chain Manager',\n 'Packaging Engineer',\n 'Circular Supply Chain Analyst',\n 'Customer Onboarding Specialist',\n 'Customer Experience Strategist',\n 'Voice of Customer Analyst',\n 'Customer Loyalty Manager',\n 'Service Design Specialist',\n 'CX Data Analyst',\n 'Churn Reduction Consultant',\n 'Customer Insights Manager',\n 'Salesforce Administrator',\n 'Marketing Automation Manager',\n 'Revenue Operations Specialist',\n 'Pipeline Growth Manager',\n 'Field Marketing Manager',\n 'Partner Marketing Specialist',\n 'Account-Based Marketing Specialist',\n 'Lifecycle Marketing Manager',\n 'Demand Generation Specialist',\n 'Creative Operations Manager',\n 'Content Operations Manager',\n 'Video Marketing Strategist',\n 'Social Media Analytics Manager',\n 'Influencer Marketing Coordinator',\n 'Digital PR Specialist',\n 'Affiliate Program Manager',\n 'Community Engagement Specialist',\n 'Brand Reputation Manager',\n 'Customer Trust Officer',\n 'Cloud Infrastructure Engineer',\n 'SaaS Operations Manager',\n 'Application Security Engineer',\n 'Database Performance Analyst',\n 'Site Reliability Engineer',\n 'CI/CD Pipeline Engineer',\n 'Full Stack Cloud Developer',\n 'Edge Computing Specialist',\n 'Serverless Architect',\n 'Kubernetes Administrator',\n 'Containerization Specialist',\n 'Open Source Advocate',\n 'DevOps Evangelist',\n 'Platform Engineer',\n 'Software Performance Engineer',\n 'Developer Relations Specialist',\n 'API Product Manager',\n 'Integration Engineer',\n 'Data Streaming Engineer',\n 'Real-Time Systems Architect',\n 'Observability Engineer',\n 'Event-Driven Architect',\n 'AI/ML DevOps Specialist',\n 'Knowledge Graph Engineer',\n 'Data Ops Engineer',\n 'Data Democratization Specialist',\n 'Big Data Solutions Architect',\n 'Quantum Cryptography Analyst',\n 'Quantum Security Engineer',\n 'Space Data Analyst',\n 'Exoplanet Researcher',\n 'Astrophysics Data Engineer',\n 'Rocket Propulsion Engineer',\n 'Orbital Mechanic',\n 'Satellite Systems Technician',\n 'Launch Operations Manager',\n 'Aviation Systems Engineer',\n 'Airline Route Analyst',\n 'Air Traffic Optimization Specialist',\n 'Aviation Safety Officer',\n 'Urban Air Mobility Specialist',\n 'Drone Air Traffic Manager',\n 'Aerospace Systems Analyst',\n 'Space Resource Analyst',\n 'Space Mining Specialist',\n 'Cosmic Radiation Specialist',\n 'Exoskeleton Designer',\n 'Assistive Technology Engineer',\n 'Biomechanics Researcher',\n 'Wearable Technology Specialist',\n 'Personal Robotics Developer',\n 'Accessibility Technology Designer',\n 'Inclusive Technology Consultant',\n 'CTO',\n 'CIO',\n 'CISO',\n 'CPO',\n 'CSO',\n 'CCO',\n 'CDO',\n 'CEO',\n 'COO',\n 'CHRO',\n 'CSO',\n 'President of',\n 'VP of',\n 'Director of',\n 'Manager of',\n 'Lead of',\n 'Specialist of',\n 'Head of',\n 'Head',\n];\n\nexport const companiesMapper = [\n 'Apple',\n 'Microsoft',\n 'Amazon',\n 'Alphabet Inc. (Google)',\n 'Meta Platforms (Facebook)',\n 'Tesla',\n 'Samsung',\n 'IBM',\n 'Intel',\n 'Oracle',\n 'Cisco Systems',\n 'Hewlett Packard Enterprise',\n 'Dell Technologies',\n 'Sony',\n 'Panasonic',\n 'Toyota Motor Corporation',\n 'Volkswagen Group',\n 'General Motors',\n 'Ford Motor Company',\n 'Honda Motor Co.',\n 'BMW Group',\n 'Daimler AG (Mercedes-Benz)',\n 'Hyundai Motor Company',\n 'Nissan Motor Co.',\n 'General Electric',\n 'Siemens AG',\n 'Hitachi',\n 'Philips',\n 'Airbus',\n 'Boeing',\n 'Lockheed Martin',\n 'Raytheon Technologies',\n 'JPMorgan Chase',\n 'Bank of America',\n 'Wells Fargo',\n 'Citigroup',\n 'HSBC Holdings',\n 'Deutsche Bank',\n 'Barclays',\n 'BNP Paribas',\n 'Mitsubishi UFJ Financial Group',\n 'Goldman Sachs',\n 'Morgan Stanley',\n 'Visa Inc.',\n 'Mastercard',\n 'PayPal',\n 'Alibaba Group',\n 'Tencent Holdings',\n 'Baidu',\n 'Netflix',\n 'The Walt Disney Company',\n 'AT&T',\n 'Verizon Communications',\n 'Comcast',\n 'Time Warner',\n 'Johnson & Johnson',\n 'Pfizer',\n 'Novartis',\n 'Merck & Co.',\n 'GlaxoSmithKline',\n 'AstraZeneca',\n 'Roche',\n 'Procter & Gamble',\n 'Unilever',\n 'Nestlé',\n 'The Coca-Cola Company',\n 'PepsiCo',\n \"McDonald's\",\n 'Starbucks',\n 'Walmart',\n 'Costco Wholesale',\n 'Carrefour',\n 'Tesco',\n 'eBay',\n 'Mercado Livre',\n 'Uber Technologies',\n 'Airbnb',\n 'Adidas',\n 'Nike',\n 'Puma',\n \"L'Oréal\",\n 'Estée Lauder',\n 'H&M',\n 'Zara (Inditex)',\n 'IKEA',\n 'ExxonMobil',\n 'Chevron Corporation',\n 'Royal Dutch Shell',\n 'BP (British Petroleum)',\n 'Total S.A.',\n 'Gazprom',\n 'Petrobras',\n 'Saudi Aramco',\n 'Reliance Industries',\n 'Vodafone Group',\n 'T-Mobile',\n 'SoftBank Group',\n 'Accenture',\n 'Deloitte',\n 'KPMG',\n 'PricewaterhouseCoopers (PwC)',\n 'Ernst & Young (EY)',\n 'Salesforce',\n 'SAP SE',\n 'Adobe Inc.',\n 'Intuit',\n 'Square Inc.',\n 'Twitter',\n 'LinkedIn (Microsoft)',\n 'Slack Technologies',\n 'Zoom Video Communications',\n 'SpaceX',\n 'The Home Depot',\n 'Target Corporation',\n '3M Company',\n 'Caterpillar Inc.',\n 'Honeywell International',\n 'Abbott Laboratories',\n 'Eli Lilly and Company',\n 'Bristol Myers Squibb',\n 'Walgreens Boots Alliance',\n 'CVS Health',\n 'UnitedHealth Group',\n 'Anthem Inc.',\n 'Cigna',\n 'American Express',\n 'FedEx Corporation',\n 'UPS (United Parcel Service)',\n 'DHL',\n 'Maersk',\n 'Audi',\n 'Kia Motors',\n 'Subaru',\n 'Mazda Motor Corporation',\n 'Mitsubishi Motors',\n 'Renault',\n 'Peugeot',\n 'Volvo Group',\n 'Huawei Technologies',\n 'Xiaomi Corporation',\n 'LG Electronics',\n 'Lenovo Group',\n 'Fujitsu',\n 'Nokia',\n 'Ericsson',\n 'Qualcomm',\n 'Texas Instruments',\n 'Broadcom Inc.',\n 'Micron Technology',\n 'ASML Holding',\n 'TSMC (Taiwan Semiconductor Manufacturing Company)',\n 'Foxconn',\n 'Synnex Corporation',\n 'Wipro Limited',\n 'Infosys Limited',\n 'Tata Consultancy Services',\n 'HCL Technologies',\n 'Capgemini',\n 'Cognizant Technology Solutions',\n 'DXC Technology',\n 'Lyft',\n 'DoorDash',\n 'Grubhub',\n 'Delivery Hero',\n 'Shopify',\n 'Stripe',\n 'Affirm',\n 'Robinhood',\n 'Banco Santander',\n 'Lloyds Banking Group',\n 'Royal Bank of Canada',\n 'UBS Group',\n 'Credit Suisse',\n 'ING Group',\n 'Société Générale',\n 'AXA',\n 'Allianz SE',\n 'Zurich Insurance Group',\n 'AIG (American International Group)',\n 'Berkshire Hathaway',\n 'BASF SE',\n 'Bayer AG',\n 'Dow Inc.',\n 'DuPont de Nemours, Inc.',\n 'Rio Tinto Group',\n 'BHP Group',\n 'Vale S.A.',\n 'Glencore plc',\n 'Amgen',\n 'Gilead Sciences',\n 'Moderna',\n 'Illumina',\n 'Celgene Corporation',\n 'Genentech (Roche)',\n 'Lockheed Martin',\n 'Northrop Grumman',\n 'General Dynamics',\n 'BAE Systems',\n 'Thales Group',\n 'Rolls-Royce Holdings',\n 'Embraer',\n 'Bombardier Inc.',\n 'Mitsubishi Heavy Industries',\n 'Samsung Heavy Industries',\n 'Hyundai Heavy Industries',\n 'SK Hynix',\n 'Seagate Technology',\n 'Western Digital',\n 'LG Display',\n 'Sharp Corporation',\n 'Canon Inc.',\n 'Nikon Corporation',\n 'GoPro',\n 'Garmin Ltd.',\n 'Fitbit',\n 'Under Armour',\n 'Reebok',\n 'Asics',\n 'New Balance',\n 'Bridgestone',\n 'Michelin',\n 'Continental AG',\n 'Goodyear Tire and Rubber Company',\n 'Pirelli',\n 'Dell EMC',\n 'VMware',\n 'Red Hat (IBM)',\n 'NVIDIA',\n 'AMD (Advanced Micro Devices)',\n 'ARM Holdings',\n 'GlobalFoundries',\n 'Semiconductor Manufacturing International Corporation (SMIC)',\n 'United Microelectronics Corporation (UMC)',\n 'Silicon Laboratories',\n 'ON Semiconductor',\n 'Maxim Integrated',\n 'Analog Devices',\n 'LG Chem',\n 'Samsung SDI',\n 'Contemporary Amperex Technology Co. Limited (CATL)',\n 'BYD Company',\n 'NIO Inc.',\n 'Lucid Motors',\n 'Rivian Automotive',\n 'Fisker Inc.',\n 'Gazprom Neft',\n 'Rosneft',\n 'Eni S.p.A.',\n 'Repsol S.A.',\n 'OMV',\n 'ConocoPhillips',\n 'Marathon Petroleum',\n 'Exelon Corporation',\n 'NextEra Energy',\n 'Dominion Energy',\n 'Duke Energy',\n 'Southern Company',\n 'National Grid plc',\n 'Enel',\n 'Iberdrola',\n 'EDF (Électricité de France)',\n 'Fortum',\n 'E.ON',\n 'RWE AG',\n 'Nippon Telegraph and Telephone (NTT)',\n 'Orange S.A.',\n 'BT Group',\n 'Deutsche Telekom',\n 'Telefónica',\n 'KDDI Corporation',\n 'China Mobile',\n 'China Telecom',\n 'SK Telecom',\n 'NTT Docomo',\n 'SoftBank Corp.',\n 'KT Corporation',\n 'Saudi Telecom Company',\n 'Vodafone Group',\n 'Nubank',\n 'PagSeguro',\n 'Mercado Pago',\n 'StoneCo',\n 'Cielo',\n 'Inter',\n 'Itaú',\n 'Bradesco',\n 'Vale',\n 'Petrobras',\n 'JBS',\n 'Ambev',\n 'B3',\n 'GFT Technologies',\n 'Fiserv',\n 'FIS',\n 'Finastra',\n 'Murex',\n 'FIS Global',\n 'Misys',\n 'Temenos',\n 'Calypso Technology',\n 'ION Trading',\n 'Broadridge',\n 'SS&C Technologies',\n 'SimCorp',\n 'Eze Software',\n 'Charles River Development',\n 'Linedata',\n 'Emirates',\n 'Etihad Airways',\n 'Flydubai',\n 'Air Arabia',\n 'Dubai Airports',\n 'DP World',\n 'Emaar Properties',\n 'Nakheel',\n 'Majid Al Futtaim',\n 'Al-Futta Group',\n 'Al Ghurair Group',\n 'Gucci',\n 'Prada',\n 'Louis Vuitton',\n 'Burberry',\n 'Chanel',\n 'Hermès',\n 'Rolex',\n 'Patek Philippe',\n 'Omega',\n 'Cartier',\n 'Tiffany & Co.',\n 'Bulgari',\n 'Chopard',\n 'Piaget',\n 'Van Cleef & Arpels',\n 'Harry Winston',\n 'Graff Diamonds',\n 'De Beers',\n 'Smartfit',\n];\n\nexport const keywords = [\n // Títulos\n 'CEO',\n 'Founder',\n 'Director',\n 'Manager',\n 'Consultant',\n 'Engineer',\n 'Analyst',\n 'Developer',\n 'Specialist',\n 'Product Manager',\n 'Data Scientist',\n 'Recruiter',\n 'HR Manager',\n 'UX/UI Designer',\n 'Software Engineer',\n 'Project Manager',\n 'Account Manager',\n 'Customer Success Manager',\n 'Marketing Manager',\n 'Sales Manager',\n 'Operations Manager',\n 'Strategy Consultant',\n 'Finance Manager',\n 'Growth Marketer',\n 'IT Manager',\n 'Creative Director',\n 'Business Development Manager',\n\n // Experiences\n 'Software Development',\n 'Project Management',\n 'Data Analysis',\n 'Marketing',\n 'Sales',\n 'Product Management',\n 'Business Analysis',\n 'Financial Analysis',\n 'Operations Management',\n 'Consulting',\n 'Engineering',\n 'Recruiting',\n 'Human Resources',\n 'Design',\n 'Content Creation',\n 'Social Media',\n 'Quality Assurance',\n 'Technical Support',\n 'Brand Management',\n 'Supply Chain',\n 'Investor Relations',\n 'Public Relations',\n 'Customer Success',\n 'Customer Support',\n 'Customer Relationship Management',\n 'Customer Experience',\n 'Customer Satisfaction',\n 'Customer Loyalty',\n 'Customer Retention',\n 'Customer Acquisition',\n 'Customer Advocacy',\n 'Customer Referral',\n 'Customer Review',\n 'Customer Testimonial',\n 'Customer Feedback',\n 'Customer Insight',\n 'Customer Behavior',\n 'Building Manager',\n 'Building Maintenance',\n 'Building Construction',\n 'Building Design',\n 'Building Renovation',\n 'Building Restoration',\n 'Building Inspection',\n 'Hotel Management',\n 'Restaurant Management',\n 'Cafe Management',\n 'Bar Management',\n 'Resort Management',\n 'Spa Management',\n 'Tourism Management',\n 'Waiter',\n 'Waitress',\n 'Host',\n 'Hostess',\n 'Bartender',\n 'Barista',\n 'Chef',\n\n // Soft skills\n 'Communication',\n 'Problem-solving',\n 'Leadership',\n 'Teamwork',\n 'Creativity',\n 'Adaptability',\n 'Detail-oriented',\n 'Time management',\n 'Organization',\n 'Critical thinking',\n 'Decision-making',\n 'Negotiation',\n 'Conflict resolution',\n 'Innovation',\n 'Collaboration',\n 'Strategic thinking',\n 'Proactivity',\n 'Entrepreneurship',\n 'Empathy',\n 'Resilience',\n 'Persistence',\n 'Patience',\n 'Curiosity',\n 'Self-motivation',\n 'Self-discipline',\n 'Self-awareness',\n 'Self-confidence',\n 'Emotional intelligence',\n 'Stress management',\n 'Work ethic',\n 'Professionalism',\n 'Integrity',\n 'Accountability',\n 'Dependability',\n 'Reliability',\n 'Punctuality',\n 'Flexibility',\n 'Open-mindedness',\n 'Tolerance',\n 'Diversity',\n 'Inclusion',\n 'Equity',\n 'Fairness',\n 'Justice',\n 'Ethics',\n 'Morality',\n 'Values',\n 'Principles',\n 'Trustworthiness',\n 'Loyalty',\n 'Honesty',\n 'Transparency',\n 'Authenticity',\n\n // Palavras comuns do resumo\n 'Experienced',\n 'Skilled',\n 'Passionate',\n 'Innovative',\n 'Results-driven',\n 'Collaborative',\n 'Strategic',\n 'Dynamic',\n 'Motivated',\n 'Proactive',\n 'Entrepreneurial',\n 'Problem-solving',\n 'Leadership',\n 'Driven',\n 'Creative',\n 'Innovator',\n 'Thought leader',\n 'Team player',\n 'Adaptable',\n 'Detail-oriented',\n\n // Títulos de experiência\n 'Marketing Specialist',\n 'Sales Executive',\n 'Financial Analyst',\n 'Customer Support Representative',\n 'Operations Lead',\n 'Account Executive',\n 'Business Analyst',\n 'Product Designer',\n 'HR Coordinator',\n 'Content Creator',\n 'Social Media Manager',\n 'DevOps Engineer',\n 'QA Tester',\n 'Data Analyst',\n 'Technical Support Specialist',\n 'Brand Manager',\n 'Supply Chain Manager',\n 'E-commerce Specialist',\n\n // Setores\n 'Technology',\n 'Finance',\n 'Healthcare',\n 'Education',\n 'Real Estate',\n 'Retail',\n 'Manufacturing',\n 'Logistics',\n 'Consulting',\n 'Energy',\n 'Telecommunications',\n 'Hospitality',\n 'Nonprofit',\n 'Legal',\n 'Entertainment',\n 'Media',\n 'SaaS',\n 'AI',\n 'Blockchain',\n 'Cybersecurity',\n 'Cloud Computing',\n 'Fintech',\n 'Edtech',\n 'Medtech',\n 'Biotech',\n\n // Tecnologias\n 'Python',\n 'JavaScript',\n 'Java',\n 'C++',\n 'C#',\n 'Ruby',\n 'PHP',\n 'Swift',\n 'Kotlin',\n 'Objective-C',\n 'React',\n 'Angular',\n 'Vue',\n 'Node.js',\n 'Django',\n 'Flask',\n 'Spring',\n 'Laravel',\n 'Ruby on Rails',\n 'Express.js',\n 'jQuery',\n 'Bootstrap',\n 'Sass',\n 'Less',\n 'Tailwind CSS',\n 'Material-UI',\n 'Ant Design',\n 'Chakra UI',\n 'Styled Components',\n 'Redux',\n 'Vuex',\n 'MobX',\n 'GraphQL',\n 'REST',\n 'SOAP',\n 'WebSockets',\n 'gRPC',\n 'Docker',\n 'Kubernetes',\n 'Jenkins',\n 'Travis CI',\n 'CircleCI',\n 'GitLab CI',\n 'GitHub Actions',\n 'AWS',\n 'GCP',\n\n // Hospitalidade\n 'Hotel',\n 'Restaurant',\n 'Cafe',\n 'Bar',\n 'Resort',\n 'Spa',\n 'Tourism',\n 'Travel',\n 'Leisure',\n 'Hospitality',\n 'Catering',\n 'Event',\n 'Concert',\n 'Festival',\n 'Wedding',\n 'Party',\n 'Reception',\n 'Cruise',\n 'Vacation',\n 'Staycation',\n 'Adventure',\n 'Safari',\n 'Sightseeing',\n 'Excursion',\n 'Tour',\n 'Trip',\n 'Journey',\n 'Destination',\n 'Accommodation',\n 'Lodging',\n 'Stay',\n 'Residence',\n 'Room',\n 'Suite',\n 'Apartment',\n 'House',\n 'Villa',\n 'Mansion',\n 'Cabin',\n 'Cottage',\n 'Bungalow',\n 'Boutique',\n 'Luxury',\n 'Budget',\n 'Affordable',\n 'Economy',\n 'Mid-range',\n 'High-end',\n 'All-inclusive',\n\n // Marketing\n 'Marketing',\n 'Advertising',\n 'Promotion',\n 'Branding',\n 'Content',\n 'SEO',\n 'SEM',\n 'PPC',\n 'Affiliate',\n 'Influencer',\n 'Viral',\n 'Campaign',\n 'Strategy',\n 'Tactics',\n 'Analytics',\n 'Metrics',\n 'KPI',\n 'ROI',\n 'CTR',\n 'CPC',\n 'CPM',\n 'CPA',\n 'CPL',\n 'CRO',\n 'Lead Generation',\n 'Conversion',\n 'Engagement',\n 'Retention',\n 'Acquisition',\n 'Customer Journey',\n 'Customer Experience',\n 'Customer Satisfaction',\n 'Customer Loyalty',\n 'Customer Lifetime Value',\n 'Customer Segmentation',\n 'Customer Persona',\n 'Customer Profile',\n 'Customer Behavior',\n 'Customer Insight',\n 'Customer Feedback',\n 'Customer Support',\n 'Customer Service',\n 'Customer Success',\n 'Customer Relationship Management',\n 'Customer Retention',\n 'Customer Acquisition',\n 'Customer Advocacy',\n 'Customer Referral',\n 'Customer Review',\n 'Customer Testimonial',\n];\n","import React from 'react';\n\nconst InputBadge = ({ text, onRemove }) => (\n \n {text}\n \n ×\n \n \n);\n\nexport default InputBadge;\n","import React, { useState, useRef, useEffect } from 'react';\nimport InputBadge from './InputBadge';\n\ninterface InputWithBadgesProps {\n label: string;\n id: string;\n filters: string[];\n setFilters: (filters: string[]) => void;\n options?: string[];\n placeholder: string;\n isMultipleChoises?: boolean;\n needAlphabeticalOrder?: boolean;\n}\n\nconst InputWithBadges: React.FC = ({\n label,\n id,\n filters,\n setFilters,\n options = [],\n placeholder,\n isMultipleChoises = false,\n needAlphabeticalOrder = true,\n}) => {\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [filteredOptions, setFilteredOptions] = useState([]);\n const [itemsToShow, setItemsToShow] = useState(5);\n const inputRef = useRef(null);\n const dropdownRef = useRef(null);\n const containerRef = useRef(null);\n\n // Update itemsToShow when filteredOptions changes\n useEffect(() => {\n setItemsToShow(3);\n }, [filteredOptions]);\n\n // Scroll the parent container to show dropdown when it opens\n useEffect(() => {\n if (dropdownOpen && dropdownRef.current && containerRef.current) {\n const getScrollParent = (node: HTMLElement | null): HTMLElement => {\n if (!node) return document.documentElement;\n\n const isScrollable = (element: HTMLElement): boolean => {\n const style = window.getComputedStyle(element);\n return /(auto|scroll)/.test(style.overflow + style.overflowY);\n };\n\n if (isScrollable(node)) return node;\n return getScrollParent(node.parentElement as HTMLElement);\n };\n\n const scrollParent = getScrollParent(containerRef.current);\n\n const dropdownRect = dropdownRef.current.getBoundingClientRect();\n const parentRect = scrollParent.getBoundingClientRect();\n\n if (dropdownRect.bottom > parentRect.bottom) {\n scrollParent.scrollBy({\n top: dropdownRect.bottom - parentRect.bottom + 20,\n behavior: 'smooth',\n });\n }\n }\n }, [dropdownOpen]);\n\n // Handle input change\n const handleInputChange = (value: string) => {\n if (options.length > 0) {\n const newOptions = options.filter(\n option =>\n option.toLowerCase().includes(value.toLowerCase()) &&\n !filters.some(\n filter => filter.toLowerCase() === option.toLowerCase(),\n ),\n );\n if (needAlphabeticalOrder) newOptions.sort((a, b) => a.localeCompare(b)); // Sort options alphabetically\n setFilteredOptions(newOptions);\n setDropdownOpen(newOptions.length > 0);\n }\n };\n\n // Handle adding a new value\n const handleAddValue = (value: string) => {\n const trimmedValue = value.trim();\n if (\n trimmedValue &&\n !filters.some(\n filter => filter.toLowerCase() === trimmedValue.toLowerCase(),\n )\n ) {\n setFilters([...filters, trimmedValue]);\n setDropdownOpen(false);\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n }\n };\n\n // Handle key down events\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleAddValue(e.currentTarget.value);\n } else if (e.key === ',') {\n e.preventDefault();\n handleAddValue(e.currentTarget.value);\n } else if (e.key === 'Backspace' && e.currentTarget.value === '') {\n if (filters.length > 0) {\n setFilters(filters.slice(0, -1));\n }\n }\n };\n\n // Handle input focus event\n const handleFocus = () => {\n if (options.length > 0) {\n const newOptions = options.filter(\n option =>\n !filters.some(\n filter => filter.toLowerCase() === option.toLowerCase(),\n ),\n );\n if (needAlphabeticalOrder) newOptions.sort((a, b) => a.localeCompare(b)); // Sort options alphabetically\n setFilteredOptions(newOptions);\n setDropdownOpen(newOptions.length > 0);\n }\n };\n\n // Handle input blur event\n const handleBlur = () => {\n if (inputRef.current) {\n const value = inputRef.current.value.trim();\n if (\n value &&\n !filters.some(filter => filter.toLowerCase() === value.toLowerCase())\n ) {\n handleAddValue(value);\n }\n }\n setTimeout(() => setDropdownOpen(false), 150); // Timeout to allow clicking on options\n };\n\n // Handle scroll event\n const handleScroll = (e: React.UIEvent) => {\n const { scrollTop, scrollHeight, clientHeight } = e.currentTarget;\n if (scrollTop + clientHeight >= scrollHeight - 5) {\n loadMoreItems();\n }\n };\n\n // Load more items\n const loadMoreItems = () => {\n if (itemsToShow < filteredOptions.length) {\n setItemsToShow(prev => prev + 4);\n }\n };\n\n return (\n
      \n \n {label}{' '}\n {isMultipleChoises && (\n \n (Multiple choices)\n \n )}\n \n
      \n {filters.map((item, index) => (\n setFilters(filters.filter((_, i) => i !== index))}\n />\n ))}\n handleInputChange(e.target.value)}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n />\n {/* Dropdown (only if there are options) */}\n {dropdownOpen && (\n \n {filteredOptions.slice(0, itemsToShow).map((option, index) => (\n handleAddValue(option)}\n >\n {option}\n \n ))}\n \n )}\n
      \n
      \n );\n};\n\nexport default InputWithBadges;\n","export type TLeadFilters = {\n // name?: string;\n // industry?: string[];\n // summary?: string[];\n // createdAtGte?: string;\n // createdAtLte?: string;\n // lastUpdatedGte?: string;\n // lastUpdatedLte?: string;\n // deleted?: boolean;\n country?: string[];\n // skill?: string[];\n // certificationName?: string[];\n // experienceTitle?: string[];\n // experienceCompanyName?: string;\n // experienceCompanyExactName?: string;\n // experienceCompanyWebsiteUrl?: string;\n // experienceCompanyWebsiteExactUrl?: string;\n // experienceCompanyProfessionalNetworkUrl?: string;\n // experienceCompanyIndustry?: string;\n // experienceCompanySize?: string;\n // experienceCompanyEmployeesCountGte?: number;\n // experienceCompanyEmployeesCountLte?: number;\n // experienceDateFrom?: string;\n // experienceDateTo?: string;\n // experienceDescription?: string;\n // experienceDeleted?: boolean;\n // experienceCompanyId?: number;\n // activeExperience?: boolean;\n // keyword?: string[];\n // educationInstitutionName?: string;\n // educationInstitutionExactName?: string;\n // educationProgramName?: string;\n // educationDescription?: string;\n // educationDateFrom?: string;\n // educationDateTo?: string;\n // educationInstitutionProfessionalNetworkUrl?: string;\n // isHidden?: boolean;\n\n functions: string[];\n leadLimit?: number;\n title?: string[];\n seniorityLevel: string[];\n location?: string[];\n isDecisionMaker?: boolean;\n\n leadsFound?: number;\n useAiToGenerateFilters: boolean;\n userPrompt: string;\n};\n\nexport type TSeniorityLevel =\n | 'Manager'\n | 'Senior'\n | 'Director'\n | 'Owner'\n | 'C-Level'\n | 'Intern'\n | 'Head'\n | 'President/Vice President'\n | 'Founder'\n | 'Partner'\n | 'Specialist';\n\nexport type TFilterWithSeniority = {\n seniorityLevel?: TSeniorityLevel;\n} & TLeadFilters;\n\nexport type SeniorityMapping = {\n [key in TSeniorityLevel]: string[];\n};\n\nexport const seniorityMapping: SeniorityMapping = {\n 'C-Level': [\n 'Founder',\n 'Co-Founder',\n 'Owner',\n 'Chairman',\n 'CEO',\n 'Chief Executive Officer',\n 'Entrepreneur',\n 'Chief Operating Officer',\n 'Chief Technology Officer',\n 'Chief Marketing Officer',\n 'Chief Financial Officer',\n 'Chief Commercial Officer',\n 'Chief Information Officer',\n 'Chief People Officer',\n 'Chief Knowledge Officer',\n 'Chief Data Officer',\n 'Chief Innovation Officer',\n 'Chief Customer Officer',\n 'Chief Legal Officer',\n 'Chief Compliance Officer',\n 'Chief Risk Officer',\n 'Chief Research Officer',\n 'Chief Scientific Officer',\n 'Chief Creative Officer',\n 'Chief Communications Officer',\n 'Chief Development Officer',\n 'Chief Procurement Officer',\n 'Chief Product Officer',\n 'Chief Revenue Officer',\n 'Chief Strategy Officer',\n 'Chief Growth Officer',\n 'Chief Diversity Officer',\n 'Chief Sustainability Officer',\n 'Chief Security Officer',\n 'Chief Experience Officer',\n 'Chief Operations Officer',\n 'Chief Digital Officer',\n 'Chief Analytics Officer',\n 'Chief Visionary Officer',\n 'Chief Transformation Officer',\n 'Chief Brand Officer',\n 'Chief Engagement Officer',\n 'Chief Culture Officer',\n 'CFO',\n 'CCO',\n 'COO',\n 'CTO',\n 'CMO',\n 'CIO',\n 'CPO',\n 'CKO',\n 'CDO',\n 'CSO',\n 'CGO',\n 'CVO',\n 'CDIO',\n 'CLO',\n 'CRO',\n 'CRO',\n 'CBO',\n ],\n Director: ['Director', 'Head'],\n 'President/Vice President': ['President', 'Vice President', 'VP'],\n Manager: [\n 'Manager',\n 'Engineering Manager',\n 'Sales Manager',\n 'Product Manager',\n 'Project Manager',\n 'Team Lead',\n 'Supervisor',\n 'Coordinator',\n ],\n\n Senior: ['Senior', 'Lead', 'Principal'],\n Intern: ['Intern', 'Trainee', 'Junior', 'Entry Level', 'New Grad'],\n Owner: ['Owner', 'Co-Owner'],\n Head: ['Head', 'Head of'],\n Founder: ['Founder', 'Co-Founder'],\n Partner: ['Partner', 'Co-Partner'],\n Specialist: ['Specialist', 'Expert'],\n};\n","import { useEffect } from 'react';\nimport Button from '../button/Button';\nimport { seniorityMapping } from '../../types/leadFilters.types';\n\nexport default function SeniorityDetailsModal({\n isOpen,\n onClose,\n}: {\n isOpen: boolean;\n onClose: () => void;\n}) {\n if (!isOpen) return null;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onClose]);\n\n return (\n
      \n \n {/* Título do modal */}\n

      \n Seniority Details\n

      \n\n

      \n Here are the titles that correspond to each seniority level. We will\n look for keywords in the title and user experiences.\n

      \n {/* Conteúdo com scroll */}\n \n {Object.entries(seniorityMapping).map(([key, titles]) => (\n
      \n \n {key}\n \n
        \n {titles.map(title => (\n
      • {title.replaceAll('\"', '')}
      • \n ))}\n
      \n
      \n ))}\n
      \n\n {/* Espaço fixo para o botão */}\n \n \n \n \n \n );\n}\n","export const seniorityLevelsMapper = [\n 'Manager',\n 'Senior',\n 'Director',\n 'Owner',\n 'C-Level',\n 'Intern',\n 'Head',\n 'President/Vice President',\n 'Founder',\n 'Partner',\n 'Specialist',\n];\n\nexport const functionsMapper = [\n 'Finance & Accounting',\n 'Human Resources',\n 'Legal',\n 'Administrative',\n 'Engineering and Technical',\n 'Sales',\n 'Customer Service',\n 'Product',\n 'Project Management',\n 'Marketing',\n 'Design',\n 'Operations',\n 'Research',\n 'Trades',\n 'Consulting',\n 'Medical',\n 'Real Estate',\n 'Education',\n 'Other',\n];\n","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport debounce from 'lodash.debounce';\nimport InputBadge from './InputBadge';\nimport { APIGetCitySuggestions } from '../../../services/api/api.location';\n\ninterface LocationInputWithBadgesProps {\n label: string;\n id: string;\n filters: string[];\n setFilters: (filters: string[]) => void;\n placeholder: string;\n debounceDelay?: number;\n onError: (error: string) => void;\n onFocus?: () => void;\n}\n\nconst LocationInputWithBadges: React.FC = ({\n label,\n id,\n filters,\n setFilters,\n placeholder,\n debounceDelay = 300,\n onError,\n onFocus,\n}) => {\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [filteredOptions, setFilteredOptions] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [validOptions, setValidOptions] = useState>(new Set());\n\n const inputRef = useRef(null);\n const dropdownRef = useRef(null);\n\n // Fetch city suggestions with debouncing\n const fetchLocations = async (query: string) => {\n if (!query.trim()) {\n setFilteredOptions([]);\n setDropdownOpen(false);\n return;\n }\n\n setIsLoading(true);\n try {\n const response = await APIGetCitySuggestions(query.trim());\n setFilteredOptions(response);\n setValidOptions(new Set(response));\n setDropdownOpen(response.length > 0);\n } catch (error) {\n console.error('Error fetching locations:', error);\n onError('Error fetching locations. Please try again later.');\n } finally {\n setIsLoading(false);\n }\n };\n\n const debouncedFetchLocations = useCallback(\n debounce(query => fetchLocations(query), debounceDelay),\n [],\n );\n\n const handleInputChange = (value: string) => {\n debouncedFetchLocations(value);\n };\n\n const handleAddValue = (value: string) => {\n const trimmedValue = value.trim();\n if (validOptions.has(trimmedValue)) {\n setFilters([...filters, trimmedValue]);\n onError('');\n setDropdownOpen(false);\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n } else {\n onError(\n `Invalid location \"${value}\". Please select from the suggestions.`,\n );\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ',') {\n e.preventDefault();\n if (inputRef.current) {\n handleAddValue(inputRef.current.value);\n }\n } else if (\n e.key === 'Backspace' &&\n filters.length > 0 &&\n !inputRef.current?.value\n ) {\n setFilters(filters.slice(0, filters.length - 1));\n } else if (e.key === ',') {\n e.preventDefault();\n handleAddValue(e.currentTarget.value);\n }\n };\n\n const handleBlur = () => {\n setTimeout(() => setDropdownOpen(false), 150); // Timeout to allow dropdown click\n if (inputRef.current) {\n const value = inputRef.current.value.trim();\n if (value && !validOptions.has(value)) {\n onError(\n `Invalid location ${value}. Please select from the suggestions.`,\n );\n }\n }\n };\n\n return (\n
      \n \n {label}{' '}\n (Multiple choices)\n \n
      \n {filters.map((item, index) => (\n setFilters(filters.filter((_, i) => i !== index))}\n />\n ))}\n handleInputChange(e.target.value)}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n onFocus={onFocus}\n />\n {dropdownOpen && (\n \n {isLoading ? (\n
    • Loading...
    • \n ) : (\n filteredOptions.map((option, index) => (\n handleAddValue(option)}\n >\n {option}\n \n ))\n )}\n \n )}\n
      \n
      \n );\n};\n\nexport default LocationInputWithBadges;\n","import { api, checkError } from './server';\n\nexport const APIGetCitySuggestions = async (\n query: string,\n): Promise => {\n try {\n const response = await api.get(`/locations/cities?q=${query}`);\n return response.data as string[];\n } catch (error: any) {\n return checkError(error);\n }\n};\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n var _a, _b;\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","// InputNumber.tsx\nimport React, { useState, useMemo } from 'react';\nimport { z } from 'zod';\n\ninterface InputNumberProps {\n label: string;\n onLimitChange: (limit: number) => void;\n defaultValue?: number;\n maxValue?: number; // Valor máximo opcional\n minValue?: number; // Valor mínimo opcional\n onError?: (error: string) => void; // Nova prop para repassar erros\n}\n\nconst InputNumber: React.FC = ({\n label,\n onLimitChange,\n defaultValue = 3,\n maxValue,\n minValue,\n onError,\n}) => {\n const [value, setValue] = useState(defaultValue.toString());\n const [errorMessage, setErrorMessage] = useState('');\n\n const validatedSchema = useMemo(() => {\n return z\n .string()\n .nonempty({ message: 'Max results cannot be empty.' })\n .refine(val => /^\\d+$/.test(val), { message: 'Only numbers are allowed.' })\n .transform(val => {\n let num = parseInt(val, 10);\n if (minValue !== undefined && num < minValue) {\n num = minValue;\n }\n if (maxValue !== undefined && num > maxValue) {\n num = maxValue;\n }\n return num;\n })\n .refine(num => num !== 0, { message: 'Max results cannot be zero.' });\n }, [minValue, maxValue]);\n\n const handleChange = (e: React.ChangeEvent) => {\n const rawInput = e.target.value.replace(/[^\\d]/g, '');\n setValue(rawInput);\n\n const parsed = validatedSchema.safeParse(rawInput);\n if (parsed.success) {\n const correctedValue = parsed.data;\n if (rawInput !== correctedValue.toString()) {\n setValue(correctedValue.toString());\n }\n setErrorMessage('');\n if (onError) onError('');\n onLimitChange(correctedValue);\n } else {\n const errMsg = parsed.error.errors[0].message;\n setErrorMessage(errMsg);\n if (onError) onError(errMsg);\n }\n };\n\n const handleBlur = () => {\n const parsed = validatedSchema.safeParse(value);\n if (!parsed.success) {\n const errMsg = parsed.error.errors[0].message;\n setErrorMessage(errMsg);\n if (onError) onError(errMsg);\n }\n };\n\n return (\n
      \n \n {label}\n \n \n\n
      \n );\n};\n\nexport default InputNumber;\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport {\n countriesMapper,\n titlesMapper,\n} from '../../utils/job-search-values.util';\nimport InputWithBadges from '../../pages/components/input/InputWithBadge';\nimport Button from '../button/Button';\nimport { TLeadFilters } from '../../types/leadFilters.types';\nimport SeniorityDetailsModal from './SeniorityDetailsModal';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCircleNotch, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport {\n functionsMapper,\n seniorityLevelsMapper,\n} from '../../utils/lead-search-values.util';\nimport LocationInputWithBadges from '../../pages/components/input/LocationWithBadge';\nimport InputNumber from '../../pages/components/input/InputNumber';\n\nexport default function LeadCriteriaModal({\n setFilters,\n filters,\n goToPreviousStep,\n onFinish,\n onClose,\n isEditing,\n isLoading,\n resetSearch,\n setResetSearch,\n}: {\n setFilters: (filters: TLeadFilters) => void;\n filters: TLeadFilters;\n goToPreviousStep: () => void;\n onFinish: () => void;\n onClose: () => void;\n isEditing: boolean;\n isLoading?: boolean;\n resetSearch?: boolean;\n setResetSearch?: (value: boolean) => void;\n}) {\n const [error, setError] = useState('');\n const [isSeniorityModalOpen, setIsSeniorityModalOpen] = useState(false);\n const locationInputRef = useRef(null);\n\n const scrollToLocationInput = () => {\n if (locationInputRef.current) {\n locationInputRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n }\n };\n\n const options = useMemo(\n () => ({\n seniorityLevel: seniorityLevelsMapper,\n country: countriesMapper,\n functions: functionsMapper,\n title: titlesMapper,\n }),\n [],\n );\n\n const handleUpdateFilters = useCallback(\n (key: keyof TLeadFilters, value: any) => {\n if (JSON.stringify(filters[key]) !== JSON.stringify(value)) {\n setFilters({ ...filters, [key]: value });\n }\n },\n [filters, setFilters],\n );\n\n const verifyFields = useCallback(() => {\n if (error) {\n setError(\n 'Please fix the error: ' +\n error.replaceAll('Please fix the error:', ''),\n );\n return;\n }\n setError('');\n onFinish();\n }, [error, onFinish]);\n\n return (\n
      \n \n {/* Header */}\n
      \n

      \n {isEditing ? 'Update' : 'Add'} Lead Search Criteria\n

      \n \n
      \n\n {/* Fixed Description */}\n
      \n

      \n You can apply one or more filters to refine your lead search and get\n the most relevant results. In some fields, it is possible to select\n more than one option.\n

      \n \n You can add multiple values by pressing Enter or Comma\n .\n \n
      \n\n {/* Content */}\n
      \n {/* AI Checkbox */}\n {/*
      \n
      \n handleUpdateFilters(\"useAiToGenerateFilters\", e.target.checked)}\n />\n \n
      \n {filters.useAiToGenerateFilters && (\n
      \n
      \n handleUpdateFilters(\"leadLimit\", limit)}\n defaultValue={filters.leadLimit || 3}\n maxValue={50}\n />\n
      \n\n
      \n \n handleUpdateFilters(\"userPrompt\", e.target.value)}\n rows={1}\n />\n
      \n\n
      \n handleUpdateFilters(\"location\", newFilters)}\n placeholder=\"Eg: New York, Los Angeles\"\n onError={(error) => setError(error)}\n onFocus={scrollToLocationInput}\n />\n
      \n
      \n )}\n
      */}\n\n {!filters.useAiToGenerateFilters && (\n
      \n {/* Function */}\n {/*
      \n {\n const invalidValues = newFilters.filter(\n value => !functionsMapper.includes(value),\n );\n if (invalidValues.length > 0) {\n setError(\n `Invalid value: \"${invalidValues.join(', ')}\" in Function. Please select from the list.`,\n );\n return;\n }\n setError('');\n handleUpdateFilters('functions', newFilters);\n }}\n placeholder=\"Eg: Sales, Operations\"\n />\n
      */}\n\n {/* Max Results */}\n
      \n \n handleUpdateFilters('leadLimit', limit)\n }\n defaultValue={filters.leadLimit || 3}\n maxValue={20}\n minValue={1}\n onError={error => setError(error)}\n />\n
      \n\n {/* Job Title */}\n
      \n \n handleUpdateFilters('title', newFilters)\n }\n placeholder=\"Eg: Sales Representative, Chief Human Resources Officer\"\n />\n
      \n\n {/* Seniority Level */}\n
      \n {\n const invalidValues = newFilters.filter(\n value => !seniorityLevelsMapper.includes(value),\n );\n if (invalidValues.length > 0) {\n setError(\n `Invalid value: \"${invalidValues.join(', ')}\" in Seniority Level. Please select from the list.`,\n );\n return;\n }\n setError('');\n handleUpdateFilters('seniorityLevel', newFilters);\n }}\n placeholder=\"Eg: C-Level, Director\"\n />\n
      \n\n {/* Location */}\n
      \n \n handleUpdateFilters('location', newFilters)\n }\n placeholder=\"Eg: New York, Los Angeles\"\n onError={error => setError(error)}\n onFocus={scrollToLocationInput}\n />\n
      \n\n
      \n \n handleUpdateFilters('isDecisionMaker', e.target.checked)\n }\n checked={filters.isDecisionMaker || false}\n />\n \n Only Decision Makers\n \n
      \n
      \n )}\n
      \n\n {/* Footer */}\n
      \n
      \n {error ? (\n
      \n

      {error}

      \n
      \n ) : isEditing ? (\n
      \n \n setResetSearch && setResetSearch(e.target.checked)\n }\n checked={resetSearch || false}\n />\n \n Reset search (remove all current jobs and leads)\n \n
      \n ) : (\n
      \n )}\n
      \n
      \n \n : null\n }\n >\n {isLoading ? (\n Loading\n ) : isEditing ? (\n 'Update'\n ) : (\n 'Search'\n )}\n \n
      \n
      \n
      \n\n setIsSeniorityModalOpen(false)}\n />\n \n );\n}\n","import React, { useState, useEffect } from 'react';\n\ninterface DateRangeDropdownProps {\n defaultValue?: 'Previous Day' | 'Last Week' | 'Last Month' | 'Last 3 Months'; // Valor inicial\n onDateRangeSelect: (\n fromDate: string,\n toDate: string,\n selectedOption:\n | 'Previous Day'\n | 'Last Week'\n | 'Last Month'\n | 'Last 3 Months',\n ) => void;\n onError: (error: string | null) => void;\n label: string;\n}\n\nconst DateRangeDropdown: React.FC = ({\n defaultValue = 'Last Week', // Valor padrão\n onDateRangeSelect,\n onError,\n label,\n}) => {\n const [selectedOption, setSelectedOption] = useState(defaultValue);\n\n const handleSelect = (\n option: 'Previous Day' | 'Last Week' | 'Last Month' | 'Last 3 Months',\n ) => {\n const today = new Date();\n let fromDate: Date;\n\n switch (option) {\n case 'Previous Day':\n fromDate = new Date(today.setDate(today.getDate() - 1));\n break;\n case 'Last Week':\n fromDate = new Date(today.setDate(today.getDate() - 7));\n break;\n case 'Last Month':\n fromDate = new Date(today.setMonth(today.getMonth() - 1));\n break;\n case 'Last 3 Months':\n fromDate = new Date(today.setMonth(today.getMonth() - 3));\n break;\n default:\n onError('Invalid date range selected.');\n return;\n }\n\n const toDate = new Date(); // Always today\n setSelectedOption(option);\n onDateRangeSelect(\n fromDate.toISOString().split('T')[0], // Format to YYYY-MM-DD\n toDate.toISOString().split('T')[0],\n option, // Pass the selected option\n );\n onError(null); // Clear any previous errors\n };\n\n // Atualize o filtro sempre que o `defaultValue` mudar\n useEffect(() => {\n if (defaultValue) {\n handleSelect(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n
      \n \n {label}\n \n
      \n \n handleSelect(\n e.target.value as\n | 'Previous Day'\n | 'Last Week'\n | 'Last Month'\n | 'Last 3 Months',\n )\n }\n className=\"w-full bg-transparent border-none focus:ring-0 focus:outline-none text-sm text-titleColor\"\n >\n {['Previous Day', 'Last Week', 'Last Month', 'Last 3 Months'].map(\n (option, index) => (\n \n {option}\n \n ),\n )}\n \n
      \n
      \n );\n};\n\nexport default DateRangeDropdown;\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport Button from '../../../components/button/Button';\nimport InputWithBadges from '../input/InputWithBadge';\nimport {\n companiesMapper,\n industriesMapper,\n titlesMapper,\n countriesMapper,\n} from '../../../utils/job-search-values.util';\nimport { TJobScrapFilters } from '../../../types/jobScrape.types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faClose } from '@fortawesome/free-solid-svg-icons';\nimport LocationInputWithBadges from '../input/LocationWithBadge';\nimport DateRangeDropdown from '../input/DateRangeDropdown';\nimport InputNumber from '../input/InputNumber';\n\nexport default function JobCriteriaFilter({\n filters,\n updateFilters,\n goToNextStep,\n goToPreviousStep,\n onClose,\n isEditing,\n hidePreviousButton,\n resetSearch,\n setResetSearch,\n}: {\n filters: TJobScrapFilters;\n updateFilters: (filters: TJobScrapFilters) => void;\n goToNextStep: () => void;\n goToPreviousStep: () => void;\n onClose: () => void;\n isEditing: boolean;\n hidePreviousButton?: boolean;\n resetSearch?: boolean;\n setResetSearch?: (value: boolean) => void;\n}) {\n const [error, setError] = useState('');\n // Options memoization\n const options = useMemo(\n () => ({\n country: countriesMapper,\n industry: industriesMapper,\n title: titlesMapper,\n companies: companiesMapper,\n companySize: [\n '1',\n '2-10',\n '11-50',\n '51-200',\n '201-500',\n '501-1000',\n '1001-5000',\n '5001-10000',\n '10001+',\n ],\n }),\n [],\n );\n\n // Validation before moving to the next step\n const verifyFields = useCallback(() => {\n if (error) {\n return;\n }\n updateFilters({ ...filters, resetSearch });\n\n setError('');\n goToNextStep();\n }, [error, goToNextStep, filters, resetSearch, updateFilters]);\n\n useEffect(() => {\n if (filters.title && filters.title.length > 0) {\n setError('');\n }\n }, [filters.title]);\n\n // Memoized update handlers to prevent unnecessary renders\n const handleUpdateFilters = useCallback(\n (key: keyof TJobScrapFilters, value: any) => {\n if (JSON.stringify(filters[key]) !== JSON.stringify(value)) {\n updateFilters({ ...filters, [key]: value });\n }\n },\n [filters, updateFilters],\n );\n\n const handleDateRangeSelect = useCallback(\n (fromDate: string, toDate: string, selectedOption: string) => {\n handleUpdateFilters('createdAtGte', fromDate);\n handleUpdateFilters('createdAtLte', toDate);\n handleUpdateFilters('dateFilter', selectedOption);\n },\n [handleUpdateFilters],\n );\n\n return (\n
      \n \n {/* Header */}\n
      \n

      \n {isEditing ? 'Update' : 'Add'} Job Search Criteria\n

      \n \n
      \n\n {/* Description */}\n
      \n

      \n You can apply one or more filters to refine your job search and get\n the most relevant results. In some fields it is possible to select\n more than one option.\n

      \n \n You can add multiple values by pressing Enter or Comma\n .\n \n
      \n\n {/* Content */}\n \n
      \n {/* Job Title */}\n
      \n \n handleUpdateFilters('title', newFilters)\n }\n placeholder=\"Eg: Software Engineer, Product Manager\"\n />\n
      \n \n handleUpdateFilters('strictTitle', e.target.checked)\n }\n checked={filters.strictTitle}\n />\n \n Only jobs with these titles\n \n
      \n
      \n\n {/* Max Results */}\n
      \n handleUpdateFilters('jobLimit', limit)}\n defaultValue={filters.jobLimit || 10}\n maxValue={20}\n minValue={1}\n onError={error => setError(error)}\n />\n
      \n\n {/* Company Size */}\n
      \n \n handleUpdateFilters('companySize', newFilters)\n }\n options={options.companySize}\n placeholder=\"Eg: 1, 1-10, 11-50\"\n needAlphabeticalOrder={false}\n />\n
      \n\n {/* Location */}\n
      \n setError(error)}\n label=\"Location\"\n id=\"location\"\n filters={filters.location || []}\n setFilters={newFilters =>\n handleUpdateFilters('location', newFilters)\n }\n placeholder=\"Eg: New York, USA\"\n />\n
      \n\n {/* Job Posting Date */}\n
      \n setError(error || '')}\n label=\"Job Posting Date\"\n onDateRangeSelect={(fromDate, toDate, selectedOption) =>\n handleDateRangeSelect(fromDate, toDate, selectedOption)\n }\n defaultValue={filters.dateFilter || 'Last Week'}\n />\n
      \n\n {/* Industries */}\n
      \n \n handleUpdateFilters('includeIndustries', newFilters)\n }\n options={options.industry}\n placeholder=\"Eg: Technology, Finance\"\n />\n
      \n\n {/* Industries to Exclude */}\n
      \n {\n const invalidValues = newFilters.filter(\n filter => !options.industry.includes(filter),\n );\n if (invalidValues.length > 0) {\n setError(\n `Invalid value for Industry: \"${invalidValues}\". Please select from the list.`,\n );\n return;\n }\n setError('');\n updateFilters({ ...filters, excludeIndustries: newFilters });\n }}\n options={options.industry}\n />\n\n {/* Active Jobs */}\n
      \n
      \n \n updateFilters({\n ...filters,\n applicationActive: e.target.checked,\n })\n }\n checked={filters.applicationActive}\n />\n \n Search in active job postings only\n \n
      \n
      \n
      \n
      \n
      \n\n {/* Footer */}\n\n
      \n
      \n {error ? (\n
      \n

      {error}

      \n
      \n ) : isEditing ? (\n
      \n \n setResetSearch && setResetSearch(e.target.checked)\n }\n checked={resetSearch || false}\n />\n \n Reset search (remove all current jobs and leads)\n \n
      \n ) : (\n
      \n )}\n
      \n
      \n {!hidePreviousButton && (\n \n )}\n \n
      \n
      \n \n \n );\n}\n","import Lottie from 'lottie-react';\n\nimport animationData from '../../assets/animations/loading.anim.json';\nimport { Spinner } from 'reactstrap';\n\ninterface LoadingComponentProps {\n showText?: boolean;\n text?: string;\n width?: number;\n height?: number;\n}\n\nexport default function LoadingComponent({\n showText = true,\n text = 'Loading',\n width = 150,\n height = 150,\n}: LoadingComponentProps) {\n return (\n
      \n \n {showText && (\n \n {text}\n \n \n \n \n )}\n\n \n\n \n
      \n );\n}\n","var _polygon, _path, _polygon2, _path2, _path3, _polygon3, _polygon4, _path4, _polygon5, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _circle, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _polygon6, _path39, _path40, _circle2, _circle3, _circle4, _path41, _path42, _path43, _path44, _circle5, _path45, _path46, _path47, _path48, _path49;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEmptyData(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 862.70323,\n height: 644.78592,\n viewBox: \"0 0 862.70323 644.78592\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n artist: \"Katerina Limpitsouni\",\n source: \"https://undraw.co/\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"629.943 612.644 612.777 612.644 604.608 546.435 629.943 546.435 629.943 612.644\",\n fill: \"#9e616a\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M807.65107,769.99215H795.34112l-2.19727-11.62205-5.62754,11.62205H754.86738A7.33919,7.33919,0,0,1,750.697,756.6135l26.07247-18.00658v-11.7495l27.42368,1.63683Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _polygon2 || (_polygon2 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"731.923 590.981 718.148 601.224 672.085 552.969 692.415 537.851 731.923 590.981\",\n fill: \"#9e616a\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M925.58816,737.04791,915.71,744.39344l-8.69827-8.015,2.41922,12.68419-26.19923,19.48211a7.33918,7.33918,0,0,1-11.32976-8.24721l10.17712-30.00728-7.0111-9.42842,22.98294-15.05066Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M818.57583,398.64705s32.56879,28.13791,17.542,108.35207l-18.3454,78.59653,59.8294,99.2561-19.07664,23.20771-77.77961-107.4334-28.18529-66.11365L744.6516,416.843Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _polygon3 || (_polygon3 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"599.447 425.746 597.488 456.084 603.483 585.365 631.692 580.452 637.083 488.406 599.447 425.746\",\n fill: \"#2f2e41\"\n })), _polygon4 || (_polygon4 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"237.445 628.211 252.796 628.21 260.098 569.001 237.443 569.002 237.445 628.211\",\n fill: \"#ffb6b6\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M402.178,750.80612l4.32074-.00018,16.86888-6.86018,9.0412,6.85913H432.41A19.26648,19.26648,0,0,1,451.67546,770.07v.62605l-49.49658.00183Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _polygon5 || (_polygon5 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"296.932 618.538 311.905 621.918 332.071 565.772 309.972 560.782 296.932 618.538\",\n fill: \"#ffb6b6\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M462.86463,740.39329l4.21465.9516,17.96568-2.97583,7.3082,8.68223.0012.00027a19.26648,19.26648,0,0,1,14.54854,23.03569l-.1379.61067L458.48379,759.7967Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M386.6516,393.843c-7.19708,21.70636-6.43618,45.268,1.72992,70.55606l3.49087,142.37821S386.67128,700.146,403.4543,733.00177h24.34l12.05112-134.75129,1.5133-90.44591,52.18244,76.30583L460.30462,730.79868l29.9568,2.678,53.93408-159.1909L477.6516,419.843Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M667.346,332.01487c18.61732-16.77656,46.30893-25.21208,69.53714-15.805a115.466,115.466,0,0,0-51.888,59.93484c-3.6979,9.83846-6.78644,21.16623-15.88188,26.43349-5.65933,3.27753-12.70027,3.4377-19.04568,1.85557-6.34568-1.58237-12.16226-4.75415-17.89913-7.89422l-1.63218-.03691C637.86406,372.53682,648.72872,348.79142,667.346,332.01487Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#e6e6e6\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M736.75328,316.71942A98.69239,98.69239,0,0,0,681.847,342.64994a42.50049,42.50049,0,0,0-8.34534,10.37667,24.37584,24.37584,0,0,0-2.81751,12.51568c.10054,4.05833.67335,8.19792-.21438,12.21a14.92537,14.92537,0,0,1-7.42454,9.68865c-4.54586,2.613-9.7595,3.43673-14.886,4.0651-5.692.69769-11.61526,1.33219-16.54238,4.5248-.597.38683-1.16231-.56211-.56622-.94836,8.57235-5.5546,19.41969-3.5335,28.63724-7.24065,4.30108-1.72983,8.10691-4.76631,9.454-9.35719,1.17794-4.01452.5909-8.2838.45359-12.39207a26.01068,26.01068,0,0,1,2.299-12.34028,39.29038,39.29038,0,0,1,7.9156-10.65924,95.74917,95.74917,0,0,1,24.3333-17.41978A100.44256,100.44256,0,0,1,736.743,315.61475c.70319-.09065.70886,1.01461.01026,1.10467Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M686.44718,337.79134a14.807,14.807,0,0,1,1.63241-19.1039c.50628-.49873,1.30506.26457.79811.764a13.71094,13.71094,0,0,0-1.48216,17.77371c.41512.5769-.53561,1.13983-.94836.56623Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M670.36216,363.49127a28.53932,28.53932,0,0,0,20.3938-4.08346c.59834-.38471,1.16384.56412.56622.94836a29.68517,29.68517,0,0,1-21.23023,4.20607c-.70085-.12626-.42683-1.19655.27021-1.071Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M714.44656,321.9478a8.38148,8.38148,0,0,0,6.2686,4.89443c.7021.11732.42732,1.18753-.27021,1.071a9.39213,9.39213,0,0,1-6.94675-5.39917.57084.57084,0,0,1,.19107-.7573.55506.55506,0,0,1,.75729.19107Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M762.46124,397.11454c-.44048-.06079-.881-.12157-1.32791-.1756a110.37862,110.37862,0,0,0-17.88208-.90839c-.46221.00673-.93053.02051-1.39159.0405a116.3646,116.3646,0,0,0-41.75015,9.61014,113.00482,113.00482,0,0,0-15.16291,8.0555c-6.68773,4.23438-13.602,9.35764-21.078,11.08459a19.38584,19.38584,0,0,1-2.36217.42086l-30.88864-26.74546c-.03969-.096-.0858-.18531-.12584-.28162l-1.28212-1.01147c.23872-.17556.49008-.35251.72879-.52808.138-.10241.283-.19887.421-.30128.09422-.06639.18881-.13253.27-.19782.03128-.02222.0629-.04413.08811-.05934.08122-.06529.1636-.11732.23871-.17556q2.10345-1.4895,4.23516-2.95463c.00611-.007.00611-.007.0191-.00815a166.15689,166.15689,0,0,1,34.601-18.59939c.36686-.13859.73948-.28453,1.12045-.4109a107.831,107.831,0,0,1,16.93919-4.76651,95.32878,95.32878,0,0,1,9.5528-1.33433,79.272,79.272,0,0,1,24.72335,1.7516c16.14332,3.7433,30.90977,12.60785,39.65578,26.43254C762.02688,396.40555,762.24387,396.75367,762.46124,397.11454Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#e6e6e6\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M762.05235,397.44645a98.69236,98.69236,0,0,0-59.45156-12.3533A42.50006,42.50006,0,0,0,689.69,388.35387a24.3758,24.3758,0,0,0-9.78493,8.29673c-2.36313,3.30088-4.39808,6.951-7.52245,9.62a14.92533,14.92533,0,0,1-11.76132,3.26575c-5.2028-.6506-9.86156-3.13185-14.3331-5.71664-4.9648-2.86991-10.0762-5.92951-15.93241-6.34685-.70956-.05056-.5896-1.14861.11888-1.09812,10.1888.72611,17.633,8.8707,27.22462,11.46035,4.47564,1.20837,9.34256,1.07528,13.18213-1.77925,3.35754-2.49617,5.45923-6.25839,7.82305-9.62129a26.01082,26.01082,0,0,1,9.26529-8.46889,39.29037,39.29037,0,0,1,12.73777-3.74506,95.74907,95.74907,0,0,1,29.91669.7416,100.44263,100.44263,0,0,1,32.085,11.59611c.616.351-.04488,1.23688-.65689.88819Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M709.199,383.98345a14.807,14.807,0,0,1,12.80526-14.27057c.7045-.09339.88272.997.17729,1.0905a13.711,13.711,0,0,0-11.88443,13.29895c-.01588.71056-1.11391.58761-1.09812-.11888Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M680.88287,394.81911a28.53928,28.53928,0,0,0,18.74183,9.01806c.70936.05308.58963,1.15113-.11888,1.09812a29.68518,29.68518,0,0,1-19.4835-9.42375c-.48357-.52277.37961-1.21236.86055-.69243Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M741.09383,388.19084a8.38147,8.38147,0,0,0,2.05834,7.68205c.49.51638-.37378,1.20545-.86055.69243a9.39216,9.39216,0,0,1-2.29591-8.49336.57082.57082,0,0,1,.6085-.48962.55506.55506,0,0,1,.48962.6085Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M219.92162,754.74293c-1.45,5.44-5.26,9.97-9.86,13.27-.75.54-1.52,1.04-2.3,1.51-.24.14-.48.29-.73.42q-.405.24-.81.45h-21.63c-.39-.79-.77-1.59-1.15-2.38-9.27-19.48-15.78-40.5-14.67-61.91a79.25417,79.25417,0,0,1,5.17-24.25c5.94-15.47,16.78-28.86,31.69-35.6.37-.17.76-.34,1.14-.5-.12.43-.24.85-.36,1.28a110.78533,110.78533,0,0,0-3.38,17.59c-.06.46-.11.92-.15,1.39a116.05427,116.05427,0,0,0,3.72,42.69c.01.03.01995.07.03.1q1.27506,4.605,2.96,9.07c.88,2.35,1.83,4.67,2.87,6.95C216.80163,734.393,222.62157,744.593,219.92162,754.74293Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#e6e6e6\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.04162,646.203c-.21.28-.42005.55-.63.83a98.12885,98.12885,0,0,0-11.12,18.76c-.16.33-.31.66-.44,1a97.8135,97.8135,0,0,0-7.82,29.24,1.49,1.49,0,0,0-.02.21c-.25,2.36005-.4,4.74-.46,7.12a42.48011,42.48011,0,0,0,1.43,13.24,23.7688,23.7688,0,0,0,5.46,9.42c.25.27.5.54.77.8.2.21.42.42.63.62,2.02,1.93,4.23,3.72,6.13,5.79a21.43163,21.43163,0,0,1,2.35,3,14.90407,14.90407,0,0,1,1.6,12.1c-1.36,5.06-4.47,9.33-7.65,13.4-1.59,2.04-3.23,4.1-4.65,6.28-.51995.78-1,1.57-1.43994,2.38h-1.26c.42-.81.88-1.6,1.38-2.38,3.65-5.75,8.84-10.69,11.53-17.02,1.82-4.26995,2.37-9.11.07-13.3a17.68156,17.68156,0,0,0-2.43-3.38c-1.83-2.07-4.02-3.84-6.01-5.71-.5-.47-.99-.95-1.46-1.45a24.96377,24.96377,0,0,1-5.64-8.9,39.23028,39.23028,0,0,1-1.94-13.13c0-2.84.15-5.7.43-8.54.03-.36.07-.73.11-1.1a100.76663,100.76663,0,0,1,19.67-49.23c.2-.28.41-.55.62-.82C206.68163,644.87294,207.47161,645.653,207.04162,646.203Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M186.36526,696.67763a14.807,14.807,0,0,1-12.3542-14.66278.55275.55275,0,0,1,1.10455-.02415,13.711,13.711,0,0,0,11.51986,13.616c.70147.11439.42725,1.18471-.27021,1.071Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.164,726.22406a28.5393,28.5393,0,0,0,11.53315-17.308c.15106-.69512,1.22186-.42407,1.071.27021a29.68514,29.68514,0,0,1-12.0379,17.98619c-.58485.40629-1.1479-.54428-.56622-.94836Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.96075,665.676a8.38149,8.38149,0,0,0,7.89345-.97168c.57941-.41351,1.14186.53754.56622.94836a9.39215,9.39215,0,0,1-8.72989,1.09429.57082.57082,0,0,1-.40038-.67059.55507.55507,0,0,1,.6706-.40038Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M282.06158,684.87294c-.35.27-.71.54-1.06.82a110.362,110.362,0,0,0-13.29,12c-.32.33-.64.67-.95,1.01l-.01.01a116.347,116.347,0,0,0-22.66,36.14l-.03.09c-.01.03-.02.05-.03.08a114.44321,114.44321,0,0,0-5.03,16.42c-1.22,5.46-2.22,11.31-4.13,16.57-.29.81-.61,1.61-.95,2.38h-44.46c.15-.79.31-1.59.47-2.38a160.30168,160.30168,0,0,1,10.54-33.7c.16-.36.32-.72.5-1.08a108.30478,108.30478,0,0,1,8.61-15.35.0098.0098,0,0,1,.01-.01,94.95585,94.95585,0,0,1,5.8-7.69,79.11871,79.11871,0,0,1,18.72-16.24c.04-.03.09-.05.13-.08,14.04-8.71,30.68-12.86,46.59-9.27h.01C281.25158,684.68294,281.6516,684.773,282.06158,684.87294Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#e6e6e6\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M282.01159,685.403c-.34.09-.68.19-1.01.29a98.5888,98.5888,0,0,0-20.17,8.27c-.32.17-.64.35-.96.53a98.25544,98.25544,0,0,0-23.79,18.59.035.035,0,0,0-.01.02c-.08.08-.17.17-.24.25-1.6,1.72-3.14,3.51-4.6,5.35a42.769,42.769,0,0,0-6.82,11.43,23.67365,23.67365,0,0,0-1.31,10.81c.03.37.08.73.13,1.1.04.29.08.58.13.88.66,4.01,1.8,8.03,1.48,12.12a14.90913,14.90913,0,0,1-6.01,10.63,23.794,23.794,0,0,1-3.68,2.34,36.85232,36.85232,0,0,1-5.77,2.38h-3.93c.53-.15,1.05-.3,1.58-.45a48.21182,48.21182,0,0,0,5.53-1.93,26.912,26.912,0,0,0,3-1.48c4.02-2.31,7.37005-5.85,8.07-10.58.61-4.14-.57-8.28-1.27-12.33-.12-.7-.23-1.39-.29-2.08a24.43856,24.43856,0,0,1,.85-10.46,39.0623,39.0623,0,0,1,6.36-11.66,83.355,83.355,0,0,1,5.48-6.55q.36-.40494.75-.81a100.901,100.901,0,0,1,24.21-18.73h.01a99.28782,99.28782,0,0,1,21.1-8.74h.01c.33-.1.67-.2,1-.29C282.53161,684.12294,282.69158,685.213,282.01159,685.403Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M235.116,713.25243a14.807,14.807,0,0,1-1.03613-19.1455c.43212-.5642,1.32915.08079.89646.64574A13.711,13.711,0,0,0,235.97653,712.56c.49121.51367-.37215,1.20316-.86055.69243Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.75543,740.93692a28.53931,28.53931,0,0,0,19.62921-6.87574c.53912-.46406,1.2309.397.69242.86054a29.68514,29.68514,0,0,1-20.44051,7.11332c-.71159-.02772-.58885-1.12569.11888-1.09812Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M260.64411,693.67444a8.38149,8.38149,0,0,0,6.8875,3.97657c.71159.01869.58807,1.11668-.11888,1.09812a9.39215,9.39215,0,0,1-7.62917-4.38226.57083.57083,0,0,1,.08406-.77649.55507.55507,0,0,1,.77649.08406Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M625.03076,300.73673a11.59945,11.59945,0,0,1-17.7667.83759l-37.80039,16.44009,3.682-21.10161,35.3314-12.37668a11.66235,11.66235,0,0,1,16.55372,16.20061Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#ffb8b8\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M599.80571,307.32525l-87.7976,39.10831-.18835-.06738-100.067-35.65889a32.95966,32.95966,0,0,1-14.78168-42.75569h0a32.92423,32.92423,0,0,1,46.9872-14.63652l74.4685,44.85908,72.21121-9.35878Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#e6e6e6\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1031.35162,771.203a1.1865,1.1865,0,0,1-1.19,1.19h-860.29a1.19,1.19,0,0,1,0-2.38h860.29A1.1865,1.1865,0,0,1,1031.35162,771.203Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#ccc\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M481.99193,424.40352l-88.50585-14.15674a16.89334,16.89334,0,0,1-9.95557-23.646l4.01367-8.02832-1.55908-84.34668A62.48156,62.48156,0,0,1,416.32152,239.572l8.63086-5.16064,4.36182-11.07666,40.22022.981.11718,14.52734,14.40381,22.96826-.00049.09522-.90381,125.01367-3.96972,12.90137,6.00244,15.00586Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#e6e6e6\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 284.4591,\n cy: 45.40997,\n r: 36.54413,\n fill: \"#ffb8b8\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M415.05385,180.98352c-1.09-4.59187-.58956-11.05349.02641-15.677,1.61485-12.12129,8.3464-23.64474,18.57336-30.47048a13.37957,13.37957,0,0,1,6.66453-2.64845c2.41939-.101,5.04189,1.19418,5.78465,3.499a11.99254,11.99254,0,0,1,6.76552-6.709,21.1355,21.1355,0,0,1,9.63075-1.29746,35.19728,35.19728,0,0,1,29.36306,20.98947c.97609,2.3188,3.70246-6.24621,4.93916-4.05528a9.7407,9.7407,0,0,0,5.52388,4.85342c2.4233.67619,3.40756,10.66034,4.3612,8.33222a11.0984,11.0984,0,0,1-10.61055,15.47525c-2.46642-.09228-4.82489-.99947-7.262-1.39-8.71512-1.39642-17.96,4.92316-19.82312,13.55058a23.98689,23.98689,0,0,0-3.15565-7.021,8.1187,8.1187,0,0,0-6.51321-3.57866c-2.47957.09278-4.6591,1.7139-6.26793,3.60295s-2.81713,4.093-4.43782,5.97186c-4.7555,5.513-11.18745,18.3697-17.96453,17.432C425.30335,201.103,416.54206,187.25309,415.05385,180.98352Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M674.01238,342.14754a7.1328,7.1328,0,0,0-4.80706-7.85363l-98.41317-32.77709a7.13219,7.13219,0,0,0-2.933-.3368l-24.66687,2.33267-14.15377,1.34255-26.11867,2.46833a7.15519,7.15519,0,0,0-6.38357,5.98973l-13.26135,82.8376a7.18646,7.18646,0,0,0,4.48439,7.79592l99.4404,38.38442a6.94669,6.94669,0,0,0,1.44636.38836,7.13621,7.13621,0,0,0,2.17571.01648l64.25546-9.52349a7.12057,7.12057,0,0,0,6.023-5.99919Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M490.01349,398.1102l99.44009,38.38234a.89711.89711,0,0,0,.457.05366l64.247-9.52224a.88347.88347,0,0,0,.7549-.75161l12.91979-85.06677a.90469.90469,0,0,0-.59937-.98151l-.66169-.22392-97.75762-32.54588a.67787.67787,0,0,0-.13742-.03318.88732.88732,0,0,0-.23-.01192l-60.16426,5.6932-4.77428.44794a.90314.90314,0,0,0-.7947.74781l-13.259,82.83439A.89735.89735,0,0,0,490.01349,398.1102Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#00a1ff\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M508.28194,313.10237l60.16426-5.6932a.88732.88732,0,0,1,.23.01192.67787.67787,0,0,1,.13742.03318l97.75762,32.54588-25.78658,2.72965-9.65046,1.01669-27.46045,2.90123a1.939,1.939,0,0,1-.24081-.0029c-.04881-.01472-.09762-.02944-.15639-.04511Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M487.75761,403.95209l99.44009,38.38233a6.72242,6.72242,0,0,0,1.4505.37968,7.22358,7.22358,0,0,0,2.17727.02722l64.247-9.52224a7.13521,7.13521,0,0,0,6.02839-6.00387l12.90982-85.06772a7.19014,7.19014,0,0,0-.4184-3.71669c-.06533-.15688-.13072-.31384-.207-.46172a6.99031,6.99031,0,0,0-2.26369-2.69758,7.13789,7.13789,0,0,0-1.91579-.97662l-.11659-.04131-98.29175-32.73751a8.95539,8.95539,0,0,0-1.22721-.29807,7.08573,7.08573,0,0,0-1.71463-.03323l-24.66295,2.32468-14.15253,1.35L502.917,307.3259a7.09173,7.09173,0,0,0-3.01853.99744,1.32948,1.32948,0,0,0-.20245.12125,1.1922,1.1922,0,0,0-.12992.09813,7.14818,7.14818,0,0,0-3.02682,4.76367l-13.2699,82.84346A7.19418,7.19418,0,0,0,487.75761,403.95209Zm10.54219-90.35694a5.29965,5.29965,0,0,1,1.26984-2.6713,4.65147,4.65147,0,0,1,.67571-.65875,5.31719,5.31719,0,0,1,2.32365-1.08389,4.059,4.059,0,0,1,.50915-.07189l43.98466-4.15521,20.96479-1.995c.14217-.01658.27254-.01418.40386-.02168a5.00673,5.00673,0,0,1,.94761.07043,4.14489,4.14489,0,0,1,.84467.20125l98.4084,32.77882c.07775.02754.14554.05407.22323.0816a5.218,5.218,0,0,1,2.27305,1.6537,5.25912,5.25912,0,0,1,1.12074,4.14541l-12.92068,85.07674a5.34916,5.34916,0,0,1-4.5086,4.50155l-64.257,9.52134a5.41346,5.41346,0,0,1-2.72281-.31038l-99.441-38.37237a5.40237,5.40237,0,0,1-3.35921-5.846Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#3f3d56\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M499.35216,308.99439a.87724.87724,0,0,1,.268-.38623,1.05132,1.05132,0,0,1,.129-.08817c.04169-.01607.08434-.04216.12611-.05828a.87349.87349,0,0,1,.62383-.01066l2.06994.73016,101.1157,35.66943,23.66513-2.5004,13.24288-1.39675,28.02932-2.96742,2.50639-.26279.48732-.05387a.9043.9043,0,0,1,.95216.65352.73938.73938,0,0,1,.02649.14313.893.893,0,0,1-.55014.92188.98843.98843,0,0,1-.24752.06673l-3.40944.35738-27.60268,2.91775-9.65046,1.01669-27.46045,2.90123a1.939,1.939,0,0,1-.24081-.0029c-.04881-.01472-.09762-.02944-.15639-.04511L500.24535,310.2651l-.3498-.1238a.67025.67025,0,0,1-.21942-.12146A.91016.91016,0,0,1,499.35216,308.99439Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#3f3d56\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M588.91905,442.97456a.89376.89376,0,0,1-.74251-1.01574l14.51687-96.33414a.894.894,0,0,1,1.017-.75056l.008.00129a.89377.89377,0,0,1,.74252,1.01574l-14.51687,96.33414a.894.894,0,0,1-1.017.75055Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#3f3d56\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M625.716,436.86342l-9.6548,1.01888,11.29337-95.5347s12.89458-2.33464,13.23951-1.39846C640.80631,341.50808,625.80805,436.25066,625.716,436.86342Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#3f3d56\"\n })), _polygon6 || (_polygon6 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"331.25 182.533 330.99 226.1 408.116 255.488 435.813 218.284 331.25 182.533\",\n fill: \"#3f3d56\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M671.13144,337.72465a5.30105,5.30105,0,0,0-2.49688-1.73654l-98.40594-32.7777a5.10582,5.10582,0,0,0-.848-.20665,5.00894,5.00894,0,0,0-.95065-.07115l.15966-.99731.98511-.71323,23.36822-16.9188,78.04053,23.91705.13549,27.05154Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#3f3d56\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M503.829,380.07963a1.51326,1.51326,0,0,1,.326.06843l30.19365,9.91686a1.50014,1.50014,0,0,1-.93555,2.85069l-30.19364-9.91685a1.50039,1.50039,0,0,1,.60952-2.91913Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#fff\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 457.00322,\n cy: 423.23593,\n r: 12,\n fill: \"#f2f2f2\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 151.00322,\n cy: 467.23593,\n r: 12,\n fill: \"#f2f2f2\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 401.00322,\n cy: 70.23593,\n r: 12,\n fill: \"#f2f2f2\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M589.34024,397.72852A11.59947,11.59947,0,0,1,573.433,389.7714L532.421,385.62792l13.53022-16.60628,36.87128,6.48065a11.66236,11.66236,0,0,1,6.5177,22.22623Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#ffb8b8\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M564.115,391.14082l-95.70849-8.81836-.13135-.15088L398.42455,302.135a32.95967,32.95967,0,0,1,8.01319-44.52344h0a32.92425,32.92425,0,0,1,48.14355,10.209l43.02246,75.54443,67.56543,27.147Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#e6e6e6\"\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M804.33859,237.22376c-2.37688-17.43387-5.35788-36.15172-17.65411-48.7369a41.34992,41.34992,0,0,0-59.74384.61837c-8.95079,9.54876-12.90365,22.95672-13.2654,36.03983s2.55205,26.02081,5.78442,38.70347a119.28958,119.28958,0,0,0,49.78577-9.79937c3.92617-1.70407,7.789-3.63056,11.93689-4.68634,4.14784-1.05571,7.10454,1.60088,10.96292,3.45335l2.118-4.05545c1.73377,3.22659,7.10244,2.27017,9.04978-.83224C805.26007,244.82608,804.83352,240.853,804.33859,237.22376Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M736.532,334.53244l-69.876,1.49441a11.05455,11.05455,0,1,0-4.93974,15.57383c9.26761.52674,81.77191,10.81733,86.0974,4.18549,4.39027-6.73106,27.82423-30.48612,27.82423-30.48612l-18.01271-25.64378Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#9e616a\"\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 584.91096,\n cy: 94.03525,\n r: 32.83012,\n fill: \"#9e616a\"\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M599.36147,299.184\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#00a1ff\"\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M806.14195,284.81075c-3.86888-7.69981-5.74873-17.212-13.99671-19.70823-5.56965-1.68563-28.09691.84048-33.17312,3.6859-8.44356,4.73313-.79189,13.60234-5.77332,21.90214-5.41517,9.02271-20.132,27.12978-25.5472,36.15241-3.72279,6.20279,8.8171,24.40947,6.80408,31.358-2.01273,6.94848-2.10962,14.74736,1.31952,21.11722,3.06888,5.70141-1.37137,10.745,1.71521,16.437,3.20957,5.91962,7.14849,28.05274,4.16119,34.08785l-2,6c19.84682,1.16609,36.53459-22.54427,56.25813-25.04188,4.89894-.62032,9.98565-1.43073,14.02251-4.27435,5.94639-4.18864,8.29717-11.78923,9.76638-18.91282A159.32576,159.32576,0,0,0,806.14195,284.81075Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#3f3d56\"\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M835.89793,366.11245c-2.76443-7.54563-7.769-40.5366-7.769-40.5366l-31.32417-.91848,15.31443,37.772-41.79036,58.50283s.07739.12853.21808.35778a11.052,11.052,0,1,0,9.26964,11.74483.76305.76305,0,0,0,.95807-.16445C785.42465,427.035,838.66236,373.65815,835.89793,366.11245Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#9e616a\"\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M839.0826,345.27741c-2.87511-12.13478-5.77152-24.33549-10.61887-35.82566s-11.78661-22.34286-21.54669-30.10543c-3.12048-2.48179-6.609-4.67232-10.52078-5.44389-3.91147-.77165-8.31967.09193-11.0667,2.98137-4.39621,4.62357-3.07339,12.0451-1.4611,18.21781Q791,322.40224,798.13123,349.70286q20.59418-2.18287,41.188-4.36591Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#3f3d56\"\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M793.7871,226.19592c-1.20908-7.942-2.47188-15.95043-5.31228-23.42857-2.8404-7.47821-7.41882-14.48249-13.98647-18.71882-10.39879-6.70709-23.862-5.41352-35.52074-1.55544-9.01622,2.9837-17.81761,7.51864-24.17574,14.8093-6.35848,7.29074-9.92957,17.69379-7.56439,27.22665q18.65464-4.40738,37.30893-8.81483l-1.36137.962a30.03765,30.03765,0,0,1,16.03083,20.8927,31.12209,31.12209,0,0,1-6.56554,25.84773q12.72244-4.51323,25.44489-9.0263c5.23526-1.85713,10.83833-3.997,13.94267-8.76047C795.62723,240.107,794.79091,232.78685,793.7871,226.19592Z\",\n transform: \"translate(-168.64838 -127.60704)\",\n fill: \"#2f2e41\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyData);\nexport default __webpack_public_path__ + \"static/media/empty_data.9dec13faa8016534294a308ab85a2b79.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect, useCallback } from 'react';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport {\n DropdownMenu,\n DropdownToggle,\n UncontrolledDropdown,\n DropdownItem,\n} from 'reactstrap';\nimport {\n Block,\n Icon,\n PaginationComponent,\n DataTable,\n DataTableBody,\n DataTableHead,\n DataTableRow,\n DataTableItem,\n TooltipComponent,\n Button,\n} from '../../../components/Component';\nimport { useNavigate } from 'react-router-dom';\nimport { getDateStructured, truncateText } from '../../../utils/Utils';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { ECampaignStatus, TCampaign } from '../../../types/lists.types';\nimport {\n APICreateJobSearch,\n APIDeleteJobSearch,\n APIGetJobSearchByPublicId,\n APIGetJobSearchesByUser,\n APIRefreshJobsFromJobSearch,\n APIUpdateJobSearch,\n} from '../../../services/api/api.job-search';\nimport CreateSearchModal from '../../components/modal/CreateSearchModal';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faArrowsRotate,\n faEdit,\n faPlusCircle,\n faTrashCan,\n} from '@fortawesome/free-solid-svg-icons';\nimport Badge from '../../../components/badge/Badge';\nimport LoadingMessages from '../../../components/alerts/LoadingMessages';\nimport { LoadingModal } from '../../components/modal/LoadingModal';\nimport { TJobScrapFilters } from '../../../types/jobScrape.types';\nimport { formatDate } from '../../../utils/date.util';\nimport LeadFilter from '../../../components/filters/LeadFilter';\nimport { TLeadFilters } from '../../../types/leadFilters.types';\nimport JobCriteriaFilter from '../../components/JobCriteriaForm/JobCriteriaFilter';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport LoadingComponent from '../../../components/loading/Loading';\nimport EmptyData from '../../../assets/images/empty_data.svg';\n\nconst UserJobSeachers = () => {\n const { createNotification, handleAPIError } = useNotification();\n const navigate = useNavigate();\n\n const [campaigns, setCampaigns] = useState([]);\n\n const [currentPage, setCurrentPage] = useState(1);\n const [totalItems, setTotalItems] = useState(0);\n const [itemsPerPage, setItemsPerPage] = useState(50);\n\n const [newCampaignName, setNewCampaignName] = useState('');\n\n const [currentEditingCampaignId, setCurrentEditingCampaignId] = useState<\n string | null\n >(null);\n\n const [isModalCampaignOpen, setIsModalCampaignOpen] = useState(false);\n\n const initialJobFilter = {\n title: [],\n country: [],\n location: [],\n companyName: [],\n industry: [],\n excludeIndustries: [\n 'Staffing & Recruiting',\n 'Staffing and Recruiting',\n 'Executive Search Services',\n 'Outsourcing and Offshoring Consulting',\n 'Outsourcing/Offshoring',\n ],\n seniorityLevel: [],\n createdAtGte: '',\n createdAtLte: '',\n jobLimit: 20,\n totalJobsFound: 0,\n };\n const initialLeadFilter: TLeadFilters = {\n country: [],\n functions: [],\n seniorityLevel: [],\n title: [],\n leadLimit: 5,\n isDecisionMaker: true,\n useAiToGenerateFilters: false,\n userPrompt: '',\n };\n\n const [leadFilters, setLeadFilters] = useState(initialLeadFilter);\n const [jobFilters, setJobFilters] =\n useState(initialJobFilter);\n\n const [isEditing, setIsEditing] = useState(false);\n\n const updateJobFilters = (newFilters: TJobScrapFilters) => {\n setJobFilters(prevFilters => ({\n ...prevFilters,\n ...newFilters,\n }));\n };\n\n const [isLoading, setIsLoading] = useState(false);\n const [isLoadingJobs, setIsLoadingJobs] = useState(false);\n\n const [currentStep, setCurrentStep] = useState(1);\n const { user } = useAuth();\n\n useEffect(() => {\n setIsLoading(true);\n console.log('fetching campaigns', currentPage, itemsPerPage);\n fetchJobSearchs();\n }, [currentPage, itemsPerPage]);\n\n const createNewCampaign = async (leadFilters: TLeadFilters) => {\n try {\n setIsLoadingJobs(true);\n\n // Tenta criar a campanha\n let campaign;\n try {\n campaign = await APICreateJobSearch({\n name: newCampaignName,\n userId: user!.publicId,\n jobFilters: jobFilters,\n leadFilters: leadFilters,\n status: ECampaignStatus.PENDING,\n });\n } catch (error: any) {\n console.error('Error creating campaign:', error);\n handleAPIError(error, error.message);\n setIsLoadingJobs(false);\n return;\n }\n\n if (!campaign) return;\n navigate(\n `${process.env.PUBLIC_URL}/job-searches/${campaign.publicId}/jobs?page=1`,\n );\n // Only continue if the campaign was created successfully\n // await waitForCampaignCompletion(campaign.publicId);\n // await fetchJobSearchs();\n createNotification('success', 'Campaign created successfully');\n resetCampaignForm();\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Unexpected error:', error);\n setIsLoadingJobs(false);\n }\n };\n\n const waitForCampaignCompletion = async (campaignPublicId: string) => {\n return new Promise(resolve => {\n const intervalId = setInterval(async () => {\n try {\n const campaign = await APIGetJobSearchByPublicId(campaignPublicId);\n if (campaign && campaign.status === ECampaignStatus.COMPLETED) {\n clearInterval(intervalId);\n setIsLoadingJobs(false);\n navigate(\n `${process.env.PUBLIC_URL}/job-searches/${campaignPublicId}/jobs?page=1`,\n );\n resolve();\n }\n\n if (campaign && campaign.status === ECampaignStatus.FAILED) {\n createNotification(\n 'danger',\n 'Campaign failed, refresh the campaign',\n );\n clearInterval(intervalId);\n setIsLoadingJobs(false);\n resolve();\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Error fetching campaign status:', error);\n clearInterval(intervalId);\n setIsLoadingJobs(false);\n resolve();\n }\n }, 3000);\n });\n };\n\n const resetCampaignForm = () => {\n setNewCampaignName('');\n setJobFilters(initialJobFilter);\n setLeadFilters(initialLeadFilter);\n setCurrentEditingCampaignId(null);\n setIsEditing(false);\n setCurrentStep(1);\n };\n\n const handleDeleteCampaign = async (campaignPublicId: string) => {\n setIsLoading(true);\n if (!campaignPublicId) {\n createNotification('danger', 'Campaign not found');\n return;\n }\n\n try {\n await APIDeleteJobSearch(campaignPublicId);\n await fetchJobSearchs();\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Error deleting campaign:', error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const fetchJobSearchs = useCallback(async () => {\n try {\n setIsLoading(true);\n const campanigns = await APIGetJobSearchesByUser(\n user!.publicId,\n currentPage,\n itemsPerPage,\n );\n setTotalItems(campanigns.total);\n setCampaigns(campanigns.campaigns);\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Unexpected error fetching data:', error);\n } finally {\n setIsLoading(false);\n }\n }, [user?.publicId, currentPage, itemsPerPage]);\n\n const handleRefreshJobs = async (campaign: TCampaign) => {\n try {\n setIsLoadingJobs(true);\n await APIRefreshJobsFromJobSearch(campaign.publicId);\n await waitForCampaignCompletion(campaign.publicId);\n setIsLoadingJobs(false);\n fetchJobSearchs();\n } catch (error: any) {\n setIsLoadingJobs(false);\n handleAPIError(error, error.message);\n console.error('Error refreshing jobs:', error);\n }\n };\n\n const checkCampaignStatus = async (\n campaignPublicId: string,\n campaignStatus: ECampaignStatus,\n ) => {\n if (campaignStatus !== ECampaignStatus.COMPLETED) {\n const campaign = await APIGetJobSearchByPublicId(campaignPublicId);\n if (campaign.status === ECampaignStatus.COMPLETED) {\n goToCampaignDetails(campaignPublicId);\n createNotification(\n 'info',\n 'Campaign research is still ongoing. please wait',\n );\n return;\n } else if (campaign.status === ECampaignStatus.FAILED) {\n createNotification('danger', 'Campaign failed, refresh the campaign');\n return;\n }\n }\n\n if (campaignStatus === ECampaignStatus.COMPLETED) {\n goToCampaignDetails(campaignPublicId);\n return;\n }\n };\n\n const goToCampaignDetails = (campaignPublicId: string) => {\n navigate(\n `${process.env.PUBLIC_URL}/job-searches/${campaignPublicId}/jobs?page=1`,\n );\n return;\n };\n\n const validateCampaignFilters = (filters: TJobScrapFilters): boolean => {\n const jobValidFilters = Object.entries(filters).reduce(\n (acc, [key, value]) => {\n if (\n value !== '' &&\n value !== null &&\n (!Array.isArray(value) || value.length > 0)\n ) {\n acc[key] = value;\n }\n return acc;\n },\n {} as TJobScrapFilters,\n );\n\n if (Object.keys(jobValidFilters).length === 0) {\n createNotification('danger', 'Please enter at least one job filter.');\n return false;\n }\n\n // Formatar datas, se existirem\n if (filters.createdAtGte) {\n jobValidFilters.createdAtGte = formatDate(new Date(filters.createdAtGte));\n }\n if (filters.createdAtLte) {\n jobValidFilters.createdAtLte = formatDate(new Date(filters.createdAtLte));\n }\n\n setJobFilters(jobValidFilters);\n return true;\n };\n\n const goToNextStep = () => {\n setCurrentStep(prev => Math.min(prev + 1, 3));\n };\n\n const goToPreviousStep = () => {\n setCurrentStep(prev => Math.max(prev - 1, 1));\n };\n\n const resetForm = () => {\n setNewCampaignName('');\n setJobFilters(initialJobFilter);\n setLeadFilters(initialLeadFilter);\n setCurrentEditingCampaignId(null);\n setIsEditing(false);\n setCurrentStep(1);\n };\n\n const closeModal = () => {\n setIsModalCampaignOpen(false);\n resetForm();\n };\n\n const renderStepContent = () => {\n switch (currentStep) {\n case 1:\n return (\n \n );\n case 2:\n return (\n {\n if (validateCampaignFilters(jobFilters)) {\n goToNextStep();\n }\n }}\n goToPreviousStep={goToPreviousStep}\n />\n );\n case 3:\n return (\n \n );\n default:\n return null;\n }\n };\n\n const handleEditCampaign = async (campaignId: string) => {\n const selectedCampaign = campaigns.find(c => c.publicId === campaignId);\n if (selectedCampaign) {\n setNewCampaignName(selectedCampaign.name);\n setJobFilters(selectedCampaign.jobFilters || {});\n setLeadFilters(selectedCampaign.leadFilters || {});\n setCurrentEditingCampaignId(campaignId);\n setCurrentStep(1);\n setIsEditing(true);\n setIsModalCampaignOpen(true);\n } else {\n createNotification('danger', 'Campaign not found.');\n }\n };\n\n const validateAndSaveCampaign = async () => {\n if (!newCampaignName.trim()) {\n createNotification('danger', 'Please enter a valid name of search');\n setCurrentStep(1);\n return;\n }\n\n if (!validateCampaignFilters(jobFilters)) {\n setCurrentStep(2);\n return;\n }\n\n if (Object.keys(leadFilters).length === 0) {\n createNotification('danger', 'Please configure at least one lead filter');\n setCurrentStep(3);\n return;\n }\n\n try {\n setIsLoading(true);\n setIsModalCampaignOpen(false);\n if (currentEditingCampaignId) {\n await APIUpdateJobSearch(currentEditingCampaignId, {\n name: newCampaignName,\n jobFilters,\n leadFilters,\n });\n createNotification('success', 'Campaign updated successfully.');\n } else {\n await createNewCampaign(leadFilters);\n }\n fetchJobSearchs();\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n resetCampaignForm();\n }\n };\n\n return (\n \n \n \n \n {campaigns.length > 0 ? (\n \n
      \n
      \n \n Recent Searches\n \n
      \n
      \n setIsModalCampaignOpen(true)}\n icon={}\n >\n Create\n \n
      \n
      \n\n {!isLoading ? (\n \n \n \n Name\n \n\n \n Status\n \n\n \n Jobs\n \n\n \n Leads\n \n\n \n \n Created at\n \n \n\n \n Actions\n \n \n\n {campaigns.length > 0 &&\n !isLoading &&\n campaigns.map((campaign: TCampaign) => {\n return (\n \n \n \n checkCampaignStatus(\n campaign.publicId,\n campaign.status,\n )\n }\n >\n
      \n {campaign.name.length > 30 ? (\n \n {truncateText(campaign.name, 30)}\n \n ) : (\n \n {campaign.name}\n \n )}\n
      \n \n
      \n\n \n {/* {campaign.status} */}\n \n \n\n \n \n \n\n \n {/* {campaign.contacts.length > 0 ? campaign.contacts.length : ''} */}\n \n \n\n \n {getDateStructured(campaign.createdAt)}\n \n\n \n
        \n
      • \n \n \n \n \n \n
          \n \n \n handleRefreshJobs(campaign)\n }\n >\n ev.preventDefault()}\n className=\"space-x-1\"\n >\n \n Refresh Jobs\n \n \n
        • \n {\n setIsEditing(true);\n handleEditCampaign(\n campaign.publicId,\n );\n }}\n >\n ev.preventDefault()}\n className=\"space-x-1\"\n >\n \n Edit\n \n \n \n handleDeleteCampaign(\n campaign.publicId,\n )\n }\n className=\"space-x-1\"\n >\n {\n ev.preventDefault();\n }}\n >\n \n Delete\n \n \n
          \n
        \n
        \n
        \n
      • \n
      \n
      \n
      \n );\n })}\n
      \n ) : (\n // AQUI\n
      \n \n
      \n )}\n\n {/* pagination component */}\n {!isLoading && (\n
      \n
      \n {\n console.log('Propagando para o pai', value);\n setItemsPerPage(value);\n }}\n />\n
      \n
      \n )}\n
      \n ) : (\n !isLoading && (\n
      \n \n Let’s get started!\n setIsModalCampaignOpen(true)}\n >\n Click here\n \n to start find jobs and leads.\n \n \n
      \n )\n )}\n
      \n
      \n\n {isLoadingJobs && (\n \n )}\n\n {isModalCampaignOpen && (\n
      {renderStepContent()}
      \n )}\n
      \n );\n};\n\nexport default UserJobSeachers;\n","var _excluded = [\"className\", \"cssModule\", \"children\", \"toggle\", \"tag\", \"wrapTag\", \"closeAriaLabel\", \"close\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n /** Add custom class */\n className: PropTypes.string,\n /** Custom close button */\n close: PropTypes.object,\n closeAriaLabel: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Function to be triggered when close button is clicked */\n toggle: PropTypes.func,\n wrapTag: tagPropType\n};\nfunction ModalHeader(props) {\n var closeButton;\n var className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n toggle = props.toggle,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'h5' : _props$tag,\n _props$wrapTag = props.wrapTag,\n WrapTag = _props$wrapTag === void 0 ? 'div' : _props$wrapTag,\n _props$closeAriaLabel = props.closeAriaLabel,\n closeAriaLabel = _props$closeAriaLabel === void 0 ? 'Close' : _props$closeAriaLabel,\n close = props.close,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'modal-header'), cssModule);\n if (!close && toggle) {\n closeButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: toggle,\n className: mapToCssModules('btn-close', cssModule),\n \"aria-label\": closeAriaLabel\n });\n }\n return /*#__PURE__*/React.createElement(WrapTag, _extends({}, attributes, {\n className: classes\n }), /*#__PURE__*/React.createElement(Tag, {\n className: mapToCssModules('modal-title', cssModule)\n }, children), close || closeButton);\n}\nModalHeader.propTypes = propTypes;\nexport default ModalHeader;","/*!\n * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\nconst prefix = \"fab\";\nconst faMonero = {\n prefix: 'fab',\n iconName: 'monero',\n icon: [496, 512, [], \"f3d0\", \"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"]\n};\nconst faHooli = {\n prefix: 'fab',\n iconName: 'hooli',\n icon: [640, 512, [], \"f427\", \"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"]\n};\nconst faYelp = {\n prefix: 'fab',\n iconName: 'yelp',\n icon: [384, 512, [], \"f1e9\", \"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"]\n};\nconst faCcVisa = {\n prefix: 'fab',\n iconName: 'cc-visa',\n icon: [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"]\n};\nconst faLastfm = {\n prefix: 'fab',\n iconName: 'lastfm',\n icon: [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"]\n};\nconst faShopware = {\n prefix: 'fab',\n iconName: 'shopware',\n icon: [512, 512, [], \"f5b5\", \"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"]\n};\nconst faCreativeCommonsNc = {\n prefix: 'fab',\n iconName: 'creative-commons-nc',\n icon: [496, 512, [], \"f4e8\", \"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"]\n};\nconst faAws = {\n prefix: 'fab',\n iconName: 'aws',\n icon: [640, 512, [], \"f375\", \"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"]\n};\nconst faRedhat = {\n prefix: 'fab',\n iconName: 'redhat',\n icon: [512, 512, [], \"f7bc\", \"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"]\n};\nconst faYoast = {\n prefix: 'fab',\n iconName: 'yoast',\n icon: [448, 512, [], \"f2b1\", \"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"]\n};\nconst faCloudflare = {\n prefix: 'fab',\n iconName: 'cloudflare',\n icon: [640, 512, [], \"e07d\", \"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"]\n};\nconst faUps = {\n prefix: 'fab',\n iconName: 'ups',\n icon: [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"]\n};\nconst faPixiv = {\n prefix: 'fab',\n iconName: 'pixiv',\n icon: [448, 512, [], \"e640\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm171.5 84c41 0 76.3 12.9 101.4 35.2l0 0c25.2 22.2 39.8 54.1 39.8 88.8c.1 35.3-16.6 66.3-42.4 87c-25.9 20.8-60.6 32.4-98.8 32.4c-43.5 0-83.8-16.1-83.8-16.1v51.8c7.4 2.2 19.7 7 11.9 14.8H104.8c-7.7-7.8 3.6-12.4 12.1-14.8V175.5C97.1 190.9 87 204.3 81.8 214.2c6 19.4-5.3 18.5-5.3 18.5L56 199.7s72.7-83.7 179.5-83.7zm-3.6 222.9c30 0 56-11.3 73.9-29.2c17.9-18.1 27.9-41.6 28-70.2c-.1-29.3-9.5-54.6-26.7-73.6c-17.2-18.9-42.7-31.3-75.2-31.4c-26.7-.1-59.8 9-80.2 23.7V323.1c18.6 9.3 46.8 15.9 80.2 15.8z\"]\n};\nconst faWpexplorer = {\n prefix: 'fab',\n iconName: 'wpexplorer',\n icon: [512, 512, [], \"f2de\", \"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"]\n};\nconst faDyalog = {\n prefix: 'fab',\n iconName: 'dyalog',\n icon: [416, 512, [], \"f399\", \"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"]\n};\nconst faBity = {\n prefix: 'fab',\n iconName: 'bity',\n icon: [496, 512, [], \"f37a\", \"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"]\n};\nconst faStackpath = {\n prefix: 'fab',\n iconName: 'stackpath',\n icon: [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"]\n};\nconst faBuysellads = {\n prefix: 'fab',\n iconName: 'buysellads',\n icon: [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"]\n};\nconst faFirstOrder = {\n prefix: 'fab',\n iconName: 'first-order',\n icon: [448, 512, [], \"f2b0\", \"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"]\n};\nconst faModx = {\n prefix: 'fab',\n iconName: 'modx',\n icon: [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"]\n};\nconst faGuilded = {\n prefix: 'fab',\n iconName: 'guilded',\n icon: [448, 512, [], \"e07e\", \"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"]\n};\nconst faVnv = {\n prefix: 'fab',\n iconName: 'vnv',\n icon: [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"]\n};\nconst faSquareJs = {\n prefix: 'fab',\n iconName: 'square-js',\n icon: [448, 512, [\"js-square\"], \"f3b9\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z\"]\n};\nconst faJsSquare = faSquareJs;\nconst faMicrosoft = {\n prefix: 'fab',\n iconName: 'microsoft',\n icon: [448, 512, [], \"f3ca\", \"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"]\n};\nconst faQq = {\n prefix: 'fab',\n iconName: 'qq',\n icon: [448, 512, [], \"f1d6\", \"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"]\n};\nconst faOrcid = {\n prefix: 'fab',\n iconName: 'orcid',\n icon: [512, 512, [], \"f8d2\", \"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"]\n};\nconst faJava = {\n prefix: 'fab',\n iconName: 'java',\n icon: [384, 512, [], \"f4e4\", \"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"]\n};\nconst faInvision = {\n prefix: 'fab',\n iconName: 'invision',\n icon: [448, 512, [], \"f7b0\", \"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"]\n};\nconst faCreativeCommonsPdAlt = {\n prefix: 'fab',\n iconName: 'creative-commons-pd-alt',\n icon: [496, 512, [], \"f4ed\", \"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"]\n};\nconst faCentercode = {\n prefix: 'fab',\n iconName: 'centercode',\n icon: [512, 512, [], \"f380\", \"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"]\n};\nconst faGlideG = {\n prefix: 'fab',\n iconName: 'glide-g',\n icon: [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"]\n};\nconst faDrupal = {\n prefix: 'fab',\n iconName: 'drupal',\n icon: [448, 512, [], \"f1a9\", \"M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z\"]\n};\nconst faJxl = {\n prefix: 'fab',\n iconName: 'jxl',\n icon: [448, 512, [], \"e67b\", \"M412.2 32H35.8C16 32 0 48 0 67.8V444.2C0 464 16 480 35.8 480H412.2c19.8 0 35.8-16 35.8-35.8V67.8C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6z\"]\n};\nconst faDartLang = {\n prefix: 'fab',\n iconName: 'dart-lang',\n icon: [512, 512, [], \"e693\", \"M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72C256.6 2.3 268 0 279.6 0c13.5 0 29.4 9.2 37 16.8l62 62zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3L512 212.2 512 421l-79.3 .7L107.3 96.5zM96.5 373l0-262.2L420.3 434.6l.7 77.4-212.2 0-98.1-98.2 0 0C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6c0-6.8 3.9-17.5 6.7-23.6l72-150.7z\"]\n};\nconst faHireAHelper = {\n prefix: 'fab',\n iconName: 'hire-a-helper',\n icon: [512, 512, [], \"f3b0\", \"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"]\n};\nconst faCreativeCommonsBy = {\n prefix: 'fab',\n iconName: 'creative-commons-by',\n icon: [496, 512, [], \"f4e7\", \"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"]\n};\nconst faUnity = {\n prefix: 'fab',\n iconName: 'unity',\n icon: [448, 512, [], \"e049\", \"M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z\"]\n};\nconst faWhmcs = {\n prefix: 'fab',\n iconName: 'whmcs',\n icon: [448, 512, [], \"f40d\", \"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"]\n};\nconst faRocketchat = {\n prefix: 'fab',\n iconName: 'rocketchat',\n icon: [576, 512, [], \"f3e8\", \"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"]\n};\nconst faVk = {\n prefix: 'fab',\n iconName: 'vk',\n icon: [448, 512, [], \"f189\", \"M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z\"]\n};\nconst faUntappd = {\n prefix: 'fab',\n iconName: 'untappd',\n icon: [640, 512, [], \"f405\", \"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"]\n};\nconst faMailchimp = {\n prefix: 'fab',\n iconName: 'mailchimp',\n icon: [448, 512, [], \"f59e\", \"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"]\n};\nconst faCss3Alt = {\n prefix: 'fab',\n iconName: 'css3-alt',\n icon: [384, 512, [], \"f38b\", \"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"]\n};\nconst faSquareReddit = {\n prefix: 'fab',\n iconName: 'square-reddit',\n icon: [448, 512, [\"reddit-square\"], \"f1a2\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8c-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5c-8.8-6.8-19.9-10.9-32-10.9c-28.9 0-52.3 23.4-52.3 52.3c0 21 12.3 39 30.1 47.4c1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3c0-28.9-23.4-52.3-52.3-52.3c-12 0-23 4-31.9 10.8c-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7l0 0c3.9 16.5 18.7 28.7 36.3 28.7zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9s-27.5-7.7-26.6-26.7s13.5-33.5 28.1-33.5zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9c-.9-19 10.3-34.4 25-34.4s27.3 14.6 28.1 33.5zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7c16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"]\n};\nconst faRedditSquare = faSquareReddit;\nconst faVimeoV = {\n prefix: 'fab',\n iconName: 'vimeo-v',\n icon: [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"]\n};\nconst faContao = {\n prefix: 'fab',\n iconName: 'contao',\n icon: [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"]\n};\nconst faSquareFontAwesome = {\n prefix: 'fab',\n iconName: 'square-font-awesome',\n icon: [448, 512, [], \"e5ad\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.7 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z\"]\n};\nconst faDeskpro = {\n prefix: 'fab',\n iconName: 'deskpro',\n icon: [480, 512, [], \"f38f\", \"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"]\n};\nconst faBrave = {\n prefix: 'fab',\n iconName: 'brave',\n icon: [448, 512, [], \"e63c\", \"M145.5 0H224h78.5l44.7 50.8s39.3-10.9 57.8 7.6s33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9c-7.5 5.1-15.8 10.8-23.5 10.8l0 0 0 0c-7.7 0-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9c-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191l15.3-43.7L9.2 93.3s15.3-16.4 33.8-34.9s57.8-7.6 57.8-7.6L145.5 0zM224 407.6l0 0c3.7 0 8.9-4.7 13-8.4c.6-.5 1.2-1.1 1.7-1.5c4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8c-3-1.6-6.3-3.2-9.7-5c-15.4-8-34.5-14.7-37.5-14.7l0 0 0 0c-3 0-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5c-10.3 5.3-17.6 9.1-20.3 10.8c-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5c4.1 3.7 9.3 8.4 13 8.4l0 0zm0-165.7l0 0c4.7 0 17.6-3 26.4-5l0 0 2-.5c7.8-1.8 7.3-6.3 6.4-13c-.1-.8-.2-1.6-.3-2.4c-.6-6.1-5.8-33.1-9.1-50.3c-1.1-5.8-2-10.5-2.4-12.9c-1.5-8.1-.6-9.4 .7-11.3c.2-.3 .5-.7 .7-1.1c1.4-2.3 16-6.2 27.9-9.5l0 0c2.5-.7 4.8-1.3 6.9-1.9c10.6-3 32.4-.6 44.2 .6c1.8 .2 3.4 .4 4.7 .5c9.6 .9 10.4 2.3 7.2 3.8c-2.3 1.1-16.2 6.3-28.7 10.9l0 0 0 0c-4.7 1.8-9.2 3.5-12.8 4.8c-1.5 .5-3 1.1-4.5 1.7c-12.5 4.6-27.2 10-28.9 19.4c-1.5 8.3 5.2 19.9 11.3 30.3l0 0c1.6 2.8 3.2 5.5 4.6 8.1c6.3 11.9 6.5 13.3 6.1 18.1c-.4 3.9-14.5 12.7-22.4 17.6l0 0c-1.8 1.1-3.3 2.1-4.2 2.7c-.8 .5-2.1 1.4-3.8 2.4c-8.6 5.2-26.3 16-26.3 22.5c0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8s23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3l0 0c.5-.5 1-1 1.4-1.4L377.7 194c1.3-1.3 2.5-2.6 3.7-3.8l0 0c5.8-5.7 10.8-10.5 10.8-22.8c0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1l0 0c-2.7-.9-5.4-1.9-8-2.7C232.8 78.1 224 78 224 78l0 0 0 0s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7l0 0c-10.5 3.6-20.6 7.1-25.8 7.1c-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8l0 0c1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4l0 0c4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40c8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8s32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5c-1.7-1-3.1-1.9-3.8-2.4c-.9-.6-2.4-1.5-4.2-2.7c-7.9-4.9-22-13.7-22.4-17.6c-.4-4.8-.3-6.2 6.1-18.1c1.3-2.5 2.9-5.3 4.6-8.1c6-10.4 12.8-22 11.3-30.3c-1.7-9.4-16.4-14.8-28.9-19.4c-1.6-.6-3.1-1.1-4.5-1.7c-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9c-3.2-1.5-2.3-2.8 7.2-3.8c1.3-.1 2.9-.3 4.7-.5c11.8-1.3 33.6-3.6 44.2-.6c2.1 .6 4.4 1.2 6.9 1.9c11.9 3.2 26.5 7.2 27.9 9.5c.2 .4 .5 .7 .7 1.1c1.3 1.9 2.2 3.2 .7 11.3c-.4 2.4-1.3 7.1-2.4 12.9c-3.3 17.2-8.5 44.2-9.1 50.3c-.1 .8-.2 1.7-.3 2.4c-.8 6.7-1.4 11.2 6.4 13l2 .5 0 0c8.8 2 21.8 5 26.4 5l0 0z\"]\n};\nconst faSistrix = {\n prefix: 'fab',\n iconName: 'sistrix',\n icon: [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"]\n};\nconst faSquareInstagram = {\n prefix: 'fab',\n iconName: 'square-instagram',\n icon: [448, 512, [\"instagram-square\"], \"e055\", \"M194.4 211.7a53.3 53.3 0 1 0 59.3 88.7 53.3 53.3 0 1 0 -59.3-88.7zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12c-18.1-7.1-57.6-6.8-83.1-6.5c-4.1 0-7.9 .1-11.2 .1c-3.3 0-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5c-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2c0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2c2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5c4.1 0 7.9-.1 11.2-.1c3.3 0 7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5c6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83c0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83l0 0c-2.7-6.9-6.8-13.1-12-18.4zm-67.1 44.5A82 82 0 1 1 178.4 324.2a82 82 0 1 1 91.1-136.4zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1s2.6-7.1 5.2-9.8s6.1-4.5 9.8-5.2s7.6-.4 11.1 1.1s6.5 3.9 8.6 7s3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2s-3.9 3.2-6.2 4.2s-4.8 1.5-7.3 1.5l0 0c-3.8 0-7.5-1.1-10.6-3.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM357 389c-18.7 18.7-41.4 24.6-67 25.9c-26.4 1.5-105.6 1.5-132 0c-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132c1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0c25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9c-1.3 25.6-7.1 48.3-25.8 67z\"]\n};\nconst faInstagramSquare = faSquareInstagram;\nconst faBattleNet = {\n prefix: 'fab',\n iconName: 'battle-net',\n icon: [512, 512, [], \"f835\", \"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"]\n};\nconst faTheRedYeti = {\n prefix: 'fab',\n iconName: 'the-red-yeti',\n icon: [512, 512, [], \"f69d\", \"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"]\n};\nconst faSquareHackerNews = {\n prefix: 'fab',\n iconName: 'square-hacker-news',\n icon: [448, 512, [\"hacker-news-square\"], \"f3af\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM21 229.2c0 0 .1-.1 .1-.2s.1-.2 .2-.2c0 .1 0 .3-.1 .4H21zM239.2 384H207.8V281.3L128 128h37.3c41.5 77.7 48.1 95.8 54.1 112c1.6 4.3 3.1 8.5 5.2 13.6c3.2-7 5.1-11.9 7.1-17.3c5.9-15.3 12.8-33.2 53.5-108.3H320L239.2 283.1V384z\"]\n};\nconst faHackerNewsSquare = faSquareHackerNews;\nconst faEdge = {\n prefix: 'fab',\n iconName: 'edge',\n icon: [512, 512, [], \"f282\", \"M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z\"]\n};\nconst faThreads = {\n prefix: 'fab',\n iconName: 'threads',\n icon: [448, 512, [], \"e618\", \"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"]\n};\nconst faNapster = {\n prefix: 'fab',\n iconName: 'napster',\n icon: [496, 512, [], \"f3d2\", \"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"]\n};\nconst faSquareSnapchat = {\n prefix: 'fab',\n iconName: 'square-snapchat',\n icon: [448, 512, [\"snapchat-square\"], \"f2ad\", \"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z\"]\n};\nconst faSnapchatSquare = faSquareSnapchat;\nconst faGooglePlusG = {\n prefix: 'fab',\n iconName: 'google-plus-g',\n icon: [640, 512, [], \"f0d5\", \"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"]\n};\nconst faArtstation = {\n prefix: 'fab',\n iconName: 'artstation',\n icon: [512, 512, [], \"f77a\", \"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"]\n};\nconst faMarkdown = {\n prefix: 'fab',\n iconName: 'markdown',\n icon: [640, 512, [], \"f60f\", \"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"]\n};\nconst faSourcetree = {\n prefix: 'fab',\n iconName: 'sourcetree',\n icon: [448, 512, [], \"f7d3\", \"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"]\n};\nconst faGooglePlus = {\n prefix: 'fab',\n iconName: 'google-plus',\n icon: [512, 512, [], \"f2b3\", \"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"]\n};\nconst faDiaspora = {\n prefix: 'fab',\n iconName: 'diaspora',\n icon: [512, 512, [], \"f791\", \"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"]\n};\nconst faFoursquare = {\n prefix: 'fab',\n iconName: 'foursquare',\n icon: [368, 512, [], \"f180\", \"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"]\n};\nconst faStackOverflow = {\n prefix: 'fab',\n iconName: 'stack-overflow',\n icon: [384, 512, [], \"f16c\", \"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"]\n};\nconst faGithubAlt = {\n prefix: 'fab',\n iconName: 'github-alt',\n icon: [480, 512, [], \"f113\", \"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"]\n};\nconst faPhoenixSquadron = {\n prefix: 'fab',\n iconName: 'phoenix-squadron',\n icon: [512, 512, [], \"f511\", \"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"]\n};\nconst faPagelines = {\n prefix: 'fab',\n iconName: 'pagelines',\n icon: [384, 512, [], \"f18c\", \"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"]\n};\nconst faAlgolia = {\n prefix: 'fab',\n iconName: 'algolia',\n icon: [512, 512, [], \"f36c\", \"M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z\"]\n};\nconst faRedRiver = {\n prefix: 'fab',\n iconName: 'red-river',\n icon: [448, 512, [], \"f3e3\", \"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"]\n};\nconst faCreativeCommonsSa = {\n prefix: 'fab',\n iconName: 'creative-commons-sa',\n icon: [496, 512, [], \"f4ef\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"]\n};\nconst faSafari = {\n prefix: 'fab',\n iconName: 'safari',\n icon: [512, 512, [], \"f267\", \"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"]\n};\nconst faGoogle = {\n prefix: 'fab',\n iconName: 'google',\n icon: [488, 512, [], \"f1a0\", \"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"]\n};\nconst faSquareFontAwesomeStroke = {\n prefix: 'fab',\n iconName: 'square-font-awesome-stroke',\n icon: [448, 512, [\"font-awesome-alt\"], \"f35c\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.8 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z\"]\n};\nconst faFontAwesomeAlt = faSquareFontAwesomeStroke;\nconst faAtlassian = {\n prefix: 'fab',\n iconName: 'atlassian',\n icon: [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"]\n};\nconst faLinkedinIn = {\n prefix: 'fab',\n iconName: 'linkedin-in',\n icon: [448, 512, [], \"f0e1\", \"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"]\n};\nconst faDigitalOcean = {\n prefix: 'fab',\n iconName: 'digital-ocean',\n icon: [512, 512, [], \"f391\", \"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"]\n};\nconst faNimblr = {\n prefix: 'fab',\n iconName: 'nimblr',\n icon: [384, 512, [], \"f5a8\", \"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"]\n};\nconst faChromecast = {\n prefix: 'fab',\n iconName: 'chromecast',\n icon: [512, 512, [], \"f838\", \"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"]\n};\nconst faEvernote = {\n prefix: 'fab',\n iconName: 'evernote',\n icon: [384, 512, [], \"f839\", \"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"]\n};\nconst faHackerNews = {\n prefix: 'fab',\n iconName: 'hacker-news',\n icon: [448, 512, [], \"f1d4\", \"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"]\n};\nconst faCreativeCommonsSampling = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling',\n icon: [496, 512, [], \"f4f0\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"]\n};\nconst faAdversal = {\n prefix: 'fab',\n iconName: 'adversal',\n icon: [512, 512, [], \"f36a\", \"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"]\n};\nconst faCreativeCommons = {\n prefix: 'fab',\n iconName: 'creative-commons',\n icon: [496, 512, [], \"f25e\", \"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"]\n};\nconst faWatchmanMonitoring = {\n prefix: 'fab',\n iconName: 'watchman-monitoring',\n icon: [512, 512, [], \"e087\", \"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"]\n};\nconst faFonticons = {\n prefix: 'fab',\n iconName: 'fonticons',\n icon: [448, 512, [], \"f280\", \"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"]\n};\nconst faWeixin = {\n prefix: 'fab',\n iconName: 'weixin',\n icon: [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"]\n};\nconst faShirtsinbulk = {\n prefix: 'fab',\n iconName: 'shirtsinbulk',\n icon: [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"]\n};\nconst faCodepen = {\n prefix: 'fab',\n iconName: 'codepen',\n icon: [512, 512, [], \"f1cb\", \"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"]\n};\nconst faGitAlt = {\n prefix: 'fab',\n iconName: 'git-alt',\n icon: [448, 512, [], \"f841\", \"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"]\n};\nconst faLyft = {\n prefix: 'fab',\n iconName: 'lyft',\n icon: [512, 512, [], \"f3c3\", \"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"]\n};\nconst faRev = {\n prefix: 'fab',\n iconName: 'rev',\n icon: [448, 512, [], \"f5b2\", \"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"]\n};\nconst faWindows = {\n prefix: 'fab',\n iconName: 'windows',\n icon: [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"]\n};\nconst faWizardsOfTheCoast = {\n prefix: 'fab',\n iconName: 'wizards-of-the-coast',\n icon: [640, 512, [], \"f730\", \"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"]\n};\nconst faSquareViadeo = {\n prefix: 'fab',\n iconName: 'square-viadeo',\n icon: [448, 512, [\"viadeo-square\"], \"f2aa\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1c13.3 0 26.6 2.1 39.1 6.7c-4.3 8.4-7.3 17.6-8.4 27.1c-9.7-4.1-20.2-6-30.7-6c-48.8 0-84.6 41.7-84.6 88.9c0 43 28.5 78.7 69.5 85.9c61.5-24 72.9-117.6 72.9-175v0c0-7.3 0-14.8-.6-22.1c-11.2-32.9-26.6-64.6-44.2-94.5c27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70c0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2c0-12.2-2.1-24.3-6.9-35.7c9.5-1.9 18.5-5.6 26.4-10.5c15.3 36.6 12.6 87.3-22.8 125.6c-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53c1.5-3 4.1-8.6 4.5-12c-12.5 27.9-44.2 49.8-73.9 56.7c-4.7-7.3-7.5-15.5-7.5-24.3c0-10.3 5.2-24.1 12.9-31.6c8.3-7.9 18-10.9 27.9-14.1c16-5.1 32.5-10.3 44.5-35.9c32.5 46.2 13.1 130.3-36.3 130.3c-13.3 0-25.1-7.1-34.4-16.1z\"]\n};\nconst faViadeoSquare = faSquareViadeo;\nconst faMeetup = {\n prefix: 'fab',\n iconName: 'meetup',\n icon: [512, 512, [], \"f2e0\", \"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"]\n};\nconst faCentos = {\n prefix: 'fab',\n iconName: 'centos',\n icon: [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"]\n};\nconst faAdn = {\n prefix: 'fab',\n iconName: 'adn',\n icon: [496, 512, [], \"f170\", \"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"]\n};\nconst faCloudsmith = {\n prefix: 'fab',\n iconName: 'cloudsmith',\n icon: [512, 512, [], \"f384\", \"M512 227.6v56.9L284.4 512H227.6L0 284.4V227.6L227.6 0h56.9L512 227.6zm-256 162a133.6 133.6 0 1 0 0-267.1 133.6 133.6 0 1 0 0 267.1z\"]\n};\nconst faOpensuse = {\n prefix: 'fab',\n iconName: 'opensuse',\n icon: [640, 512, [], \"e62b\", \"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3c-51.9-1.8-122.8-4.3-223 57.3c-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.1 307 7 335.1c3.3 12.8 8.9 24.9 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4c44.4 3.9 78.1-16 90-53.3c8.2-25.8 0-63.6-31.5-82.9c-25.6-15.7-53.3-12.1-69.2-1.6c-13.9 9.2-21.8 23.5-21.6 39.2c.3 27.8 24.3 42.6 41.5 42.6c5.4 0 10.7-.9 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9c0-12.1-11.6-14.8-16.8-13.9c-2.9 .5-4.5 2-11.8 2.4c-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9c32.3 2.8 47.7 40.7 28.5 65.7C135 388.5 76.7 388 53.6 344.4c-26-49.2 12.7-111.2 87-98.4c33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3c56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8c5.6-33.8 39.7-18.4 82.4-17.4c66.5 .4 102.1-27 103.1-28c3.7-3.1 6.5-15.8 7-17.7c1.3-5.1-3.2-2.4-3.2-2.4c-8.7 5.2-30.5 15.2-50.9 15.6c-25.3 .5-76.2-25.4-81.6-28.2c-.3-.4 .1 1.2-11-25.5c88.4 58.3 118.3 40.5 145.2 21.7c.8-.6 4.3-2.9 3.6-5.7c-13.8-48.1-22.4-62.7-34.5-69.6c-37-21.6-125-34.7-129.2-35.3c.1-.1-.9-.3-.9 .7l0 0zm135.6 75.4a37.6 37.6 0 1 1 -75.2-2.6 37.6 37.6 0 1 1 75.2 2.6zm-36.6-27.9a26.3 26.3 0 1 0 -1.7 52.5 26.3 26.3 0 1 0 1.7-52.5zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6v0z\"]\n};\nconst faPiedPiperAlt = {\n prefix: 'fab',\n iconName: 'pied-piper-alt',\n icon: [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"]\n};\nconst faSquareDribbble = {\n prefix: 'fab',\n iconName: 'square-dribbble',\n icon: [448, 512, [\"dribbble-square\"], \"f397\", \"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7c6.1 .1 62.4 .3 126.4-16.7c-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80c48.6-18.3 69.1-45.9 71.6-49.4C281 124.2 235.3 112.9 192 123.4zM277.4 382c-2-12-10-53.8-29.2-103.6c-55.1 18.8-93.8 56.4-108.1 85.6c40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252c0 .7 0 1.4 0 2.1s0 1.4 0 2.1c0 35.1 13.3 67.1 35.1 91.4c22.2-37.9 67.1-77.9 116.5-91.8c-3.4-7.8-7.2-15.5-11.1-23.2zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6c-4.6-1.5-42.3-12.7-85.1-5.8c17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4c-.3-32.3-11.8-61.9-30.9-85.1c-2.9 3.9-25.8 33.2-76.3 53.9c4.8 9.8 8.3 17.8 12 26.8zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 416a160 160 0 1 1 0-320 160 160 0 1 1 0 320z\"]\n};\nconst faDribbbleSquare = faSquareDribbble;\nconst faCodiepie = {\n prefix: 'fab',\n iconName: 'codiepie',\n icon: [472, 512, [], \"f284\", \"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"]\n};\nconst faNode = {\n prefix: 'fab',\n iconName: 'node',\n icon: [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"]\n};\nconst faMix = {\n prefix: 'fab',\n iconName: 'mix',\n icon: [448, 512, [], \"f3cb\", \"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"]\n};\nconst faSteam = {\n prefix: 'fab',\n iconName: 'steam',\n icon: [496, 512, [], \"f1b6\", \"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"]\n};\nconst faCcApplePay = {\n prefix: 'fab',\n iconName: 'cc-apple-pay',\n icon: [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"]\n};\nconst faScribd = {\n prefix: 'fab',\n iconName: 'scribd',\n icon: [384, 512, [], \"f28a\", \"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"]\n};\nconst faDebian = {\n prefix: 'fab',\n iconName: 'debian',\n icon: [448, 512, [], \"e60b\", \"M380.2 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4c-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4c-30-13.8-76.1-16.2-97.3-5.8c1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9c-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7c-3.5 3.4 1.7 2 5.8 .9l0 0c4.1-1.1 7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17c.8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4c-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8c-4.3 8.1-7.9 14.9-8.7 21.3c-.3 5.1-1 11-1.7 17.3l0 0c-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5c.2 .4 .4 .8 .5 1.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9l0 0c4.4 .4 9.3 .9 18.7 24.2c-2.7-.9-5.5-1.9-9.4-7.2c-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8l0 0 0 0c1 .9 2.1 1.9 3.1 2.9c-11.9-6.5 3.2 13.7 11.9 25.2c.8 1.1 1.5 2 2.2 2.9l0 0 0 0 0 0 0 0 0 0c1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2c2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3c10.7 3.7 16.6 4.7 22.7 5.8c.3 0 .6 .1 .9 .1c5.4 .8 11.2 1.8 20.8 4.5c-1.1-.1-2.2-.1-3.3-.1h0c-2.3-.1-4.7-.1-7-.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c-14.4-.2-29.2-.4-42.7-5.2C107.8 480.5 19.5 367.2 26 250.6c-.6-9.9-.3-20.9 0-30.7c.4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2v-.1c.4 .4 3.4 3.4 8.8-5.8c.8-1.8 1.6-3.7 2.4-5.6c.5-1.1 .9-2.2 1.4-3.2c2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7c-3.4 3.8 2.2 2.7 10 1c4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6c8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2c-5.6 .8-12.3 3-11.2 3.8c7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1c3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2c.3 .5 .5 1 .7 1.4c.1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1c1.7-.7-2.7-4.7-6.4-8.2c0 0 0 0-.1-.1c-.2-.1-.3-.3-.5-.4c32.2 17.3 67.3 54.1 78 93.5c-6-11.1-5.2-5.5-4.3 .5c.6 4 1.2 8.1-.2 7.5c4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3c-.4 4.3-2.8 3.9-5.2 3.5l-.1 0 0 0c-3.3-.6-6.2-1.1-1.9 12.6c2.6 3.8 3.1 2.4 3.5 1.1l0 0c.5-1.5 .9-2.7 4.7 5.2c.1 4.1 1 8.2 2.1 12.7l0 0 0 0 .1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4c-1.1-.2-2.3-2.2-3.4-4.2c-1.4-2.4-2.8-4.7-3.7-3.2c2.4 11.5 6.5 17.4 8 18.3c-.3 .6-.6 .7-1.1 .7c-.8 0-1.8 .1-1.9 5.3c.7 13.7 3.3 12.5 5.3 11.6l0 0c.6-.3 1.2-.6 1.7-.4c-.6 2.5-1.6 5.1-2.7 7.9c-2.8 7.1-6 15.4-3.4 26.1c-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5l0 0c-.3-.8-.6-1.6-.9-2.3c-.6 4.4-.3 7.7-.1 10.6c0 .2 0 .5 0 .7c.4 5.3 .7 10-3 19.9c4.3-14.2 3.8-26.9-.2-20.8c1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8c1.7-2.9 1.3-3.6 1-4.2l0 0c-.4-.8-.7-1.5 1.7-5.1c-1.6 .1-5.5 3.9-10.1 8.5c-3.9 3.9-8.5 8.4-12.8 11.8c-37.5 30.1-82.3 34-125.6 17.8c.2-1-.2-2.1-3.1-4.1c-36.8-28.2-58.5-52.1-50.9-107.5c2.1-1.6 3.6-5.8 5.3-10.8l0 0 0 0 .2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8c7.8-17.3 31.3-33.3 56.4-33.7c25.6-1.4 47.2 13.7 58.1 27.9c-19.8-18.4-52.1-24-79.7-10.4c-28.2 12.7-45 43.8-42.5 74.7c.3-.4 .6-.6 .9-.8l0 0s0 0 0 0c0 0 .1-.1 .1-.1l.1-.1c.6-.5 1.1-.9 1.4-3.3c-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1 0 0c2.2-2.1 4.7-4.5 8.9-7.3c-.3 .7-1.3 1.7-2.4 2.7c-2.2 2.1-4.6 4.5-1.6 4.6c5-1.3 18.5-13.4 28.5-22.3l0 0 0 0c.6-.5 1.2-1 1.7-1.5c1.5-1.3 2.8-2.5 4-3.6l0 0 .3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6c.2-.6 .5-1.2 .7-1.8l-.4-.2zM349.3 34.3l-.2-.1 .2 .1 0 0zM247.8 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2c-12.2-5.7-23.4-14.3-32.6-24.9c4.9 7.1 10.1 14.1 17 19.5c-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5c19.8 35.5 80.5 62.3 112.3 49c-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4c1.4-5.8 5.4-10.7 4.4 4.6c-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5c.2-2-1.2-2.4-2.6-2.8l0 0c-2.9-.8-5.9-1.6 5.6-16.1c-.5 1.9-2.1 4.6-3.7 7.3l0 0 0 0-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8h.1zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1c-2.5 2.4-5.2 4.8-8.3 7.2c-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7c-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9h.1zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l.8 1.6 .2 .4zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3c7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.6 110.6c.4 .8 1.4 .5 2.3 .3c1.9-.5 3.6-.9-.1 7.6c-.5 .3-1 .7-1.5 1l0 0 0 0c-1.4 .9-2.8 1.9-3.9 3c1.9-3.8 3.5-7.4 3.2-11.9zM25.3 152.3c-.7 3.7-1.5 7.9-3.4 13.9c.2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8c-.3 1.2-.5 2.5-.7 3.8v.1z\"]\n};\nconst faOpenid = {\n prefix: 'fab',\n iconName: 'openid',\n icon: [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"]\n};\nconst faInstalod = {\n prefix: 'fab',\n iconName: 'instalod',\n icon: [512, 512, [], \"e081\", \"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"]\n};\nconst faFilesPinwheel = {\n prefix: 'fab',\n iconName: 'files-pinwheel',\n icon: [512, 512, [], \"e69f\", \"M253.2 246.4L136.9 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4s.2-1.6 .5-2.4s.8-1.4 1.4-2L253.3 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3s2.1 1.3 2.8 2.3s1.1 2.2 1.1 3.5L264 242c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4s-2.5 .6-3.7 .3s-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1s1.3-1.1 2-1.4s1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8s.6 2.4 .3 3.6s-.9 2.3-1.7 3.2L304 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4s-2.1-1.3-2.8-2.3s-1.1-2.2-1.1-3.4zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8s-.6-2.4-.4-3.6s.8-2.3 1.7-3.2l84.2-84.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5s1.6 .2 2.4 .5s1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6s-1.3 2.1-2.3 2.8s-2.2 1.1-3.5 1.1l-168.5 0zM414.8 408l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7s1.3-2.1 2.4-2.8s2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3s-2.4 .6-3.6 .3s-2.3-.9-3.2-1.7zM16.5 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8s.6 2.4 .3 3.6s-.8 2.3-1.7 3.2L129.4 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5s-1.6-.2-2.4-.5s-1.4-.8-2-1.4L12 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6s1.3-2.1 2.3-2.8s2.3-1 3.5-1zM264 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2s-1.3 1-2 1.4s-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8s-.6-2.4-.3-3.6s.8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3s2.1 1.3 2.8 2.3s1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4s-.2 1.6-.5 2.4s-.8 1.4-1.4 2L304 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3s-2.1-1.3-2.8-2.3s-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3s2.4-.6 3.6-.3s2.3 .8 3.2 1.7zM78.7 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3s2.4-.6 3.6-.4s2.3 .8 3.2 1.7L237.8 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6s-1.3 2.1-2.3 2.8s-2.2 1.1-3.5 1.1L85 277.1c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4z\"]\n};\nconst faExpeditedssl = {\n prefix: 'fab',\n iconName: 'expeditedssl',\n icon: [496, 512, [], \"f23e\", \"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"]\n};\nconst faSellcast = {\n prefix: 'fab',\n iconName: 'sellcast',\n icon: [448, 512, [], \"f2da\", \"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"]\n};\nconst faSquareTwitter = {\n prefix: 'fab',\n iconName: 'square-twitter',\n icon: [448, 512, [\"twitter-square\"], \"f081\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM351.3 199.3v0c0 86.7-66 186.6-186.6 186.6c-37.2 0-71.7-10.8-100.7-29.4c5.3 .6 10.4 .8 15.8 .8c30.7 0 58.9-10.4 81.4-28c-28.8-.6-53-19.5-61.3-45.5c10.1 1.5 19.2 1.5 29.6-1.2c-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3c-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1c32.3 39.8 80.8 65.8 135.2 68.6c-9.3-44.5 24-80.6 64-80.6c18.9 0 35.9 7.9 47.9 20.7c14.8-2.8 29-8.3 41.6-15.8c-4.9 15.2-15.2 28-28.8 36.1c13.2-1.4 26-5.1 37.8-10.2c-8.9 13.1-20.1 24.7-32.9 34c.2 2.8 .2 5.7 .2 8.5z\"]\n};\nconst faTwitterSquare = faSquareTwitter;\nconst faRProject = {\n prefix: 'fab',\n iconName: 'r-project',\n icon: [581, 512, [], \"f4f7\", \"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"]\n};\nconst faDelicious = {\n prefix: 'fab',\n iconName: 'delicious',\n icon: [448, 512, [], \"f1a5\", \"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"]\n};\nconst faFreebsd = {\n prefix: 'fab',\n iconName: 'freebsd',\n icon: [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"]\n};\nconst faVuejs = {\n prefix: 'fab',\n iconName: 'vuejs',\n icon: [448, 512, [], \"f41f\", \"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"]\n};\nconst faAccusoft = {\n prefix: 'fab',\n iconName: 'accusoft',\n icon: [640, 512, [], \"f369\", \"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"]\n};\nconst faIoxhost = {\n prefix: 'fab',\n iconName: 'ioxhost',\n icon: [640, 512, [], \"f208\", \"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"]\n};\nconst faFonticonsFi = {\n prefix: 'fab',\n iconName: 'fonticons-fi',\n icon: [384, 512, [], \"f3a2\", \"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"]\n};\nconst faAppStore = {\n prefix: 'fab',\n iconName: 'app-store',\n icon: [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"]\n};\nconst faCcMastercard = {\n prefix: 'fab',\n iconName: 'cc-mastercard',\n icon: [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"]\n};\nconst faItunesNote = {\n prefix: 'fab',\n iconName: 'itunes-note',\n icon: [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"]\n};\nconst faGolang = {\n prefix: 'fab',\n iconName: 'golang',\n icon: [640, 512, [], \"e40f\", \"M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z\"]\n};\nconst faKickstarter = {\n prefix: 'fab',\n iconName: 'kickstarter',\n icon: [448, 512, [\"square-kickstarter\"], \"f3bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1L320.8 279c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5c-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4c21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z\"]\n};\nconst faSquareKickstarter = faKickstarter;\nconst faGrav = {\n prefix: 'fab',\n iconName: 'grav',\n icon: [512, 512, [], \"f2d6\", \"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"]\n};\nconst faWeibo = {\n prefix: 'fab',\n iconName: 'weibo',\n icon: [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"]\n};\nconst faUncharted = {\n prefix: 'fab',\n iconName: 'uncharted',\n icon: [448, 512, [], \"e084\", \"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"]\n};\nconst faFirstdraft = {\n prefix: 'fab',\n iconName: 'firstdraft',\n icon: [384, 512, [], \"f3a1\", \"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"]\n};\nconst faSquareYoutube = {\n prefix: 'fab',\n iconName: 'square-youtube',\n icon: [448, 512, [61798, \"youtube-square\"], \"f431\", \"M282 256.2l-95.2-54.1V310.3L282 256.2zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9C337.9 384 224 384 224 384s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9C42 315.9 42 256.3 42 256.3s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4C110.1 128 224 128 224 128s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"]\n};\nconst faYoutubeSquare = faSquareYoutube;\nconst faWikipediaW = {\n prefix: 'fab',\n iconName: 'wikipedia-w',\n icon: [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"]\n};\nconst faWpressr = {\n prefix: 'fab',\n iconName: 'wpressr',\n icon: [496, 512, [\"rendact\"], \"f3e4\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"]\n};\nconst faRendact = faWpressr;\nconst faAngellist = {\n prefix: 'fab',\n iconName: 'angellist',\n icon: [448, 512, [], \"f209\", \"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"]\n};\nconst faGalacticRepublic = {\n prefix: 'fab',\n iconName: 'galactic-republic',\n icon: [496, 512, [], \"f50c\", \"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"]\n};\nconst faNfcDirectional = {\n prefix: 'fab',\n iconName: 'nfc-directional',\n icon: [512, 512, [], \"e530\", \"M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z\"]\n};\nconst faSkype = {\n prefix: 'fab',\n iconName: 'skype',\n icon: [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"]\n};\nconst faJoget = {\n prefix: 'fab',\n iconName: 'joget',\n icon: [496, 512, [], \"f3b7\", \"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"]\n};\nconst faFedora = {\n prefix: 'fab',\n iconName: 'fedora',\n icon: [448, 512, [], \"f798\", \"M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z\"]\n};\nconst faStripeS = {\n prefix: 'fab',\n iconName: 'stripe-s',\n icon: [384, 512, [], \"f42a\", \"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"]\n};\nconst faMeta = {\n prefix: 'fab',\n iconName: 'meta',\n icon: [640, 512, [], \"e49b\", \"M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z\"]\n};\nconst faLaravel = {\n prefix: 'fab',\n iconName: 'laravel',\n icon: [512, 512, [], \"f3bd\", \"M107.2 0c2.5 0 4.7 .8 6.7 2l94.3 54.1c2.7 1.5 4.5 3.5 5.4 5.9c.9 2.2 .9 4.3 .9 5.6l0 193.4 69.2-39.7 0-100.3c0-2.6 .6-5 2.2-7.2c1.5-2.1 3.5-3.6 5.7-4.8c0 0 0 0 0 0l94-54c1.6-.9 3.4-1.6 5.5-1.6s4 .7 5.6 1.6l95.8 55.1c2.3 1.3 3.9 3 4.9 5.3c.9 2.1 .9 4.2 .9 5.8l0 107.2c0 2-.2 4.3-1.4 6.4c-1.2 2.2-3 3.7-5.1 4.9l-.1 .1-88 50.5 0 100c0 2.3-.3 4.8-1.6 7c-1.3 2.2-3.3 3.7-5.3 4.9c0 0 0 0-.1 0L208.7 510c-2.2 1.2-4.5 2-7.1 2s-4.9-.9-7.1-2l-.1-.1L7.1 402l-.5-.3c-1.1-.7-2.6-1.7-3.8-2.9C.9 396.9 0 394.6 0 391.6L0 65.9c0-4.8 3-7.9 5.5-9.3L100.5 2c2-1.2 4.3-2 6.8-2zM38.1 67.1l69 39.9 69.2-39.9L107.1 27.4l-69 39.7zm353 93.2l69-39.7-69-39.7-69.1 39.7 69.1 39.7zM189.2 89L120 128.8l0 186.4 69.2-39.9 0-186.4zM94.5 128.9L25.2 89.1l0 294.2 164 94.2 0-79.4-87.3-49.3-.2-.1c-1.3-.8-3.2-1.9-4.6-3.7c-1.7-2.1-2.5-4.7-2.5-7.7l0-208.5zm214.7 92.4l69.3 39.6 0-78.5-69.3-39.9 0 78.8zm94.5 39.6L473 221.2l0-78.8-69.3 39.9 0 78.5zM201.6 376.1l163.8-93.2-69-39.9L133 337.1l68.6 38.9zm12.9 101.5l164-94.2 0-78.8-164 93.6 0 79.4z\"]\n};\nconst faHotjar = {\n prefix: 'fab',\n iconName: 'hotjar',\n icon: [512, 512, [], \"f3b1\", \"M361.5 0c0 131.6-80.7 176.8-140.2 209.4c-.6 .3-1.1 .6-1.6 .9c-53.8 30.2-88.7 49.8-89.6 122H32C32 200.8 112.7 155.6 172.2 123C227 93.2 262.5 73 262.5 0h98.9zM301 302.6c54.8-29.8 90.3-50 90.3-123h98c0 131.6-80.7 176.7-140.2 209.4c-54.8 29.8-90.3 50-90.3 123h-98c0-131.6 80.7-176.8 140.2-209.4z\"]\n};\nconst faBluetoothB = {\n prefix: 'fab',\n iconName: 'bluetooth-b',\n icon: [320, 512, [], \"f294\", \"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"]\n};\nconst faSquareLetterboxd = {\n prefix: 'fab',\n iconName: 'square-letterboxd',\n icon: [448, 512, [], \"e62e\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1c-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1C176.9 313.8 198.9 327 224 327c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1C271.1 200.2 249.1 187 224 187zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1c12.4 19.8 34.4 32.9 59.5 32.9c38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"]\n};\nconst faStickerMule = {\n prefix: 'fab',\n iconName: 'sticker-mule',\n icon: [576, 512, [], \"f3f7\", \"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"]\n};\nconst faCreativeCommonsZero = {\n prefix: 'fab',\n iconName: 'creative-commons-zero',\n icon: [496, 512, [], \"f4f3\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"]\n};\nconst faHips = {\n prefix: 'fab',\n iconName: 'hips',\n icon: [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"]\n};\nconst faCss = {\n prefix: 'fab',\n iconName: 'css',\n icon: [448, 512, [], \"e6a2\", \"M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z\"]\n};\nconst faBehance = {\n prefix: 'fab',\n iconName: 'behance',\n icon: [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"]\n};\nconst faReddit = {\n prefix: 'fab',\n iconName: 'reddit',\n icon: [512, 512, [], \"f1a1\", \"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"]\n};\nconst faDiscord = {\n prefix: 'fab',\n iconName: 'discord',\n icon: [640, 512, [], \"f392\", \"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"]\n};\nconst faChrome = {\n prefix: 'fab',\n iconName: 'chrome',\n icon: [512, 512, [], \"f268\", \"M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z\"]\n};\nconst faAppStoreIos = {\n prefix: 'fab',\n iconName: 'app-store-ios',\n icon: [448, 512, [], \"f370\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"]\n};\nconst faCcDiscover = {\n prefix: 'fab',\n iconName: 'cc-discover',\n icon: [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"]\n};\nconst faWpbeginner = {\n prefix: 'fab',\n iconName: 'wpbeginner',\n icon: [512, 512, [], \"f297\", \"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"]\n};\nconst faConfluence = {\n prefix: 'fab',\n iconName: 'confluence',\n icon: [512, 512, [], \"f78d\", \"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"]\n};\nconst faShoelace = {\n prefix: 'fab',\n iconName: 'shoelace',\n icon: [512, 512, [], \"e60c\", \"M404.9 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9c1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8h.2c3.3-1.9 6-1.8 8.2 .4c3.9 2.1 4.2 5.6 .9 10.6L456.9 322c.2 .5 .4 1 .4 1.5c.5 2.2 .3 4.4-.5 6.6c-.7 1.5-1.8 2.9-3.1 4.2c-1.4 1.4-2.7 2.8-4.2 4.2l-18.8 13.7c-1.7 1.2-3.4 2.3-5.1 3.3c-2.1 1.3-4.3 2.5-6.6 3.6c-1 .4-1.9 .9-2.9 1.3c-5.9 2.5-11.9 4.2-18.2 5c-2.9 24.5-11.3 47.1-25.1 67.8c-17.5 25.7-41.4 45.4-71.8 58.8c-30.2 13.5-63 20.2-98.2 20.2c-48.6-.5-88-11.4-118.2-32.8C49.5 454.4 32 421.5 32 380.3v-5.6c1.2-28.1 9.5-54.6 24.8-79.8c15.1-24.9 37.1-41.7 66.1-50.5c14.9-4.4 29.9-6.6 45-6.6c15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5L326 312.2c15.1 9.8 28.8 16.5 41.2 20c-2.6-25.1-11.7-46.6-27.3-64.5c-15.7-18.1-35.6-31.3-59.9-39.7l-23.3-8c-21.4-7.5-37.3-14.9-47.7-22.2c-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5C223.5 9.7 251.1 0 283 0c24 0 45.6 6.9 64.7 20.8c19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7c-9.8 13.2-18.5 19.9-26 19.9c-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6c-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8c0-4.1 1.6-7.6 4.9-10.4c13.8-12.4 20.8-26.7 20.8-42.8c0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.3 89.9 192.3 112c0 17.8 6.9 33.9 20.6 48.3c13.6 14.2 34.6 25.4 63 33.5c39.8 11.5 70.2 31 91.3 58.3c18.7 24.2 29.1 51.3 31.3 81.4c2.2-.7 4.3-1.5 6.5-2.6zM294.1 178.7c0 1.1 .6 1.6 1.8 1.6c.1 0 9.7-8.9 28.8-26.6c0-2.4-5.1 .9-15.3 10c-10.2 9.2-15.3 14.2-15.3 14.9zm8 6.4c0-1-.5-1.5-1.5-1.5c-1.1 0-2.1 .5-2.9 1.6c-1.9-.1-3.3 .1-4.2 .7c-.4 .2-.5 .5-.5 .7c0 .7 .5 1.3 1.5 1.6h3.3c2.9-1.1 4.4-2.2 4.4-3.3zm22.6-19.9c0-2.8-1.6-2.8-4.9 0c-1.6 1.5-3.6 3.5-6 6.2c-.8 .6-2.6 2.2-5.3 4.9c-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4c.1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9c-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1zM366.6 363.9c-8-2.1-15.4-4.6-22.2-7.5c-15.3-6.2-34.3-17-57-32.4L250 298.7c-15.8-10.1-30.2-17.6-43.2-22.6c-13.1-4.9-26-7.3-38.6-7.3h-5.5c-32.2 1.7-57.2 13.8-75 36.2c-16.6 20.8-25 45.3-25 73.6c0 31.8 12.8 56.7 38.2 74.7c25.4 18.1 60.2 27.1 104.4 27.1c34.7 0 64-6.2 87.8-18.6c23.7-12.4 42.1-28.8 55.2-49.2c9.8-15.5 15.9-31.8 18.2-48.8z\"]\n};\nconst faMdb = {\n prefix: 'fab',\n iconName: 'mdb',\n icon: [576, 512, [], \"f8ca\", \"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"]\n};\nconst faDochub = {\n prefix: 'fab',\n iconName: 'dochub',\n icon: [416, 512, [], \"f394\", \"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"]\n};\nconst faAccessibleIcon = {\n prefix: 'fab',\n iconName: 'accessible-icon',\n icon: [448, 512, [62107], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"]\n};\nconst faEbay = {\n prefix: 'fab',\n iconName: 'ebay',\n icon: [640, 512, [], \"f4f4\", \"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"]\n};\nconst faAmazon = {\n prefix: 'fab',\n iconName: 'amazon',\n icon: [448, 512, [], \"f270\", \"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"]\n};\nconst faUnsplash = {\n prefix: 'fab',\n iconName: 'unsplash',\n icon: [448, 512, [], \"e07c\", \"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"]\n};\nconst faYarn = {\n prefix: 'fab',\n iconName: 'yarn',\n icon: [496, 512, [], \"f7e3\", \"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"]\n};\nconst faSquareSteam = {\n prefix: 'fab',\n iconName: 'square-steam',\n icon: [448, 512, [\"steam-square\"], \"f1b7\", \"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2c25.2 10.5 54.1-1.4 64.6-26.5c5.1-12.1 5.1-25.5 .1-37.7c-5.1-12.1-14.5-21.6-26.7-26.7c-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V240.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8c-31.8 0-58.5-22.7-64.5-52.7L0 319.2V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm14.6-.1a43.9 43.9 0 1 1 87.8 0 43.9 43.9 0 1 1 -87.8 0z\"]\n};\nconst faSteamSquare = faSquareSteam;\nconst fa500px = {\n prefix: 'fab',\n iconName: '500px',\n icon: [448, 512, [], \"f26e\", \"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"]\n};\nconst faSquareVimeo = {\n prefix: 'fab',\n iconName: 'square-vimeo',\n icon: [448, 512, [\"vimeo-square\"], \"f194\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM318.5 309.5C275 366 238.2 394.3 208.1 394.3c-18.7 0-34.4-17.2-47.3-51.6c-3.8-13.9-7.3-26.9-10.5-39c-18.2-68.3-28.6-107.4-46.2-107.4c-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5c29.1-26.3 55.6-50.3 73.5-51.9c24.9-2.4 40.2 14.6 46 51.1c20.5 129.6 29.6 149.2 66.8 90.5c13.4-21.2 20.6-37.2 21.5-48.3c3.4-32.8-25.6-30.6-45.2-22.2c15.7-51.5 45.8-76.5 90.1-75.1c32.9 1 48.4 22.4 46.5 64c-1.4 31.1-23.2 73.8-65.3 127.9z\"]\n};\nconst faVimeoSquare = faSquareVimeo;\nconst faAsymmetrik = {\n prefix: 'fab',\n iconName: 'asymmetrik',\n icon: [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"]\n};\nconst faFontAwesome = {\n prefix: 'fab',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nconst faFontAwesomeFlag = faFontAwesome;\nconst faFontAwesomeLogoFull = faFontAwesome;\nconst faGratipay = {\n prefix: 'fab',\n iconName: 'gratipay',\n icon: [496, 512, [], \"f184\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"]\n};\nconst faApple = {\n prefix: 'fab',\n iconName: 'apple',\n icon: [384, 512, [], \"f179\", \"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"]\n};\nconst faHive = {\n prefix: 'fab',\n iconName: 'hive',\n icon: [512, 512, [], \"e07f\", \"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"]\n};\nconst faGitkraken = {\n prefix: 'fab',\n iconName: 'gitkraken',\n icon: [592, 512, [], \"f3a6\", \"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"]\n};\nconst faKeybase = {\n prefix: 'fab',\n iconName: 'keybase',\n icon: [448, 512, [], \"f4f5\", \"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"]\n};\nconst faApplePay = {\n prefix: 'fab',\n iconName: 'apple-pay',\n icon: [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"]\n};\nconst faPadlet = {\n prefix: 'fab',\n iconName: 'padlet',\n icon: [640, 512, [], \"e4a0\", \"M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z\"]\n};\nconst faAmazonPay = {\n prefix: 'fab',\n iconName: 'amazon-pay',\n icon: [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"]\n};\nconst faSquareGithub = {\n prefix: 'fab',\n iconName: 'square-github',\n icon: [448, 512, [\"github-square\"], \"f092\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM265.8 407.7c0-1.8 0-6 .1-11.6c.1-11.4 .1-28.8 .1-43.7c0-15.6-5.2-25.5-11.3-30.7c37-4.1 76-9.2 76-73.1c0-18.2-6.5-27.3-17.1-39c1.7-4.3 7.4-22-1.7-45c-13.9-4.3-45.7 17.9-45.7 17.9c-13.2-3.7-27.5-5.6-41.6-5.6s-28.4 1.9-41.6 5.6c0 0-31.8-22.2-45.7-17.9c-9.1 22.9-3.5 40.6-1.7 45c-10.6 11.7-15.6 20.8-15.6 39c0 63.6 37.3 69 74.3 73.1c-4.8 4.3-9.1 11.7-10.6 22.3c-9.5 4.3-33.8 11.7-48.3-13.9c-9.1-15.8-25.5-17.1-25.5-17.1c-16.2-.2-1.1 10.2-1.1 10.2c10.8 5 18.4 24.2 18.4 24.2c9.7 29.7 56.1 19.7 56.1 19.7c0 9 .1 21.7 .1 30.6c0 4.8 .1 8.6 .1 10c0 4.3-3 9.5-11.5 8C106 393.6 59.8 330.8 59.8 257.4c0-91.8 70.2-161.5 162-161.5s166.2 69.7 166.2 161.5c.1 73.4-44.7 136.3-110.7 158.3c-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2c1.9-.2 3.7 .6 3.9 1.9c.3 1.3-1 2.6-3 3c-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4c0-1.3 1.5-2.4 3.5-2.4c1.9-.2 3.7 .9 3.7 2.4c0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4c-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1c.9-1.1 2.8-.9 4.3 .6c1.3 1.3 1.8 3.3 .9 4.1c-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3c1.1 1.5 1.1 3.3 0 4.1c-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5c.9-.9 2.4-.4 3.5 .6c1.1 1.3 1.3 2.8 .4 3.5c-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6c.4-.6 1.5-.9 2.8-.4c1.3 .7 1.9 1.8 1.5 2.6c-.4 .9-1.7 1.1-2.8 .4z\"]\n};\nconst faGithubSquare = faSquareGithub;\nconst faStumbleupon = {\n prefix: 'fab',\n iconName: 'stumbleupon',\n icon: [512, 512, [], \"f1a4\", \"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"]\n};\nconst faFedex = {\n prefix: 'fab',\n iconName: 'fedex',\n icon: [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"]\n};\nconst faPhoenixFramework = {\n prefix: 'fab',\n iconName: 'phoenix-framework',\n icon: [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"]\n};\nconst faShopify = {\n prefix: 'fab',\n iconName: 'shopify',\n icon: [448, 512, [], \"e057\", \"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"]\n};\nconst faNeos = {\n prefix: 'fab',\n iconName: 'neos',\n icon: [512, 512, [], \"f612\", \"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"]\n};\nconst faSquareThreads = {\n prefix: 'fab',\n iconName: 'square-threads',\n icon: [448, 512, [], \"e619\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9c10.4 24.3 11.4 63.9-20.2 95.4c-24.2 24.1-53.5 35-95.1 35.3h-.2c-46.8-.3-82.8-16.1-106.9-46.8C91.5 341.8 80.4 303.7 80 256v-.1-.1c.4-47.7 11.5-85.7 33-113.1c24.2-30.7 60.2-46.5 106.9-46.8h.2c46.9 .3 83.3 16 108.2 46.6c12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6c-19.4-23.9-48.7-36.1-87-36.4c-38 .3-66.8 12.5-85.5 36.2c-17.5 22.3-26.6 54.4-26.9 95.5c.3 41.1 9.4 73.3 26.9 95.5c18.7 23.8 47.4 36 85.5 36.2c34.3-.3 56.9-8.4 75.8-27.3c21.5-21.5 21.1-47.9 14.2-64c-4-9.4-11.4-17.3-21.3-23.3c-2.4 18-7.9 32.2-16.5 43.2c-11.4 14.5-27.7 22.4-48.4 23.5c-15.7 .9-30.8-2.9-42.6-10.7c-13.9-9.2-22-23.2-22.9-39.5c-1.7-32.2 23.8-55.3 63.5-57.6c14.1-.8 27.3-.2 39.5 1.9c-1.6-9.9-4.9-17.7-9.8-23.4c-6.7-7.8-17.1-11.8-30.8-11.9h-.4c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1h.6c41.8 .3 66.6 26.3 69.1 71.8c1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8c-8.8-1.9-18.6-2.9-29-2.9c-3.2 0-6.4 .1-9.6 .3c-28.6 1.6-38.1 15.5-37.4 27.9c.9 16.7 19 24.5 36.4 23.6l-.1-.1z\"]\n};\nconst faHackerrank = {\n prefix: 'fab',\n iconName: 'hackerrank',\n icon: [512, 512, [], \"f5f7\", \"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"]\n};\nconst faResearchgate = {\n prefix: 'fab',\n iconName: 'researchgate',\n icon: [448, 512, [], \"f4f8\", \"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"]\n};\nconst faSwift = {\n prefix: 'fab',\n iconName: 'swift',\n icon: [448, 512, [], \"f8e1\", \"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"]\n};\nconst faAngular = {\n prefix: 'fab',\n iconName: 'angular',\n icon: [448, 512, [], \"f420\", \"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"]\n};\nconst faSpeakap = {\n prefix: 'fab',\n iconName: 'speakap',\n icon: [448, 512, [], \"f3f3\", \"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"]\n};\nconst faAngrycreative = {\n prefix: 'fab',\n iconName: 'angrycreative',\n icon: [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"]\n};\nconst faYCombinator = {\n prefix: 'fab',\n iconName: 'y-combinator',\n icon: [448, 512, [], \"f23b\", \"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"]\n};\nconst faEmpire = {\n prefix: 'fab',\n iconName: 'empire',\n icon: [496, 512, [], \"f1d1\", \"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"]\n};\nconst faEnvira = {\n prefix: 'fab',\n iconName: 'envira',\n icon: [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"]\n};\nconst faGoogleScholar = {\n prefix: 'fab',\n iconName: 'google-scholar',\n icon: [512, 512, [], \"e63b\", \"M390.9 298.5c0 0 0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64C405.3 445.1 338.5 512 256 512s-149.3-66.9-149.3-149.3c0-22.9 5.2-44.6 14.4-64h0c1.7-3.6 3.6-7.2 5.6-10.7c4.4-7.6 9.4-14.7 15-21.3c27.4-32.6 68.5-53.3 114.4-53.3c33.6 0 64.6 11.1 89.6 29.9c9.1 6.9 17.4 14.7 24.8 23.5c5.6 6.6 10.6 13.8 15 21.3c2 3.4 3.8 7 5.5 10.5zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4L0 202.7 256 0 512 202.7l-94.7 77.1z\"]\n};\nconst faSquareGitlab = {\n prefix: 'fab',\n iconName: 'square-gitlab',\n icon: [448, 512, [\"gitlab-square\"], \"e5ae\", \"M0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5c-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8c-2 1-4.4 2-6.7 2c-3 0-6.8-1.8-8.3-2.8l-54.2-40.9L93.5 322.3l-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6c1.6-1 3.4-1.6 5.2-1.8c1.3-.7 2.1-.4 3.4 .1c.6 .2 1.2 .5 2 .7c1 .4 1.6 .9 2.4 1.5c.6 .4 1.2 1 2.1 1.5c1.2 1.4 2.2 3 2.7 4.8l29.2 92.2H285l30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"]\n};\nconst faGitlabSquare = faSquareGitlab;\nconst faStudiovinari = {\n prefix: 'fab',\n iconName: 'studiovinari',\n icon: [512, 512, [], \"f3f8\", \"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"]\n};\nconst faPiedPiper = {\n prefix: 'fab',\n iconName: 'pied-piper',\n icon: [480, 512, [], \"f2ae\", \"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"]\n};\nconst faWordpress = {\n prefix: 'fab',\n iconName: 'wordpress',\n icon: [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"]\n};\nconst faProductHunt = {\n prefix: 'fab',\n iconName: 'product-hunt',\n icon: [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"]\n};\nconst faFirefox = {\n prefix: 'fab',\n iconName: 'firefox',\n icon: [512, 512, [], \"f269\", \"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"]\n};\nconst faLinode = {\n prefix: 'fab',\n iconName: 'linode',\n icon: [448, 512, [], \"f2b8\", \"M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z\"]\n};\nconst faGoodreads = {\n prefix: 'fab',\n iconName: 'goodreads',\n icon: [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"]\n};\nconst faSquareOdnoklassniki = {\n prefix: 'fab',\n iconName: 'square-odnoklassniki',\n icon: [448, 512, [\"odnoklassniki-square\"], \"f264\", \"M224 137.1a39.9 39.9 0 1 0 0 79.7 39.9 39.9 0 1 0 0-79.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 95.9A81 81 0 1 1 224 258a81 81 0 1 1 0-162.1zm59.3 168.3c16.8-13.2 29.5-5.5 34.1 3.6c7.8 16-1.1 23.7-21.5 37c-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6c-12-12.2-29.5-29.7-47.7-47.9l0 0-47.7 47.9c-17.7 17.2-46-11-28.4-28.6c3.7-3.7 7.9-7.9 12.5-12.5c10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8c-20.3-13.3-29.3-20.9-21.4-37c4.6-9.1 17.3-16.8 34.1-3.6c0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"]\n};\nconst faOdnoklassnikiSquare = faSquareOdnoklassniki;\nconst faJsfiddle = {\n prefix: 'fab',\n iconName: 'jsfiddle',\n icon: [576, 512, [], \"f1cc\", \"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"]\n};\nconst faSith = {\n prefix: 'fab',\n iconName: 'sith',\n icon: [448, 512, [], \"f512\", \"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"]\n};\nconst faThemeisle = {\n prefix: 'fab',\n iconName: 'themeisle',\n icon: [512, 512, [], \"f2b2\", \"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"]\n};\nconst faPage4 = {\n prefix: 'fab',\n iconName: 'page4',\n icon: [496, 512, [], \"f3d7\", \"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"]\n};\nconst faHashnode = {\n prefix: 'fab',\n iconName: 'hashnode',\n icon: [512, 512, [], \"e499\", \"M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z\"]\n};\nconst faReact = {\n prefix: 'fab',\n iconName: 'react',\n icon: [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"]\n};\nconst faCcPaypal = {\n prefix: 'fab',\n iconName: 'cc-paypal',\n icon: [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"]\n};\nconst faSquarespace = {\n prefix: 'fab',\n iconName: 'squarespace',\n icon: [512, 512, [], \"f5be\", \"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"]\n};\nconst faCcStripe = {\n prefix: 'fab',\n iconName: 'cc-stripe',\n icon: [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"]\n};\nconst faCreativeCommonsShare = {\n prefix: 'fab',\n iconName: 'creative-commons-share',\n icon: [496, 512, [], \"f4f2\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"]\n};\nconst faBitcoin = {\n prefix: 'fab',\n iconName: 'bitcoin',\n icon: [512, 512, [], \"f379\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"]\n};\nconst faKeycdn = {\n prefix: 'fab',\n iconName: 'keycdn',\n icon: [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"]\n};\nconst faOpera = {\n prefix: 'fab',\n iconName: 'opera',\n icon: [496, 512, [], \"f26a\", \"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"]\n};\nconst faItchIo = {\n prefix: 'fab',\n iconName: 'itch-io',\n icon: [512, 512, [], \"f83a\", \"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"]\n};\nconst faUmbraco = {\n prefix: 'fab',\n iconName: 'umbraco',\n icon: [510, 512, [], \"f8e8\", \"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"]\n};\nconst faGalacticSenate = {\n prefix: 'fab',\n iconName: 'galactic-senate',\n icon: [512, 512, [], \"f50d\", \"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"]\n};\nconst faUbuntu = {\n prefix: 'fab',\n iconName: 'ubuntu',\n icon: [576, 512, [], \"f7df\", \"M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z\"]\n};\nconst faDraft2digital = {\n prefix: 'fab',\n iconName: 'draft2digital',\n icon: [480, 512, [], \"f396\", \"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"]\n};\nconst faStripe = {\n prefix: 'fab',\n iconName: 'stripe',\n icon: [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"]\n};\nconst faHouzz = {\n prefix: 'fab',\n iconName: 'houzz',\n icon: [448, 512, [], \"f27c\", \"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"]\n};\nconst faGg = {\n prefix: 'fab',\n iconName: 'gg',\n icon: [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"]\n};\nconst faDhl = {\n prefix: 'fab',\n iconName: 'dhl',\n icon: [640, 512, [], \"f790\", \"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"]\n};\nconst faSquarePinterest = {\n prefix: 'fab',\n iconName: 'square-pinterest',\n icon: [448, 512, [\"pinterest-square\"], \"f0d3\", \"M384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h72.6l-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7c3.9-16 8.5-35 13.9-57.9c0 0-7.3-14.8-7.3-36.5c0-70.7 75.5-78 75.5-25c0 13.5-5.4 31.1-11.2 49.8c-3.3 10.6-6.6 21.5-9.1 32c-5.7 24.5 12.3 44.4 36.4 44.4c43.7 0 77.2-46 77.2-112.4c0-58.8-42.3-99.9-102.6-99.9C153 139 112 191.4 112 245.6c0 21.1 8.2 43.7 18.3 56c2 2.4 2.3 4.5 1.7 7c-1.1 4.7-3.1 12.9-4.7 19.2c-1 4-1.8 7.3-2.1 8.6c-1.1 4.5-3.5 5.5-8.2 3.3c-30.6-14.3-49.8-59.1-49.8-95.1C67.2 167.1 123.4 96 229.4 96c85.2 0 151.4 60.7 151.4 141.8c0 84.6-53.3 152.7-127.4 152.7c-24.9 0-48.3-12.9-56.3-28.2c0 0-12.3 46.9-15.3 58.4c-5 19.3-17.6 42.9-27.4 59.3H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z\"]\n};\nconst faPinterestSquare = faSquarePinterest;\nconst faXing = {\n prefix: 'fab',\n iconName: 'xing',\n icon: [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"]\n};\nconst faBlackberry = {\n prefix: 'fab',\n iconName: 'blackberry',\n icon: [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"]\n};\nconst faCreativeCommonsPd = {\n prefix: 'fab',\n iconName: 'creative-commons-pd',\n icon: [496, 512, [], \"f4ec\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"]\n};\nconst faPlaystation = {\n prefix: 'fab',\n iconName: 'playstation',\n icon: [576, 512, [], \"f3df\", \"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"]\n};\nconst faQuinscape = {\n prefix: 'fab',\n iconName: 'quinscape',\n icon: [512, 512, [], \"f459\", \"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"]\n};\nconst faLess = {\n prefix: 'fab',\n iconName: 'less',\n icon: [640, 512, [], \"f41d\", \"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"]\n};\nconst faBloggerB = {\n prefix: 'fab',\n iconName: 'blogger-b',\n icon: [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"]\n};\nconst faOpencart = {\n prefix: 'fab',\n iconName: 'opencart',\n icon: [640, 512, [], \"f23d\", \"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"]\n};\nconst faVine = {\n prefix: 'fab',\n iconName: 'vine',\n icon: [384, 512, [], \"f1ca\", \"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"]\n};\nconst faSignalMessenger = {\n prefix: 'fab',\n iconName: 'signal-messenger',\n icon: [512, 512, [], \"e663\", \"M256 0c13.3 0 26.3 1 39.1 3l-3.7 23.7C279.9 24.9 268 24 256 24s-23.9 .9-35.4 2.7L216.9 3C229.7 1 242.7 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm90.5 42.2L393.1 68.8c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5zm67.5 73.6l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zM509 216.9l-23.7 3.7c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1zM454.3 376.5c12.2-20 21.4-42 27.1-65.4l23.3 5.7c-6.3 25.8-16.5 50.1-29.9 72.2l-20.5-12.5zm-11.1 16.6l19.4 14.2c-15.5 21.1-34.1 39.8-55.2 55.2l-14.2-19.4c19.1-14 36-30.9 50.1-50.1zm-66.7 61.2l12.5 20.5c-22.1 13.4-46.4 23.6-72.2 29.9l-5.7-23.3c23.4-5.7 45.4-14.9 65.4-27.1zm-85.1 31l3.7 23.7c-12.7 1.9-25.8 3-39.1 3s-26.3-1-39.1-3l3.7-23.7c11.5 1.8 23.4 2.7 35.4 2.7s23.9-.9 35.4-2.7zm-90.5-3.9l-5.7 23.3c-19.4-4.7-37.9-11.6-55.3-20.5l-24.3 5.7-5.5-23.4 32.8-7.7 7.8 4c15.7 8 32.5 14.3 50.1 18.6zM90 471.3l5.5 23.4-41.6 9.7C26 510.8 1.2 486 7.6 458.2l9.7-41.6L40.7 422 31 463.7c-2.4 10.4 6.9 19.7 17.3 17.3L90 471.3zM45.5 401.8l-23.4-5.5L27.8 372C18.9 354.7 12 336.1 7.3 316.7l23.3-5.7c4.3 17.6 10.6 34.4 18.6 50.1l4 7.8-7.7 32.8zM26.7 291.4L3 295.1C1 282.3 0 269.3 0 256s1-26.3 3-39.1l23.7 3.7C24.9 232.1 24 244 24 256s.9 23.9 2.7 35.4zm3.9-90.5L7.3 195.2c6.3-25.8 16.5-50.1 29.9-72.2l20.5 12.5c-12.2 20-21.4 42-27.1 65.4zm38.3-82.1L49.5 104.7C65 83.6 83.6 65 104.7 49.5l14.2 19.4c-19.1 14-36 30.9-50.1 50.1zm66.7-61.2L123.1 37.2c22.1-13.4 46.4-23.6 72.2-29.9l5.7 23.3c-23.4 5.7-45.4 14.9-65.4 27.1zM464 256c0 114.9-93.1 208-208 208c-36.4 0-70.7-9.4-100.5-25.8c-2.9-1.6-6.2-2.1-9.4-1.4L53.6 458.4l21.6-92.5c.7-3.2 .2-6.5-1.4-9.4C57.4 326.7 48 292.4 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208z\"]\n};\nconst faPaypal = {\n prefix: 'fab',\n iconName: 'paypal',\n icon: [384, 512, [], \"f1ed\", \"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"]\n};\nconst faGitlab = {\n prefix: 'fab',\n iconName: 'gitlab',\n icon: [512, 512, [], \"f296\", \"M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z\"]\n};\nconst faTypo3 = {\n prefix: 'fab',\n iconName: 'typo3',\n icon: [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"]\n};\nconst faRedditAlien = {\n prefix: 'fab',\n iconName: 'reddit-alien',\n icon: [512, 512, [], \"f281\", \"M373 138.6c-25.2 0-46.3-17.5-51.9-41l0 0c-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3c12.6-9.7 28.4-15.5 45.5-15.5c41.3 0 74.7 33.4 74.7 74.7c0 29.8-17.4 55.5-42.7 67.5c-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4C17.6 311.5 0 285.7 0 255.7c0-41.3 33.4-74.7 74.7-74.7c17.2 0 33 5.8 45.7 15.6c34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5C325.8 50.2 347.2 32 373 32c29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1s36.6-9.8 37.8-36.9s-14.7-49.1-35.7-49.1zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1c1.2 27.1 16.9 36.9 37.8 36.9s39.3-11 38-38.1zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1c-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1c12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"]\n};\nconst faYahoo = {\n prefix: 'fab',\n iconName: 'yahoo',\n icon: [512, 512, [], \"f19e\", \"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"]\n};\nconst faDailymotion = {\n prefix: 'fab',\n iconName: 'dailymotion',\n icon: [448, 512, [], \"e052\", \"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"]\n};\nconst faAffiliatetheme = {\n prefix: 'fab',\n iconName: 'affiliatetheme',\n icon: [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"]\n};\nconst faPiedPiperPp = {\n prefix: 'fab',\n iconName: 'pied-piper-pp',\n icon: [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"]\n};\nconst faBootstrap = {\n prefix: 'fab',\n iconName: 'bootstrap',\n icon: [576, 512, [], \"f836\", \"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"]\n};\nconst faOdnoklassniki = {\n prefix: 'fab',\n iconName: 'odnoklassniki',\n icon: [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"]\n};\nconst faNfcSymbol = {\n prefix: 'fab',\n iconName: 'nfc-symbol',\n icon: [576, 512, [], \"e531\", \"M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z\"]\n};\nconst faMintbit = {\n prefix: 'fab',\n iconName: 'mintbit',\n icon: [512, 512, [], \"e62f\", \"M73.2 512V438.9H365.7V365.7h73.2V219.4H512V0H292.6V73.1H146.3v73.2H73.2V438.9H0V512H73.2zm73.1-219.4h73.2v73.1H146.3V292.6zm73.2-73.1h73.1v73.1H219.4V219.4zm73.1 0V146.3h73.2v73.1H292.6zM365.7 73.1h73.2v73.2H365.7V73.1z\"]\n};\nconst faEthereum = {\n prefix: 'fab',\n iconName: 'ethereum',\n icon: [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"]\n};\nconst faSpeakerDeck = {\n prefix: 'fab',\n iconName: 'speaker-deck',\n icon: [512, 512, [], \"f83c\", \"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"]\n};\nconst faCreativeCommonsNcEu = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-eu',\n icon: [496, 512, [], \"f4e9\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"]\n};\nconst faPatreon = {\n prefix: 'fab',\n iconName: 'patreon',\n icon: [512, 512, [], \"f3d9\", \"M489.7 153.8c-.1-65.4-51-119-110.7-138.3C304.8-8.5 207-5 136.1 28.4C50.3 68.9 23.3 157.7 22.3 246.2C21.5 319 28.7 510.6 136.9 512c80.3 1 92.3-102.5 129.5-152.3c26.4-35.5 60.5-45.5 102.4-55.9c72-17.8 121.1-74.7 121-150z\"]\n};\nconst faAvianex = {\n prefix: 'fab',\n iconName: 'avianex',\n icon: [512, 512, [], \"f374\", \"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"]\n};\nconst faEllo = {\n prefix: 'fab',\n iconName: 'ello',\n icon: [496, 512, [], \"f5f1\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"]\n};\nconst faGofore = {\n prefix: 'fab',\n iconName: 'gofore',\n icon: [400, 512, [], \"f3a7\", \"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"]\n};\nconst faBimobject = {\n prefix: 'fab',\n iconName: 'bimobject',\n icon: [448, 512, [], \"f378\", \"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"]\n};\nconst faBraveReverse = {\n prefix: 'fab',\n iconName: 'brave-reverse',\n icon: [448, 512, [], \"e63d\", \"M298 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3c9.2-1.6 18.6-2.2 27.7-1.2c11.6 1.4 21.5 5.4 28.9 12.9c7.7 7.8 15.4 15.8 22.6 23.6c2.5 2.7 4.9 5.2 6.9 7.4c.7 .8 1.4 1.5 1.9 2c3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2c-.1 .4-.1 .4-.5 2.1c-.6 2.3-.6 2.3-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9c-5.6 21.6-11.2 43.2-16.4 63.4c-12.9 49.9-21.4 82.7-23.4 90.9c-11.1 44.5-19.9 60-48.3 80.3c-24.9 17.8-76.8 53.6-86.8 60c-1 .6-2 1.3-3.4 2.3c-.5 .4-3.2 2.2-3.9 2.7c-4.9 3.3-8.3 5.5-12.1 7.3c-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3c-.8-.5-3.4-2.4-3.9-2.7c-1.4-1-2.5-1.7-3.4-2.3c-10-6.4-61.9-42.1-86.8-60c-28.4-20.4-37.2-35.8-48.3-80.3c-2-8.2-10.5-41-23.3-90.5c-5.3-20.6-10.9-42.2-16.5-63.8c-2-7.6-3.8-14.6-5.4-20.9c-.9-3.5-.9-3.5-1.5-5.8c-.4-1.7-.4-1.7-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1L11.8 104c-1.5-3.8-.7-8.2 2-11.2c1.2-1.3 1.8-2 2.6-2.8c2-2.2 4.4-4.7 6.9-7.4C30.6 74.9 38.3 66.9 46 59.1c7.4-7.5 17.3-11.6 28.9-12.9c9.1-1.1 18.5-.5 27.7 1.2c.5 .1 1 .2 1.5 .3l38.1-44C144.2 1.3 147 0 150 0H298zm-4.7 21.1H154.7L115.6 66.2c-2.6 3-6.7 4.3-10.6 3.2c-.2-.1-.7-.2-1.5-.4c-1.3-.3-2.9-.6-4.5-.9c-7.4-1.3-14.9-1.8-21.7-1C70 68 64.3 70.3 60.7 74c-7.6 7.7-15.2 15.6-22.3 23.3c-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.2 170.6c.4 1.4 .5 1.9 1.2 4.8c1.6 6.3 3.5 13.3 5.4 20.9c5.6 21.6 11.2 43.2 16.4 63.4c12.9 50 21.4 82.8 23.4 91C85.7 390.8 92 402 115.8 419c24.6 17.6 76.3 53.2 85.9 59.3c1.2 .8 2.5 1.6 4 2.7c.6 .4 3.2 2.2 3.9 2.7c4 2.8 6.7 4.4 9.2 5.6c2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6c.7-.5 3.3-2.3 3.9-2.7c1.6-1.1 2.8-1.9 4-2.7c9.6-6.1 61.3-41.7 85.9-59.3c23.8-17.1 30.2-28.2 40.1-68.3c2.1-8.3 10.5-41.1 23.3-90.7c5.3-20.6 10.9-42.2 16.5-63.8c2-7.6 3.8-14.6 5.4-20.9c.7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1c-7.2-7.6-14.7-15.5-22.3-23.3c-3.7-3.7-9.3-6-16.6-6.9c-6.8-.8-14.4-.3-21.7 1c-1.7 .3-3.2 .6-4.5 .9c-.8 .2-1.3 .3-1.5 .4c-3.8 1.1-7.9-.2-10.6-3.2L293.3 21.1zM224 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2s1.3 6.2-1.7 8.4s-44.1 34.6-48.1 38.2s-9.8 9.5-13.8 9.5s-9.8-5.9-13.8-9.5s-45.1-36-48.1-38.2s-5.1-6.2-1.7-8.4s13.9-7.5 28.3-15.2s32.5-14.1 35.4-14.1zm.1-230.7c.7 0 8.8 .2 20.5 4.2c12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9s54.2 66.7 54.2 81s-6.8 18-13.7 25.4s-36.8 39.8-40.7 43.9s-11.9 10.5-7.1 21.8s11.7 25.8 3.9 40.4s-21 24.4-29.4 22.8s-28.4-12.2-35.7-17.1s-30.5-24.3-30.5-31.8s24-20.8 28.4-23.9s24.7-14.8 25.1-19.4s.3-6-5.7-17.4s-16.7-26.7-14.9-36.8s19.1-15.4 31.5-20.2s36.2-13.7 39.2-15.1s2.2-2.7-6.8-3.6s-34.6-4.3-46.1-1.1s-31.2 8.2-32.8 10.9s-3 2.7-1.4 11.8s10.1 52.8 10.9 60.6s2.4 12.9-5.8 14.8s-22.1 5.2-26.8 5.2s-18.6-3.3-26.8-5.2s-6.6-7-5.8-14.8s9.3-51.5 10.9-60.6s.2-9.2-1.4-11.8s-21.3-7.6-32.8-10.9s-37.1 .2-46.1 1.1s-9.8 2.2-6.8 3.6s26.8 10.4 39.2 15.1s29.7 10 31.5 20.2s-9 25.4-14.9 36.8s-6.1 12.8-5.7 17.4s20.6 16.4 25.1 19.4s28.4 16.4 28.4 23.9s-23.2 27-30.5 31.8s-27.2 15.4-35.7 17.1s-21.7-8.2-29.4-22.8s-.8-29.1 3.9-40.4s-3.3-17.7-7.1-21.8s-33.8-36.5-40.7-43.9s-13.7-11.2-13.7-25.4s54.2-81 54.2-81s45.8 8.9 51.9 8.9s19.5-5.2 31.9-9.4s20.6-4.2 20.6-4.2l.1 0z\"]\n};\nconst faFacebookF = {\n prefix: 'fab',\n iconName: 'facebook-f',\n icon: [320, 512, [], \"f39e\", \"M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z\"]\n};\nconst faSquareGooglePlus = {\n prefix: 'fab',\n iconName: 'square-google-plus',\n icon: [448, 512, [\"google-plus-square\"], \"f0d4\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM64 256c0-55.3 44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4c-34.1 0-61.9 28.2-61.9 63.2c0 34.9 27.8 63.2 61.9 63.2c39.6 0 54.4-28.5 56.8-43.1H164V241.8h94.4c1 5 1.6 10.1 1.6 16.6c0 57.1-38.3 97.6-96 97.6c-55.3 0-100-44.7-100-100zm291 18.2v29H325.8v-29h-29V245h29V216H355v29h29v29.2H355z\"]\n};\nconst faGooglePlusSquare = faSquareGooglePlus;\nconst faWebAwesome = {\n prefix: 'fab',\n iconName: 'web-awesome',\n icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z\"]\n};\nconst faMandalorian = {\n prefix: 'fab',\n iconName: 'mandalorian',\n icon: [448, 512, [], \"f50f\", \"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"]\n};\nconst faFirstOrderAlt = {\n prefix: 'fab',\n iconName: 'first-order-alt',\n icon: [496, 512, [], \"f50a\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"]\n};\nconst faOsi = {\n prefix: 'fab',\n iconName: 'osi',\n icon: [512, 512, [], \"f41a\", \"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"]\n};\nconst faGoogleWallet = {\n prefix: 'fab',\n iconName: 'google-wallet',\n icon: [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"]\n};\nconst faDAndDBeyond = {\n prefix: 'fab',\n iconName: 'd-and-d-beyond',\n icon: [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"]\n};\nconst faPeriscope = {\n prefix: 'fab',\n iconName: 'periscope',\n icon: [448, 512, [], \"f3da\", \"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"]\n};\nconst faFulcrum = {\n prefix: 'fab',\n iconName: 'fulcrum',\n icon: [320, 512, [], \"f50b\", \"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"]\n};\nconst faCloudscale = {\n prefix: 'fab',\n iconName: 'cloudscale',\n icon: [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"]\n};\nconst faForumbee = {\n prefix: 'fab',\n iconName: 'forumbee',\n icon: [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"]\n};\nconst faMizuni = {\n prefix: 'fab',\n iconName: 'mizuni',\n icon: [496, 512, [], \"f3cc\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"]\n};\nconst faSchlix = {\n prefix: 'fab',\n iconName: 'schlix',\n icon: [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"]\n};\nconst faSquareXing = {\n prefix: 'fab',\n iconName: 'square-xing',\n icon: [448, 512, [\"xing-square\"], \"f169\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2c-3.5 6.2-7.7 9.1-12.6 9.1H93.8zm163.5-33.4v.2l65.5 119c2.8 5.1 .1 10.1-6 10.1H270.2c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6c11.7-20.7 25.1-44.3 40.1-70.8c3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"]\n};\nconst faXingSquare = faSquareXing;\nconst faBandcamp = {\n prefix: 'fab',\n iconName: 'bandcamp',\n icon: [512, 512, [], \"f2d5\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"]\n};\nconst faWpforms = {\n prefix: 'fab',\n iconName: 'wpforms',\n icon: [448, 512, [], \"f298\", \"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"]\n};\nconst faCloudversify = {\n prefix: 'fab',\n iconName: 'cloudversify',\n icon: [616, 512, [], \"f385\", \"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"]\n};\nconst faUsps = {\n prefix: 'fab',\n iconName: 'usps',\n icon: [576, 512, [], \"f7e1\", \"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"]\n};\nconst faMegaport = {\n prefix: 'fab',\n iconName: 'megaport',\n icon: [496, 512, [], \"f5a3\", \"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"]\n};\nconst faMagento = {\n prefix: 'fab',\n iconName: 'magento',\n icon: [448, 512, [], \"f3c4\", \"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"]\n};\nconst faSpotify = {\n prefix: 'fab',\n iconName: 'spotify',\n icon: [496, 512, [], \"f1bc\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"]\n};\nconst faOptinMonster = {\n prefix: 'fab',\n iconName: 'optin-monster',\n icon: [576, 512, [], \"f23c\", \"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"]\n};\nconst faFly = {\n prefix: 'fab',\n iconName: 'fly',\n icon: [384, 512, [], \"f417\", \"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"]\n};\nconst faSquareBluesky = {\n prefix: 'fab',\n iconName: 'square-bluesky',\n icon: [448, 512, [], \"e6a3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3c26.5-19.9 69.3-35.2 69.3 13.7c0 9.8-5.6 82.1-8.9 93.8c-11.4 40.8-53 51.2-90 44.9c64.7 11 81.2 47.5 45.6 84c-67.5 69.3-97-17.4-104.6-39.6c0 0 0 0 0 0l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9c0 0 0 0 0 0c-7.6 22.2-37.1 108.8-104.6 39.6c-35.5-36.5-19.1-73 45.6-84c-37 6.3-78.6-4.1-90-44.9c-3.3-11.7-8.9-84-8.9-93.8c0-48.9 42.9-33.5 69.3-13.7c36.7 27.5 76.2 83.4 90.7 113.3z\"]\n};\nconst faAviato = {\n prefix: 'fab',\n iconName: 'aviato',\n icon: [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"]\n};\nconst faItunes = {\n prefix: 'fab',\n iconName: 'itunes',\n icon: [448, 512, [], \"f3b4\", \"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"]\n};\nconst faCuttlefish = {\n prefix: 'fab',\n iconName: 'cuttlefish',\n icon: [440, 512, [], \"f38c\", \"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"]\n};\nconst faBlogger = {\n prefix: 'fab',\n iconName: 'blogger',\n icon: [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"]\n};\nconst faFlickr = {\n prefix: 'fab',\n iconName: 'flickr',\n icon: [448, 512, [], \"f16e\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"]\n};\nconst faViber = {\n prefix: 'fab',\n iconName: 'viber',\n icon: [512, 512, [], \"f409\", \"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"]\n};\nconst faSoundcloud = {\n prefix: 'fab',\n iconName: 'soundcloud',\n icon: [640, 512, [], \"f1be\", \"M639.8 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1h-218c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8V130.2c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9c25.8 0 51.1 6.9 73.3 20.1c17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2c11.7-.1 23.3 2.2 34.2 6.7S606.8 226.6 615 235s14.6 18.3 18.9 29.3s6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6s-1.5-1.3-2.4-1.7s-1.9-.6-2.9-.6s-2 .2-2.9 .6s-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6s-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6c.2 1.7 1 3.3 2.3 4.5s3 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.8 2.3-4.5c11.3-79.4 6.6-152 0-231.6zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4c.3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8s3.5-.6 4.8-1.8s2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8s-3.5 .7-4.8 1.8s-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1c0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1s3.7-.7 5-2.1s2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1s-3.8 .8-5.2 2.1s-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8c.2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9s3.5-.7 4.8-1.9s2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8zM109 233.7c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1s-3.8 .8-5.1 2.1s-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6c.3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7s3.2-.6 4.5-1.7s2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5c.7 7.6 13.6 7.5 14.4 0c7.2-50.9 10.5-93.8 .3-144.5zM20.3 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4c.2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4z\"]\n};\nconst faDigg = {\n prefix: 'fab',\n iconName: 'digg',\n icon: [512, 512, [], \"f1a6\", \"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"]\n};\nconst faTencentWeibo = {\n prefix: 'fab',\n iconName: 'tencent-weibo',\n icon: [384, 512, [], \"f1d5\", \"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"]\n};\nconst faLetterboxd = {\n prefix: 'fab',\n iconName: 'letterboxd',\n icon: [640, 512, [], \"e62d\", \"M521.3 128C586.9 128 640 181.1 640 246.6s-53.1 118.6-118.7 118.6c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"]\n};\nconst faSymfony = {\n prefix: 'fab',\n iconName: 'symfony',\n icon: [512, 512, [], \"f83d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"]\n};\nconst faMaxcdn = {\n prefix: 'fab',\n iconName: 'maxcdn',\n icon: [512, 512, [], \"f136\", \"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"]\n};\nconst faEtsy = {\n prefix: 'fab',\n iconName: 'etsy',\n icon: [384, 512, [], \"f2d7\", \"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"]\n};\nconst faFacebookMessenger = {\n prefix: 'fab',\n iconName: 'facebook-messenger',\n icon: [512, 512, [], \"f39f\", \"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"]\n};\nconst faAudible = {\n prefix: 'fab',\n iconName: 'audible',\n icon: [640, 512, [], \"f373\", \"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"]\n};\nconst faThinkPeaks = {\n prefix: 'fab',\n iconName: 'think-peaks',\n icon: [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"]\n};\nconst faBilibili = {\n prefix: 'fab',\n iconName: 'bilibili',\n icon: [512, 512, [], \"e3d9\", \"M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z\"]\n};\nconst faErlang = {\n prefix: 'fab',\n iconName: 'erlang',\n icon: [640, 512, [], \"f39d\", \"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"]\n};\nconst faXTwitter = {\n prefix: 'fab',\n iconName: 'x-twitter',\n icon: [512, 512, [], \"e61b\", \"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z\"]\n};\nconst faCottonBureau = {\n prefix: 'fab',\n iconName: 'cotton-bureau',\n icon: [512, 512, [], \"f89e\", \"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"]\n};\nconst faDashcube = {\n prefix: 'fab',\n iconName: 'dashcube',\n icon: [448, 512, [], \"f210\", \"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"]\n};\nconst fa42Group = {\n prefix: 'fab',\n iconName: '42-group',\n icon: [640, 512, [\"innosoft\"], \"e080\", \"M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z\"]\n};\nconst faInnosoft = fa42Group;\nconst faStackExchange = {\n prefix: 'fab',\n iconName: 'stack-exchange',\n icon: [448, 512, [], \"f18d\", \"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"]\n};\nconst faElementor = {\n prefix: 'fab',\n iconName: 'elementor',\n icon: [512, 512, [], \"f430\", \"M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z\"]\n};\nconst faSquarePiedPiper = {\n prefix: 'fab',\n iconName: 'square-pied-piper',\n icon: [448, 512, [\"pied-piper-square\"], \"e01e\", \"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"]\n};\nconst faPiedPiperSquare = faSquarePiedPiper;\nconst faCreativeCommonsNd = {\n prefix: 'fab',\n iconName: 'creative-commons-nd',\n icon: [496, 512, [], \"f4eb\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"]\n};\nconst faPalfed = {\n prefix: 'fab',\n iconName: 'palfed',\n icon: [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"]\n};\nconst faSuperpowers = {\n prefix: 'fab',\n iconName: 'superpowers',\n icon: [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"]\n};\nconst faResolving = {\n prefix: 'fab',\n iconName: 'resolving',\n icon: [496, 512, [], \"f3e7\", \"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"]\n};\nconst faXbox = {\n prefix: 'fab',\n iconName: 'xbox',\n icon: [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"]\n};\nconst faSquareWebAwesomeStroke = {\n prefix: 'fab',\n iconName: 'square-web-awesome-stroke',\n icon: [448, 512, [], \"e684\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"]\n};\nconst faSearchengin = {\n prefix: 'fab',\n iconName: 'searchengin',\n icon: [460, 512, [], \"f3eb\", \"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"]\n};\nconst faTiktok = {\n prefix: 'fab',\n iconName: 'tiktok',\n icon: [448, 512, [], \"e07b\", \"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"]\n};\nconst faSquareFacebook = {\n prefix: 'fab',\n iconName: 'square-facebook',\n icon: [448, 512, [\"facebook-square\"], \"f082\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nconst faFacebookSquare = faSquareFacebook;\nconst faRenren = {\n prefix: 'fab',\n iconName: 'renren',\n icon: [512, 512, [], \"f18b\", \"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"]\n};\nconst faLinux = {\n prefix: 'fab',\n iconName: 'linux',\n icon: [448, 512, [], \"f17c\", \"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"]\n};\nconst faGlide = {\n prefix: 'fab',\n iconName: 'glide',\n icon: [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"]\n};\nconst faLinkedin = {\n prefix: 'fab',\n iconName: 'linkedin',\n icon: [448, 512, [], \"f08c\", \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"]\n};\nconst faHubspot = {\n prefix: 'fab',\n iconName: 'hubspot',\n icon: [512, 512, [], \"f3b2\", \"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"]\n};\nconst faDeploydog = {\n prefix: 'fab',\n iconName: 'deploydog',\n icon: [512, 512, [], \"f38e\", \"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"]\n};\nconst faTwitch = {\n prefix: 'fab',\n iconName: 'twitch',\n icon: [512, 512, [], \"f1e8\", \"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"]\n};\nconst faFlutter = {\n prefix: 'fab',\n iconName: 'flutter',\n icon: [448, 512, [], \"e694\", \"M429.5 236.3L291.7 374.1 429.5 512H272l-59.1-59.1-78.8-78.8L272 236.3H429.5zM272 0L16 256l78.8 78.8L429.5 0H272z\"]\n};\nconst faRavelry = {\n prefix: 'fab',\n iconName: 'ravelry',\n icon: [512, 512, [], \"f2d9\", \"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"]\n};\nconst faMixer = {\n prefix: 'fab',\n iconName: 'mixer',\n icon: [512, 512, [], \"e056\", \"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"]\n};\nconst faSquareLastfm = {\n prefix: 'fab',\n iconName: 'square-lastfm',\n icon: [448, 512, [\"lastfm-square\"], \"f203\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9c-12.9-41.9-21-68.4-58-68.4c-22.4 0-45.1 16.1-45.1 61.2c0 35.2 18 57.2 43.3 57.2c28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8c0-57.9 28.6-92 82.5-92c67.9 0 79.3 35.3 96.4 88.4c1.4 4.4 2.9 8.9 4.4 13.5c8.8 26.8 24.2 46.2 61.2 46.2c24.9 0 38.1-5.5 38.1-19.1c0-17.5-16.9-21.2-40-26.4c-3.2-.7-6.5-1.4-9.9-2.2c-30.4-7.3-42.5-23.1-42.5-48c0-40 32.3-52.4 65.2-52.4c37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4c-16.1 0-26 7.3-26 19.8c0 11 4.8 17.6 20.9 21.3c2.2 .5 4.5 1 6.7 1.4c31.1 6.5 65.1 13.7 65.1 56.1c.1 36.7-30.7 50.6-76.1 50.6c-63.4 0-85.4-28.6-97.1-64.1z\"]\n};\nconst faLastfmSquare = faSquareLastfm;\nconst faVimeo = {\n prefix: 'fab',\n iconName: 'vimeo',\n icon: [448, 512, [], \"f40a\", \"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"]\n};\nconst faMendeley = {\n prefix: 'fab',\n iconName: 'mendeley',\n icon: [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"]\n};\nconst faUniregistry = {\n prefix: 'fab',\n iconName: 'uniregistry',\n icon: [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"]\n};\nconst faFigma = {\n prefix: 'fab',\n iconName: 'figma',\n icon: [384, 512, [], \"f799\", \"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"]\n};\nconst faCreativeCommonsRemix = {\n prefix: 'fab',\n iconName: 'creative-commons-remix',\n icon: [496, 512, [], \"f4ee\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"]\n};\nconst faCcAmazonPay = {\n prefix: 'fab',\n iconName: 'cc-amazon-pay',\n icon: [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"]\n};\nconst faDropbox = {\n prefix: 'fab',\n iconName: 'dropbox',\n icon: [528, 512, [], \"f16b\", \"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"]\n};\nconst faInstagram = {\n prefix: 'fab',\n iconName: 'instagram',\n icon: [448, 512, [], \"f16d\", \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"]\n};\nconst faCmplid = {\n prefix: 'fab',\n iconName: 'cmplid',\n icon: [640, 512, [], \"e360\", \"M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z\"]\n};\nconst faUpwork = {\n prefix: 'fab',\n iconName: 'upwork',\n icon: [641, 512, [], \"e641\", \"M494.7 295.6c-50.3 0-83.5-38.9-92.8-53.9c11.9-95.3 46.8-125.4 92.8-125.4c45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7zm0-237.8c-81.9 0-127.8 53.4-141 108.4c-14.9-28-25.9-65.5-34.5-100.3H206v141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141H.8v141c0 41.1 13.3 78.4 37.6 105.1c25 27.5 59.2 41.8 98.8 41.8c78.8 0 133.8-60.4 133.8-146.9V112.1c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4h66.4l23.1-141.3c7.6 6.3 15.7 12 24.2 17c22.2 14 47.7 21.9 73.9 22.8c0 0 4 .2 6.1 .2c81.2 0 145.9-62.9 145.9-147.8s-64.8-148.1-146-148.1z\"]\n};\nconst faFacebook = {\n prefix: 'fab',\n iconName: 'facebook',\n icon: [512, 512, [62000], \"f09a\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z\"]\n};\nconst faGripfire = {\n prefix: 'fab',\n iconName: 'gripfire',\n icon: [384, 512, [], \"f3ac\", \"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"]\n};\nconst faJediOrder = {\n prefix: 'fab',\n iconName: 'jedi-order',\n icon: [448, 512, [], \"f50e\", \"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"]\n};\nconst faUikit = {\n prefix: 'fab',\n iconName: 'uikit',\n icon: [448, 512, [], \"f403\", \"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"]\n};\nconst faFortAwesomeAlt = {\n prefix: 'fab',\n iconName: 'fort-awesome-alt',\n icon: [512, 512, [], \"f3a3\", \"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"]\n};\nconst faPhabricator = {\n prefix: 'fab',\n iconName: 'phabricator',\n icon: [496, 512, [], \"f3db\", \"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"]\n};\nconst faUssunnah = {\n prefix: 'fab',\n iconName: 'ussunnah',\n icon: [482, 512, [], \"f407\", \"M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z\"]\n};\nconst faEarlybirds = {\n prefix: 'fab',\n iconName: 'earlybirds',\n icon: [480, 512, [], \"f39a\", \"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"]\n};\nconst faTradeFederation = {\n prefix: 'fab',\n iconName: 'trade-federation',\n icon: [496, 512, [], \"f513\", \"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"]\n};\nconst faAutoprefixer = {\n prefix: 'fab',\n iconName: 'autoprefixer',\n icon: [640, 512, [], \"f41c\", \"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"]\n};\nconst faWhatsapp = {\n prefix: 'fab',\n iconName: 'whatsapp',\n icon: [448, 512, [], \"f232\", \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"]\n};\nconst faSquareUpwork = {\n prefix: 'fab',\n iconName: 'square-upwork',\n icon: [448, 512, [], \"e67c\", \"M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5c25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-29.7 0-33.2 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4s-39.8-20.9-39.8-49.3l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2c13.9 15.2 32.8 23.2 54.8 23.2c43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7L215 392.6l36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4c12.3 7.8 26.4 12.2 40.9 12.6l.1 0c.5 0 1.1 0 1.6 0c.6 0 1.1 0 1.7 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1z\"]\n};\nconst faSlideshare = {\n prefix: 'fab',\n iconName: 'slideshare',\n icon: [512, 512, [], \"f1e7\", \"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"]\n};\nconst faGooglePlay = {\n prefix: 'fab',\n iconName: 'google-play',\n icon: [512, 512, [], \"f3ab\", \"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"]\n};\nconst faViadeo = {\n prefix: 'fab',\n iconName: 'viadeo',\n icon: [448, 512, [], \"f2a9\", \"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"]\n};\nconst faLine = {\n prefix: 'fab',\n iconName: 'line',\n icon: [512, 512, [], \"f3c0\", \"M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z\"]\n};\nconst faGoogleDrive = {\n prefix: 'fab',\n iconName: 'google-drive',\n icon: [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"]\n};\nconst faServicestack = {\n prefix: 'fab',\n iconName: 'servicestack',\n icon: [496, 512, [], \"f3ec\", \"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"]\n};\nconst faSimplybuilt = {\n prefix: 'fab',\n iconName: 'simplybuilt',\n icon: [512, 512, [], \"f215\", \"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"]\n};\nconst faBitbucket = {\n prefix: 'fab',\n iconName: 'bitbucket',\n icon: [512, 512, [61810], \"f171\", \"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"]\n};\nconst faImdb = {\n prefix: 'fab',\n iconName: 'imdb',\n icon: [448, 512, [], \"f2d8\", \"M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z\"]\n};\nconst faDeezer = {\n prefix: 'fab',\n iconName: 'deezer',\n icon: [576, 512, [], \"e077\", \"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"]\n};\nconst faRaspberryPi = {\n prefix: 'fab',\n iconName: 'raspberry-pi',\n icon: [407, 512, [], \"f7bb\", \"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"]\n};\nconst faJira = {\n prefix: 'fab',\n iconName: 'jira',\n icon: [496, 512, [], \"f7b1\", \"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"]\n};\nconst faDocker = {\n prefix: 'fab',\n iconName: 'docker',\n icon: [640, 512, [], \"f395\", \"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"]\n};\nconst faScreenpal = {\n prefix: 'fab',\n iconName: 'screenpal',\n icon: [512, 512, [], \"e570\", \"M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z\"]\n};\nconst faBluetooth = {\n prefix: 'fab',\n iconName: 'bluetooth',\n icon: [448, 512, [], \"f293\", \"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"]\n};\nconst faGitter = {\n prefix: 'fab',\n iconName: 'gitter',\n icon: [384, 512, [], \"f426\", \"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"]\n};\nconst faDAndD = {\n prefix: 'fab',\n iconName: 'd-and-d',\n icon: [576, 512, [], \"f38d\", \"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"]\n};\nconst faMicroblog = {\n prefix: 'fab',\n iconName: 'microblog',\n icon: [448, 512, [], \"e01a\", \"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"]\n};\nconst faCcDinersClub = {\n prefix: 'fab',\n iconName: 'cc-diners-club',\n icon: [576, 512, [], \"f24c\", \"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"]\n};\nconst faGgCircle = {\n prefix: 'fab',\n iconName: 'gg-circle',\n icon: [512, 512, [], \"f261\", \"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"]\n};\nconst faPiedPiperHat = {\n prefix: 'fab',\n iconName: 'pied-piper-hat',\n icon: [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"]\n};\nconst faKickstarterK = {\n prefix: 'fab',\n iconName: 'kickstarter-k',\n icon: [448, 512, [], \"f3bc\", \"M356.6 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32C80.5 32 32 80.2 32 139.5V372.5C32 431.9 80.5 480 140.2 480c37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40z\"]\n};\nconst faYandex = {\n prefix: 'fab',\n iconName: 'yandex',\n icon: [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"]\n};\nconst faReadme = {\n prefix: 'fab',\n iconName: 'readme',\n icon: [576, 512, [], \"f4d5\", \"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"]\n};\nconst faHtml5 = {\n prefix: 'fab',\n iconName: 'html5',\n icon: [384, 512, [], \"f13b\", \"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"]\n};\nconst faSellsy = {\n prefix: 'fab',\n iconName: 'sellsy',\n icon: [640, 512, [], \"f213\", \"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"]\n};\nconst faSquareWebAwesome = {\n prefix: 'fab',\n iconName: 'square-web-awesome',\n icon: [448, 512, [], \"e683\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"]\n};\nconst faSass = {\n prefix: 'fab',\n iconName: 'sass',\n icon: [640, 512, [], \"f41e\", \"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"]\n};\nconst faWirsindhandwerk = {\n prefix: 'fab',\n iconName: 'wirsindhandwerk',\n icon: [512, 512, [\"wsh\"], \"e2d0\", \"M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z\"]\n};\nconst faWsh = faWirsindhandwerk;\nconst faBuromobelexperte = {\n prefix: 'fab',\n iconName: 'buromobelexperte',\n icon: [448, 512, [], \"f37f\", \"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"]\n};\nconst faSalesforce = {\n prefix: 'fab',\n iconName: 'salesforce',\n icon: [640, 512, [], \"f83b\", \"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"]\n};\nconst faOctopusDeploy = {\n prefix: 'fab',\n iconName: 'octopus-deploy',\n icon: [512, 512, [], \"e082\", \"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"]\n};\nconst faMedapps = {\n prefix: 'fab',\n iconName: 'medapps',\n icon: [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"]\n};\nconst faNs8 = {\n prefix: 'fab',\n iconName: 'ns8',\n icon: [640, 512, [], \"f3d5\", \"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"]\n};\nconst faPinterestP = {\n prefix: 'fab',\n iconName: 'pinterest-p',\n icon: [384, 512, [], \"f231\", \"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"]\n};\nconst faApper = {\n prefix: 'fab',\n iconName: 'apper',\n icon: [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"]\n};\nconst faFortAwesome = {\n prefix: 'fab',\n iconName: 'fort-awesome',\n icon: [512, 512, [], \"f286\", \"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"]\n};\nconst faWaze = {\n prefix: 'fab',\n iconName: 'waze',\n icon: [512, 512, [], \"f83f\", \"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"]\n};\nconst faBluesky = {\n prefix: 'fab',\n iconName: 'bluesky',\n icon: [512, 512, [], \"e671\", \"M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z\"]\n};\nconst faCcJcb = {\n prefix: 'fab',\n iconName: 'cc-jcb',\n icon: [576, 512, [], \"f24b\", \"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"]\n};\nconst faSnapchat = {\n prefix: 'fab',\n iconName: 'snapchat',\n icon: [512, 512, [62124, \"snapchat-ghost\"], \"f2ab\", \"M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z\"]\n};\nconst faSnapchatGhost = faSnapchat;\nconst faFantasyFlightGames = {\n prefix: 'fab',\n iconName: 'fantasy-flight-games',\n icon: [512, 512, [], \"f6dc\", \"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"]\n};\nconst faRust = {\n prefix: 'fab',\n iconName: 'rust',\n icon: [512, 512, [], \"e07a\", \"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"]\n};\nconst faWix = {\n prefix: 'fab',\n iconName: 'wix',\n icon: [640, 512, [], \"f5cf\", \"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"]\n};\nconst faSquareBehance = {\n prefix: 'fab',\n iconName: 'square-behance',\n icon: [448, 512, [\"behance-square\"], \"f1b5\", \"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4c0-19.7-11.7-27.4-30.3-27.5h-46v52.9h45.1zm-5.4-129.6H110.3v44.8H153c15.1 0 25.8-6.6 25.8-22.9c0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8h62.2c-1.7-18.5-11.3-29.7-30.5-29.7c-18.3 0-30.5 11.4-31.7 29.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM349.5 185H271.7V166.1h77.8V185zM193.7 243.7c23.6 6.7 35 27.5 35 51.6c0 39-32.7 55.7-67.6 55.9H68v-192h90.5c32.9 0 61.4 9.3 61.4 47.5c0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4c0 1.6-.1 3.3-.2 5c0 .8-.1 1.5-.1 2.2H279.5c0 22.2 11.7 35.3 34.1 35.3c11.6 0 26.5-6.2 30.2-18.1h33.7c-10.4 31.9-31.9 46.8-65.1 46.8c-43.8 0-71.1-29.7-71.1-73c0-41.8 28.7-73.6 71.1-73.6z\"]\n};\nconst faBehanceSquare = faSquareBehance;\nconst faSupple = {\n prefix: 'fab',\n iconName: 'supple',\n icon: [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"]\n};\nconst faWebflow = {\n prefix: 'fab',\n iconName: 'webflow',\n icon: [640, 512, [], \"e65c\", \"M640 64L435.8 463.2H244l85.5-165.5h-3.8C255.1 389.3 149.9 449.5 0 463.2V300.1s95.9-5.7 152.3-64.9H0V64H171.1V204.8l3.8 0L244.9 64H374.3V203.9l3.8 0L450.7 64H640z\"]\n};\nconst faRebel = {\n prefix: 'fab',\n iconName: 'rebel',\n icon: [512, 512, [], \"f1d0\", \"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"]\n};\nconst faCss3 = {\n prefix: 'fab',\n iconName: 'css3',\n icon: [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"]\n};\nconst faStaylinked = {\n prefix: 'fab',\n iconName: 'staylinked',\n icon: [440, 512, [], \"f3f5\", \"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"]\n};\nconst faKaggle = {\n prefix: 'fab',\n iconName: 'kaggle',\n icon: [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"]\n};\nconst faSpaceAwesome = {\n prefix: 'fab',\n iconName: 'space-awesome',\n icon: [512, 512, [], \"e5ac\", \"M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z\"]\n};\nconst faDeviantart = {\n prefix: 'fab',\n iconName: 'deviantart',\n icon: [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"]\n};\nconst faCpanel = {\n prefix: 'fab',\n iconName: 'cpanel',\n icon: [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"]\n};\nconst faGoodreadsG = {\n prefix: 'fab',\n iconName: 'goodreads-g',\n icon: [384, 512, [], \"f3a9\", \"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"]\n};\nconst faSquareGit = {\n prefix: 'fab',\n iconName: 'square-git',\n icon: [448, 512, [\"git-square\"], \"f1d2\", \"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3c-3.3 4.1-6.6 8.4-6.6 13.5c0 18.5 65.5 18.5 65.5-1.5c0-8.3-7.4-8.7-38.8-10.7zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5c32.5 0 31.7-44.5 .7-44.5zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9c0-14.5 8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195h49.5l0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7c0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8c56.3 3.2 80.5 4.6 80.5 38.5c0 29.2-25.7 45.7-69.9 45.7c-46 0-63.5-11.6-63.5-31.7c0-11.4 5.1-17.5 14-25.9c-8.4-3.5-11.2-9.9-11.2-16.8c0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1c0-51.6 56.6-53.3 81.6-46.8zM270.5 303.1l13 1.8 0 20.1H211.1V304.9c2.7-.4 5-.7 6.9-.9c9.9-1.2 10.1-1.3 10.1-6V223.3c0-4.4-.9-4.7-10.1-7.8c-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6h52.6V298c0 4.1 .2 4.6 4.1 5.1zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2c-30.2 0-41.7-12.2-41.7-40.9V217.7c0-.8 0-1.4-.2-1.8c-.8-1.2-4.2-.7-19.6-.7V192.6c22.3-2.5 31.2-13.7 34-41.4h24.2c0 33.3-.6 38 .7 38.6c.3 .1 .7 0 1.3 0h35.8v25.4H339.3v60.7c0 .2 0 .5 0 .9c-.2 6.3-.9 30.4 37.9 15.9z\"]\n};\nconst faGitSquare = faSquareGit;\nconst faSquareTumblr = {\n prefix: 'fab',\n iconName: 'square-tumblr',\n icon: [448, 512, [\"tumblr-square\"], \"f174\", \"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9v-90H135.2c-3.4 0-6.2-2.8-6.2-6.2V189.4c0-4.5 2.8-8.5 7.1-10c38.8-13.7 50.9-47.5 52.7-73.2c.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2H249.1V321c0 21.4 14.8 33.5 42.5 22.4c3-1.2 5.6-2 8-1.4c2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1c-8.5 9.1-31.2 19.8-60.9 19.8z\"]\n};\nconst faTumblrSquare = faSquareTumblr;\nconst faTrello = {\n prefix: 'fab',\n iconName: 'trello',\n icon: [448, 512, [], \"f181\", \"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"]\n};\nconst faCreativeCommonsNcJp = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-jp',\n icon: [496, 512, [], \"f4ea\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"]\n};\nconst faGetPocket = {\n prefix: 'fab',\n iconName: 'get-pocket',\n icon: [448, 512, [], \"f265\", \"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"]\n};\nconst faPerbyte = {\n prefix: 'fab',\n iconName: 'perbyte',\n icon: [448, 512, [], \"e083\", \"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"]\n};\nconst faGrunt = {\n prefix: 'fab',\n iconName: 'grunt',\n icon: [384, 512, [], \"f3ad\", \"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"]\n};\nconst faWeebly = {\n prefix: 'fab',\n iconName: 'weebly',\n icon: [512, 512, [], \"f5cc\", \"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"]\n};\nconst faConnectdevelop = {\n prefix: 'fab',\n iconName: 'connectdevelop',\n icon: [576, 512, [], \"f20e\", \"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"]\n};\nconst faLeanpub = {\n prefix: 'fab',\n iconName: 'leanpub',\n icon: [576, 512, [], \"f212\", \"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"]\n};\nconst faBlackTie = {\n prefix: 'fab',\n iconName: 'black-tie',\n icon: [448, 512, [], \"f27e\", \"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"]\n};\nconst faThemeco = {\n prefix: 'fab',\n iconName: 'themeco',\n icon: [448, 512, [], \"f5c6\", \"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"]\n};\nconst faPython = {\n prefix: 'fab',\n iconName: 'python',\n icon: [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"]\n};\nconst faAndroid = {\n prefix: 'fab',\n iconName: 'android',\n icon: [576, 512, [], \"f17b\", \"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"]\n};\nconst faBots = {\n prefix: 'fab',\n iconName: 'bots',\n icon: [640, 512, [], \"e340\", \"M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z\"]\n};\nconst faFreeCodeCamp = {\n prefix: 'fab',\n iconName: 'free-code-camp',\n icon: [576, 512, [], \"f2c5\", \"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"]\n};\nconst faHornbill = {\n prefix: 'fab',\n iconName: 'hornbill',\n icon: [512, 512, [], \"f592\", \"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"]\n};\nconst faJs = {\n prefix: 'fab',\n iconName: 'js',\n icon: [448, 512, [], \"f3b8\", \"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"]\n};\nconst faIdeal = {\n prefix: 'fab',\n iconName: 'ideal',\n icon: [576, 512, [], \"e013\", \"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"]\n};\nconst faGit = {\n prefix: 'fab',\n iconName: 'git',\n icon: [512, 512, [], \"f1d3\", \"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"]\n};\nconst faDev = {\n prefix: 'fab',\n iconName: 'dev',\n icon: [448, 512, [], \"f6cc\", \"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"]\n};\nconst faSketch = {\n prefix: 'fab',\n iconName: 'sketch',\n icon: [512, 512, [], \"f7c6\", \"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"]\n};\nconst faYandexInternational = {\n prefix: 'fab',\n iconName: 'yandex-international',\n icon: [320, 512, [], \"f414\", \"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"]\n};\nconst faCcAmex = {\n prefix: 'fab',\n iconName: 'cc-amex',\n icon: [576, 512, [], \"f1f3\", \"M0 432c0 26.5 21.5 48 48 48H528c26.5 0 48-21.5 48-48v-1.1H514.3l-31.9-35.1-31.9 35.1H246.8V267.1H181L262.7 82.4h78.6l28.1 63.2V82.4h97.2L483.5 130l17-47.6H576V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80V432zm440.4-21.7L482.6 364l42 46.3H576l-68-72.1 68-72.1H525.4l-42 46.7-41.5-46.7H390.5L458 338.6l-67.4 71.6V377.1h-83V354.9h80.9V322.6H307.6V300.2h83V267.1h-122V410.3H440.4zm96.3-72L576 380.2V296.9l-39.3 41.4zm-36.3-92l36.9-100.6V246.3H576V103H515.8l-32.2 89.3L451.7 103H390.5V246.1L327.3 103H276.1L213.7 246.3h43l11.9-28.7h65.9l12 28.7h82.7V146L466 246.3h34.4zM282 185.4l19.5-46.9 19.4 46.9H282z\"]\n};\nconst faUber = {\n prefix: 'fab',\n iconName: 'uber',\n icon: [448, 512, [], \"f402\", \"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"]\n};\nconst faGithub = {\n prefix: 'fab',\n iconName: 'github',\n icon: [496, 512, [], \"f09b\", \"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"]\n};\nconst faPhp = {\n prefix: 'fab',\n iconName: 'php',\n icon: [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"]\n};\nconst faAlipay = {\n prefix: 'fab',\n iconName: 'alipay',\n icon: [448, 512, [], \"f642\", \"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"]\n};\nconst faYoutube = {\n prefix: 'fab',\n iconName: 'youtube',\n icon: [576, 512, [61802], \"f167\", \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"]\n};\nconst faSkyatlas = {\n prefix: 'fab',\n iconName: 'skyatlas',\n icon: [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"]\n};\nconst faFirefoxBrowser = {\n prefix: 'fab',\n iconName: 'firefox-browser',\n icon: [512, 512, [], \"e007\", \"M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z\"]\n};\nconst faReplyd = {\n prefix: 'fab',\n iconName: 'replyd',\n icon: [448, 512, [], \"f3e6\", \"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"]\n};\nconst faSuse = {\n prefix: 'fab',\n iconName: 'suse',\n icon: [640, 512, [], \"f7d6\", \"M593.1 192.6A10.4 10.4 0 1 1 604.5 210a10.4 10.4 0 1 1 -11.4-17.4zm-47.1 12.2a38.5 38.5 0 1 1 75-17.6 38.5 38.5 0 1 1 -75 17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4c1 3.1 2.4 7.3 5.5 8.9c.2 .1 .3 .2 .5 .2c5.7 2.1 20.3 1.7 20.3 1.7h26.8c2.3 0 22.4 0 21.9-2.3c-2.4-10.8-14.9-12.7-24.4-18.3c-8.7-5.2-17-11.1-20.8-21.3c-2-5.2-.8-17.4 2.6-21.8c2.5-3.2 6.1-5.3 10-6.2c4.3-.9 8.8-.1 13.1 .3c5.3 .5 10.6 1.5 15.9 2.2c10.3 1.3 20.6 1.9 31 1.6c17.1-.5 34.2-3.2 50.4-8.7c11.3-3.8 22.4-8.9 32-16.1c10.9-8.1 8.1-7.4-3-6.2c-13.3 1.4-26.6 1.6-39.9 .8c-12.4-.7-24.7-2.2-35.9-7.9c-8.8-4.6-16.4-9.1-23.4-16.2c-1-1.1-1.7-4.2 .2-6.2c1.9-1.9 5.8-.8 7 .2c12.2 10.2 30.5 18.6 49.3 19.5c10.2 .5 20.1 .7 30.4 .3c5.1-.2 12.8-.2 17.9-.3c2.6 0 9.8 .7 11.2-2.1c.4-.8 .4-1.8 .3-2.7c-1.5-40.9-4.5-86.9-47.3-106.5c-31.9-14.6-79.7-37.2-99.9-46.6c-4.7-2.2-10.2 1.3-10.2 6.5c0 13.6 .7 33.3 .7 51.1c-9.7-9.9-26-16.1-38.4-21.8c-14.1-6.5-28.7-12-43.5-16.6c-29.8-9.2-60.7-14.9-91.7-18c-35.2-3.5-71-1.8-105.7 5.3C147 115.1 90.8 142.6 48.2 182.7C22.1 207.3 1.6 242.4 .2 277.9c-2 50.3 12.1 77.3 38 105.2c41.3 44.4 130.2 50.6 166.2-2c16.2-23.7 19.7-55.8 8-82c-11.8-26.2-38.8-45.1-67.4-46c-22.2-.7-45.9 10.6-54.5 31.1c-6.5 15.7-2.8 35.1 9 47.3c4.6 4.8 10.9 8.7 17.7 7.1c4-.9 7.4-3.9 8-8c.9-6-4.4-9.9-7.6-14.5c-5.8-8.3-4.7-20.9 2.7-27.9c6.2-6 15.3-7.8 23.9-7.7c8 0 16.2 1.4 23.1 5.5c9.7 5.7 16.2 16.2 18.4 27.2c6.7 33-20.2 59.9-56.6 62c-18.6 1.1-37.6-3.8-52.1-15.5C40.1 329.9 31.1 269.4 73.2 237c40-30.7 90.4-22.8 120.2-6.8c23.8 12.8 41.5 33.6 55 56.7c6.7 11.6 12.5 23.7 17.8 36.1c5.1 11.8 9.9 23.8 20.2 32.5c6.8 5.8 15.2 5.6 24.1 5.6h50.8c6.9 0 5.2-4.6 2.2-7.7c-6.7-6.9-16.4-8.4-25.4-10.9c-20.5-5.6-18.4-32.8-12.7-32.8c18.3 0 18.9 .6 34.9 .3c23.2-.3 30.2-1.7 48.3 5c9.7 3.6 19 13.1 25.1 21.7z\"]\n};\nconst faJenkins = {\n prefix: 'fab',\n iconName: 'jenkins',\n icon: [512, 512, [], \"f3b6\", \"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"]\n};\nconst faTwitter = {\n prefix: 'fab',\n iconName: 'twitter',\n icon: [512, 512, [], \"f099\", \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"]\n};\nconst faRockrms = {\n prefix: 'fab',\n iconName: 'rockrms',\n icon: [496, 512, [], \"f3e9\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"]\n};\nconst faPinterest = {\n prefix: 'fab',\n iconName: 'pinterest',\n icon: [496, 512, [], \"f0d2\", \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"]\n};\nconst faBuffer = {\n prefix: 'fab',\n iconName: 'buffer',\n icon: [448, 512, [], \"f837\", \"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"]\n};\nconst faNpm = {\n prefix: 'fab',\n iconName: 'npm',\n icon: [576, 512, [], \"f3d4\", \"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"]\n};\nconst faYammer = {\n prefix: 'fab',\n iconName: 'yammer',\n icon: [512, 512, [], \"f840\", \"M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z\"]\n};\nconst faBtc = {\n prefix: 'fab',\n iconName: 'btc',\n icon: [384, 512, [], \"f15a\", \"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"]\n};\nconst faDribbble = {\n prefix: 'fab',\n iconName: 'dribbble',\n icon: [512, 512, [], \"f17d\", \"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"]\n};\nconst faStumbleuponCircle = {\n prefix: 'fab',\n iconName: 'stumbleupon-circle',\n icon: [496, 512, [], \"f1a3\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"]\n};\nconst faInternetExplorer = {\n prefix: 'fab',\n iconName: 'internet-explorer',\n icon: [512, 512, [], \"f26b\", \"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"]\n};\nconst faStubber = {\n prefix: 'fab',\n iconName: 'stubber',\n icon: [448, 512, [], \"e5c7\", \"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z\"]\n};\nconst faTelegram = {\n prefix: 'fab',\n iconName: 'telegram',\n icon: [496, 512, [62462, \"telegram-plane\"], \"f2c6\", \"M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z\"]\n};\nconst faTelegramPlane = faTelegram;\nconst faOldRepublic = {\n prefix: 'fab',\n iconName: 'old-republic',\n icon: [496, 512, [], \"f510\", \"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"]\n};\nconst faOdysee = {\n prefix: 'fab',\n iconName: 'odysee',\n icon: [512, 512, [], \"e5c6\", \"M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z\"]\n};\nconst faSquareWhatsapp = {\n prefix: 'fab',\n iconName: 'square-whatsapp',\n icon: [448, 512, [\"whatsapp-square\"], \"f40c\", \"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6L152 365.2l4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8c0-35.2-15.2-68.3-40.1-93.2c-25-25-58-38.7-93.2-38.7c-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9c-36.8-15.9-61.8-51.5-66.9-58.7c-.4-.6-.7-.9-.8-1.1c-2-2.6-16.2-21.5-16.2-41c0-18.4 9-27.9 13.2-32.3c.3-.3 .5-.5 .7-.8c3.6-4 7.9-5 10.6-5c2.6 0 5.3 0 7.6 .1c.3 0 .5 0 .8 0c2.3 0 5.2 0 8.1 6.8c1.2 2.9 3 7.3 4.9 11.8c3.3 8 6.7 16.3 7.3 17.6c1 2 1.7 4.3 .3 6.9c-3.4 6.8-6.9 10.4-9.3 13c-3.1 3.2-4.5 4.7-2.3 8.6c15.3 26.3 30.6 35.4 53.9 47.1c4 2 6.3 1.7 8.6-1c2.3-2.6 9.9-11.6 12.5-15.5c2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1c2.8 1.4 4.7 2.3 5.5 3.6c.9 1.9 .9 9.9-2.4 19.1c-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM148.1 393.9L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5c29.9 30 47.9 69.8 47.9 112.2c0 87.4-72.7 158.5-160.1 158.5c-26.6 0-52.7-6.7-75.8-19.3z\"]\n};\nconst faWhatsappSquare = faSquareWhatsapp;\nconst faNodeJs = {\n prefix: 'fab',\n iconName: 'node-js',\n icon: [448, 512, [], \"f3d3\", \"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"]\n};\nconst faEdgeLegacy = {\n prefix: 'fab',\n iconName: 'edge-legacy',\n icon: [512, 512, [], \"e078\", \"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"]\n};\nconst faSlack = {\n prefix: 'fab',\n iconName: 'slack',\n icon: [448, 512, [62447, \"slack-hash\"], \"f198\", \"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"]\n};\nconst faSlackHash = faSlack;\nconst faMedrt = {\n prefix: 'fab',\n iconName: 'medrt',\n icon: [544, 512, [], \"f3c8\", \"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"]\n};\nconst faUsb = {\n prefix: 'fab',\n iconName: 'usb',\n icon: [640, 512, [], \"f287\", \"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"]\n};\nconst faTumblr = {\n prefix: 'fab',\n iconName: 'tumblr',\n icon: [320, 512, [], \"f173\", \"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"]\n};\nconst faVaadin = {\n prefix: 'fab',\n iconName: 'vaadin',\n icon: [448, 512, [], \"f408\", \"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"]\n};\nconst faQuora = {\n prefix: 'fab',\n iconName: 'quora',\n icon: [448, 512, [], \"f2c4\", \"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"]\n};\nconst faSquareXTwitter = {\n prefix: 'fab',\n iconName: 'square-x-twitter',\n icon: [448, 512, [], \"e61a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z\"]\n};\nconst faReacteurope = {\n prefix: 'fab',\n iconName: 'reacteurope',\n icon: [576, 512, [], \"f75d\", \"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"]\n};\nconst faMedium = {\n prefix: 'fab',\n iconName: 'medium',\n icon: [640, 512, [62407, \"medium-m\"], \"f23a\", \"M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z\"]\n};\nconst faMediumM = faMedium;\nconst faAmilia = {\n prefix: 'fab',\n iconName: 'amilia',\n icon: [448, 512, [], \"f36d\", \"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"]\n};\nconst faMixcloud = {\n prefix: 'fab',\n iconName: 'mixcloud',\n icon: [640, 512, [], \"f289\", \"M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z\"]\n};\nconst faFlipboard = {\n prefix: 'fab',\n iconName: 'flipboard',\n icon: [448, 512, [], \"f44d\", \"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"]\n};\nconst faViacoin = {\n prefix: 'fab',\n iconName: 'viacoin',\n icon: [384, 512, [], \"f237\", \"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"]\n};\nconst faCriticalRole = {\n prefix: 'fab',\n iconName: 'critical-role',\n icon: [448, 512, [], \"f6c9\", \"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"]\n};\nconst faSitrox = {\n prefix: 'fab',\n iconName: 'sitrox',\n icon: [448, 512, [], \"e44a\", \"M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z\"]\n};\nconst faDiscourse = {\n prefix: 'fab',\n iconName: 'discourse',\n icon: [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"]\n};\nconst faJoomla = {\n prefix: 'fab',\n iconName: 'joomla',\n icon: [448, 512, [], \"f1aa\", \"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"]\n};\nconst faMastodon = {\n prefix: 'fab',\n iconName: 'mastodon',\n icon: [448, 512, [], \"f4f6\", \"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"]\n};\nconst faAirbnb = {\n prefix: 'fab',\n iconName: 'airbnb',\n icon: [448, 512, [], \"f834\", \"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"]\n};\nconst faWolfPackBattalion = {\n prefix: 'fab',\n iconName: 'wolf-pack-battalion',\n icon: [512, 512, [], \"f514\", \"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"]\n};\nconst faBuyNLarge = {\n prefix: 'fab',\n iconName: 'buy-n-large',\n icon: [576, 512, [], \"f8a6\", \"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"]\n};\nconst faGulp = {\n prefix: 'fab',\n iconName: 'gulp',\n icon: [256, 512, [], \"f3ae\", \"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"]\n};\nconst faCreativeCommonsSamplingPlus = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling-plus',\n icon: [496, 512, [], \"f4f1\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"]\n};\nconst faStrava = {\n prefix: 'fab',\n iconName: 'strava',\n icon: [384, 512, [], \"f428\", \"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"]\n};\nconst faEmber = {\n prefix: 'fab',\n iconName: 'ember',\n icon: [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"]\n};\nconst faCanadianMapleLeaf = {\n prefix: 'fab',\n iconName: 'canadian-maple-leaf',\n icon: [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"]\n};\nconst faTeamspeak = {\n prefix: 'fab',\n iconName: 'teamspeak',\n icon: [576, 512, [], \"f4f9\", \"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z\"]\n};\nconst faPushed = {\n prefix: 'fab',\n iconName: 'pushed',\n icon: [432, 512, [], \"f3e1\", \"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"]\n};\nconst faWordpressSimple = {\n prefix: 'fab',\n iconName: 'wordpress-simple',\n icon: [512, 512, [], \"f411\", \"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"]\n};\nconst faNutritionix = {\n prefix: 'fab',\n iconName: 'nutritionix',\n icon: [400, 512, [], \"f3d6\", \"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"]\n};\nconst faWodu = {\n prefix: 'fab',\n iconName: 'wodu',\n icon: [640, 512, [], \"e088\", \"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"]\n};\nconst faGooglePay = {\n prefix: 'fab',\n iconName: 'google-pay',\n icon: [640, 512, [], \"e079\", \"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"]\n};\nconst faIntercom = {\n prefix: 'fab',\n iconName: 'intercom',\n icon: [448, 512, [], \"f7af\", \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"]\n};\nconst faZhihu = {\n prefix: 'fab',\n iconName: 'zhihu',\n icon: [640, 512, [], \"f63f\", \"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"]\n};\nconst faKorvue = {\n prefix: 'fab',\n iconName: 'korvue',\n icon: [446, 512, [], \"f42f\", \"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"]\n};\nconst faPix = {\n prefix: 'fab',\n iconName: 'pix',\n icon: [512, 512, [], \"e43a\", \"M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z\"]\n};\nconst faSteamSymbol = {\n prefix: 'fab',\n iconName: 'steam-symbol',\n icon: [448, 512, [], \"f3f6\", \"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"]\n};\nvar icons = {\n faMonero,\n faHooli,\n faYelp,\n faCcVisa,\n faLastfm,\n faShopware,\n faCreativeCommonsNc,\n faAws,\n faRedhat,\n faYoast,\n faCloudflare,\n faUps,\n faPixiv,\n faWpexplorer,\n faDyalog,\n faBity,\n faStackpath,\n faBuysellads,\n faFirstOrder,\n faModx,\n faGuilded,\n faVnv,\n faSquareJs,\n faJsSquare,\n faMicrosoft,\n faQq,\n faOrcid,\n faJava,\n faInvision,\n faCreativeCommonsPdAlt,\n faCentercode,\n faGlideG,\n faDrupal,\n faJxl,\n faDartLang,\n faHireAHelper,\n faCreativeCommonsBy,\n faUnity,\n faWhmcs,\n faRocketchat,\n faVk,\n faUntappd,\n faMailchimp,\n faCss3Alt,\n faSquareReddit,\n faRedditSquare,\n faVimeoV,\n faContao,\n faSquareFontAwesome,\n faDeskpro,\n faBrave,\n faSistrix,\n faSquareInstagram,\n faInstagramSquare,\n faBattleNet,\n faTheRedYeti,\n faSquareHackerNews,\n faHackerNewsSquare,\n faEdge,\n faThreads,\n faNapster,\n faSquareSnapchat,\n faSnapchatSquare,\n faGooglePlusG,\n faArtstation,\n faMarkdown,\n faSourcetree,\n faGooglePlus,\n faDiaspora,\n faFoursquare,\n faStackOverflow,\n faGithubAlt,\n faPhoenixSquadron,\n faPagelines,\n faAlgolia,\n faRedRiver,\n faCreativeCommonsSa,\n faSafari,\n faGoogle,\n faSquareFontAwesomeStroke,\n faFontAwesomeAlt,\n faAtlassian,\n faLinkedinIn,\n faDigitalOcean,\n faNimblr,\n faChromecast,\n faEvernote,\n faHackerNews,\n faCreativeCommonsSampling,\n faAdversal,\n faCreativeCommons,\n faWatchmanMonitoring,\n faFonticons,\n faWeixin,\n faShirtsinbulk,\n faCodepen,\n faGitAlt,\n faLyft,\n faRev,\n faWindows,\n faWizardsOfTheCoast,\n faSquareViadeo,\n faViadeoSquare,\n faMeetup,\n faCentos,\n faAdn,\n faCloudsmith,\n faOpensuse,\n faPiedPiperAlt,\n faSquareDribbble,\n faDribbbleSquare,\n faCodiepie,\n faNode,\n faMix,\n faSteam,\n faCcApplePay,\n faScribd,\n faDebian,\n faOpenid,\n faInstalod,\n faFilesPinwheel,\n faExpeditedssl,\n faSellcast,\n faSquareTwitter,\n faTwitterSquare,\n faRProject,\n faDelicious,\n faFreebsd,\n faVuejs,\n faAccusoft,\n faIoxhost,\n faFonticonsFi,\n faAppStore,\n faCcMastercard,\n faItunesNote,\n faGolang,\n faKickstarter,\n faSquareKickstarter,\n faGrav,\n faWeibo,\n faUncharted,\n faFirstdraft,\n faSquareYoutube,\n faYoutubeSquare,\n faWikipediaW,\n faWpressr,\n faRendact,\n faAngellist,\n faGalacticRepublic,\n faNfcDirectional,\n faSkype,\n faJoget,\n faFedora,\n faStripeS,\n faMeta,\n faLaravel,\n faHotjar,\n faBluetoothB,\n faSquareLetterboxd,\n faStickerMule,\n faCreativeCommonsZero,\n faHips,\n faCss,\n faBehance,\n faReddit,\n faDiscord,\n faChrome,\n faAppStoreIos,\n faCcDiscover,\n faWpbeginner,\n faConfluence,\n faShoelace,\n faMdb,\n faDochub,\n faAccessibleIcon,\n faEbay,\n faAmazon,\n faUnsplash,\n faYarn,\n faSquareSteam,\n faSteamSquare,\n fa500px,\n faSquareVimeo,\n faVimeoSquare,\n faAsymmetrik,\n faFontAwesome,\n faFontAwesomeFlag,\n faFontAwesomeLogoFull,\n faGratipay,\n faApple,\n faHive,\n faGitkraken,\n faKeybase,\n faApplePay,\n faPadlet,\n faAmazonPay,\n faSquareGithub,\n faGithubSquare,\n faStumbleupon,\n faFedex,\n faPhoenixFramework,\n faShopify,\n faNeos,\n faSquareThreads,\n faHackerrank,\n faResearchgate,\n faSwift,\n faAngular,\n faSpeakap,\n faAngrycreative,\n faYCombinator,\n faEmpire,\n faEnvira,\n faGoogleScholar,\n faSquareGitlab,\n faGitlabSquare,\n faStudiovinari,\n faPiedPiper,\n faWordpress,\n faProductHunt,\n faFirefox,\n faLinode,\n faGoodreads,\n faSquareOdnoklassniki,\n faOdnoklassnikiSquare,\n faJsfiddle,\n faSith,\n faThemeisle,\n faPage4,\n faHashnode,\n faReact,\n faCcPaypal,\n faSquarespace,\n faCcStripe,\n faCreativeCommonsShare,\n faBitcoin,\n faKeycdn,\n faOpera,\n faItchIo,\n faUmbraco,\n faGalacticSenate,\n faUbuntu,\n faDraft2digital,\n faStripe,\n faHouzz,\n faGg,\n faDhl,\n faSquarePinterest,\n faPinterestSquare,\n faXing,\n faBlackberry,\n faCreativeCommonsPd,\n faPlaystation,\n faQuinscape,\n faLess,\n faBloggerB,\n faOpencart,\n faVine,\n faSignalMessenger,\n faPaypal,\n faGitlab,\n faTypo3,\n faRedditAlien,\n faYahoo,\n faDailymotion,\n faAffiliatetheme,\n faPiedPiperPp,\n faBootstrap,\n faOdnoklassniki,\n faNfcSymbol,\n faMintbit,\n faEthereum,\n faSpeakerDeck,\n faCreativeCommonsNcEu,\n faPatreon,\n faAvianex,\n faEllo,\n faGofore,\n faBimobject,\n faBraveReverse,\n faFacebookF,\n faSquareGooglePlus,\n faGooglePlusSquare,\n faWebAwesome,\n faMandalorian,\n faFirstOrderAlt,\n faOsi,\n faGoogleWallet,\n faDAndDBeyond,\n faPeriscope,\n faFulcrum,\n faCloudscale,\n faForumbee,\n faMizuni,\n faSchlix,\n faSquareXing,\n faXingSquare,\n faBandcamp,\n faWpforms,\n faCloudversify,\n faUsps,\n faMegaport,\n faMagento,\n faSpotify,\n faOptinMonster,\n faFly,\n faSquareBluesky,\n faAviato,\n faItunes,\n faCuttlefish,\n faBlogger,\n faFlickr,\n faViber,\n faSoundcloud,\n faDigg,\n faTencentWeibo,\n faLetterboxd,\n faSymfony,\n faMaxcdn,\n faEtsy,\n faFacebookMessenger,\n faAudible,\n faThinkPeaks,\n faBilibili,\n faErlang,\n faXTwitter,\n faCottonBureau,\n faDashcube,\n fa42Group,\n faInnosoft,\n faStackExchange,\n faElementor,\n faSquarePiedPiper,\n faPiedPiperSquare,\n faCreativeCommonsNd,\n faPalfed,\n faSuperpowers,\n faResolving,\n faXbox,\n faSquareWebAwesomeStroke,\n faSearchengin,\n faTiktok,\n faSquareFacebook,\n faFacebookSquare,\n faRenren,\n faLinux,\n faGlide,\n faLinkedin,\n faHubspot,\n faDeploydog,\n faTwitch,\n faFlutter,\n faRavelry,\n faMixer,\n faSquareLastfm,\n faLastfmSquare,\n faVimeo,\n faMendeley,\n faUniregistry,\n faFigma,\n faCreativeCommonsRemix,\n faCcAmazonPay,\n faDropbox,\n faInstagram,\n faCmplid,\n faUpwork,\n faFacebook,\n faGripfire,\n faJediOrder,\n faUikit,\n faFortAwesomeAlt,\n faPhabricator,\n faUssunnah,\n faEarlybirds,\n faTradeFederation,\n faAutoprefixer,\n faWhatsapp,\n faSquareUpwork,\n faSlideshare,\n faGooglePlay,\n faViadeo,\n faLine,\n faGoogleDrive,\n faServicestack,\n faSimplybuilt,\n faBitbucket,\n faImdb,\n faDeezer,\n faRaspberryPi,\n faJira,\n faDocker,\n faScreenpal,\n faBluetooth,\n faGitter,\n faDAndD,\n faMicroblog,\n faCcDinersClub,\n faGgCircle,\n faPiedPiperHat,\n faKickstarterK,\n faYandex,\n faReadme,\n faHtml5,\n faSellsy,\n faSquareWebAwesome,\n faSass,\n faWirsindhandwerk,\n faWsh,\n faBuromobelexperte,\n faSalesforce,\n faOctopusDeploy,\n faMedapps,\n faNs8,\n faPinterestP,\n faApper,\n faFortAwesome,\n faWaze,\n faBluesky,\n faCcJcb,\n faSnapchat,\n faSnapchatGhost,\n faFantasyFlightGames,\n faRust,\n faWix,\n faSquareBehance,\n faBehanceSquare,\n faSupple,\n faWebflow,\n faRebel,\n faCss3,\n faStaylinked,\n faKaggle,\n faSpaceAwesome,\n faDeviantart,\n faCpanel,\n faGoodreadsG,\n faSquareGit,\n faGitSquare,\n faSquareTumblr,\n faTumblrSquare,\n faTrello,\n faCreativeCommonsNcJp,\n faGetPocket,\n faPerbyte,\n faGrunt,\n faWeebly,\n faConnectdevelop,\n faLeanpub,\n faBlackTie,\n faThemeco,\n faPython,\n faAndroid,\n faBots,\n faFreeCodeCamp,\n faHornbill,\n faJs,\n faIdeal,\n faGit,\n faDev,\n faSketch,\n faYandexInternational,\n faCcAmex,\n faUber,\n faGithub,\n faPhp,\n faAlipay,\n faYoutube,\n faSkyatlas,\n faFirefoxBrowser,\n faReplyd,\n faSuse,\n faJenkins,\n faTwitter,\n faRockrms,\n faPinterest,\n faBuffer,\n faNpm,\n faYammer,\n faBtc,\n faDribbble,\n faStumbleuponCircle,\n faInternetExplorer,\n faStubber,\n faTelegram,\n faTelegramPlane,\n faOldRepublic,\n faOdysee,\n faSquareWhatsapp,\n faWhatsappSquare,\n faNodeJs,\n faEdgeLegacy,\n faSlack,\n faSlackHash,\n faMedrt,\n faUsb,\n faTumblr,\n faVaadin,\n faQuora,\n faSquareXTwitter,\n faReacteurope,\n faMedium,\n faMediumM,\n faAmilia,\n faMixcloud,\n faFlipboard,\n faViacoin,\n faCriticalRole,\n faSitrox,\n faDiscourse,\n faJoomla,\n faMastodon,\n faAirbnb,\n faWolfPackBattalion,\n faBuyNLarge,\n faGulp,\n faCreativeCommonsSamplingPlus,\n faStrava,\n faEmber,\n faCanadianMapleLeaf,\n faTeamspeak,\n faPushed,\n faWordpressSimple,\n faNutritionix,\n faWodu,\n faGooglePay,\n faIntercom,\n faZhihu,\n faKorvue,\n faPix,\n faSteamSymbol\n};\n\nexport { icons as fab, prefix, faMonero, faHooli, faYelp, faCcVisa, faLastfm, faShopware, faCreativeCommonsNc, faAws, faRedhat, faYoast, faCloudflare, faUps, faPixiv, faWpexplorer, faDyalog, faBity, faStackpath, faBuysellads, faFirstOrder, faModx, faGuilded, faVnv, faSquareJs, faJsSquare, faMicrosoft, faQq, faOrcid, faJava, faInvision, faCreativeCommonsPdAlt, faCentercode, faGlideG, faDrupal, faJxl, faDartLang, faHireAHelper, faCreativeCommonsBy, faUnity, faWhmcs, faRocketchat, faVk, faUntappd, faMailchimp, faCss3Alt, faSquareReddit, faRedditSquare, faVimeoV, faContao, faSquareFontAwesome, faDeskpro, faBrave, faSistrix, faSquareInstagram, faInstagramSquare, faBattleNet, faTheRedYeti, faSquareHackerNews, faHackerNewsSquare, faEdge, faThreads, faNapster, faSquareSnapchat, faSnapchatSquare, faGooglePlusG, faArtstation, faMarkdown, faSourcetree, faGooglePlus, faDiaspora, faFoursquare, faStackOverflow, faGithubAlt, faPhoenixSquadron, faPagelines, faAlgolia, faRedRiver, faCreativeCommonsSa, faSafari, faGoogle, faSquareFontAwesomeStroke, faFontAwesomeAlt, faAtlassian, faLinkedinIn, faDigitalOcean, faNimblr, faChromecast, faEvernote, faHackerNews, faCreativeCommonsSampling, faAdversal, faCreativeCommons, faWatchmanMonitoring, faFonticons, faWeixin, faShirtsinbulk, faCodepen, faGitAlt, faLyft, faRev, faWindows, faWizardsOfTheCoast, faSquareViadeo, faViadeoSquare, faMeetup, faCentos, faAdn, faCloudsmith, faOpensuse, faPiedPiperAlt, faSquareDribbble, faDribbbleSquare, faCodiepie, faNode, faMix, faSteam, faCcApplePay, faScribd, faDebian, faOpenid, faInstalod, faFilesPinwheel, faExpeditedssl, faSellcast, faSquareTwitter, faTwitterSquare, faRProject, faDelicious, faFreebsd, faVuejs, faAccusoft, faIoxhost, faFonticonsFi, faAppStore, faCcMastercard, faItunesNote, faGolang, faKickstarter, faSquareKickstarter, faGrav, faWeibo, faUncharted, faFirstdraft, faSquareYoutube, faYoutubeSquare, faWikipediaW, faWpressr, faRendact, faAngellist, faGalacticRepublic, faNfcDirectional, faSkype, faJoget, faFedora, faStripeS, faMeta, faLaravel, faHotjar, faBluetoothB, faSquareLetterboxd, faStickerMule, faCreativeCommonsZero, faHips, faCss, faBehance, faReddit, faDiscord, faChrome, faAppStoreIos, faCcDiscover, faWpbeginner, faConfluence, faShoelace, faMdb, faDochub, faAccessibleIcon, faEbay, faAmazon, faUnsplash, faYarn, faSquareSteam, faSteamSquare, fa500px, faSquareVimeo, faVimeoSquare, faAsymmetrik, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faGratipay, faApple, faHive, faGitkraken, faKeybase, faApplePay, faPadlet, faAmazonPay, faSquareGithub, faGithubSquare, faStumbleupon, faFedex, faPhoenixFramework, faShopify, faNeos, faSquareThreads, faHackerrank, faResearchgate, faSwift, faAngular, faSpeakap, faAngrycreative, faYCombinator, faEmpire, faEnvira, faGoogleScholar, faSquareGitlab, faGitlabSquare, faStudiovinari, faPiedPiper, faWordpress, faProductHunt, faFirefox, faLinode, faGoodreads, faSquareOdnoklassniki, faOdnoklassnikiSquare, faJsfiddle, faSith, faThemeisle, faPage4, faHashnode, faReact, faCcPaypal, faSquarespace, faCcStripe, faCreativeCommonsShare, faBitcoin, faKeycdn, faOpera, faItchIo, faUmbraco, faGalacticSenate, faUbuntu, faDraft2digital, faStripe, faHouzz, faGg, faDhl, faSquarePinterest, faPinterestSquare, faXing, faBlackberry, faCreativeCommonsPd, faPlaystation, faQuinscape, faLess, faBloggerB, faOpencart, faVine, faSignalMessenger, faPaypal, faGitlab, faTypo3, faRedditAlien, faYahoo, faDailymotion, faAffiliatetheme, faPiedPiperPp, faBootstrap, faOdnoklassniki, faNfcSymbol, faMintbit, faEthereum, faSpeakerDeck, faCreativeCommonsNcEu, faPatreon, faAvianex, faEllo, faGofore, faBimobject, faBraveReverse, faFacebookF, faSquareGooglePlus, faGooglePlusSquare, faWebAwesome, faMandalorian, faFirstOrderAlt, faOsi, faGoogleWallet, faDAndDBeyond, faPeriscope, faFulcrum, faCloudscale, faForumbee, faMizuni, faSchlix, faSquareXing, faXingSquare, faBandcamp, faWpforms, faCloudversify, faUsps, faMegaport, faMagento, faSpotify, faOptinMonster, faFly, faSquareBluesky, faAviato, faItunes, faCuttlefish, faBlogger, faFlickr, faViber, faSoundcloud, faDigg, faTencentWeibo, faLetterboxd, faSymfony, faMaxcdn, faEtsy, faFacebookMessenger, faAudible, faThinkPeaks, faBilibili, faErlang, faXTwitter, faCottonBureau, faDashcube, fa42Group, faInnosoft, faStackExchange, faElementor, faSquarePiedPiper, faPiedPiperSquare, faCreativeCommonsNd, faPalfed, faSuperpowers, faResolving, faXbox, faSquareWebAwesomeStroke, faSearchengin, faTiktok, faSquareFacebook, faFacebookSquare, faRenren, faLinux, faGlide, faLinkedin, faHubspot, faDeploydog, faTwitch, faFlutter, faRavelry, faMixer, faSquareLastfm, faLastfmSquare, faVimeo, faMendeley, faUniregistry, faFigma, faCreativeCommonsRemix, faCcAmazonPay, faDropbox, faInstagram, faCmplid, faUpwork, faFacebook, faGripfire, faJediOrder, faUikit, faFortAwesomeAlt, faPhabricator, faUssunnah, faEarlybirds, faTradeFederation, faAutoprefixer, faWhatsapp, faSquareUpwork, faSlideshare, faGooglePlay, faViadeo, faLine, faGoogleDrive, faServicestack, faSimplybuilt, faBitbucket, faImdb, faDeezer, faRaspberryPi, faJira, faDocker, faScreenpal, faBluetooth, faGitter, faDAndD, faMicroblog, faCcDinersClub, faGgCircle, faPiedPiperHat, faKickstarterK, faYandex, faReadme, faHtml5, faSellsy, faSquareWebAwesome, faSass, faWirsindhandwerk, faWsh, faBuromobelexperte, faSalesforce, faOctopusDeploy, faMedapps, faNs8, faPinterestP, faApper, faFortAwesome, faWaze, faBluesky, faCcJcb, faSnapchat, faSnapchatGhost, faFantasyFlightGames, faRust, faWix, faSquareBehance, faBehanceSquare, faSupple, faWebflow, faRebel, faCss3, faStaylinked, faKaggle, faSpaceAwesome, faDeviantart, faCpanel, faGoodreadsG, faSquareGit, faGitSquare, faSquareTumblr, faTumblrSquare, faTrello, faCreativeCommonsNcJp, faGetPocket, faPerbyte, faGrunt, faWeebly, faConnectdevelop, faLeanpub, faBlackTie, faThemeco, faPython, faAndroid, faBots, faFreeCodeCamp, faHornbill, faJs, faIdeal, faGit, faDev, faSketch, faYandexInternational, faCcAmex, faUber, faGithub, faPhp, faAlipay, faYoutube, faSkyatlas, faFirefoxBrowser, faReplyd, faSuse, faJenkins, faTwitter, faRockrms, faPinterest, faBuffer, faNpm, faYammer, faBtc, faDribbble, faStumbleuponCircle, faInternetExplorer, faStubber, faTelegram, faTelegramPlane, faOldRepublic, faOdysee, faSquareWhatsapp, faWhatsappSquare, faNodeJs, faEdgeLegacy, faSlack, faSlackHash, faMedrt, faUsb, faTumblr, faVaadin, faQuora, faSquareXTwitter, faReacteurope, faMedium, faMediumM, faAmilia, faMixcloud, faFlipboard, faViacoin, faCriticalRole, faSitrox, faDiscourse, faJoomla, faMastodon, faAirbnb, faWolfPackBattalion, faBuyNLarge, faGulp, faCreativeCommonsSamplingPlus, faStrava, faEmber, faCanadianMapleLeaf, faTeamspeak, faPushed, faWordpressSimple, faNutritionix, faWodu, faGooglePay, faIntercom, faZhihu, faKorvue, faPix, faSteamSymbol };\n","import React from 'react';\nimport { Modal, ModalBody, ModalHeader, Tooltip } from 'reactstrap';\nimport {\n Block,\n BlockHead,\n BlockHeadContent,\n BlockTitle,\n Row,\n Col,\n UserAvatar,\n} from '../../../../components/Component';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';\nimport { parseDateToString } from '../../../../utils/date.util';\nimport Badge from '../../../../components/badge/Badge';\nimport { faLinkedin, faLinkedinIn } from '@fortawesome/free-brands-svg-icons';\n\ninterface JobModalProps {\n job: any; // Substituir por tipagem mais específica, se necessário.\n isOpen: boolean;\n toggle: () => void;\n}\n\n// Função utilitária para formatar o texto da descrição\nconst formatDescription = (description: string): string[] => {\n if (!description) return [];\n return description\n .split('\\n')\n .map(line => line.trim())\n .filter(line => line.length > 0);\n};\n\nconst JobDetailsModal: React.FC = ({ job, isOpen, toggle }) => {\n const formattedDescription = formatDescription(job.description);\n\n return (\n \n Job Information\n \n {/* Job Details */}\n \n \n \n
      \n \n {job.title}\n \n \n
      \n
      \n \n
      \n {job.timePosted ? (\n \n ) : (\n <>\n )}\n\n {job.salary && (\n \n )}\n\n {job.employmentType && (\n \n )}\n\n {job.location && (\n \n )}\n
      \n
      \n
      \n
      \n\n {/* Company Details */}\n \n \n \n Company\n \n \n \n \n
      \n \n {job.companyUrl && (\n \n \n {job.company?.name}\n \n \n )}\n \n
      \n {job.company?.size && (\n \n )}\n {job.company?.industry && (\n \n )}\n
      \n
      \n \n
      \n
      \n\n {/* Job Description */}\n \n \n \n Job Description\n \n \n \n {formattedDescription.map((paragraph, index) => (\n

      \n {paragraph}\n

      \n ))}\n \n
      \n
      \n \n );\n};\n\nexport default JobDetailsModal;\n","import React from 'react';\nimport { Modal, ModalBody, ModalHeader } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faExternalLinkAlt, faLink } from '@fortawesome/free-solid-svg-icons';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\nimport Badge from '../../../components/badge/Badge';\n\ninterface CompanyModalProps {\n company: any; // Substituir por tipagem mais específica, se necessário.\n isOpen: boolean;\n toggle: () => void;\n}\n\n// Função utilitária para formatar o texto da descrição\nconst formatDescription = (description: string): string[] => {\n if (!description) return [];\n return description\n .split('\\n')\n .map(line => line.trim())\n .filter(line => line.length > 0);\n};\n\nconst CompanyDetailsModal: React.FC = ({\n company,\n isOpen,\n toggle,\n}) => {\n const formattedDescription = formatDescription(company.description);\n\n return (\n \n \n
      \n {company.imageUrl && (\n \n )}\n

      Company Information

      \n
      \n
      \n\n {company && (\n \n {/* Company Overview */}\n
      \n

      {company.name}

      \n
      \n {company.links &&\n company.links\n // Filtra os links para excluir títulos como \"crunchbase\"\n .filter(\n (link: any) => link.title.toLowerCase() !== 'crunchbase',\n )\n // Remove duplicados com base no URL\n .filter(\n (link: any, index: number, self: any[]) =>\n index === self.findIndex(l => l.url === link.url),\n )\n // Mapeia os links filtrados para renderização\n .map((link: any, index: number) => (\n \n {link.title === 'linkedin' ? (\n \n ) : link.title === 'website' ? (\n \n ) : (\n \n )}\n {link.title}\n \n ))}\n
      \n
      \n\n {/* Company Details */}\n
      \n

      Details

      \n
      \n
      \n {company.size && (\n
      \n \n
      \n )}\n {company.industry && (\n
      \n \n
      \n )}\n
      \n
      \n {company.phone && (\n
      \n {company.phone}\n
      \n )}\n {company.email && (\n
      \n \n {company.email}\n \n
      \n )}\n
      \n
      \n
      \n\n {/* Company Description */}\n {company.description && (\n
      \n

      Description

      \n
      \n {formattedDescription.map((paragraph, index) => (\n

      {paragraph}

      \n ))}\n
      \n
      \n )}\n\n {/* Fallback for No Data */}\n {!company.size &&\n !company.industry &&\n !company.description &&\n !company.phone &&\n !company.email && (\n
      \n

      No Data Available

      \n
      \n )}\n
      \n )}\n \n );\n};\n\nexport default CompanyDetailsModal;\n","var _excluded = [\"className\", \"cssModule\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction ModalFooter(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'modal-footer'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nModalFooter.propTypes = propTypes;\nexport default ModalFooter;","/*!\n * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\nconst prefix = \"far\";\nconst faTrashCan = {\n prefix: 'far',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faTrashAlt = faTrashCan;\nconst faMessage = {\n prefix: 'far',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z\"]\n};\nconst faCommentAlt = faMessage;\nconst faFileLines = {\n prefix: 'far',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faFileAlt = faFileLines;\nconst faFileText = faFileLines;\nconst faCalendarDays = {\n prefix: 'far',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l80 0 0 56-80 0 0-56zm0 104l80 0 0 64-80 0 0-64zm128 0l96 0 0 64-96 0 0-64zm144 0l80 0 0 64-80 0 0-64zm80-48l-80 0 0-56 80 0 0 56zm0 160l0 40c0 8.8-7.2 16-16 16l-64 0 0-56 80 0zm-128 0l0 56-96 0 0-56 96 0zm-144 0l0 56-64 0c-8.8 0-16-7.2-16-16l0-40 80 0zM272 248l-96 0 0-56 96 0 0 56z\"]\n};\nconst faCalendarAlt = faCalendarDays;\nconst faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"]\n};\nconst faFaceSmileBeam = {\n prefix: 'far',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faSmileBeam = faFaceSmileBeam;\nconst faFaceGrinStars = {\n prefix: 'far',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z\"]\n};\nconst faGrinStars = faFaceGrinStars;\nconst faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"]\n};\nconst faContactBook = faAddressBook;\nconst faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z\"]\n};\nconst faPaste = {\n prefix: 'far',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z\"]\n};\nconst faFileClipboard = faPaste;\nconst faFaceGrinTongueSquint = {\n prefix: 'far',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-23.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 22.9c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongueSquint = faFaceGrinTongueSquint;\nconst faFaceFlushed = {\n prefix: 'far',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"]\n};\nconst faFlushed = faFaceFlushed;\nconst faSquareCaretRight = {\n prefix: 'far',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nconst faCaretSquareRight = faSquareCaretRight;\nconst faSquareMinus = {\n prefix: 'far',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM152 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faMinusSquare = faSquareMinus;\nconst faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faSquareCaretDown = {\n prefix: 'far',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nconst faCaretSquareDown = faSquareCaretDown;\nconst faFaceKissBeam = {\n prefix: 'far',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faKissBeam = faFaceKissBeam;\nconst faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z\"]\n};\nconst faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z\"]\n};\nconst faSquareCheck = {\n prefix: 'far',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCheckSquare = faSquareCheck;\nconst faCircleDot = {\n prefix: 'far',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faDotCircle = faCircleDot;\nconst faFaceDizzy = {\n prefix: 'far',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faDizzy = faFaceDizzy;\nconst faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M435.4 361.4l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.2zM256 48l.9 0-1.8 0 .9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.6 2-4 2.9l4-2.9zm75.2-226.7l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nconst faFutbolBall = faFutbol;\nconst faSoccerBall = faFutbol;\nconst faPenToSquare = {\n prefix: 'far',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"]\n};\nconst faEdit = faPenToSquare;\nconst faHourglassHalf = {\n prefix: 'far',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z\"]\n};\nconst faHourglass2 = faHourglassHalf;\nconst faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"]\n};\nconst faHand = {\n prefix: 'far',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75l8.5 0 8 0c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.9 0 .1 0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 55.9c0 0 0 .1 0 .1l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-71.9c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2l-4.9 0-8.5 0c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2L160 96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9L192 232c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"]\n};\nconst faHandPaper = faHand;\nconst faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z\"]\n};\nconst faFaceKiss = {\n prefix: 'far',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faKiss = faFaceKiss;\nconst faFaceGrinTongue = {\n prefix: 'far',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-52.4c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27l0 52.5c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongue = faFaceGrinTongue;\nconst faChessBishop = {\n prefix: 'far',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8L48 352l48 0 0-27c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3l0 27 48 0 0-13.3c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24L160 0 104 0zM52.7 464l16.6-32 181.6 0 16.6 32L52.7 464zm207.9-80l-201 0c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512l238.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z\"]\n};\nconst faFaceGrinWink = {\n prefix: 'far',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faGrinWink = faFaceGrinWink;\nconst faFaceGrinWide = {\n prefix: 'far',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nconst faGrinAlt = faFaceGrinWide;\nconst faFaceFrownOpen = {\n prefix: 'far',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faFrownOpen = faFaceFrownOpen;\nconst faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"]\n};\nconst faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z\"]\n};\nconst faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"]\n};\nconst faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z\"]\n};\nconst faFolderBlank = faFolder;\nconst faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z\"]\n};\nconst faSquareCaretLeft = {\n prefix: 'far',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nconst faCaretSquareLeft = faSquareCaretLeft;\nconst faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z\"]\n};\nconst faChessKnight = {\n prefix: 'far',\n iconName: 'chess-knight',\n icon: [448, 512, [9822], \"f441\", \"M226.6 48L117.3 48l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1l-50.7 0c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0L226.6 0C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352l-48.8 0 24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464l310.7 0-16.6-32L85.2 432zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L56.8 512C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384l297 0c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z\"]\n};\nconst faFaceLaughSquint = {\n prefix: 'far',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faLaughSquint = faFaceLaughSquint;\nconst faFaceLaugh = {\n prefix: 'far',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faLaugh = faFaceLaugh;\nconst faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l23.7 0L384 480z\"]\n};\nconst faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M280 64l40 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l40 0 9.6 0C121 27.5 153.3 0 192 0s71 27.5 78.4 64l9.6 0zM64 112c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16l-16 0 0 24c0 13.3-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24l0-24-16 0zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faChessQueen = {\n prefix: 'far',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352l55.4 0-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352l55.4 0 93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432l245.6 0 16.6 32-278.7 0 16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"]\n};\nconst faHandBackFist = {\n prefix: 'far',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z\"]\n};\nconst faHandRock = faHandBackFist;\nconst faSquareCaretUp = {\n prefix: 'far',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nconst faCaretSquareUp = faSquareCaretUp;\nconst faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M24 32c13.3 0 24 10.7 24 24l0 352c0 13.3 10.7 24 24 24l416 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L72 480c-39.8 0-72-32.2-72-72L0 56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faBarChart = faChartBar;\nconst faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z\"]\n};\nconst faSquarePlus = {\n prefix: 'far',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nconst faPlusSquare = faSquarePlus;\nconst faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faFolderClosed = {\n prefix: 'far',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z\"]\n};\nconst faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nconst faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176L96 176l0 128c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7c0 0 0 0 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128l38.9 0 40 0 40 0c8.8 0 16 7.2 16 16l0 208c0 17.7-14.3 32-32 32l-32 0c-11.8 0-22.2-6.4-27.7-16l-84.9 0c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384l-32 0c-17.7 0-32-14.3-32-32L0 144c0-8.8 7.2-16 16-16l40 0 40 0 19.8 0c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64L259 64c4.4 0 8.9 .2 13.2 .6zM544 320l0-144-48 0c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1l74.8 0zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M168.5 72L256 165l87.5-93-175 0zM383.9 99.1L311.5 176l129 0L383.9 99.1zm50 124.9L256 224 78.1 224 256 420.3 433.9 224zM71.5 176l129 0L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"]\n};\nconst faCirclePlay = {\n prefix: 'far',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z\"]\n};\nconst faPlayCircle = faCirclePlay;\nconst faCircleCheck = {\n prefix: 'far',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"]\n};\nconst faCheckCircle = faCircleCheck;\nconst faCircleStop = {\n prefix: 'far',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nconst faStopCircle = faCircleStop;\nconst faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faFaceLaughBeam = {\n prefix: 'far',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faLaughBeam = faFaceLaughBeam;\nconst faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152l0 112 0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 60.9 0 37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80l-88 0c-13.3 0-24 10.7-24 24zm48 88l0-64 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0z\"]\n};\nconst faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nconst faContactCard = faAddressCard;\nconst faVcard = faAddressCard;\nconst faFaceTired = {\n prefix: 'far',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faTired = faFaceTired;\nconst faFontAwesome = {\n prefix: 'far',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 48 0 256 0 48 0 64 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0L388.1 252.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"]\n};\nconst faFontAwesomeFlag = faFontAwesome;\nconst faFontAwesomeLogoFull = faFontAwesome;\nconst faFaceSmileWink = {\n prefix: 'far',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faSmileWink = faFaceSmileWink;\nconst faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z\"]\n};\nconst faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z\"]\n};\nconst faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z\"]\n};\nconst faFileZipper = {\n prefix: 'far',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faFileArchive = faFileZipper;\nconst faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nconst faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c13.3 0 24 10.7 24 24l0 46.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57 0 76.5 66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6l0 76.5 57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23 0 46.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-46.1-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-76.5-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4l0-76.5L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L200 24c0-13.3 10.7-24 24-24z\"]\n};\nconst faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faFaceKissWinkHeart = {\n prefix: 'far',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nconst faKissWinkHeart = faFaceKissWinkHeart;\nconst faStarHalfStroke = {\n prefix: 'far',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7l0-305.6 52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z\"]\n};\nconst faStarHalfAlt = faStarHalfStroke;\nconst faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z\"]\n};\nconst faFaceGrinBeam = {\n prefix: 'far',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faGrinBeam = faFaceGrinBeam;\nconst faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40l45.4 0c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-36.7-48 0 0 36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L448 200l0 16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm307-18.5a16 16 0 1 1 -5.5 31.5 16 16 0 1 1 5.5-31.5z\"]\n};\nconst faCircleRight = {\n prefix: 'far',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z\"]\n};\nconst faArrowAltCircleRight = faCircleRight;\nconst faFaceRollingEyes = {\n prefix: 'far',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nconst faMehRollingEyes = faFaceRollingEyes;\nconst faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16l344.4 0c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8l0 280.4c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16l-344.4 0c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8l0-280.4zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3l0 261.5c13.6 4.8 24.4 15.6 29.3 29.3l325.5 0c4.8-13.6 15.6-24.4 29.3-29.3l0-261.5c-13.6-4.8-24.4-15.6-29.3-29.3L125.3 96zm2.7 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"]\n};\nconst faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z\"]\n};\nconst faFaceSurprise = {\n prefix: 'far',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faSurprise = faFaceSurprise;\nconst faCirclePause = {\n prefix: 'far',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faPauseCircle = faCirclePause;\nconst faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faCircleUp = {\n prefix: 'far',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z\"]\n};\nconst faArrowAltCircleUp = faCircleUp;\nconst faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 464l256 0c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM192 272l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376 112 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l17.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z\"]\n};\nconst faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2l48 0 32 0 40 0 72 0c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z\"]\n};\nconst faCircleQuestion = {\n prefix: 'far',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faQuestionCircle = faCircleQuestion;\nconst faFaceMehBlank = {\n prefix: 'far',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faMehBlank = faFaceMehBlank;\nconst faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"]\n};\nconst faFaceSadCry = {\n prefix: 'far',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nconst faSadCry = faFaceSadCry;\nconst faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z\"]\n};\nconst faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z\"]\n};\nconst faFaceFrown = {\n prefix: 'far',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faFrown = faFaceFrown;\nconst faFloppyDisk = {\n prefix: 'far',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faSave = faFloppyDisk;\nconst faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faCommenting = faCommentDots;\nconst faFaceGrinSquint = {\n prefix: 'far',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faGrinSquint = faFaceGrinSquint;\nconst faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nconst faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"]\n};\nconst faFaceGrinTears = {\n prefix: 'far',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0zm160 0s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0z\"]\n};\nconst faGrinTears = faFaceGrinTears;\nconst faCalendarXmark = {\n prefix: 'far',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCalendarTimes = faCalendarXmark;\nconst faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 16 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96z\"]\n};\nconst faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [512, 512, [], \"f1c1\", \"M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"]\n};\nconst faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z\"]\n};\nconst faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"]\n};\nconst faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"]\n};\nconst faHourglassEmpty = faHourglass;\nconst faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faHardDrive = {\n prefix: 'far',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l384 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 224 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faHdd = faHardDrive;\nconst faFaceGrinSquintTears = {\n prefix: 'far',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z\"]\n};\nconst faGrinSquintTears = faFaceGrinSquintTears;\nconst faRectangleList = {\n prefix: 'far',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faListAlt = faRectangleList;\nconst faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256zm176 40c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nconst faCircleLeft = {\n prefix: 'far',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3l0-57.7 96 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-96 0 0-57.7c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z\"]\n};\nconst faArrowAltCircleLeft = faCircleLeft;\nconst faMoneyBill1 = {\n prefix: 'far',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l352 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-352 0zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16l0 64-8 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l24 0 24 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-8 0 0-80c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faMoneyBillAlt = faMoneyBill1;\nconst faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nconst faClockFour = faClock;\nconst faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"]\n};\nconst faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nconst faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faFaceGrin = {\n prefix: 'far',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrin = faFaceGrin;\nconst faFaceMeh = {\n prefix: 'far',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faMeh = faFaceMeh;\nconst faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nconst faDriversLicense = faIdCard;\nconst faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faFaceLaughWink = {\n prefix: 'far',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faLaughWink = faFaceLaughWink;\nconst faCircleDown = {\n prefix: 'far',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3L304 256l0-96c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 96-57.7 0C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z\"]\n};\nconst faArrowAltCircleDown = faCircleDown;\nconst faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16l-97.5 0c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8L384 32c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0z\"]\n};\nconst faChessPawn = {\n prefix: 'far',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120l-12.6 0 10.7 80-48.4 0L195 272l-35 0-35 0-10.7 80-48.4 0 10.7-80L64 272c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464l214.7 0-16.6-32L69.2 432 52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L40.8 512C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384l201 0z\"]\n};\nconst faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"]\n};\nconst faCreditCardAlt = faCreditCard;\nconst faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416l400 0c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4l0-25.4c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112l0 25.4c0 47.9 13.9 94.6 39.7 134.6L72.3 368C98.1 328 112 281.3 112 233.4l0-25.4c0-61.9 50.1-112 112-112zm64 352l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nconst faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nconst faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M232 0c-39.8 0-72 32.2-72 72l0 8L72 80C32.2 80 0 112.2 0 152L0 440c0 39.8 32.2 72 72 72l.2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0s0 0 0 0l272 0 8 0s0 0 0 0l104 0c39.8 0 72-32.2 72-72l0-288c0-39.8-32.2-72-72-72l-88 0 0-8c0-39.8-32.2-72-72-72L232 0zM480 128l88 0c13.3 0 24 10.7 24 24l0 40-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 104c0 13.3-10.7 24-24 24l-88 0 0-128 0-208zM72 128l88 0 0 336c0 0 0 0-.1 0l-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0c-13.2 0-24-10.7-24-24l0-104 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-48 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-40c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24l176 0c13.3 0 24 10.7 24 24l0 264 0 128-64 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 64-64 0 0-392zm88 24l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faHospitalAlt = faHospital;\nconst faHospitalWide = faHospital;\nconst faChessRook = {\n prefix: 'far',\n iconName: 'chess-rook',\n icon: [448, 512, [9820], \"f447\", \"M80 80l0 112c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352l-48.3 0 9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192L32 72c0-22.1 17.9-40 40-40l304 0c22.1 0 40 17.9 40 40l0 120c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85-48.3 0-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4l0-112-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24L80 80zm4.7 384l278.7 0-16.6-32-245.6 0L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L72.8 512C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384l265 0zM208 288c-8.8 0-16-7.2-16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 8.8-7.2 16-16 16l-32 0z\"]\n};\nconst faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4l0 384.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4 0-265.9z\"]\n};\nconst faChessKing = {\n prefix: 'far',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 40L59.6 144C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352l52.3 0L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6L224 192l164.4 0c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352l52.3 0 54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6L248 144l0-40 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM101.2 432l245.6 0 16.6 32L84.7 464l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"]\n};\nconst faCircleUser = {\n prefix: 'far',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"]\n};\nconst faUserCircle = faCircleUser;\nconst faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z\"]\n};\nconst faShareFromSquare = {\n prefix: 'far',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M400 255.4l0-15.4 0-32c0-8.8-7.2-16-16-16l-32 0-16 0-46.5 0c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112l48 0 16 0 32 0c8.8 0 16-7.2 16-16l0-32 0-15.4L506 160 400 255.4zM336 240l16 0 0 48c0 17.7 14.3 32 32 32l3.7 0c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7L352 80l-16 0-32 0-16 0c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5c0 0 0 0 0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5l14.5 0 32 0zM72 32C32.2 32 0 64.2 0 104L0 440c0 39.8 32.2 72 72 72l336 0c39.8 0 72-32.2 72-72l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3-10.7 24-24 24L72 464c-13.3 0-24-10.7-24-24l0-336c0-13.3 10.7-24 24-24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32z\"]\n};\nconst faShareSquare = faShareFromSquare;\nconst faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z\"]\n};\nconst faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z\"]\n};\nconst faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4l0-33.4c0-75.8-55.5-138.6-128-150.1L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 17.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96l8 0 8 0c57.4 0 104 46.6 104 104l0 33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48-176.9 0c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1l0 11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l286.2 0zM384 448l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nconst faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"]\n};\nconst faFaceSmile = {\n prefix: 'far',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSmile = faFaceSmile;\nconst faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z\"]\n};\nconst faFaceGrinHearts = {\n prefix: 'far',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nconst faGrinHearts = faFaceGrinHearts;\nconst faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-64c0-26.5 21.5-48 48-48s48 21.5 48 48l0 64 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm88 40c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zM232 88l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zm144-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16z\"]\n};\nconst faFaceGrinBeamSweat = {\n prefix: 'far',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"]\n};\nconst faGrinBeamSweat = faFaceGrinBeamSweat;\nconst faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z\"]\n};\nconst faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256z\"]\n};\nconst faFaceGrinTongueWink = {\n prefix: 'far',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4l0-52.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1l0 52.4c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6l0 37.4z\"]\n};\nconst faGrinTongueWink = faFaceGrinTongueWink;\nconst faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z\"]\n};\nconst faFaceAngry = {\n prefix: 'far',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nconst faAngry = faFaceAngry;\nconst faRectangleXmark = {\n prefix: 'far',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faRectangleTimes = faRectangleXmark;\nconst faTimesRectangle = faRectangleXmark;\nconst faWindowClose = faRectangleXmark;\nconst faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"]\n};\nconst faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nconst faFaceGrimace = {\n prefix: 'far',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0-48-8 0zm40 48l32 0 0-48-32 0 0 48zm96 0l0-48-32 0 0 48 32 0zm32 0l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 48zM168 288l176 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-176 0c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrimace = faFaceGrimace;\nconst faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM296 352l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nconst faCircleXmark = {\n prefix: 'far',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nconst faTimesCircle = faCircleXmark;\nconst faXmarkCircle = faCircleXmark;\nconst faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nconst faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z\"]\n};\nconst faSquareFull = {\n prefix: 'far',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M464 48l0 416L48 464 48 48l416 0zM48 0L0 0 0 48 0 464l0 48 48 0 416 0 48 0 0-48 0-416 0-48L464 0 48 0z\"]\n};\nconst faNoteSticky = {\n prefix: 'far',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z\"]\n};\nconst faStickyNote = faNoteSticky;\nconst faFaceSadTear = {\n prefix: 'far',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faSadTear = faFaceSadTear;\nconst faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"]\n};\nvar icons = {\n faTrashCan,\n faTrashAlt,\n faMessage,\n faCommentAlt,\n faFileLines,\n faFileAlt,\n faFileText,\n faCalendarDays,\n faCalendarAlt,\n faHandPointRight,\n faFaceSmileBeam,\n faSmileBeam,\n faFaceGrinStars,\n faGrinStars,\n faAddressBook,\n faContactBook,\n faComments,\n faPaste,\n faFileClipboard,\n faFaceGrinTongueSquint,\n faGrinTongueSquint,\n faFaceFlushed,\n faFlushed,\n faSquareCaretRight,\n faCaretSquareRight,\n faSquareMinus,\n faMinusSquare,\n faCompass,\n faSquareCaretDown,\n faCaretSquareDown,\n faFaceKissBeam,\n faKissBeam,\n faLightbulb,\n faFlag,\n faSquareCheck,\n faCheckSquare,\n faCircleDot,\n faDotCircle,\n faFaceDizzy,\n faDizzy,\n faFutbol,\n faFutbolBall,\n faSoccerBall,\n faPenToSquare,\n faEdit,\n faHourglassHalf,\n faHourglass2,\n faEyeSlash,\n faHand,\n faHandPaper,\n faHandSpock,\n faFaceKiss,\n faKiss,\n faFaceGrinTongue,\n faGrinTongue,\n faChessBishop,\n faFaceGrinWink,\n faGrinWink,\n faFaceGrinWide,\n faGrinAlt,\n faFaceFrownOpen,\n faFrownOpen,\n faHandPointUp,\n faBookmark,\n faHandPointDown,\n faFolder,\n faFolderBlank,\n faUser,\n faSquareCaretLeft,\n faCaretSquareLeft,\n faStar,\n faChessKnight,\n faFaceLaughSquint,\n faLaughSquint,\n faFaceLaugh,\n faLaugh,\n faFolderOpen,\n faClipboard,\n faChessQueen,\n faHandBackFist,\n faHandRock,\n faSquareCaretUp,\n faCaretSquareUp,\n faChartBar,\n faBarChart,\n faWindowRestore,\n faSquarePlus,\n faPlusSquare,\n faImage,\n faFolderClosed,\n faLemon,\n faHandshake,\n faGem,\n faCirclePlay,\n faPlayCircle,\n faCircleCheck,\n faCheckCircle,\n faCircleStop,\n faStopCircle,\n faIdBadge,\n faFaceLaughBeam,\n faLaughBeam,\n faRegistered,\n faAddressCard,\n faContactCard,\n faVcard,\n faFaceTired,\n faTired,\n faFontAwesome,\n faFontAwesomeFlag,\n faFontAwesomeLogoFull,\n faFaceSmileWink,\n faSmileWink,\n faFileWord,\n faFilePowerpoint,\n faEnvelopeOpen,\n faFileZipper,\n faFileArchive,\n faSquare,\n faSnowflake,\n faNewspaper,\n faFaceKissWinkHeart,\n faKissWinkHeart,\n faStarHalfStroke,\n faStarHalfAlt,\n faFileExcel,\n faFaceGrinBeam,\n faGrinBeam,\n faObjectUngroup,\n faCircleRight,\n faArrowAltCircleRight,\n faFaceRollingEyes,\n faMehRollingEyes,\n faObjectGroup,\n faHeart,\n faFaceSurprise,\n faSurprise,\n faCirclePause,\n faPauseCircle,\n faCircle,\n faCircleUp,\n faArrowAltCircleUp,\n faFileAudio,\n faFileImage,\n faCircleQuestion,\n faQuestionCircle,\n faFaceMehBlank,\n faMehBlank,\n faEye,\n faFaceSadCry,\n faSadCry,\n faFileCode,\n faWindowMaximize,\n faFaceFrown,\n faFrown,\n faFloppyDisk,\n faSave,\n faCommentDots,\n faCommenting,\n faFaceGrinSquint,\n faGrinSquint,\n faHandPointer,\n faHandScissors,\n faFaceGrinTears,\n faGrinTears,\n faCalendarXmark,\n faCalendarTimes,\n faFileVideo,\n faFilePdf,\n faComment,\n faEnvelope,\n faHourglass,\n faHourglassEmpty,\n faCalendarCheck,\n faHardDrive,\n faHdd,\n faFaceGrinSquintTears,\n faGrinSquintTears,\n faRectangleList,\n faListAlt,\n faCalendarPlus,\n faCircleLeft,\n faArrowAltCircleLeft,\n faMoneyBill1,\n faMoneyBillAlt,\n faClock,\n faClockFour,\n faKeyboard,\n faClosedCaptioning,\n faImages,\n faFaceGrin,\n faGrin,\n faFaceMeh,\n faMeh,\n faIdCard,\n faDriversLicense,\n faSun,\n faFaceLaughWink,\n faLaughWink,\n faCircleDown,\n faArrowAltCircleDown,\n faThumbsDown,\n faChessPawn,\n faCreditCard,\n faCreditCardAlt,\n faBell,\n faFile,\n faHospital,\n faHospitalAlt,\n faHospitalWide,\n faChessRook,\n faStarHalf,\n faChessKing,\n faCircleUser,\n faUserCircle,\n faCopy,\n faShareFromSquare,\n faShareSquare,\n faCopyright,\n faMap,\n faBellSlash,\n faHandLizard,\n faFaceSmile,\n faSmile,\n faHandPeace,\n faFaceGrinHearts,\n faGrinHearts,\n faBuilding,\n faFaceGrinBeamSweat,\n faGrinBeamSweat,\n faMoon,\n faCalendar,\n faFaceGrinTongueWink,\n faGrinTongueWink,\n faClone,\n faFaceAngry,\n faAngry,\n faRectangleXmark,\n faRectangleTimes,\n faTimesRectangle,\n faWindowClose,\n faPaperPlane,\n faLifeRing,\n faFaceGrimace,\n faGrimace,\n faCalendarMinus,\n faCircleXmark,\n faTimesCircle,\n faXmarkCircle,\n faThumbsUp,\n faWindowMinimize,\n faSquareFull,\n faNoteSticky,\n faStickyNote,\n faFaceSadTear,\n faSadTear,\n faHandPointLeft\n};\n\nexport { icons as far, prefix, faTrashCan, faTrashAlt, faMessage, faCommentAlt, faFileLines, faFileAlt, faFileText, faCalendarDays, faCalendarAlt, faHandPointRight, faFaceSmileBeam, faSmileBeam, faFaceGrinStars, faGrinStars, faAddressBook, faContactBook, faComments, faPaste, faFileClipboard, faFaceGrinTongueSquint, faGrinTongueSquint, faFaceFlushed, faFlushed, faSquareCaretRight, faCaretSquareRight, faSquareMinus, faMinusSquare, faCompass, faSquareCaretDown, faCaretSquareDown, faFaceKissBeam, faKissBeam, faLightbulb, faFlag, faSquareCheck, faCheckSquare, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faFutbol, faFutbolBall, faSoccerBall, faPenToSquare, faEdit, faHourglassHalf, faHourglass2, faEyeSlash, faHand, faHandPaper, faHandSpock, faFaceKiss, faKiss, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faFaceGrinWide, faGrinAlt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faBookmark, faHandPointDown, faFolder, faFolderBlank, faUser, faSquareCaretLeft, faCaretSquareLeft, faStar, faChessKnight, faFaceLaughSquint, faLaughSquint, faFaceLaugh, faLaugh, faFolderOpen, faClipboard, faChessQueen, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faChartBar, faBarChart, faWindowRestore, faSquarePlus, faPlusSquare, faImage, faFolderClosed, faLemon, faHandshake, faGem, faCirclePlay, faPlayCircle, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faIdBadge, faFaceLaughBeam, faLaughBeam, faRegistered, faAddressCard, faContactCard, faVcard, faFaceTired, faTired, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faEnvelopeOpen, faFileZipper, faFileArchive, faSquare, faSnowflake, faNewspaper, faFaceKissWinkHeart, faKissWinkHeart, faStarHalfStroke, faStarHalfAlt, faFileExcel, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faCircleRight, faArrowAltCircleRight, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faHeart, faFaceSurprise, faSurprise, faCirclePause, faPauseCircle, faCircle, faCircleUp, faArrowAltCircleUp, faFileAudio, faFileImage, faCircleQuestion, faQuestionCircle, faFaceMehBlank, faMehBlank, faEye, faFaceSadCry, faSadCry, faFileCode, faWindowMaximize, faFaceFrown, faFrown, faFloppyDisk, faSave, faCommentDots, faCommenting, faFaceGrinSquint, faGrinSquint, faHandPointer, faHandScissors, faFaceGrinTears, faGrinTears, faCalendarXmark, faCalendarTimes, faFileVideo, faFilePdf, faComment, faEnvelope, faHourglass, faHourglassEmpty, faCalendarCheck, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faRectangleList, faListAlt, faCalendarPlus, faCircleLeft, faArrowAltCircleLeft, faMoneyBill1, faMoneyBillAlt, faClock, faClockFour, faKeyboard, faClosedCaptioning, faImages, faFaceGrin, faGrin, faFaceMeh, faMeh, faIdCard, faDriversLicense, faSun, faFaceLaughWink, faLaughWink, faCircleDown, faArrowAltCircleDown, faThumbsDown, faChessPawn, faCreditCard, faCreditCardAlt, faBell, faFile, faHospital, faHospitalAlt, faHospitalWide, faChessRook, faStarHalf, faChessKing, faCircleUser, faUserCircle, faCopy, faShareFromSquare, faShareSquare, faCopyright, faMap, faBellSlash, faHandLizard, faFaceSmile, faSmile, faHandPeace, faFaceGrinHearts, faGrinHearts, faBuilding, faFaceGrinBeamSweat, faGrinBeamSweat, faMoon, faCalendar, faFaceGrinTongueWink, faGrinTongueWink, faClone, faFaceAngry, faAngry, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faPaperPlane, faLifeRing, faFaceGrimace, faGrimace, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faThumbsUp, faWindowMinimize, faSquareFull, faNoteSticky, faStickyNote, faFaceSadTear, faSadTear, faHandPointLeft };\n","import { Contact, TContactFilter } from '../../types/contact.types';\nimport {\n TContactFilterApiResponse,\n TGetContactEmailApiResponse,\n} from './api.dto';\nimport { api } from './server';\n\nexport const searchContactsInLinkedin = async (\n firstName: string,\n lastName: string,\n) => {\n try {\n const response = await api.post(`/web-scraper/contacts`, {\n firstName,\n lastName,\n });\n console.log(response);\n return response.data;\n } catch (error) {\n console.error(error);\n throw error;\n }\n};\n\nexport const searchContactsInDatabase = async (filter: TContactFilter) => {\n try {\n const response = await api.get(`/contacts`, { params: filter });\n console.log(response);\n return response.data as TContactFilterApiResponse;\n } catch (error) {\n console.error(error);\n throw error;\n }\n};\n\nexport const APISearchContactEmail = async (\n contactId: string,\n userPublicId: string,\n): Promise => {\n try {\n const response = await api.get(\n `/contacts/email/${contactId}/user/${userPublicId}`,\n );\n console.log(response);\n return response.data as TGetContactEmailApiResponse;\n } catch (error) {\n console.error(error);\n throw error;\n }\n};\n\nexport const APIExportContacts = async (\n contactsWithJobs: { leadId: string; jobId?: string | null }[],\n format: 'csv',\n) => {\n try {\n const response = await api.post(\n `/contacts/export?format=${format}`,\n contactsWithJobs,\n { responseType: 'blob' },\n );\n\n const timestamp = new Date().toISOString().replace(/:/g, '-');\n const url = window.URL.createObjectURL(\n new Blob([response.data as BlobPart], { type: 'text/csv' }),\n );\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `contacts-${timestamp}.csv`);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n return response.data;\n } catch (error) {\n console.error(error);\n throw error;\n }\n};\n\nexport const APIGetContactDetails = async (\n contactPublicId: string,\n): Promise => {\n try {\n const response = await api.get(`/contacts/${contactPublicId}`);\n return response.data as Contact;\n } catch (error) {\n console.error(error);\n throw error;\n }\n};\n","import React from 'react';\nimport { Contact } from '../../../types/contact.types';\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\nimport { Button, TooltipComponent, UserAvatar } from '../../../components/Component';\nimport {\n faBuilding,\n faCalendarDays,\n} from '@fortawesome/free-regular-svg-icons';\nimport {\n faCircleNodes,\n faEnvelope,\n faLanguage,\n faMapPin,\n faSchool,\n faUserGraduate,\n faUsers,\n} from '@fortawesome/free-solid-svg-icons';\nimport { findUpper, truncateText } from '../../../utils/Utils';\nimport { formatDateToMonthYear } from '../../../utils/date.util';\nimport Badge from '../../../components/badge/Badge';\nimport { APIGetContactDetails } from '../../../services/api/api.contact';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { useNavigate } from 'react-router';\n\ninterface ContactDetailsModalProps {\n contactId: string;\n isOpen: boolean;\n toggle: () => void;\n}\n\nconst ContactDetailsModal: React.FC = ({\n contactId,\n isOpen,\n toggle,\n}) => {\n const [contact, setContact] = React.useState();\n const { createNotification, handleAPIError } = useNotification();\n const navigate = useNavigate();\n\n const getContactDetails = async (contactPublicId: string) => {\n try {\n const contact = await APIGetContactDetails(contactPublicId);\n console.log('contact', contact);\n if (!contact) {\n createNotification('danger', 'No data found for this contact.');\n return;\n }\n setContact(contact);\n } catch (error) {\n handleAPIError(error, 'Error fetching contact details');\n }\n };\n\n React.useEffect(() => {\n console.log('isOpen', isOpen);\n if (isOpen) {\n getContactDetails(contactId);\n }\n }, [isOpen]);\n\n const openDetails = () => {\n window.open(`/leads/${contactId}`, '_blank');\n };\n\n return (\n \n {contact && (\n <>\n \n
      \n \n
      \n
      \n
      \n {contact.fullName}\n
      \n \n \n window.open(contact.websitesLinkedin, '_blank')\n }\n />\n
      \n
      \n \n

      \n {contact.jobTitle || 'Not Indexed'}\n

      \n
      \n
      \n \n

      \n {contact.locationRawAddress || 'Location Unknown'}\n

      \n
      \n\n {contact.locationRegions &&\n contact.locationRegions.length > 0 && (\n
      \n {contact.locationRegions.map((region, index) => (\n

      \n {region}{' '}\n {index < contact.locationRegions!.length - 1 && ' | '}\n

      \n ))}\n
      \n )}\n
      \n
      \n
      \n \n
      \n {/* Coluna 1 */}\n
      \n {/* Basic Information */}\n
      \n
      \n Basic Information\n
      \n
      \n {contact.email && (\n
      \n \n \n {contact.email || 'Not Indexed'}\n \n
      \n )}\n\n
      \n \n \n {contact.managementLevel} | {contact.department}\n \n
      \n\n
      \n \n \n {contact.connectionsCount >= 500\n ? '500+ connections'\n : `${contact.connectionsCount} connections`}\n \n
      \n
      \n
      \n\n {/* Education */}\n
      \n
      \n
      \n Education\n
      \n
      \n {contact.education?.length > 0 ? (\n contact.education.slice(0, 2).map((edu, index) => (\n
      \n
      \n \n \n window.open(\n edu.institutionUrl ? edu.institutionUrl : '#',\n '_blank',\n )\n }\n >\n {edu.title || 'Not Indexed'}\n

      \n
      \n\n
      \n \n {edu.major && edu.major?.length > 50 && (\n \n )}\n \n {(edu.major &&\n (edu.major.length > 50\n ? truncateText(edu.major, 50)\n : edu.major)) ||\n 'No major specified'}\n

      \n
      \n\n
      \n \n

      \n {edu.dateFrom\n ? `${formatDateToMonthYear(edu.dateFrom)}`\n : 'From: Not Indexed'}{' '}\n |{' '}\n {edu.dateTo\n ? `${formatDateToMonthYear(edu.dateTo)}`\n : 'Present'}\n

      \n
      \n
      \n ))\n ) : (\n

      \n No education details available.\n

      \n )}\n\n {contact.education.length > 2 && (\n \n See more\n

      \n )}\n
      \n\n {/* Languages */}\n {contact.languages && contact.languages.length > 0 && (\n
      \n
      \n Languages\n
      \n
      \n {contact.languages.length > 0 ? (\n contact.languages.map((language, index) => (\n

      \n {' '}\n {language.language} (\n {language.proficiency})\n

      \n ))\n ) : (\n

      \n No languages available.\n

      \n )}\n
      \n
      \n )}\n\n {/* Recomendations */}\n {contact.recommendations &&\n contact.recommendations.length > 0 && (\n
      \n
      \n Recommendations\n
      \n
      \n {contact.recommendations.map((rec, index) => (\n
      \n
      \n

      \n {rec.refereeName || 'Not Indexed'}\n

      \n \n
      \n

      \n {truncateText(\n rec.recommendation.replaceAll('“', ''),\n 200,\n ) || 'Not Indexed'}\n

      \n
      \n ))}\n
      \n
      \n )}\n\n {/* Skills */}\n
      \n
      \n Skills\n
      \n
      \n {contact.skills.length > 0 ? (\n contact.skills.slice(0, 4).map((skill, index) => (\n \n ))\n ) : (\n

      No skills available.

      \n )}\n
      \n {contact.skills.length > 4 && (\n \n See more\n

      \n )}\n
      \n
      \n\n {/* Coluna 2 */}\n
      \n {/* Experience */}\n
      \n
      \n Experience\n
      \n {contact.experience?.length > 0 ? (\n contact.experience.slice(0, 2).map((exp, index) => (\n
      \n

      \n {exp.title || 'Not Indexed'}\n

      \n

      \n {exp.companyName || 'Not Indexed'}\n

      \n

      \n {exp.dateFrom\n ? formatDateToMonthYear(exp.dateFrom)\n : 'Not Indexed'}{' '}\n |{' '}\n {exp.dateTo\n ? formatDateToMonthYear(exp.dateTo)\n : 'Present'}\n

      \n
      \n ))\n ) : (\n

      \n No experience details available.\n

      \n )}\n {contact.experience.length > 2 && (\n \n See more\n

      \n )}\n
      \n
      \n
      \n \n \n \n \n \n )}\n \n );\n};\n\nexport default ContactDetailsModal;\n","import {\n faCircleXmark,\n faEnvelopeCircleCheck,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nconst formatEmailWithIcon = (email: string) => {\n if (\n !email ||\n !email.includes('@') ||\n email === 'NOT_INDEXED' ||\n email === 'NOT_FOUND' ||\n email === 'NO_EMAIL'\n ) {\n return (\n
      \n \n Not Found\n
      \n );\n }\n return (\n
      \n \n {email}\n
      \n );\n};\nexport default formatEmailWithIcon;\n","import { useState } from 'react';\nimport {\n DataTableRow,\n DataTableItem,\n Button,\n UserAvatar,\n TooltipComponent,\n} from '../../../components/Component';\nimport { TJobWithCompany } from '../../../types/job.types';\nimport {\n truncateText,\n findUpper,\n getDateStructured,\n} from '../../../utils/Utils';\nimport { Contact } from '../../../types/contact.types';\nimport JobModal from '../../components/job/JobModal/JobModal';\nimport CompanyDetailsModal from '../../components/companies/CompanyModal';\nimport { TCompany } from '../../../types/company.types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\nimport { Tooltip } from 'reactstrap';\nimport ContactDetailsModal from '../../components/contacts/ContactModal';\nimport {\n faCheck,\n faCircleNotch,\n faCircleXmark,\n faEnvelopeCircleCheck,\n faTimes,\n} from '@fortawesome/free-solid-svg-icons';\nimport { APISearchContactEmail } from '../../../services/api/api.contact';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { APISearchJobSearchForJob } from '../../../services/api/api.job-search';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { useNavigate } from 'react-router';\nimport formatEmailWithIcon from '../../../utils/formatEmailWithIcon';\n\nconst MAX_COLUMN_LENGTH = 25;\n\nconst JobRow = ({\n job,\n contacts,\n updateContactEmail,\n onRowSelect,\n selectedItems,\n loadingEmails,\n setLoadingEmails,\n jobSearchId,\n loadingJobs,\n setLoadingJobs,\n fetchCampaignWithDetails,\n}: {\n job: TJobWithCompany;\n contacts: Contact[];\n updateContactEmail: (\n contactId: string,\n email: string,\n confidence: 'high' | 'medium' | 'low' | 'undefined',\n ) => void;\n onRowSelect: (\n jobId: string,\n contactId: string | undefined,\n isSelected: boolean,\n ) => void;\n selectedItems: { jobId: string; contactId?: string }[];\n loadingEmails: { [contactId: string]: boolean };\n setLoadingEmails: React.Dispatch<\n React.SetStateAction<{ [contactId: string]: boolean }>\n >;\n jobSearchId: string;\n loadingJobs: Set; // Usamos job.publicId (string)\n setLoadingJobs: React.Dispatch>>;\n fetchCampaignWithDetails: () => void;\n}) => {\n // Filtra os contatos associados a este job\n const jobContacts = contacts.filter(\n contact => contact.externalCompanyId === job.company?.coresignalId,\n );\n\n const { createNotification, handleAPIError } = useNotification();\n const { user } = useAuth();\n const navigate = useNavigate();\n\n const [selectedContact, setSelectedContact] = useState(null);\n const [showSelectedContact, setShowSelectedContact] = useState(false);\n const [showJobDetails, setShowJobDetails] = useState(false);\n const [selectedCompany, setSelectedCompany] = useState(\n {} as TCompany,\n );\n const [showCompanyDetails, setShowCompanyDetails] = useState(false);\n const [tooltipOpen, setTooltipOpen] = useState<{ [key: string]: boolean }>(\n {},\n );\n\n const toggleTooltip = (id: string, field: string) => {\n const tooltipId = `${id}-${field}`;\n setTooltipOpen(prev => ({\n ...prev,\n [tooltipId]: !prev[tooltipId],\n }));\n };\n\n const searchContactEmail = async (contactId: string) => {\n setLoadingEmails(prev => ({ ...prev, [contactId]: true }));\n try {\n if (!user) {\n createNotification('info', 'You need to be logged in to view emails.');\n navigate('/logout');\n return;\n }\n const userData = await APISearchContactEmail(contactId, user.publicId);\n console.log('JobRow - email retornado:', userData);\n updateContactEmail(contactId, userData.email, 'high');\n } catch (error) {\n console.error(\n `JobRow - erro ao buscar email para contato ${contactId}:`,\n error,\n );\n } finally {\n setLoadingEmails(prev => ({ ...prev, [contactId]: false }));\n }\n };\n\n const openJobDetails = () => {\n setShowJobDetails(true);\n };\n\n const isRowSelected = (jobId: string, contactId?: string) => {\n return selectedItems.some(\n item => item.jobId === jobId && item.contactId === contactId,\n );\n };\n\n const handleCheckboxChange = (\n jobId: string,\n contactId: string | undefined,\n isSelected: boolean,\n ) => {\n onRowSelect(jobId, contactId, isSelected);\n };\n\n // Busca de contatos para este job usando o job.publicId\n const handleSearchContacts = async (jobId: string) => {\n if (!jobId) {\n createNotification('danger', 'No data found for this job.');\n return;\n }\n setLoadingJobs(prev => new Set(prev).add(jobId));\n try {\n await APISearchJobSearchForJob(jobSearchId, jobId);\n fetchCampaignWithDetails();\n } catch (error: any) {\n if (error.message.includes('No leads')) {\n return;\n } else {\n handleAPIError(error, error.message);\n }\n } finally {\n setLoadingJobs(prev => {\n const updatedSet = new Set(prev);\n updatedSet.delete(jobId);\n return updatedSet;\n });\n }\n };\n\n const openContactDetails = async (contactId: string) => {\n setSelectedContact(contactId);\n setShowSelectedContact(true);\n };\n\n return (\n <>\n {/* Renderiza uma linha para cada contato associado ao job */}\n {jobContacts.length > 0 ? (\n jobContacts.map(contact => {\n return (\n \n {/* Checkbox */}\n \n
      \n \n handleCheckboxChange(\n job.publicId,\n contact.publicId,\n e.target.checked,\n )\n }\n id={`checkbox-${job.publicId}-${contact.publicId}`}\n />\n \n
      \n
      \n\n {/* Coluna Empresa */}\n \n
      \n {job.company && (\n {\n setSelectedCompany(job.company);\n setShowCompanyDetails(true);\n }}\n >\n \n \n )}\n
      \n {\n setSelectedCompany(job.company);\n setShowCompanyDetails(true);\n }}\n >\n \n {job.company.name.length > 25\n ? `${truncateText(job.company.name, 25)}`\n : job.company.name}\n \n {job.company.name.length > 25 && (\n toggleTooltip(job.publicId, 'company')}\n >\n {job.company.name}\n \n )}\n \n {job.company.industry && (\n
      \n \n {job.company.industry.length > 25\n ? `${truncateText(job.company.industry, 25)}`\n : job.company.industry}\n \n {job.company.industry.length > 25 && (\n \n toggleTooltip(job.publicId, 'industry')\n }\n >\n {job.company.industry}\n \n )}\n
      \n )}\n
      \n
      \n
      \n\n {/* Coluna Job Title */}\n \n
      \n openJobDetails()}\n className=\"text-primary hover:cursor-pointer text-xs lg:text-xs hover:underline hover:text-primaryHover\"\n id={`job-title-${job.publicId}`}\n >\n {job.title.length > MAX_COLUMN_LENGTH\n ? truncateText(job.title, MAX_COLUMN_LENGTH)\n : job.title}\n \n {job.title.length > MAX_COLUMN_LENGTH && (\n toggleTooltip(job.publicId, 'job-title')}\n >\n {job.title}\n \n )}\n {job.location}\n
      \n
      \n\n {/* Coluna Lead / Contato – Exibe os dados do contato */}\n \n {\n openContactDetails(contact.publicId);\n // navigate(`/leads/${contact.publicId}`);\n }}\n >\n \n
      \n
      \n \n {contact.fullName.length > MAX_COLUMN_LENGTH\n ? truncateText(contact.fullName, MAX_COLUMN_LENGTH)\n : contact.fullName}\n \n {contact.websitesLinkedin && (\n e.stopPropagation()}\n >\n \n \n )}\n
      \n {contact.fullName.length > MAX_COLUMN_LENGTH &&\n document.getElementById(`name-${contact.publicId}`) && (\n toggleTooltip(contact.publicId, 'name')}\n >\n {contact.fullName}\n \n )}\n \n {contact.jobTitle || contact.generatedHeadline ? (\n <>\n {(contact.jobTitle && contact.jobTitle.length > 25) ||\n (contact.generatedHeadline &&\n contact.generatedHeadline.length > 25) ? (\n <>\n {truncateText(\n contact.jobTitle || contact.generatedHeadline,\n 25,\n )}\n {document.getElementById(\n `position-${contact.publicId}`,\n ) && (\n \n toggleTooltip(contact.publicId, 'position')\n }\n >\n {contact.jobTitle ||\n contact.generatedHeadline}\n \n )}\n \n ) : (\n contact.jobTitle || contact.generatedHeadline\n )}\n \n ) : (\n ''\n )}\n \n
      \n \n
      \n\n {/* Coluna Email */}\n \n {loadingEmails[contact.publicId] ? (\n \n }\n onClick={() => searchContactEmail(contact.publicId)}\n >\n Loading\n \n ) : contact.email ? (\n \n {formatEmailWithIcon(contact.email)}\n \n ) : (\n searchContactEmail(contact.publicId)}\n >\n Search Email\n \n )}\n \n\n {/* Coluna Lead Location */}\n \n {contact.locationRawAddress &&\n contact.locationRawAddress.length > 20 ? (\n \n \n {truncateText(contact.locationRawAddress, 20)}\n \n \n ) : (\n {contact.locationRawAddress}\n )}\n \n\n {/* Coluna Data */}\n \n \n {getDateStructured(new Date(job.timePosted))}\n \n \n
      \n );\n })\n ) : (\n // Se não houver nenhum contato para este job, renderiza uma linha com o botão \"Search Leads\"\n \n \n
      \n \n handleCheckboxChange(\n job.publicId,\n undefined,\n e.target.checked,\n )\n }\n id={`checkbox-${job.publicId}`}\n />\n \n
      \n
      \n\n {/* Coluna Empresa */}\n {job.company && (\n \n
      \n {\n setSelectedCompany(job.company);\n setShowCompanyDetails(true);\n }}\n >\n \n \n
      \n {\n setSelectedCompany(job.company);\n setShowCompanyDetails(true);\n }}\n >\n \n {job.company.name.length > 25\n ? `${truncateText(job.company.name, 25)}`\n : job.company.name}\n \n {job.company.name.length > 25 && (\n toggleTooltip(job.publicId, 'company')}\n >\n {job.company.name}\n \n )}\n \n {job.company.industry && (\n
      \n \n {job.company.industry.length > 25\n ? `${truncateText(job.company.industry, 25)}`\n : job.company.industry}\n \n {job.company.industry.length > 25 && (\n toggleTooltip(job.publicId, 'industry')}\n >\n {job.company.industry}\n \n )}\n
      \n )}\n
      \n
      \n
      \n )}\n\n {/* Coluna Job Title */}\n \n
      \n openJobDetails()}\n className=\"text-primary hover:cursor-pointer text-xs lg:text-xs hover:underline hover:text-primaryHover\"\n id={`job-title-${job.publicId}`}\n >\n {job.title.length > MAX_COLUMN_LENGTH\n ? truncateText(job.title, MAX_COLUMN_LENGTH)\n : job.title}\n \n {job.title.length > MAX_COLUMN_LENGTH && (\n toggleTooltip(job.publicId, 'job-title')}\n >\n {job.title}\n \n )}\n {job.location}\n
      \n
      \n\n {/* Coluna Lead / Contato: exibe o botão \"Search Leads\" */}\n \n handleSearchContacts(job.publicId)}\n >\n Search Leads\n \n \n\n {/* Coluna Email – vazia, pois não há contato */}\n \n \n \n\n {/* Coluna Lead Location – vazia */}\n \n \n \n\n {/* Coluna Data */}\n \n \n {getDateStructured(new Date(job.timePosted))}\n \n \n
      \n )}\n\n {showJobDetails && (\n setShowJobDetails(false)}\n />\n )}\n {showSelectedContact && selectedContact && (\n setShowSelectedContact(!showSelectedContact)}\n />\n )}\n {showCompanyDetails && (\n setShowCompanyDetails(!showCompanyDetails)}\n />\n )}\n \n );\n};\n\nexport default JobRow;\n","import { TCompany } from '../../types/company.types';\nimport { TContactSimpleDetails } from '../../types/contact.types';\nimport { TJobWithCompany } from '../../types/job.types';\nimport {\n TCreationList,\n TFavoriteItemList,\n TFavoriteListWithData,\n TList,\n TListWithLeads,\n} from '../../types/list.types';\nimport { api, checkError } from './server';\n\nexport const APIGetLists = async (userId: string) => {\n try {\n const response = await api.get(`/lists/user/${userId}`);\n return response.data as TListWithLeads[];\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIUpdateLeads = async (\n listId: string,\n favorites: TFavoriteItemList[],\n operation: 'add' | 'remove',\n) => {\n try {\n const response = await api.patch(`/lists/${listId}/leads`, {\n favorites,\n operation,\n });\n return response.data;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APICreateList = async (data: TCreationList) => {\n try {\n const response = await api.post(`/lists`, data);\n return response.data as TList;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIGetList = async (\n listId: string,\n): Promise => {\n try {\n const response = await api.get(`/lists/${listId}`);\n return response.data as TFavoriteListWithData;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIUpdateList = async (listId: string, data: Partial) => {\n try {\n const response = await api.patch(`/lists/${listId}`, data);\n return response.data;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIGetFavoriteLeads = async (\n userId: string,\n page: number,\n limit: number,\n): Promise<{\n total: number;\n data: { company: TCompany; lead: TContactSimpleDetails }[];\n}> => {\n try {\n const response = await api.get(\n `/lists/user/${userId}/favorites/leads?page=${page}&limit=${limit}`,\n );\n return response.data as { total: number; data: { company: TCompany; lead: TContactSimpleDetails }[] };\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIGetFavoriteCompanies = async (\n userId: string,\n page: number,\n limit: number,\n): Promise<{ total: number; companies: TCompany[] }> => {\n try {\n const response = await api.get(\n `/lists/user/${userId}/favorites/companies?page=${page}&limit=${limit}`,\n );\n return response.data as { total: number; companies: TCompany[] };\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIGetFavoriteJobs = async (\n userId: string,\n page: number,\n limit: number,\n): Promise<{ total: number; jobs: TJobWithCompany[] }> => {\n try {\n const response = await api.get(\n `/lists/user/${userId}/favorites/jobs?page=${page}&limit=${limit}`,\n );\n return response.data as { total: number; jobs: TJobWithCompany[] };\n } catch (error: any) {\n return checkError(error);\n }\n};\n","import { Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';\nimport Button from '../../../components/button/Button';\nimport { useState } from 'react';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { z } from 'zod';\n\ninterface ListModalProps {\n isOpen: boolean;\n onClose: () => void;\n onSubmit: (data: {\n name: string;\n description: string;\n isActive: boolean;\n }) => Promise;\n initialData?: { name: string; description: string; isActive: boolean };\n title?: string;\n}\n\n// Cria um schema Zod para validar o formulário\nconst listSchema = z.object({\n name: z.string().nonempty({ message: 'List name cannot be empty.' }),\n description: z.string().optional(),\n isActive: z.boolean().default(true),\n});\n\nexport default function ListModal({\n isOpen,\n onClose,\n onSubmit,\n initialData = { name: '', description: '', isActive: true },\n title = 'Create List',\n}: ListModalProps) {\n const [formData, setFormData] = useState(initialData);\n const [isLoading, setIsLoading] = useState(false);\n\n const { handleAPIError } = useNotification();\n\n // Estado local para guardar o erro de \"List Name\"\n const [nameError, setNameError] = useState('');\n\n const handleSubmit = async () => {\n // Faz a validação usando o Zod\n const result = listSchema.safeParse(formData);\n\n if (!result.success) {\n // Captura a mensagem de erro especificamente para o campo \"name\"\n const nameErr = result.error.formErrors.fieldErrors.name;\n if (nameErr && nameErr.length > 0) {\n setNameError(nameErr[0]);\n }\n return;\n }\n setNameError('');\n\n setIsLoading(true);\n try {\n await onSubmit(formData);\n onClose();\n } catch (error: any) {\n console.error(error);\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n \n {title}\n \n
      \n \n {\n setFormData(prev => ({ ...prev, name: e.target.value }));\n if (nameError) setNameError('');\n }}\n />\n {nameError && (\n

      {nameError}

      \n )}\n
      \n\n
      \n \n \n setFormData(prev => ({ ...prev, description: e.target.value }))\n }\n />\n
      \n
      \n\n \n \n\n \n \n \n );\n}\n","import {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n Spinner,\n} from 'reactstrap';\nimport Button from '../../../components/button/Button';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport {\n APIGetLists,\n APIUpdateLeads,\n APICreateList,\n} from '../../../services/api/api.list';\nimport { useEffect, useState } from 'react';\nimport { TFavoriteItemList, TList } from '../../../types/list.types';\nimport Badge from '../../../components/badge/Badge';\nimport ListModal from './ListModal';\n\nexport interface SaveLeadsModalProps {\n isOpen: boolean;\n onClose: () => void;\n favorites: TFavoriteItemList[];\n}\n\nexport default function SaveLeadsModal({\n isOpen,\n onClose,\n favorites,\n}: SaveLeadsModalProps) {\n const { user } = useAuth();\n const { handleAPIError, createNotification } = useNotification();\n\n const [lists, setLists] = useState([]);\n const [selectedListId, setSelectedListId] = useState(null);\n const [isCreatingList, setIsCreatingList] = useState(false);\n const [newListData, setNewListData] = useState({ name: '', description: '' });\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (isOpen) {\n getUserLists();\n }\n }, [isOpen]);\n\n const getUserLists = async () => {\n if (!user) return;\n\n try {\n const response = await APIGetLists(user.publicId);\n setLists(response);\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error(error);\n }\n };\n\n const handleSaveToList = async () => {\n setIsLoading(true);\n if (!selectedListId) {\n createNotification('danger', 'Please select a list to save the leads.');\n return;\n }\n\n try {\n await APIUpdateLeads(selectedListId, favorites, 'add');\n createNotification('success', 'Leads saved successfully.');\n onClose();\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleCreateListSubmit = async (data: {\n name: string;\n description: string;\n }) => {\n const newList = await APICreateList({ ...data, favorites });\n createNotification('success', 'List created and leads saved successfully.');\n setLists((prevLists: TList[]) => [...prevLists, newList as TList]);\n setSelectedListId(newList.publicId);\n setIsCreatingList(false);\n setNewListData({ name: '', description: '' });\n onClose();\n };\n\n return (\n <>\n \n Save Leads\n \n

      Choose an existing list or create a new one to save the leads.

      \n\n {/* Existing Lists */}\n \n
      Select a List
      \n
        \n {lists\n .filter(list => !list.isDeleted)\n .map((list: TList) => (\n {\n setSelectedListId(list.publicId);\n console.log('selected', list.publicId);\n }}\n >\n
        \n {list.name}\n \n
        \n \n ))}\n
      \n \n\n {/* Create New List */}\n \n
      \n \n \n \n {isLoading ? (\n \n ) : (\n 'Save'\n )}\n \n \n
      \n\n {/* Create New List Modal */}\n {isCreatingList && (\n setIsCreatingList(false)}\n onSubmit={handleCreateListSubmit}\n title=\"Create New List\"\n />\n )}\n \n );\n}\n","var _excluded = [\"className\", \"cssModule\", \"innerRef\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]),\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction CardBody(props) {\n var className = props.className,\n cssModule = props.cssModule,\n innerRef = props.innerRef,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'card-body'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n}\nCardBody.propTypes = propTypes;\nexport default CardBody;","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach((key) => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data.arrayBuffer().then(toArray).then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, (encoded) => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE, } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType),\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType),\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1),\n }\n : {\n type: PACKET_TYPES_REVERSE[type],\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET, } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, (encodedPacket) => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, (encodedPacket) => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n },\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* State.READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* State.READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* State.READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* State.READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* State.READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (state === 2 /* State.READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* State.READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n },\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload, };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\nexport const defaultBinaryType = \"arraybuffer\";\nexport function createCookieJar() { }\n","import { globalThisShim as globalThis } from \"./globals.node.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n/**\n * Generates a random 8-characters string.\n */\nexport function randomString() {\n return (Date.now().toString(36).substring(3) +\n Math.random().toString(36).substring(2, 5));\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port !== 443)) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { Transport } from \"../transport.js\";\nimport { randomString } from \"../util.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n constructor() {\n super(...arguments);\n this._polling = false;\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this._poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this._polling || !this.writable) {\n let total = 0;\n if (this._polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n _poll() {\n this._polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this._polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this._poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","import { Polling } from \"./polling.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globals.node.js\";\nimport { hasCORS } from \"../contrib/has-cors.js\";\nfunction empty() { }\nexport class BaseXHR extends Polling {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(createRequest, uri, opts) {\n super();\n this.createRequest = createRequest;\n installTimerFunctions(this, opts);\n this._opts = opts;\n this._method = opts.method || \"GET\";\n this._uri = uri;\n this._data = undefined !== opts.data ? opts.data : null;\n this._create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n _create() {\n var _a;\n const opts = pick(this._opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this._opts.xd;\n const xhr = (this._xhr = this.createRequest(opts));\n try {\n xhr.open(this._method, this._uri, true);\n try {\n if (this._opts.extraHeaders) {\n // @ts-ignore\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this._opts.extraHeaders) {\n if (this._opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this._opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this._method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this._opts.withCredentials;\n }\n if (this._opts.requestTimeout) {\n xhr.timeout = this._opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(\n // @ts-ignore\n xhr.getResponseHeader(\"set-cookie\"));\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this._onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this._onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this._data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this._onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this._index = Request.requestsCount++;\n Request.requests[this._index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n _onError(err) {\n this.emitReserved(\"error\", err, this._xhr);\n this._cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n _cleanup(fromError) {\n if (\"undefined\" === typeof this._xhr || null === this._xhr) {\n return;\n }\n this._xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this._xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this._index];\n }\n this._xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n _onLoad() {\n const data = this._xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this._cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this._cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\nconst hasXHR2 = (function () {\n const xhr = newRequest({\n xdomain: false,\n });\n return xhr && xhr.responseType !== null;\n})();\n/**\n * HTTP long-polling based on the built-in `XMLHttpRequest` object.\n *\n * Usage: browser\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\n */\nexport class XHR extends BaseXHR {\n constructor(opts) {\n super(opts);\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd }, this.opts);\n return new Request(newRequest, this.uri(), opts);\n }\n}\nfunction newRequest(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { pick, randomString } from \"../util.js\";\nimport { encodePacket } from \"engine.io-parser\";\nimport { globalThisShim as globalThis, nextTick } from \"../globals.node.js\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class BaseWS extends Transport {\n get name() {\n return \"websocket\";\n }\n doOpen() {\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws = this.createSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n this.doWrite(packet, data);\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.onerror = () => { };\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\nconst WebSocketCtor = globalThis.WebSocket || globalThis.MozWebSocket;\n/**\n * WebSocket transport based on the built-in `WebSocket` object.\n *\n * Usage: browser, Node.js (since v21), Deno, Bun\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * @see https://caniuse.com/mdn-api_websocket\n * @see https://nodejs.org/api/globals.html#websocket\n */\nexport class WS extends BaseWS {\n createSocket(uri, protocols, opts) {\n return !isReactNative\n ? protocols\n ? new WebSocketCtor(uri, protocols)\n : new WebSocketCtor(uri)\n : new WebSocketCtor(uri, protocols, opts);\n }\n doWrite(_packet, data) {\n this.ws.send(data);\n }\n}\n","import { XHR } from \"./polling-xhr.node.js\";\nimport { WS } from \"./websocket.node.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: XHR,\n};\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"../globals.node.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\n/**\n * WebTransport transport based on the built-in `WebTransport` object.\n *\n * Usage: browser, Node.js (with the `@fails-components/webtransport` package)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebTransport\n * @see https://caniuse.com/webtransport\n */\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n try {\n // @ts-ignore\n this._transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this._transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this._transport.ready.then(() => {\n this._transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this._writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this._writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this._writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n if (str.length > 8000) {\n throw \"URI too long\";\n }\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports as DEFAULT_TRANSPORTS } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { createCookieJar, defaultBinaryType, nextTick, } from \"./globals.node.js\";\nconst withEventListeners = typeof addEventListener === \"function\" &&\n typeof removeEventListener === \"function\";\nconst OFFLINE_EVENT_LISTENERS = [];\nif (withEventListeners) {\n // within a ServiceWorker, any event handler for the 'offline' event must be added on the initial evaluation of the\n // script, so we create one single event listener here which will forward the event to the socket instances\n addEventListener(\"offline\", () => {\n OFFLINE_EVENT_LISTENERS.forEach((listener) => listener());\n }, false);\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes without upgrade mechanism, which means that it will keep the first low-level transport that\n * successfully establishes the connection.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithoutUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithUpgrade\n * @see Socket\n */\nexport class SocketWithoutUpgrade extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n this._pingInterval = -1;\n this._pingTimeout = -1;\n this._maxPayload = -1;\n /**\n * The expiration timestamp of the {@link _pingTimeoutTimer} object is tracked, in case the timer is throttled and the\n * callback is not fired on time. This can happen for example when a laptop is suspended or when a phone is locked.\n */\n this._pingTimeoutTime = Infinity;\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n const parsedUri = parse(uri);\n opts.hostname = parsedUri.host;\n opts.secure =\n parsedUri.protocol === \"https\" || parsedUri.protocol === \"wss\";\n opts.port = parsedUri.port;\n if (parsedUri.query)\n opts.query = parsedUri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = [];\n this._transportsByName = {};\n opts.transports.forEach((t) => {\n const transportName = t.prototype.name;\n this.transports.push(transportName);\n this._transportsByName[transportName] = t;\n });\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n if (withEventListeners) {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this._beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this._offlineEventListener = () => {\n this._onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener);\n }\n }\n if (this.opts.withCredentials) {\n this._cookieJar = createCookieJar();\n }\n this._open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new this._transportsByName[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n _open() {\n if (this.transports.length === 0) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n const transportName = this.opts.rememberUpgrade &&\n SocketWithoutUpgrade.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1\n ? \"websocket\"\n : this.transports[0];\n this.readyState = \"opening\";\n const transport = this.createTransport(transportName);\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this._onDrain.bind(this))\n .on(\"packet\", this._onPacket.bind(this))\n .on(\"error\", this._onError.bind(this))\n .on(\"close\", (reason) => this._onClose(\"transport close\", reason));\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n _onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this._sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n this._resetPingTimeout();\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this._onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this._pingInterval = data.pingInterval;\n this._pingTimeout = data.pingTimeout;\n this._maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this._resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n _resetPingTimeout() {\n this.clearTimeoutFn(this._pingTimeoutTimer);\n const delay = this._pingInterval + this._pingTimeout;\n this._pingTimeoutTime = Date.now() + delay;\n this._pingTimeoutTimer = this.setTimeoutFn(() => {\n this._onClose(\"ping timeout\");\n }, delay);\n if (this.opts.autoUnref) {\n this._pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n _onDrain() {\n this.writeBuffer.splice(0, this._prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this._prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this._getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this._prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n _getWritablePackets() {\n const shouldCheckPayloadSize = this._maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this._maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Checks whether the heartbeat timer has expired but the socket has not yet been notified.\n *\n * Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the\n * `write()` method then the message would not be buffered by the Socket.IO client.\n *\n * @return {boolean}\n * @private\n */\n /* private */ _hasPingExpired() {\n if (!this._pingTimeoutTime)\n return true;\n const hasExpired = Date.now() > this._pingTimeoutTime;\n if (hasExpired) {\n this._pingTimeoutTime = 0;\n nextTick(() => {\n this._onClose(\"ping timeout\");\n }, this.setTimeoutFn);\n }\n return hasExpired;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a message. Alias of {@link Socket#write}.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n send(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n _sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this._onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n _onError(err) {\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n if (this.opts.tryAllTransports &&\n this.transports.length > 1 &&\n this.readyState === \"opening\") {\n this.transports.shift();\n return this._open();\n }\n this.emitReserved(\"error\", err);\n this._onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n _onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this._pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (withEventListeners) {\n if (this._beforeunloadEventListener) {\n removeEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this._offlineEventListener) {\n const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener);\n if (i !== -1) {\n OFFLINE_EVENT_LISTENERS.splice(i, 1);\n }\n }\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n }\n }\n}\nSocketWithoutUpgrade.protocol = protocol;\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see Socket\n */\nexport class SocketWithUpgrade extends SocketWithoutUpgrade {\n constructor() {\n super(...arguments);\n this._upgrades = [];\n }\n onOpen() {\n super.onOpen();\n if (\"open\" === this.readyState && this.opts.upgrade) {\n for (let i = 0; i < this._upgrades.length; i++) {\n this._probe(this._upgrades[i]);\n }\n }\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n _probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this._upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n onHandshake(data) {\n this._upgrades = this._filterUpgrades(data.upgrades);\n super.onHandshake(data);\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n _filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n for (let i = 0; i < upgrades.length; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * @example\n * import { Socket } from \"engine.io-client\";\n *\n * const socket = new Socket();\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see SocketWithUpgrade\n */\nexport class Socket extends SocketWithUpgrade {\n constructor(uri, opts = {}) {\n const o = typeof uri === \"object\" ? uri : opts;\n if (!o.transports ||\n (o.transports && typeof o.transports[0] === \"string\")) {\n o.transports = (o.transports || [\"polling\", \"websocket\", \"webtransport\"])\n .map((transportName) => DEFAULT_TRANSPORTS[transportName])\n .filter((t) => !!t);\n }\n super(uri, o);\n }\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n /**\n * A map containing acknowledgement handlers.\n *\n * The `withError` attribute is used to differentiate handlers that accept an error as first argument:\n *\n * - `socket.emit(\"test\", (err, value) => { ... })` with `ackTimeout` option\n * - `socket.timeout(5000).emit(\"test\", (err, value) => { ... })`\n * - `const value = await socket.emitWithAck(\"test\")`\n *\n * From those that don't:\n *\n * - `socket.emit(\"test\", (value) => { ... });`\n *\n * In the first case, the handlers will be called with an error when:\n *\n * - the timeout is reached\n * - the socket gets disconnected\n *\n * In the second case, the handlers will be simply discarded upon disconnection, since the client will never receive\n * an acknowledgement from the server.\n *\n * @private\n */\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n var _a, _b, _c;\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = (_b = (_a = this.io.engine) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.writable;\n const isConnected = this.connected && !((_c = this.io.engine) === null || _c === void 0 ? void 0 : _c._hasPingExpired());\n const discardPacket = this.flags.volatile && !isTransportWritable;\n if (discardPacket) {\n }\n else if (isConnected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n const fn = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, args);\n };\n fn.withError = true;\n this.acks[id] = fn;\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n return new Promise((resolve, reject) => {\n const fn = (arg1, arg2) => {\n return arg1 ? reject(arg1) : resolve(arg2);\n };\n fn.withError = true;\n args.push(fn);\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n // the packet has already been acknowledged\n return;\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n this._clearAcks();\n }\n /**\n * Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from\n * the server.\n *\n * @private\n */\n _clearAcks() {\n Object.keys(this.acks).forEach((id) => {\n const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id);\n if (!isBuffered) {\n // note: handlers that do not accept an error as first argument are ignored here\n const ack = this.acks[id];\n delete this.acks[id];\n if (ack.withError) {\n ack.call(this, new Error(\"socket has been disconnected\"));\n }\n }\n });\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowledgement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (typeof ack !== \"function\") {\n return;\n }\n delete this.acks[packet.id];\n // @ts-ignore FIXME ack is incorrectly inferred as 'never'\n if (ack.withError) {\n packet.data.unshift(null);\n }\n // @ts-ignore\n ack.apply(this, packet.data);\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n this._drainQueue(true);\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n if (!v) {\n this.skipReconnect = true;\n }\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), \n // @ts-ignore\n on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called when:\n *\n * - the low-level engine is closed\n * - the parser encountered a badly formatted packet\n * - all sockets are disconnected\n *\n * @private\n */\n onclose(reason, description) {\n var _a;\n this.cleanup();\n (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\nexport { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from \"engine.io-client\";\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","import { io } from 'socket.io-client';\n\nconst API_URL = process.env.REACT_APP_API_SOCKET_URL;\nconsole.log('API_URL', API_URL);\nconst socket = io(API_URL, {\n path: '/socket.io',\n transports: ['websocket'],\n reconnectionAttempts: 5,\n autoConnect: true,\n forceNew: true\n});\n\n\nexport const createJobSearchSocket = (jobSearchId: string) => {\n return io(API_URL, {\n path: '/socket.io',\n transports: ['websocket'],\n reconnectionAttempts: 5,\n autoConnect: true,\n forceNew: true,\n query: { jobSearchId } // aqui você passa o parâmetro necessário\n });\n};\n\nexport default socket;","import React, {\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n useCallback,\n} from 'react';\nimport {\n Button,\n TooltipComponent,\n} from '../../../components/Component';\nimport {\n UncontrolledDropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faCircleNotch,\n faClose,\n faEllipsisV,\n} from '@fortawesome/free-solid-svg-icons';\nimport Badge from '../../../components/badge/Badge';\n\nexport enum Color {\n Primary = 'primary',\n Secondary = 'secondary',\n Danger = 'danger',\n}\n\ntype Action = {\n label: string;\n onClick: () => void;\n icon: any;\n color?: Color;\n tooltip?: string;\n disabled?: boolean;\n};\n\ntype Props = {\n selectedItemsCount: number;\n isLoading?: boolean;\n actions: Action[];\n onClearSelection: () => void;\n};\n\nconst SelectedItemsMenu: React.FC = ({\n selectedItemsCount,\n isLoading,\n actions,\n onClearSelection,\n}) => {\n const [menuVisible, setMenuVisible] = useState(false);\n const [shouldRender, setShouldRender] = useState(false);\n const [isClosing, setIsClosing] = useState(false);\n\n const [showOverflowMenu, setShowOverflowMenu] = useState(false);\n\n const [mainActions, setMainActions] = useState(actions);\n const [overflowActions, setOverflowActions] = useState([]);\n\n const actionsContainerRef = useRef(null);\n const moreButtonRef = useRef(null);\n\n\n useEffect(() => {\n if (selectedItemsCount > 0) {\n setShouldRender(true);\n setIsClosing(false);\n setTimeout(() => setMenuVisible(true), 50);\n } else if (menuVisible) {\n setIsClosing(true);\n setTimeout(() => {\n setMenuVisible(false);\n setShouldRender(false);\n setIsClosing(false);\n }, 500);\n }\n }, [selectedItemsCount, menuVisible]);\n\n const recalcActions = useCallback(() => {\n if (!actionsContainerRef.current || actions.length === 0) {\n setMainActions(actions);\n setOverflowActions([]);\n return;\n }\n\n const containerWidth = actionsContainerRef.current.offsetWidth;\n\n const moreBtnWidth = moreButtonRef.current?.offsetWidth ?? 80;\n\n const buttonAvgWidth = 145;\n\n const totalActionsWidth = actions.length * buttonAvgWidth;\n const availableWidth = containerWidth - moreBtnWidth;\n\n if (totalActionsWidth <= availableWidth) {\n setMainActions(actions);\n setOverflowActions([]);\n return;\n }\n\n let usedWidth = 0;\n const fitted: Action[] = [];\n const overflowed: Action[] = [];\n\n for (const action of actions) {\n if (usedWidth + buttonAvgWidth <= availableWidth) {\n fitted.push(action);\n usedWidth += buttonAvgWidth;\n } else {\n overflowed.push(action);\n }\n }\n\n setMainActions(fitted);\n setOverflowActions(overflowed);\n }, [actions]);\n\n useLayoutEffect(() => {\n function handleResize() {\n recalcActions();\n }\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [recalcActions]);\n\n if (!shouldRender) return null;\n\n return (\n \n
      \n \n
      \n\n \n {mainActions.map((action, index) => (\n
      \n {menuVisible && !showOverflowMenu && (\n \n )}\n \n ) : (\n action.icon\n )\n }\n id={`action-${index}`}\n >\n {isLoading && index === 0 ? 'Processing...' : action.label}\n \n
      \n ))}\n\n {overflowActions.length > 0 && (\n setShowOverflowMenu(!showOverflowMenu)}\n >\n \n \n More\n \n\n {menuVisible && !showOverflowMenu && (\n \n )}\n\n \n {overflowActions.map((action, idx) => (\n {\n action.onClick();\n setShowOverflowMenu(false);\n }}\n disabled={action.disabled || isLoading}\n >\n \n {isLoading && idx === 0 ? (\n \n ) : (\n action.icon\n )}\n {action.label}\n \n \n ))}\n \n \n )}\n \n\n
      \n \n
      \n \n );\n};\n\nexport default SelectedItemsMenu;\n","import React from 'react';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';\nimport { Button } from '../../../components/Component';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faCircleCheck,\n faCircleExclamation,\n faTriangleExclamation,\n} from '@fortawesome/free-solid-svg-icons';\n\n// Available confirmation types\nexport enum ConfirmationType {\n SUCCESS = 'success',\n WARNING = 'warning',\n INFO = 'info',\n}\n\ninterface ConfirmationModalProps {\n isOpen: boolean;\n toggle: () => void;\n onConfirm: () => void;\n isLoading: boolean;\n\n // Customizable content\n title: string;\n message: string;\n subMessage?: string;\n\n // Confirmation type (controls colors and icons)\n type?: 'success' | 'warning' | 'info';\n\n // Optional customization\n cancelButtonText?: string;\n confirmButtonText?: string;\n hideCancel?: boolean;\n}\n\nconst ConfirmationModal: React.FC = ({\n isOpen,\n toggle,\n onConfirm,\n isLoading,\n title,\n message,\n subMessage,\n type = ConfirmationType.INFO,\n cancelButtonText = 'Cancel',\n confirmButtonText = 'Confirm',\n hideCancel = false,\n}) => {\n // Configurações baseadas no tipo\n const getTypeConfig = () => {\n switch (type) {\n case ConfirmationType.SUCCESS:\n return {\n icon: faCircleCheck,\n iconColor: 'text-green-500',\n buttonColor: 'primary',\n };\n case ConfirmationType.WARNING:\n return {\n icon: faTriangleExclamation,\n iconColor: 'text-orange-500',\n buttonColor: 'danger',\n };\n case ConfirmationType.INFO:\n default:\n return {\n icon: faCircleExclamation,\n iconColor: 'text-blue-500',\n buttonColor: 'primary',\n };\n }\n };\n\n const { icon, iconColor, buttonColor } = getTypeConfig();\n\n // Prepare button with loading state\n const renderButtonContent = () => {\n if (isLoading) {\n return (\n <>\n \n Processing...\n \n );\n }\n\n return <>{confirmButtonText};\n };\n\n return (\n \n \n
      \n \n {title}\n
      \n
      \n \n

      {message}

      \n {subMessage &&

      {subMessage}

      }\n
      \n \n {!hideCancel && (\n \n {cancelButtonText}\n \n )}\n \n {renderButtonContent()}\n \n \n
      \n );\n};\n\nexport default ConfirmationModal;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport {\n Block,\n Button,\n DataTable,\n DataTableBody,\n DataTableHead,\n DataTableRow,\n PaginationComponent,\n TooltipComponent,\n} from '../../../components/Component';\nimport {\n APIDeleteContactsFromJobSearch,\n APIGetJobSearchWithJobs,\n APIRefreshJobsFromJobSearch,\n APIRemoveJobsFromCampaign,\n APISearchJobSearchForJob,\n APIUpdateJobSearch,\n} from '../../../services/api/api.job-search';\nimport { TJobWithCompany } from '../../../types/job.types';\nimport { Contact } from '../../../types/contact.types';\nimport JobRow from './JobRow';\nimport { useNavigate, useParams } from 'react-router';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { TCampaignJobsCompany } from '../../../types/lists.types';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faEdit,\n faEllipsis,\n faEnvelope,\n faFileExport,\n faMagnifyingGlassPlus,\n faStar,\n faTrashCan,\n faUser,\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n APIExportContacts,\n APISearchContactEmail,\n} from '../../../services/api/api.contact';\nimport SaveLeadsModal from '../../components/modal/SaveLeadsModal';\nimport { useSearchParams } from 'react-router-dom';\nimport { TJobScrapFilters } from '../../../types/jobScrape.types';\nimport { TLeadFilters } from '../../../types/leadFilters.types';\nimport LeadFilter from '../../../components/filters/LeadFilter';\nimport JobCriteriaFilter from '../../components/JobCriteriaForm/JobCriteriaFilter';\nimport { formatDate } from '../../../utils/date.util';\n\nimport {\n Card,\n CardBody,\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n} from 'reactstrap';\nimport { LoadingModal } from '../../components/modal/LoadingModal';\nimport LoadingMessages from '../../../components/alerts/LoadingMessages';\nimport { batchProcess } from '../../../utils/Utils';\nimport Lottie from 'lottie-react';\nimport { createJobSearchSocket } from '../../../services/api/socket';\nimport noDataFoundAnim from '../../../assets/animations/no_data_found.anim.json';\nimport SelectedItemsMenu, {\n Color,\n} from '../../components/menu/SelectedItemsMenu';\nimport LoadingComponent from '../../../components/loading/Loading';\nimport ConfirmationModal from '../../components/modal/ConfirmationModal';\n\ntype SelectedItem = {\n jobId: string;\n contactId?: string;\n};\n\ntype SocketPayload = {\n id: string;\n finished: boolean;\n};\n\nconst UserCampaignDetails = () => {\n const [isLoading, setIsLoading] = useState(true);\n const [isLoadingUpdate, setIsLoadingUpdate] = useState(false);\n const [campaign, setCampaign] = useState(\n {} as TCampaignJobsCompany,\n );\n const [jobs, setJobs] = useState([]);\n const [contacts, setContacts] = useState([]);\n const [showSaveLeadsModal, setShowSaveLeadsModal] = useState(false);\n const [showFailedModal, setShowFailedModal] = useState(false);\n const [contactsPending, setContactsPending] = useState(false);\n const [searchParams, setSearchParams] = useState(useSearchParams()[0]);\n const initialPage = parseInt(searchParams.get('page') || '1', 10);\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [totalItems, setTotalItems] = useState(0);\n const [itemsPerPage, setItemsPerPage] = useState(50);\n const navigate = useNavigate();\n const { campaignPublicId } = useParams();\n const { user } = useAuth();\n const { handleAPIError, createNotification } = useNotification();\n\n const [loadingEmails, setLoadingEmails] = useState<{\n [contactId: string]: boolean;\n }>({});\n const [loadingJobs, setLoadingJobs] = useState>(new Set());\n const [selectedItems, setSelectedItems] = useState([]);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [currentStep, setCurrentStep] = useState(1);\n const [jobFilters, setJobFilters] = useState({\n ...campaign.jobFilters,\n });\n const [leadFilters, setLeadFilters] = useState({\n ...campaign.leadFilters,\n });\n const [isLoadingJobs, setIsLoadingJobs] = useState(false);\n const [searchCompleted, setSearchCompleted] = useState(false);\n const [searchCompany, setSearchCompany] = useState('');\n const [searchJobTitle, setSearchJobTitle] = useState('');\n const [socketInstance, setSocketInstance] = useState(null);\n const [resetSearch, setResetSearch] = useState(false);\n const [showSearchConfirmation, setShowSearchConfirmation] = useState(false);\n const [jobsProcessing, setJobsProcessing] =\n useState<{ id: string; finished: boolean }[]>();\n\n useEffect(() => {\n if (socketInstance) {\n socketInstance.on('contactsStarted', (payload: SocketPayload) => {\n console.log('Processing of contacts started', payload);\n setJobsProcessing(prev => {\n const exists = (prev ?? []).some(p => p.id === payload.id);\n return exists ? prev : [...(prev ?? []), payload];\n });\n });\n\n socketInstance.on('contactsCompleted', (payload: SocketPayload) => {\n console.log('Processing of contacts completed:', payload);\n setJobsProcessing(prev => {\n return (prev ?? []).filter(p => p.id !== payload.id);\n });\n });\n\n return () => {\n socketInstance.off('contactsStarted');\n socketInstance.off('contactsCompleted');\n };\n }\n\n return () => {};\n }, [socketInstance]);\n\n useEffect(() => {\n const hasPendingJobs =\n (jobsProcessing?.length ?? 0) > 0 &&\n (jobsProcessing ?? []).some(job => job.finished === false);\n\n console.log('Has pending jobs:', hasPendingJobs);\n setContactsPending(hasPendingJobs);\n }, [jobsProcessing]);\n\n useEffect(() => {\n if (campaignPublicId) {\n const socket = createJobSearchSocket(campaignPublicId);\n setSocketInstance(socket);\n socket.on('connect', () => {\n console.log(\n 'Connected to WebSocket for job search with id:',\n campaignPublicId,\n );\n });\n socket.on(\n 'contactFound',\n (payload: { contact: Contact; job: TJobWithCompany }) => {\n console.log('Novo contato recebido via socket:', payload);\n setContacts(prevContacts => {\n const exists = prevContacts.some(\n c => c.publicId === payload.contact.publicId,\n );\n return exists ? prevContacts : [...prevContacts, payload.contact];\n });\n setJobs(prevJobs => {\n const exists = prevJobs.some(\n j => j.publicId === payload.job.publicId,\n );\n return exists ? prevJobs : [...prevJobs, payload.job];\n });\n setCampaign(prevCampaign => {\n const updatedJobs = prevCampaign.jobs.some(\n j => j.publicId === payload.job.publicId,\n )\n ? prevCampaign.jobs\n : [...prevCampaign.jobs, payload.job];\n const updatedContacts = prevCampaign.contacts.some(\n c => c.publicId === payload.contact.publicId,\n )\n ? prevCampaign.contacts\n : [...prevCampaign.contacts, payload.contact];\n return {\n ...prevCampaign,\n jobs: updatedJobs,\n contacts: updatedContacts,\n };\n });\n },\n );\n socket.on('connect_error', error =>\n console.error('WebSocket connection error:', error),\n );\n return () => {\n socket.disconnect();\n };\n }\n }, [campaignPublicId]);\n\n useEffect(() => {\n const pageFromUrl = parseInt(searchParams.get('page') || '1', 10);\n if (!isNaN(pageFromUrl) && pageFromUrl !== currentPage) {\n setCurrentPage(pageFromUrl);\n }\n }, [searchParams]);\n\n const fetchCampaignWithDetails = async () => {\n setIsLoading(true);\n try {\n const data = await APIGetJobSearchWithJobs(\n campaignPublicId!,\n user!.publicId,\n currentPage,\n itemsPerPage,\n );\n setJobs(data.campaign.jobs);\n setCampaign(data.campaign);\n setContacts(data.campaign.contacts);\n setTotalItems(data.totalJobs);\n setSelectedItems([]);\n setContactsPending(\n data.campaign.status === 'Pending' ||\n data.campaign.status === 'In Progress',\n );\n setShowFailedModal(data.campaign.status === 'Failed');\n } catch (error: any) {\n console.log('ERROR', error);\n if (error.message.includes('not found')) {\n navigate('/job-searches');\n }\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (!campaignPublicId || !user?.publicId) return;\n let isCancelled = false;\n setIsLoading(true);\n const fetchData = async () => {\n try {\n const data = await APIGetJobSearchWithJobs(\n campaignPublicId,\n user.publicId,\n currentPage,\n itemsPerPage,\n );\n if (!isCancelled) {\n setJobs(data.campaign.jobs);\n setCampaign(data.campaign);\n setContacts(data.campaign.contacts);\n setTotalItems(data.totalJobs);\n setSelectedItems([]);\n setContactsPending(data.campaign.status === 'Pending');\n setShowFailedModal(data.campaign.status === 'Failed');\n }\n } catch (error: any) {\n if (error.message.includes('not found')) {\n navigate('/job-searches');\n }\n handleAPIError(error, error.message);\n } finally {\n if (!isCancelled) {\n setIsLoading(false);\n }\n }\n };\n fetchData();\n return () => {\n isCancelled = true;\n };\n }, [campaignPublicId, user?.publicId, currentPage, itemsPerPage]);\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n const newSearchParams = new URLSearchParams(searchParams.toString());\n newSearchParams.set('page', page.toString());\n setSearchParams(newSearchParams);\n };\n\n const handleEditFilters = () => {\n setJobFilters({ ...campaign.jobFilters });\n setLeadFilters({ ...campaign.leadFilters });\n setCurrentStep(1);\n setIsModalOpen(true);\n setResetSearch(false);\n };\n\n const validateCampaignFilters = (filters: TJobScrapFilters): boolean => {\n const jobValidFilters = Object.entries(filters).reduce(\n (acc, [key, value]) => {\n if (\n value !== '' &&\n value !== null &&\n (!Array.isArray(value) || value.length > 0)\n ) {\n acc[key] = value;\n }\n return acc;\n },\n {} as TJobScrapFilters,\n );\n if (Object.keys(jobValidFilters).length === 0) {\n createNotification('danger', 'Please enter at least one job filter.');\n return false;\n }\n if (filters.createdAtGte) {\n jobValidFilters.createdAtGte = formatDate(new Date(filters.createdAtGte));\n }\n if (filters.createdAtLte) {\n jobValidFilters.createdAtLte = formatDate(new Date(filters.createdAtLte));\n }\n setJobFilters(jobValidFilters);\n return true;\n };\n\n const handleSaveFilters = async () => {\n if (!validateCampaignFilters(jobFilters)) {\n setCurrentStep(2);\n return;\n }\n if (Object.keys(leadFilters).length === 0) {\n createNotification('danger', 'Please configure at least one lead filter');\n setCurrentStep(3);\n return;\n }\n try {\n setIsLoadingUpdate(true);\n\n if (resetSearch) {\n if (contacts.length > 0) {\n const leadIds = contacts.map(contact => contact.publicId);\n await APIDeleteContactsFromJobSearch(campaign.publicId, leadIds);\n }\n if (jobs.length > 0) {\n await APIRemoveJobsFromCampaign(\n campaign.publicId,\n jobs.map(job => job.publicId),\n );\n }\n createNotification(\n 'success',\n 'All jobs and leads have been successfully removed',\n );\n }\n await APIUpdateJobSearch(campaign.publicId, {\n name: campaign.name,\n jobFilters,\n leadFilters,\n });\n if (resetSearch) {\n await APIRefreshJobsFromJobSearch(campaign.publicId);\n }\n setIsLoadingUpdate(false);\n setIsModalOpen(false);\n fetchCampaignWithDetails();\n createNotification(\n 'success',\n resetSearch\n ? 'Filters updated and search successfully recreated'\n : 'Filters updated successfully',\n );\n setResetSearch(false);\n } catch (error: any) {\n handleAPIError(error, error.message);\n setIsLoadingUpdate(false);\n }\n };\n\n const handleRefreshJobs = async () => {\n try {\n setIsLoadingJobs(true);\n setIsLoading(true);\n await APIRefreshJobsFromJobSearch(campaign.publicId);\n setSearchCompleted(true);\n setIsLoading(false);\n setIsLoadingJobs(false);\n fetchCampaignWithDetails();\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Error refreshing jobs:', error);\n setIsLoadingJobs(false);\n setIsLoading(false);\n }\n };\n\n const handleRowSelection = (\n jobId: string,\n contactId: string | undefined,\n isSelected: boolean,\n ) => {\n setSelectedItems(prev =>\n isSelected\n ? [...prev, { jobId, contactId }]\n : prev.filter(\n item => item.jobId !== jobId || item.contactId !== contactId,\n ),\n );\n };\n\n useEffect(() => {\n const pageFromUrl = parseInt(searchParams.get('page') || '1', 10);\n if (!isNaN(pageFromUrl)) {\n setCurrentPage(pageFromUrl);\n }\n }, []);\n\n const handleSearchContactsForSelectedJobs = async () => {\n if (selectedItems.length === 0) {\n createNotification('danger', 'No jobs selected for lead search.');\n return;\n }\n const selectedJobIds = Array.from(\n new Set(selectedItems.map(item => item.jobId)),\n );\n if (selectedJobIds.length === 0) {\n createNotification('info', 'No jobs with valid ids selected.');\n return;\n }\n createNotification('info', 'Searching leads for selected jobs...');\n setLoadingJobs(new Set(selectedJobIds));\n try {\n await batchProcess(selectedJobIds, 10, 1000, async jobId => {\n try {\n await APISearchJobSearchForJob(campaignPublicId!, jobId);\n } catch (error: any) {\n if (error.message.includes('No leads')) {\n return;\n } else {\n handleAPIError(error, error.message);\n }\n }\n });\n setLoadingJobs(new Set());\n setSelectedItems([]);\n fetchCampaignWithDetails();\n } catch (error: any) {\n setLoadingJobs(new Set());\n handleAPIError(error, 'An error occurred during the lead search.');\n }\n };\n\n const toggleSelectAll = (isChecked: boolean) => {\n if (isChecked) {\n const allFilteredItems: SelectedItem[] = filteredJobs.flatMap(job => {\n const jobContacts = contacts.filter(\n contact => contact.externalCompanyId === job.company?.coresignalId,\n );\n if (jobContacts.length === 0) {\n return [{ jobId: job.publicId }];\n }\n return jobContacts.map(contact => ({\n jobId: job.publicId,\n contactId: contact.publicId,\n }));\n });\n setSelectedItems(allFilteredItems);\n } else {\n setSelectedItems([]);\n }\n };\n\n const updateContactEmail = (\n contactId: string,\n email: string,\n confidence: 'high' | 'medium' | 'low' | 'undefined',\n ) => {\n setContacts(prevContacts =>\n prevContacts.map(contact =>\n contact.publicId === contactId\n ? { ...contact, email, confidence }\n : contact,\n ),\n );\n };\n\n const saveContacts = async () => {\n console.log('Saving selected contacts:', selectedItems);\n const validFavorites = selectedItems\n .map(item => ({\n leadId: item.contactId!,\n companyId: jobs.find(job => job.publicId === item.jobId)?.company\n ?.publicId!,\n jobId: item.jobId,\n }))\n .filter(\n item =>\n item.leadId !== undefined && item.leadId !== null && item.leadId,\n );\n if (validFavorites.length === 0) {\n createNotification('danger', 'No valid contacts selected for saving');\n return;\n }\n const payload = { favorites: validFavorites, operation: 'add' };\n console.log('Payload enviado:', JSON.stringify(payload, null, 2));\n setShowSaveLeadsModal(true);\n };\n\n const handleSetFilters = useCallback((newFilters: TLeadFilters) => {\n setLeadFilters(prevFilters => ({ ...prevFilters, ...newFilters }));\n }, []);\n\n const handleRemoveContacts = async () => {\n console.log('removing selected contacts:', selectedItems);\n const selectedContactsId = selectedItems.map(item => item.contactId);\n const contactIds = selectedContactsId.filter(\n id => id !== undefined,\n ) as string[];\n if (!campaign.publicId) {\n createNotification('danger', 'Campaign not found');\n return;\n }\n try {\n setIsLoading(true);\n await APIDeleteContactsFromJobSearch(campaign.publicId, contactIds);\n createNotification('success', 'Contacts removed successfully');\n setContacts(prevContacts =>\n prevContacts.filter(contact => !contactIds.includes(contact.publicId)),\n );\n setSelectedItems(\n selectedItems.filter(\n item =>\n item.contactId === undefined ||\n !contactIds.includes(item.contactId),\n ),\n );\n setIsLoading(false);\n setSelectedItems([]);\n } catch (error: any) {\n setIsLoading(false);\n handleAPIError(error, error.message);\n console.error('Unexpected error:', error);\n }\n };\n\n const handleRemoveSelectedJobs = async () => {\n setIsLoading(true);\n try {\n await APIRemoveJobsFromCampaign(\n campaignPublicId!,\n selectedItems.map(item => item.jobId),\n );\n createNotification(\n 'success',\n `${selectedItems.length} jobs removed successfully`,\n );\n setJobs(prevJobs =>\n prevJobs.filter(\n job => !selectedItems.some(item => item.jobId === job.publicId),\n ),\n );\n setSelectedItems([]);\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n fetchCampaignWithDetails();\n setIsLoading(false);\n }\n };\n\n const handleSearchSelectedContactsEmails = async () => {\n createNotification('info', 'Searching emails for selected contacts...');\n const selectedContacts = selectedItems.filter(\n item => item.contactId !== undefined,\n );\n const contactIds = selectedContacts.map(item => item.contactId);\n if (contactIds.length === 0) {\n createNotification('info', 'No contacts selected for email search.');\n return;\n }\n try {\n await Promise.all(\n contactIds.map(async contactId => {\n if (!contactId) return;\n setLoadingEmails(prev => ({ ...prev, [contactId]: true }));\n try {\n if (!user) {\n createNotification(\n 'danger',\n 'You need to be logged in to search emails.',\n );\n navigate('/logout');\n return;\n }\n const response = await APISearchContactEmail(\n contactId,\n user.publicId,\n );\n updateContactEmail(contactId, response.email, 'high');\n } catch (error) {\n console.error(\n `Error fetching email for contact ${contactId}`,\n error,\n );\n } finally {\n setLoadingEmails(prev => ({ ...prev, [contactId]: false }));\n }\n }),\n );\n createNotification('success', 'Email search completed.');\n } catch (error) {\n createNotification('danger', 'An error occurred during email search.');\n console.error(error);\n }\n };\n\n const handleExportToCsv = async () => {\n createNotification('info', 'Exporting contacts to CSV...');\n const selectedContacts = selectedItems\n .filter(item => item.contactId !== undefined)\n .map(item => ({\n leadId: item.contactId!,\n jobId: item.jobId || null,\n }));\n if (selectedContacts.length === 0) {\n createNotification('danger', 'No contacts selected for export');\n return;\n }\n try {\n const data = await APIExportContacts(selectedContacts, 'csv');\n createNotification('success', 'Contacts exported successfully');\n console.log('Exported contacts:', data);\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Unexpected error:', error);\n }\n };\n\n const updateJobFilters = useCallback((newFilters: TJobScrapFilters) => {\n setJobFilters(prevFilters => ({ ...prevFilters, ...newFilters }));\n }, []);\n\n const filteredJobs = jobs\n .filter(job => job.company !== null)\n .filter(job => {\n const companyMatches = job.company?.name\n .toLowerCase()\n .includes(searchCompany.toLowerCase());\n const jobTitleMatches = job.title\n .toLowerCase()\n .includes(searchJobTitle.toLowerCase());\n return (\n (searchCompany ? companyMatches : true) &&\n (searchJobTitle ? jobTitleMatches : true)\n );\n });\n\n const isAllSelected =\n selectedItems.length > 0 &&\n filteredJobs.every(job => {\n const jobContacts = contacts.filter(\n contact => contact.externalCompanyId === job.company?.coresignalId,\n );\n if (jobContacts.length === 0) {\n return selectedItems.some(\n item => item.jobId === job.publicId && item.contactId === undefined,\n );\n }\n return jobContacts.every(contact =>\n selectedItems.some(\n item =>\n item.jobId === job.publicId && item.contactId === contact.publicId,\n ),\n );\n });\n\n const actions = [\n {\n label: 'Search Leads',\n onClick: handleSearchContactsForSelectedJobs,\n icon: ,\n color: Color.Primary,\n tooltip: 'Search for leads',\n },\n {\n label: 'Search Email',\n onClick: handleSearchSelectedContactsEmails,\n icon: ,\n color: Color.Primary,\n tooltip: 'Search emails for selected contacts',\n },\n {\n label: 'Save to',\n onClick: saveContacts,\n icon: ,\n color: Color.Secondary,\n tooltip: 'Save selected contacts',\n },\n {\n label: 'Export CSV',\n onClick: handleExportToCsv,\n icon: ,\n color: Color.Secondary,\n tooltip: 'Export selected contacts to CSV',\n },\n {\n label: 'Remove Job',\n onClick: handleRemoveSelectedJobs,\n icon: ,\n color: Color.Secondary,\n tooltip: 'Remove selected jobs',\n },\n {\n label: 'Remove Lead',\n onClick: handleRemoveContacts,\n icon: ,\n color: Color.Secondary,\n tooltip: 'Remove selected leads',\n },\n ];\n\n const initiateJobSearch = () => {\n setShowSearchConfirmation(true);\n };\n\n const confirmJobSearch = async () => {\n setShowSearchConfirmation(false);\n handleRefreshJobs();\n };\n\n return (\n \n \n \n \n {isLoading || (contacts.length <= 0 && jobsProcessing) ? (\n \n \n
      \n
      \n
      \n {Array.from({ length: 2 }).map((_, idx) => (\n \n ))}\n
      \n
      \n {Array.from({ length: 8 }).map((_, idx) => (\n
      \n ))}\n
      \n
      \n
      \n \n \n ) : (\n \n
      \n \n
      \n }\n >\n Edit Filters\n \n \n }\n >\n {(() => {\n let result;\n const jobsToShow =\n campaign.jobFilters.totalJobsFound -\n campaign.jobs.length;\n if (jobsToShow === 0) result = 0;\n const nextAmount =\n jobsToShow > campaign.jobFilters.jobLimit!\n ? campaign.jobFilters.jobLimit\n : jobsToShow;\n result = nextAmount;\n return result > 0\n ? `Search Jobs (+${parseInt(result, 10)})`\n : 'Search Jobs';\n })()}\n \n
      \n
      \n\n {!isLoading && campaign.jobs.length > 0 && (\n
      \n
      \n
      \n
      \n
      \n \n setSearchCompany(e.target.value)}\n value={searchCompany}\n />\n
      \n
      \n
      \n
      \n \n Job Title\n \n setSearchJobTitle(e.target.value)}\n value={searchJobTitle}\n />\n
      \n
      \n
      \n
      \n
      \n )}\n\n {/* ACTIONS MENU */}\n setSelectedItems([])}\n />\n\n {!isLoading && campaign.jobs.length > 0 && (\n
      \n \n \n \n
      \n toggleSelectAll(e.target.checked)}\n id=\"selectAll\"\n />\n \n
      \n
      \n \n Company\n \n \n Job Title\n \n \n Name\n \n \n Email\n \n \n Lead Location\n \n \n Date posted\n \n
      \n {filteredJobs.map(job => (\n \n ))}\n\n {contactsPending && (\n \n \n {Array.from({ length: 1 }).map((_, idx) => (\n \n ))}\n \n \n )}\n
      \n
      \n )}\n\n {!isLoading &&\n campaign.jobs.length === 0 &&\n campaign.status === 'Completed' && (\n
      \n \n

      \n No jobs found, try changing the filters criteria.\n

      \n
      \n )}\n\n {/* Pagination */}\n
      \n
      \n {campaign.jobs.length > 0 && (\n \n setItemsPerPage(itemsPerPage)\n }\n />\n )}\n
      \n
      \n\n setShowSaveLeadsModal(!showSaveLeadsModal)}\n favorites={selectedItems.map(item => ({\n leadId: item.contactId!,\n companyId: jobs.find(job => job.publicId === item.jobId)\n ?.company?.publicId!,\n jobId: item.jobId,\n }))}\n />\n {isModalOpen && (\n
      \n {isModalOpen && (\n
      \n {currentStep === 1 && (\n setIsModalOpen(false)}\n filters={jobFilters}\n updateFilters={updateJobFilters}\n goToNextStep={() => setCurrentStep(2)}\n goToPreviousStep={() => setCurrentStep(1)}\n hidePreviousButton={true}\n resetSearch={resetSearch}\n setResetSearch={setResetSearch}\n />\n )}\n {currentStep === 2 && (\n setIsModalOpen(false)}\n setFilters={handleSetFilters}\n filters={leadFilters}\n goToPreviousStep={() => setCurrentStep(1)}\n onFinish={handleSaveFilters}\n isLoading={isLoadingUpdate}\n resetSearch={resetSearch}\n setResetSearch={setResetSearch}\n />\n )}\n
      \n )}\n
      \n )}\n
      \n )}\n\n {/* Loading WebSocket: exibido se os contatos ainda estiverem pendentes */}\n {contactsPending && (\n
      \n \n
      \n

      Loading more data

      \n \n
      \n
      \n )}\n \n \n\n {/* Modal para campanha com status \"Failed\" */}\n setShowFailedModal(!showFailedModal)}\n >\n setShowFailedModal(!showFailedModal)}>\n Campaign Failed\n \n \n

      \n The campaign has failed. Would you like to try refreshing the jobs?\n

      \n
      \n \n {\n setShowFailedModal(false);\n handleRefreshJobs();\n }}\n >\n Refresh Jobs\n \n \n \n \n\n {isLoadingJobs && (\n \n )}\n\n setShowSearchConfirmation(!showSearchConfirmation)}\n onConfirm={confirmJobSearch}\n isLoading={isLoadingJobs}\n title=\"Confirm Job Search\"\n message={`Are you sure you want to search for new jobs?`}\n subMessage={`This will search for up to ${campaign.jobFilters ? campaign.jobFilters.jobLimit : 0} additional jobs matching your filters.`}\n type={'info'}\n confirmButtonText=\"Search\"\n />\n \n );\n};\n\nexport default UserCampaignDetails;\n","import React, { createContext, useContext, useState } from 'react';\nimport { TCampaignJobsCompany } from '../../types/lists.types';\n\ninterface CampaignSelectedContextType {\n selectedCampaign: TCampaignJobsCompany | null;\n setSelectedCampaign: (campaign: TCampaignJobsCompany | null) => void;\n}\n\nconst CampaignSelectedContext = createContext<\n CampaignSelectedContextType | undefined\n>(undefined);\n\nexport const useSelectedCampaign = () => {\n const context = useContext(CampaignSelectedContext);\n if (!context) {\n throw new Error(\n 'useSelectedCampaign must be used within a CampaignSelectedProvider',\n );\n }\n return context;\n};\n\nexport const CampaignSelectedProvider: React.FC<\n React.PropsWithChildren<{}>\n> = ({ children }) => {\n const [selectedCampaign, setSelectedCampaign] =\n useState(null);\n\n return (\n \n {children}\n \n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { Spinner } from 'reactstrap';\nimport {\n Block,\n BlockContent,\n BlockDes,\n BlockHead,\n BlockTitle,\n Button,\n PreviewCard,\n} from '../../components/Component';\nimport Logo from '../../images/logo.png';\nimport Head from '../../layout/head/Head';\nimport AuthFooter from './AuthFooter';\nimport { useNotification } from '../../context/NotificationContext/useNotification';\nimport { APIResendCode, APIVerifyCode } from '../../services/api/public';\nimport ReCAPTCHA from 'react-google-recaptcha';\n\nconst EmailVerification = () => {\n const [loading, setLoading] = useState(false);\n const [email, setEmail] = useState('');\n\n const recaptcha = useRef(null);\n\n const { handleAPIError, createNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm<{ email: string; confirmationCode: string }>();\n\n useEffect(() => {\n const token = localStorage.getItem('vit_a');\n if (token) {\n navigate('/');\n }\n }, [navigate]);\n\n const handleFormSubmit = async (data: {\n email: string;\n confirmationCode: string;\n }) => {\n setLoading(true);\n\n try {\n // const captchaValue = recaptcha.current?.getValue();\n // if (!captchaValue && process.env.NODE_ENV !== 'development') {\n // createNotification(\"danger\", \"Please verify the reCAPTCHA!\");\n // return;\n // }\n\n const response = await APIVerifyCode({\n email: data.email,\n confirmationCode: data.confirmationCode,\n recaptchaToken: 'captchaValue',\n });\n\n createNotification('success', 'Email verified successfully');\n if (response.token) {\n localStorage.setItem('vit_a', response.token);\n setTimeout(() => {\n navigate('/job-searches');\n setLoading(false);\n }, 1500);\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Error verifying code', error);\n setLoading(false);\n }\n };\n\n const resendCode = async () => {\n setLoading(true);\n\n try {\n // const captchaValue = recaptcha.current?.getValue();\n\n // if (!captchaValue && process.env.NODE_ENV !== \"development\") {\n // createNotification(\"danger\", \"Please verify the reCAPTCHA!\");\n // setLoading(false);\n // return;\n // }\n\n if (!email) {\n createNotification('danger', 'Please enter your email address');\n setLoading(false);\n return;\n }\n\n await APIResendCode(email, 'captchaValue');\n createNotification('success', 'Code sent successfully');\n\n recaptcha.current?.reset();\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Error resending code', error);\n }\n\n setLoading(false);\n };\n\n return (\n
      \n \n \n
      \n \n \"logo\"\n \n
      \n \n \n \n Verify Your Email\n \n

      Enter the verification code sent to your email address

      \n
      \n
      \n
      \n
      \n
      \n \n
      \n setEmail(e.target.value)}\n />\n {errors.email && (\n

      {String(errors.email.message)}

      \n )}\n
      \n
      \n\n
      \n \n
      \n \n {errors.confirmationCode && (\n

      \n {String(errors.confirmationCode.message)}\n

      \n )}\n
      \n
      \n\n
      \n {/* { process.env.NODE_ENV !== 'development' && \n \n } */}\n \n {loading ? : 'Verify'}\n \n
      \n \n {' '}\n Didn't receive the code?{' '}\n Resend Code\n
      \n \n \n \n \n
      \n );\n};\n\nexport default EmailVerification;\n","import React, { useEffect, useState } from 'react';\nimport Logo from '../../images/logo.png';\nimport LogoDark from '../../images/logo-dark.png';\nimport Head from '../../layout/head/Head';\nimport {\n Block,\n BlockContent,\n BlockDes,\n BlockHead,\n BlockTitle,\n} from '../../components/Component';\nimport { useAuth } from '../../context/Auth/auth.contex';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\n\nconst Logout = () => {\n const { logout } = useAuth();\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n setTimeout(() => {\n logout();\n }, 1000);\n }, []);\n\n return (\n
      \n \n \n \n \"Logo\"\n

      Vitae.ai

      \n
      \n \n \n \n \n \n
      \n
      \n );\n};\nexport default Logout;\n","import React, { useEffect, useState } from 'react';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport { Card, CardBody, Spinner, Tooltip } from 'reactstrap';\nimport {\n Block,\n PaginationComponent,\n DataTable,\n DataTableBody,\n DataTableHead,\n DataTableRow,\n DataTableItem,\n UserAvatar,\n Button,\n TooltipComponent,\n} from '../../../components/Component';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { TContactStateSimple } from '../../../types/contact.types';\nimport LoadingMessages from '../../../components/alerts/LoadingMessages';\nimport Lottie from 'lottie-react';\nimport animationData from '../../../assets/animations/lead_leads.anim.json';\nimport noDataFoundAnim from '../../../assets/animations/no_data_found.anim.json';\nimport { useNavigate } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n APIExportContacts,\n APISearchContactEmail,\n} from '../../../services/api/api.contact';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\nimport {\n faCircleNotch,\n faClose,\n faCompass,\n faEnvelope,\n faEnvelopeCircleCheck,\n faFileExport,\n faMagnifyingGlass,\n faMailBulk,\n faUser,\n} from '@fortawesome/free-solid-svg-icons';\nimport { findUpper, truncateText } from '../../../utils/Utils';\nimport CompanyDetailsModal from '../../components/companies/CompanyModal';\nimport { TCompany } from '../../../types/company.types';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport ContactDetailsModal from '../../components/contacts/ContactModal';\nimport { APIGetFavoriteLeads } from '../../../services/api/api.list';\nimport Badge from '../../../components/badge/Badge';\n\nconst FavoriteLeads = () => {\n const MAX_COLUMN_LENGTH = 35;\n const navigate = useNavigate();\n\n const [contacts, setContacts] = useState<\n { lead: TContactStateSimple; company: TCompany }[]\n >([]);\n const [filteredContacts, setFilteredContacts] = useState<\n { lead: TContactStateSimple; company: TCompany }[]\n >([]);\n\n const [isLoading, setIsLoading] = useState(true);\n const [loadingEmails, setLoadingEmails] = useState<{ [id: string]: boolean }>(\n {},\n );\n\n const { createNotification, handleAPIError } = useNotification();\n\n const [contactName, setContactName] = useState('');\n const [contactPosition, setContactPosition] = useState('');\n const [contactLocation, setContactLocation] = useState('');\n\n const [noContactsFound, setNoContactsFound] = useState(false);\n const [showSelectedItems, setShowSelectedItems] = useState(false);\n\n const [showCompanyDetails, setShowCompanyDetails] = useState(false);\n const [selectedCompany, setSelectedCompany] = useState(null);\n\n const [tooltipOpen, setTooltipOpen] = useState<{ [key: string]: boolean }>(\n {},\n );\n\n const [selectedContactIds, setSelectedContactIds] = useState([]);\n\n const [showDetailedLoading, setShowDetailedLoading] = useState(false);\n\n const [currentPage, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useState(50);\n const [totalItems, setTotalItems] = useState(0);\n\n const [showSelectedContact, setShowSelectedContact] = useState(false);\n const [selectedContact, setSelectedContact] =\n useState(null);\n\n const [menuVisible, setMenuVisible] = useState(false);\n\n const { user } = useAuth();\n\n const fetchFavoriteLeads = async (userId: string, page: number) => {\n setIsLoading(true);\n try {\n const response = await APIGetFavoriteLeads(userId, page, itemsPerPage);\n if (response.data.length === 0) {\n setNoContactsFound(true);\n setContacts([]);\n setFilteredContacts([]);\n } else {\n setNoContactsFound(false);\n setContacts(\n response.data.map(item => ({\n lead: { ...item.lead, checked: false },\n company: item.company,\n })),\n );\n setFilteredContacts(\n response.data.map(item => ({\n lead: { ...item.lead, checked: false },\n company: item.company,\n })),\n );\n setTotalItems(response.total);\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n createNotification('danger', 'Failed to fetch favorite leads.');\n if (error.response?.status === 401) {\n navigate('/logout');\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (!user?.publicId) {\n createNotification(\n 'danger',\n 'You need to be logged in to access this page',\n );\n navigate('/logout');\n return;\n }\n fetchFavoriteLeads(user.publicId, currentPage);\n }, [user?.publicId, currentPage]);\n\n useEffect(() => {\n if (!contacts) return;\n setFilteredContacts([...contacts]);\n }, [contacts]);\n\n const handlePageChange = (page: number) => {\n if (page !== currentPage) {\n setCurrentPage(page);\n }\n };\n\n const toggleTooltip = (id: string, field: string) => {\n const tooltipId = `${id}-${field}`;\n setTooltipOpen(prev => ({\n ...prev,\n [tooltipId]: !prev[tooltipId],\n }));\n };\n\n const handleSearchSelectedContactsEmails = async () => {\n createNotification('info', 'Searching emails for selected contacts...');\n\n const selectedContacts = filteredContacts.filter(data => data.lead.checked);\n\n const contactIds = selectedContacts\n .filter(data => !data.lead.email && data.lead.email !== 'not found')\n .map(data => data.lead.publicId);\n\n if (contactIds.length === 0) {\n createNotification(\n 'info',\n 'No new emails to search for selected contacts.',\n );\n return;\n }\n\n try {\n contactIds.forEach(contactId => {\n setLoadingEmails(prev => ({ ...prev, [contactId]: true }));\n });\n\n await Promise.allSettled(\n contactIds.map(async contactId => {\n try {\n if (!user) {\n createNotification(\n 'info',\n 'You need to be logged in to search for emails',\n );\n navigate('/logout');\n return;\n }\n const response = await APISearchContactEmail(\n contactId,\n user.publicId,\n );\n setContacts(prevContacts =>\n prevContacts.map(data =>\n data.lead.publicId === contactId\n ? {\n ...data,\n email: response.email,\n emailConfidence: response.confidence,\n }\n : data,\n ),\n );\n\n setFilteredContacts(prevFiltered =>\n prevFiltered.map(data =>\n data.lead.publicId === contactId\n ? { ...data, email: response.email }\n : data,\n ),\n );\n } catch (error) {\n console.error(\n `Erro searching email to contact ${contactId}`,\n error,\n );\n } finally {\n setLoadingEmails(prev => ({ ...prev, [contactId]: false }));\n }\n }),\n );\n createNotification(\n 'success',\n 'Email search completed for selected contacts.',\n );\n } catch (error: any) {\n createNotification(\n 'danger',\n 'An error occurred while searching emails for selected contacts.',\n );\n console.error('Error finding emails', error);\n }\n };\n\n useEffect(() => {\n if (!contacts) return;\n\n const filtered = contacts.filter(({ lead }) => {\n const contactTitle = lead.jobTitle || lead.generatedHeadline;\n if (!contactTitle) return false;\n\n const matchesName =\n lead.fullName?.toLowerCase().includes(contactName.toLowerCase()) ??\n true;\n const matchesPosition =\n contactTitle.toLowerCase().includes(contactPosition.toLowerCase()) ??\n true;\n const matchesLocation =\n lead.locationRawAddress\n ?.toLowerCase()\n .includes(contactLocation.toLowerCase()) ?? true;\n\n return matchesName && matchesPosition && matchesLocation;\n });\n\n setFilteredContacts(\n filtered.map(data => ({\n ...data,\n lead: {\n ...data.lead,\n checked: selectedContactIds.includes(data.lead.publicId),\n },\n })),\n );\n\n setNoContactsFound(filtered.length === 0);\n }, [\n contactName,\n contactPosition,\n contactLocation,\n contacts,\n selectedContactIds,\n ]);\n\n const handleExportToCsv = async () => {\n createNotification('info', 'Exporting contacts to CSV...');\n\n const selectedContacts = filteredContacts.filter(data => data.lead.checked);\n const contactIds = selectedContacts.map(data => data.lead.publicId);\n\n if (contactIds.length === 0) {\n createNotification('danger', 'No contacts selected for export');\n return;\n }\n\n try {\n const data = await APIExportContacts(\n contactIds.map(contact => ({ leadId: contact, jobId: null })),\n 'csv',\n );\n createNotification('success', 'Contacts exported successfully');\n console.log('Exported contacts:', data);\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Unexpected error:', error);\n }\n };\n\n const toggleSelectAll = (isChecked: boolean) => {\n const allContactIds = filteredContacts.map(({ lead }) => lead.publicId);\n\n setFilteredContacts(prevFiltered =>\n prevFiltered.map(contact => ({\n ...contact,\n lead: { ...contact.lead, checked: isChecked },\n })),\n );\n\n if (isChecked) {\n setSelectedContactIds(allContactIds);\n setShowSelectedItems(true);\n setMenuVisible(true);\n } else {\n setSelectedContactIds([]);\n setShowSelectedItems(false);\n setMenuVisible(false);\n }\n };\n\n useEffect(() => {\n setShowSelectedItems(selectedContactIds.length > 0);\n }, [selectedContactIds]);\n\n const searchContactEmail = async (contactId: string) => {\n setLoadingEmails(prev => ({ ...prev, [contactId]: true }));\n try {\n if (!user) {\n createNotification(\n 'info',\n 'You need to be logged in to search for emails',\n );\n navigate('/logout');\n return;\n }\n\n const response = await APISearchContactEmail(contactId, user.publicId);\n\n setContacts(prevContacts =>\n prevContacts.map(data =>\n data.lead.publicId === contactId\n ? {\n ...data,\n lead: {\n ...data.lead,\n email: response.email,\n emailConfidence: response.confidence,\n },\n }\n : data,\n ),\n );\n\n setFilteredContacts(prevFiltered =>\n prevFiltered.map(data =>\n data.lead.publicId === contactId\n ? {\n ...data,\n lead: {\n ...data.lead,\n email: response.email,\n },\n }\n : data,\n ),\n );\n\n createNotification('success', 'Email successfully found.');\n } catch (error: any) {\n console.error(`Error searching email for contact ${contactId}`, error);\n createNotification('danger', error.message);\n } finally {\n setLoadingEmails(prev => ({ ...prev, [contactId]: false }));\n }\n };\n\n const handleCheckboxChange = (contactId: string, isChecked: boolean) => {\n setFilteredContacts(prevFiltered =>\n prevFiltered.map(data =>\n data.lead.publicId === contactId\n ? { ...data, lead: { ...data.lead, checked: isChecked } }\n : data,\n ),\n );\n\n setSelectedContactIds(prevSelected =>\n isChecked\n ? [...prevSelected, contactId]\n : prevSelected.filter(id => id !== contactId),\n );\n\n setMenuVisible(isChecked);\n };\n\n const getSocialIcon = (platform: string) => {\n switch (platform.toLowerCase()) {\n case 'linkedin':\n return ;\n case 'sales-navigator':\n return ;\n default:\n return null;\n }\n };\n\n return (\n \n \n \n \n \n
      \n \n Favorite Leads\n \n
      \n {contacts.length > 0 && (\n
      \n

      \n This list contains all the leads you have marked as favorite.\n

      \n
      \n )}\n\n {isLoading ? (\n \n \n \n
      \n
      \n {Array.from({ length: 4 }).map((_, idx) => (\n
      \n
      \n
      \n
      \n
      \n
      \n ))}\n
      \n
      \n {Array.from({ length: 4 }).map((_, idx) => (\n \n ))}\n \n \n ) : (\n
      \n {contacts.length > 0 && (\n
      \n
      \n {/* Left Side: Filters */}\n
      \n
      \n {/* Name Filter */}\n
      \n
      \n \n Name\n \n setContactName(e.target.value)}\n value={contactName}\n />\n
      \n
      \n {/* Position Filter */}\n
      \n
      \n \n Position\n \n \n setContactPosition(e.target.value)\n }\n value={contactPosition}\n />\n
      \n
      \n {/* Location Filter */}\n
      \n
      \n \n Location\n \n \n setContactLocation(e.target.value)\n }\n value={contactLocation}\n />\n
      \n
      \n
      \n
      \n
      \n
      \n )}\n
      \n )}\n
      \n {showSelectedItems && (\n \n
      \n \n
      \n\n
      \n
      \n \n \n ) : (\n \n )\n }\n >\n {isLoading ? 'Searching' : `Search Leads`}\n \n\n }\n >\n Export CSV\n \n
      \n
      \n setShowSelectedItems(false)}\n >\n \n \n
      \n
      \n
      \n )}\n
      \n\n {!isLoading && filteredContacts.length > 0 && (\n \n \n \n
      \n 0\n }\n onChange={e => toggleSelectAll(e.target.checked)}\n id=\"selectAll\"\n />\n \n
      \n
      \n \n Name\n \n \n Company\n \n \n Location\n \n \n Email\n \n
      \n\n {!isLoading &&\n filteredContacts.length > 0 &&\n filteredContacts.map(data => {\n return (\n \n \n
      \n \n handleCheckboxChange(\n data.lead.publicId,\n e.target.checked,\n )\n }\n id={`checkbox-${data.lead.publicId}`}\n />\n \n
      \n
      \n\n \n {\n // setSelectedContact(data.lead);\n // setShowSelectedContact(true);\n navigate(`/leads/${data.lead.publicId}`);\n }}\n >\n \n
      \n {/* Nome do lead - Underline ao passar o mouse */}\n
      \n {\n setSelectedContact(data.lead);\n setShowSelectedContact(true);\n }}\n className=\"tb-lead text-primary hover:underline hover:text-primaryHover cursor-pointer text-xs !font-normal\"\n id={`name-${data.lead.publicId}`}\n >\n {data.lead.fullName.length > MAX_COLUMN_LENGTH\n ? `${data.lead.fullName.slice(0, MAX_COLUMN_LENGTH)}...`\n : data.lead.fullName}\n \n\n \n \n \n \n
      \n {data.lead.fullName.length > MAX_COLUMN_LENGTH &&\n document.getElementById(\n `name-${data.lead.publicId}`,\n ) && (\n \n toggleTooltip(data.lead.publicId, 'name')\n }\n >\n {data.lead.fullName}\n \n )}\n\n \n {data.lead.jobTitle ||\n data.lead.generatedHeadline ? (\n <>\n {(data.lead.jobTitle &&\n data.lead.jobTitle.length > 30) ||\n (data.lead.generatedHeadline &&\n data.lead.generatedHeadline.length >\n 30) ? (\n <>\n {truncateText(\n data.lead.jobTitle ||\n data.lead.generatedHeadline,\n 30,\n )}\n {document.getElementById(\n `position-${data.lead.publicId}`,\n ) && (\n \n toggleTooltip(\n data.lead.publicId,\n 'position',\n )\n }\n >\n {data.lead.jobTitle ||\n data.lead.generatedHeadline}\n \n )}\n \n ) : (\n data.lead.jobTitle ||\n data.lead.generatedHeadline\n )}\n \n ) : (\n ''\n )}\n \n
      \n
      \n \n\n \n
      \n {\n setSelectedCompany(data.company);\n setShowCompanyDetails(true);\n }}\n >\n \n \n {data.company?.links &&\n data.company.links.length > 0 ? (\n
      \n {\n setSelectedCompany(data.company);\n setShowCompanyDetails(true);\n }}\n >\n \n {data.company.name.length >\n MAX_COLUMN_LENGTH\n ? `${truncateText(data.company.name, MAX_COLUMN_LENGTH)}...`\n : data.company.name}\n \n {data.company.name.length >\n MAX_COLUMN_LENGTH && (\n \n toggleTooltip(\n data.company.publicId,\n 'company',\n )\n }\n >\n {data.company.name}\n \n )}\n \n {data.company?.industry ? (\n
      \n \n {data.company.industry.length >\n MAX_COLUMN_LENGTH\n ? `${truncateText(data.company.industry, MAX_COLUMN_LENGTH)}`\n : data.company.industry}\n \n {data.company.industry.length >\n MAX_COLUMN_LENGTH && (\n \n toggleTooltip(\n data.company.publicId,\n 'industry',\n )\n }\n >\n {data.company.industry}\n \n )}\n
      \n ) : null}\n
      \n ) : null}\n
      \n
      \n \n \n {data.lead.locationRawAddress ? (\n <>\n {data.lead.locationRawAddress.length >\n MAX_COLUMN_LENGTH\n ? `${data.lead.locationRawAddress.slice(0, MAX_COLUMN_LENGTH)}...`\n : data.lead.locationRawAddress}\n {data.lead.locationRawAddress.length >\n MAX_COLUMN_LENGTH && (\n \n toggleTooltip(\n data.lead.publicId,\n 'location',\n )\n }\n >\n {data.lead.locationRawAddress}\n \n )}\n \n ) : (\n ''\n )}\n \n \n \n
        \n
      • \n {loadingEmails[data.lead.publicId] ? (\n \n }\n onClick={() =>\n searchContactEmail(data.lead.publicId)\n }\n >\n Loading\n \n ) : (\n <>\n {data.lead.email ? (\n \n {data.lead.email !== 'Not indexed'}\n \n {data.lead.email}\n \n
      \n ) : (\n \n }\n onClick={() =>\n searchContactEmail(data.lead.publicId)\n }\n >\n Search\n \n )}\n \n )}\n \n \n \n \n );\n })}\n \n )}\n\n {showCompanyDetails && (\n setShowCompanyDetails(!showCompanyDetails)}\n />\n )}\n\n {isLoading && (\n
      \n \n {showDetailedLoading ? (\n <>\n \n \n \n ) : (\n \n )}\n
      \n \n )}\n\n {!isLoading && noContactsFound && (\n
      \n

      \n You don't have any favorite leads yet.\n

      \n \n
      \n )}\n\n {showSelectedContact && selectedContact && (\n setShowSelectedContact(!showSelectedContact)}\n />\n )}\n\n {/* pagination component */}\n
      \n
      \n {contacts.length > 0 && !isLoading && (\n setItemsPerPage(value)}\n />\n )}\n
      \n
      \n \n
      \n
      \n
      \n );\n};\n\nexport default FavoriteLeads;\n","import { Tooltip } from 'reactstrap';\nimport {\n Button,\n DataTableItem,\n DataTableRow,\n UserAvatar,\n} from '../../../components/Component';\nimport { TFavoriteItem } from '../../../types/list.types';\nimport {\n findUpper,\n getDateStructured,\n truncateText,\n} from '../../../utils/Utils';\nimport { useState } from 'react';\nimport JobModal from '../../components/job/JobModal/JobModal';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\nimport CompanyDetailsModal from '../../components/companies/CompanyModal';\nimport { TCompany } from '../../../types/company.types';\nimport { SelectedItem } from './ListDetails';\nimport ContactDetailsModal from '../../components/contacts/ContactModal';\nimport { useNavigate } from 'react-router';\n\ninterface FavoriteJobRowProps {\n favorite: TFavoriteItem;\n onRowSelect: (\n jobId: string,\n contactId: string,\n companyId: string,\n isSelected: boolean,\n ) => void;\n selectedItems: SelectedItem[];\n loadingEmails: { [contactId: string]: boolean };\n setLoadingEmails: (loadingEmails: { [contactId: string]: boolean }) => void;\n searchContactEmail: (contactId: string) => void;\n}\n\nconst FavoriteJobRow: React.FC = ({\n favorite,\n onRowSelect,\n selectedItems,\n loadingEmails,\n setLoadingEmails,\n searchContactEmail,\n}) => {\n const MAX_COLUMN_LENGTH = 20;\n const { job, company, lead } = favorite;\n const [tooltipOpen, setTooltipOpen] = useState<{ [key: string]: boolean }>(\n {},\n );\n const [showJobDetails, setShowJobDetails] = useState(false);\n\n const [showCompanyDetails, setShowCompanyDetails] = useState(false);\n const [selectedCompany, setSelectedCompany] = useState(\n {} as TCompany,\n );\n\n const navigate = useNavigate();\n\n const [selectedContact, setSelectedContact] = useState();\n const [showSelectedContact, setShowSelectedContact] = useState(false);\n\n const isRowSelected = (\n jobId: string,\n contactId: string,\n companyId: string,\n ) => {\n return selectedItems.some(\n item =>\n item.jobId === jobId &&\n item.leadId === contactId &&\n item.companyId === companyId,\n );\n };\n\n const handleCheckboxChange = (isSelected: boolean) => {\n onRowSelect(job.publicId, lead.publicId, company.publicId, isSelected);\n };\n\n const toggleTooltip = (id: string, field: string) => {\n const tooltipId = `${id}-${field}`;\n setTooltipOpen(prev => ({\n ...prev,\n [tooltipId]: !prev[tooltipId],\n }));\n };\n\n const openJobDetails = () => {\n setShowJobDetails(true);\n };\n\n return (\n \n \n
      \n {job && lead && company ? (\n <>\n handleCheckboxChange(e.target.checked)}\n id={`checkbox-${job.publicId}-${lead.publicId}`}\n />\n \n \n ) : (\n Loading...\n )}\n
      \n
      \n\n \n
      \n {\n setSelectedCompany(company);\n setShowCompanyDetails(true);\n }}\n >\n \n \n\n
      \n {\n setSelectedCompany(company);\n setShowCompanyDetails(true);\n }}\n className=\"text-primary hover:cursor-pointer !font-normal flex !text-xs hover:!text-primaryHover hover:underline\"\n >\n \n {company.name.length > 25\n ? `${truncateText(company.name, 25)}`\n : company.name}\n \n {company.name.length > 25 && (\n toggleTooltip(company.publicId, 'company')}\n fade={false}\n >\n {company.name}\n \n )}\n \n {company?.industry ? (\n
      \n \n {company.industry.length > 20\n ? `${truncateText(company.industry, 20)}`\n : company.industry}\n \n {company.industry.length > 20 && (\n toggleTooltip(company.publicId, 'industry')}\n >\n {company.industry}\n \n )}\n
      \n ) : null}\n
      \n
      \n
      \n\n {/* Job */}\n \n {job && lead && company && (\n
      \n openJobDetails()}\n className=\"text-primary hover:cursor-pointer !font-normal !text-xs pb-1 hover:underline hover:!text-primaryHover\"\n >\n {job.title.length > MAX_COLUMN_LENGTH\n ? truncateText(job.title, MAX_COLUMN_LENGTH)\n : job.title}\n \n {job.title.length > MAX_COLUMN_LENGTH && (\n toggleTooltip(job.publicId, 'title')}\n fade={false}\n >\n {job.title}\n \n )}\n\n \n {job.location.length > 20\n ? truncateText(job.location, 20)\n : job.location}\n \n {job.location.length > 20 && (\n toggleTooltip(job.publicId, 'location')}\n >\n {job.location}\n \n )}\n
      \n )}\n
      \n\n \n {\n // setSelectedContact(lead.publicId);\n // setShowSelectedContact(true);\n navigate(`/leads/${lead.publicId}`);\n }}\n >\n \n
      \n
      \n {lead && lead.fullName ? (\n \n {lead.fullName.length > MAX_COLUMN_LENGTH\n ? `${truncateText(lead.fullName, MAX_COLUMN_LENGTH)}`\n : lead.fullName}\n \n ) : (\n \n )}\n e.stopPropagation()}\n >\n \n \n
      \n {lead.fullName.length > MAX_COLUMN_LENGTH &&\n document.getElementById(`name-${lead.publicId}`) && (\n toggleTooltip(lead.publicId, 'name')}\n fade={false}\n >\n {lead.fullName}\n \n )}\n \n {lead.jobTitle || lead.generatedHeadline ? (\n <>\n {(lead.jobTitle && lead.jobTitle.length > 30) ||\n (lead.generatedHeadline &&\n lead.generatedHeadline.length > 30) ? (\n <>\n {truncateText(\n lead.jobTitle || lead.generatedHeadline!,\n 30,\n )}\n {document.getElementById(`position-${lead.publicId}`) && (\n \n toggleTooltip(lead.publicId, 'position')\n }\n >\n {lead.jobTitle || lead.generatedHeadline}\n \n )}\n \n ) : (\n \n {lead.jobTitle || lead.generatedHeadline}\n \n )}\n \n ) : (\n ''\n )}\n \n
      \n \n
      \n\n \n {loadingEmails[lead.publicId] ? (\n \n ) : lead.email ? (\n \n {lead.email}\n \n ) : (\n searchContactEmail(lead.publicId)}\n >\n View Email\n \n )}\n \n\n \n \n {lead.locationRawAddress!.length > 20\n ? truncateText(lead.locationRawAddress!, 20)\n : lead.locationRawAddress}\n \n {lead.locationRawAddress!.length > 20 && (\n toggleTooltip(lead.publicId, 'location')}\n >\n {lead.locationRawAddress}\n \n )}\n \n\n \n {job && job.timePosted && (\n \n {getDateStructured(new Date(job.timePosted))}\n \n )}\n \n\n {showCompanyDetails && (\n setShowCompanyDetails(!showCompanyDetails)}\n />\n )}\n\n {showJobDetails && (\n setShowJobDetails(false)}\n />\n )}\n\n {showSelectedContact && selectedContact && (\n setShowSelectedContact(false)}\n />\n )}\n
      \n );\n};\n\nexport default FavoriteJobRow;\n","import React, { useEffect, useState } from 'react';\nimport { TFavoriteListWithData } from '../../../types/list.types';\nimport { APIGetList, APIUpdateLeads } from '../../../services/api/api.list';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { useNavigate, useParams } from 'react-router';\nimport {\n Block,\n DataTableHead,\n DataTableRow,\n DataTableBody,\n PaginationComponent,\n DataTable,\n Button,\n} from '../../../components/Component';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport FavoriteJobRow from './FavoriteJobRow';\nimport LoadingComponent from '../../../components/loading/Loading';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faClose,\n faFileExport,\n faTrashCan,\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n APIExportContacts,\n APISearchContactEmail,\n} from '../../../services/api/api.contact';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport SelectedItemsMenu, {\n Color,\n} from '../../components/menu/SelectedItemsMenu';\n\nexport type SelectedItem = {\n jobId: string;\n leadId: string;\n companyId: string;\n};\n\nconst ListsDetails: React.FC = () => {\n const [selectedList, setSelectedList] = useState();\n const [showSelectedLeads, setShowSelectedLeads] = useState(false);\n const [showEditList, setShowEditList] = useState(false);\n const [selectedItems, setSelectedItems] = useState([]);\n\n const [loadingEmails, setLoadingEmails] = useState<{\n [leadId: string]: boolean;\n }>({});\n const [isLoading, setIsLoading] = useState(true);\n const [currentPage, setCurrentPage] = useState(1);\n const [totalItems, setTotalItems] = useState(0);\n const [itemsPerPage, setItemsPerPage] = useState(20);\n\n const { createNotification, handleAPIError } = useNotification();\n const navigate = useNavigate();\n const { listId } = useParams<{ listId: string }>();\n\n const { user } = useAuth();\n\n useEffect(() => {\n if (listId) {\n getSelectedList(listId);\n }\n }, [listId]);\n\n const getSelectedList = async (listId: string) => {\n setIsLoading(true);\n setShowSelectedLeads(true);\n try {\n const list = await APIGetList(listId);\n console.log('list', list);\n if (!list.publicId) {\n createNotification('danger', 'List not found');\n navigate('/lists');\n }\n setSelectedList(list);\n setShowEditList(false);\n setTotalItems(list.favorites.length);\n setIsLoading(false);\n } catch (error: any) {\n if (error.message.includes('not found')) {\n navigate('/lists');\n }\n handleAPIError(error, error.message);\n setIsLoading(false);\n }\n };\n\n const handleRowSelection = (\n jobId: string,\n leadId: string,\n companyId: string,\n isSelected: boolean,\n ) => {\n if (isSelected) {\n // Adiciona o item aos selecionados\n setSelectedItems(prev => [...prev, { jobId, leadId, companyId }]);\n } else {\n // Remove apenas o item específico\n setSelectedItems(prev =>\n prev.filter(\n item =>\n item.jobId !== jobId ||\n item.leadId !== leadId ||\n item.companyId !== companyId,\n ),\n );\n }\n };\n\n const handleRemoveItem = async () => {\n const selectedContacts = selectedItems.filter(\n item => item.leadId !== undefined,\n );\n\n if (selectedContacts.length === 0) {\n createNotification('danger', 'No contacts selected for removal');\n return;\n }\n\n if (!listId) {\n createNotification('danger', 'List not found');\n navigate('/lists');\n return;\n }\n\n await APIUpdateLeads(listId!, selectedContacts, 'remove')\n .then(() => {\n createNotification('success', 'Contacts removed successfully');\n setSelectedItems([]);\n getSelectedList(listId);\n })\n .catch((error: any) => {\n handleAPIError(error, error.message);\n console.error('Unexpected error:', error);\n });\n };\n\n const handleExportToCsv = async () => {\n createNotification('info', 'Exporting contacts to CSV...');\n\n const selectedContacts = selectedItems.map(item => ({\n leadId: item.leadId,\n jobId: item.jobId || null, // Passa null caso não haja job associado\n }));\n\n if (selectedContacts.length === 0) {\n createNotification('danger', 'No contacts selected for export');\n return;\n }\n\n try {\n const data = await APIExportContacts(selectedContacts, 'csv');\n createNotification('success', 'Contacts exported successfully');\n console.log('Exported contacts:', data);\n } catch (error: any) {\n handleAPIError(error, error.message);\n console.error('Unexpected error:', error);\n }\n };\n\n const searchContactEmail = async (contactId: string) => {\n setLoadingEmails(prev => ({ ...prev, [contactId]: true }));\n\n try {\n if (!user) {\n createNotification(\n 'info',\n 'You need to be logged in to search for emails',\n );\n navigate('/logout');\n return;\n }\n const userData = await APISearchContactEmail(contactId, user.publicId);\n\n // Atualiza a lista de favoritos para refletir o novo email encontrado\n setSelectedList(prevList => {\n if (!prevList) return prevList;\n\n return {\n ...prevList,\n favorites: prevList.favorites.map(favorite => {\n if (favorite.lead.publicId === contactId) {\n return {\n ...favorite,\n lead: {\n ...favorite.lead,\n email: userData.email, // Atualiza o email no estado principal\n },\n };\n }\n return favorite;\n }),\n };\n });\n\n createNotification('success', 'Email found successfully');\n } catch (error) {\n console.error(`Error fetching email for contact ${contactId}`, error);\n createNotification('danger', 'Failed to fetch email');\n } finally {\n setLoadingEmails(prev => ({ ...prev, [contactId]: false }));\n }\n };\n\n const actions = [\n {\n label: 'Export to CSV',\n onClick: handleExportToCsv,\n icon: ,\n color: Color.Primary,\n },\n {\n label: 'Remove',\n onClick: handleRemoveItem,\n icon: ,\n color: Color.Danger,\n },\n ];\n\n return (\n \n \n \n \n {isLoading ? (\n \n ) : (\n \n
      \n {/* Breadcrumb Navigation */}\n \n
      \n\n
      \n {selectedList?.description}\n
      \n\n
      \n setSelectedItems([])}\n />\n
      \n\n
      \n \n \n \n
      \n {\n if (e.target.checked) {\n setSelectedItems(\n selectedList!.favorites.map(favorite => ({\n jobId: favorite.job.publicId,\n leadId: favorite.lead.publicId,\n companyId: favorite.company.publicId,\n })),\n );\n } else {\n setSelectedItems([]);\n }\n }}\n id=\"selectAll\"\n />\n \n
      \n
      \n \n Company\n \n \n Job Title\n \n \n Name\n \n \n Email\n \n \n Lead Location\n \n \n Date posted\n \n
      \n\n {selectedList &&\n selectedList.favorites.map((favorite, index) => {\n return (\n \n );\n })}\n
      \n
      \n\n
      \n\n {/* pagination */}\n
      \n
      \n {selectedList && selectedList.favorites.length > 0 ? (\n setItemsPerPage(value)}\n />\n ) : (\n
      \n No data found\n
      \n )}\n
      \n
      \n
      \n )}\n
      \n
      \n
      \n );\n};\n\nexport default ListsDetails;\n","import React, { useEffect, useState } from 'react';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport { Card, CardBody, Spinner, Tooltip } from 'reactstrap';\nimport {\n Block,\n PaginationComponent,\n DataTable,\n DataTableBody,\n DataTableHead,\n DataTableRow,\n DataTableItem,\n UserAvatar,\n} from '../../../components/Component';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport LoadingMessages from '../../../components/alerts/LoadingMessages';\nimport Lottie from 'lottie-react';\nimport animationData from '../../../assets/animations/lead_leads.anim.json';\nimport noDataFoundAnim from '../../../assets/animations/no_data_found.anim.json';\nimport { useNavigate } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\nimport { findUpper, truncateText } from '../../../utils/Utils';\nimport CompanyDetailsModal from '../../components/companies/CompanyModal';\nimport { TCompany, TCompanyState } from '../../../types/company.types';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { APIGetFavoriteCompanies } from '../../../services/api/api.list';\n\nconst FavoriteCompanies = () => {\n const MAX_COLUMN_LENGTH = 25;\n const navigate = useNavigate();\n\n const [companies, setCompanies] = useState([]);\n const [filteredContacts, setFilteredContacts] = useState([]);\n\n const [isLoading, setIsLoading] = useState(true);\n\n const { createNotification, handleAPIError } = useNotification();\n\n const [companyName, setContactName] = useState('');\n const [companyIndustry, setCompanyIndustry] = useState('');\n\n const [noCompaniesFound, setNoCompaniesFound] = useState(false);\n\n const [showCompanyDetails, setShowCompanyDetails] = useState(false);\n const [selectedCompany, setSelectedCompany] = useState(\n null,\n );\n\n const [tooltipOpen, setTooltipOpen] = useState<{ [key: string]: boolean }>(\n {},\n );\n\n const [selectedCompanyIds, setSelectedCompanyIds] = useState([]);\n\n const [showDetailedLoading, setShowDetailedLoading] = useState(false);\n\n const [currentPage, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useState(30);\n const [totalItems, setTotalItems] = useState(0);\n\n const { user } = useAuth();\n\n const fetchFavoriteCompanies = async (userId: string, page: number) => {\n setIsLoading(true);\n try {\n const response = await APIGetFavoriteCompanies(\n userId,\n page,\n itemsPerPage,\n );\n setCompanies(\n response.companies.map((company: TCompany) => ({\n ...company,\n checked: false,\n })),\n );\n setTotalItems(response.total);\n } catch (error: any) {\n handleAPIError(error, error.message);\n createNotification('danger', 'Failed to fetch favorite leads.');\n if (error.response?.status === 401) {\n navigate('/logout');\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (!user?.publicId) {\n createNotification(\n 'danger',\n 'You need to be logged in to access this page',\n );\n navigate('/logout');\n return;\n }\n fetchFavoriteCompanies(user.publicId, currentPage);\n }, [user?.publicId, currentPage]);\n\n useEffect(() => {\n if (!companies) return;\n setFilteredContacts([...companies]);\n }, [companies]);\n\n const handlePageChange = (page: number) => {\n if (page !== currentPage) {\n setCurrentPage(page);\n }\n };\n\n const toggleTooltip = (id: string, field: string) => {\n const tooltipId = `${field}-${id}`;\n setTooltipOpen(prev => ({\n ...prev,\n [tooltipId]: !prev[tooltipId],\n }));\n };\n\n useEffect(() => {\n if (!companies || companies.length === 0) return;\n\n // Filtro por nome e indústria\n const filtered = companies.filter(company => {\n const matchesName = company.name\n ?.toLowerCase()\n .includes(companyName.trim().toLowerCase());\n const matchesIndustry = company.industry\n ?.toLowerCase()\n .includes(companyIndustry.trim().toLowerCase());\n\n return (\n (matchesName || companyName.trim() === '') &&\n (matchesIndustry || companyIndustry.trim() === '')\n );\n });\n\n // Atualiza os contatos filtrados\n setFilteredContacts(filtered);\n\n // Define se nenhuma company foi encontrada\n setNoCompaniesFound(filtered.length === 0);\n }, [companyName, companyIndustry, companies]);\n\n const toggleSelectAll = (isChecked: boolean) => {\n setFilteredContacts(prevFiltered =>\n prevFiltered.map(company => ({\n ...company,\n lead: { ...company, checked: isChecked },\n })),\n );\n\n if (isChecked) {\n // Adiciona todos os IDs selecionados\n setSelectedCompanyIds(filteredContacts.map(company => company.publicId));\n } else {\n // Remove todos os IDs selecionados\n setSelectedCompanyIds([]);\n }\n };\n\n // const handleCheckboxChange = (companyId: string, isChecked: boolean) => {\n // setFilteredContacts((prevFiltered) =>\n // prevFiltered.map((company) =>\n // company.publicId === companyId\n // ? { ...company, checked: isChecked }\n // : company\n // )\n // );\n\n // setSelectedCompanyIds((prevSelected) =>\n // isChecked\n // ? [...prevSelected, companyId] // Adiciona o ID se marcado\n // : prevSelected.filter((id) => id !== companyId) // Remove o ID se desmarcado\n // );\n // };\n\n useEffect(() => {\n console.log('Filters Applied:', { companyName, companyIndustry });\n console.log('Filtered Companies:', filteredContacts);\n }, [filteredContacts, companyName, companyIndustry]);\n\n return (\n \n \n \n \n \n
      \n \n Favorite Companies\n \n
      \n {companies && companies.length > 0 && (\n
      \n

      \n This list contains all the companies you have marked as\n favorite.\n

      \n
      \n )}\n\n {isLoading ? (\n \n \n \n
      \n
      \n {Array.from({ length: 4 }).map((_, idx) => (\n
      \n
      \n
      \n
      \n
      \n
      \n ))}\n
      \n
      \n {Array.from({ length: 4 }).map((_, idx) => (\n \n ))}\n \n \n ) : (\n
      \n {companies && companies.length > 0 && (\n
      \n
      \n {/* Left Side: Filters */}\n
      \n
      \n {/* Name Filter */}\n
      \n
      \n \n Company Name\n \n setContactName(e.target.value)}\n value={companyName}\n />\n
      \n
      \n {/* Location Filter */}\n
      \n
      \n \n Industry\n \n \n setCompanyIndustry(e.target.value)\n }\n value={companyIndustry}\n />\n
      \n
      \n
      \n
      \n
      \n
      \n )}\n
      \n )}\n\n {!isLoading && companies.length > 0 && (\n \n \n \n Name\n \n \n industry\n \n \n Size\n \n \n Email\n \n\n \n Phone\n \n \n\n {!isLoading &&\n filteredContacts.length > 0 &&\n filteredContacts.map(company => {\n return (\n \n \n {\n setSelectedCompany(company);\n setShowCompanyDetails(true);\n }}\n >\n \n
      \n
      \n \n {company.name.length > MAX_COLUMN_LENGTH\n ? truncateText(\n company.name,\n MAX_COLUMN_LENGTH,\n )\n : company.name}\n \n e.stopPropagation()}\n >\n \n \n
      \n {company.name.length > MAX_COLUMN_LENGTH && (\n \n toggleTooltip(company.publicId, 'name')\n }\n >\n {company.name}\n \n )}\n
      \n
      \n \n\n \n {company.industry}\n \n\n \n \n {company.size}\n \n \n \n \n {company.email}\n \n \n\n \n \n {company.phone}\n \n \n \n );\n })}\n \n )}\n\n {companies.length === 0 && !isLoading && (\n
      \n

      \n You don't have any companies yet.\n

      \n \n
      \n )}\n\n {showCompanyDetails && (\n setShowCompanyDetails(!showCompanyDetails)}\n />\n )}\n\n {isLoading && (\n
      \n \n {showDetailedLoading ? (\n <>\n \n \n \n ) : (\n \n )}\n
      \n
      \n )}\n\n {!isLoading && noCompaniesFound && (\n
      \n

      \n You don't have any favorite leads yet.\n

      \n \n
      \n )}\n\n {/* pagination component */}\n
      \n
      \n {companies && companies.length > 0 && !isLoading && (\n setItemsPerPage(value)}\n />\n )}\n
      \n
      \n
      \n
      \n
      \n
      \n );\n};\n\nexport default FavoriteCompanies;\n","var _excluded = [\"className\", \"cssModule\", \"noGutters\", \"tag\", \"widths\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, deprecated } from './utils';\nvar rowColWidths = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nvar rowColsPropType = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\nvar propTypes = {\n tag: tagPropType,\n noGutters: deprecated(PropTypes.bool, 'Please use Bootstrap 5 gutter utility classes. https://getbootstrap.com/docs/5.0/layout/gutters/'),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n xs: rowColsPropType,\n sm: rowColsPropType,\n md: rowColsPropType,\n lg: rowColsPropType,\n xl: rowColsPropType,\n xxl: rowColsPropType,\n widths: PropTypes.array\n};\nfunction Row(props) {\n var className = props.className,\n cssModule = props.cssModule,\n noGutters = props.noGutters,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n _props$widths = props.widths,\n widths = _props$widths === void 0 ? rowColWidths : _props$widths,\n attributes = _objectWithoutProperties(props, _excluded);\n var colClasses = [];\n widths.forEach(function (colWidth, i) {\n var colSize = props[colWidth];\n delete attributes[colWidth];\n if (!colSize) {\n return;\n }\n var isXs = !i;\n colClasses.push(isXs ? \"row-cols-\".concat(colSize) : \"row-cols-\".concat(colWidth, \"-\").concat(colSize));\n });\n var classes = mapToCssModules(classNames(className, noGutters ? 'gx-0' : null, 'row', colClasses), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nRow.propTypes = propTypes;\nexport default Row;","import User from \"../../../images/avatar/b-sm.jpg\";\r\nimport User2 from \"../../../images/avatar/c-sm.jpg\";\r\nimport User3 from \"../../../images/avatar/a-sm.jpg\";\r\nimport User4 from \"../../../images/avatar/d-sm.jpg\";\r\nimport React from \"react\";\r\nimport { UserAvatar, Icon } from \"../../../components/Component\";\r\nimport { findUpper } from \"../../../utils/Utils\";\r\n\r\nexport const basicData = {\r\n header: [\"#\", \"First\", \"Last\"],\r\n data: [\r\n {\r\n id: \"1\",\r\n first: \"Mark\",\r\n last: \"Otto\",\r\n },\r\n {\r\n id: \"2\",\r\n first: \"Jacob\",\r\n last: \"Thornton\",\r\n },\r\n {\r\n id: \"3\",\r\n first: \"Larry\",\r\n last: \"the bird\",\r\n },\r\n ],\r\n};\r\n\r\nexport const dataTableColumns = [\r\n {\r\n name: \"Name\",\r\n selector: (row) => row.name,\r\n sortable: true,\r\n },\r\n {\r\n name: \"Age\",\r\n selector: (row) => row.age,\r\n sortable: true,\r\n hide: 370,\r\n },\r\n {\r\n name: \"Gender\",\r\n selector: (row) => row.gender,\r\n sortable: true,\r\n hide: \"sm\",\r\n },\r\n {\r\n name: \"Company\",\r\n selector: (row) => row.company,\r\n sortable: true,\r\n hide: \"sm\",\r\n },\r\n {\r\n name: \"Start Date\",\r\n selector: (row) => row.startDate,\r\n sortable: true,\r\n hide: \"md\",\r\n },\r\n {\r\n name: \"Salary\",\r\n selector: (row) => row.salary,\r\n sortable: true,\r\n hide: \"md\",\r\n },\r\n];\r\n\r\nexport const dataTableColumns2 = [\r\n {\r\n name: \"User\",\r\n selector: (row) => row.name,\r\n compact: true,\r\n grow: 2,\r\n style: { paddingRight: \"20px\" },\r\n cell: (row) => (\r\n
      \r\n \r\n
      \r\n \r\n {row.name}{\" \"}\r\n \r\n \r\n {row.email}\r\n
      \r\n
      \r\n ),\r\n sortable: true,\r\n },\r\n {\r\n name: \"Balance\",\r\n selector: (row) => row.balance,\r\n minWidth: \"140px\",\r\n cell: (row) => (\r\n \r\n {row.balance} USD\r\n \r\n ),\r\n sortable: true,\r\n hide: 480,\r\n },\r\n {\r\n name: \"Phone\",\r\n selector: (row) => row.phone,\r\n sortable: true,\r\n cell: (row) => {row.phone},\r\n hide: \"md\",\r\n },\r\n {\r\n name: \"Verified\",\r\n selector: (row) => row.verified,\r\n sortable: true,\r\n minWidth: \"170px\",\r\n hide: \"md\",\r\n cell: (row) => (\r\n
        \r\n
      • \r\n {\" \"}\r\n Email\r\n
      • \r\n
      • \r\n {\" \"}\r\n KYC\r\n
      • \r\n
      \r\n ),\r\n },\r\n {\r\n name: \"Last Login\",\r\n selector: (row) => row.lastLogin,\r\n sortable: true,\r\n cell: (row) => {row.lastLogin},\r\n hide: \"lg\",\r\n },\r\n {\r\n name: \"Status\",\r\n selector: (row) => row.status,\r\n sortable: true,\r\n hide: \"sm\",\r\n cell: (row) => (\r\n \r\n {row.status}\r\n
      \r\n ),\r\n },\r\n];\r\n\r\nexport const DataTableData = [\r\n {\r\n id: 0,\r\n name: \"Francine Kirby\",\r\n age: 24,\r\n gender: \"female\",\r\n company: \"BUZZWORKS\",\r\n startDate: \"2017-02-17\",\r\n salary: \"$2,570.39\",\r\n },\r\n {\r\n id: 1,\r\n name: \"Reva Best\",\r\n age: 40,\r\n gender: \"female\",\r\n company: \"MARQET\",\r\n startDate: \"2021-10-14\",\r\n salary: \"$1,488.76\",\r\n },\r\n {\r\n id: 2,\r\n name: \"Alexis Flores\",\r\n age: 21,\r\n gender: \"female\",\r\n company: \"OBONES\",\r\n startDate: \"2020-04-28\",\r\n salary: \"$1,336.93\",\r\n },\r\n {\r\n id: 3,\r\n name: \"Nixon Sullivan\",\r\n age: 30,\r\n gender: \"male\",\r\n company: \"SLUMBERIA\",\r\n startDate: \"2016-10-08\",\r\n salary: \"$2,156.70\",\r\n },\r\n {\r\n id: 4,\r\n name: \"Foreman Wooten\",\r\n age: 20,\r\n gender: \"male\",\r\n company: \"ESCENTA\",\r\n startDate: \"2018-07-12\",\r\n salary: \"$3,057.42\",\r\n },\r\n {\r\n id: 5,\r\n name: \"Franco Davis\",\r\n age: 28,\r\n gender: \"male\",\r\n company: \"ZILLACON\",\r\n startDate: \"2015-10-08\",\r\n salary: \"$2,730.88\",\r\n },\r\n {\r\n id: 6,\r\n name: \"Bullock Kline\",\r\n age: 32,\r\n gender: \"male\",\r\n company: \"SAVVY\",\r\n startDate: \"2017-07-03\",\r\n salary: \"$2,986.05\",\r\n },\r\n {\r\n id: 7,\r\n name: \"Baird Coffey\",\r\n age: 36,\r\n gender: \"male\",\r\n company: \"BLEENDOT\",\r\n startDate: \"2014-01-27\",\r\n salary: \"$2,755.80\",\r\n },\r\n {\r\n id: 8,\r\n name: \"Eula Walters\",\r\n age: 40,\r\n gender: \"female\",\r\n company: \"UXMOX\",\r\n startDate: \"2020-09-19\",\r\n salary: \"$3,302.75\",\r\n },\r\n {\r\n id: 9,\r\n name: \"Gaines Moss\",\r\n age: 26,\r\n gender: \"male\",\r\n company: \"INCUBUS\",\r\n startDate: \"2017-10-13\",\r\n salary: \"$3,856.24\",\r\n },\r\n {\r\n id: 10,\r\n name: \"Sargent Winters\",\r\n age: 28,\r\n gender: \"male\",\r\n company: \"AUSTEX\",\r\n startDate: \"2020-12-26\",\r\n salary: \"$3,668.64\",\r\n },\r\n {\r\n id: 11,\r\n name: \"Sybil Patton\",\r\n age: 35,\r\n gender: \"female\",\r\n company: \"ZILIDIUM\",\r\n startDate: \"2020-06-19\",\r\n salary: \"$1,987.14\",\r\n },\r\n {\r\n id: 12,\r\n name: \"Henderson Elliott\",\r\n age: 39,\r\n gender: \"male\",\r\n company: \"ZOARERE\",\r\n startDate: \"2016-08-16\",\r\n salary: \"$1,795.31\",\r\n },\r\n {\r\n id: 13,\r\n name: \"Combs Irwin\",\r\n age: 33,\r\n gender: \"male\",\r\n company: \"COLAIRE\",\r\n startDate: \"2017-07-19\",\r\n salary: \"$2,396.73\",\r\n },\r\n {\r\n id: 14,\r\n name: \"Fleming Buchanan\",\r\n age: 33,\r\n gender: \"male\",\r\n company: \"WEBIOTIC\",\r\n startDate: \"2021-09-12\",\r\n salary: \"$3,406.96\",\r\n },\r\n {\r\n id: 15,\r\n name: \"Mcbride Dixon\",\r\n age: 25,\r\n gender: \"male\",\r\n company: \"ZBOO\",\r\n startDate: \"2017-12-08\",\r\n salary: \"$1,065.32\",\r\n },\r\n {\r\n id: 16,\r\n name: \"Nettie Greer\",\r\n age: 32,\r\n gender: \"female\",\r\n company: \"QUONK\",\r\n startDate: \"2014-03-15\",\r\n salary: \"$1,558.83\",\r\n },\r\n {\r\n id: 17,\r\n name: \"Anita Saunders\",\r\n age: 39,\r\n gender: \"female\",\r\n company: \"IDEALIS\",\r\n startDate: \"2015-07-31\",\r\n salary: \"$1,848.84\",\r\n },\r\n {\r\n id: 18,\r\n name: \"Darcy Mcclain\",\r\n age: 24,\r\n gender: \"female\",\r\n company: \"DIGIGEN\",\r\n startDate: \"2020-02-19\",\r\n salary: \"$3,382.78\",\r\n },\r\n {\r\n id: 19,\r\n name: \"Jodi Knowles\",\r\n age: 32,\r\n gender: \"female\",\r\n company: \"KONGENE\",\r\n startDate: \"2014-03-09\",\r\n salary: \"$1,668.05\",\r\n },\r\n {\r\n id: 20,\r\n name: \"Cathleen Schroeder\",\r\n age: 21,\r\n gender: \"female\",\r\n company: \"TROPOLIS\",\r\n startDate: \"2014-09-28\",\r\n salary: \"$2,730.21\",\r\n },\r\n {\r\n id: 21,\r\n name: \"Lea Fitzgerald\",\r\n age: 24,\r\n gender: \"female\",\r\n company: \"AVENETRO\",\r\n startDate: \"2015-08-17\",\r\n salary: \"$2,547.85\",\r\n },\r\n {\r\n id: 22,\r\n name: \"Pitts Graham\",\r\n age: 20,\r\n gender: \"male\",\r\n company: \"MALATHION\",\r\n startDate: \"2020-05-08\",\r\n salary: \"$3,538.05\",\r\n },\r\n {\r\n id: 23,\r\n name: \"Lane Glass\",\r\n age: 22,\r\n gender: \"male\",\r\n company: \"NETROPIC\",\r\n startDate: \"2020-01-26\",\r\n salary: \"$1,141.42\",\r\n },\r\n {\r\n id: 24,\r\n name: \"Tisha Cleveland\",\r\n age: 33,\r\n gender: \"female\",\r\n company: \"YURTURE\",\r\n startDate: \"2020-01-11\",\r\n salary: \"$2,877.89\",\r\n },\r\n {\r\n id: 25,\r\n name: \"Ortiz Nguyen\",\r\n age: 34,\r\n gender: \"male\",\r\n company: \"TRIBALOG\",\r\n startDate: \"2019-07-09\",\r\n salary: \"$3,156.79\",\r\n },\r\n {\r\n id: 26,\r\n name: \"Katrina Alvarado\",\r\n age: 33,\r\n gender: \"female\",\r\n company: \"PYRAMIA\",\r\n startDate: \"2016-07-04\",\r\n salary: \"$2,273.02\",\r\n },\r\n {\r\n id: 27,\r\n name: \"Craig Chang\",\r\n age: 30,\r\n gender: \"male\",\r\n company: \"COMVEYER\",\r\n startDate: \"2019-09-08\",\r\n salary: \"$3,028.17\",\r\n },\r\n {\r\n id: 28,\r\n name: \"Joann Short\",\r\n age: 30,\r\n gender: \"female\",\r\n company: \"PRISMATIC\",\r\n startDate: \"2017-08-17\",\r\n salary: \"$2,041.14\",\r\n },\r\n {\r\n id: 29,\r\n name: \"Vargas Rivers\",\r\n age: 23,\r\n gender: \"male\",\r\n company: \"ELPRO\",\r\n startDate: \"2014-04-25\",\r\n salary: \"$1,906.04\",\r\n },\r\n {\r\n id: 30,\r\n name: \"Snow Hampton\",\r\n age: 37,\r\n gender: \"male\",\r\n company: \"SNORUS\",\r\n startDate: \"2014-11-30\",\r\n salary: \"$1,419.30\",\r\n },\r\n {\r\n id: 31,\r\n name: \"Ellison Pennington\",\r\n age: 32,\r\n gender: \"male\",\r\n company: \"APEX\",\r\n startDate: \"2020-02-06\",\r\n salary: \"$3,486.62\",\r\n },\r\n {\r\n id: 32,\r\n name: \"Kate Donaldson\",\r\n age: 28,\r\n gender: \"female\",\r\n company: \"TALENDULA\",\r\n startDate: \"2021-07-05\",\r\n salary: \"$3,025.63\",\r\n },\r\n {\r\n id: 33,\r\n name: \"Bridges Franco\",\r\n age: 20,\r\n gender: \"male\",\r\n company: \"FURNAFIX\",\r\n startDate: \"2021-09-21\",\r\n salary: \"$1,371.72\",\r\n },\r\n {\r\n id: 34,\r\n name: \"Montgomery Moreno\",\r\n age: 24,\r\n gender: \"male\",\r\n company: \"ZIORE\",\r\n startDate: \"2018-08-04\",\r\n salary: \"$1,016.90\",\r\n },\r\n {\r\n id: 35,\r\n name: \"Meyers Barnett\",\r\n age: 25,\r\n gender: \"male\",\r\n company: \"OCEANICA\",\r\n startDate: \"2017-03-04\",\r\n salary: \"$3,804.05\",\r\n },\r\n {\r\n id: 36,\r\n name: \"Gertrude Glenn\",\r\n age: 29,\r\n gender: \"female\",\r\n company: \"FORTEAN\",\r\n startDate: \"2018-04-19\",\r\n salary: \"$3,883.97\",\r\n },\r\n {\r\n id: 37,\r\n name: \"Wise Fitzpatrick\",\r\n age: 34,\r\n gender: \"male\",\r\n company: \"RODEOLOGY\",\r\n startDate: \"2017-11-08\",\r\n salary: \"$1,400.23\",\r\n },\r\n {\r\n id: 38,\r\n name: \"Joseph Leonard\",\r\n age: 30,\r\n gender: \"male\",\r\n company: \"QIMONK\",\r\n startDate: \"2014-12-01\",\r\n salary: \"$2,689.09\",\r\n },\r\n {\r\n id: 39,\r\n name: \"Booker Chambers\",\r\n age: 24,\r\n gender: \"male\",\r\n company: \"SKYPLEX\",\r\n startDate: \"2014-07-29\",\r\n salary: \"$3,949.05\",\r\n },\r\n {\r\n id: 40,\r\n name: \"Corrine Kerr\",\r\n age: 35,\r\n gender: \"female\",\r\n company: \"FIBEROX\",\r\n startDate: \"2019-06-07\",\r\n salary: \"$2,245.15\",\r\n },\r\n {\r\n id: 41,\r\n name: \"Williamson Daniel\",\r\n age: 26,\r\n gender: \"male\",\r\n company: \"GREEKER\",\r\n startDate: \"2020-09-15\",\r\n salary: \"$3,814.20\",\r\n },\r\n {\r\n id: 42,\r\n name: \"Anthony Oneill\",\r\n age: 36,\r\n gender: \"male\",\r\n company: \"MIXERS\",\r\n startDate: \"2020-07-22\",\r\n salary: \"$1,129.99\",\r\n },\r\n {\r\n id: 43,\r\n name: \"Marquita Hubbard\",\r\n age: 25,\r\n gender: \"female\",\r\n company: \"VELOS\",\r\n startDate: \"2015-11-19\",\r\n salary: \"$2,227.39\",\r\n },\r\n {\r\n id: 44,\r\n name: \"Dena Clements\",\r\n age: 34,\r\n gender: \"female\",\r\n company: \"ORBEAN\",\r\n startDate: \"2020-08-31\",\r\n salary: \"$2,689.21\",\r\n },\r\n {\r\n id: 45,\r\n name: \"Tia Curry\",\r\n age: 37,\r\n gender: \"female\",\r\n company: \"MUSAPHICS\",\r\n startDate: \"2019-04-02\",\r\n salary: \"$3,784.72\",\r\n },\r\n {\r\n id: 46,\r\n name: \"Rios House\",\r\n age: 30,\r\n gender: \"male\",\r\n company: \"IMPERIUM\",\r\n startDate: \"2015-08-23\",\r\n salary: \"$1,519.37\",\r\n },\r\n {\r\n id: 47,\r\n name: \"Whitfield Mcleod\",\r\n age: 37,\r\n gender: \"male\",\r\n company: \"SCHOOLIO\",\r\n startDate: \"2015-03-17\",\r\n salary: \"$2,365.21\",\r\n },\r\n {\r\n id: 48,\r\n name: \"Conrad Holt\",\r\n age: 38,\r\n gender: \"male\",\r\n company: \"MENBRAIN\",\r\n startDate: \"2020-02-01\",\r\n salary: \"$2,289.04\",\r\n },\r\n {\r\n id: 49,\r\n name: \"Mclaughlin Fletcher\",\r\n age: 34,\r\n gender: \"male\",\r\n company: \"SOLAREN\",\r\n startDate: \"2018-09-05\",\r\n salary: \"$1,115.62\",\r\n },\r\n];\r\n\r\nexport const userData = [\r\n {\r\n id: 1,\r\n avatarBg: \"purple\",\r\n name: \"Abu Bin Ishtiyak\",\r\n displayName: \"Ishtiak\",\r\n dob: \"10 Aug, 1980\",\r\n role: \"Customer\",\r\n checked: false,\r\n email: \"info@softnio.com\",\r\n balance: \"35,040.34\",\r\n phone: \"818474958\",\r\n emailStatus: \"success\",\r\n kycStatus: \"success\",\r\n lastLogin: \"10 Feb 2020\",\r\n status: \"Active\",\r\n address: \"2337 Kildeer Drive\",\r\n state: \"Kentucky\",\r\n country: \"Canada\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 2,\r\n avatarBg: \"purple\",\r\n image: User3,\r\n name: \"Ashley Lawson\",\r\n dob: \"10 Sept, 1990\",\r\n role: \"Investor\",\r\n email: \"ashley@softnio.com\",\r\n balance: \"580.00\",\r\n checked: false,\r\n phone: \"1243941787\",\r\n emailStatus: \"success\",\r\n kycStatus: \"pending\",\r\n lastLogin: \"07 Feb 2020\",\r\n status: \"Pending\",\r\n country: \"United States\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 3,\r\n avatarBg: \"info\",\r\n name: \"Joe Larson\",\r\n dob: \"19 Jan, 1985\",\r\n role: \"Customer\",\r\n email: \"larson@example.com\",\r\n balance: \"32,000.34\",\r\n checked: false,\r\n phone: \"1686032320\",\r\n emailStatus: \"success\",\r\n kycStatus: \"success\",\r\n lastLogin: \"04 Feb 2020\",\r\n status: \"Active\",\r\n country: \"England\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 4,\r\n avatarBg: \"danger\",\r\n name: \"Jane Montgomery\",\r\n dob: \"24 April, 1985\",\r\n role: \"Subscriber\",\r\n email: \"jane84@example.com\",\r\n balance: \"0.00\",\r\n checked: false,\r\n phone: \"4392715360\",\r\n emailStatus: \"alert\",\r\n kycStatus: \"alert\",\r\n lastLogin: \"01 Feb 2020\",\r\n status: \"Suspend\",\r\n country: \"United States\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 5,\r\n avatarBg: \"purple\",\r\n name: \"Frances Burns\",\r\n dob: \"30 May, 2000\",\r\n role: \"Manager\",\r\n image: User,\r\n email: \"frances@example.com\",\r\n balance: \"42.50\",\r\n checked: false,\r\n phone: \"6391303150\",\r\n emailStatus: \"pending\",\r\n kycStatus: \"error\",\r\n lastLogin: \"31 Jan 2020\",\r\n status: \"Active\",\r\n country: \"Bangladesh\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 6,\r\n avatarBg: \"primary\",\r\n name: \"Alan Butler\",\r\n dob: \"10 Feb, 1997\",\r\n role: \"Investor\",\r\n image: User2,\r\n email: \"butler@example.com\",\r\n balance: \"440.34\",\r\n checked: false,\r\n phone: \"9633091706\",\r\n emailStatus: \"pending\",\r\n kycStatus: \"warning\",\r\n lastLogin: \"18 Jan 2020\",\r\n status: \"Inactive\",\r\n country: \"India\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 7,\r\n avatarBg: \"warning\",\r\n name: \"Victoria Lynch\",\r\n dob: \"02 May, 1993\",\r\n role: \"Investor\",\r\n email: \"victoria@example.com\",\r\n balance: \"59,400.68\",\r\n checked: false,\r\n phone: \"8119854846\",\r\n emailStatus: \"success\",\r\n kycStatus: \"success\",\r\n lastLogin: \"15 Jan 2020\",\r\n status: \"Active\",\r\n country: \"China\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 8,\r\n avatarBg: \"success\",\r\n name: \"Patrick Newman\",\r\n dob: \"15 Feb, 1997\",\r\n role: \"Customer\",\r\n email: \"patrick@example.com\",\r\n balance: \"30.00\",\r\n checked: false,\r\n phone: \"9422384474\",\r\n emailStatus: \"success\",\r\n kycStatus: \"pending\",\r\n lastLogin: \"08 Jan 2020\",\r\n status: \"Active\",\r\n country: \"India\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 9,\r\n avatarBg: \"purple\",\r\n name: \"Jane Harris\",\r\n dob: \"28 Feb, 1985\",\r\n role: \"Customer\",\r\n image: User4,\r\n email: \"harris@example.com\",\r\n balance: \"5,530.23\",\r\n checked: false,\r\n phone: \"1234472384\",\r\n emailStatus: \"pending\",\r\n kycStatus: \"pending\",\r\n lastLogin: \"02 Jan 2020\",\r\n status: \"Pending\",\r\n country: \"Vietnam\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 10,\r\n avatarBg: \"purple\",\r\n name: \"Emma Walker\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Investor\",\r\n email: \"walker@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"success\",\r\n kycStatus: \"success\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Active\",\r\n country: \"United States\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 11,\r\n avatarBg: \"pink\",\r\n name: \"Lilja Peltola\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Investor\",\r\n email: \"lilja@example.com\",\r\n balance: \"105.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"success\",\r\n kycStatus: \"pending\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Active\",\r\n country: \"Canada\",\r\n designation: \"Web Developer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 12,\r\n avatarBg: \"secondary\",\r\n name: \"Annette Hunter\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Investor\",\r\n email: \"hunter@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"success\",\r\n kycStatus: \"success\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Pending\",\r\n country: \"United States\",\r\n designation: \"UI/UX Designer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 13,\r\n avatarBg: \"pink\",\r\n name: \"Sara Koivisto\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Customer\",\r\n email: \"sara@example.com\",\r\n balance: \"165.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"rejected\",\r\n kycStatus: \"pending\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Active\",\r\n country: \"Russia\",\r\n designation: \"Web Developer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 14,\r\n avatarBg: \"blue\",\r\n name: \"Kianna Pham\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Admin\",\r\n email: \"kiana@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"success\",\r\n kycStatus: \"rejected\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Suspend\",\r\n country: \"South Korea\",\r\n designation: \"Accountant\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 15,\r\n avatarBg: \"pink\",\r\n name: \"Raymond Atkins\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Customer\",\r\n image: User4,\r\n email: \"sara@example.com\",\r\n balance: \"165.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"rejected\",\r\n kycStatus: \"pending\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Active\",\r\n country: \"Russia\",\r\n designation: \"Web Developer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 16,\r\n avatarBg: \"blue\",\r\n name: \"Amira Talley\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Admin\",\r\n email: \"amira@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"pending\",\r\n kycStatus: \"rejected\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Active\",\r\n country: \"Saudi Arabia\",\r\n designation: \"Lecturer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 17,\r\n avatarBg: \"secondary\",\r\n name: \"Lana Steiner\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Admin\",\r\n email: \"steinar@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"pending\",\r\n kycStatus: \"rejected\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Pending\",\r\n country: \"Latvia\",\r\n designation: \"Accountant\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 18,\r\n avatarBg: \"warning\",\r\n name: \"Joshua Mcnair\",\r\n dob: \"30 Dec, 1998\",\r\n image: User4,\r\n role: \"Admin\",\r\n email: \"joshua@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"pending\",\r\n kycStatus: \"rejected\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Suspend\",\r\n country: \"Ireland\",\r\n designation: \"Web Developer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 19,\r\n avatarBg: \"secondary\",\r\n name: \"Asiya Wolff\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Customer\",\r\n email: \"asia@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"success\",\r\n kycStatus: \"success\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Active\",\r\n country: \"Latvia\",\r\n designation: \"Accountant\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n {\r\n id: 20,\r\n avatarBg: \"warning\",\r\n name: \"Fox Mccloud\",\r\n dob: \"30 Dec, 1998\",\r\n role: \"Admin\",\r\n email: \"fox@example.com\",\r\n balance: \"55.00\",\r\n checked: false,\r\n phone: \"4634717173\",\r\n emailStatus: \"pending\",\r\n kycStatus: \"rejected\",\r\n lastLogin: \"25 Dec 2019\",\r\n status: \"Suspend\",\r\n country: \"Ireland\",\r\n designation: \"Web Developer\",\r\n projects: \"213\",\r\n performed: \"87.5\",\r\n tasks: \"587\",\r\n },\r\n];\r\n\r\n","import React, { useState, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport {\n Icon,\n TooltipComponent,\n UserAvatar,\n} from '../../../components/Component';\nimport { findUpper } from '../../../utils/Utils';\nimport { TUserProfile } from '../../../types/user.types';\nimport { useSubscription } from '../../../context/SubscriptionContext/SubscriptionContext';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\ninterface UserProfileProps {\n updateSm: (sm: boolean) => void;\n sm: boolean;\n userProfile: TUserProfile | undefined;\n}\nconst UserProfileAside: React.FC = ({\n updateSm,\n sm,\n userProfile,\n}) => {\n const [profile, setProfile] = useState(userProfile);\n const { subscription, plans, refreshSubscription } = useSubscription();\n const userPlan = plans?.find(plan => plan.publicId === subscription?.planId);\n\n useEffect(() => {\n refreshSubscription();\n }, []);\n\n useEffect(() => {\n setProfile(userProfile);\n }, [userProfile]);\n\n useEffect(() => {\n sm\n ? document.body.classList.add('toggle-shown')\n : document.body.classList.remove('toggle-shown');\n }, [sm]);\n\n return (\n
      \n
      \n
      \n \n )\n }\n theme=\"light\"\n size=\"md\"\n />\n
      \n \n {profile?.firstName || (\n \n )}\n \n \n {profile?.email || (\n \n )}\n \n
      \n {/*
      \n \n \n \n \n \n
        \n
      • \n {\n ev.preventDefault();\n }}\n >\n \n Change Photo\n \n
      • \n
      • \n {\n ev.preventDefault();\n }}\n >\n \n Update Profile\n \n
      • \n
      \n
      \n
      \n
      */}\n
      \n
      \n
      \n
      \n
      Credit Balance
      \n
      \n
        \n \n \n \n {subscription?.credits?.jobs ?? '-'}\n \n \n \n \n {subscription?.credits?.contacts ?? '-'}\n \n \n \n \n {subscription?.credits?.emails ?? '-'}\n \n
      \n
      \n\n {subscription &&\n (subscription?.usedCredits.jobs > 0 ||\n subscription?.usedCredits.contacts > 0 ||\n subscription?.usedCredits.emails > 0) && (\n <>\n
      {`${userPlan?.name.includes('Pay') ? 'Used Credits' : 'Extra credits usage'}`}
      \n
      \n
        \n \n \n \n {subscription?.usedCredits?.jobs ?? '-'}\n \n \n \n \n {subscription?.usedCredits?.contacts ?? '-'}\n \n \n \n \n {subscription?.usedCredits?.emails ?? '-'}\n \n
      \n
      \n

      {`Extra credit per unit US$ 0.${plans?.find(plan => plan.publicId === subscription?.planId)?.extraCreditPrice ?? 0}.\n\t\t\t\t\t\t\t\tTotal extra credits US$ ${((subscription?.usedCredits.jobs + subscription?.usedCredits.contacts + subscription?.usedCredits.emails) * (plans!.find(plan => plan.publicId === subscription!.planId)!.extraCreditPrice / 100)).toFixed(2)}.`}

      \n
      \n
      \n \n )}\n {/*
      \n Locked{\" \"}\n \n 0.344939 BTC\n \n
      */}\n
      \n
      \n
      \n
        \n
      • updateSm(false)}>\n \n \n Personal Information\n \n
      • \n
      • updateSm(false)}>\n \n \n Subscription\n \n
      • \n {/*
      • updateSm(false)}>\n \n \n Notification\n \n
      • \n
      • updateSm(false)}>\n \n \n Account Activity\n \n
      • */}\n
      • updateSm(false)}>\n \n \n Security Setting\n \n
      • \n
      \n
      \n
      \n );\n};\n\nexport default UserProfileAside;\n","import { TUserProfile, TUserUpdatePassword } from '../../types/user.types';\nimport { api, checkError } from './server';\n\nexport const APIGetUserProfile = async (\n userId: string,\n): Promise => {\n try {\n const response = await api.get(`/users/${userId}`);\n return response.data as TUserProfile;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIUpdateEmail = async (data: { email: string; code: string }) => {\n try {\n const response = await api.put('/users/email', data);\n return response.data;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APIUpdatePassword = async (\n userId: string,\n data: TUserUpdatePassword,\n): Promise => {\n try {\n const response = await api.patch(`/users/${userId}/password`, data);\n return response.data as void;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\nexport const APISendVerificationCode = async (userId: string) => {\n try {\n const response = await api.get(`/users/${userId}/cofirmationCode`);\n return response.data;\n } catch (error: any) {\n return checkError(error);\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport { Card, Button, Modal, ModalBody, Row, Col } from 'reactstrap';\nimport {\n BlockHead,\n BlockBetween,\n BlockHeadContent,\n BlockTitle,\n BlockDes,\n Icon,\n Block,\n} from '../../../components/Component';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport { userData } from '../../components/table/TableData';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport UserProfileAside from './UserProfileASide';\nimport { APIGetUserProfile } from '../../../services/api/api.user';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { TUserProfile } from '../../../types/user.types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faCircle,\n faEllipsisVertical,\n} from '@fortawesome/free-solid-svg-icons';\n\nconst Profile = () => {\n const [sm, updateSm] = useState(false);\n const [mobileView, setMobileView] = useState(false);\n const { user } = useAuth();\n const [userProfile, setUserProfile] = useState();\n const [modalTab, setModalTab] = useState('1');\n const [userInfo, setUserInfo] = useState(userData[0]);\n\n const [formData, setFormData] = useState({\n name: user!.firstName,\n displayName: user!.lastName,\n phone: '818474958',\n dob: '1980-08-10',\n address: '2337 Kildeer Drive',\n address2: '',\n state: 'Kentucky',\n country: 'Canada',\n });\n const [modal, setModal] = useState(false);\n const { handleAPIError } = useNotification();\n\n useEffect(() => {\n if (!user) return;\n APIGetUserProfile(user.publicId)\n .then(response => {\n console.log(response);\n setUserProfile(response);\n })\n .catch(error => {\n console.error(error);\n handleAPIError(error, error.message);\n });\n }, []);\n\n const onInputChange = e => {\n setFormData({ ...formData, [e.target.name]: e.target.value });\n };\n\n const submitForm = () => {\n let submitData = {\n ...userInfo,\n ...formData,\n image: undefined, // Ensure image is set to undefined\n };\n setUserInfo(submitData);\n setModal(false);\n };\n\n // function to change the design view under 990 px\n const viewChange = () => {\n if (window.innerWidth < 990) {\n setMobileView(true);\n } else {\n setMobileView(false);\n updateSm(false);\n }\n };\n\n useEffect(() => {\n viewChange();\n window.addEventListener('load', viewChange);\n window.addEventListener('resize', viewChange);\n document\n .getElementsByClassName('nk-header')[0]\n .addEventListener('click', function () {\n updateSm(false);\n });\n return () => {\n window.removeEventListener('resize', viewChange);\n window.removeEventListener('load', viewChange);\n };\n }, []);\n\n return (\n \n \n \n \n
      \n \n \n
      \n
      \n {sm && mobileView && (\n updateSm(!sm)}\n >
      \n )}\n \n \n \n Profile Settings\n \n

      View and update the associated with your profile.

      \n
      \n
      \n \n updateSm(!sm)}\n />\n \n
      \n
      \n\n \n
      \n
      \n
      Basics
      \n
      \n
      setModal(false)}>\n
      \n First Name\n \n {userProfile?.firstName || (\n \n )}\n \n
      \n
      \n \n {/* */}\n \n \n
      \n
      \n
      setModal(false)}>\n
      \n Last Name\n \n {userProfile?.lastName || (\n \n )}\n \n
      \n
      \n \n {/* */}\n \n \n
      \n
      \n
      setModal(false)}>\n
      \n Professional Email\n \n {userProfile?.email || (\n \n )}\n \n
      \n
      \n \n {/* */}\n \n \n
      \n
      \n
      \n
      \n\n setModal(false)}\n >\n {\n ev.preventDefault();\n setModal(false);\n }}\n className=\"close\"\n >\n \n \n \n
      \n
      Update Profile
      \n
        \n
      • \n {\n ev.preventDefault();\n setModalTab('1');\n }}\n href=\"#personal\"\n >\n Personal\n \n
      • \n
      \n
      \n \n \n \n
      \n \n onInputChange(e)}\n defaultValue={formData.name}\n placeholder=\"Enter Full name\"\n />\n
      \n \n \n
      \n \n Last Name\n \n onInputChange(e)}\n defaultValue={formData.displayName}\n placeholder=\"Enter display name\"\n />\n
      \n \n \n
        \n
      • \n {\n ev.preventDefault();\n submitForm();\n }}\n >\n Update Profile\n \n
      • \n
      • \n {\n ev.preventDefault();\n setModal(false);\n }}\n className=\"link link-light\"\n >\n Cancel\n \n
      • \n
      \n \n
      \n
      \n
      \n \n
      \n \n \n \n
      \n
      \n
      \n );\n};\n\nexport default Profile;\n","import React, { useState, useEffect } from 'react';\nimport Content from '../../../layout/content/Content';\nimport { Card, Modal, ModalBody, Row, Col, Button } from 'reactstrap';\nimport Head from '../../../layout/head/Head';\nimport {\n Block,\n BlockBetween,\n BlockDes,\n BlockHead,\n BlockHeadContent,\n BlockTitle,\n} from '../../../components/Component';\nimport UserProfileAside from './UserProfileASide';\nimport {\n APIGetUserProfile,\n APISendVerificationCode,\n APIUpdatePassword,\n} from '../../../services/api/api.user';\nimport { TUserProfile, TUserUpdatePassword } from '../../../types/user.types';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport CustomInput from '../../../components/input/CustomInput';\nimport PasswordFields from '../../components/forms/PasswordFields';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faEllipsisVertical } from '@fortawesome/free-solid-svg-icons';\n\nconst UserProfileSettingPage = () => {\n const [sm, updateSm] = useState(false);\n const [mobileView, setMobileView] = useState(false);\n const [userProfile, setUserProfile] = useState();\n const [passwordModal, setPasswordModal] = useState(false);\n\n const [passwordData, setPasswordData] = useState({\n oldPassword: '',\n code: '',\n password: '',\n confirmPassword: '',\n });\n\n const { user } = useAuth();\n const { handleAPIError, createNotification } = useNotification();\n\n const viewChange = () => {\n if (window.innerWidth < 990) {\n setMobileView(true);\n } else {\n setMobileView(false);\n updateSm(false);\n }\n };\n\n useEffect(() => {\n viewChange();\n window.addEventListener('load', viewChange);\n window.addEventListener('resize', viewChange);\n document\n .getElementsByClassName('nk-header')[0]\n .addEventListener('click', function () {\n updateSm(false);\n });\n return () => {\n window.removeEventListener('resize', viewChange);\n window.removeEventListener('load', viewChange);\n };\n }, []);\n\n useEffect(() => {\n if (!user) return;\n APIGetUserProfile(user.publicId)\n .then(response => setUserProfile(response))\n .catch(error => handleAPIError(error, error.message));\n }, []);\n\n const sendVerificationCode = async () => {\n if (!userProfile?.email) return;\n try {\n await APISendVerificationCode(userProfile?.publicId);\n createNotification(\n 'success',\n `Verification code sent to ${makeMaskedEmail(userProfile.email)}`,\n );\n } catch (error: any) {\n if (error.message.includes('already')) {\n createNotification('info', 'Verification code sent.');\n return;\n }\n handleAPIError(error, error.message);\n }\n };\n\n const makeMaskedEmail = (email: string) => {\n const [name, domain] = email.split('@');\n return `${name.slice(0, 2)}***@${domain}`;\n };\n\n const validateFields = () => {\n if (!passwordData.code) {\n createNotification('danger', 'Verification code is required.');\n return false;\n }\n if (!passwordData.oldPassword) {\n createNotification('danger', 'Old password is required.');\n return false;\n }\n if (!passwordData.password) {\n createNotification('danger', 'New password is required.');\n return false;\n }\n if (!passwordData.confirmPassword) {\n createNotification('danger', 'Confirm password is required.');\n return false;\n }\n if (passwordData.password !== passwordData.confirmPassword) {\n createNotification(\n 'danger',\n 'Password and confirm password do not match.',\n );\n return false;\n }\n return true;\n };\n\n const handlePasswordChange = async () => {\n try {\n if (!user?.publicId) return;\n if (!validateFields()) return;\n await APIUpdatePassword(user?.publicId, passwordData);\n createNotification('success', 'Password updated successfully.');\n setPasswordModal(false);\n } catch (error) {\n handleAPIError(error, 'Failed to update password.');\n }\n };\n\n return (\n \n \n \n \n
      \n \n \n
      \n
      \n {sm && mobileView && (\n updateSm(!sm)}\n >
      \n )}\n \n \n \n Security Settings\n \n

      \n These settings will help you to keep your account\n secure.\n

      \n
      \n
      \n \n updateSm(!sm)}\n />\n \n
      \n
      \n\n \n \n
      \n {/*
      \n
      \n
      \n
      Change Email
      \n

      Set email address to login and receive notifications and updates.

      \n
      \n
      \n \n
      \n
      \n
      */}\n
      \n
      \n
      \n
      Change Password
      \n

      Set a unique password to protect your account.

      \n
      \n
      \n {\n sendVerificationCode();\n setPasswordModal(true);\n }}\n >\n Change Password\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n
      \n\n {/* Modal for Password Change */}\n setPasswordModal(false)}\n className=\"modal-dialog-centered\"\n >\n \n
      Change Password
      \n \n \n \n \n setPasswordData({ ...passwordData, code: e.target.value })\n }\n />\n \n We have sent a verification code to your email.\n \n \n \n \n \n setPasswordData({\n ...passwordData,\n oldPassword: e.target.value,\n })\n }\n />\n \n {\n setPasswordData({\n ...passwordData,\n password,\n confirmPassword,\n });\n }}\n />\n \n \n \n \n
      \n \n
      \n
      \n );\n};\n\nexport default UserProfileSettingPage;\n","var _excluded = [\"className\", \"cssModule\", \"color\", \"innerRef\", \"pill\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Pass children so this component can wrap the child elements */\n children: PropTypes.node,\n /** Add custom class */\n className: PropTypes.string,\n /** Change background color of Badge */\n color: PropTypes.string,\n /** Change existing className with a new className */\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n /** Add rounded corners to the Badge */\n pill: PropTypes.bool,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction Badge(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$color = props.color,\n color = _props$color === void 0 ? 'secondary' : _props$color,\n innerRef = props.innerRef,\n _props$pill = props.pill,\n pill = _props$pill === void 0 ? false : _props$pill,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'span' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'badge', 'bg-' + color, pill ? 'rounded-pill' : false), cssModule);\n if (attributes.href && Tag === 'span') {\n Tag = 'a';\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes,\n ref: innerRef\n }));\n}\nBadge.propTypes = propTypes;\nexport default Badge;","var _circle, _circle2, _circle3, _rect, _rect2, _polygon, _polygon2, _polygon3, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPlanS3(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 90 90\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 82.03,\n cy: 26.32,\n r: 2.97,\n fill: \"none\",\n stroke: \"#c4cefe\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 79.41,\n cy: 68.42,\n r: 2.87,\n fill: \"#e3e7fe\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 14.98,\n cy: 82.08,\n r: 1.72,\n fill: \"#e3e7fe\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 5,\n y: 34.77,\n width: 6.88,\n height: 2.29,\n fill: \"#e3e7fe\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 5,\n y: 34.77,\n width: 6.88,\n height: 2.29,\n transform: \"translate(44.36 27.47) rotate(90)\",\n fill: \"#e3e7fe\"\n })), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"39.21 4.22 42.89 5.55 45.92 3.33 45.97 7.18 49.17 9.48 45.52 10.53 44.47 14.18 42.16 10.98 38.31 10.94 40.54 7.91 39.21 4.22\",\n fill: \"#6576ff\"\n })), _polygon2 || (_polygon2 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"29.41 10.28 31.41 11 33.06 9.79 33.08 11.88 34.82 13.14 32.84 13.71 32.27 15.69 31.02 13.95 28.92 13.93 30.13 12.28 29.41 10.28\",\n fill: \"#b3c2ff\"\n })), _polygon3 || (_polygon3 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"51.56 9.67 53.89 10.52 55.81 9.11 55.84 11.54 57.87 13 55.56 13.67 54.89 15.98 53.44 13.95 51 13.92 52.41 12 51.56 9.67\",\n fill: \"#b3c2ff\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.89,64.32a.77.77,0,0,0-1-.78,21.57,21.57,0,0,1-4.44.67A21.73,21.73,0,0,1,40,63.54a.77.77,0,0,0-1,.78v3a1,1,0,0,0,1,1h8.81a1,1,0,0,0,1-1Zm.46-.17\",\n fill: \"#fff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.43,20.88H30.92A2.08,2.08,0,0,0,28.84,23V40.1a21.46,21.46,0,0,0,4.51,13.75,14.46,14.46,0,0,0,22.65,0A21.46,21.46,0,0,0,60.51,40.1V23A2.08,2.08,0,0,0,58.43,20.88Z\",\n fill: \"#fff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.15,44.87c-2.71-1-4-3.51-4-7.59V27.8h4V23.85H18.31a2.07,2.07,0,0,0-2.07,2.07V37.28c0,6.93,3.16,11.15,9,12.14a26.26,26.26,0,0,1-1.06-4.55Z\",\n fill: \"#fff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.5,72.92v2.16c0,.23.94.42,2.1.42H58.4c1.16,0,2.1-.19,2.1-.42V72.92c0-.23-.94-.42-2.1-.42H30.6C29.44,72.5,28.5,72.69,28.5,72.92Zm2.85.12\",\n fill: \"#6576ff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.5,78.92v2.16c0,.23.94.42,2.1.42H58.4c1.16,0,2.1-.19,2.1-.42V78.92c0-.23-.94-.42-2.1-.42H30.6C29.44,78.5,28.5,78.69,28.5,78.92Zm2.85.12\",\n fill: \"#6576ff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.64,23.85H65.71V27.8h4v8.84c0,3.89-1.24,6.22-4,7.23a24,24,0,0,1-1.06,4.33c5.81-.94,9-5,9-11.56V25.82a2,2,0,0,0-2-2Z\",\n fill: \"#fff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.56,33.64v9a1.45,1.45,0,0,1-.72,1.26L45.4,46.48a1.45,1.45,0,0,1-1.45,0l-4.43-2.56a1.44,1.44,0,0,1-.73-1.26V37.54a1.44,1.44,0,0,1,.73-1.26L44,33.72a1.43,1.43,0,0,1,1.32-.07v1.52l0,0a1.14,1.14,0,0,0-1.13,0l-3.44,2a1.11,1.11,0,0,0-.56,1v4a1.12,1.12,0,0,0,.56,1l3.44,2a1.14,1.14,0,0,0,1.13,0l3.44-2a1.12,1.12,0,0,0,.56-1v-9.2Z\",\n fill: \"#6576ff\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.92,32.11l-1.33-.76v1.53h0v8a.49.49,0,0,1-.24.42l-1.43.83a.51.51,0,0,1-.48,0L43,41.35a.49.49,0,0,1-.24-.42V39.27a.49.49,0,0,1,.24-.42L44.44,38a.46.46,0,0,1,.48,0l.35.21V36.7l-.19-.11a.79.79,0,0,0-.81,0L41.84,38a.82.82,0,0,0-.41.7V41.5a.81.81,0,0,0,.41.7l2.43,1.41a.83.83,0,0,0,.81,0l2.43-1.41a.81.81,0,0,0,.41-.7V33.64h0Z\",\n fill: \"#6576ff\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.89,34.41v8.82a1.78,1.78,0,0,1-.9,1.55l-5.42,3.13a1.79,1.79,0,0,1-1.79,0l-5.42-3.13a1.78,1.78,0,0,1-.9-1.55V37a1.78,1.78,0,0,1,.9-1.55l5.42-3.13a1.79,1.79,0,0,1,1.79,0l1,.59V31.35l-.86-.5a2.1,2.1,0,0,0-2.11,0L37.2,34.56a2.11,2.11,0,0,0-1.06,1.83v7.42a2.11,2.11,0,0,0,1.06,1.83l6.42,3.7a2.1,2.1,0,0,0,2.11,0l6.42-3.7a2.11,2.11,0,0,0,1.06-1.83V35.19Z\",\n fill: \"#6576ff\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlanS3);\nexport default __webpack_public_path__ + \"static/media/plan-s3.b076cdfb5f4f9fbd581fc51c17f12469.svg\";\nexport { ForwardRef as ReactComponent };","import PlanS1 from '../../../images/icons/plan-s1.svg';\nimport PlanS2 from '../../../images/icons/plan-s2.svg';\nimport PlanS3 from '../../../images/icons/plan-s3.svg';\n\nexport const pricingTable = [\n {\n publicId: '99122662-ea36-4c14-9bde-21276e4988a4',\n title: 'Pay as you go',\n logo: PlanS1,\n desc: 'Pay only for what you use. No hidden charges.',\n amount: 0,\n userNumber: 1,\n tags: false,\n features: [\n // { name: \"Start with 5 Job Post Credits\", strike: false },\n // { name: \"Start with 10 Contact Credits\", strike: false },\n // { name: \"Start with 10 Email Credits\", strike: false },\n { name: '$0.30 Per Credit', strike: false },\n { name: 'AI Candidate Sourcing', strike: true },\n { name: 'Chat & Email Support', strike: true },\n ],\n },\n {\n publicId: '6d840423-2673-447e-b363-e112bd4c8804',\n title: 'Recruiter',\n logo: PlanS2,\n desc: 'Ideal for recruiters with moderate hiring needs.',\n amount: 349,\n userNumber: 5,\n tags: true,\n features: [\n { name: '500 Job Posts Credits', strike: false },\n { name: '700 Contact Credits', strike: false },\n { name: '700 Email Credits', strike: false },\n { name: '$0.25 Per Extra Credit', strike: false },\n { name: 'AI Candidate Sourcing', strike: true },\n { name: 'Chat & Email Support', strike: false },\n ],\n },\n {\n publicId: 'ef53db22-5220-4b65-aa79-721463277bd2',\n title: 'Recruiter 360',\n logo: PlanS3,\n desc: 'Best for recruiters handling high-volume hiring needs.',\n amount: 599,\n userNumber: 20,\n tags: false,\n features: [\n { name: '1000 Job Posts Credits', strike: false },\n { name: '1500 Contact Credits', strike: false },\n { name: '1500 Email Credits', strike: false },\n { name: '$0.20 Per Extra Credit', strike: false },\n { name: 'AI Candidate Sourcing', strike: false },\n { name: 'Chat & Email Support', strike: false },\n ],\n },\n];\n","var _path, _circle, _path2, _path3, _rect, _rect2, _polygon, _polygon2, _polygon3, _polygon4, _polygon5, _polygon6, _polygon7, _polygon8, _polygon9, _path4, _path5, _path6, _path7;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPlanS1(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 90 90\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.8,22.23a2.89,2.89,0,1,1,2.89-2.89,2.89,2.89,0,0,1-2.89,2.89\",\n fill: \"#e3e7fe\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 72.42,\n cy: 73.31,\n r: 2.89,\n fill: \"none\",\n stroke: \"#c4cefe\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15,78.12a1.93,1.93,0,1,1,1.93-1.92A1.93,1.93,0,0,1,15,78.12\",\n fill: \"#e3e7fe\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14,51.35a1.93,1.93,0,1,1,1.93-1.93A1.94,1.94,0,0,1,14,51.35\",\n fill: \"#e3e7fe\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 6.01,\n y: 13.19,\n width: 5.97,\n height: 1.99,\n fill: \"#e3e7fe\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 8,\n y: 11.2,\n width: 1.99,\n height: 5.97,\n fill: \"#e3e7fe\"\n })), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"74.3 34.88 68.3 26.12 66.35 15.69 47.16 34.88 74.3 34.88\",\n fill: \"#e3e7fe\"\n })), _polygon2 || (_polygon2 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"42.54 6.45 33.78 12.44 23.34 14.39 42.54 33.59 42.54 6.45\",\n fill: \"#e3e7fe\"\n })), _polygon3 || (_polygon3 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"14.16 37.73 20.15 46.49 22.11 56.92 41.3 37.73 14.16 37.73\",\n fill: \"#e3e7fe\"\n })), _polygon4 || (_polygon4 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"23.34 58.64 33.78 60.59 42.54 66.59 42.54 39.44 23.34 58.64\",\n fill: \"#e3e7fe\"\n })), _polygon5 || (_polygon5 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"22.11 15.69 20.15 26.12 14.16 34.88 41.3 34.88 22.11 15.69\",\n fill: \"#e3e7fe\"\n })), _polygon6 || (_polygon6 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"74.3 37.87 47.16 37.87 66.35 57.06 68.3 46.62 74.3 37.87\",\n fill: \"#e3e7fe\"\n })), _polygon7 || (_polygon7 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"45.52 66.59 54.28 60.59 64.72 58.64 45.52 39.44 45.52 66.59\",\n fill: \"#e3e7fe\"\n })), _polygon8 || (_polygon8 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"64.72 14.39 54.28 12.44 45.52 6.45 45.52 33.59 64.72 14.39\",\n fill: \"#e3e7fe\"\n })), _polygon9 || (_polygon9 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"53.84 62.75 44.03 69.48 34.22 62.75 30.6 62.75 30.6 85.64 34.22 85.64 44.03 78.91 53.84 85.64 57.47 85.64 57.47 62.75 53.84 62.75\",\n fill: \"#e3e7fe\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.84,36.52A17.62,17.62,0,1,1,44.23,18.9,17.61,17.61,0,0,1,61.84,36.52\",\n fill: \"#fff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.71,30.06v9a1.44,1.44,0,0,1-.77,1.26l-4.67,2.55a1.62,1.62,0,0,1-1.54,0l-4.67-2.55a1.44,1.44,0,0,1-.77-1.26V34a1.44,1.44,0,0,1,.77-1.26l4.67-2.55a1.6,1.6,0,0,1,1.4-.07v1.52l0,0a1.26,1.26,0,0,0-1.19,0l-3.63,2a1.1,1.1,0,0,0-.59,1v4a1.1,1.1,0,0,0,.59,1l3.63,2a1.26,1.26,0,0,0,1.19,0l3.62-2a1.11,1.11,0,0,0,.6-1V29.3Z\",\n fill: \"#6576ff\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.92,28.54l-1.4-.76v9.55a.45.45,0,0,1-.25.41l-1.52.83a.5.5,0,0,1-.5,0l-1.52-.83a.45.45,0,0,1-.25-.41V35.67a.45.45,0,0,1,.25-.41l1.52-.83a.5.5,0,0,1,.5,0l.38.2V33.11l-.2-.11a.93.93,0,0,0-.86,0l-2.56,1.4a.79.79,0,0,0-.43.7v2.8a.79.79,0,0,0,.43.7L44.07,40a.93.93,0,0,0,.86,0l2.56-1.4a.81.81,0,0,0,.43-.7V28.54Z\",\n fill: \"#6576ff\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.11,30.83v8.79a1.77,1.77,0,0,1-1,1.55l-5.72,3.12a2,2,0,0,1-1.88,0l-5.72-3.12a1.76,1.76,0,0,1-.94-1.55V33.38a1.76,1.76,0,0,1,.94-1.55l5.72-3.12a2,2,0,0,1,1.88,0l1.08.59V27.78l-.9-.5a2.4,2.4,0,0,0-2.24,0L36.62,31a2.07,2.07,0,0,0-1.12,1.83v7.38A2.07,2.07,0,0,0,36.62,42l6.76,3.7a2.4,2.4,0,0,0,2.24,0L52.38,42a2.07,2.07,0,0,0,1.12-1.83V31.6Z\",\n fill: \"#6576ff\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlanS1);\nexport default __webpack_public_path__ + \"static/media/plan-s1.145bedf2dff953a59fca891147d5fcf6.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _circle3, _circle4, _rect, _rect2, _circle5, _circle6, _path, _path2, _path3, _rect3, _path4, _path5, _path6;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPlanS2(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 90 90\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 24.83,\n cy: 6.55,\n r: 3.06,\n fill: \"#e3e7fe\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 83.97,\n cy: 28.73,\n r: 3.03,\n fill: \"none\",\n stroke: \"#c4cefe\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 83.58,\n cy: 67.84,\n r: 1.84,\n fill: \"#e3e7fe\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12.04,\n cy: 84.67,\n r: 1.84,\n fill: \"#e3e7fe\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 47.84,\n width: 6.12,\n height: 1.75,\n fill: \"#e3e7fe\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 47.84,\n width: 6.12,\n height: 1.75,\n transform: \"translate(54.78 42.66) rotate(90)\",\n fill: \"#e3e7fe\"\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 45.76,\n cy: 64.92,\n r: 19.82,\n fill: \"#fff\"\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 45.76,\n cy: 64.92,\n r: 18.24,\n fill: \"none\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.5,22.5V43.89a23.66,23.66,0,0,1,17,.1V22.5Z\",\n fill: \"#f3f5ff\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.5,22.5v23L27,51.71A23.73,23.73,0,0,1,37.5,43.89V22.5Z\",\n fill: \"#e3e7fe\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.5,22.5V44a23.68,23.68,0,0,1,10.32,7.86l6.68-6.37v-23Z\",\n fill: \"#e3e7fe\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 12,\n y: 14,\n width: 68,\n height: 8,\n rx: 2,\n ry: 2,\n fill: \"none\",\n stroke: \"#6576ff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52,58v9.62A1.56,1.56,0,0,1,51.26,69l-4.72,2.73a1.55,1.55,0,0,1-1.56,0L40.25,69a1.55,1.55,0,0,1-.77-1.34V62.19a1.55,1.55,0,0,1,.77-1.35L45,58.11A1.56,1.56,0,0,1,46.39,58v1.62l0,0a1.22,1.22,0,0,0-1.2,0l-3.67,2.12a1.2,1.2,0,0,0-.6,1V67a1.23,1.23,0,0,0,.6,1l3.67,2.11a1.17,1.17,0,0,0,1.2,0L50,68.08a1.21,1.21,0,0,0,.61-1V57.21Z\",\n fill: \"#6576ff\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.22,56.4l-1.42-.82v1.63h0V65.8a.52.52,0,0,1-.25.45L46,67.13a.52.52,0,0,1-.51,0L44,66.25a.52.52,0,0,1-.26-.45V64a.51.51,0,0,1,.26-.44l1.53-.89a.52.52,0,0,1,.51,0l.38.22V61.29l-.2-.12a.88.88,0,0,0-.86,0l-2.6,1.5a.85.85,0,0,0-.43.75v3a.85.85,0,0,0,.43.75l2.6,1.5a.83.83,0,0,0,.86,0l2.59-1.5a.86.86,0,0,0,.44-.75V58h0Z\",\n fill: \"#6576ff\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.45,58.85v9.41a1.9,1.9,0,0,1-1,1.65l-5.79,3.34a1.92,1.92,0,0,1-1.91,0L39,69.91a1.9,1.9,0,0,1-1-1.65V61.57a1.9,1.9,0,0,1,1-1.65l5.78-3.34a1.92,1.92,0,0,1,1.91,0l1.09.63V55.58l-.91-.53a2.28,2.28,0,0,0-2.26,0l-6.85,4a2.25,2.25,0,0,0-1.13,2v7.91a2.27,2.27,0,0,0,1.13,2l6.85,4a2.28,2.28,0,0,0,2.26,0l6.84-4a2.27,2.27,0,0,0,1.13-2V59.68Z\",\n fill: \"#6576ff\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlanS2);\nexport default __webpack_public_path__ + \"static/media/plan-s2.9a2b07aee28b3f48ebbc350ea9272166.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react';\nimport { Badge } from 'reactstrap';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport {\n BlockBetween,\n BlockDes,\n Block,\n BlockContent,\n BlockHead,\n BlockTitle,\n Col,\n Row,\n Button,\n} from '../../../components/Component';\nimport { Card } from 'reactstrap';\nimport { pricingTable } from './PlanTable';\nimport { APIPlanCheckout } from '../../../services/api/api.subscription';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\n\nconst PlanTable = () => {\n const { user } = useAuth();\n const { handleAPIError, createNotification } = useNotification();\n\n const [isLoading, setIsLoading] = useState(false);\n\n const subscribeToPlan = async (planId: string) => {\n try {\n if (!user) return;\n setIsLoading(true);\n const checkout = await APIPlanCheckout(planId, user.publicId);\n createNotification('info', 'Opening the checkout page');\n setTimeout(() => {\n window.open(checkout.url, '_blank');\n setIsLoading(false);\n }, 1000);\n } catch (error: any) {\n console.log('Error subscribing to plan:', error);\n handleAPIError(error);\n }\n };\n\n return (\n \n \n \n \n \n \n \n Select Your Plan\n \n

      \n Choose your pricing plan and start enjoying our service.\n

      \n
      \n
      \n
      \n
      \n \n {pricingTable.map(item => {\n return (\n \n \n {item.tags && (\n \n Recommend\n \n )}\n
      \n
      \n {item.title}\n
      \n
      \n
      {item.title}
      \n {item.desc}\n
      \n\n
      \n
      \n ${item.amount} /mo\n
      \n
      \n\n
      \n \n {item.features.map((feature, index) => (\n \n {feature.name}\n \n ))}\n \n
      \n\n
      \n subscribeToPlan(item.publicId)}\n disabled={isLoading}\n >\n {isLoading ? (\n \n {' '}\n Loading\n \n ) : (\n 'Subscribe'\n )}\n \n
      \n
      \n \n \n );\n })}\n
      \n
      \n
      \n
      \n );\n};\n\nexport default PlanTable;\n","import React, { useEffect, useState } from 'react';\nimport Head from '../../../layout/head/Head';\nimport Content from '../../../layout/content/Content';\nimport { Card } from 'reactstrap';\nimport UserProfileAside from './UserProfileASide';\nimport {\n BlockHead,\n BlockBetween,\n BlockHeadContent,\n BlockTitle,\n BlockDes,\n Icon,\n Block,\n TooltipComponent,\n Button,\n} from '../../../components/Component';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { TUserProfile } from '../../../types/user.types';\nimport { useSubscription } from '../../../context/SubscriptionContext/SubscriptionContext';\nimport { APIGetPortalSession } from '../../../services/api/api.subscription';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { getDateStructured } from '../../../utils/Utils';\nimport { SubscriptionStatus } from '../../../types/subscription.types';\nimport { useNavigate } from 'react-router';\nimport { APIGetUserProfile } from '../../../services/api/api.user';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCircle } from '@fortawesome/free-regular-svg-icons';\nimport {\n faCircleNotch,\n faEllipsisVertical,\n} from '@fortawesome/free-solid-svg-icons';\nimport { capitalizeFirstLetter } from '../../../utils/string.util';\n\nconst UserProfileSubscription = () => {\n const [sm, updateSm] = useState(false);\n const { user } = useAuth();\n const { subscription, plans } = useSubscription();\n const [userProfile, setUserProfile] = useState();\n const [mobileView, setMobileView] = useState(false);\n const [loadingPortal, setLoadingPortal] = useState(false);\n\n const { handleAPIError, createNotification } = useNotification();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (!user) return;\n APIGetUserProfile(user.publicId)\n .then(response => setUserProfile(response))\n .catch(error => handleAPIError(error, error.message));\n }, []);\n\n const manageSubscription = async () => {\n try {\n if (!user || !subscription) {\n createNotification(\n 'danger',\n 'Do not have permission to manage subscription.',\n );\n navigate('/logout');\n return;\n }\n\n if (\n subscription.status === SubscriptionStatus.Free ||\n subscription.status === SubscriptionStatus.Cancelled ||\n plans\n ?.find(plan => plan.publicId === subscription?.planId)\n ?.name.includes('Free')\n ) {\n createNotification(\n 'info',\n 'Please upgrade to a paid plan to manage your subscription.',\n );\n return navigate('/plans');\n }\n\n setLoadingPortal(true);\n const portal = await APIGetPortalSession(user.publicId);\n console.log(portal);\n createNotification(\n 'info',\n 'Opening the plan management portal, please wait.',\n );\n setTimeout(() => {\n window.open(portal.url, '_blank');\n setLoadingPortal(false);\n }, 1000);\n } catch (error: any) {\n handleAPIError(error);\n console.log('Error opening portal:', error);\n setLoadingPortal(false);\n }\n };\n\n return (\n \n \n \n \n
      \n \n \n
      \n
      \n {sm && mobileView &&
      updateSm(!sm)}>
      }\n \n \n \n Subscription\n \n

      Manage your subscription and billing information.

      \n
      \n
      \n \n updateSm(!sm)}\n />\n \n
      \n
      \n\n \n
      \n
      \n
      Subscription Details
      \n
      \n
      \n
      \n Subscription Plan\n \n {plans?.find(\n plan => plan.publicId === subscription?.planId,\n )?.name || }\n \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n Price per Month\n \n {`US$ ${plans?.find(plan => plan.publicId === subscription?.planId)?.price},00` || (\n \n )}\n \n
      \n
      \n \n \n \n
      \n
      \n {plans\n ?.find(plan => plan.publicId === subscription?.planId)\n ?.name.includes('Pay') ? ( // Pay as you go plan\n
      \n
      \n Credits Used\n
        \n \n \n \n \n {subscription && subscription?.usedCredits?.jobs}\n \n \n \n \n \n \n {subscription &&\n subscription?.usedCredits?.contacts}\n \n \n \n \n \n \n {subscription &&\n subscription?.usedCredits?.emails}\n \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n ) : (\n
      \n
      \n Credits per Month\n
        \n \n \n \n \n {plans?.find(\n plan => plan.publicId === subscription?.planId,\n )?.credits.jobs ?? '-'}\n \n \n \n \n \n \n {plans?.find(\n plan => plan.publicId === subscription?.planId,\n )?.credits.contacts ?? '-'}\n \n \n \n \n \n \n {plans?.find(\n plan => plan.publicId === subscription?.planId,\n )?.credits.emails ?? '-'}\n \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n )}\n
      {}}>\n
      \n Status\n \n {(subscription &&\n `${subscription.status === 'free' ? 'Limited' : capitalizeFirstLetter(subscription.status)}`) || (\n \n )}\n \n
      \n
      \n \n \n \n
      \n
      \n {subscription &&\n subscription.status === SubscriptionStatus.Cancelling && (\n
      {}}>\n
      \n Cancellation Date\n \n {getDateStructured(subscription.renewalDate)}\n \n
      \n
      \n \n \n \n
      \n
      \n )}\n
      {}}>\n
      \n Billing Date\n \n {subscription?.status === SubscriptionStatus.Free ||\n subscription?.status === SubscriptionStatus.Cancelled\n ? 'Not active'\n : (subscription?.renewalDate &&\n getDateStructured(subscription!.renewalDate)) || (\n \n )}\n \n
      \n
      \n \n \n \n
      \n
      \n\n
      \n
      \n
      \n
      Manage Subscription
      \n {plans\n ?.find(plan => plan.publicId === subscription?.planId)\n ?.name.includes('Free') ? (\n

      \n You are currently on a free plan. Please upgrade to\n a paid plan to manage your subscription.\n

      \n ) : (\n

      \n Upgrade or downgrade your subscription plan. See\n your billing history.\n

      \n )}\n
      \n
      \n \n {loadingPortal ? (\n \n \n Loading\n \n ) : (\n 'Manage'\n )}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n );\n};\n\nexport default UserProfileSubscription;\n","import React, { useState, useEffect } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Card, CardBody, Spinner, Tooltip } from 'reactstrap';\nimport {\n Block,\n DataTableBody,\n DataTableHead,\n DataTableRow,\n DataTableItem,\n PaginationComponent,\n DataTable,\n UserAvatar,\n} from '../../../components/Component';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport { APIGetFavoriteJobs } from '../../../services/api/api.list';\nimport { TJobWithCompany } from '../../../types/job.types';\nimport {\n findUpper,\n getDateStructured,\n truncateText,\n} from '../../../utils/Utils';\nimport { TCompany } from '../../../types/company.types';\nimport CompanyDetailsModal from '../../components/companies/CompanyModal';\nimport JobModal from '../../components/job/JobModal/JobModal';\nimport Lottie from 'lottie-react';\nimport notFoundAnimationData from '../../../assets/animations/no_data_found.anim.json';\n\nconst FavoriteJobs = () => {\n const MAX_COLUMN_LENGTH = 30;\n const navigate = useNavigate();\n\n const [jobs, setJobs] = useState([]);\n const [filteredJobs, setFilteredJobs] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [noJobsFound, setNoJobsFound] = useState(false);\n const [showSelectedItems, setShowSelectedItems] = useState(false);\n const [showJobDetails, setShowJobDetails] = useState(false);\n const [selectedJob, setSelectedJob] = useState(\n {} as TJobWithCompany,\n );\n\n const [selectedJobIds, setSelectedJobIds] = useState([]);\n const [tooltipOpen, setTooltipOpen] = useState<{ [key: string]: boolean }>(\n {},\n );\n\n const [currentPage, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useState(10);\n const [totalItems, setTotalItems] = useState(0);\n\n const [selectedCompany, setSelectedCompany] = useState(\n {} as TCompany,\n );\n const [showCompanyDetails, setShowCompanyDetails] = useState(false);\n\n const [jobTitle, setJobTitle] = useState('');\n const [companyName, setCompanyName] = useState('');\n const [jobLocation, setJobLocation] = useState('');\n\n const { createNotification, handleAPIError } = useNotification();\n const { user } = useAuth();\n\n const fetchFavoriteJobs = async (userId: string, page: number) => {\n setIsLoading(true);\n try {\n const response = await APIGetFavoriteJobs(userId, page, itemsPerPage);\n if (response.jobs.length === 0) {\n setNoJobsFound(true);\n setJobs([]);\n setFilteredJobs([]);\n } else {\n setNoJobsFound(false);\n setJobs(response.jobs.map(item => ({ ...item, checked: false })));\n setFilteredJobs(\n response.jobs.map(item => ({ ...item, checked: false })),\n );\n setTotalItems(response.total);\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n createNotification('danger', 'Failed to fetch favorite jobs.');\n if (error.response?.status === 401) {\n navigate('/logout');\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n if (!user?.publicId) {\n createNotification(\n 'danger',\n 'You need to be logged in to access this page',\n );\n navigate('/logout');\n return;\n }\n fetchFavoriteJobs(user.publicId, currentPage);\n }, [user?.publicId, currentPage]);\n\n useEffect(() => {\n if (!jobs) return;\n setFilteredJobs([...jobs]);\n }, [jobs]);\n\n useEffect(() => {\n const filtered = jobs.filter(job => {\n return (\n job.title.toLowerCase().includes(jobTitle.toLowerCase()) &&\n job.company.name.toLowerCase().includes(companyName.toLowerCase()) &&\n job.location.toLowerCase().includes(jobLocation.toLowerCase())\n );\n });\n setFilteredJobs(filtered);\n }, [jobTitle, companyName, jobLocation]);\n\n const handlePageChange = (page: number) => {\n if (page !== currentPage) {\n setCurrentPage(page);\n }\n };\n\n const toggleTooltip = (id: string, field: string) => {\n const tooltipId = `${id}-${field}`;\n setTooltipOpen(prev => ({\n ...prev,\n [tooltipId]: !prev[tooltipId],\n }));\n };\n\n const toggleSelectAll = (isChecked: boolean) => {\n setFilteredJobs(prevFiltered =>\n prevFiltered.map(job => ({\n ...job,\n checked: isChecked,\n })),\n );\n\n if (isChecked) {\n setSelectedJobIds(filteredJobs.map(job => job.publicId));\n } else {\n setSelectedJobIds([]);\n }\n };\n\n useEffect(() => {\n setShowSelectedItems(selectedJobIds.length > 0);\n }, [selectedJobIds]);\n\n const handleCheckboxChange = (jobId: string, isChecked: boolean) => {\n setFilteredJobs(prevFiltered =>\n prevFiltered.map(job =>\n job.publicId === jobId ? { ...job, checked: isChecked } : job,\n ),\n );\n\n setSelectedJobIds(prevSelected =>\n isChecked\n ? [...prevSelected, jobId]\n : prevSelected.filter(id => id !== jobId),\n );\n };\n\n return (\n \n \n \n \n \n
      \n \n Favorite Jobs\n \n
      \n {jobs.length > 0 && (\n
      \n

      \n This list contains all the jobs you have marked as favorite.\n

      \n
      \n )}\n\n {isLoading ? (\n \n \n \n
      \n
      \n {Array.from({ length: 4 }).map((_, idx) => (\n
      \n
      \n
      \n
      \n
      \n
      \n ))}\n
      \n
      \n {Array.from({ length: 4 }).map((_, idx) => (\n \n ))}\n \n \n ) : (\n
      \n {showSelectedItems && (\n
      \n
      \n \n {selectedJobIds.length} selected\n \n
      \n
      \n )}\n
      \n )}\n\n {!noJobsFound && (\n
      \n
      \n {/* Name Filter */}\n
      \n
      \n \n setJobTitle(e.target.value)}\n value={jobTitle}\n />\n
      \n
      \n {/* Position Filter */}\n
      \n
      \n \n setCompanyName(e.target.value)}\n value={companyName}\n />\n
      \n
      \n {/* Location Filter */}\n
      \n
      \n \n setJobLocation(e.target.value)}\n value={jobLocation}\n />\n
      \n
      \n
      \n
      \n )}\n\n {!isLoading && filteredJobs.length > 0 ? (\n \n \n \n Title\n \n \n Company\n \n \n Salary\n \n \n Posted Date\n \n \n\n {filteredJobs.map(job => {\n return (\n \n \n
      \n {\n setSelectedJob(job);\n setShowJobDetails(true);\n }}\n className=\"text-primary hover:cursor-pointer text-xs lg:text-xs hover:underline\"\n id={`job-title-${job.publicId}`}\n >\n {job.title.length > MAX_COLUMN_LENGTH\n ? truncateText(job.title, MAX_COLUMN_LENGTH)\n : job.title}\n \n {job.title.length > MAX_COLUMN_LENGTH && (\n \n toggleTooltip(job.publicId, 'job-title')\n } // Função para alternar Tooltip\n >\n {job.title}{' '}\n {/* Exibe o título completo no Tooltip */}\n \n )}\n {job.location}\n
      \n
      \n\n \n
      \n \n
      \n {\n setSelectedCompany(job.company);\n setShowCompanyDetails(true);\n }}\n >\n \n {job.company.name.length > 25\n ? `${truncateText(job.company.name, 25)}`\n : job.company.name}\n \n {job.company.name.length > 25 && (\n \n toggleTooltip(job.publicId, 'company')\n }\n >\n {job.company.name}\n \n )}\n \n {job.company?.industry ? (\n
      \n \n {job.company.industry.length >\n MAX_COLUMN_LENGTH\n ? `${truncateText(job.company.industry, MAX_COLUMN_LENGTH)}`\n : job.company.industry}\n \n {job.company.industry.length >\n MAX_COLUMN_LENGTH && (\n \n toggleTooltip(job.publicId, 'industry')\n }\n >\n {job.company.industry}\n \n )}\n
      \n ) : null}\n
      \n
      \n
      \n\n \n \n {job.salary || '-'}\n \n \n\n \n \n {getDateStructured(new Date(job.timePosted))}\n \n \n \n );\n })}\n
      \n ) : (\n
      \n \n {!noJobsFound && (\n

      No jobs found

      \n )}\n
      \n )}\n\n {isLoading && (\n
      \n \n
      \n )}\n\n {!isLoading && noJobsFound && (\n
      \n

      \n You don't have any favorite jobs yet.\n

      \n
      \n )}\n\n
      \n
      \n {jobs.length > 0 && !isLoading && (\n setItemsPerPage(value)}\n />\n )}\n
      \n
      \n \n\n {showJobDetails && (\n setShowJobDetails(false)}\n />\n )}\n\n {showCompanyDetails && (\n setShowCompanyDetails(!showCompanyDetails)}\n />\n )}\n \n \n \n );\n};\n\nexport default FavoriteJobs;\n","var _excluded = [\"className\", \"cssModule\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction CardHeader(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'card-header'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nCardHeader.propTypes = propTypes;\nexport default CardHeader;","import React, { useEffect, useState } from 'react';\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n UncontrolledDropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n Card,\n CardBody,\n CardHeader,\n} from 'reactstrap';\nimport { TListWithLeads } from '../../../types/list.types';\nimport Button from '../../../components/button/Button';\nimport { Icon } from '../../../components/Component';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faArchive,\n faDeleteLeft,\n faEdit,\n faFileExport,\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n APICreateList,\n APIGetLists,\n APIUpdateList,\n} from '../../../services/api/api.list';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { useNavigate } from 'react-router';\nimport ListModal from '../../components/modal/ListModal';\nimport Lottie from 'lottie-react';\nimport Badge from '../../../components/badge/Badge';\n\nimport notFoundAnimationData from '../../../assets/animations/no_data_found.anim.json';\n\nconst Lists: React.FC = () => {\n const [filter, setFilter] = useState<'active' | 'deleted'>('active');\n const [selectedList, setSelectedList] = useState(null);\n const [selectedLeads, setSelectedLeads] = useState([]);\n const [lists, setLists] = useState([]);\n\n const [isLoadingDetails, setIsLoadingDetails] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n\n const [showEditList, setShowEditList] = useState(false);\n const [showCreateList, setShowCreateList] = useState(false);\n\n const [showSelectedLeads, setShowSelectedLeads] = useState(false);\n\n const { user } = useAuth();\n const navigate = useNavigate();\n const { createNotification, handleAPIError } = useNotification();\n\n useEffect(() => {\n getLists();\n }, []);\n\n const getLists = async () => {\n setIsLoading(true);\n if (!user) {\n navigate('/logout');\n createNotification(\n 'danger',\n 'You need to be logged in to access this page',\n );\n return;\n }\n\n try {\n const fetchedLists = await APIGetLists(user.publicId);\n console.log('fetchedLists', fetchedLists);\n setLists(fetchedLists);\n setIsLoading(false);\n } catch (error: any) {\n handleAPIError(error);\n setIsLoading(false);\n }\n };\n\n const getSelectedList = async (listId: string) => {\n navigate(`/lists/${listId}`);\n };\n\n const filteredLists = React.useMemo(\n () =>\n lists.filter(list =>\n filter === 'active' ? !list.isDeleted : list.isDeleted,\n ),\n [filter, lists],\n );\n\n const handleCreateList = async (data: {\n name: string;\n description: string;\n isActive: boolean;\n }) => {\n try {\n const newList = await APICreateList({ ...data, favorites: [] });\n setLists((prevLists: TListWithLeads[]) => [\n newList as TListWithLeads,\n ...prevLists,\n ]);\n createNotification('success', 'List created successfully.');\n setShowCreateList(false);\n } catch (error: any) {\n handleAPIError(error, error.message);\n }\n };\n\n const handleDeleteList = async (listId: string) => {\n try {\n const list = lists.find(list => list.publicId === listId);\n if (!list) {\n createNotification('danger', 'List not found.');\n return;\n }\n await APIUpdateList(listId, { isDeleted: !list.isDeleted });\n await getLists();\n createNotification(\n 'success',\n `List ${list.isDeleted ? 'restored' : 'archived'} successfully.`,\n );\n } catch (error: any) {\n handleAPIError(error);\n }\n };\n\n const handleEditClick = (list: TListWithLeads) => {\n setShowEditList(true);\n setShowSelectedLeads(false);\n setSelectedList(list);\n };\n\n const handleLeadSelection = (leadId: string) => {\n setSelectedLeads(prev =>\n prev.includes(leadId)\n ? prev.filter(id => id !== leadId)\n : [...prev, leadId],\n );\n };\n\n const handleEditList = async (data: {\n name: string;\n description: string;\n }) => {\n if (!selectedList) return;\n\n try {\n await APIUpdateList(selectedList.publicId, data);\n createNotification('success', 'List updated successfully.');\n setLists(prev =>\n prev.map(list =>\n list.publicId === selectedList.publicId ? { ...list, ...data } : list,\n ),\n );\n setShowEditList(false);\n } catch (error: any) {\n handleAPIError(error);\n }\n };\n\n return (\n \n \n
      \n
      Your Lists
      \n {!isLoading ? (\n
        \n
      • \n \n {lists.length > 0 && (\n \n \n Filtered By\n \n \n )}\n \n
        \n setFilter('active')}\n >\n Active\n \n setFilter('deleted')}\n >\n Archived\n \n
        \n
        \n
        \n
        \n setShowCreateList(true)}\n >\n + Create List\n \n
        \n
      • \n
      \n ) : (\n
      \n )}\n
      \n
      \n
      \n\n \n {filter === 'deleted' && !isLoading && lists.length > 0 && (\n
      \n

      \n These lists are archived. You can restore them by clicking on the\n restore option in the dropdown menu.\n

      \n
      \n )}\n
        \n {!isLoading &&\n filteredLists.length > 0 &&\n filteredLists.map(list => (\n \n !list.isDeleted && getSelectedList(list.publicId)\n }\n >\n
        \n
        \n {list.name}\n
        \n

        {list.description}

        \n
        \n
        \n \n \n e.stopPropagation()}\n >\n \n \n \n
        \n {!list.isDeleted && (\n <>\n {\n e.stopPropagation();\n }}\n >\n \n Export CSV\n \n {\n e.stopPropagation();\n handleEditClick(list);\n }}\n >\n \n Edit\n \n \n )}\n {\n e.stopPropagation();\n handleDeleteList(list.publicId);\n }}\n >\n \n {list.isDeleted ? 'Restore' : 'Archive'}\n \n
        \n
        \n
        \n
        \n \n ))}\n\n {!isLoading && (lists.length === 0 || filteredLists.length === 0) && (\n
          \n
        • \n {/* centralize */}\n
          \n {lists.length > 0 && (\n

          \n You do not have any active listings\n

          \n )}\n {lists.length === 0 && (\n <>\n \n You don't have a list created, do you want to{' '}\n setShowCreateList(true)}\n >\n create a new one?\n \n \n \n )}\n \n
          \n
        • \n
        \n )}\n\n {isLoading && (\n <>\n {Array.from({ length: 5 }).map((_, idx) => (\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
      \n ))}\n \n )}\n \n \n\n {/* Modals to create and edit */}\n {showEditList && (\n setShowEditList(false)}\n onSubmit={handleEditList}\n initialData={{\n name: selectedList?.name || '',\n description: selectedList?.description || '',\n isActive: selectedList?.isDeleted || false,\n }}\n title=\"Edit List\"\n />\n )}\n\n {showCreateList && (\n setShowCreateList(false)}\n onSubmit={handleCreateList}\n initialData={{\n name: '',\n description: '',\n isActive: true,\n }}\n title=\"Create List\"\n />\n )}\n\n {isLoadingDetails && (\n \n \n
      \n
      \n \n
      \n {Array.from({ length: 6 }).map((_, idx) => (\n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n ))}\n
      \n \n \n
      \n
      \n
      \n
      \n
      \n \n )}\n
      \n );\n};\n\nexport default Lists;\n","import React, { useState } from 'react';\nimport { Block } from '../../../components/Component';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport Lists from './List';\nimport { Card } from 'reactstrap';\nimport CampaignDashboard from './Dashboard';\n\nconst ListsPage = () => {\n const [activeTab, setActiveTab] = useState('lists');\n\n const renderTabContent = () => {\n switch (activeTab) {\n // case \"dashboard\":\n // return ;\n case 'lists':\n return ;\n // case \"sequence\":\n // return ;\n // case \"schedules\":\n // return ;\n // case \"configuration\":\n // return ;\n default:\n return null;\n }\n };\n\n return (\n \n \n \n \n \n
      \n
      \n
        \n {/*
      • \n {\n e.preventDefault();\n setActiveTab(\"dashboard\");\n }}\n >\n Dashboard\n \n
      • */}\n \n {\n e.preventDefault();\n setActiveTab('lists');\n }}\n >\n Lists\n \n \n {/*
      • \n {\n e.preventDefault();\n setActiveTab(\"sequence\");\n }}\n >\n Sequence\n \n
      • \n
      • \n {\n e.preventDefault();\n setActiveTab(\"schedules\");\n }}\n >\n Schedules\n \n
      • \n
      • \n {\n e.preventDefault();\n setActiveTab(\"configuration\");\n }}\n >\n Configuration\n \n
      • */}\n
      \n
      \n
      \n\n {/* Tab Content */}\n
      \n
      {renderTabContent()}
      \n
      \n
      \n
      \n );\n};\n\nexport default ListsPage;\n","import React, { useEffect, useState } from 'react';\nimport {\n UncontrolledDropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition, faFilter } from '@fortawesome/free-solid-svg-icons';\nimport { Icon } from '../Component';\n\ninterface FilterOption {\n label: string;\n icon?: IconDefinition;\n onSelect: () => void;\n}\n\ninterface FilterDropdownProps {\n label: string;\n icon?: IconDefinition;\n options: FilterOption[];\n selectedValue: string;\n className?: string;\n}\n\nconst FilterDropdown: React.FC = ({\n label,\n icon = faFilter,\n options,\n selectedValue,\n className,\n}) => {\n const [selected, setSelected] = useState(label);\n\n useEffect(() => {\n setSelected(selectedValue);\n }, [selectedValue]);\n\n const handleSelect = (option: FilterOption) => {\n setSelected(option.label);\n option.onSelect();\n };\n\n return (\n \n \n \n {selected}\n {/* */}\n \n \n
        \n {options.map(option => (\n
      • \n {\n e.preventDefault();\n handleSelect(option);\n }}\n className=\"flex items-center\"\n >\n {option.icon && (\n \n )}\n {option.label}\n \n
      • \n ))}\n
      \n
      \n \n );\n};\n\nexport default FilterDropdown;\n","import React, { useEffect, useState } from 'react';\nimport {\n UncontrolledDropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { Icon } from '../Component';\n\ninterface SortOption {\n label: string;\n icon?: IconDefinition;\n onSelect: () => void;\n}\n\ninterface SortDropdownProps {\n label: string;\n options: SortOption[];\n selectedValue: string;\n className?: string;\n}\n\nconst SortDropdown: React.FC = ({\n label,\n options,\n selectedValue,\n className,\n}) => {\n const [selected, setSelected] = useState(label);\n\n useEffect(() => {\n setSelected(selectedValue);\n }, [selectedValue]);\n\n const handleSelect = (option: SortOption) => {\n setSelected(option.label);\n option.onSelect();\n };\n\n return (\n \n \n \n {selected}\n \n \n
        \n {options.map(option => (\n
      • \n {\n e.preventDefault();\n handleSelect(option);\n }}\n className=\"flex items-center\"\n >\n {option.icon && (\n \n )}\n {option.label}\n \n
      • \n ))}\n
      \n
      \n \n );\n};\n\nexport default SortDropdown;\n","import {\n faCheckCircle,\n faClock,\n faTimesCircle,\n faList,\n faSortNumericDown,\n faSortAlphaDown,\n faSortAmountDownAlt,\n faEnvelopeCircleCheck,\n} from '@fortawesome/free-solid-svg-icons';\n\nconst DEFAULT_FILTER = 'All Statuses';\nconst DEFAULT_SORT = 'Sort By';\n\n// filter options:\n// - completed\n// - in Progress\n// - closed\n// - fail\n// - draft\n\n// sort options:\n// - name\n// - date\n// - status\n\nexport const getFilterOptions = (setFilterStatus: (status: string) => void) => [\n {\n label: 'Completed',\n icon: faCheckCircle,\n onSelect: () => {\n console.log('Filtering Completed');\n setFilterStatus('completed');\n },\n },\n {\n label: 'In Progress',\n icon: faClock,\n onSelect: () => {\n console.log('Filtering In Progress');\n setFilterStatus('in Progress');\n },\n },\n {\n label: 'Closed',\n icon: faTimesCircle,\n onSelect: () => {\n console.log('Filtering Closed');\n setFilterStatus('closed');\n },\n },\n {\n label: 'Fail',\n icon: faTimesCircle,\n onSelect: () => {\n console.log('Filtering Fail');\n setFilterStatus('fail');\n },\n },\n {\n label: 'Draft',\n icon: faEnvelopeCircleCheck,\n onSelect: () => {\n console.log('Filtering Draft');\n setFilterStatus('draft');\n },\n },\n {\n label: DEFAULT_FILTER,\n icon: faList,\n onSelect: () => {\n console.log('Filtering All Statuses');\n setFilterStatus(DEFAULT_FILTER);\n },\n default: true,\n },\n];\n\nexport const getSortOptions = (setSortCriteria: (criteria: string) => void) => [\n {\n label: 'Created At',\n icon: faSortNumericDown,\n onSelect: () => {\n console.log('Sorting by Created At');\n setSortCriteria('CreatedAt');\n },\n },\n {\n label: 'Name',\n icon: faSortAlphaDown,\n onSelect: () => {\n console.log('Sorting by Name');\n setSortCriteria('Name');\n },\n },\n {\n label: 'Status',\n icon: faSortAmountDownAlt,\n onSelect: () => {\n console.log('Sorting by Status');\n setSortCriteria('Status');\n },\n },\n];\n\nexport { DEFAULT_FILTER, DEFAULT_SORT };\n","var _excluded = [\"className\", \"cssModule\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction CardTitle(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'card-title'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nCardTitle.propTypes = propTypes;\nexport default CardTitle;","var _excluded = [\"className\", \"cssModule\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction CardText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'p' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'card-text'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nCardText.propTypes = propTypes;\nexport default CardText;","import React, {\n createContext,\n useContext,\n useState,\n useEffect,\n ReactNode,\n} from 'react';\nimport {\n Campaign,\n CampaignSettings,\n Email,\n List,\n} from '../../types/campaign.types';\n\ninterface CampaignsContextType {\n lists: List[];\n selectedCampaign: Campaign | null;\n setSelectedCampaign: (campaign: Campaign | null) => void;\n selectedCampaignId: string | null;\n emails: Email[];\n settings: CampaignSettings | undefined;\n selectedCampaignStatus: string;\n setSelectedCampaignStatus: (status: string) => void;\n}\n\nconst CampaignsContext = createContext(\n undefined,\n);\n\ninterface CampaignsProviderProps {\n children: ReactNode;\n}\n\nexport const CampaignsProvider = ({ children }: CampaignsProviderProps) => {\n const [emails, setEmails] = useState([]);\n const [lists, setLists] = useState([]);\n const [settings, setSettings] = useState();\n const [selectedCampaign, setSelectedCampaign] = useState(\n null,\n );\n const [selectedCampaignId, setSelectedCampaignId] = useState(\n null,\n );\n const [selectedCampaignStatus, setSelectedCampaignStatus] =\n useState('Draft');\n\n const updateSelectedCampaignStatus = (status: string) => {\n setSelectedCampaignStatus(status);\n\n if (selectedCampaign) {\n setSelectedCampaign({\n ...selectedCampaign,\n status: status,\n });\n }\n };\n\n useEffect(() => {\n setSelectedCampaignId(selectedCampaign?.publicId ?? null);\n\n if (selectedCampaign?.lists) {\n const filteredLists = selectedCampaign.lists.filter(\n list => list !== null && list !== undefined,\n );\n setLists(filteredLists);\n } else {\n setLists([]);\n }\n\n if (selectedCampaign?.emails) {\n const filteredEmails = selectedCampaign.emails.filter(\n email => email !== null && email !== undefined,\n );\n setEmails(filteredEmails);\n } else {\n setEmails([]);\n }\n\n setSettings(selectedCampaign?.settings);\n setSelectedCampaignStatus(selectedCampaign?.status ?? 'Draft');\n }, [selectedCampaign]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useCampaigns = () => {\n const context = useContext(CampaignsContext);\n if (!context) {\n throw new Error('useCampaigns must be used within a CampaignsProvider');\n }\n return context;\n};\n","import React from 'react';\nimport {\n Card,\n CardBody,\n CardTitle,\n CardText,\n Progress,\n Dropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faEllipsisH,\n faEnvelope,\n faClock,\n faCog,\n faTrash,\n faEdit,\n faExclamationTriangle,\n} from '@fortawesome/free-solid-svg-icons';\nimport Badge from '../../../components/badge/Badge';\nimport { useNavigate } from 'react-router';\nimport { Campaign } from '../../../types/campaign.types';\nimport { getDateStructured } from '../../../utils/Utils';\nimport { useCampaigns } from '../../../context/Campaign/Campaign.context';\n\n// Component props interface\ninterface CampaignCardProps {\n campaign: Campaign;\n isOpen: boolean;\n onToggle: (id: string) => void;\n onDelete: (id: string) => void;\n onRename: (id: string) => void;\n}\n\nconst CampaignCard: React.FC = ({\n campaign,\n isOpen,\n onToggle,\n onDelete,\n onRename,\n}) => {\n const navigate = useNavigate();\n const {\n publicId,\n name,\n createdAt,\n status,\n emailsSent,\n emailsScheduled,\n emailsError,\n // shortName,\n } = campaign;\n\n const { setSelectedCampaign } = useCampaigns();\n\n const totalEmails =\n (emailsSent ?? 0) + (emailsScheduled ?? 0) + (emailsError ?? 0);\n const progress =\n totalEmails > 0 ? Math.round(((emailsSent ?? 0) / totalEmails) * 100) : 0;\n\n const statusColors = {\n Completed: 'green',\n 'In Progress': 'yellow',\n Closed: 'gray',\n Failed: 'red',\n Draft: 'blue',\n };\n\n const progressColor =\n progress === 100 ? 'success' : progress > 50 ? 'primary' : 'warning';\n\n const handleViewDetails = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!campaign.publicId) return;\n setSelectedCampaign(campaign);\n navigate(\n `/campaigns/${publicId}?tab=${status !== 'Draft' ? 'analytics' : 'leads'}`,\n );\n };\n\n const handleDeleteClick = (e: React.MouseEvent, campaignId: string) => {\n e.preventDefault();\n e.stopPropagation();\n onDelete(campaignId);\n };\n\n const handleRenameClick = (e: React.MouseEvent, campaignId: string) => {\n e.preventDefault();\n e.stopPropagation();\n onRename(campaignId);\n };\n\n return (\n \n \n
      \n
      \n
      \n \n {name}\n \n \n {`Created At: ${getDateStructured(createdAt)}`}\n \n
      \n
      \n\n {/* 🔹 Dropdown Button */}\n onToggle(publicId)}>\n e.stopPropagation()}\n >\n \n \n \n \n \n Configuration\n \n handleRenameClick(e, publicId)}>\n \n Rename\n \n handleDeleteClick(e, publicId)}\n >\n \n Delete\n \n \n \n
      \n\n {/* 🔹 Status */}\n
      \n \n
      \n\n {/* 🔹 Emails */}\n
      \n
      \n \n \n Sent:\n \n\n {emailsSent}\n
      \n
      \n \n \n Scheduled:\n \n {emailsScheduled}\n
      \n
      \n \n \n Errors:\n \n {emailsError}\n
      \n
      \n\n {/* 🔹 Progress Bar */}\n
      \n \n
      \n Progress\n {progress}%\n
      \n
      \n
      \n \n );\n};\n\nexport default CampaignCard;\n","var _excluded = [\"className\", \"cssModule\", \"tag\", \"flush\", \"horizontal\", \"numbered\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Remove borders to make the list appear flush */\n flush: PropTypes.bool,\n /** Make the list horizontal instead of vertical */\n horizontal: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /** Add number to the ListItems */\n numbered: PropTypes.bool,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nvar getHorizontalClass = function getHorizontalClass(horizontal) {\n if (horizontal === false) {\n return false;\n }\n if (horizontal === true || horizontal === 'xs') {\n return 'list-group-horizontal';\n }\n return \"list-group-horizontal-\".concat(horizontal);\n};\nfunction ListGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'ul' : _props$tag,\n flush = props.flush,\n _props$horizontal = props.horizontal,\n horizontal = _props$horizontal === void 0 ? false : _props$horizontal,\n _props$numbered = props.numbered,\n numbered = _props$numbered === void 0 ? false : _props$numbered,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'list-group',\n // list-group-horizontal cannot currently be mixed with list-group-flush\n // we only try to apply horizontal classes if flush is false\n flush ? 'list-group-flush' : getHorizontalClass(horizontal), {\n 'list-group-numbered': numbered\n }), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nListGroup.propTypes = propTypes;\nexport default ListGroup;","var _excluded = [\"className\", \"cssModule\", \"tag\", \"active\", \"disabled\", \"action\", \"color\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add action prop to give effects while hovering over element */\n action: PropTypes.bool,\n /** Add active prop to make the current selection active */\n active: PropTypes.bool,\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Add background colour to the list item */\n color: PropTypes.string,\n /** Make the list item appear disabled */\n disabled: PropTypes.bool,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nvar handleDisabledOnClick = function handleDisabledOnClick(e) {\n e.preventDefault();\n};\nfunction ListGroupItem(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'li' : _props$tag,\n active = props.active,\n disabled = props.disabled,\n action = props.action,\n color = props.color,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, active ? 'active' : false, disabled ? 'disabled' : false, action ? 'list-group-item-action' : false, color ? \"list-group-item-\".concat(color) : false, 'list-group-item'), cssModule);\n\n // Prevent click event when disabled.\n if (disabled) {\n attributes.onClick = handleDisabledOnClick;\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nListGroupItem.propTypes = propTypes;\nexport default ListGroupItem;","import React, { useState } from 'react';\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n Button,\n ListGroup,\n ListGroupItem,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faGoogle,\n faMicrosoft,\n faLinkedin,\n} from '@fortawesome/free-brands-svg-icons';\nimport {\n faArrowLeft,\n faArrowRight,\n faEnvelope,\n faLock,\n} from '@fortawesome/free-solid-svg-icons';\nimport Lottie from 'lottie-react';\nimport animationData from '../../../assets/animations/connection_loading.anim.json';\nimport { useAuth } from '../../../context/Auth/auth.contex';\n\nconst connectionMethods = [\n {\n id: 'google',\n title: 'Google',\n icon: faGoogle,\n description: 'G-Suite / Gmail',\n enabled: true,\n },\n {\n id: 'microsoft',\n title: 'Microsoft (Coming Soon)',\n icon: faMicrosoft,\n description: 'Outlook / Office 365',\n enabled: false,\n },\n {\n id: 'any',\n title: 'Any Email Provider (Coming Soon)',\n icon: faEnvelope,\n description: 'IMAP / SMTP',\n enabled: false,\n },\n {\n id: 'linkedin',\n title: 'Connect with LinkedIn (Coming Soon)',\n icon: faLinkedin,\n description: 'Currently being updated',\n enabled: false,\n },\n];\n\nconst EmailConnectionModal = ({ isOpen, toggle }) => {\n const [step, setStep] = useState(1);\n const { user } = useAuth();\n\n const connectGoogleAccount = () => {\n if (!user) return;\n const scopes = process.env.REACT_APP_GOOGLE_AUTH_SCOPES?.split(',') || [];\n\n const authUrl = `${process.env.REACT_APP_GOOGLE_AUTH_URL}?scope=${encodeURIComponent(scopes.join(','))}&publicId=${user.publicId}`;\n\n setStep(2);\n\n window.open(authUrl, '_blank');\n };\n\n return (\n toggle(null)}\n size=\"md\"\n backdrop=\"static\"\n centered\n >\n toggle(null)}>\n {step === 1 ? 'Connect a New Account' : 'Connecting to Google...'}\n \n \n {step === 1 ? (\n \n {connectionMethods.map(\n ({ id, title, icon, description, enabled }) => (\n enabled && connectGoogleAccount()}\n style={{ cursor: enabled ? 'pointer' : 'not-allowed' }}\n >\n
      \n \n
      \n
      {title}
      \n {description}\n
      \n
      \n \n \n ),\n )}\n
      \n ) : (\n
      \n \n

      \n A new window has opened for authentication. Please complete the\n process.\n

      \n \n
      \n )}\n
      \n \n );\n};\n\nexport default EmailConnectionModal;\n","import {\n Campaign,\n CampaignSettings,\n CampaignsResponse,\n} from '../../types/campaign.types';\nimport { ScheduledEmailsPaginated } from '../../types/scheduled-emails.types';\nimport { api, checkError } from './server';\n\n/**\n * Create a new campaign\n * Example body:\n * {\n * \"name\": \"My campaign\"\n * }\n */\nexport const APICreateCampaign = async (data: {\n name: string;\n}): Promise => {\n try {\n const response = await api.post('/campaigns', data);\n return response.data as Campaign;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Get all campaigns for a user\n * Example query params:\n * ?page=1&limit=10&search=keyword&status=ACTIVE&sort=name&order=asc\n */\nexport const APIGetAllCampaignsByUser = async (\n userId: string,\n page: number,\n limit: number,\n search?: string,\n status?: string,\n sort?: string,\n order?: string,\n): Promise => {\n try {\n const response = await api.get(\n `/campaigns/user/${userId}`,\n {\n params: { page, limit, search, status, sort, order },\n },\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Delete a campaign by ID\n * Example usage:\n * await APIDeleteCampaign('campaign-id-123');\n */\nexport const APIDeleteCampaign = async (\n campaignId: string,\n): Promise => {\n try {\n const response = await api.delete(\n `/campaigns/${campaignId}`,\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Get a campaign by id\n * Example usage:\n * const campaign = await APIGetCampaignById('campaign-123');\n */\nexport const APIGetCampaignById = async (\n campaignId: string,\n): Promise => {\n try {\n const response = await api.get(`/campaigns/${campaignId}`);\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Update a list of campaigns\n * await APIUpdateCampaignLists('campaign-123', ['list-1', 'list-2', 'list-3']);\n **/\nexport const APIUpdateCampaignLists = async (\n campaignId: string,\n listIds: string[],\n): Promise => {\n console.log('listIds', listIds);\n try {\n const response = await api.patch(\n `/campaigns/${campaignId}/lists`,\n listIds,\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Update a campaign\n * Example usage:\n * await APIUpdateCampaign('campaign-123', { name: 'New Campaign Name' });\n * */\nexport const APIUpdateCampaign = async (\n campaignId: string,\n data: Partial,\n): Promise => {\n try {\n const response = await api.patch(\n `/campaigns/${campaignId}`,\n data,\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n//--------\n// emails\n//--------\n\n/**\n * Get all emails for a campaign\n * Example usage:\n * const emails = await APIGetCampaignEmails('campaign-123');\n */\nexport const APIGetCampaignEmails = async (\n campaignId: string,\n): Promise => {\n try {\n const response = await api.get(`/campaigns/${campaignId}`);\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Create a new email for a campaign\n * Example usage:\n * await APICreateCampaignEmail('campaign-123', {\n * subject: 'My Email Subject',\n * body: 'My Email Body',\n * });\n */\nexport const APICreateCampaignEmail = async (\n campaignId: string,\n data: {\n subject: string;\n body: string;\n },\n): Promise => {\n try {\n const response = await api.post(\n `/campaigns/${campaignId}/emails`,\n data,\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Update a campaign email\n * Example usage:\n * await APIUpdateCampaignEmail('campaign-123', 'email-123', {\n * subject: 'Updated Email Subject',\n * body: 'Updated Email Body',\n * });\n * */\nexport const APIUpdateCampaignEmail = async (\n campaignId: string,\n emailId: string,\n data: {\n subject: string;\n body: string;\n },\n): Promise => {\n try {\n const response = await api.patch(\n `/campaigns/${campaignId}/emails/${emailId}`,\n data,\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Active ou desactive um email\n * Example usage:\n * await APIUpdateCampaignEmail('campaign-123', 'email-123', { isActive: true });\n * */\nexport const APIToggleEmailStatus = async (\n campaignId: string,\n emailId: string,\n isActive: boolean,\n): Promise => {\n try {\n const response = await api.patch(\n `/campaigns/${campaignId}/emails/${emailId}`,\n { isActive: isActive },\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Delete a campaign email\n * Example usage:\n * await APIDeleteCampaignEmail('campaign-123', 'email-123');\n * */\nexport const APIDeleteCampaignEmail = async (\n campaignId: string,\n emailId: string,\n): Promise => {\n try {\n const response = await api.delete(\n `/campaigns/${campaignId}/emails/${emailId}`,\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n//--------\n// settings\n//--------\n\n/**\n * Update settings for a campaign\n * Example usage:\n * await APIUpdateCampaignSettings('campaign-123', {\n * maxEmails: 500,\n * minDelay: 30,\n * selectedEmail: 'user@example.com',\n * selectedEmailProvider: 'gmail',\n * sentFrom: 'noreply@example.com'\n * });\n */\nexport const APIUpdateCampaignSettings = async (\n campaignId: string,\n data: Partial,\n): Promise => {\n try {\n const response = await api.patch(\n `/campaigns/${campaignId}/settings`,\n data,\n );\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Get all email accounts for the authenticated user\n * Example usage:\n * const emailAccounts = await APIGetEmailAccounts();\n */\nexport const APIGetEmailAccounts = async (): Promise => {\n try {\n const response = await api.get('/campaigns/email-accounts');\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n\n/**\n * Launches a campaign by ID\n * @param campaignId - The ID of the campaign to launch\n * @returns The updated campaign data\n */\nexport const APILaunchCampaign = async (campaignId: string) => {\n try {\n await api.post(`/campaigns/${campaignId}/send`);\n return;\n } catch (error: any) {\n return checkError(error);\n }\n};\n\n/**\n * Fetches all scheduled emails for a specific campaign\n *\n *\n */\ninterface GetScheduledEmailsParams {\n campaignId: string;\n page?: number;\n limit?: number;\n search?: string;\n sort?: string;\n order?: 'asc' | 'desc';\n}\n\nexport const APIGetScheduledEmails = async ({\n campaignId,\n page = 1,\n limit = 10,\n search,\n sort,\n order,\n}: GetScheduledEmailsParams): Promise => {\n try {\n const queryParams = new URLSearchParams();\n queryParams.append('page', page.toString());\n queryParams.append('limit', limit.toString());\n\n if (search) queryParams.append('search', search);\n if (sort) queryParams.append('sort', sort);\n if (order) queryParams.append('order', order);\n\n const response = await api.get(\n `/scheduled-emails/campaign/${campaignId}?${queryParams.toString()}`,\n );\n\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n","var _excluded = [\"className\", \"cssModule\", \"row\", \"disabled\", \"check\", \"inline\", \"floating\", \"noMargin\", \"tag\", \"switch\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n row: PropTypes.bool,\n check: PropTypes.bool,\n \"switch\": PropTypes.bool,\n inline: PropTypes.bool,\n floating: PropTypes.bool,\n noMargin: PropTypes.bool,\n disabled: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nfunction FormGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n row = props.row,\n disabled = props.disabled,\n check = props.check,\n inline = props.inline,\n floating = props.floating,\n noMargin = props.noMargin,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n switchProp = props[\"switch\"],\n attributes = _objectWithoutProperties(props, _excluded);\n var formCheck = check || switchProp;\n var classes = mapToCssModules(classNames(className, row ? 'row' : false, formCheck ? 'form-check' : false, switchProp ? 'form-switch' : false, formCheck || noMargin ? false : 'mb-3', formCheck && inline ? 'form-check-inline' : false, formCheck && disabled ? 'disabled' : false, floating && 'form-floating'), cssModule);\n if (Tag === 'fieldset') {\n attributes.disabled = disabled;\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nFormGroup.propTypes = propTypes;\nexport default FormGroup;","var _excluded = [\"className\", \"cssModule\", \"hidden\", \"widths\", \"tag\", \"check\", \"size\", \"for\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, isObject } from './utils';\nvar colWidths = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nvar stringOrNumberProp = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\nvar columnProps = PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number, PropTypes.shape({\n size: stringOrNumberProp,\n order: stringOrNumberProp,\n offset: stringOrNumberProp\n})]);\nvar propTypes = {\n children: PropTypes.node,\n hidden: PropTypes.bool,\n check: PropTypes.bool,\n size: PropTypes.string,\n \"for\": PropTypes.string,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n xs: columnProps,\n sm: columnProps,\n md: columnProps,\n lg: columnProps,\n xl: columnProps,\n xxl: columnProps,\n widths: PropTypes.array\n};\nvar getColumnSizeClass = function getColumnSizeClass(isXs, colWidth, colSize) {\n if (colSize === true || colSize === '') {\n return isXs ? 'col' : \"col-\".concat(colWidth);\n }\n if (colSize === 'auto') {\n return isXs ? 'col-auto' : \"col-\".concat(colWidth, \"-auto\");\n }\n return isXs ? \"col-\".concat(colSize) : \"col-\".concat(colWidth, \"-\").concat(colSize);\n};\nfunction Label(props) {\n var className = props.className,\n cssModule = props.cssModule,\n hidden = props.hidden,\n _props$widths = props.widths,\n widths = _props$widths === void 0 ? colWidths : _props$widths,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'label' : _props$tag,\n check = props.check,\n size = props.size,\n htmlFor = props[\"for\"],\n attributes = _objectWithoutProperties(props, _excluded);\n var colClasses = [];\n widths.forEach(function (colWidth, i) {\n var columnProp = props[colWidth];\n delete attributes[colWidth];\n if (!columnProp && columnProp !== '') {\n return;\n }\n var isXs = !i;\n var colClass;\n if (isObject(columnProp)) {\n var _classNames;\n var colSizeInterfix = isXs ? '-' : \"-\".concat(colWidth, \"-\");\n colClass = getColumnSizeClass(isXs, colWidth, columnProp.size);\n colClasses.push(mapToCssModules(classNames((_classNames = {}, _defineProperty(_classNames, colClass, columnProp.size || columnProp.size === ''), _defineProperty(_classNames, \"order\".concat(colSizeInterfix).concat(columnProp.order), columnProp.order || columnProp.order === 0), _defineProperty(_classNames, \"offset\".concat(colSizeInterfix).concat(columnProp.offset), columnProp.offset || columnProp.offset === 0), _classNames))), cssModule);\n } else {\n colClass = getColumnSizeClass(isXs, colWidth, columnProp);\n colClasses.push(colClass);\n }\n });\n var colFormLabel = size || colClasses.length;\n var formLabel = !(check || colFormLabel);\n var classes = mapToCssModules(classNames(className, hidden ? 'visually-hidden' : false, check ? 'form-check-label' : false, size ? \"col-form-label-\".concat(size) : false, colClasses, colFormLabel ? 'col-form-label' : false, formLabel ? 'form-label' : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n htmlFor: htmlFor\n }, attributes, {\n className: classes\n }));\n}\nLabel.propTypes = propTypes;\nexport default Label;","import React, { useState, useEffect } from 'react';\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Button,\n Input,\n FormGroup,\n Label,\n} from 'reactstrap';\nimport { z } from 'zod';\n\nconst campaignSchema = z\n .string()\n .min(3, 'Campaign name must have at least 3 characters.');\n\nconst CampaignModal = ({\n isOpen,\n toggle,\n onCreate,\n onUpdate,\n initialName = '',\n isEditing = false,\n isLoading = false,\n}) => {\n const [campaignName, setCampaignName] = useState(initialName);\n const [error, setError] = useState('');\n\n useEffect(() => {\n setCampaignName(initialName);\n }, [initialName, isOpen]);\n\n const handleSubmit = () => {\n const validation = campaignSchema.safeParse(campaignName.trim());\n\n if (!validation.success) {\n setError(validation.error.errors[0].message);\n return;\n }\n\n if (isEditing && onUpdate) {\n onUpdate(campaignName.trim());\n } else if (onCreate) {\n onCreate(campaignName.trim());\n }\n\n if (!isLoading) {\n toggle(null);\n setCampaignName('');\n }\n };\n\n // Define textos com base no modo (criar ou editar)\n const modalTitle = isEditing ? 'Rename Campaign' : 'Create New Campaign';\n const buttonText = isEditing ? 'Update' : 'Create';\n\n return (\n toggle(null)} size=\"sm\" centered>\n toggle(null)}>{modalTitle}\n \n \n \n {\n setCampaignName(e.target.value);\n setError('');\n }}\n autoFocus\n />\n {error && {error}}\n \n \n \n \n \n \n \n );\n};\n\nexport default CampaignModal;\n","import React from 'react';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';\nimport { Button } from '../../../components/Component';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faExclamationTriangle,\n faTrash,\n} from '@fortawesome/free-solid-svg-icons';\n\ninterface DeleteConfirmationModalProps {\n isOpen: boolean;\n toggle: () => void;\n onConfirm: () => void;\n isLoading: boolean;\n\n // Customizable content\n title: string;\n itemName?: string;\n message?: string;\n warningMessage?: string;\n\n // Optional customization\n cancelButtonText?: string;\n confirmButtonText?: string;\n}\n\nconst DeleteConfirmationModal: React.FC = ({\n isOpen,\n toggle,\n onConfirm,\n isLoading,\n title,\n itemName,\n message,\n warningMessage,\n cancelButtonText = 'Cancel',\n confirmButtonText = 'Delete',\n}) => {\n // Default messages\n const defaultMessage = itemName\n ? `Are you sure you want to delete ${itemName}?`\n : 'Are you sure you want to delete this item?';\n\n const defaultWarningMessage = 'This action cannot be undone.';\n\n // Prepare button with loading state\n const renderButtonContent = () => {\n if (isLoading) {\n return (\n <>\n \n Deleting...\n \n );\n }\n\n return (\n <>\n \n {confirmButtonText}\n \n );\n };\n\n return (\n \n \n
      \n \n {title}\n
      \n
      \n \n

      {message || defaultMessage}

      \n

      \n {warningMessage || defaultWarningMessage}\n

      \n
      \n \n \n {cancelButtonText}\n \n \n {renderButtonContent()}\n \n \n
      \n );\n};\n\nexport default DeleteConfirmationModal;\n","import { useState, useEffect } from 'react';\n\nconst useMediaQuery = (query: string): boolean => {\n const [matches, setMatches] = useState(false);\n\n useEffect(() => {\n const mediaQuery = window.matchMedia(query);\n\n setMatches(mediaQuery.matches);\n\n const handleChange = (event: MediaQueryListEvent) => {\n setMatches(event.matches);\n };\n\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener('change', handleChange);\n } else {\n mediaQuery.addListener(handleChange);\n }\n\n return () => {\n if (mediaQuery.removeEventListener) {\n mediaQuery.removeEventListener('change', handleChange);\n } else {\n mediaQuery.removeListener(handleChange);\n }\n };\n }, [query]);\n\n return matches;\n};\n\nexport const breakpoints = {\n xs: '(max-width: 575.98px)', // Extra small\n sm: '(min-width: 576px) and (max-width: 767.98px)', // Small\n md: '(min-width: 768px) and (max-width: 991.98px)', // Medium\n lg: '(min-width: 992px) and (max-width: 1199.98px)', // Large\n xl: '(min-width: 1200px)', // Extra large\n\n mobile: '(max-width: 767.98px)', // xs e sm\n tablet: '(min-width: 768px) and (max-width: 991.98px)', // md\n laptop: '(min-width: 992px) and (max-width: 1199.98px)', // lg\n desktop: '(min-width: 992px)', // lg e xl\n};\n\nexport default useMediaQuery;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport {\n faEnvelope,\n faPlusCircle,\n faTimes,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Row, Col } from 'reactstrap';\nimport {\n Block,\n Button,\n Icon,\n PaginationComponent,\n} from '../../../components/Component';\nimport FilterDropdown from '../../../components/filterDropdown/filterDropdown';\nimport SortDropdown from '../../../components/sortDropdown/SortDropdown';\nimport Head from '../../../layout/head/Head';\nimport {\n getFilterOptions,\n getSortOptions,\n DEFAULT_FILTER,\n DEFAULT_SORT,\n} from './filterOptions';\nimport LoadingComponent from '../../../components/loading/Loading';\nimport CampaignCard from '../../components/campaigns/CampaignCard';\nimport EmailConnectionModal from '../../components/modal/EmailConnectionModal';\nimport { useNavigate } from 'react-router';\nimport { useAuth } from '../../../context/Auth/auth.contex';\nimport {\n APICreateCampaign,\n APIDeleteCampaign,\n APIGetAllCampaignsByUser,\n APIGetEmailAccounts,\n APIUpdateCampaign,\n} from '../../../services/api/api.campaigns';\nimport { CampaignsResponse } from '../../../types/campaign.types';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { useCampaigns } from '../../../context/Campaign/Campaign.context';\nimport CampaignModal from '../../components/modal/CreateCampaignModal';\nimport DeleteConfirmationModal from '../../components/modal/DeleteConfirmationModal';\nimport useMediaQuery, { breakpoints } from '../../../hooks/useMediaQuery';\n\nconst CampaignsPage = () => {\n const { user } = useAuth();\n const [searchValue, setSearchValue] = useState('');\n const [filterStatus, setFilterStatus] = useState(DEFAULT_FILTER);\n const [sortCriteria, setSortCriteria] = useState(DEFAULT_SORT);\n const [campaignsData, setCampaignsData] = useState(\n null,\n );\n const [loading, setLoading] = useState(false);\n const [openDropdownCard, setOpenDropdownCard] = useState(null);\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n const [campaignToDelete, setCampaignToDelete] = useState<{\n id: string;\n name: string;\n } | null>(null);\n\n const [campaignToRename, setCampaignToRename] = useState<{\n id: string;\n name: string;\n } | null>(null);\n\n const [activeModal, setActiveModal] = useState<'email' | 'campaign' | null>(\n null,\n );\n\n const [hasConnectedEmails, setHasConnectedEmails] = useState(false);\n\n const [currentPage, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useState(12);\n\n const { setSelectedCampaign } = useCampaigns();\n const { createNotification, handleAPIError } = useNotification();\n const navigate = useNavigate();\n\n const checkEmailAccounts = useCallback(async () => {\n if (!user?.publicId) return;\n\n try {\n setLoading(true);\n const emailAccounts = await APIGetEmailAccounts();\n\n const hasEmails = !!(emailAccounts && emailAccounts.length > 0);\n setHasConnectedEmails(hasEmails);\n\n if (!hasEmails) {\n setActiveModal('email');\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setLoading(false);\n }\n }, [user?.publicId]);\n\n useEffect(() => {\n checkEmailAccounts();\n }, [checkEmailAccounts]);\n\n const fetchCampaigns = useCallback(async () => {\n if (!user?.publicId) return;\n\n try {\n setLoading(true);\n const response = await APIGetAllCampaignsByUser(\n user.publicId,\n currentPage,\n itemsPerPage,\n searchValue,\n filterStatus !== DEFAULT_FILTER ? filterStatus : undefined,\n sortCriteria !== DEFAULT_SORT ? sortCriteria.toLowerCase() : undefined,\n 'asc',\n );\n\n setCampaignsData(response);\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setLoading(false);\n }\n }, [\n user?.publicId,\n currentPage,\n itemsPerPage,\n searchValue,\n filterStatus,\n sortCriteria,\n ]);\n\n useEffect(() => {\n fetchCampaigns();\n }, [fetchCampaigns]);\n\n const toggleModal = (type: 'email' | 'campaign' | null) => {\n if (type === null && activeModal === 'email' && !hasConnectedEmails) {\n return;\n }\n\n if (type === null) {\n setCampaignToRename(null);\n }\n\n setActiveModal(type);\n };\n\n const handleEmailModalClose = async () => {\n await checkEmailAccounts();\n\n if (hasConnectedEmails) {\n setActiveModal(null);\n }\n };\n\n const handleToggleMenuCard = (id: string) => {\n setOpenDropdownCard(prevId => (prevId === id ? null : id));\n };\n\n const createCampaign = async (name: string) => {\n if (!user?.publicId) return;\n\n try {\n setLoading(true);\n const newCampaignId = await APICreateCampaign({ name });\n if (newCampaignId) {\n createNotification('success', 'Campaign created successfully');\n setSelectedCampaign(newCampaignId);\n }\n navigate(`/campaigns/${newCampaignId.publicId}?tab=leads`);\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setLoading(false);\n toggleModal(null);\n }\n };\n\n const handleDeleteCampaign = async (campaignId: string) => {\n try {\n setLoading(true);\n await APIDeleteCampaign(campaignId);\n createNotification('success', 'Campaign deleted successfully');\n setDeleteModalOpen(false);\n setCampaignToDelete(null);\n fetchCampaigns();\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setLoading(false);\n }\n };\n\n const openDeleteModal = (campaign: { publicId: string; name: string }) => {\n setCampaignToDelete({\n id: campaign.publicId,\n name: campaign.name,\n });\n setDeleteModalOpen(true);\n };\n\n const confirmDelete = () => {\n if (campaignToDelete) {\n handleDeleteCampaign(campaignToDelete.id);\n }\n };\n\n const renderModalContent = () => {\n switch (activeModal) {\n case 'email':\n return (\n toggleModal(null)\n : handleEmailModalClose\n }\n />\n );\n case 'campaign':\n return (\n {\n setActiveModal(null);\n setCampaignToRename(null);\n }}\n onCreate={createCampaign}\n onUpdate={handleRenameCampaign}\n initialName={campaignToRename?.name || ''}\n isEditing={!!campaignToRename}\n isLoading={loading}\n />\n );\n default:\n return null;\n }\n };\n\n const openRenameModal = (campaign: { publicId: string; name: string }) => {\n setCampaignToRename({\n id: campaign.publicId,\n name: campaign.name,\n });\n setActiveModal('campaign');\n };\n\n const handleRenameCampaign = async (newName: string) => {\n if (!campaignToRename) return;\n\n try {\n setLoading(true);\n await APIUpdateCampaign(campaignToRename.id, { name: newName });\n createNotification('success', 'Campaign renamed successfully');\n setCampaignToRename(null);\n setActiveModal(null);\n fetchCampaigns();\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setLoading(false);\n }\n };\n\n const handleClearFilters = () => {\n setSearchValue('');\n setFilterStatus(DEFAULT_FILTER);\n setSortCriteria(DEFAULT_SORT);\n };\n\n const isClearButtonVisible =\n searchValue !== '' ||\n filterStatus !== DEFAULT_FILTER ||\n sortCriteria !== DEFAULT_SORT;\n\n const totalItems = campaignsData?.total || 0;\n\n const isMobile = useMediaQuery(breakpoints.mobile);\n\n return (\n <>\n \n
      \n \n \n \n
      \n \n Campaigns\n \n \n {totalItems > 0 ? (\n <>\n {isMobile ? (\n `${totalItems} campaigns total`\n ) : (\n <>\n Showing {(currentPage - 1) * itemsPerPage + 1} -{' '}\n {Math.min(currentPage * itemsPerPage, totalItems)} of{' '}\n {totalItems} campaigns.\n \n )}\n \n ) : (\n 'No campaigns found.'\n )}\n \n
      \n \n \n
      \n toggleModal('email')}\n icon={}\n size={isMobile ? 'icon' : 'medium'}\n >\n Connect Emails\n \n toggleModal('campaign')}\n size={isMobile ? 'icon' : 'medium'}\n icon={}\n >\n Add New\n \n
      \n \n
      \n \n \n
      \n
      \n \n
      \n setSearchValue(e.target.value)}\n placeholder={'Search campaigns by name'}\n autoComplete=\"off\"\n />\n
      \n \n\n \n \n \n \n \n \n\n \n {isClearButtonVisible && (\n }\n >\n Clear Filters\n \n )}\n \n
      \n\n
      \n {loading ? (\n
      \n \n
      \n ) : (\n \n {campaignsData?.campaigns &&\n campaignsData.campaigns.length > 0 ? (\n campaignsData.campaigns.map(campaign => (\n \n handleToggleMenuCard(campaign.publicId)}\n isOpen={openDropdownCard === campaign.publicId}\n onDelete={() => openDeleteModal(campaign)}\n onRename={() => openRenameModal(campaign)}\n />\n \n ))\n ) : (\n \n toggleModal('campaign')}\n >\n
      \n \n
      \n \n {isMobile ? 'New Campaign' : 'Add New Campaign'}\n \n

      \n {isMobile\n ? 'Start creating your first campaign'\n : 'Create your first campaign to start sending automated emails'}\n

      \n
      \n \n )}\n \n )}\n
      \n {campaignsData && campaignsData.campaigns.length > 0 && (\n
      \n \n
      \n )}\n
      \n \n\n {!hasConnectedEmails ? (\n \n ) : (\n activeModal && (\n
      {renderModalContent()}
      \n )\n )}\n\n {deleteModalOpen && campaignToDelete && (\n setDeleteModalOpen(false)}\n onConfirm={confirmDelete}\n isLoading={loading}\n title=\"Delete Campaign\"\n itemName={`campaign \"${campaignToDelete.name}\"`}\n warningMessage=\"This action cannot be undone. All associated data will be permanently deleted.\"\n />\n )}\n \n );\n};\n\nexport default CampaignsPage;\n","var _excluded = [\"className\", \"cssModule\", \"size\", \"bordered\", \"borderless\", \"striped\", \"dark\", \"hover\", \"responsive\", \"tag\", \"responsiveTag\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Adds border to all sides of table */\n bordered: PropTypes.bool,\n /** Removes all borders */\n borderless: PropTypes.bool,\n /** Adds custom class name to component */\n className: PropTypes.string,\n /** */\n cssModule: PropTypes.object,\n /** Makes the table dark */\n dark: PropTypes.bool,\n /** Enables a hover state on the rows within `` */\n hover: PropTypes.bool,\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.object]),\n /** Responsive tables allow tables to be scrolled horizontally with ease */\n responsive: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n responsiveTag: tagPropType,\n /** Make tables more compact by cutting cell padding in half when setting size as sm. */\n size: PropTypes.string,\n /** Adds zebra-striping to any table row within the `` */\n striped: PropTypes.bool,\n /** Add custom tag to the component */\n tag: tagPropType\n};\nfunction Table(props) {\n var className = props.className,\n cssModule = props.cssModule,\n size = props.size,\n bordered = props.bordered,\n borderless = props.borderless,\n striped = props.striped,\n dark = props.dark,\n hover = props.hover,\n responsive = props.responsive,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'table' : _props$tag,\n _props$responsiveTag = props.responsiveTag,\n ResponsiveTag = _props$responsiveTag === void 0 ? 'div' : _props$responsiveTag,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'table', size ? 'table-' + size : false, bordered ? 'table-bordered' : false, borderless ? 'table-borderless' : false, striped ? 'table-striped' : false, dark ? 'table-dark' : false, hover ? 'table-hover' : false), cssModule);\n var table = /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n if (responsive) {\n var responsiveClassName = mapToCssModules(responsive === true ? 'table-responsive' : \"table-responsive-\".concat(responsive), cssModule);\n return /*#__PURE__*/React.createElement(ResponsiveTag, {\n className: responsiveClassName\n }, table);\n }\n return table;\n}\nTable.propTypes = propTypes;\nexport default Table;","import React from 'react';\nimport { Table } from 'reactstrap';\nimport { format } from 'date-fns';\nimport { ScheduledEmail } from '../../../types/scheduled-emails.types';\nimport Badge from '../../../components/badge/Badge';\nimport { PaginationComponent } from '../../../components/Component';\n\ninterface ScheduledEmailsTableProps {\n emails: ScheduledEmail[];\n totalItems: number;\n currentPage: number;\n itemsPerPage: number;\n handlePageChange: (page: number) => void;\n setItemsPerPage: (value: number) => void;\n}\n\n// Column definitions\nconst columns = [\n {\n name: 'To',\n },\n {\n name: 'Variant',\n },\n {\n name: 'Status',\n },\n {\n name: 'Status Time',\n },\n];\n\n// Format date for display in American format (MM/DD/YYYY, hh:mm:ss AM/PM)\nconst formatDateAmerican = (date: Date | null): string => {\n if (!date) return 'Not available';\n return format(new Date(date), 'MM/dd/yyyy - hh:mm:ss a');\n};\n\n// Get variant label (all default in this case based on the image)\nconst getVariant = (): string => {\n return 'Default';\n};\n\n// Status display name\nconst getStatusDisplayName = (status: string): string => {\n const statusNames: Record = {\n SCHEDULED: 'Scheduled',\n SENT: 'Sent',\n FAILED: 'Failed',\n CANCELED: 'Canceled',\n };\n\n return statusNames[status] || status;\n};\n\n// Get status color\nconst getStatusColor = (status: string): string => {\n switch (status) {\n case 'sent':\n return 'green';\n case 'scheduled':\n return 'yellow';\n case 'failed':\n return 'red';\n case 'canceled':\n return 'gray';\n default:\n return 'blue';\n }\n};\n\n// Get status time message based on status\nconst getStatusTimeMessage = (\n status: string,\n updatedAt: Date | null,\n): string => {\n if (!updatedAt) return '';\n\n const formattedDate = formatDateAmerican(updatedAt);\n\n switch (status.toLowerCase()) {\n case 'sent':\n return `Sent at ${formattedDate}`;\n case 'failed':\n return `Failed at ${formattedDate}`;\n case 'scheduled':\n return formattedDate;\n default:\n return formattedDate;\n }\n};\n\n/**\n * ScheduledEmailsTable Component - Presentation Component\n * Displays a table of scheduled emails with pagination\n */\nconst ScheduledEmailsTable: React.FC = ({\n emails,\n totalItems,\n currentPage,\n itemsPerPage,\n handlePageChange,\n setItemsPerPage,\n}) => {\n return (\n
      \n {/* Email Table */}\n \n \n \n {columns.map((column, index) => (\n \n {column.name}\n \n ))}\n \n \n \n {emails.map(email => (\n \n \n\n \n\n \n\n \n \n ))}\n \n
      {email.to}\n \n \n \n \n {getStatusTimeMessage(email.status, email.updatedAt)}\n
      \n\n {/* Pagination */}\n
      \n {emails.length > 0 && (\n setItemsPerPage(value)}\n />\n )}\n
      \n
      \n );\n};\n\nexport default ScheduledEmailsTable;\n","import { Row } from 'reactstrap';\nimport { Icon } from '../Component';\n\ninterface SearchInputProps {\n searchValue: string;\n handleSearch: (event: React.ChangeEvent) => void;\n placeholder?: string;\n}\n\nconst SearchInput = ({\n searchValue,\n handleSearch,\n placeholder,\n}: SearchInputProps) => {\n return (\n \n
      \n
      \n \n
      \n \n
      \n
      \n );\n};\nexport default SearchInput;\n","import React, { useState, useEffect } from 'react';\nimport { Card, CardBody, Row, Col } from 'reactstrap';\nimport {\n ScheduledEmail,\n ScheduledEmailsPaginated,\n} from '../../../../types/scheduled-emails.types';\nimport ScheduledEmailsTable from '../ScheduledEmailsTable';\nimport { APIGetScheduledEmails } from '../../../../services/api/api.campaigns';\nimport { useNotification } from '../../../../context/NotificationContext/useNotification';\nimport LoadingComponent from '../../../../components/loading/Loading';\nimport Lottie from 'lottie-react';\nimport animationData from '../../../../assets/animations/no_data_found.anim.json';\nimport SearchInput from '../../../../components/input/SearchInput';\n\ninterface EmailHistorySectionProps {\n campaignId: string;\n onDataLoaded?: (data: ScheduledEmailsPaginated) => void;\n triggerRefresh?: boolean;\n}\nconst EmailHistorySection: React.FC = ({\n campaignId,\n onDataLoaded,\n triggerRefresh,\n}) => {\n const [loading, setLoading] = useState(true);\n const [emails, setEmails] = useState([]);\n const [totalItems, setTotalItems] = useState(0);\n const [currentPage, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useState(10);\n const [searchQuery, setSearchQuery] = useState('');\n const [isSearching, setIsSearching] = useState(false);\n\n const { handleAPIError } = useNotification();\n\n const fetchEmailsData = async () => {\n if (!campaignId) return;\n\n setLoading(true);\n try {\n const response = await APIGetScheduledEmails({\n campaignId: campaignId,\n page: currentPage,\n limit: itemsPerPage,\n search: searchQuery,\n });\n\n if (response) {\n setEmails(response.scheduledEmails || []);\n setTotalItems(response.total || 0);\n\n if (onDataLoaded) {\n onDataLoaded(response);\n }\n }\n } catch (error: any) {\n handleAPIError(error.message);\n } finally {\n setLoading(false);\n setIsSearching(false);\n }\n };\n\n const handlePageChange = (page: number) => {\n if (page !== currentPage) {\n setCurrentPage(page);\n }\n };\n\n const handleSearch = (event: React.ChangeEvent) => {\n const searchTerm = event.target.value.toLowerCase();\n setSearchQuery(searchTerm);\n setIsSearching(true);\n };\n\n useEffect(() => {\n setCurrentPage(1);\n }, [campaignId, itemsPerPage]);\n\n useEffect(() => {\n if (campaignId) {\n fetchEmailsData();\n }\n }, [campaignId, currentPage, itemsPerPage, triggerRefresh]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (campaignId && searchQuery !== undefined) {\n setCurrentPage(1);\n fetchEmailsData();\n }\n }, 500);\n\n return () => clearTimeout(timer);\n }, [searchQuery]);\n\n const renderTableContent = () => {\n if ((loading && emails.length === 0) || isSearching) {\n return (\n
      \n \n
      \n );\n }\n\n if (!loading && emails.length === 0) {\n return (\n
      \n \n No Scheduled Emails\n
      \n );\n }\n\n return (\n \n );\n };\n\n return (\n \n \n \n \n
      Email History
      \n

      \n Below is the email history for this campaign. You can check the\n status, recipient, and other details.\n

      \n\n
      \n
      \n \n \n \n
      \n\n
      {renderTableContent()}
      \n
      \n
      \n
      \n \n
      \n );\n};\n\nexport default EmailHistorySection;\n","import { useEffect, useState } from 'react';\nimport { Card, CardBody, Row, Col } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faEnvelope,\n faClock,\n faExclamationTriangle,\n faCalendarAlt,\n faInbox,\n faSync,\n} from '@fortawesome/free-solid-svg-icons';\nimport Badge from '../../../../components/badge/Badge';\nimport LoadingComponent from '../../../../components/loading/Loading';\nimport { ScheduledEmailsPaginated } from '../../../../types/scheduled-emails.types';\nimport { APIGetCampaignById } from '../../../../services/api/api.campaigns';\nimport { useCampaigns } from '../../../../context/Campaign/Campaign.context';\nimport { useNotification } from '../../../../context/NotificationContext/useNotification';\nimport { Button } from '../../../../components/Component';\nimport { getDateStructured } from '../../../../utils/Utils';\nimport { useParams } from 'react-router';\nimport EmailHistorySection from '../../../components/campaigns/tabs/EmailHistorySection';\n\nconst AnalyticsTab = ({ campaign }) => {\n const [loading, setLoading] = useState(true);\n const [emailsData, setEmailsData] = useState(\n null,\n );\n const [isRotating, setIsRotating] = useState(false);\n const [refreshTrigger, setRefreshTrigger] = useState(false);\n\n const { selectedCampaign } = useCampaigns();\n const { handleAPIError } = useNotification();\n const { setSelectedCampaign } = useCampaigns();\n const { id } = useParams();\n\n // Fetch campaign data from API\n const fetchCampaignById = async () => {\n if (id) {\n try {\n setLoading(true);\n const campaignData = await APIGetCampaignById(id);\n setSelectedCampaign(campaignData);\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setLoading(false);\n }\n }\n };\n\n // Initial data fetch\n useEffect(() => {\n if (id) {\n fetchCampaignById();\n }\n }, [id]);\n\n // Handle data loading callback from the table component\n const handleEmailDataLoaded = (data: ScheduledEmailsPaginated) => {\n setEmailsData(data);\n setLoading(false);\n };\n\n // Handle refresh button click\n const handleRefresh = async () => {\n setIsRotating(true);\n await fetchCampaignById();\n // Trigger refresh in the table component\n setRefreshTrigger(prev => !prev);\n setTimeout(() => setIsRotating(false), 1000);\n };\n\n if (!campaign || (loading && !selectedCampaign)) {\n return (\n
      \n \n
      \n );\n }\n\n const cardData = [\n {\n icon: faInbox,\n title: 'Total Emails',\n value: emailsData?.total || 0,\n color: 'gray',\n description: 'Total number of sent, scheduled, and failed emails.',\n },\n {\n icon: faEnvelope,\n title: 'Emails Sent',\n value: selectedCampaign?.emailsSent,\n percentage: selectedCampaign?.sentPercentage,\n color: 'green',\n description: 'Total number of successfully sent emails.',\n },\n {\n icon: faClock,\n title: 'Scheduled Emails',\n value: selectedCampaign?.emailsScheduled,\n percentage: selectedCampaign?.scheduledPercentage,\n color: 'yellow',\n description: 'Emails scheduled for future delivery.',\n },\n {\n icon: faExclamationTriangle,\n title: 'Failed Emails',\n value: selectedCampaign?.emailsError,\n percentage: selectedCampaign?.errorPercentage,\n color: 'red',\n description: 'Emails that failed and were not delivered.',\n },\n ];\n\n const statusColors = {\n Draft: 'gray',\n Completed: 'green',\n 'In Progress': 'yellow',\n Closed: 'gray',\n Fail: 'red',\n };\n\n return (\n
      \n {/* Header with Campaign Name and Date */}\n
      \n
      \n

      {campaign.name}

      \n
      \n \n Created At: {getDateStructured(campaign.createdAt)}\n
      \n
      \n
      \n \n
      \n
      \n }\n >\n Refresh Data\n \n
      \n
      \n\n {/* Status Cards in a Row */}\n \n {cardData.map(\n ({ icon, title, value, percentage, color, description }, index) => (\n \n \n \n \n \n
      \n
      \n \n {title}\n \n

      \n {value}{' '}\n {percentage !== undefined && (\n \n ({percentage}%)\n \n )}\n

      \n {description && (\n \n {description}\n \n )}\n
      \n \n \n \n ),\n )}\n \n\n {/* Email History Table Below */}\n \n \n );\n};\n\nexport default AnalyticsTab;\n","import React, { useEffect, useState } from 'react';\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Table,\n Spinner,\n Tooltip,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\nimport { faArrowRight } from '@fortawesome/free-solid-svg-icons';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { APIGetList } from '../../../services/api/api.list';\nimport {\n TFavoriteListWithData,\n TFavoriteItem,\n} from '../../../types/list.types';\nimport { Button, UserAvatar } from '../../../components/Component';\nimport { findUpper, truncateText } from '../../../utils/Utils';\nimport Badge from '../../../components/badge/Badge';\nimport formatEmailWithIcon from '../../../utils/formatEmailWithIcon';\nimport { TJob } from '../../../types/job.types';\nimport { TCompany } from '../../../types/company.types';\nimport { Contact } from '../../../types/contact.types';\n\ntype JobPreview = Pick;\ntype CompanyPreview = Pick<\n TCompany,\n 'name' | 'industry' | 'imageUrl' | 'publicId'\n>;\ntype LeadPreview = Pick<\n Contact,\n | 'publicId'\n | 'fullName'\n | 'pictureUrl'\n | 'websitesLinkedin'\n | 'jobTitle'\n | 'generatedHeadline'\n | 'email'\n>;\n\ninterface ListPreviewModalProps {\n isOpen: boolean;\n toggle: () => void;\n listId: string;\n}\n\n/**\n * Modal component that displays a preview of list contents\n */\nconst ListPreviewModal = ({\n isOpen,\n listId,\n toggle,\n}: ListPreviewModalProps) => {\n // State\n const [listData, setListData] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [tooltipOpen, setTooltipOpen] = useState<{ [key: string]: boolean }>(\n {},\n );\n\n // Constants\n const MAX_COLUMN_LENGTH = 25;\n const ITEMS_TO_SHOW = 3;\n\n // Hooks\n const { handleAPIError } = useNotification();\n\n // Fetch list data when modal opens\n useEffect(() => {\n if (isOpen && listId) {\n fetchListData();\n }\n }, [isOpen, listId]);\n\n // Helper functions\n const fetchListData = async () => {\n setIsLoading(true);\n try {\n const data = await APIGetList(listId);\n setListData(data);\n } catch (error: any) {\n handleAPIError(error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleViewDetails = () => {\n toggle();\n window.open(`/lists/${listId}`, '_blank', 'noopener,noreferrer');\n };\n\n const toggleTooltip = (tooltipId: string) => {\n setTooltipOpen(prev => ({\n ...prev,\n [tooltipId]: !prev[tooltipId],\n }));\n };\n\n // Get favorites safely with TypeScript\n const getFavorites = (): TFavoriteItem[] => {\n return listData?.favorites || [];\n };\n\n // Get total count of favorites\n const getFavoritesCount = (): number => {\n return getFavorites().length;\n };\n\n // Determine if there are more items than shown\n const hasMoreItems = (): boolean => {\n return getFavoritesCount() > ITEMS_TO_SHOW;\n };\n\n // Get appropriate button text based on data\n const getButtonText = (): string => {\n if (hasMoreItems()) {\n return 'See All';\n }\n return 'View Details';\n };\n\n // Render functions\n const renderTooltip = (tooltipId: string, text: string) => {\n return (\n toggleTooltip(tooltipId)}\n fade={false}\n >\n {text}\n \n );\n };\n\n const renderTextWithTooltip = (\n tooltipId: string,\n text: string | undefined,\n maxLength = MAX_COLUMN_LENGTH,\n className = '',\n ) => {\n if (!text) return null;\n\n const shouldTruncate = text.length > maxLength;\n const displayText = shouldTruncate ? truncateText(text, maxLength) : text;\n\n return (\n <>\n \n {displayText}\n \n {shouldTruncate && renderTooltip(tooltipId, text)}\n \n );\n };\n\n // Company column renderer\n const renderCompanyCell = (company: CompanyPreview, index: number) => {\n const companyTooltipId = `company-name-${index}`;\n const industryTooltipId = `company-industry-${index}`;\n\n return (\n
      \n \n \n \n
      \n {renderTextWithTooltip(\n companyTooltipId,\n company.name,\n MAX_COLUMN_LENGTH,\n 'text-primary !font-normal flex !text-xs',\n )}\n {company.industry &&\n renderTextWithTooltip(\n industryTooltipId,\n company.industry,\n MAX_COLUMN_LENGTH,\n '!font-normal flex !text-xs',\n )}\n
      \n
      \n );\n };\n\n // Job column renderer\n const renderJobCell = (job: JobPreview, index: number) => {\n const titleTooltipId = `job-title-${index}`;\n const locationTooltipId = `job-location-${index}`;\n\n return (\n
      \n {renderTextWithTooltip(\n titleTooltipId,\n job.title,\n MAX_COLUMN_LENGTH,\n 'text-primary !font-normal !text-xs pb-1',\n )}\n {renderTextWithTooltip(\n locationTooltipId,\n job.location,\n MAX_COLUMN_LENGTH,\n 'text-xs !font-normal',\n )}\n
      \n );\n };\n\n // Contact column renderer\n const renderContactCell = (lead: LeadPreview, index: number) => {\n const nameTooltipId = `contact-name-${index}`;\n const positionTooltipId = `contact-position-${index}`;\n\n return (\n
      \n \n
      \n
      \n {renderTextWithTooltip(\n nameTooltipId,\n lead.fullName,\n MAX_COLUMN_LENGTH,\n '!font-normal flex !text-xs lg:text-sm text-primary',\n )}\n {lead.websitesLinkedin && (\n \n \n \n )}\n
      \n {renderTextWithTooltip(\n positionTooltipId,\n lead.jobTitle || lead.generatedHeadline,\n MAX_COLUMN_LENGTH,\n '!font-normal flex !text-xs',\n )}\n
      \n
      \n );\n };\n\n // Loading state renderer\n const renderLoading = () => (\n
      \n \n

      Loading data...

      \n
      \n );\n\n // No data state renderer\n const renderNoData = () => (\n
      \n

      No items found in this list

      \n
      \n );\n\n // Table renderer\n const renderTable = () => {\n const favorites = getFavorites();\n const itemsToDisplay = favorites.slice(0, ITEMS_TO_SHOW);\n\n return (\n
      \n \n \n \n \n \n \n \n \n \n \n {itemsToDisplay.map((favorite, index) => (\n \n \n \n \n \n \n ))}\n \n
      \n Company\n \n Job Title\n \n Contact\n Email
      {renderCompanyCell(favorite.company, index)}{renderJobCell(favorite.job, index)}{renderContactCell(favorite.lead, index)}\n \n {formatEmailWithIcon(favorite.lead.email || '')}\n \n
      \n
      \n );\n };\n\n // Get the display content based on loading state and data\n const getModalContent = () => {\n if (isLoading) {\n return renderLoading();\n }\n\n const favorites = getFavorites();\n return favorites.length > 0 ? renderTable() : renderNoData();\n };\n\n // Showing items message\n const renderShowingMessage = () => {\n const totalItems = getFavoritesCount();\n if (totalItems === 0) return null;\n\n const shownItems = Math.min(ITEMS_TO_SHOW, totalItems);\n return (\n
      \n {`Showing ${shownItems} of ${totalItems} items`}\n
      \n );\n };\n\n return (\n \n {/* Modal Header */}\n \n
      \n
      \n
      {listData?.name || 'List Preview'}
      \n
      \n \n
      \n
      \n\n {/* Modal Body */}\n {getModalContent()}\n\n {/* Modal Footer */}\n \n
      \n {renderShowingMessage()}\n }\n iconSide=\"right\"\n className=\"ml-auto\"\n >\n {getButtonText()}\n \n
      \n
      \n
      \n );\n};\n\nexport default ListPreviewModal;\n","import React, { useMemo } from 'react';\nimport { Card, CardBody, CardTitle, Row, Col } from 'reactstrap';\nimport { TList, TListWithLeads } from '../../../../types/list.types';\nimport Badge from '../../../../components/badge/Badge';\nimport { List } from '../../../../types/campaign.types';\nimport { Button } from '../../../../components/Component';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faEye } from '@fortawesome/free-solid-svg-icons';\nimport ListPreviewModal from '../../modal/ListPreviewModal';\n\ninterface ListsSelectionProps {\n listsData: TListWithLeads[];\n handleListSelection: (list: TList) => void;\n readOnly: boolean;\n selectedLists?: List[];\n}\n\nconst ListsSelection: React.FC = ({\n listsData,\n handleListSelection,\n readOnly,\n selectedLists = [],\n}) => {\n const [previewModalOpen, setPreviewModalOpen] = React.useState(false);\n const [selectedListForPreview, setSelectedListForPreview] = React.useState<\n string | null\n >(null);\n\n const filteredLists = useMemo(\n () => listsData.filter(list => !list.isDeleted),\n [listsData],\n );\n\n const selectedListPublicIds = selectedLists.map(list => list.publicId) || [];\n\n const togglePreviewModal = () => {\n setPreviewModalOpen(!previewModalOpen);\n if (previewModalOpen) {\n setSelectedListForPreview(null);\n }\n };\n\n const handleOpenPreview = (event: React.MouseEvent, listId: string) => {\n // Stop propagation to prevent the card's onClick from being triggered\n event.stopPropagation();\n setSelectedListForPreview(listId);\n setPreviewModalOpen(true);\n };\n\n return (\n <>\n \n {filteredLists.map(list => (\n \n handleListSelection(list)}\n >\n \n
      \n
      \n handleListSelection(list)}\n id={list.publicId}\n disabled={readOnly}\n />\n \n
      \n \n {list.name}\n \n
      \n
      \n }\n outline\n className=\"border-0 hover:!bg-gray-300\"\n onClick={e => handleOpenPreview(e, list.publicId)}\n />\n \n
      \n
      \n \n \n ))}\n
      \n {selectedListForPreview && (\n \n )}\n {/* Pagination */}\n {/*
      \n \n
      */}\n \n );\n};\n\nexport default ListsSelection;\n","import React, { useEffect, useState } from 'react';\nimport { Row, Col, Spinner } from 'reactstrap';\nimport { TList, TListWithLeads } from '../../../../types/list.types';\nimport { APIGetLists } from '../../../../services/api/api.list';\nimport { useAuth } from '../../../../context/Auth/auth.contex';\nimport { useNotification } from '../../../../context/NotificationContext/useNotification';\nimport ListsSelection from '../../../components/campaigns/tabs/ListsSelection';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, Icon } from '../../../../components/Component';\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons';\nimport { useCampaigns } from '../../../../context/Campaign/Campaign.context';\nimport { APIUpdateCampaignLists } from '../../../../services/api/api.campaigns';\nimport { Campaign, List } from '../../../../types/campaign.types';\n\ninterface LeadsTabProps {\n goToNextTab: () => void;\n}\n\nconst LeadsTab = ({ goToNextTab }: LeadsTabProps) => {\n const { user } = useAuth();\n const navigate = useNavigate();\n const { createNotification, handleAPIError } = useNotification();\n const [listsData, setListsData] = useState([]);\n const [filteredLists, setFilteredLists] = useState([]);\n const {\n setSelectedCampaign,\n selectedCampaign,\n lists,\n selectedCampaignId,\n selectedCampaignStatus,\n } = useCampaigns();\n const [isLoading, setIsLoading] = useState(true);\n const [localSelectedLists, setLocalSelectedLists] = useState([]);\n\n // Search\n const [searchValue, setSearchValue] = useState('');\n\n useEffect(() => {\n fetchLists();\n\n // Initialize local selected lists from context\n if (lists) {\n setLocalSelectedLists(lists);\n }\n }, [user, lists]);\n\n // Apply filters based on campaign status\n useEffect(() => {\n if (listsData.length > 0) {\n filterLists();\n }\n }, [listsData, selectedCampaignStatus, searchValue]);\n\n const filterLists = () => {\n let filtered = [...listsData];\n if (selectedCampaignStatus !== 'Draft') {\n const activeListIds = lists.map(list => list.publicId);\n\n filtered = filtered.filter(list => activeListIds.includes(list.publicId));\n }\n\n if (searchValue) {\n filtered = filtered.filter(list =>\n list.name.toLowerCase().includes(searchValue.toLowerCase()),\n );\n }\n\n setFilteredLists(filtered);\n };\n\n // Handle get lists\n const fetchLists = async () => {\n setIsLoading(true);\n if (!user) {\n navigate('/logout');\n createNotification(\n 'danger',\n 'You need to be logged in to access this page',\n );\n return;\n }\n try {\n const fetchedLists = await APIGetLists(user.publicId);\n setListsData(fetchedLists);\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n // Modified to update local state only, without API call\n const handleListSelection = (selectedList: TList) => {\n if (!selectedCampaignId) {\n createNotification('danger', 'Please select a campaign first.');\n return;\n }\n\n if (selectedCampaignStatus && selectedCampaignStatus !== 'Draft') {\n createNotification(\n 'info',\n 'Lists can only be modified when the campaign is in draft mode.',\n );\n return;\n }\n\n const currentListPublicIds = localSelectedLists.map(list => list.publicId);\n\n let updatedLists: List[];\n if (currentListPublicIds.includes(selectedList.publicId)) {\n updatedLists = localSelectedLists.filter(\n list => list.publicId !== selectedList.publicId,\n );\n } else {\n updatedLists = [...localSelectedLists, selectedList];\n }\n\n setLocalSelectedLists(updatedLists);\n };\n\n // Modified to send all selected lists to API at once\n const handleNext = async () => {\n if (localSelectedLists.length === 0) {\n createNotification(\n 'danger',\n 'Please select at least one list to continue.',\n );\n return;\n }\n\n try {\n // Send all selected lists to the API at once\n const updatedListIds = localSelectedLists.map(list => list.publicId);\n if (!selectedCampaignId) {\n createNotification('danger', 'Please select a campaign first.');\n return;\n }\n await APIUpdateCampaignLists(selectedCampaignId, updatedListIds);\n\n // Update the campaign context\n if (selectedCampaign) {\n const updatedCampaign: Campaign = {\n ...selectedCampaign,\n lists: localSelectedLists,\n };\n setSelectedCampaign(updatedCampaign);\n }\n\n // Proceed to the next tab\n goToNextTab();\n } catch (error: any) {\n handleAPIError(error, error.message);\n }\n };\n\n //handle search\n const handleSearch = (event: React.ChangeEvent) => {\n const searchTerm = event.target.value.toLowerCase();\n setSearchValue(searchTerm);\n };\n\n return (\n
      \n \n \n

      Select Lists

      \n

      \n {selectedCampaignStatus && selectedCampaignStatus !== 'Draft'\n ? 'Viewing the selected lists for this campaign. Lists can only be modified in draft mode.'\n : 'Select the lists containing the leads you want to send emails to.'}\n

      \n \n\n \n \n
      \n
      \n \n
      \n \n
      \n
      \n \n
      \n {isLoading ? (\n
      \n \n
      \n ) : (\n 0 ? filteredLists : listsData}\n handleListSelection={handleListSelection}\n readOnly={\n !!selectedCampaignStatus && selectedCampaignStatus !== 'Draft'\n }\n selectedLists={localSelectedLists}\n />\n )}\n {localSelectedLists.length > 0 && (\n \n \n }\n iconSide=\"right\"\n >\n Next\n \n \n \n )}\n
      \n );\n};\n\nexport default LeadsTab;\n","import SunEditor from 'suneditor-react';\nimport 'suneditor/dist/css/suneditor.min.css';\nimport 'katex/dist/katex.min.css';\nimport './suneditor-custom.css';\nimport { MutableRefObject } from 'react';\nimport { SunEditorType } from '../../pages/components/modal/EmailEditorModal';\n\ninterface EmailEditorProps {\n content: string;\n setContent: (content: string) => void;\n onlyRead?: boolean;\n editorRef?: MutableRefObject;\n}\n\nconst EmailEditor = ({\n content,\n setContent,\n onlyRead,\n editorRef,\n}: EmailEditorProps & { editorRef?: React.RefObject }) => {\n return (\n {\n if (editorRef) {\n editorRef.current = sunEditor;\n console.log('Editor reference set:', editorRef.current);\n }\n }}\n setOptions={{\n height: '100%',\n minHeight: '400px',\n maxHeight: '400px',\n resizingBar: false,\n resizeEnable: false,\n font: ['Arial', 'Tahoma', 'Courier New, Courier'],\n buttonList: [\n [\n 'undo',\n 'redo',\n 'font',\n 'fontSize',\n 'formatBlock',\n 'bold',\n 'underline',\n 'italic',\n 'strike',\n 'removeFormat',\n 'outdent',\n 'indent',\n 'align',\n 'horizontalRule',\n 'list',\n 'table',\n 'link',\n 'fullScreen',\n 'codeView',\n ],\n ],\n placeholder: 'Type your message here...',\n katex: 'window.katex',\n fontSize: [8, 10, 14, 18, 24, 36],\n formats: ['p', 'blockquote', 'h1', 'h2', 'h3'],\n defaultStyle: 'font-size: 16px; font-family: Arial, sans-serif;',\n showPathLabel: false,\n // defaultTag: 'span',\n attributesWhitelist: {\n all: 'style|class',\n },\n pasteTagsWhitelist:\n 'p|span|br|div|strong|b|em|u|i|ul|ol|li|a|table|thead|tbody|tr|th|td',\n addTagsWhitelist:\n 'span|strong|b|em|u|i|ul|ol|li|a|table|thead|tbody|tr|th|td',\n pasteTagsBlacklist: '',\n }}\n />\n );\n};\n\nexport default EmailEditor;\n","import React, { useEffect, useState, useRef } from 'react';\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Input,\n Col,\n Row,\n Dropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n Spinner,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faList,\n faEye,\n faPen,\n faSave,\n faTimes,\n faInfoCircle,\n} from '@fortawesome/free-solid-svg-icons';\nimport { Button, TooltipComponent } from '../../../components/Component';\nimport EmailEditor from '../../../components/emailEditor/EmailEditor';\nimport { z } from 'zod';\nimport { useCampaigns } from '../../../context/Campaign/Campaign.context';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport {\n APICreateCampaignEmail,\n APIUpdateCampaignEmail,\n} from '../../../services/api/api.campaigns';\n\ninterface EmailEditorModalProps {\n isOpen: boolean;\n toggle: () => void;\n emailId: string | null;\n isEditing: boolean;\n isPreviewMode?: boolean;\n onlyRead?: boolean;\n}\nexport interface SunEditorType {\n insertHTML: (\n html: string,\n notCleaningData?: boolean,\n checkCharCount?: boolean,\n rangeSelection?: boolean,\n ) => void;\n core: {\n focus: () => void;\n focusEdge: () => void;\n [key: string]: any;\n };\n [key: string]: any;\n}\n\nconst emailSchema = z.object({\n subject: z.string().min(1, 'Subject is required'),\n body: z.string().min(1, 'Email body is required'),\n});\n\n// Sample data for preview mode\nconst previewVariables = {\n name: 'John Doe',\n email: 'johndoe@example.com',\n first_name: 'John',\n last_name: 'Doe',\n country: 'United States',\n lead_position: 'Marketing Manager',\n company_name: 'Acme Corp',\n location: 'New York',\n industry: 'Technology',\n website: 'www.acmecorp.com',\n linkedin_profile: 'linkedin.com/in/johndoe',\n company_size: '50-100',\n job_title: 'Senior Marketing Manager',\n job_location: 'New York, NY',\n job_link: 'https://careers.acmecorp.com/job123',\n};\n\nconst variables = [\n { label: 'Lead Variables', isSection: true },\n { label: 'Name', value: '{{ name }}' },\n { label: 'Email', value: '{{ email }}' },\n { label: 'First Name', value: '{{ first_name }}' },\n { label: 'Last Name', value: '{{ last_name }}' },\n { label: 'Country', value: '{{ country }}' },\n { label: 'Lead Position', value: '{{ lead_position }}' },\n\n { label: 'Company Variables', isSection: true },\n { label: 'Company Name', value: '{{ company_name }}' },\n { label: 'Location', value: '{{ location }}' },\n { label: 'Industry', value: '{{ industry }}' },\n { label: 'Website', value: '{{ website }}' },\n { label: 'LinkedIn Profile', value: '{{ linkedin_profile }}' },\n { label: 'Company Size', value: '{{ company_size }}' },\n\n { label: 'Job Variables', isSection: true },\n { label: 'Job Title', value: '{{ job_title }}' },\n { label: 'Job Location', value: '{{ job_location }}' },\n { label: 'Job Link', value: '{{ job_link }}' },\n];\n\nconst EmailEditorModal = ({\n isOpen,\n toggle,\n emailId,\n isEditing,\n isPreviewMode,\n onlyRead,\n}: EmailEditorModalProps) => {\n const { emails, selectedCampaignId, setSelectedCampaign } = useCampaigns();\n const { createNotification, handleAPIError } = useNotification();\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [previewMode, setPreviewMode] = useState(false);\n const [errors, setErrors] = useState<{ subject?: string; body?: string }>({});\n const [isLoading, setIsLoading] = useState(false);\n const [emailTemp, setEmailTemp] = useState({\n subject: '',\n body: '',\n });\n const [previewContent, setPreviewContent] = useState({\n subject: '',\n body: '',\n });\n\n const isFirstRender = useRef(true);\n const editorRef = useRef(null);\n\n useEffect(() => {\n if (isPreviewMode) {\n setPreviewMode(true);\n }\n }, [isPreviewMode]);\n\n useEffect(() => {\n if (!isOpen) {\n isFirstRender.current = true;\n return;\n }\n\n setErrors({});\n\n if (!isPreviewMode) {\n setPreviewMode(false);\n }\n\n if (isFirstRender.current) {\n isFirstRender.current = false;\n\n if ((isEditing || isPreviewMode) && emailId) {\n const emailToEdit = emails.find(email => email.publicId === emailId);\n if (emailToEdit) {\n setEmailTemp({\n subject: emailToEdit.subject || '',\n body: emailToEdit.body || '',\n });\n } else {\n setEmailTemp({\n subject: '',\n body: '',\n });\n }\n } else {\n setEmailTemp({\n subject: '',\n body: '',\n });\n }\n }\n }, [isOpen, isEditing, emailId, emails, isPreviewMode]);\n\n useEffect(() => {\n if (!isOpen) return;\n\n if ((isEditing || isPreviewMode) && emailId) {\n const emailToEdit = emails.find(email => email.publicId === emailId);\n if (emailToEdit) {\n setEmailTemp({\n subject: emailToEdit.subject || '',\n body: emailToEdit.body || '',\n });\n }\n } else {\n setEmailTemp({\n subject: '',\n body: '',\n });\n }\n }, [emailId, isEditing, isPreviewMode]);\n\n useEffect(() => {\n return () => {\n setEmailTemp({\n subject: '',\n body: '',\n });\n };\n }, []);\n\n useEffect(() => {\n if (previewMode) {\n let previewSubject = emailTemp.subject;\n let previewBody = emailTemp.body;\n\n Object.keys(previewVariables).forEach(key => {\n const regex = new RegExp(`{{\\\\s*${key}\\\\s*}}`, 'g');\n previewSubject = previewSubject.replace(regex, previewVariables[key]);\n previewBody = previewBody.replace(regex, previewVariables[key]);\n });\n\n setPreviewContent({\n subject: previewSubject,\n body: previewBody,\n });\n }\n }, [previewMode, emailTemp.subject, emailTemp.body]);\n\n const handleCreateEmail = async (emailData: {\n subject: string;\n body: string;\n }) => {\n if (!selectedCampaignId) {\n createNotification('danger', 'Campaign ID is missing');\n return;\n }\n\n try {\n setIsLoading(true);\n const updatedCampaign = await APICreateCampaignEmail(\n selectedCampaignId,\n emailData,\n );\n\n if (updatedCampaign) {\n setSelectedCampaign(updatedCampaign);\n createNotification('success', 'Email created successfully');\n toggle();\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleUpdateEmail = async (emailData: {\n subject: string;\n body: string;\n }) => {\n if (!selectedCampaignId || !emailId) {\n createNotification('danger', 'Campaign ID or Email ID is missing');\n return;\n }\n\n try {\n setIsLoading(true);\n const updatedCampaign = await APIUpdateCampaignEmail(\n selectedCampaignId,\n emailId,\n emailData,\n );\n\n if (updatedCampaign) {\n setSelectedCampaign(updatedCampaign);\n createNotification('success', 'Email updated successfully');\n toggle();\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n const insertVariable = (variable: string) => {\n if (onlyRead) return;\n\n if (editorRef.current) {\n const variableSpan = `${variable} `;\n\n editorRef.current.core.focusEdge();\n editorRef.current.insertHTML(variableSpan, true, true);\n }\n };\n\n const handleEmailSubjectChange = (e: React.ChangeEvent) => {\n setEmailTemp(prev => ({ ...prev, subject: e.target.value }));\n };\n\n const saveEmailWithValidation = () => {\n const result = emailSchema.safeParse({\n subject: emailTemp.subject,\n body: emailTemp.body,\n });\n\n if (!result.success) {\n setErrors({\n subject: result.error.flatten().fieldErrors.subject?.[0],\n body: result.error.flatten().fieldErrors.body?.[0],\n });\n return;\n }\n\n setErrors({});\n\n const emailData = {\n subject: emailTemp.subject.trim(),\n body: emailTemp.body.trim(),\n };\n\n if (isEditing) {\n handleUpdateEmail(emailData);\n } else {\n handleCreateEmail(emailData);\n }\n };\n\n const handleEmailBodyChange = (content: string) => {\n if (onlyRead) return;\n setEmailTemp(prev => ({ ...prev, body: content }));\n console.log(content);\n };\n\n const getModalTitle = () => {\n if (isPreviewMode) return 'Preview Email';\n if (previewMode) return 'Email Preview';\n if (isEditing) return 'Edit Email';\n return 'Create Email';\n };\n\n return (\n {\n setEmailTemp({\n subject: '',\n body: '',\n });\n }}\n >\n \n {getModalTitle()}\n \n\n \n \n \n
      \n Subject:\n \n
      \n {errors.subject && (\n {errors.subject}\n )}\n \n\n \n
      \n {!onlyRead && (\n \n \n }\n color=\"primary\"\n size=\"icon\"\n onClick={() => setPreviewMode(!previewMode)}\n disabled={isLoading}\n className=\"cursor-pointer\"\n />\n \n )}\n\n {/* {previewMode && (\n }\n disabled={isLoading}\n >\n Send Test Email\n \n )} */}\n\n {/* {!previewMode && (\n \n }\n color=\"primary\"\n onClick={() => {}}\n size=\"icon\"\n disabled={isLoading}\n />\n \n )} */}\n\n {!previewMode && !onlyRead && (\n !isLoading && setDropdownOpen(!dropdownOpen)}\n >\n \n \n Variables\n \n \n {variables.map((variable, index) => {\n if (variable.isSection) {\n return (\n \n {variable.label}\n
      \n );\n }\n return (\n insertVariable(variable.value || '')}\n className=\"py-2 px-3 text-sm text-gray-700 hover:bg-blue-50 hover:text-blue-700\"\n disabled={!variable.value}\n >\n {variable.label}\n \n );\n })}\n \n \n )}\n \n \n
      \n\n {!previewMode ? (\n \n
      \n \n {errors.body && (\n {errors.body}\n )}\n
      \n
      \n ) : (\n \n
      \n
      \n \n \n Variable values are just examples for preview purposes\n \n
      \n
      \n \n
      \n
      \n
      \n )}\n
      \n\n \n \n \n {onlyRead ? 'Close' : 'Cancel'}\n \n\n {!onlyRead && (\n \n {isLoading ? (\n <>\n \n {isEditing ? 'Updating...' : 'Creating...'}\n \n ) : (\n <>\n \n {isEditing ? 'Update Email' : 'Save Email'}\n \n )}\n \n )}\n \n \n );\n};\n\nexport default EmailEditorModal;\n","import React from 'react';\nimport { ListGroup, ListGroupItem, Spinner, Row, Col } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowRight, faLock } from '@fortawesome/free-solid-svg-icons';\n\ninterface EmailActions {\n id: string;\n title: string;\n icon: any;\n description: string;\n enabled: boolean;\n}\n\ninterface EmailActionsPanelProps {\n emailActions: EmailActions[];\n handleEmailActionClick: (id: string) => void;\n isLoading?: boolean;\n}\n\nconst EmailActionsPanel = ({\n emailActions,\n handleEmailActionClick,\n isLoading = false,\n}: EmailActionsPanelProps) => {\n return (\n
      \n \n {emailActions.map(({ id, title, icon, description, enabled }) => (\n \n {\n if (enabled && !isLoading) {\n handleEmailActionClick(id);\n }\n }}\n style={{\n cursor: enabled && !isLoading ? 'pointer' : 'not-allowed',\n }}\n >\n
      \n \n
      \n
      {title}
      \n {description}\n
      \n
      \n {isLoading && id === 'scratch' ? (\n \n ) : (\n \n )}\n \n \n ))}\n
      \n
      \n );\n};\n\nexport default EmailActionsPanel;\n","import React from 'react';\n\ninterface SwitchProps {\n label?: string;\n id: string;\n checked: boolean;\n onChange: (event: React.MouseEvent) => void;\n disabled?: boolean;\n}\n\nconst InputSwitchCustom = ({\n label,\n id,\n checked,\n onChange,\n disabled,\n}: SwitchProps) => {\n return (\n \n {\n if (!disabled && onChange) {\n onChange(e);\n }\n }}\n id={id}\n disabled={disabled}\n />\n \n \n );\n};\n\nexport default InputSwitchCustom;\n","import { Row, Col, Card, CardBody, CardTitle } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faChevronRight,\n faEye,\n faPen,\n faTrash,\n} from '@fortawesome/free-solid-svg-icons';\nimport InputSwitchCustom from '../../../../components/input/switch/InputSwitchCustom';\nimport {\n BlockContent,\n Button,\n TooltipComponent,\n} from '../../../../components/Component';\nimport { useCampaigns } from '../../../../context/Campaign/Campaign.context';\nimport { useNotification } from '../../../../context/NotificationContext/useNotification';\nimport { useState } from 'react';\nimport {\n APIDeleteCampaignEmail,\n APIToggleEmailStatus,\n} from '../../../../services/api/api.campaigns';\nimport DeleteConfirmationModal from '../../modal/DeleteConfirmationModal';\n\ninterface EmailListProps {\n toggleModal: (emailId: string | null) => void;\n goToNextTab: () => void;\n openEmailPreview: (emailId: string) => void;\n}\n\nconst EmailList = ({\n toggleModal,\n goToNextTab,\n openEmailPreview,\n}: EmailListProps) => {\n const { createNotification, handleAPIError } = useNotification();\n const {\n emails,\n selectedCampaignId,\n setSelectedCampaign,\n selectedCampaignStatus,\n } = useCampaigns();\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n const [emailToDelete, setEmailToDelete] = useState(null);\n\n const [isLoading, setIsLoading] = useState(false);\n\n // Check if campaign is in draft mode\n const isDraftMode =\n !selectedCampaignStatus || selectedCampaignStatus === 'Draft';\n\n const handleNext = () => {\n if (emails.length > 0) {\n goToNextTab();\n } else {\n createNotification(\n 'danger',\n 'Please create at least one email variant to continue.',\n );\n }\n };\n\n // Moved from parent component\n const handleToggleEmailStatus = async (\n emailId: string,\n isActive: boolean,\n ) => {\n if (!selectedCampaignId) {\n createNotification('danger', 'Campaign ID is missing');\n return;\n }\n\n try {\n setIsLoading(true);\n const updatedCampaign = await APIToggleEmailStatus(\n selectedCampaignId,\n emailId,\n isActive,\n );\n\n if (updatedCampaign) {\n setSelectedCampaign(updatedCampaign);\n createNotification(\n 'success',\n `Email ${isActive ? 'activated' : 'deactivated'} successfully`,\n );\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n // Moved from parent component\n const handleDeleteEmail = async (emailId: string) => {\n if (!selectedCampaignId) {\n createNotification('danger', 'Campaign ID is missing');\n return;\n }\n\n try {\n setIsLoading(true);\n const updatedCampaign = await APIDeleteCampaignEmail(\n selectedCampaignId,\n emailId,\n );\n\n if (updatedCampaign) {\n setSelectedCampaign(updatedCampaign);\n createNotification('success', 'Email deleted successfully');\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleToggleStatus = async (\n emailId: string,\n currentStatus: boolean,\n event: React.MouseEvent,\n ) => {\n event.stopPropagation();\n\n if (isLoading) return;\n\n await handleToggleEmailStatus(emailId, !currentStatus);\n };\n\n const handleEdit = (emailId: string, event: React.MouseEvent) => {\n event.stopPropagation();\n toggleModal(emailId);\n };\n\n const openDeleteModal = (emailId: string, event: React.MouseEvent) => {\n event.stopPropagation();\n setEmailToDelete(emailId);\n setDeleteModalOpen(true);\n };\n\n const handleDeleteConfirm = async () => {\n if (emailToDelete) {\n await handleDeleteEmail(emailToDelete);\n setDeleteModalOpen(false);\n setEmailToDelete(null);\n }\n };\n\n return (\n <>\n \n {emails.map(email => (\n \n \n \n
      \n \n {email.subject}\n \n
      \n
      \n {/* Only show toggle switch if in draft mode */}\n {isDraftMode && (\n \n \n
      \n \n handleToggleStatus(\n email.publicId,\n email.isActive,\n e,\n )\n }\n label=\"\"\n disabled={isLoading}\n />\n
      \n
      \n \n )}\n\n {isDraftMode && (\n \n handleEdit(email.publicId, e)}\n icon={}\n className=\"border-0\"\n disabled={isLoading}\n />\n \n )}\n\n {!isDraftMode && (\n \n openEmailPreview(email.publicId)}\n icon={}\n className=\"border-0\"\n disabled={isLoading}\n />\n \n )}\n\n {/* Only show delete button if in draft mode */}\n {isDraftMode && (\n \n openDeleteModal(email.publicId, e)}\n icon={}\n className=\"border-0\"\n disabled={isLoading}\n />\n \n )}\n
      \n
      \n \n \n ))}\n
      \n\n \n \n {emails.length > 0 && (\n }\n iconSide=\"right\"\n >\n Next\n \n )}\n \n \n\n setDeleteModalOpen(!deleteModalOpen)}\n onConfirm={handleDeleteConfirm}\n isLoading={isLoading}\n title=\"Delete Email Variant\"\n message=\"Are you sure you want to delete this email variant? This action cannot be undone.\"\n warningMessage=\"Deleting this email will remove it from your campaign permanently.\"\n />\n \n );\n};\n\nexport default EmailList;\n","import {\n Modal,\n ModalHeader,\n ModalBody,\n ListGroup,\n ListGroupItem,\n Spinner,\n} from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowRight, faLock } from '@fortawesome/free-solid-svg-icons';\nimport { useState } from 'react';\n\ninterface EmailActions {\n id: string;\n title: string;\n icon: any;\n description: string;\n enabled: boolean;\n}\n\ninterface EmailActionsModalProps {\n isOpen: boolean;\n toggle: () => void;\n emailActions: EmailActions[];\n handleEmailActionClick: (id: string) => void;\n}\n\nconst EmailActionsModal = ({\n isOpen,\n toggle,\n emailActions,\n handleEmailActionClick,\n}: EmailActionsModalProps) => {\n return (\n \n Choose an Email Action\n \n \n {emailActions.map(({ id, title, icon, description, enabled }) => (\n {\n if (enabled) {\n toggle();\n handleEmailActionClick(id);\n }\n }}\n style={{\n cursor: enabled ? 'pointer' : 'not-allowed',\n }}\n >\n
      \n \n
      \n
      {title}
      \n {description}\n
      \n
      \n \n \n ))}\n
      \n
      \n
      \n );\n};\n\nexport default EmailActionsModal;\n","// Updated EmailsTab component with preview mode functionality\n\nimport { useState } from 'react';\nimport { Col, Row, Button } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faPen,\n faClone,\n faMagic,\n faChevronLeft,\n faPlus,\n} from '@fortawesome/free-solid-svg-icons';\nimport EmailEditorModal from '../../../components/modal/EmailEditorModal';\nimport { useCampaigns } from '../../../../context/Campaign/Campaign.context';\nimport EmailActionsPanel from '../../../components/campaigns/tabs/EmailActionsPanel';\nimport EmailList from '../../../components/campaigns/tabs/EmailList';\nimport EmailActionsModal from '../../../components/modal/EmailActionsModal';\n\ninterface EmailsTabProps {\n goToPreviousTab: () => void;\n goToNextTab: () => void;\n}\n\nconst EmailsTab = ({ goToPreviousTab, goToNextTab }: EmailsTabProps) => {\n const [modalOpen, setModalOpen] = useState(false);\n const [actionsModalOpen, setActionsModalOpen] = useState(false);\n const [selectedEmailId, setSelectedEmailId] = useState(null);\n const [isEditing, setIsEditing] = useState(false);\n const [isPreviewMode, setIsPreviewMode] = useState(false);\n const [onlyRead, setOnlyRead] = useState(false);\n\n const { emails, selectedCampaignStatus } = useCampaigns();\n\n // Function to open modal in edit mode\n const toggleModal = (emailId: string | null) => {\n if (emailId) {\n setSelectedEmailId(emailId);\n setIsEditing(true);\n } else {\n setSelectedEmailId(null);\n setIsEditing(false);\n }\n setIsPreviewMode(false);\n setOnlyRead(false);\n setModalOpen(!modalOpen);\n };\n\n const openEmailPreview = (emailId: string) => {\n if (emailId) {\n setSelectedEmailId(emailId);\n setIsEditing(selectedCampaignStatus === 'Draft');\n setIsPreviewMode(true);\n setOnlyRead(selectedCampaignStatus !== 'Draft');\n setModalOpen(true);\n }\n };\n\n const toggleActionsModal = () => {\n setActionsModalOpen(!actionsModalOpen);\n };\n\n const emailActions = [\n {\n id: 'scratch',\n title: 'From Scratch',\n icon: faPen,\n description: 'Create a new email from scratch',\n enabled: true,\n },\n {\n id: 'template',\n title: 'Use a Template (Coming Soon)',\n icon: faClone,\n description: 'Choose from a pre-built template',\n enabled: false,\n },\n {\n id: 'ai',\n title: 'Start with AI (Coming Soon)',\n icon: faMagic,\n description: 'Let AI help craft your email content',\n enabled: false,\n },\n ];\n\n const handleEmailActionClick = (id: string): void => {\n if (!emailActions.find(action => action.id === id)?.enabled) {\n return;\n }\n setActionsModalOpen(false);\n setTimeout(() => {\n setSelectedEmailId(null);\n setIsEditing(false);\n setIsPreviewMode(false);\n setOnlyRead(false);\n setModalOpen(true);\n }, 50);\n };\n\n return (\n
      \n \n \n

      Email Variants

      \n

      \n The system will randomly select a variant when sending emails.\n

      \n \n \n Choose other lead list\n \n \n\n {/* Show \"Create Email\" Button */}\n {emails.length > 0 && (\n \n \n \n Add Variant\n \n \n )}\n
      \n\n {emails.length === 0 ? (\n \n ) : (\n \n )}\n\n {/* Modal to Create/Edit/Preview Email */}\n setModalOpen(!modalOpen)}\n emailId={selectedEmailId}\n isEditing={isEditing}\n isPreviewMode={isPreviewMode}\n onlyRead={onlyRead}\n />\n\n {/* Modal for Selecting Email Action */}\n \n
      \n );\n};\n\nexport default EmailsTab;\n","var _excluded = [\"className\", \"cssModule\", \"valid\", \"tooltip\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n valid: PropTypes.bool,\n tooltip: PropTypes.bool\n};\nfunction FormFeedback(props) {\n var className = props.className,\n cssModule = props.cssModule,\n _props$valid = props.valid,\n valid = _props$valid === void 0 ? undefined : _props$valid,\n tooltip = props.tooltip,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var validMode = tooltip ? 'tooltip' : 'feedback';\n var classes = mapToCssModules(classNames(className, valid ? \"valid-\".concat(validMode) : \"invalid-\".concat(validMode)), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nFormFeedback.propTypes = propTypes;\nexport default FormFeedback;","import React from 'react';\nimport { Card, CardBody, Input, FormFeedback, Row, Col } from 'reactstrap';\nimport { useCampaigns } from '../../../../context/Campaign/Campaign.context';\n\ninterface LimitsAndTimeGapProps {\n formData: {\n maxEmails: string;\n minDelay: string;\n };\n errors: {\n maxEmails?: string;\n minDelay?: string;\n };\n onInputChange: (field: string, value: string) => void;\n}\n\nconst LimitsAndTimeGap: React.FC = ({\n formData,\n errors,\n onInputChange,\n}) => {\n const { selectedCampaignStatus } = useCampaigns();\n return (\n \n \n {/* Daily Max Emails Section */}\n \n \n

      \n Daily Max Emails Sent Limit\n

      \n

      \n Maximum daily emails total number for this campaign.\n

      \n \n \n
      \n onInputChange('maxEmails', e.target.value)}\n className={`text-center px-1 ml-auto ${errors.maxEmails ? 'is-invalid' : ''}\n ${selectedCampaignStatus !== 'Draft' ? 'cursor-not-allowed' : ''}\n `}\n max={1000}\n min={1}\n style={{ width: '130px' }}\n disabled={selectedCampaignStatus !== 'Draft'}\n />\n {errors.maxEmails && (\n {errors.maxEmails}\n )}\n
      \n \n
      \n\n
      \n\n {/* Time Gap Section */}\n \n \n

      Time Gap Between Emails

      \n

      \n Time gap between emails for this campaign in minutes.\n

      \n \n \n {/* Linha para Minimum time */}\n
      \n
      \n Minimum time\n
      \n onInputChange('minDelay', e.target.value)}\n className={`text-center px-1 me-1 ${errors.minDelay ? 'is-invalid' : ''}\n ${selectedCampaignStatus !== 'Draft' ? 'cursor-not-allowed' : ''}\n `}\n style={{ width: '60px' }}\n min={1}\n max={10}\n disabled={selectedCampaignStatus !== 'Draft'}\n />\n \n minutes\n \n
      \n
      \n {/* Erro do Minimum time logo abaixo do campo */}\n {errors.minDelay && (\n
      \n {errors.minDelay}\n
      \n )}\n
      \n\n {/*
      \n
      \n Random additional time\n
      \n \n onInputChange('randomTimeGap', e.target.value)\n }\n className={`text-center px-1 me-1 ${errors.randomTimeGap ? 'is-invalid' : ''}`}\n style={{ width: '60px' }}\n min={1}\n />\n \n minutes\n \n
      \n
      \n {errors.randomTimeGap && (\n
      \n {errors.randomTimeGap}\n
      \n )}\n
      */}\n \n
      \n
      \n
      \n );\n};\n\nexport default LimitsAndTimeGap;\n","// AccountSelection.tsx\nimport { faChevronDown } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useEffect, useState } from 'react';\nimport {\n Card,\n CardBody,\n Input,\n Dropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n Row,\n Col,\n Spinner,\n} from 'reactstrap';\nimport { useCampaigns } from '../../../../context/Campaign/Campaign.context';\nimport { useNotification } from '../../../../context/NotificationContext/useNotification';\nimport { APIGetEmailAccounts } from '../../../../services/api/api.campaigns';\n// Interfaces\n\ninterface AccountSelectionProps {\n selectedEmail: string;\n error?: string;\n onSelectAccount: (email: string) => void;\n}\n\nconst AccountSelection: React.FC = ({\n selectedEmail,\n error,\n onSelectAccount,\n}) => {\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n const [availableAccounts, setAvailableAccounts] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const toggleDropdown = () => setDropdownOpen(!dropdownOpen);\n const { handleAPIError } = useNotification();\n const { selectedCampaignStatus } = useCampaigns();\n\n useEffect(() => {\n const fetchEmailAccounts = async () => {\n try {\n setLoading(true);\n const accountsData = await APIGetEmailAccounts();\n\n if (accountsData && accountsData.length > 0) {\n setAvailableAccounts(accountsData);\n } else {\n setAvailableAccounts([]);\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setLoading(false);\n }\n };\n\n fetchEmailAccounts();\n }, [handleAPIError]);\n\n const filteredAccounts = availableAccounts.filter(account =>\n account.toLowerCase().includes(searchTerm.toLowerCase()),\n );\n\n return (\n \n \n \n \n

      Account To Use

      \n

      \n Select an account to send emails from\n

      \n \n\n \n \n \n
      \n \n {selectedEmail ? `${selectedEmail}` : 'Select an account'}\n \n \n
      \n \n \n
      \n setSearchTerm(e.target.value)}\n />\n
      \n
      \n {loading ? (\n
      \n \n Loading accounts...\n
      \n ) : filteredAccounts.length > 0 ? (\n filteredAccounts.map(account => (\n {\n onSelectAccount(account);\n setDropdownOpen(false);\n }}\n className=\"px-3 py-2\"\n active={selectedEmail === account}\n >\n
      \n {account}\n
      \n \n ))\n ) : (\n
      \n {searchTerm\n ? 'No accounts match your search'\n : 'No email accounts available'}\n
      \n )}\n
      \n
      \n \n {error &&
      {error}
      }\n {availableAccounts.length === 0 && !loading && (\n
      \n No email accounts connected. Please connect an account in\n Settings.\n
      \n )}\n \n
      \n
      \n
      \n );\n};\n\nexport default AccountSelection;\n","import React, { useEffect, useState } from 'react';\nimport { Modal, ModalBody, Progress } from 'reactstrap';\nimport Lottie from 'lottie-react';\nimport LoadingMessages from '../../../components/alerts/LoadingMessages';\nimport animationData from '../../../assets/animations/rocket_launch.anim.json';\nimport animationError from '../../../assets/animations/error.anim.json';\nimport animationSuccess from '../../../assets/animations/success.anim.json';\n\ninterface LaunchCampaignModalProps {\n isOpen: boolean;\n onClose: () => void;\n isSuccess: boolean;\n isError: boolean;\n errorMessage?: string;\n}\n\nconst launchMessages = [\n 'Preparing launch sequence... Checking configurations',\n 'Validating campaign settings... All systems go',\n 'Setting up email sequences... Organizing data',\n 'Connecting to email services... Establishing secure connection',\n 'Configuring time gaps and limits... Optimizing delivery',\n 'Preparing audience targeting... Tailoring your campaign',\n 'Checking email templates... Ensuring everything looks perfect',\n 'Initializing campaign launch... Starting countdown',\n 'Finalizing setup... Almost ready for takeoff',\n 'Campaign ready for launch! 3... 2... 1... Liftoff!',\n];\n\n// Simplified to just one error message\nconst errorMessage = 'Unable to launch campaign. Please try again.';\n\nconst LaunchCampaignModal: React.FC = ({\n isOpen,\n onClose,\n isSuccess,\n isError,\n errorMessage: customErrorMessage,\n}) => {\n const [progress, setProgress] = useState(0);\n const [animationComplete, setAnimationComplete] = useState(false);\n\n // Simulate progress\n useEffect(() => {\n if (isOpen && !animationComplete) {\n let currentProgress = 0;\n const interval = setInterval(() => {\n currentProgress += Math.random() * 5 + 3;\n if (isSuccess) {\n setProgress(100);\n setAnimationComplete(true);\n clearInterval(interval);\n } else {\n setProgress(Math.min(currentProgress, 95));\n }\n }, 800);\n\n return () => clearInterval(interval);\n }\n }, [isOpen, isSuccess]);\n\n // Handle error state\n useEffect(() => {\n if (isError) {\n setAnimationComplete(true);\n }\n }, [isError]);\n\n return (\n \n \n
      \n {/* Lottie Animation */}\n {isError ? (\n \n ) : isSuccess ? (\n \n ) : (\n \n )}\n\n {/* Loading Bar */}\n
      \n \n
      \n\n {/* Loading Messages - Only shown during loading, not for errors */}\n {!isError && !isSuccess && (\n \n )}\n\n {/* Single Error Message */}\n {isError && (\n
      \n

      {customErrorMessage || errorMessage}

      \n
      \n )}\n\n {/* Success Message */}\n {isSuccess && (\n
      \n

      Campaign launched successfully!

      \n
      \n )}\n\n {(isSuccess || isError) && (\n \n )}\n
      \n
      \n \n );\n};\n\nexport default LaunchCampaignModal;\n","import React from 'react';\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faRocket,\n faTimes,\n faExclamationTriangle,\n} from '@fortawesome/free-solid-svg-icons';\nimport { Button } from '../../../components/Component';\n\ninterface ConfirmationModalProps {\n isOpen: boolean;\n onClose: () => void;\n onConfirm: () => void;\n isLoading: boolean;\n}\n\nconst ConfirmationModal: React.FC = ({\n isOpen,\n onClose,\n onConfirm,\n isLoading,\n}) => {\n return (\n \n \n
      \n \n Confirm Campaign Launch\n
      \n
      \n\n {/* Modal Body */}\n \n
      \n Are you sure you want to launch this campaign?\n
      \n\n

      \n After launching, campaign settings cannot be modified.\n

      \n
      \n\n {/* Modal Footer */}\n \n }\n >\n Cancel\n \n }\n >\n {isLoading ? 'Launching...' : 'Launch Campaign'}\n \n \n
      \n );\n};\n\nexport default ConfirmationModal;\n","import React, { useEffect, useState } from 'react';\nimport { Form, Row, Col } from 'reactstrap';\nimport { z } from 'zod';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faChevronLeft,\n faRocket,\n faSave,\n faPlayCircle,\n} from '@fortawesome/free-solid-svg-icons';\nimport { Button } from '../../../../components/Component';\nimport LimitsAndTimeGap from '../../../components/campaigns/tabs/LimitsAndTimeGap';\n\nimport {\n APIUpdateCampaignSettings,\n APILaunchCampaign,\n APIGetCampaignById,\n} from '../../../../services/api/api.campaigns';\nimport { useCampaigns } from '../../../../context/Campaign/Campaign.context';\nimport { useNotification } from '../../../../context/NotificationContext/useNotification';\nimport AccountSelection from '../../../components/campaigns/tabs/AccountSelection';\nimport LaunchCampaignModal from '../../../components/modal/LaunchCampaignModal';\nimport ConfirmationModal from '../../../components/modal/ConfirmLauchModal';\ninterface ConfigurationsTabProps {\n goToPreviousTab: () => void;\n handleLaunch: () => void;\n}\n\n// Zod schema for form validation\nconst campaignSchema = z.object({\n selectedEmail: z.string().min(1, { message: 'An email must be selected' }),\n maxEmails: z\n .number()\n .min(1, { message: 'Daily max emails cannot be zero' })\n .max(1000, { message: 'Daily max emails cannot exceed 1000' }),\n minDelay: z\n .number()\n .min(1, { message: 'Minimum time gap cannot be less than 1' })\n .max(10, { message: 'Minimum time gap cannot exceed 10' }),\n});\n\nconst ConfigurationsTab: React.FC = ({\n goToPreviousTab,\n handleLaunch,\n}) => {\n const {\n selectedCampaignId,\n setSelectedCampaign,\n settings,\n selectedCampaign,\n selectedCampaignStatus,\n } = useCampaigns();\n const { createNotification, handleAPIError } = useNotification();\n const [isLoading, setIsLoading] = useState(false);\n\n // Check if campaign is in draft mode\n const isDraftMode =\n !selectedCampaignStatus || selectedCampaignStatus === 'Draft';\n\n // Launch modal state\n const [showLaunchModal, setShowLaunchModal] = useState(false);\n const [launchStatus, setLaunchStatus] = useState({\n isSuccess: false,\n isError: false,\n errorMessage: '',\n });\n\n // Confirmation modal state - Novo estado\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n\n const [initialFormData, setInitialFormData] = useState<{\n selectedEmail: string;\n maxEmails: string;\n minDelay: string;\n }>({\n selectedEmail: '',\n maxEmails: '100',\n minDelay: '3',\n });\n\n const [formData, setFormData] = useState<{\n selectedEmail: string;\n maxEmails: string;\n minDelay: string;\n }>(initialFormData);\n\n const [errors, setErrors] = useState<{\n selectedEmail?: string;\n maxEmails?: string;\n minDelay?: string;\n }>({});\n\n // Check if form has changes\n const hasFormChanges = () => {\n return (\n initialFormData.selectedEmail !== formData.selectedEmail ||\n initialFormData.maxEmails !== formData.maxEmails ||\n initialFormData.minDelay !== formData.minDelay\n );\n };\n\n useEffect(() => {\n if (settings) {\n const updatedInitialData = {\n selectedEmail: settings.selectedEmail,\n maxEmails: settings.maxEmails.toString(),\n minDelay: settings.minDelay.toString(),\n };\n\n setInitialFormData(updatedInitialData);\n setFormData(updatedInitialData);\n }\n }, [settings]);\n\n const selectAccount = (account: string) => {\n setFormData({\n ...formData,\n selectedEmail: account,\n });\n\n if (errors.selectedEmail) {\n setErrors({\n ...errors,\n selectedEmail: undefined,\n });\n }\n };\n\n const handleUpdateCampaignSettings = async () => {\n if (!selectedCampaignId) return;\n try {\n setIsLoading(true);\n\n if (validateForm()) {\n const campaignSettings = {\n selectedEmail: formData.selectedEmail,\n maxEmails: parseInt(formData.maxEmails),\n minDelay: parseInt(formData.minDelay),\n };\n\n const response = await APIUpdateCampaignSettings(\n selectedCampaignId,\n campaignSettings,\n );\n setSelectedCampaign(response);\n createNotification('success', 'Campaign settings updated successfully');\n\n // Update initial form data after successful save\n setInitialFormData(formData);\n }\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n };\n\n // Handle input changes\n const handleInputChange = (field: string, value: string) => {\n if (field === 'maxEmails') {\n const numValue = parseInt(value);\n if (!isNaN(numValue) && numValue > 1000) {\n value = '1000';\n }\n }\n if (field === 'minDelay') {\n const numValue = parseInt(value);\n if (!isNaN(numValue) && numValue > 10) {\n value = '10';\n }\n }\n\n setFormData({\n ...formData,\n [field]: value,\n });\n };\n\n // Validate form\n const validateForm = (): boolean => {\n try {\n if (!formData.selectedEmail) {\n throw new z.ZodError([\n {\n code: 'custom',\n path: ['selectedEmail'],\n message: 'An account must be selected',\n },\n ]);\n }\n\n campaignSchema.parse({\n selectedEmail: formData.selectedEmail,\n maxEmails: parseInt(formData.maxEmails),\n minDelay: parseInt(formData.minDelay),\n });\n setErrors({});\n return true;\n } catch (error) {\n if (error instanceof z.ZodError) {\n const newErrors: any = {};\n error.errors.forEach(err => {\n const path = err.path[0];\n newErrors[path] = err.message;\n });\n setErrors(newErrors);\n }\n return false;\n }\n };\n\n // Iniciar o fluxo de lançamento da campanha (mostrar modal de confirmação)\n const startCampaignLaunch = () => {\n if (!selectedCampaignId) return;\n\n // Validar formulário\n if (!validateForm()) {\n createNotification('danger', 'Please fill in all required fields');\n return;\n }\n\n // Salvar alterações pendentes antes de mostrar o modal de confirmação\n if (hasFormChanges()) {\n handleUpdateCampaignSettings().then(() => {\n // Mostrar modal de confirmação após salvar\n setShowConfirmationModal(true);\n });\n } else {\n // Mostrar modal de confirmação imediatamente se não houver alterações\n setShowConfirmationModal(true);\n }\n };\n\n // Handle launch campaign - chamado após confirmação\n const launchCampaign = async () => {\n if (!selectedCampaignId) return;\n\n // Fechar modal de confirmação\n setShowConfirmationModal(false);\n\n // Mostrar modal de lançamento\n setShowLaunchModal(true);\n setLaunchStatus({\n isSuccess: false,\n isError: false,\n errorMessage: '',\n });\n\n try {\n setIsLoading(true);\n const minAnimationTime = 2000;\n const startTime = Date.now();\n\n await APILaunchCampaign(selectedCampaignId);\n const campaignData = await APIGetCampaignById(selectedCampaignId);\n setSelectedCampaign(campaignData);\n\n const elapsedTime = Date.now() - startTime;\n const remainingTime = Math.max(0, minAnimationTime - elapsedTime);\n\n setTimeout(() => {\n setLaunchStatus({\n isSuccess: true,\n isError: false,\n errorMessage: '',\n });\n }, remainingTime);\n\n createNotification('success', 'Campaign launched successfully');\n } catch (error: any) {\n setTimeout(() => {\n setLaunchStatus({\n isSuccess: false,\n isError: true,\n errorMessage:\n error.message || 'Failed to launch campaign. Please try again.',\n });\n handleAPIError(error, error.message);\n }, 2000);\n } finally {\n setIsLoading(false);\n }\n };\n\n // Handle modal close\n const handleModalClose = () => {\n setShowLaunchModal(false);\n\n if (launchStatus.isSuccess) {\n handleLaunch();\n }\n };\n\n // Handle confirmation modal close\n const handleConfirmationModalClose = () => {\n setShowConfirmationModal(false);\n };\n\n // Handle form submission\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (validateForm()) {\n startCampaignLaunch();\n } else {\n console.log('Form has validation errors');\n }\n };\n\n return (\n
      \n {/* Confirmation Modal - Novo modal */}\n \n\n {/* Launch Campaign Modal - Modal existente */}\n \n\n \n \n

      \n Email Campaign Configuration\n

      \n

      \n Configure your email campaign settings including accounts, limits,\n and timing.\n

      \n \n Back to emails\n \n \n
      \n\n
      \n \n \n {/* Account Selection Component */}\n \n \n\n \n {/* Limits and Time Gap Component */}\n \n \n \n\n {/* Launch Campaign Button */}\n
      \n {hasFormChanges() && (\n }\n onClick={handleUpdateCampaignSettings}\n disabled={isLoading}\n >\n Save\n \n )}\n\n }\n disabled={\n isLoading ||\n showLaunchModal ||\n !isDraftMode ||\n !formData.selectedEmail\n }\n onClick={startCampaignLaunch} // Alterado para iniciar o fluxo de lançamento\n >\n {isDraftMode ? 'Start Campaign' : 'Campaign in Progress'}\n \n
      \n
      \n
      \n );\n};\n\nexport default ConfigurationsTab;\n","import React, { useEffect, useState } from 'react';\nimport { useNavigate, useParams, useSearchParams } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faChartLine,\n faUsers,\n faCogs,\n faEnvelopesBulk,\n faChevronRight,\n} from '@fortawesome/free-solid-svg-icons';\nimport Head from '../../../layout/head/Head';\nimport { Block } from '../../../components/Component';\nimport AnalyticsTab from './CampaignsDetailsTabs/AnalyticsTab';\nimport LeadsTab from './CampaignsDetailsTabs/LeadsTab';\nimport EmailsTab from './CampaignsDetailsTabs/EmailsTab';\nimport { useCampaigns } from '../../../context/Campaign/Campaign.context';\nimport ConfigurationsTab from './CampaignsDetailsTabs/ConfigurationsTab';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport { APIGetCampaignById } from '../../../services/api/api.campaigns';\n\nconst CampaignDetailsPage = () => {\n const { id } = useParams();\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n const { setSelectedCampaign, selectedCampaign, selectedCampaignId } =\n useCampaigns();\n const { createNotification, handleAPIError } = useNotification();\n const [isLoading, setIsLoading] = useState(true);\n\n const getDefaultTab = () => {\n const tabFromUrl = searchParams.get('tab');\n if (tabFromUrl) {\n if (tabFromUrl === 'analytics' && selectedCampaign?.status === 'Draft') {\n return 'leads';\n }\n return tabFromUrl;\n }\n return selectedCampaign?.status === 'Draft' ? 'leads' : 'analytics';\n };\n\n const defaultTab = getDefaultTab();\n const [activeTab, setActiveTab] = useState(defaultTab);\n\n const handleTabClick = (path: string) => {\n if (path === 'analytics' && selectedCampaign?.status === 'Draft') {\n setActiveTab('leads');\n setSearchParams({ tab: 'leads' });\n return;\n }\n\n setActiveTab(path);\n setSearchParams({ tab: path });\n };\n\n useEffect(() => {\n const fetchCampaignById = async () => {\n if (id && (!selectedCampaign || selectedCampaignId !== id)) {\n try {\n setIsLoading(true);\n const campaignData = await APIGetCampaignById(id);\n setSelectedCampaign(campaignData);\n console.log('Campaign Data:', campaignData);\n } catch (error: any) {\n handleAPIError(error, error.message);\n } finally {\n setIsLoading(false);\n }\n } else {\n setIsLoading(false);\n }\n };\n\n fetchCampaignById();\n }, [id]);\n\n useEffect(() => {\n // Verify if the tab from URL is valid based on campaign status\n const tabFromUrl = searchParams.get('tab');\n\n // If trying to access analytics with Draft status, redirect to leads\n if (tabFromUrl === 'analytics' && selectedCampaign?.status === 'Draft') {\n setSearchParams({ tab: 'leads' });\n setActiveTab('leads');\n } else if (tabFromUrl) {\n setActiveTab(tabFromUrl);\n }\n }, [searchParams, selectedCampaign]);\n\n useEffect(() => {\n if (selectedCampaign && !isLoading) {\n if (selectedCampaign.status === 'Draft' && activeTab === 'analytics') {\n setSearchParams({ tab: 'leads' });\n setActiveTab('leads');\n }\n }\n }, [selectedCampaign, isLoading]);\n\n const menuTabs = [\n {\n id: 'analytics',\n name: 'Analytics',\n icon: faChartLine,\n path: 'analytics',\n element: ,\n isActive: activeTab === 'analytics',\n isShow: selectedCampaign?.status !== 'Draft',\n },\n {\n id: 'leads',\n name: 'Leads',\n icon: faUsers,\n path: 'leads',\n element: handleTabClick('emails')} />,\n isActive: activeTab === 'leads',\n isShow: true,\n },\n {\n id: 'emails',\n name: 'Emails',\n icon: faEnvelopesBulk,\n path: 'emails',\n element: (\n handleTabClick('leads')}\n goToNextTab={() => handleTabClick('configurations')}\n />\n ),\n isActive: activeTab === 'emails',\n disabled: false,\n isShow: true,\n },\n {\n id: 'configurations',\n name: 'Configurations',\n icon: faCogs,\n path: 'configurations',\n element: (\n handleTabClick('emails')}\n handleLaunch={() => handleTabClick('analytics')}\n />\n ),\n isActive: activeTab === 'configurations',\n isShow: true,\n },\n ];\n\n const renderContent = () => {\n return (\n menuTabs.find(tab => tab.path === activeTab)?.element || (\n

      Content Not Found

      \n )\n );\n };\n\n return (\n <>\n \n
      \n {/* Breadcrumb Navigation */}\n
      \n navigate('/campaigns')}\n >\n Campaigns\n \n \n \n {selectedCampaign?.name || 'Campaign'}\n \n
      \n\n {/* Navigation Tabs */}\n
        \n {menuTabs.map(\n ({ id, name, icon, path, disabled, isShow }) =>\n isShow && (\n
      • \n handleTabClick(path)}\n disabled={disabled}\n style={{ cursor: disabled ? 'not-allowed' : 'pointer' }}\n >\n \n {name}\n \n
      • \n ),\n )}\n
      \n\n {/* Content Block */}\n \n
      {renderContent()}
      \n
      \n
      \n \n );\n};\n\nexport default CampaignDetailsPage;\n","import React, { useState, useEffect } from 'react';\nimport { v4 as uuid } from 'uuid';\nimport socket from '../../../services/api/socket';\n/**\n * Exemplo de leitura dos parâmetros de URL.\n * Em projetos com React puro, sem Next.js ou React Router,\n * podemos usar `window.location` diretamente ou bibliotecas como 'query-string'.\n */\nfunction getQueryParam(key: string) {\n return new URLSearchParams(window.location.search).get(key);\n}\n\nconst userId = uuid();\n\nconst Chatbot: React.FC = () => {\n // Pegando parâmetros da URL\n const candidateParam = getQueryParam('candidateId');\n const campaignParam = getQueryParam('campaignId');\n\n // Parâmetros de personalização do cabeçalho e layout\n const [logoUrl, setLogoUrl] = useState(\n 'https://cdn.prod.website-files.com/6710df5cee829446dfd47b9c/6710e9dcebc9d3693700ff89_gateway%20Main%20Logo%20(1).png'\n );\n const [companyName, setCompanyName] = useState('Gateway Work');\n const [colorPrimary, setColorPrimary] = useState('#0000FF');\n const [textColor, setTextColor] = useState('#000');\n const [colorSecondary, setColorSecondary] = useState('#FFF');\n\n // Se não tiver candidateId na URL, gera um uuid local (fallback)\n const candidateId = candidateParam || userId;\n // Se não tiver campaignId na URL, usamos um ID fixo como fallback\n const campaignId = campaignParam || '0ffee2f2-1344-46e4-ae0f-d9377296a3f6';\n\n /**\n * O estado de mensagens, conforme o formato original.\n */\n const [messages, setMessages] = useState<\n {\n role: 'user' | 'assistant';\n answer: string;\n completed: boolean;\n acceptedLastAnswer: boolean;\n options?: string[];\n }[]\n >([]);\n\n /**\n * Input do usuário\n */\n const [input, setInput] = useState('');\n\n /**\n * Efeito para configurar o socket e seus eventos\n */\n useEffect(() => {\n console.log('Connecting to WebSocket...');\n\n socket.on('connect', () => {\n console.log('Connected to WebSocket, emitting chatMessageConnect...');\n socket.emit('chatMessageConnect', { candidateId, campaignId });\n });\n\n socket.on('connect_error', (error) =>\n console.error('WebSocket connection error:', error)\n );\n\n socket.on('chatResponse', (data: {\n content: {\n acceptedLastAnswer: boolean;\n answer: string;\n completed: boolean;\n options?: string[];\n };\n }) => {\n console.log('Chat response data:', data);\n setMessages((prev) => [...prev, { role: 'assistant', ...data.content }]);\n });\n\n return () => {\n socket.off('chatResponse');\n };\n }, [candidateId, campaignId]);\n\n /**\n * Checamos se o chat está finalizado (última mensagem indica `completed`)\n */\n const isChatCompleted =\n messages.length > 0 && messages[messages.length - 1].completed;\n\n /**\n * Verifica se a última mensagem possui opções\n */\n const lastMessageIndex = messages.length - 1;\n const lastMessage = messages[lastMessageIndex];\n const hasOptions = lastMessage?.options && lastMessage.options.length > 0;\n\n /**\n * Função para enviar mensagem ao socket\n */\n const sendMessage = (message?: string) => {\n const content = message || input.trim();\n if (!content || isChatCompleted) return;\n\n setMessages((prev) => {\n const updatedMessages = [\n ...prev,\n {\n role: 'user' as 'user',\n answer: content,\n completed: false,\n acceptedLastAnswer: false,\n },\n ];\n\n // Se a última mensagem tinha opções, removemos para evitar \"repetir\" opções\n if (hasOptions) {\n updatedMessages[lastMessageIndex] = {\n ...lastMessage,\n options: [],\n };\n }\n\n return updatedMessages;\n });\n\n socket.emit('chatMessage', { candidateId, campaignId, content });\n setInput('');\n };\n\n return (\n
      \n {/* Topo com logo, nome da empresa e texto de parceria */}\n \n \n
      \n {/*

      {companyName}

      */}\n

      \n {companyName} has a partnership with Vitae.ai to maintain its database updated data.\n

      \n
      \n \n\n {/* Container principal do chat, com largura e altura ajustáveis para responsividade */}\n
      \n {/* Área que exibe as mensagens, com rolagem vertical */}\n
      \n {messages.map((msg, index) => (\n \n \n {msg.answer}\n
      \n {/* Botões de opções (se existirem) */}\n {msg.options && msg.options.length > 0 && (\n
      \n {msg.options.map((option, idx) => (\n sendMessage(option)}\n >\n {option}\n \n ))}\n
      \n )}\n
      \n ))}\n
      \n\n {/* Input e botão de envio */}\n
      \n setInput(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && sendMessage()}\n disabled={isChatCompleted || hasOptions}\n />\n sendMessage()}\n disabled={isChatCompleted || !input.trim() || hasOptions}\n >\n {isChatCompleted ? 'Perfil concluído' : 'Enviar'}\n \n
      \n \n \n );\n};\n\nexport default Chatbot;","var _excluded = [\"className\", \"cssModule\", \"tabs\", \"pills\", \"vertical\", \"horizontal\", \"justified\", \"fill\", \"navbar\", \"card\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Adding card prop adds `.card-header-tabs` or `.card-header-pills` class */\n card: PropTypes.bool,\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** fills the nav to extend to full available width */\n fill: PropTypes.bool,\n /** Change the horizontal alignment of your nav */\n horizontal: PropTypes.oneOf(['center', 'end']),\n /** All horizontal space will be occupied by nav links, but unlike the `fill` above, every nav item will be the same width. */\n justified: PropTypes.bool,\n /** Add navbar for a full-height and lightweight navigation */\n navbar: PropTypes.bool,\n /** Make NavItems look like pills */\n pills: PropTypes.bool,\n /** Make NavItems look like tabs */\n tabs: PropTypes.bool,\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Stack your navigation by changing the flex item direction */\n vertical: PropTypes.oneOfType([PropTypes.bool, PropTypes.string])\n};\nvar getVerticalClass = function getVerticalClass(vertical) {\n if (vertical === false) {\n return false;\n }\n if (vertical === true || vertical === 'xs') {\n return 'flex-column';\n }\n return \"flex-\".concat(vertical, \"-column\");\n};\nfunction Nav(props) {\n var className = props.className,\n cssModule = props.cssModule,\n tabs = props.tabs,\n pills = props.pills,\n _props$vertical = props.vertical,\n vertical = _props$vertical === void 0 ? false : _props$vertical,\n horizontal = props.horizontal,\n justified = props.justified,\n fill = props.fill,\n navbar = props.navbar,\n card = props.card,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'ul' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, navbar ? 'navbar-nav' : 'nav', horizontal ? \"justify-content-\".concat(horizontal) : false, getVerticalClass(vertical), {\n 'nav-tabs': tabs,\n 'card-header-tabs': card && tabs,\n 'nav-pills': pills,\n 'card-header-pills': card && pills,\n 'nav-justified': justified,\n 'nav-fill': fill\n }), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nNav.propTypes = propTypes;\nexport default Nav;","var _excluded = [\"className\", \"cssModule\", \"active\", \"tag\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add active class to element */\n active: PropTypes.bool,\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nfunction NavItem(props) {\n var className = props.className,\n cssModule = props.cssModule,\n active = props.active,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'li' : _props$tag,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'nav-item', active ? 'active' : false), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nNavItem.propTypes = propTypes;\nexport default NavItem;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"className\", \"cssModule\", \"active\", \"tag\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n /** Add active class to NavLink */\n active: PropTypes.bool,\n /** Add custom class */\n className: PropTypes.string,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n /** Disable the link */\n disabled: PropTypes.bool,\n href: PropTypes.any,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n /** Function to be triggered on click */\n onClick: PropTypes.func,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nvar NavLink = /*#__PURE__*/function (_React$Component) {\n _inherits(NavLink, _React$Component);\n var _super = _createSuper(NavLink);\n function NavLink(props) {\n var _this;\n _classCallCheck(this, NavLink);\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(NavLink, [{\n key: \"onClick\",\n value: function onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n if (this.props.href === '#') {\n e.preventDefault();\n }\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n active = _this$props.active,\n _this$props$tag = _this$props.tag,\n Tag = _this$props$tag === void 0 ? 'a' : _this$props$tag,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutProperties(_this$props, _excluded);\n var classes = mapToCssModules(classNames(className, 'nav-link', {\n disabled: attributes.disabled,\n active: active\n }), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n onClick: this.onClick,\n className: classes\n }));\n }\n }]);\n return NavLink;\n}(React.Component);\nNavLink.propTypes = propTypes;\nexport default NavLink;","import React, { useEffect } from 'react';\nimport { Button, Nav, NavItem, NavLink } from 'reactstrap';\nimport { Icon } from '../../../../../components/Component';\nimport { useSearchParams } from 'react-router-dom';\n\ninterface UserTabsProps {\n sideBar: boolean;\n toggle: () => void;\n activeTab: string;\n onTabChange: (tab: string) => void;\n}\n\nconst UserTabs: React.FC = ({\n sideBar,\n toggle,\n activeTab,\n onTabChange,\n}) => {\n const [searchParams, setSearchParams] = useSearchParams();\n\n const tabs = [\n {\n id: 'experience',\n icon: 'briefcase',\n text: 'Professional Experience',\n isActive: activeTab === 'experience',\n isShow: true,\n },\n {\n id: 'basic',\n icon: 'user-circle',\n text: 'Basic Information',\n isActive: activeTab === 'basic',\n isShow: true,\n },\n {\n id: 'education',\n icon: 'book',\n text: 'Education & Certifications',\n isActive: activeTab === 'education',\n isShow: true,\n },\n {\n id: 'skills',\n icon: 'check-circle',\n text: 'Skills & Recommendations',\n isActive: activeTab === 'skills',\n isShow: true,\n },\n {\n id: 'company',\n icon: 'building',\n text: 'Company',\n isActive: activeTab === 'company',\n isShow: true,\n },\n {\n id: 'notes',\n icon: 'file-text',\n text: 'Notes & Interactions',\n isActive: activeTab === 'notes',\n isShow: true,\n },\n ];\n\n useEffect(() => {\n const tabFromUrl = searchParams.get('tab');\n if (\n tabFromUrl &&\n tabs.some(tab => tab.id === tabFromUrl) &&\n tabFromUrl !== activeTab\n ) {\n onTabChange(tabFromUrl);\n }\n }, []);\n\n const handleTabClick = (tabId: string) => {\n const newParams = new URLSearchParams(searchParams);\n newParams.set('tab', tabId);\n setSearchParams(newParams);\n\n onTabChange(tabId);\n };\n\n return (\n \n );\n};\n\nexport default UserTabs;\n","import { faLinkedinIn } from '@fortawesome/free-brands-svg-icons';\nimport {\n faEnvelope,\n faFileDownload,\n faStar,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React from 'react';\nimport { useNavigate } from 'react-router';\nimport { Row, Col } from 'reactstrap';\nimport {\n Button,\n OverlineTitle,\n Sidebar,\n TooltipComponent,\n UserAvatar,\n} from '../../../../components/Component';\nimport { Contact } from '../../../../types/contact.types';\nimport { findUpper, getDateStructured } from '../../../../utils/Utils';\n\ninterface UserSidebarProps {\n toggleState: boolean;\n contact: Contact;\n toggle: () => void;\n}\n\nconst UserSidebar: React.FC = ({ toggleState, contact }) => {\n const navigate = useNavigate();\n return (\n \n {/* User Card */}\n
      \n
      \n \n
      \n
      {contact.fullName || 'Not specified'}
      \n \n {contact.managementLevel || 'Position'} |{' '}\n {contact.department || 'Department'}\n \n \n {contact.email || 'No email available'}\n \n
      \n
      \n
      \n\n {/* Action Buttons */}\n
      \n
        \n
      • \n \n {\n ev.preventDefault();\n }}\n disabled={!contact.email}\n title=\"Send Email\"\n size=\"icon\"\n icon={}\n />\n
      • \n
      • \n \n {\n ev.preventDefault();\n window.open(contact.websitesLinkedin, '_blank');\n }}\n disabled={!contact.websitesLinkedin}\n title=\"View LinkedIn Profile\"\n size=\"icon\"\n icon={}\n outline\n />\n
      • \n
      • \n \n {\n ev.preventDefault();\n // Would trigger profile download/export in a real app\n }}\n title=\"Download Contact Info\"\n size=\"icon\"\n icon={}\n outline\n />\n
      • \n
      • \n \n {\n ev.preventDefault();\n // Would bookmark/save contact in a real app\n }}\n title=\"Add to List\"\n size=\"icon\"\n icon={}\n outline\n />\n
      • \n
      \n
      \n\n {/* Profile Stats */}\n
      \n
      LinkedIn Stats
      \n \n \n
      \n \n {(contact.connectionsCount || 0).toLocaleString()}\n \n Connections\n
      \n \n \n
      \n \n {(contact.followerCount || 0).toLocaleString()}\n \n Followers\n
      \n \n
      \n
      \n\n {/* Experience Stats */}\n
      \n
      Experience Stats
      \n \n \n
      \n \n {contact.totalExperienceDurationMonths || 0}\n \n Months Exp.\n
      \n \n \n
      \n {contact.experience?.length || 0}\n Positions\n
      \n \n \n
      \n \n {contact.recommendations?.length || 0}\n \n Recommendations\n
      \n \n
      \n
      \n\n {/* Additional Info */}\n
      \n
      Contact Details
      \n \n \n ID:\n {contact._id || 'N/A'}\n \n \n Location:\n {contact.locationRawAddress || 'Not specified'}\n \n \n Last Updated:\n \n {contact.lastUpdated\n ? getDateStructured(contact.lastUpdated)\n : 'Not available'}\n \n \n \n
      \n\n {/* Skills Summary */}\n
      \n \n Top Skills\n \n
        \n {(contact.skills || []).slice(0, 5).map((skill, index) => (\n
      • \n {\n ev.preventDefault();\n }}\n >\n {skill}\n \n
      • \n ))}\n {(contact.skills || []).length > 5 && (\n
      • \n {\n ev.preventDefault();\n navigate('#skills');\n }}\n >\n +{(contact.skills || []).length - 5} more\n \n
      • \n )}\n
      \n
      \n
      \n );\n};\n\nexport default UserSidebar;\n","import React from 'react';\nimport { Row, Col, Card, CardBody } from 'reactstrap';\nimport { Contact } from '../../../../../types/contact.types';\nimport {\n Block,\n BlockHead,\n BlockTitle,\n UserAvatar,\n} from '../../../../../components/Component';\nimport { findUpper, getDateStructured } from '../../../../../utils/Utils';\n\ninterface BasicInfoTabProps {\n contact: Contact;\n}\n\nconst BasicInfoTab: React.FC = ({ contact }) => {\n return (\n
      \n {/* Profile Summary Section */}\n \n \n
      \n
      \n \n
      \n
      \n

      {contact.fullName || 'Not specified'}

      \n

      \n {contact.jobTitle || 'No job title'}\n

      \n

      {contact.headline || 'No headline'}

      \n

      {contact.description || 'No description'}

      \n
      \n
      \n
      \n
      \n\n {/* Personal Information Section */}\n \n \n Personal Information\n \n
      \n \n \n
      \n Full Name\n \n {contact.fullName || 'Not specified'}\n \n
      \n \n \n
      \n Email\n \n {contact.email || 'Not available'}\n \n
      \n \n \n
      \n Current Position\n \n {contact.jobTitle || 'Not specified'}\n \n
      \n \n \n
      \n Company\n \n {contact.company?.name || 'Not specified'}\n \n
      \n \n \n
      \n Location\n \n {contact.locationRawAddress || 'Not specified'}\n \n
      \n \n \n
      \n LinkedIn\n \n {contact.websitesLinkedin ? (\n \n View Profile\n \n ) : (\n 'Not available'\n )}\n \n
      \n \n
      \n
      \n
      \n
      \n\n \n \n Additional Details\n \n
      \n \n \n
      \n Management Level\n \n {contact.managementLevel || 'Not specified'}\n \n
      \n \n\n \n
      \n Department\n \n {contact.department || 'Not specified'}\n \n
      \n \n\n \n
      \n Decision Maker\n \n {contact.isDecisionMaker !== undefined\n ? contact.isDecisionMaker === 1\n ? 'Yes'\n : 'No'\n : 'Not specified'}\n \n
      \n \n\n \n
      \n LinkedIn Connections\n \n {contact.connectionsCount !== undefined\n ? contact.connectionsCount\n : 'Not available'}\n \n
      \n \n\n \n
      \n Last Updated\n \n {contact.lastUpdated\n ? getDateStructured(contact.lastUpdated)\n : 'Not available'}\n \n
      \n \n\n \n
      \n LinkedIn Followers\n \n {contact.followerCount !== undefined\n ? contact.followerCount\n : 'Not available'}\n \n
      \n \n
      \n
      \n
      \n
      \n );\n};\n\nexport default BasicInfoTab;\n","import React, { useState, ReactNode, useRef, useEffect } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';\n\ninterface AccordionProps {\n headerContent: ReactNode;\n bodyContent: ReactNode;\n isOpen?: boolean;\n onToggle?: () => void;\n}\n\n/**\n * Custom Accordion component\n */\nconst Accordion: React.FC = ({\n headerContent,\n bodyContent,\n isOpen = false,\n onToggle,\n}) => {\n const [internalIsOpen, setInternalIsOpen] = useState(isOpen);\n\n const isControlled = onToggle !== undefined;\n const isOpenState = isControlled ? isOpen : internalIsOpen;\n\n const handleToggle = () => {\n if (isControlled) {\n onToggle?.();\n } else {\n setInternalIsOpen(!internalIsOpen);\n }\n };\n\n const contentRef = useRef(null);\n const [contentHeight, setContentHeight] = useState(0);\n\n useEffect(() => {\n if (contentRef.current) {\n const height = contentRef.current.scrollHeight;\n setContentHeight(height);\n }\n }, [bodyContent, isOpenState]);\n\n return (\n
      \n \n
      {headerContent}
      \n
      \n \n
      \n
      \n\n \n
      \n {bodyContent}\n
      \n \n \n );\n};\n\nexport default Accordion;\n","import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useState } from 'react';\nimport { Row, Col, Card, CardBody } from 'reactstrap';\nimport Accordion from '../../../../../components/accordion/Accordion';\nimport Badge from '../../../../../components/badge/Badge';\nimport {\n Block,\n BlockHead,\n BlockTitle,\n Button,\n} from '../../../../../components/Component';\nimport { Contact, Experience } from '../../../../../types/contact.types';\n\n// Utility function to format experience duration\nconst formatExperienceDuration = (totalMonths?: number): string => {\n if (!totalMonths || totalMonths <= 0) return 'No experience';\n\n const years = Math.floor(totalMonths / 12);\n const months = totalMonths % 12;\n\n if (years > 0 && months > 0) {\n return `${years} ${years === 1 ? 'year' : 'years'} and ${months} ${months === 1 ? 'month' : 'months'}`;\n } else if (years > 0) {\n return `${years} ${years === 1 ? 'year' : 'years'}`;\n } else {\n return `${months} ${months === 1 ? 'month' : 'months'}`;\n }\n};\n\ninterface ExperienceTabProps {\n contact: Contact;\n}\n\nconst ExperienceTab: React.FC = ({ contact }) => {\n const [openExperienceId, setOpenExperienceId] = useState(0);\n\n const formatDate = (dateString: string | null): string => {\n if (!dateString) return 'Not specified';\n if (isNaN(Date.parse(dateString))) return 'Not specified';\n const date = new Date(dateString);\n return date.toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n });\n };\n\n const toggleExperience = (index: number) => {\n setOpenExperienceId(openExperienceId === index ? null : index);\n };\n\n const sortedExperiences = [...contact.experience].sort(\n (a, b) => a.orderInProfile - b.orderInProfile,\n );\n\n return (\n
      \n {/* Experience Summary */}\n \n \n
      \n Professional Experience Summary\n \n
      \n

      \n {contact.fullName || 'The contact'} has a total of{' '}\n {formatExperienceDuration(\n contact.totalExperienceDurationMonths ?? undefined,\n )}{' '}\n of professional experience across {contact.experience.length}{' '}\n positions.\n

      \n
      \n
      \n\n {/* Experience Timeline - Com Accordion */}\n \n \n Experience Timeline\n \n\n \n {sortedExperiences.map((exp: Experience, index: number) => (\n toggleExperience(index)}\n headerContent={\n
      \n
      \n
      {exp.title || 'Not specified'}
      \n

      \n {exp.companyName || 'Unknown Company'}\n

      \n
      \n \n {formatDate(exp.dateFrom)} - {formatDate(exp.dateTo)}\n \n
      \n }\n bodyContent={\n <>\n {/* Position Information Section */}\n \n \n \n \n
      \n Duration\n \n {formatExperienceDuration(\n exp.durationMonths ?? undefined,\n )}\n \n
      \n \n\n \n
      \n Location\n \n {exp.location || 'Not specified'}\n \n
      \n \n\n \n
      \n Department\n \n {exp.department || 'Not specified'}\n \n
      \n \n\n \n
      \n Level\n \n {exp.managementLevel || 'Not specified'}\n \n
      \n \n \n \n \n
      \n \n Position Keywords\n \n {exp.companyCategoriesAndKeywords &&\n Array.isArray(exp.companyCategoriesAndKeywords) &&\n exp.companyCategoriesAndKeywords.length > 0 ? (\n
      \n {exp.companyCategoriesAndKeywords.map(\n (keyword, kidx) => (\n \n ),\n )}\n
      \n ) : (\n
      \n No keywords available for this position\n
      \n )}\n
      \n \n
      \n\n {/* Company Information Section */}\n
      \n
      Company Information
      \n \n \n
      \n Industry\n \n {exp.companyIndustry || 'Not specified'}\n \n
      \n \n\n \n
      \n Company Size\n \n {exp.companySizeRange || 'Not specified'}\n \n
      \n \n
      \n
      \n\n {exp.companyWebsite && (\n
      \n }\n className=\"ml-auto\"\n onClick={() => {\n if (exp.companyWebsite)\n window.open(exp.companyWebsite, '_blank');\n }}\n >\n Visit Website\n \n
      \n )}\n \n }\n />\n ))}\n \n
      \n
      \n );\n};\n\nexport default ExperienceTab;\n","import {\n faExternalLinkAlt,\n faCertificate,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useState } from 'react';\nimport { Row, Col, Card, CardBody } from 'reactstrap';\nimport Accordion from '../../../../../components/accordion/Accordion';\nimport Badge from '../../../../../components/badge/Badge';\nimport {\n Block,\n BlockHead,\n BlockTitle,\n Button,\n} from '../../../../../components/Component';\nimport { Contact } from '../../../../../types/contact.types';\n\ninterface EducationTabProps {\n contact: Contact;\n}\n\nconst EducationTab: React.FC = ({ contact }) => {\n const [openEducationId, setOpenEducationId] = useState(0);\n const [openCertificationId, setOpenCertificationId] = useState(\n null,\n );\n\n const formatDate = (dateString: string | null): string => {\n if (!dateString) return 'Present';\n if (isNaN(Date.parse(dateString))) return 'Not provided';\n const date = new Date(dateString);\n return date.toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n });\n };\n\n const toggleEducation = (index: number) => {\n setOpenEducationId(openEducationId === index ? null : index);\n };\n\n const toggleCertification = (index: number) => {\n setOpenCertificationId(openCertificationId === index ? null : index);\n };\n\n return (\n
      \n \n \n Education Timeline\n \n\n \n {(contact.education || []).length > 0 ? (\n (contact.education || []).map((edu, index) => (\n toggleEducation(index)}\n headerContent={\n
      \n
      \n
      {edu.title || 'Not specified'}
      \n {edu.major && (\n

      {edu.major}

      \n )}\n
      \n \n {formatDate(edu.dateFrom) || 'Not specified'} -{' '}\n {formatDate(edu.dateTo) || 'Not specified'}\n \n
      \n }\n bodyContent={\n <>\n {/* Education Information Section */}\n \n \n
      \n Description:\n

      \n {edu.description ? (\n edu.description\n ) : (\n \n No description available\n \n )}\n

      \n
      \n \n \n
      \n \n Activities and Societies:\n \n

      \n {edu.activitiesAndSocieties ? (\n edu.activitiesAndSocieties\n ) : (\n \n No activities information available\n \n )}\n

      \n
      \n \n
      \n\n {edu.institutionUrl && (\n
      \n }\n className=\"ml-auto\"\n onClick={() => {\n if (edu.institutionUrl)\n window.open(edu.institutionUrl, '_blank');\n }}\n >\n Visit Institution Website\n \n
      \n )}\n \n }\n />\n ))\n ) : (\n \n \n

      \n No education information available\n

      \n
      \n
      \n )}\n \n
      \n\n {/* Certifications Section */}\n \n \n Certifications\n \n\n \n {(contact.certifications || []).length > 0 ? (\n (contact.certifications || []).map((cert, index) => (\n \n \n \n
      \n
      {cert.title || 'Not specified'}
      \n \n {cert.dateFromYear || 'Not specified'} -{' '}\n {cert.dateToYear || 'Not specified'}\n \n
      \n

      \n {cert.issuer || 'Unknown Issuer'}\n

      \n\n {cert.credentialId && (\n
      \n Credential ID:{' '}\n {cert.credentialId}\n
      \n )}\n\n
      \n {cert.certificateUrl && (\n }\n className=\"me-2\"\n onClick={() => {\n if (cert.certificateUrl)\n window.open(cert.certificateUrl, '_blank');\n }}\n >\n View Certificate\n \n )}\n\n {cert.issuerUrl && (\n }\n onClick={() => {\n if (cert.issuerUrl)\n window.open(cert.issuerUrl, '_blank');\n }}\n >\n Visit Issuer\n \n )}\n
      \n
      \n
      \n \n ))\n ) : (\n \n \n

      \n No certification information available\n

      \n
      \n
      \n )}\n
      \n
      \n\n {/* Courses Section */}\n \n \n Courses\n \n\n \n {(contact.courses || []).length > 0 ? (\n (contact.courses || []).map((course, index) => (\n \n \n \n
      {course.title || 'Not specified'}
      \n {course.organizer ? (\n

      {course.organizer}

      \n ) : (\n

      Organizer not specified

      \n )}\n
      \n
      \n \n ))\n ) : (\n \n \n

      \n No course information available\n

      \n
      \n
      \n )}\n
      \n
      \n\n {/* Languages Section */}\n \n \n Languages\n \n\n \n {(contact.languages || []).length > 0 ? (\n (contact.languages || []).map((lang, index) => (\n \n \n \n
      \n
      \n {lang.language || 'Not specified'}\n
      \n \n
      \n
      \n
      \n \n ))\n ) : (\n \n \n

      \n No language information available\n

      \n
      \n
      \n )}\n
      \n
      \n
      \n );\n};\n\nexport default EducationTab;\n","import React, { useState } from 'react';\nimport { Row, Col } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faExternalLinkAlt,\n faQuoteRight,\n faShareAlt,\n faEdit,\n} from '@fortawesome/free-solid-svg-icons';\nimport Accordion from '../../../../../components/accordion/Accordion';\nimport {\n Block,\n BlockHead,\n BlockTitle,\n Button,\n} from '../../../../../components/Component';\nimport { Contact } from '../../../../../types/contact.types';\nimport Badge from '../../../../../components/badge/Badge';\n\ninterface SkillsTabProps {\n contact: Contact;\n}\n\nconst SkillsTab: React.FC = ({ contact }) => {\n const [openRecommendationId, setOpenRecommendationId] = useState<\n number | null\n >(0);\n\n const toggleRecommendation = (index: number) => {\n setOpenRecommendationId(openRecommendationId === index ? null : index);\n };\n\n // Function to truncate text\n const truncateText = (text: string, maxLength: number = 80) => {\n if (!text) return '';\n if (text.length <= maxLength) return text;\n return text.substring(0, maxLength) + '...';\n };\n\n return (\n
      \n {/* Skills Section */}\n \n \n Skills\n \n \n\n
      \n {(contact.skills || []).length > 0 ? (\n
      \n {(contact.skills || []).map((skill, index) => (\n {\n ev.preventDefault();\n }}\n >\n {skill}\n \n ))}\n
      \n ) : (\n

      No skills information available

      \n )}\n
      \n
      \n\n {/* Recommendations Section */}\n \n \n Recommendations\n \n \n\n \n {(contact.recommendations || []).length > 0 ? (\n (contact.recommendations || []).map((rec, index) => (\n toggleRecommendation(index)}\n headerContent={\n
      \n
      \n
      \n {rec.refereeName || 'Anonymous Referrer'}\n
      \n
      \n
      \n }\n bodyContent={\n <>\n \n \n \n \n

      \n {rec.recommendation ? (\n truncateText(rec.recommendation, 200)\n ) : (\n \n No recommendation text available\n \n )}\n

      \n \n \n
      \n\n {rec.refereeUrl && (\n
      \n }\n className=\"ml-auto\"\n onClick={() => {\n if (rec.refereeUrl)\n window.open(rec.refereeUrl, '_blank');\n }}\n >\n View Profile\n \n
      \n )}\n \n }\n />\n ))\n ) : (\n
      \n

      No recommendations available

      \n
      \n )}\n \n
      \n\n {/* Recent Activities Section */}\n \n \n Recent LinkedIn Activities\n \n\n
      \n {(contact.activity || []).length > 0 ? (\n \n {(contact.activity || []).map((activity, index) => (\n
      \n
      \n
      \n
      \n \n \n {truncateText(\n activity.title || 'Untitled Activity',\n 80,\n )}\n {activity.activityUrl && (\n \n \n View\n \n )}\n \n
      \n
      \n
      \n ))}\n
      \n ) : (\n
      \n

      \n No recent LinkedIn activities available\n

      \n
      \n )}\n
      \n \n \n );\n};\n\nexport default SkillsTab;\n","import React from 'react';\nimport { Row, Col, Card, CardBody } from 'reactstrap';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faGlobe, faBuilding } from '@fortawesome/free-solid-svg-icons';\nimport {\n Block,\n BlockHead,\n BlockTitle,\n UserAvatar,\n} from '../../../../../components/Component';\nimport { TCompany } from '../../../../../types/company.types';\nimport { findUpper } from '../../../../../utils/Utils';\n\ninterface CompanyTabProps {\n company: TCompany | null;\n}\n\nconst CompanyTab: React.FC = ({ company }) => {\n if (!company)\n return (\n
      \n \n

      No Company Information Available

      \n

      \n The company details could not be found or loaded.\n

      \n
      \n );\n\n return (\n
      \n {/* Company Overview Section */}\n \n \n
      \n
      \n \n
      \n
      \n

      \n {company.name || 'Unnamed Company'}\n {company.domain && (\n \n \n \n )}\n

      \n

      \n {company.industry || 'Industry not specified'}\n

      \n

      {company.description || 'No description available'}

      \n
      \n
      \n
      \n
      \n\n {/* Company Details */}\n \n \n Company Information\n \n
      \n \n \n
      \n Industry\n \n {company.industry || 'Not specified'}\n \n
      \n \n \n
      \n Company Size\n \n {company.size || 'Not specified'}\n \n
      \n \n \n
      \n Domain\n \n {company.domain || 'Not specified'}\n \n
      \n \n \n
      \n Email\n \n {company.email ? (\n {company.email}\n ) : (\n 'Not available'\n )}\n \n
      \n \n \n
      \n Phone\n \n {company.phone ? (\n {company.phone}\n ) : (\n 'Not available'\n )}\n \n
      \n \n \n
      \n Website\n \n {company.domain ? (\n \n {company.domain}\n \n ) : (\n 'Not available'\n )}\n \n
      \n \n
      \n
      \n
      \n
      \n );\n};\n\nexport default CompanyTab;\n","import React from 'react';\nimport Button from './Button';\nimport { useButtonState } from '../../hooks/useButtonState';\n\ninterface LoadingButtonProps {\n onClick: () => void;\n isLoading: boolean;\n text: string;\n loadingText: string;\n icon?: React.ReactNode;\n loadingIcon?: React.ReactNode;\n color?: 'primary' | 'secondary' | 'danger' | 'success' | 'info' | 'link';\n size?: 'xsmall' | 'small' | 'medium' | 'large' | 'icon' | 'link';\n outline?: boolean;\n className?: string;\n iconSide?: 'left' | 'right' | 'center';\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n}\n\nconst LoadingButton: React.FC = ({\n onClick,\n isLoading,\n text,\n loadingText,\n icon,\n loadingIcon,\n color = 'primary',\n size = 'medium',\n outline = false,\n className = '',\n iconSide = 'left',\n disabled = false,\n type = 'button',\n}) => {\n const { handleButtonClick, getText, getIcon, isDisabled } = useButtonState({\n isLoading,\n defaultText: text,\n loadingText,\n defaultIcon: icon,\n loadingIcon,\n });\n\n return (\n \n {getText()}\n \n );\n};\n\nexport default LoadingButton;\n","import React from 'react';\n\ninterface ButtonStateProps {\n isLoading: boolean;\n defaultText: string;\n loadingText: string;\n defaultIcon?: React.ReactNode;\n loadingIcon?: React.ReactNode;\n}\n\nexport const useButtonState = ({\n isLoading,\n defaultText,\n loadingText,\n defaultIcon,\n loadingIcon,\n}: ButtonStateProps) => {\n const handleButtonClick = (callback: () => void) => (e: React.MouseEvent) => {\n e.preventDefault();\n callback();\n };\n\n const getText = () => {\n return isLoading ? loadingText : defaultText;\n };\n\n const getIcon = () => {\n if (isLoading) {\n if (loadingIcon) {\n return loadingIcon;\n }\n\n return (\n \n );\n }\n\n return defaultIcon;\n };\n\n return {\n handleButtonClick,\n getText,\n getIcon,\n isDisabled: isLoading,\n };\n};\n","import React, { useState, useEffect } from 'react';\nimport { Modal, ModalBody, Form, FormGroup, Input, Label } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faPlus,\n faPencilAlt,\n faTimes,\n} from '@fortawesome/free-solid-svg-icons';\nimport { Button } from '../../../components/Component';\nimport LoadingButton from '../../../components/button/LoadingButton';\nimport { z } from 'zod';\n\n// Schema de validação Zod\nconst noteSchema = z.object({\n title: z.string().min(1, { message: 'Title is required' }),\n text: z.string().min(1, { message: 'Note content is required' }),\n});\n\n// Tipo derivado do schema Zod\ntype NoteFormData = z.infer;\n\ninterface NoteFormModalProps {\n isOpen: boolean;\n toggle: () => void;\n noteText: string;\n noteTitle: string;\n setNoteText: (text: string) => void;\n setNoteTitle: (title: string) => void;\n onSubmit: () => void;\n isLoading: boolean;\n isEditing: boolean;\n}\n\nconst NoteFormModal: React.FC = ({\n isOpen,\n toggle,\n noteText,\n noteTitle,\n setNoteText,\n setNoteTitle,\n onSubmit,\n isLoading,\n isEditing,\n}) => {\n // State para erros de validação\n const [errors, setErrors] = useState<{ title?: string; text?: string }>({});\n\n // Limpar erros quando o modal é aberto/fechado ou os campos são alterados\n useEffect(() => {\n setErrors({});\n }, [isOpen, noteTitle, noteText]);\n\n // Validar os dados antes de enviar\n const handleSubmit = () => {\n try {\n // Validar com Zod\n noteSchema.parse({ title: noteTitle, text: noteText });\n\n // Se passar na validação, chamar onSubmit\n onSubmit();\n } catch (error) {\n if (error instanceof z.ZodError) {\n // Extrair e formatar mensagens de erro\n const formattedErrors = {};\n error.errors.forEach(err => {\n formattedErrors[err.path[0]] = err.message;\n });\n setErrors(formattedErrors);\n }\n }\n };\n\n return (\n \n \n
      \n
      \n {isEditing ? 'Edit Note' : 'Add New Note'}\n
      \n }\n color=\"secondary\"\n size=\"icon\"\n />\n
      \n {\n e.preventDefault();\n handleSubmit();\n }}\n >\n {/* Title Field */}\n \n \n
      \n setNoteTitle(e.target.value)}\n placeholder=\"Enter note title...\"\n className={`form-control-lg ${errors.title ? 'is-invalid' : ''}`}\n />\n {errors.title && (\n
      {errors.title}
      \n )}\n
      \n
      \n\n {/* Content Field */}\n \n \n
      \n setNoteText(e.target.value)}\n placeholder=\"Enter your note here...\"\n rows={5}\n className={`form-control-lg ${errors.text ? 'is-invalid' : ''}`}\n />\n {errors.text && (\n
      {errors.text}
      \n )}\n
      \n
      \n\n
      \n \n \n ) : (\n \n )\n }\n color=\"primary\"\n disabled={isLoading}\n />\n
      \n \n
      \n
      \n );\n};\n\nexport default NoteFormModal;\n","import React, { useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faPlus,\n faPencilAlt,\n faTrashAlt,\n} from '@fortawesome/free-solid-svg-icons';\nimport {\n Block,\n BlockHead,\n BlockTitle,\n Button,\n} from '../../../../../components/Component';\nimport Badge from '../../../../../components/badge/Badge';\nimport DeleteConfirmationModal from '../../../modal/DeleteConfirmationModal';\nimport NoteFormModal from '../../../modal/NoteFormModal';\nimport { getDateStructured } from '../../../../../utils/Utils';\n\ninterface Note {\n id: number;\n title: string;\n text: string;\n date: string;\n time: string;\n}\n\nconst NotesTab: React.FC = () => {\n // States\n const [notes, setNotes] = useState([]);\n const [noteFormModal, setNoteFormModal] = useState(false);\n const [noteText, setNoteText] = useState('');\n const [noteTitle, setNoteTitle] = useState('');\n const [editingNoteId, setEditingNoteId] = useState(null);\n const [loading, setLoading] = useState(false);\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n const [noteToDelete, setNoteToDelete] = useState(null);\n\n const handleSubmitNote = () => {\n if (!noteTitle.trim() || !noteText.trim()) return;\n\n const now = new Date();\n const newNote: Note = {\n id: notes.length + 1,\n title: noteTitle,\n text: noteText,\n date: now.toISOString(), // ISO format similar to backend\n time: now.toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n }),\n };\n\n if (editingNoteId) {\n // Edit existing note\n setNotes(prevNotes =>\n prevNotes.map(note =>\n note.id === editingNoteId ? { ...note, ...newNote } : note,\n ),\n );\n } else {\n setNotes(prevNotes => [...prevNotes, newNote]);\n }\n\n // Reset form and close modal\n setNoteFormModal(false);\n setEditingNoteId(null);\n setNoteTitle('');\n setNoteText('');\n };\n\n // Handle delete note\n const handleDeleteNote = (noteId: number) => {\n setNoteToDelete(noteId);\n setDeleteModalOpen(true);\n };\n\n // Confirm note deletion\n const confirmDelete = () => {\n if (noteToDelete === null) return;\n\n setNotes(prevNotes => prevNotes.filter(note => note.id !== noteToDelete));\n setDeleteModalOpen(false);\n setNoteToDelete(null);\n };\n\n const openNoteFormModal = (\n noteId?: number,\n initialTitle?: string,\n initialText?: string,\n ) => {\n setEditingNoteId(noteId || null);\n setNoteTitle(initialTitle || '');\n setNoteText(initialText || '');\n setNoteFormModal(true);\n };\n\n const closeNoteFormModal = () => {\n setNoteFormModal(false);\n\n // Definimos um pequeno atraso para limpar os estados somente após o modal fechar\n setTimeout(() => {\n setEditingNoteId(null);\n setNoteTitle('');\n setNoteText('');\n }, 300);\n };\n\n const handleButtonClick = (callback: () => void) => (e: React.MouseEvent) => {\n e.preventDefault();\n callback();\n };\n\n return (\n <>\n {/* Development Warning */}\n
      \n Attention: This page is just an example. The backend\n for note manipulation has not yet been implemented. Changes are only\n simulated locally.\n
      \n\n {/* Notes Section */}\n \n \n Interaction Notes\n
      \n \n openNoteFormModal())}\n icon={}\n disabled={loading}\n type=\"button\"\n >\n Add Note\n \n
      \n
      \n\n
      \n {notes.length > 0 ? (\n
      \n {notes.map(note => (\n
      \n
      \n
      {note.title || 'Untitled Note'}
      \n
      \n \n openNoteFormModal(note.id, note.title, note.text),\n )}\n icon={}\n disabled={loading}\n type=\"button\"\n />\n \n handleDeleteNote(note.id),\n )}\n icon={}\n disabled={loading}\n type=\"button\"\n />\n
      \n
      \n
      \n \n {getDateStructured(note.date) || 'Date not specified'}{' '}\n {note.time || ''}\n \n
      \n

      {note.text || 'No note content'}

      \n
      \n ))}\n
      \n ) : (\n
      \n

      No notes available for this contact yet.

      \n
      \n )}\n
      \n
      \n\n \n\n setDeleteModalOpen(false)}\n onConfirm={confirmDelete}\n isLoading={loading}\n title=\"Delete Note\"\n itemName=\"this note\"\n warningMessage=\"This action cannot be undone.\"\n />\n \n );\n};\n\nexport default NotesTab;\n","import React from 'react';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport {\n BlockBetween,\n BlockDes,\n BlockHead,\n BlockHeadContent,\n BlockTitle,\n Button,\n Icon,\n} from '../../../../components/Component';\nimport { Contact } from '../../../../types/contact.types';\nimport { getDateStructured } from '../../../../utils/Utils';\n\ninterface PageHeaderProps {\n contact: Contact;\n}\n\nconst PageHeader: React.FC = ({ contact }) => {\n const navigate = useNavigate();\n const location = useLocation();\n\n const handleGoBack = () => {\n // Verifica se há um estado de navegação anterior\n const previousRoute = location.state?.from;\n\n console.log('Previous route:', previousRoute);\n if (previousRoute) {\n console.log('Previous route:', previousRoute);\n // Se veio de uma página específica, volta para essa página\n navigate(previousRoute);\n } else {\n // Se abriu direto ou não tem histórico, volta para leads\n navigate('/leads');\n }\n };\n\n return (\n \n \n \n \n Lead Details /{' '}\n \n {contact.fullName || 'Unknown Contact'}\n \n \n \n
        \n
      • \n Company:{' '}\n \n {contact.company?.name || 'Not specified'}\n \n
      • \n
      • \n Last Updated:{' '}\n \n {contact.lastUpdated\n ? getDateStructured(contact.lastUpdated)\n : 'Not available'}\n \n
      • \n
      • \n ID: {contact._id || 'N/A'}\n
      • \n
      \n
      \n
      \n \n
      \n \n \n Back\n \n
      \n
      \n
      \n
      \n );\n};\n\nexport default PageHeader;\n","import React, { useEffect, useState } from 'react';\nimport Content from '../../../layout/content/Content';\nimport Head from '../../../layout/head/Head';\nimport { Card } from 'reactstrap';\nimport { useParams } from 'react-router-dom';\nimport { Block } from '../../../components/Component';\nimport { Contact } from '../../../types/contact.types';\nimport UserTabs from '../../components/leads/LeadDetailsPage/tabs/Tabs';\nimport UserSidebar from '../../components/leads/LeadDetailsPage/LeadSideBar';\nimport { useNotification } from '../../../context/NotificationContext/useNotification';\nimport BasicInfoTab from '../../components/leads/LeadDetailsPage/tabs/BasicInfoTab';\nimport ExperienceTab from '../../components/leads/LeadDetailsPage/tabs/ExperienceTab';\nimport EducationTab from '../../components/leads/LeadDetailsPage/tabs/EducationTab';\nimport SkillsTab from '../../components/leads/LeadDetailsPage/tabs/SkillsTab';\nimport CompanyTab from '../../components/leads/LeadDetailsPage/tabs/CompanyTab';\nimport NotesTab from '../../components/leads/LeadDetailsPage/tabs/NotesTab';\nimport PageHeader from '../../components/leads/LeadDetailsPage/PageHeader';\nimport LoadingComponent from '../../../components/loading/Loading';\nimport { APIGetContactDetails } from '../../../services/api/api.contact';\nimport { APIGetCompany } from '../../../services/api/api.company';\nimport { TCompany } from '../../../types/company.types';\n\nconst LeadDetailsPage: React.FC = () => {\n // States\n const [sideBar, setSidebar] = useState(false);\n const [activeTab, setActiveTab] = useState('experience');\n const { leadId } = useParams<{ leadId: string }>();\n const [leadData, setLeadData] = useState(null);\n const [loading, setLoading] = useState(true);\n\n const { createNotification, handleAPIError } = useNotification();\n\n // Load user data\n useEffect(() => {\n const fetchLeadData = async () => {\n try {\n setLoading(true);\n if (leadId) {\n const contact = await APIGetContactDetails(leadId);\n if (!contact) {\n createNotification('danger', 'No data found for this lead.');\n return;\n }\n console.log('contact', contact);\n setLeadData(contact);\n if (contact.internalCompanyId) {\n const company = await APIGetCompany(contact.internalCompanyId);\n if (company) {\n setLeadData({\n ...contact,\n company: company as TCompany,\n });\n } else {\n createNotification('danger', 'No company found for this lead.');\n }\n }\n } else {\n createNotification('danger', 'No data found for this lead.');\n }\n } catch (error: any) {\n handleAPIError(error.message || 'Failed to fetch lead data');\n } finally {\n setLoading(false);\n }\n };\n\n fetchLeadData();\n }, [leadId]);\n\n const toggle = () => {\n setSidebar(!sideBar);\n };\n\n const handleTabChange = (tabId: string) => {\n setActiveTab(tabId);\n };\n\n const renderTabContent = () => {\n if (!leadData || !leadId) return null;\n\n switch (activeTab) {\n case 'basic':\n return ;\n case 'experience':\n return ;\n case 'education':\n return ;\n case 'skills':\n return ;\n case 'company':\n return ;\n case 'notes':\n return ;\n default:\n return ;\n }\n };\n\n if (loading) {\n return (\n
      \n \n
      \n );\n }\n\n if (!leadData) {\n return (\n
      \n {'Failed to load lead data'}\n
      \n );\n }\n\n return (\n <>\n \n {leadData && (\n \n {/* Header Section */}\n \n\n {/* Main Content */}\n \n \n
      \n {/* Content Area */}\n
      \n {/* Tabs */}\n \n\n {/* Tab Content */}\n
      {renderTabContent()}
      \n
      \n\n {/* Sidebar Component */}\n \n\n {/* Overlay when sidebar is open */}\n {sideBar && (\n toggle()}\n >
      \n )}\n \n
      \n
      \n
      \n )}\n \n );\n};\n\nexport default LeadDetailsPage;\n","import { api, checkError } from './server';\n\nexport const APIGetCompany = async (id: string) => {\n try {\n const response = await api.get(`/companies/${id}`);\n return response.data;\n } catch (error) {\n return checkError(error);\n }\n};\n","import React, { useLayoutEffect } from 'react';\nimport { Routes, Route, useLocation } from 'react-router-dom';\n\nimport Error404Modern from '../base_template/error/404-modern';\n\nimport Login from '../pages/auth/Login';\nimport Register from '../pages/auth/Register';\nimport ForgotPassword from '../pages/auth/ForgotPassword';\nimport Layout from '../layout/Index';\nimport Protected from '../layout/Protected';\nimport NotificationProvider from '../context/NotificationContext/NotificationProvider';\nimport UserJobSeachers from '../pages/app/job-search/UserJobSearches';\nimport UserJobSerachDetails from '../pages/app/job-search/UserJobSearchDetails';\nimport { CampaignSelectedProvider } from '../context/CampaignSelectedContext/campaignSelected.context';\nimport EmailVerification from '../pages/auth/Validate';\nimport { AuthProvider } from '../context/Auth/auth.contex';\nimport Logout from '../pages/auth/Logout';\nimport FavoriteLeads from '../pages/app/leads/FavoriteLeads';\nimport ListsDetails from '../pages/app/lists/ListDetails';\nimport FavoriteCompanies from '../pages/app/companies/FavoriteCompanies';\nimport Profile from '../pages/app/profile/Profile';\nimport UserProfileSettingPage from '../pages/app/profile/ProfileSettings';\nimport { SubscriptionProvider } from '../context/SubscriptionContext/SubscriptionContext';\nimport PlanTable from '../pages/app/plans/Plan';\nimport UserProfileSubscription from '../pages/app/profile/ProfileSubscription';\nimport FavoriteJobs from '../pages/app/jobs/FavoriteJobs';\nimport ListsPage from '../pages/app/lists/ListsPage';\nimport CampaignsPage from '../pages/app/campaigns/Campaigns';\nimport CampaignDetailsPage from '../pages/app/campaigns/CampaignsDetails';\nimport { CampaignsProvider } from '../context/Campaign/Campaign.context';\nimport Chatbot from '../pages/app/candidate-database/CandidateUpdateProfileChat';\nimport LeadDetailsPage from '../pages/app/leads/LeadDetailsPage';\n\nconst CombinedProviders: React.FC<{ children: React.ReactNode }> = ({\n children,\n}) => {\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nconst Pages = () => {\n const location = useLocation();\n useLayoutEffect(() => {\n window.scrollTo(0, 0);\n }, [location]);\n\n return (\n \n \n {/* protected routes */}\n }>\n }>\n\n } />}\n >\n } />\n }\n />\n {/* } /> */}\n \n\n } />}\n >\n } />\n \n\n } />}\n >\n } />\n } />\n \n\n } />}\n >\n } />\n } />\n \n\n } />}\n >\n } />\n \n\n \n } />\n \n }\n >\n } />\n } />\n \n\n } />}\n >\n } />\n \n\n } />}\n >\n } />\n } />\n } />\n \n\n } />}\n >\n } />\n \n \n\n {/* public routes */}\n \n } />\n } />\n }>\n }>\n }>\n }>\n \n\n {/* Redirecionamento padrão */}\n }>\n\n {/* END VITAE ROUTES */}\n {/* next routes are from the original template */}\n\n {/* \n }>\n }>\n \n }> \n */}\n {/* }>\n }>\n }>\n }>\n }>\n }>\n\n }>\n }>\n\n }>\n }>\n }>\n }>\n }>\n \n\n \n }>\n }>\n }>\n }>\n \n\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n \n\n }>\n }>\n }>\n }>\n\n \n }>\n }>\n }>\n }>\n \n\n \n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n }>\n\n \n }>\n }>\n }>\n \n\n \n }>\n }>\n }>\n }>\n }>\n }>\n }>\n \n \n \n }>\n }>\n \n\n }>\n }>\n }>\n }>\n }>\n }>\n */}\n\n {/* \n }>\n }>\n \n }>\n }>\n \n }>\n }>\n \n }>\n }>\n \n }>\n }>\n \n }>\n \n }>\n }>\n }>\n }>\n }>\n }>\n \n \n */}\n \n \n );\n};\nexport default Pages;\n","import Router from './route/Index';\nimport ThemeProvider from './layout/provider/Theme';\n\nconst App = () => {\n return (\n \n \n \n );\n};\nexport default App;\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from \"react\";\r\nimport ReactDOM from 'react-dom/client';\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport App from \"./App\";\r\nimport \"./index.css\"\r\nimport \"./assets/scss/dashlite.scss\";\r\nimport \"./assets/scss/style-email.scss\";\r\n\r\nimport reportWebVitals from \"./reportWebVitals\";\r\n\r\nconst root = ReactDOM.createRoot(document.getElementById('root'));\r\nroot.render(\r\n \r\n \r\n \r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","lang","code","toolbar","default","save","font","formats","fontSize","bold","underline","italic","strike","subscript","superscript","removeFormat","fontColor","hiliteColor","indent","outdent","align","alignLeft","alignRight","alignCenter","alignJustify","list","orderList","unorderList","horizontalRule","hr_solid","hr_dotted","hr_dashed","table","link","math","image","video","audio","fullScreen","showBlocks","codeView","undo","redo","preview","print","tag_p","tag_div","tag_h","tag_blockquote","tag_pre","template","lineHeight","paragraphStyle","textStyle","imageGallery","dir_ltr","dir_rtl","mention","dialogBox","linkBox","title","url","text","newWindowCheck","downloadLinkCheck","bookmark","mathBox","inputLabel","fontSizeLabel","previewLabel","imageBox","file","altText","videoBox","audioBox","browser","tags","search","caption","close","submitButton","revertButton","proportion","basic","left","right","center","width","height","size","ratio","controller","edit","unlink","remove","insertRowAbove","insertRowBelow","deleteRow","insertColumnBefore","insertColumnAfter","deleteColumn","fixedColumnWidth","resize100","resize75","resize50","resize25","autoSize","mirrorHorizontal","mirrorVertical","rotateLeft","rotateRight","maxSize","minSize","tableHeader","mergeCells","splitCells","HorizontalSplit","VerticalSplit","menu","spaced","bordered","neon","translucent","shadow","SUNEDITOR_LANG","Object","defineProperty","enumerable","writable","configurable","value","selection","getSelection","rangeCount","active","activeElement","ranges","i","push","getRangeAt","tagName","toUpperCase","blur","removeAllRanges","type","forEach","range","addRange","focus","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","name","length","prototype","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","key","descriptor","e","set_container","cover","className","container","util","createElement","appendChild","set_cover","element","create_caption","innerHTML","SUNEDITOR_MODULES","FUNC_ERROR_TEXT","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","freeSelf","self","root","Function","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","leadingEdge","toNumber","isObject","cancel","clearTimeout","flush","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","fileBrowser","_xmlHttp","_loading","add","core","context","_closeSignal","area","header","tagArea","body","tagElements","items","selectedTags","selectorHandler","contextPlugin","columnSize","browser_div","back","content","set_browser","querySelector","titleArea","addEventListener","onClickTag","bind","onClickFile","_onMouseDown_browser","_onClick_browser","relative","icons","target","stopPropagation","getAttribute","plugins","open","pluginName","_bindClose","_d","removeEventListener","keyCode","fileBrowserContext","pluginContext","listClassName","listClass","hasClass","popupDisplay","style","position","textContent","display","directData","_drawListItem","_drawFileList","fileBrowserPlugin","abort","init","showBrowserLoading","closeBrowserLoading","browserHeader","xmlHttp","getXMLHttpRequest","onreadystatechange","_callBackGet","_w","setRequestHeader","send","readyState","status","res","JSON","parse","responseText","nullMessage","message","maxHeight","innerHeight","offsetHeight","err","errorMessage","update","_tags","len","splitSize","round","drawItemHandler","itemTemplateHandler","tagsHTML","listHTML","columns","item","tag","split","map","v","trim","t","tLen","indexOf","querySelectorAll","isAnchor","selectTag","sTagIndex","splice","removeClass","addClass","filter","some","preventDefault","listEl","command","parentNode","REACT_ELEMENT_TYPE","Symbol","for","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","REACT_CLIENT_REFERENCE","typeOf","object","$$typeof","getModuleId","ckb","cs","da","de","en","es","fr","he","hu","it","ja","ko","lv","nl","pl","pt_br","ro","ru","se","ua","ur","zh_cn","fixColumnWidth","f","k","l","m","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","ref","__self","__source","q","c","a","g","b","d","h","props","_owner","current","Fragment","jsx","jsxs","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","src","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","Array","_typeof$6","obj","iterator","constructor","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","random","abs","val","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","top","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","s","r","RGBtoHSV","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","fn","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","j","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","stringify","ks","o","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","load","fullPath","callback","errorCallback","XMLHttpRequest","join","error","completeData","payload","animation","event","process","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","wrapper","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","isNaN","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","hide","show","getDuration","updateDocumentData","index","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","get","x","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","y","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ceil","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","bottom","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","family","fontFamily","node","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","getCodePoint","string","codePoint","charCodeAt","second","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","assign","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","mode","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","source","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","String","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","stack","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","Uint8Array","crypto","msCrypto","getRandomValues","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","SHAPE","_typeof$1","ExpressionManager","fetch","frames","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","CopyToClipboard","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_defineProperties","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","_key","_this$props","onCopy","Children","only","onClick","_this$props2","cloneElement","PureComponent","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","from","toObject","webpackContext","req","webpackContextResolve","__webpack_require__","resolve","ue","reduce","moveLeft","moveAllLeft","moveRight","moveAllRight","moveDown","moveUp","availableFilterHeader","availableHeader","noAvailableOptions","noSelectedOptions","selectedFilterHeader","selectedHeader","O","R","isMoveAll","getActionKey","disabled","getId","getLabel","renderIcons","Component","E","F","T","P","controlKey","filterPlaceholder","filterValue","onFilterChange","htmlFor","placeholder","onChange","N","D","M","U","H","I","K","selected","setState","canFilter","actions","inputRef","showNoOptionsText","onDoubleClick","onKeyUp","multiple","showHeaderLabels","renderFilter","renderSelect","L","V","W","label","$","J","Y","G","re","Q","X","ee","te","isArray","oe","ie","le","ae","ce","moveTop","moveBottom","Z","available","onActionClick","onOptionDoubleClick","onOptionKeyUp","simpleValue","userSelection","getMarkedOptions","rearrangeSelected","moveToExtremes","makeOptionsSelected","toggleSelected","currentTarget","moveKeyCodes","dataset","getLabelMap","realValue","getFlatOptions","filterAvailable","makeOptionsSelectedRecursive","allowDuplicates","filterCallback","filterOptions","selectedIndex","preserveSelectOrder","filterSelectedByOrder","renderOptions","alignActions","availableRef","selectedRef","showOrderButtons","filterSelected","renderListBox","RegExp","toStringTag","globalThis","aa","ca","encodeURIComponent","Set","ea","fa","ha","ia","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","match","Na","Oa","prepareStackTrace","set","includes","Pa","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","base","br","embed","hr","input","keygen","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","log","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","Uc","jd","kd","ld","md","nd","od","pd","qd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","be","documentMode","fe","ge","date","datetime","email","month","password","tel","week","listeners","qe","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","extend","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","setEnd","scrollLeft","scrollTop","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","listener","has","pf","qf","rf","sf","capture","passive","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Promise","Jf","queueMicrotask","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_stringRef","refs","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","next","done","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","dependencies","firstContext","lanes","dh","eh","memoizedValue","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","mh","eventTime","lane","nh","oh","ph","qh","rh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","hi","ii","deps","ji","ki","li","mi","ni","oi","qi","ri","si","ui","vi","xi","yi","zi","Ai","Bi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","suppressHydrationWarning","onclick","autoFocus","createTextNode","Gj","Hj","Ij","Jj","Kj","WeakSet","Lj","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","mk","nk","ok","pk","qk","rk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ol","rl","ql","unmount","unstable_scheduleHydration","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","fileManager","_checkMediaComponent","parentElement","upload","uploadUrl","uploadHeader","formData","callBack","errorCallBack","showLoading","filePlugin","_callBackUpload","closeLoading","functions","noticeOpen","checkInfo","tagNames","uploadEventHandler","modifyHandler","resizing","wysiwyg","fileManagerPlugin","infoList","_infoList","setFileInfo","setInfo","_componentsInfoReset","infoUpdate","info","_resize_plugin","currentTags","infoIndex","__updateTags","getParentElement","isMediaComponent","_infoIndex","dataIndex","plguin","_componentsInfoInit","select","scrollIntoView","naturalWidth","naturalHeight","_module_getSizeX","_module_getSizeY","onModifyMode","applySize","_uploadFileLength","deleteInfo","resetInfo","__assign","__createBinding","desc","__setModuleDefault","__importStar","__importDefault","react_1","plugins_1","suneditor_1","getLanguage_1","events_1","_a","setOptions","_b","setContents","setDefaultStyle","getSunEditorInstance","appendContents","_c","setAllPlugins","disable","_e","readOnly","_f","_g","hideToolbar","_h","disableToolbar","onBlur","onLoad","txtArea","editor","initialEffect","defaultStyle","onload","reload","focusEdge","isIE","_createDefaultRange","getContents","uploadBeforeEvents","files","uploadHandler","events","hasFocus","_j","enable","visibility","useLottie","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","lottieRef","rest","_excluded$1","_useState2","_slicedToArray","React","animationLoaded","setAnimationLoaded","animationInstanceRef","animationContainer","useSubFrames","inFrames","forcedConfigs","_objectSpread2","lottie__default","onUnmount","handler","deregisterList","deregister","View","React__default","animationContainerRef","getContainerVisibility","_container$getBoundin","getBoundingClientRect","getContainerCursorPosition","cursorX","cursorY","_container$getBoundin2","useInitInteractivity","_ref","wrapperRef","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","find","_ref2","frameToGo","cursorModeHandler","handleCursor","_x","_y","_ref3","xPercent","yPercent","mouseMoveHandler","mouseOutHandler","useLottieInteractivity","_ref4","lottieObj","Lottie","interactivity","lottieProps","_useLottie","forceUpdate","escape","_status","_result","toArray","Profiler","StrictMode","Suspense","act","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","deselectCurrent","clipboardToIE11Formatting","debug","reselectPrevious","mark","success","ariaHidden","all","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","format","clearData","selectNodeContents","execCommand","copyKey","prompt","removeRange","canUseDOM","targetElement","blockquote","targetButton","currentBlockquote","getSelectionNode","detachRangeFormatElement","applyRangeFormatElement","cloneNode","_itemMenu","_alignList","currentAlign","defaultDir","rtl","align_justify","align_left","align_right","align_center","listDiv","setSubmenu","listUl","pickup","initMenuTarget","alignItems","html","alignContext","firstElementChild","isFormatElement","textAlign","changeElement","on","alignList","exchangeDir","leftBtn","rightBtn","lp","rp","selectedFormsts","getSelectedElements","setStyle","effectNode","submenuOff","history","targetText","targetTooltip","_fontList","currentFont","fontList","tooltip","selectFont","changeTxt","wwComputedStyle","fontContext","newNode","nodeChange","_sizeList","option","sizeList","unit","fontSizeUnit","_convertFontSize","fontSizeContext","colorPicker","colorListHTML","_colorInput","_defaultColor","_styleProperty","_currentColor","_colorList","createColorList","_makeColorList","makeColor","colorList","colorArr","erase","getColorInNode","isHexColor","rgb2hex","setInputText","colorName2hex","setCurrentColor","hexColorStr","borderColor","findColor","styleProperty","isWysiwygDiv","rgb","rgbMatch","colorName","temp","colors","getComputedStyle","removeItem","addModule","previewEl","colorInput","onChangeInput","submit","colorArea","contextPicker","contextFontColor","applyColor","contextHiliteColor","currentHR","horizontalRulePick","hrItems","class","controllersOn","controllersOff","appendHr","hrTemp","insertComponent","oNode","setRange","_list","currentList","bullets","list_bullets","list_number","icon","isList","listContext","editList","selectedCells","detach","getRange","selectedFormats","getSelectedElementsAndComponents","getRange_addLine","sortByDepth","firstSel","lastSel","topEl","isListCell","isComponent","previousElementSibling","bottomEl","nextElementSibling","isCollapsed","collapsed","originRange","startContainer","endContainer","onlyZeroWidthSpace","startOffset","endOffset","afterRange","isRemove","getRangeFormatElement","topElParent","bottomElParent","mergeTop","mergeBottom","firstList","lastList","topNumber","bottomNumber","passComponent","newCell","fTag","isCell","originParent","nextParent","parentTag","siblingTag","rangeTag","_isIgnoreNodeChange","isRangeFormatElement","copyFormatAttributes","isHR","outerHTML","fChildren","getElementDepth","currentFormat","rangeArr","tempList","_detachNested","cells","originList","cLen","newList","getPositionIndex","mergeSameTags","edge","getEdgeChildNodes","editInsideList","cellsLen","lastCell","innerList","prev","nodePath","_insiedList","getNodeFromPath","insertPrev","getNodePath","slPath","lastElementChild","mergeNestedTags","contextTable","_element","_tdElement","_trElement","_trElements","_tableXY","_maxWidth","_fixedColumn","_rtl","cellControllerTop","tableCellControllerPosition","resizeText","headerButton","mergeButton","splitButton","splitMenu","maxText","minText","_physical_cellCnt","_logical_cellCnt","_rowCnt","_rowIndex","_physical_cellIndex","_logical_cellIndex","_current_colSpan","_current_rowSpan","expansion","reduction","tablePicker","tableHighlight","tableUnHighlight","tableDisplay","tableController","setController_table","resizeButton","columnFixedButton","resizeDiv","setController_tableEditor","insertRowAboveButton","insertRowBelowButton","onMouseMove_tablePicker","appendTable","onClick_tableController","tableResize","fixed_column_width","table_header","insert_row_above","insert_row_below","delete_row","merge_cell","insert_column_left","insert_column_right","delete_column","split_cell","oTable","createCells","tableHTML","firstTd","reset_table_picker","returnElement","cell","cellsHTML","offsetX","offsetY","highlight","unHighlight","tablePlugin","_removeEvents","_selectedTable","_toggleEditor","_shift","_selectedCells","_fixedCell","_selectedCell","_fixedCellName","call_controller_tableEdit","tdElement","tableElement","tableLayout","setTableStyle","setPositionControllerTop","setPositionControllerDiv","setControllerPosition","setCellInfo","rows","cellIndex","cellCnt","colSpan","rowIndex","rowSpan","rowSpanArr","spanIndex","rs","logcalIndex","row","sort","editTable","isRow","tableAttr","positionCell","editRow","removeCells","firstRow","rightCell","editCell","positionResetElement","up","originRowIndex","sign","spanCells","spanCell","insertRow","passCell","removeCell","removeSpanArr","insertIndex","applySpan","cellColSpan","removeIndex","getOverlapRangeAtIndex","removeFirst","removeEnd","rLen","getArrayIndex","rowSpanCell","_closeSplitMenu","openSplitMenu","removeDocEvent","addDocEvent","vertical","currentCell","currentRow","currentColSpan","currentRowSpan","newRowSpan","nextRowIndex","nextRow","nextCells","newRow","physicalIndex","mergeCell","emptyRowFirst","emptyRowLast","mergeHTML","rowIndexFirst","rowIndexLast","removeRows","setActiveButton","toggleHeader","toggleClass","sizeIcon","fixedCell","selectedCell","_bindOnSelect","_bindOffSelect","_bindOffShift","_offCellMultiSelect","_initBind","_wd","_onCellMultiSelect","_antiBlur","_setMultiCells","startCell","endCell","findSelectedCell","newCs","newCe","newRs","newRe","onTableCellMultiSelect","emptyDiv","removeItemAllParents","formatBlock","_formatList","pickUp","lang_toolbar","defaultFormats","formatList","attrs","formatTitle","formatContext","rangeElement","firstPath","rlist","detachList","modifiedFormsts","freeElement","focusElement","before","inner","isComp","isSameAttributes","newFormat","replaceChild","lineHeights","lineHeightContext","getFormatElement","templateDiv","templateList","templates","_classList","menuLang","defaultList","_class","paragraphStyles","paragraphList","_styleList","styleList","textStyles","styleButtonList","selectionNode","btn","checkStyles","cssText","classes","classList","removeNodes","selectMenu","callerContext","setForm","createList","menus","initEvent","forms","clickMethod","callerName","onMousedown_list","onMouseMove_list","onClick_list","moveItem","selectIndex","getItem","positionHandler","setDialogForm","host","relList","linkRel","defaultRel","linkRelDefault","protocol","download","anchorPlugin","modal","urlInput","linkDefaultRel","currentRel","linkAnchor","linkValue","_change","check_new_window","check_bookmark","anchorText","downloadCheck","bookmarkButton","relButton","relPreview","onClick_relButton","onClick_relList","onChange_newWindowCheck","onChange_downloadCheck","onChangeAnchorText","onChangeUrlInput","onKeyDownUrlInput","onFocusUrlInput","onBlurUrlInput","onClick_bookmarkButton","contextAnchor","dialog","updateModal","selfPathBookmark","linkTargetNewWindow","setRel","setLinkPreview","setHeaderBookmark","_closeRelMenu","toggleRelList","offsetLeft","offsetTop","modalForm","cmd","relAttr","relListEl","rels","checkedRel","createHeaderList","contextList","urlValue","headers","getListChildren","valueRegExp","_setMenuListPosition","contextLink","linkProtocol","noPrefix","linkNoPrefix","reservedProtocol","sameProtocol","escapeStringRegexp","setCtx","updateAnchor","displayText","notText","createAnchor","oA","_relMerge","_relDelete","_linkAnchor","anchorCtx","link_dialog","setDialog","link_controller","setController_LinkButton","linkController","onClick_linkController","link_btn","currentControllerName","textNode","oFormat","insertNode","controllerArray","call_controller","selectionATag","editLink","linkBtn","getChildElement","contextImage","sizeUnit","_imageSizeUnit","_linkElement","_altText","_align","_floatClassRegExp","_v_src","_linkValue","svgDefaultSize","base64RenderIndex","_cover","_container","inputX","inputY","_element_w","_element_h","_element_l","_element_t","_defaultSizeX","_defaultSizeY","_origin_w","imageWidth","_origin_h","imageHeight","_proportionChecked","_resizing","imageResizing","_resizeDotHide","imageHeightShow","_rotation","imageRotation","_alignHide","imageAlignShow","_onlyPercentage","imageSizeOnlyPercentage","_ratio","_ratioX","_ratioY","_captionShow","_captionChecked","_caption","captionCheckEl","image_dialog","imgInputFile","imgUrlFile","previewSrc","openTab","_removeSelectedFiles","_onLinkPreview","_fileInputChange","imageGalleryButton","_openGallery","setInputSize","setRatio","sizeRevert","imageFileInput","imageAccept","imageMultipleFile","imageUrlInput","imageGalleryUrl","image_gallery","onlyPercentage","onlyPercentDisplay","heightDisplay","revert","textDecoration","callPlugin","_setUrlInput","alt","fileTags","call_controller_resize","imageEl","imageContainer","onImageDeleteBefore","focusEl","onImageUpload","tabName","contentClassName","tabContent","tabLinks","imagePlugin","update_image","submitAction","onRender_imgUrl","fileList","fileSize","limitSize","imageUploadSizeLimit","infoSize","imagesInfo","onImageUploadError","inputWidth","inputHeight","isUpdate","onImageUploadBefore","register","imageUploadUrl","filesLen","FormData","imageUploadHeader","callBack_imgUpload","setup_reader","imageUploadHandler","update_src","create_image","wFileReader","FileReader","filesStack","reader","updateElement","onRender_imgBase64","readAsDataURL","updateMethod","createMethod","onRender_link","imgTag","xy","_module_setInputSize","_module_setRatio","checkFileInfo","openModify","float","resetFileInfo","oImg","setAlign","_image_create_onload","mediaAutoSelect","selectComponent","appendFormatTag","openController","notHistoryPush","changeSize","isNewContainer","isNumber","modifiedCaption","isNewAnchor","imageElement","newEl","existElement","isNotCheckingNode","refer","removeEmptyNode","splitElement","htmlRemoveWhiteSpace","isFigures","_rotateVertical","resetTransform","setTransformSize","getNumber","userSize","notOpen","_module_setModifyInputSize","setPercentSize","setSize","setAutoSize","_module_sizeRevert","notResetPercentage","onlyW","cancelPercentAttr","_module_saveCurrentSize","marginTop","maxWidth","setOriginSize","originSize","heightPercentage","setCaptionPosition","minWidth","contextVideo","_videoSizeUnit","_youtubeQuery","youtubeQuery","_vimeoQuery","vimeoQuery","_videoRatio","videoRatio","_defaultRatio","videoWidth","videoHeight","videoResizing","videoHeightShow","videoRotation","videoAlignShow","videoSizeOnlyPercentage","video_dialog","videoInputFile","videoUrlFile","videoRatioOption","setVideoRatio","videoFileInput","videoAccept","videoMultipleFile","videoUrlInput","ratioList","videoRatioList","ratioDisplay","videoRatioShow","onlyWidthDisplay","_setTagAttrs","videoTagAttrs","hasOwn","createVideoTag","videoTag","_setIframeAttrs","frameBorder","allowFullscreen","videoIframeAttrs","createIframeTag","iframeTag","frame","onVideoDeleteBefore","onVideoUpload","setVideoRatioSelect","videoPlugin","setup_url","videoUploadSizeLimit","videosInfo","onVideoUploadError","onVideoUploadBefore","videoUploadUrl","videoUploadHeader","callBack_videoUpload","videoUploadHandler","create_video","DOMParser","parseFromString","splitUrl","endsWith","oFrame","isYoutube","isVimeo","newTag","inputUpdate","isPercent","_update_videoCover","prevFrame","figcaption","ratioSelected","ratioOptions","onlyH","paddingBottom","dataSize","contextAudio","targetSelect","audioWidth","audioHeight","audio_dialog","audioInputFile","audioUrlFile","audio_controller","setController","onClick_controller","audioFileInput","audioAccept","audioMultipleFile","audioUrlInput","_createAudioTag","oAudio","audioTagAttrs","onAudioDeleteBefore","onAudioUpload","updateCover","setupUrl","audioUploadSizeLimit","audiosInfo","onAudioUploadError","onAudioUploadBefore","audioUploadUrl","audioUploadHeader","callBack_upload","audioUploadHandler","create_audio","prevElement","selectionTag","onControllerOff","KATEX_WEBSITE","previewElement","fontSizeElement","defaultFontSize","_mathExp","math_dialog","onPasteMath","_renderMathExp","math_controller","setController_MathButton","mathController","onClick_mathController","mathFontSize","math_btn","managedTags","method","katex","dom","createContextualFragment","_renderer","HTMLDecoder","exp","renderToString","throwOnError","displayMode","contextMath","mathExp","katexEl","HTMLEncoder","containerEl","empty","zeroWidthSpace","mathTag","mathBtn","imageGalleryData","imageGalleryHeader","drawItems","setImage","srcName","thumbnail","hasElementType","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","entries","warning","formatting","complex","code_view","line_height","paragraph_style","text_style","arrow_down","font_color","highlight_color","horizontal_rule","show_blocks","modify","auto_size","rotate_left","rotate_right","mirror_horizontal","mirror_vertical","line_break","alert_outline","more_text","more_paragraph","more_plus","more_horizontal","more_vertical","attachment","magic_stick","empty_file","isIE_Edge","isOSX_IOS","isChromium","isMobile","isResizeObserverSupported","_propertiesInit","appVersion","platform","chrome","ResizeObserver","maxTouchPoints","msMaxTouchPoints","_allowedEmptyNodeList","_HTMLConvertor","contents","zeroWidthRegExp","onlyZeroWidthRegExp","fontValueMap","ActiveXObject","getValues","camelToKebabCase","kebabToCamelCase","elementName","_hasOwn","getIncludePath","nameArray","extension","pathList","regExp","extRegExp","editorTag","getPageStyle","doc","sheets","styleSheets","rules","cssRules","getIframeDocument","iframe","wDocument","contentDocument","getAttributesToString","exceptAttrs","attrString","getByteLength","encoder","cr","unescape","TextEncoder","encode","isNonEditable","isTextStyleElement","isInputElement","isClosureRangeFormatElement","isFreeFormatElement","isClosureFreeFormatElement","isUneditableComponent","validation","getFreeFormatElement","getClosureFreeFormatElement","copyTagAttributes","originEl","copyEl","copyStyles","getArrayItem","multi","arrayIncludes","idx","nextIdx","prevIdx","_newOffsets","finds","tempText","previous","offsets","style_a","style_b","compStyle","class_a","class_b","reg","compClass","isEmptyLine","isSpanWithoutAttr","isTable","isBreak","isMedia","maxDec","toFixed","recursionFunc","getListChildNodes","compareElements","aNode","bNode","ancestor","aIndex","bIndex","query","check","getPreviousDeepestNode","ceiling","previousNode","getNextDeepestNode","nextNode","childList","getOffset","wysiwygFrame","offsetElement","offsetParent","aStart","aEnd","bStart","bEnd","overlap","txt","styleName","isImportantDisabled","hasAttribute","setDisabledButtons","buttonList","important","stopParent","detachNestedList","baseNode","rNode","_deleteNestedList","cNodes","rChildren","baseParent","liSibling","liParent","bp","suffixIndex","splitText","after","depthEl","pElement","nodePathArray","onlyText","inst","nodePathLen","depthIndex","cDepth","spliceDepth","childs","childLength","nLen","addOffset","textOffset","tempL","notRemoveNode","forceDelete","_notTextNode","htmlCompress","des","_isExcludeSelectionElement","_isMaintainedNode","_isSizeNode","_disallowedTags","createTagsWhitelist","createTagsBlacklist","_consistencyCheckOfHTML","documentFragment","htmlCheckWhitelistRegExp","htmlCheckBlacklistRegExp","classNameFilter","strictHTMLValidation","removeTags","emptyTags","wrongList","withoutFormatCells","wrongTags","nrtag","fel","checkTags","cellChildren","_setDefaultOptionStyle","optionStyle","minHeight","styleArr","_setIframeDocument","head","_setIframeCssTags","_editableClass","linkNames","iframeCSSFileName","wRegExp","tagString","CSSFileName","styleTag","_initOptions","top_div","tool_bar","_createToolBar","toolbarShadow","pluginCallButtons","_checkKatexMath","arrow","sticky_dummy","editor_div","initElements","_initElements","bottomBar","wysiwyg_div","placeholder_span","textarea","resizing_bar","resizingBar","navigation","char_wrapper","charWrapper","char_counter","charCounter","loading_box","line_breaker","line_breaker_t","line_breaker_b","resize_back","focusTemp","tabIndex","toolbarContainer","resizingBarContainer","_checkCodeMirror","constructed","_top","_relative","_toolBar","_toolbarShadow","_menuTray","_editorArea","_wysiwygArea","_codeArea","_resizingBar","_navigation","_charWrapper","_charCounter","_lineBreaker","_lineBreaker_t","_lineBreaker_b","_resizeBack","_stickyDummy","_arrow","_focusTemp","_responsiveButtons","responsiveButtons","codeMirror","cmOptions","htmlMode","lineNumbers","lineWrapping","viewportMargin","fromTextArea","codeMirrorEditor","katexOptions","_setOptions","mergeOptions","originOptions","originElement","editorArea","isNewToolbarContainer","isNewToolbar","topArea","callButtons","topDiv","toolBar","toolBarArrow","_editorStyles","toolbarWidth","wysiwygDiv","iframeAttributes","charCounterLabel","charLabel","maxCharCount","char_max","_plugins","pluginsValues","strictMode","_defaultLang","allowedClassNames","historyStackDelayTime","frameAttrbutes","defaultTag","textTags","sup","_default","_new","_textTagsMap","_defaultCommand","__allowedScriptTag","tagsBlacklist","_defaultTagsWhitelist","_editorTagsWhitelist","addTagsWhitelist","_setWhitelist","pasteTagsBlacklist","pasteTagsWhitelist","attributesWhitelist","attributesBlacklist","lineAttrReset","_printClass","stickyToolbar","fullScreenOffset","fullPage","previewTemplate","printTemplate","showPathLabel","resizeEnable","charCounterType","clientWidth","clientHeight","tabDisable","shortcutsDisable","shortcutsHint","callBackSave","_icons","__listCommonStyle","whitelist","_defaultButtons","addShift","indentKey","indentIcon","_createModuleGroup","oDiv","oUl","_createButton","buttonClass","dataCommand","dataDisplay","_disabled","oLi","oButton","separator_vertical","_buttonTray","defaultButtonList","moduleElement","buttonElement","moreLayer","buttonGroupLoop","more","moreContainer","moreCommand","buttonGroup","moreButton","matched","custom","sv","enterDiv","tool_cover","cons","loading","lineBreaker","lineBreaker_t","lineBreaker_b","resizeBackground","tool","notice","notice_div","notice_span","notice_button","onClick_cancel","init_options","idOrElement","_init_options","_Constructor","_util","_parser","_prevRtl","_editorHeight","_editorHeightPadding","_listCamel","_listKebab","__focusTemp","_ww","_shadowRoot","_shadowRootControllerEventTarget","_notice","initPlugins","_targetPlugins","submenu","_submenuName","_bindedSubmenuOff","_bindedContainerOff","submenuActiveButton","containerActiveButton","currentControllerTarget","currentFileComponentInfo","codeViewDisabledButtons","resizingDisabledButtons","_moreLayerActiveButton","_htmlCheckWhitelistRegExp","_htmlCheckBlacklistRegExp","_disallowedTextTagsRegExp","editorTagsWhitelistRegExp","editorTagsBlacklistRegExp","pasteTagsWhitelistRegExp","pasteTagsBlacklistRegExp","isReadOnly","_attributesWhitelistRegExp","_attributesWhitelistRegExp_all_data","_attributesBlacklistRegExp","_attributesTagsWhitelist","_attributesTagsBlacklist","_bindControllersOff","_isInline","_isBalloon","_isBalloonAlways","_inlineToolbarAttr","isShow","_notHideToolbar","_sticky","_lineBreakerButton","activePlugins","managedTagsInfo","_charTypeHTML","_fileInfoPluginsCheck","_fileInfoPluginsReset","_fileManager","pluginRegExp","pluginMap","commandMap","_commandMapStyles","STRONG","EM","DEL","_styleCommandMap","_cleanStyleRegExp","_variable","isChanged","isCodeView","isFullScreen","innerHeight_fullScreen","resizeClientY","codeIndent","minResizingSize","currentNodes","currentNodesMap","_range","_selectionNode","_originCssText","_bodyOverflow","_editorAreaOriginCssText","_wysiwygOriginCssText","_codeOriginCssText","_fullScreenAttrs","sticky","balloon","inline","_lineBreakComp","_lineBreakDir","_formatAttrsTemp","_saveButtonStates","allCommandButtons","currentButtons","_recoverButtonStates","oldButton","callBackFunction","_target","moduleArray","moduleName","getGlobalScrollOffset","submenuOn","submenuName","_setMenuPosition","moreLayerOff","containerOn","containerName","_containerName","containerOff","toolbarW","toolbarOffset","_getEditorOffsets","menuW","elementW","rtlW","rtlL","overLeft","offsetEl","bt","toolbarTop","menuHeight","menuHeight_bottom","menuTop","insTop","menuHeight_top","arg","getFileComponent","showController","referEl","topMargin","controllerW","referElW","allow","overSize","showDefaultUI","nativeFocus","__focus","_editorRange","currentNode","commonAncestorContainer","_applyTagEffects","_toggleToolbarBalloon","fileComponentInfo","startCon","startOff","endCon","endOff","_rangeInfo","_setKeyEffect","compareValue","rightDir","_selectionVoid","activeEl","extentNode","firstFormat","comm","_resetRangeToTextNode","tempCon","tempOffset","tempChild","onlyBreak","emptyText","commonCon","lineNodes","startLine","endLine","startIdx","endIdx","onlyTable","startRangeEl","endRangeEl","sameRange","removeDuplicate","myComponent","selectedLines","isEdgePoint","_isEdgeFormat","formatNode","currentFormatEl","oFormatName","checkCharCount","notSelect","removeNode","formatEl","depthFormat","_setComponentLineBreaker","t_style","b_style","resizeContainer","componentTop","wScroll","_checkDuplicateNode","_dupleCheck","oStyles","duple","afterNode","originAfter","tempAfterNode","fNode","insertListCell","tempParentNode","freeFormat","isFormats","isEdge","prevContainer","sameParent","subList","formatRange","removedTag","oldParent","rangeCon","fomatNode","chList","dupleNodes","cItem","_setIntoFreeFormat","zeroWidth","oNodeChildren","lastONode","fileComponent","isStartEdge","isEndEdge","startPrevEl","endNextEl","beforeNode","startIndex","startNode","endNode","_nodeRemoveListItem","substringData","endUl","startLi","rangeLines","linesLoop","nested","fEl","lEl","standTag","beforeTag","parentDepth","listParent","lineArr","removeItems","nextLine","nextList","removeArray","splitRange","newRangeElement","firstNode","lastNode","rangeEl","insertedNew","moveComplete","appendNode","insNode","originNode","insChildren","originNext","detachRange","lineIndex","insNext","innerChildren","rangeParent","rangeRight","childEdge","listFirst","listLast","styleArray","removeNodeArray","strictRemove","isRemoveNode","isRemoveFormat","newNodeName","sNode","checkCnt","checkAttrs","ckeckClasses","classReg","styleCheck","classCheck","styleRegExp","classRegExp","removeNodeRegExp","wBoolean","_removeCheck","checkNode","vNode","tagRemove","originStyle","originClasses","oneLine","endLength","isRemoveAnchor","isSizeNode","_getMaintainedNode","_util_getMaintainedNode","_util_isMaintainedNode","_resetCommonListCell","newRange","_nodeChange_oneLine","_setCommonListStyle","appliedCommonList","_nodeChange_endLine","_nodeChange_middleLine","_nodeChange_startLine","elStyles","elKeys","removeProperty","sel","appliedEl","childStyle","elStyle","cKeys","_stripRemoveNode","_isRemove","newInnerNode","parentCon","sameTag","nNodeArray","pNode","isSameNode","pCurrent","startPass","endPass","checkCss","coverNode","prevNode","prevAnchorNode","childNode","anchors","aChildren","aLen","ancestorAnchorNode","afterAnchorNode","textNode_s","textNode_e","endConReset","newStartOffset","startPath","mergeEndCon","newEndOffset","endPath","newOffsets","_endContainer","passNode","cloneChild","isTopNode","tempNode","newCssText","newClass","noneChange","actionCall","_showToolbarBalloon","_showToolbarInline","commandHandler","toggleCodeView","toggleFullScreen","toggleDisplayBlocks","setDir","nodesMap","marginDir","_resourcesStateChange","_setCodeDataToEditor","_hideToolbar","_resetCachingButton","_setEditorDataToCodeView","scrollHeight","refresh","_checkPlaceholder","code_html","_getCodeView","parseDocument","headChildren","convertContentsForEditor","editableClasses","codeContents","convertHTMLForCodeView","codeValue","_setCodeView","_var","wasToolbarHidden","_codeViewAutoHeight","onScroll_window","_iframeAutoHeight","contentsHTML","printDocument","wDoc","arrts","write","links","linkHTML","StyleMedia","windowObject","mimeType","changeDir","marginRight","marginLeft","convertValue","_resetComponents","setIframeContents","__scriptTagRegExp","onlyContents","cleanHTML","renderHTML","editableEls","getFullContents","_makeLine","requireFormat","__disallowedTagNameRegExp","_allowHTMLComments","_tagConvertor","_deleteDisallowedTags","__disallowedTagsRegExp","sizeNum","pxSize","_cleanStyle","face","allowedStyle","_cleanTags","lowLevelCheck","bAttr","wAttr","_editFormat","tempTree","_convertListCell","domTree","_isFormatData","_classNameFilter","textCompList","initMethod","__allowedScriptRegExp","returnHTML","brReg","isFormat","brChar","indentSize","elementRegTest","elementIndent","lineBR","nodeRegTest","tagIndent","XMLSerializer","serializeToString","useCapture","_charCount","inputText","countType","nextCharCount","getCharLength","_setCharCount","over","getCharCount","slicePosition","_callCounterBlink","resetResponsiveToolbar","responsiveSize","_responsiveButtonSize","responsiveWidth","_responsiveCurrentSize","setToolbarButtons","_checkComponents","getDoc","ignoredList","OUTDENT","INDENT","_initHTML","getPropertyValue","sPrefix","ShadowRoot","shadowRoot","disallowTextTags","allowTextTags","getRegList","str2","defaultAttr","regEndStr","_wAttr","tagsAttr","allAttr","_bAttr","_cachingButtons","managedClass","filePluginRegExp","change","delayTime","pushDelay","stackIndex","setContentsFromStack","pushStack","delay","go","getCurrentIndex","ignoreChangeEvent","_destroy","_history","_onChange_historyStack","_iframeAuto","_initWysiwygArea","__callResizeFunction","resizeObserverEntry","borderBoxSize","blockSize","contentRect","onResizeEditor","_setDefaultFormat","formatName","_setOptionsInit","_Context","_getConstructed","_editorInit","_addEvent","_offStickyToolbar","onResize_window","_resizeObserver","observe","_toolbarObserver","contextEl","_IEisComposing","_lineBreakerBind","_deleteKeyCode","_cursorMoveKeyCode","_directionKeyCode","_nonTextKeyCode","_historyIgnoreKeyCode","_onButtonsCheck","_frontZeroWidthReg","_keyCodeShortcut","_shortcutCommand","keyStr","classOnCheck","commandMapNodes","_buttonsEventHandler","addGlobalEvent","removeGlobalEvent","onClick_toolbar","__selectionSyncEvent","onMouseDown_wysiwyg","onMouseDown","tableCell","onClick_wysiwyg","selectionNodeDeepestFirstChild","selectedComponentInfo","prevLi","_balloonDelay","_showToolbarBalloonDelay","rangeObj","isDirTop","rects","getClientRects","globalScroll","editorWidth","stickyTop","editorLeft","nodeOffset","noText","arrowMargin","toolbarHeight","iframeRects","_setToolbarOffset","editorParent","absoluteLeft","overRight","resetTop","space","_getPageBottomSpace","arrow_left","showInline","onInput_wysiwyg","onInput","_isUneditableNode","isFront","siblingKey","siblingNode","_isUneditableNode_getSibling","selectNode","_onShortcutKey","onKeyDown_wysiwyg","ctrl","onKeyDown","selectRange","fileComponentName","_onKeyDown_wysiwyg_arrowKey","_hardDelete","defaultFormat","con","prevLast","ignoreZWS","nextEl","moveCell","endChild","tabText","freeFormatEl","enterHTML","formatEndEdge","formatStartEdge","_enterPrevent","innerNode","parentLi","newListCell","selectionFormat","wSelection","insertHTML","wOffset","focusNext","brPrev","brNext","focusBR","isMultiLine","innerRange","tempEl","compContext","nbsp","componentInfo","currentCellFirstNode","currentCellLastNode","isCellFirstNode","isCellLastNode","siblingToSet","previousRow","selectPrevious","selectNext","previousDeepestNode","onKeyUp_wysiwyg","oFormatTag","isComposing","frontZeroWidthCnt","onScroll_wysiwyg","onScroll","onFocus_wysiwyg","onFocus","onBlur_wysiwyg","onMouseDown_resizingBar","_resize_editor","closureFunc","resizeInterval","isToolbarHidden","editorHeight","scrollY","editorTop","inlineOffset","_onStickyToolbar","scroll","sCell","eCell","sIsCell","eIsCell","sComp","eComp","onPaste_wysiwyg","_dataTransferAction","_setClipboardComponent","onCopy_wysiwyg","onSave_wysiwyg","onSave","onCut_wysiwyg","onCut","onDrop_wysiwyg","_setDropLocationSelection","rangeOffset","caretRangeFromPoint","plainText","cleanData","getData","tempDiv","tempRange","_setClipboardData","MSData","onPaste","onDrop","insertImage","onMouseMove_wysiwyg","lineBreakerStyle","ctxEl","_onMouseDown_lineBreak","_onLineBreak","eventWysiwyg","_setResponsiveToolbar","_removeEvent","unobserve","sizeArray","buttonsObj","onSetToolbarButtons","newToolbar","newContext","_options","newStyles","noticeClose","getText","getImagesInfo","getFilesInfo","notCleaningData","rangeSelection","checkHTML","firstCon","setOption","topAreaStyle","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","checkDCE","classNames","appendClass","parseValue","ex","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","peek","rewind","recordedState","_proto","getDisplayName","findIndex","sortable","sortFunction","ASC","DESC","noop","when","conditionalStyle","toggleOnSelectedRowsChange","keyField","rowCount","mergeSelections","allSelected","selectedRows","selectedCount","isSelected","singleSelect","totalRows","selectedRowsFlag","sortDirection","selectedColumn","clearSelectedOnSort","currentPage","page","paginationServer","visibleOnly","persistSelectedOnPageChange","rowsPerPage","css","theme","$fixedHeader","_ref5","headRow","_ref6","$dense","denseStyle","_len2","_key2","_len3","_key3","_ref7","$headCell","_ref8","$noPadding","_ref9","grow","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","compact","_ref16","_ref17","_ref18","_ref19","isInteger","_len4","_key4","_ref20","$wrapCell","_ref21","$allowOverflow","_ref22","$renderAsCell","_ref23","$isDragging","draggingStyle","_ref24","$cellStyle","_ref25","column","dataTag","isDragging","onDragStart","onDragOver","onDragEnd","onDragEnter","onDragLeave","conditionalCellStyles","role","allowOverflow","wrap","selector","_ref26","componentOptions","indeterminate","cursor","padding","verticalAlign","_len5","_key5","_ref27","selectableRowsComponent","selectableRowsComponentProps","selectableRowsSingle","selectableRowDisabled","onSelectedRow","_ref28","expanderButton","_ref29","expanded","expandableIcon","onToggled","_ref30","expanderCell","_ref31","_ref32","expanderRow","_ref33","$extendedRowStyle","_ref34","ExpanderComponent","expanderComponentProps","extendedRowStyle","extendedClassNames","LTR","RTL","AUTO","LEFT","RIGHT","CENTER","SM","MD","LG","_ref35","$highlightOnHover","highlightOnHoverStyle","_ref36","_ref37","_ref38","$striped","stripedStyle","_ref39","_ref40","$pointerOnHover","_ref41","$selected","selectedHighlightStyle","_ref42","$conditionalStyle","_ref43","conditionalRowStyles","defaultExpanded","defaultExpanderDisabled","dense","expandableRows","expandableRowsComponent","expandableRowsComponentProps","expandableRowsHideExpander","expandOnRowClicked","expandOnRowDoubleClicked","highlightOnHover","expandableInheritConditionalStyles","onRowClicked","onRowDoubleClicked","onRowMouseEnter","onRowMouseLeave","onRowExpandToggled","pointerOnHover","selectableRows","selectableRowsHighlight","striped","draggingColumnId","onMouseEnter","onMouseLeave","omit","ignoreRowClick","_ref44","$sortActive","_ref45","$sortDirection","_ref46","sortActive","_ref47","_ref48","headCells","_ref49","_ref50","_ref51","_ref52","sortIcon","sortServer","pagination","persistSelectedOnSort","selectableRowsVisibleOnly","onSort","scrollWidth","handleSortChange","renderCustomSortIcon","draggable","reorder","onKeyPress","_ref53","headCell","rowData","onSelectAllRows","_ref54","contextMenu","_ref55","_ref56","$rtl","_ref57","_ref58","$visible","activeStyle","_ref59","contextMessage","contextActions","contextComponent","singular","plural","_ref60","_ref61","_ref62","_ref63","showMenu","SuppressedError","_ref64","_ref65","$wrapContent","_ref66","subHeader","wrapContent","_ref67","$responsive","_ref68","$fixedHeaderScrollHeight","_ref69","responsiveWrapper","progress","_ref70","tableWrapper","_ref71","_ref72","noData","DropdownIcon","xmlns","viewBox","selectableRowsNoSelectAll","selectableRowSelected","clearSelectedRows","expandableRowDisabled","expandableRowExpanded","progressPending","progressComponent","persistTableHead","noContextMenu","defaultSortFieldId","defaultSortAsc","responsive","noDataComponent","noTableHead","noHeader","subHeaderAlign","subHeaderWrap","subHeaderComponent","fixedHeader","fixedHeaderScrollHeight","paginationServerOptions","paginationDefaultPage","paginationResetDefaultPage","paginationTotalRows","paginationPerPage","paginationRowsPerPageOptions","paginationComponent","paginationComponentOptions","paginationIconFirstPage","paginationIconLastPage","paginationIconNext","paginationIconPrevious","customStyles","onChangePage","onChangeRowsPerPage","onSelectedRowsChange","onColumnOrderChange","rowsPerPageText","rangeSeparatorText","noRowsPerPage","selectAllRowsItem","selectAllRowsItemText","nav","_ref73","_ref74","pageButtonsStyle","_ref75","$isRTL","_ref76","innerWidth","useFirstUpdate","isMergeableObject","Ge","arrayMerge","cloneUnlessOtherwiseSpecified","customMerge","primary","secondary","background","divider","hover","light","dark","tableColumns","handleDragStart","handleDragEnter","handleDragOver","handleDragLeave","handleDragEnd","defaultSortDirection","defaultSortColumn","et","nt","ot","at","lt","rt","dt","ct","gt","ut","mt","ft","ht","wt","Ct","yt","vt","Rt","St","Et","Ot","paddingLeft","paddingRight","borderBottomWidth","borderBottomColor","borderBottomStyle","transitionDuration","transitionTimingFunction","willChange","wordBreak","transitionProperty","outlineStyle","outlineWidth","outlineColor","borderRadius","outline","borderTopStyle","borderTopWidth","borderTopColor","justifyContent","$t","Pt","kt","Dt","Ht","jt","Ft","Tt","It","Mt","At","Lt","zt","ThemeProvider","use","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","memoize","reactPropsRegex","isPropValid","styledComponentId","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","groupSizes","Uint32Array","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","registerName","getTag","__webpack_nonce__","sheet","ownerNode","isServer","useCSSOMInjection","gs","names","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clear","clearRules","clearTag","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","hash","stylisPlugins","disableCSSOMInjection","disableVendorPrefixes","getName","isCss","startsWith","parentComponentId","shouldForwardProp","componentStyle","foldedComponentIds","$as","as","withComponent","_foldedDefaultProps","withConfig","createStyles","removeStyles","renderStyles","_emitSheetCSS","getStyleTags","sealed","getStyleElement","nonce","seal","collectStyles","interleaveWithNodeStream","StyleSheet","masterSheet","_resizeClientX","_resizeClientY","_resize_w","_resize_h","_resize_direction","_move_path","_isChange","alignIcons","resize_div_container","setController_resize","resizeDot","resizeDisplay","resize_button","setController_button","resize_handles","resizeHandles","resizeButtonGroup","rotationButtons","percentageButtons","alignMenu","alignMenuList","alignButton","autoSizeButton","captionButton","onMouseDown_resize_handle","onClick_resizeButton","resize_container","pluginObj","percentageRotation","xUnit","yUnit","dec","xValue","yValue","contextResizing","isVertical","displayX","displayY","resizeDotShow","rotations","pButtons","_closeAlignMenu","openAlignMenu","currentModule","percentY","percentage","_setTransForm","slope","deg","alignValue","captionText","transOrigin","offsetW","offsetH","closureFunc_bind","resizing_element_bind","cancel_controller_resize","resizing_element","resultW","resultH","limit","SunEditor_1","HASH_UNDEFINED","funcTag","genTag","reIsHostCtor","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","exec","IE_PROTO","funcToString","reIsNative","getNative","nativeCreate","Hash","entry","ListCache","MapCache","assocIndexOf","baseIsNative","pattern","isFunction","isHostObject","toSource","getMapData","__data__","isKeyable","resolver","memoized","Cache","kind","dialog_div","dialog_back","dialog_area","modalArea","_onMouseDown_dialog","_onClick_dialog","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","amdO","getter","leafPrototypes","getProto","ns","definition","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","charset","timeout","nc","onScriptComplete","onerror","doneFns","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","Action","PopStateEventType","invariant","cond","getHistoryState","usr","createLocation","_extends","parsePath","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","Pop","getIndex","handlePop","createURL","replaceState","listen","encodeLocation","Push","historyState","pushState","DOMException","Replace","ResultType","matchRoutes","routes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","score","siblings","every","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matches","decoded","decodePath","matchRouteBranch","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","isOptional","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","matcher","compiledParams","regexpSource","paramName","compilePath","captureGroups","splatValue","nextChar","getInvalidPathError","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","isRouteErrorResponse","statusText","internal","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useLocation","UNSAFE_invariant","useIsomorphicLayoutEffect","static","useNavigate","router","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","navigate","fromRouteId","useNavigateStable","dataRouterContext","future","routePathnamesJson","UNSAFE_getResolveToMatches","useNavigateUnstable","OutletContext","useParams","routeMatch","useResolvedPath","_temp2","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","errors","useRouteError","lightgrey","preStyles","defaultErrorElement","RenderErrorBoundary","super","revalidation","errorInfo","routeContext","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState","_future","v7_partialHydration","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","loader","reduceRight","shouldRenderHydrateFallback","alreadyWarned$1","getChildren","hookName","useRouteContext","thisRoute","logV6DeprecationWarnings","renderFuture","routerFuture","v7_startTransition","v7_fetcherPersist","v7_normalizeFormMethod","v7_skipActionErrorRevalidation","Navigate","jsonPath","Outlet","useOutlet","Route","_props","Router","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","handle","createSearchParams","URLSearchParams","__reactRouterVersion","ViewTransitionContext","isTransitioning","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","newState","UNSAFE_logV6DeprecationWarnings","isBrowser","ABSOLUTE_URL_REGEX","Link","absoluteHref","reloadDocument","preventScrollReset","viewTransition","UNSAFE_NavigationContext","isExternal","currentUrl","targetUrl","_temp","joinedPathname","useHref","internalOnClick","replaceProp","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","NavLink","ariaCurrentProp","classNameProp","styleProp","_excluded2","routerState","UNSAFE_DataRouterStateContext","opts","vtContext","useViewTransitionState","currentPath","currentLocation","nextPath","nextLocation","nextLocationPathname","endSlashPosition","isActive","isPending","renderProps","ariaCurrent","UNSAFE_DataRouterContext","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","searchParams","locationSearch","defaultSearchParams","getAll","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","newSearchParams","iconClass","_jsx","Block","blockClass","BlockContent","blockContentClass","BlockBetween","BlockHead","wide","blockHeadClass","BlockHeadContent","BlockTitle","Tag","BlockDes","OverlineTitle","Col","xxl","classnames","Row","rowClass","iconSide","baseStyles","colorStyles","danger","iconSpacing","_jsxs","xsmall","small","medium","large","globalCssModule","setScrollbarWidth","conditionallyUpdateScrollbar","scrollbarWidth","scrollDiv","getScrollbarWidth","fixedContent","bodyPadding","mapToCssModules","cssModule","omitKeys","warned","warnOnce","deprecated","explanation","DOMElement","targetPropType","tagPropType","TransitionTimeouts","TransitionPropTypeKeys","keyCodes","esc","enter","tab","down","home","findDOMElements","isReactRefObj","isArrayOrNodeList","els","getTarget","allElements","focusableElements","addDefaultProps","innerRef","inverse","Card","_props$tag","PreviewCard","bodyClass","findUpper","extractedString","getDateStructured","dateString","getTime","getDate","getMonth","getFullYear","truncateText","imageAlt","Icon","DataTable","bodyClassName","DataTableBody","bodyclass","DataTableHead","DataTableRow","DataTableItem","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","setRef","fromEntries","acc","getWindow","isHTMLElement","HTMLElement","isShadowRoot","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","visualViewport","addVisualOffsets","getWindowScroll","win","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","clientLeft","clientTop","getLayoutRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","contain","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","placement","placements","modifierPhases","visited","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","_ref$options","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","_options$scroll","_options$resize","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","roundOffsetsByDPR","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","popperOffsets","initialStyles","attribute","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","getOppositePlacement","getOppositeVariationPlacement","rootNode","getRootNode","rectToClientRect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","axis","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","_loop","fittingPlacement","within","mathMax","mathMin","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","eventListeners","computeStyles","applyStyles","flip","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","NOOP","NOOP_PROMISE","Popper","_ref$placement","_ref$strategy","_ref$modifiers","referenceElement","popperElement","setPopperElement","_React$useState2","setArrowElement","_usePopper","prevOptions","optionsWithDefaults","updateStateModifier","popperOptions","newOptions","isEqual","popperInstanceRef","popperInstance","defaultCreatePopper","usePopper","childrenProps","arrowProps","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","_inheritsLoose","prevState","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","nodeRef","forceReflow","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","baseClass","baseClassActive","Fade","_addDefaultProps","_addDefaultProps$tag","_addDefaultProps$base","_addDefaultProps$base2","_addDefaultProps$inne","otherProps","transitionProps","pickKeys","pick","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","popperClassName","placementPrefix","arrowClassName","hideArrow","isOpen","boundariesElement","onClosed","fade","PopperContent","setTargetNode","getTargetNode","getRef","targetNode","_arrowClassName","_popperClassName","modifierNames","baseModifiers","extendedModifiers","popperTransition","ReactPopper","popperPlacement","renderChildren","getContainerNode","innerClassName","toggle","autohide","DEFAULT_DELAYS","isInDOMSubtree","subtreeRoot","isInDOMSubtrees","subtreeRoots","subTreeRoot","TooltipPopoverWrapper","_targets","currentTargetElement","addTargetEvents","handleDocumentClick","removeTargetEvents","showWithDelay","hideWithDelay","onMouseOverTooltipContent","onMouseLeaveTooltipContent","onEscKeyDown","_isMounted","updateTarget","clearShowTimeout","clearHideTimeout","triggers","_hideTimeout","_popover","_showTimeout","getDelay","getCurrentTarget","composedPath","isBubble","addEventOnTargets","removeEventOnTargets","newTarget","popperClasses","onMouseOver","Tooltip","arrowClasses","containerClassName","tooltipVisible","setTooltipVisible","handleMouseEnter","handleMouseLeave","lim","n2b","b2n","n2p","map$1","eq","hexString","isShort","alpha","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","hwb2rgb","hsv2rgb","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","teO","tEstN","tomato","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","unpacked","tkeys","unpack","transparent","RGB_RE","modHSL","tmp","proto","fromObject","functionParse","rgbParse","Color","hexParse","_rgb","_valid","valid","rgbString","hslString","mix","w2","w1","interpolate","rgb1","rgb2","clearer","greyscale","opaquer","negate","lighten","darken","saturate","desaturate","isNullOrUndef","isNumberFinite","isFinite","finiteOrDefault","valueOrDefault","toDimension","dimension","parseFloat","each","loopable","_elementsEqual","a0","ilen","datasetIndex","klen","isValidKey","_merger","tval","sval","merge","merger","mergeIf","_mergerIf","keyResolvers","resolveObjectKey","parts","part","_splitKey","_getKeyResolver","_capitalize","defined","setsEqual","TAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","almostEquals","epsilon","niceNum","roundedRange","niceRange","fraction","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","distanceBetweenPoints","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","_lookup","cmp","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","stub","_chartjs","_arrayUnique","requestAnimFrame","throttled","argsToUse","ticking","_toLeftRightCenter","_alignStartEnd","atEdge","elasticIn","elasticOut","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","isPatternOrGradient","getHoverColor","numbers","intlCache","formatNumber","cacheKey","formatter","Intl","NumberFormat","getNumberFormat","formatters","numeric","tickValue","ticks","chart","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","remain","significand","Ticks","overrides","descriptors","getScope$1","scope","Defaults","_descriptors","_appliers","datasets","getDevicePixelRatio","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","includeInvisible","maintainAspectRatio","onHover","parsing","scales","showLine","drawActiveElementsOnTop","describe","override","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","defaults","_scriptable","_indexable","_fallback","easing","visible","autoPadding","beginAtZero","grace","grid","drawOnChartArea","drawTicks","tickLength","tickWidth","_ctx","tickColor","border","dashOffset","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","minor","major","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","_measureText","longest","textWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","drawPoint","drawPointLegend","xOffset","cornerRadius","xOffsetW","yOffsetW","pointStyle","ellipse","arc","SQRT1_2","borderWidth","_isPointInArea","clipArea","unclipArea","decorateText","strikethrough","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","drawBackdrop","oldColor","renderText","strokeColor","textBaseline","setRenderOpts","backdrop","strokeText","fillText","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","objProps","read","toTRBL","toTRBLCorners","toPadding","toFont","toFontString","inputs","cacheable","parentContext","_createResolver","scopes","prefixes","finalRootScopes","_resolve","_cacheable","_scopes","_rootScopes","_getTarget","deleteProperty","_keys","_cached","proxy","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getKeysFromAllScopes","storage","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_subProxy","_stack","receiver","isScriptable","_resolveScriptable","isIndexable","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","resolveFallback","getScope","addScopes","parentScopes","parentFallback","rootScopes","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","positions","getPositionedStyle","suffix","getRelativePosition","borderBox","boxSizing","paddings","borders","useOffsetPos","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","margins","containerSize","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","supportsEventListenerOptions","passiveSupported","readUsedSize","getStyle","getRtlAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","original","getPropertyPriority","prevTextDirection","restoreTextDirection","Animator","_request","_charts","_running","_lastDate","_notify","anims","numSteps","initial","currentStep","_refresh","_update","remaining","running","draw","_active","_total","tick","_getAnims","charts","complete","_duration","animator","interpolators","boolean","factor","c0","Animation","cfg","_fn","_easing","_start","_prop","_from","_to","_promises","elapsed","rej","resolved","Animations","_chart","_properties","configure","animationOptions","animatedProps","_animateOptions","$shared","$animations","resolveTargetOptions","_createAnimations","awaitAll","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","singleMode","otherValue","isStacked","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","parsed","_cachedMeta","_stacks","iScale","iAxis","vAxis","indexScale","valueScale","getStackKey","_bottom","_visualValues","getFirstScaleId","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","DatasetController","_cachedDataOpts","getMeta","_type","_parsing","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","datasetElementType","dataElementType","linkScales","_stacked","addElements","isPluginEnabled","updateIndex","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","getDatasetMeta","scaleID","_getOtherScale","_dataCheck","iAxisKey","vAxisKey","adata","convertObjectDataToArray","isExtensible","listenArrayEvents","buildOrUpdateElements","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","labels","getLabels","singleScale","xAxisKey","yAxisKey","getParsed","getDataElement","updateRangeFromParsed","parsedValue","NaN","getMinMax","canStack","otherScale","createStack","NEGATIVE_INFINITY","otherMin","otherMax","minDefined","maxDefined","getUserBounds","getAllParsedValues","getMaxOverflow","getLabelAndValue","getLabelForValue","_clip","toClip","defaultClip","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","raw","createDataContext","createDatasetContext","_resolveElementOptions","sharing","datasetElementScopeKeys","resolveNamedOptions","_resolveAnimations","datasetAnimationScopeKeys","getSharedOptions","includeOptions","sharedOptions","_animationsDisabled","_getSharedOptions","firstOpts","previouslySharedOptions","updateSharedOptions","_setStyle","removeHoverStyle","setHoverStyle","_removeDatasetHoverStyle","_setDatasetHoverStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_sync","_dataChanges","_onDataPush","_onDataPop","_onDataShift","_onDataSplice","newCount","_onDataUnshift","abstract","DateAdapterBase","members","diff","startOf","endOf","adapters","binarySearch","metaset","lookupMethod","_reversePixels","evaluateInteractionItems","getSortedVisibleDatasetMetas","skip","getIntersectItems","useFinalPosition","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","startAngle","endAngle","getProps","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","horizontal","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","getMargins","marginForPositions","fitBoxes","boxes","refitBoxes","refit","setBoxDims","placeBoxes","userPadding","addBox","_layers","removeBox","layoutItem","minPadding","layoutBoxes","isHorizontal","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","total","updatePos","handleMaxPadding","BasePlatform","acquireContext","releaseContext","isAttached","updateConfig","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","removeListener","nodeListContains","nodeList","createAttachObserver","observer","MutationObserver","addedNodes","removedNodes","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","createResizeObserver","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","native","fromNativeEvent","addListener","DomPlatform","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","attach","isConnected","tooltipPosition","hasValue","final","tickOpts","determinedMaxTicks","_tickSize","maxScale","maxChart","determineMaxTicks","ticksLimit","maxTicksLimit","majorIndices","getMajorIndices","numMajorIndices","newTicks","spacing","skipMajors","evenMajorSpacing","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","offsetFromEdge","getTicksLimit","ticksLength","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","_startPixel","_endPixel","lineValue","getPixelForTick","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","Scale","_margins","paddingTop","labelRotation","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_cache","_dataLimitsCached","suggestedMin","suggestedMax","metas","getTicks","xLabels","yLabels","getLabelItems","_computeLabelItems","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","startPixel","endPixel","reversePixels","_alignToPixels","alignToPixels","_callHooks","notifyPlugins","beforeTickToLabelConversion","generateTickLabels","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetRight","isFullSize","_computeLabelSizes","widths","heights","jlen","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","gcLen","garbageCollect","valueAt","getPixelForValue","getValueForPixel","getPixelForDecimal","decimal","_int16Range","getDecimalForPixel","getBasePixel","getBaseValue","createTickContext","optionTicks","_computeGridLineItems","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","positionAxisID","step","optsAtIndex","optsAtIndexBorder","lineColor","borderDash","borderDashOffset","tickBorderDash","tickBorderDashOffset","tickAndPadding","hTickAndPadding","lineCount","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","tickTextAlign","labelPadding","_computeLabelArea","drawBackground","getLineWidthForValue","drawGrid","drawLine","drawBorder","lastLineWidth","drawLabels","renderTextOptions","drawTitle","titleX","titleY","titleArgs","gz","axisID","_maxDigits","TypedRegistry","isForType","isPrototypeOf","parentScope","isIChartComponent","itemDefaults","defaultRoutes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","unregister","Registry","controllers","_typedRegistries","_each","addControllers","addPlugins","addScales","_len6","_key6","getController","_get","getElement","getPlugin","getScale","removeControllers","_len7","_key7","removeElements","_len8","_key8","removePlugins","_len9","_key9","removeScales","_len10","_key10","typedRegistry","_getRegistryForType","_exec","itemReg","registry","camelMethod","PluginService","notify","hook","_createDescriptors","invalidate","_oldCache","_notifyStateChanges","localIds","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","idMatchesAxis","determineAxis","_len11","scaleOptions","_key11","getAxisFromDataset","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","boundDs","retrieveAxisFromDatasets","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","initOptions","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","_cachedScopes","mainScope","resetCache","keyLists","chartOptionScopes","subPrefixes","getResolver","hasFunction","needContext","resolverCache","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","onAnimationsComplete","onAnimationProgress","onProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","getSizeForArea","Chart","invalidatePlugins","userConfig","initialCanvas","existingChart","_detectPlatform","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_hiddenIndices","attached","_doResize","resizeDelay","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","ensureScalesHaveIDs","axisOptions","buildOrUpdateScales","scaleOpts","isRadial","dposition","dtype","scaleType","hasUpdated","_updateMetasets","_destroyDatasetMeta","_removeUnreferencedMetasets","_dataset","buildOrUpdateControllers","newControllers","isDatasetVisible","ControllerClass","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","_drawDatasets","_drawDataset","useClip","getDatasetArea","getElementsAtEventForMode","getVisibleDatasetCount","setDatasetVisibility","toggleDataVisibility","getDataVisibility","_updateVisibility","_stop","toBase64Image","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","updateHoverStyle","getActiveElements","setActiveElements","activeElements","lastActive","pluginId","replay","hoverOptions","deactivated","activated","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","getBoxSize","labelOpts","usePointStyle","pointStyleWidth","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","buildLabels","generateLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","legendItem","_itemHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","legendItemText","calculateItemWidth","fontLineHeight","calculateLegendItemHeight","calculateItemHeight","calculateItemSize","adjustHitBoxes","rtlHelper","hitbox","_draw","defaultColor","halfFontSize","textDirection","lineDash","drawOptions","SQRT2","centerX","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","_getLegendItemAt","hitBox","handleEvent","onLeave","isListened","hoveredItem","sameItem","itemsEqual","plugin_legend","_args","legend","afterEvent","useBorderRadius","borderCapStyle","borderJoinStyle","positioners","average","xSet","eventPosition","nearestElement","pushOrConcat","toPush","splitNewlines","createTooltipItem","formattedValue","getTooltipSize","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","defaultCallbacks","beforeTitle","tooltipItems","labelCount","afterTitle","beforeLabel","tooltipItem","labelColor","labelTextColor","bodyColor","labelPointStyle","afterLabel","beforeFooter","afterFooter","invokeCallbackWithFallback","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","getTitle","getBeforeBody","getBody","bodyItems","scoped","getAfterBody","getFooter","_createItems","itemSort","positionAndSize","backgroundPoint","external","drawCaret","tooltipPoint","caretPosition","getCaretPosition","ptX","ptY","titleColor","_drawColorBox","colorX","rtlColorX","yOffSet","colorY","centerY","multiKeyBackground","outerX","innerX","strokeRect","drawBody","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","drawFooter","footerAlign","footerColor","tooltipSize","quadraticCurveTo","_updateAnimationTarget","animX","animY","_willRender","hasTooltipContent","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","findOrAddLabel","addedLabels","addIfString","_getLabelForValue","CategoryScale","_startValue","_valueRange","_addedLabels","added","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","rounded","almostWhole","decimalPlaces","relativeLabelSize","LinearScaleBase","_endValue","handleTickRangeOptions","setMin","setMax","minSign","maxSign","getTickLimit","stepSize","computeTickLimit","LinearScale","INTERVALS","millisecond","common","steps","minute","hour","day","quarter","year","UNITS","sorter","adapter","_adapter","parser","isoWeekday","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","interval","MAX_SAFE_INTEGER","addTick","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","displayFormats","_unit","_majorUnit","_offsets","_normalized","normalized","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","weekday","hasWeekday","getDataTimestamps","tooltipFormat","fmt","_tickFormatFunction","minorFormat","majorFormat","_getLabelSize","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","DropdownContext","InputGroupContext","a11y","dropup","inNavbar","setActiveFromChild","menuRole","preventDefaultKeys","Dropdown","addEvents","handleKeyDown","removeEvents","handleMenuRef","handleToggleRef","containerRef","menuRef","toggleRef","handleProps","getContainer","getMenu","getToggle","targetIsToggle","clickIsInMenu","clickIsInInput","isTargetMenuItem","isTargetMenuCtrl","getMenuCtrl","isTab","_this2$getMenuItems$","getMenuItems","_this$getMenuItems$","click","$menuitems","_$menuitems","_$menuitems3","charPressed","onMenuRef","onToggleRef","_$menuCtrl","menuContainer","getItemType","_classNames","_this5","_omit","subItemIsActive","dropdownItem","insideInputGroup","getContextValue","UncontrolledDropdown","_Component","defaultOpen","onToggle","Reference","refHandler","variant","CloseButton","block","Button","_props$color","btnOutlineColor","DropdownToggle","returnFunction","tagRef","getRole","updateOnSelect","directionPositionMap","DropdownMenu","_this$props$tag","_this$props$flip","_this$props$modifiers","position1","position2","poperPlacement","poperModifiers","persistStyles","combinedStyle","DropdownItem","getTabIndex","_this$props$toggle","_omit$tag","listTag","Pagination","_props$listTag","ListTag","_props$ariaLabel","listClasses","PaginationItem","PaginationLink","defaultAriaLabel","defaultCaret","toPrimitive","_toPrimitive","_toPropertyKey","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","measure","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","IS_IE","classic","fas","far","fal","fat","fab","duotone","fad","fadr","fadl","fadt","sharp","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","defaultShortPrefixId","defaultStyleId","styleIds","futureStyleIds","defaultFontWeight","fak","fakd","kit","t$1","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","bt$1","ga","c$1","F$1","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","e$$1","familyProxy","_PREFIX_TO_STYLE","PREFIX_TO_STYLE","_STYLE_TO_PREFIX","solid","regular","thin","STYLE_TO_PREFIX","_PREFIX_TO_LONG_STYLE","PREFIX_TO_LONG_STYLE","_LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","ATTRIBUTES_WATCHED_FOR_MUTATION","normal","DUOTONE_CLASSES","RESERVED_CLASSES","FontAwesomeConfig","coerce","getAttrConfig","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_onChangeCb","d$2","meaninglessTransform","flipX","flipY","nextUniqueId","classArray","htmlEscape","joinStyles","transformIsMeaningful","dcp","drc","fp","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","beforeChild","insertCss","InjectCSS","mixout","hooks","beforeDOMElementCreation","beforeI2svg","shims","namespace","toHtml","abstractNodes","joinAttributes","iconFromMapping","mapping","iconName","doScroll","subject","thisContext","bindInternal4","toHex","unicode","output","counter","ucs2decode","normalizeIcons","defineIcons","skipHooks","addPack","FAMILY_NAMES","PREFIXES_FOR_FAMILY","familyId","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","getIconName","cls","isReserved","build","lookup","reducer","o$$1","a$$1","alias","aliases","hasRegular","autoFetchSvg","shimLookups","maybeNameMaybeUnicode","unicodes","getCanonicalPrefix","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","c$$1","styleOrPrefix","sortedUniqueValues","getCanonicalIcon","skipLookups","givenPrefix","faCombinedClasses","faStyleOrFamilyClasses","nonStyleOrFamilyClasses","faStyles","styleFromValues","famProps","v$$1","getFamilyId","canonical","moveNonFaClassesToRest","prefixOptions","config$$1","isDuotoneFamily","valuesHasDuotone","defaultFamilyIsDuotone","canonicalPrefixIsDuotone","newCanonicalFamilies","newCanonicalStyles","defaultPrefix","getDefaultCanonicalPrefix","aliasIconName","applyShimAndAlias","flat","_hooks","providers","defaultProviderKeys","chainHooks","accumulator","hookFn","callHooks","callProvided","findIconDefinition","iconLookup","library","definitions","additions","_pullDefinitions","longPrefix","i2svg","watch","autoReplaceSvgRoot","autoReplace","canonicalIcon","api","noAuto","domVariants","abstractCreator","makeInlineSvgAbstract","main","watchable","isUploadedIcon","attrClass","uploadedIconWidthStyle","asSymbol","asIcon","makeLayersTextAbstract","startCentered","transformForCss","styleString","styles$1","asFoundIcon","vectorData","missingIconResolutionMixin","findIcon","maybeNotifyMissing","noop$1","p$2","preamble","perf","noop$2","isWatched","convertSVG","abstractObj","ceFn","mutators","mutation","comment","createComment","nodeAsComment","nest","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","perform","mutations","callbackFunction","mutator","disableObservation","enableObservation","mo","treeCallback","nodeCallback","pseudoElementsCallback","observeMutationsRoot","objects","mutationRecord","hasPrefixAndIcon","characterData","classParser","existingPrefix","existingIconName","ligature","byLigature","Node","TEXT_NODE","parseMeta","styleParser","extraClasses","extraAttributes","attributesParser","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","onTree","htmlClassList","hclAdd","hclRemove","prefixesDomQuery","p$$1","candidates","resolvedMutations","onNode","iconDefinition","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","generateSvgReplacementMutation","generateAbstractIcon","containerWidth","iconWidth","Layers","assembler","LayersCounter","makeLayersCounterAbstract","LayersText","generateLayersText","computedFontSize","boundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","_FONT_FAMILY_WEIGHT_TO_PREFIX","FontAwesome","FONT_FAMILY_WEIGHT_TO_PREFIX","FONT_FAMILY_WEIGHT_FALLBACK","weights","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamilyMatch","fontFamilySanitized","fontWeightInteger","fontWeightSanitized","getPrefix","hexValue","isSecondary","cleaned","codePointAt","isPrependTen","isDoubled","hexValueFromContent","isV4","iconIdentifier","iconName4","oldUnicode","newUnicode","byOldUnicode","processable","operations","PseudoElements","pseudoElements2svg","_unwatched","MutationObserver$1","unwatch","bootstrap","parseTransformString","transformString","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","maskTag","maskUnits","maskContentUnits","MissingIconIndicator","reduceMotion","matchMedia","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","nextPlugins","mixoutsTo","registerPlugins","symbolData","parse$1","camelize","chr","normalizeIconArgs","objectWithKey","fixedWidth","listItem","pull","pulse","spin","spinPulse","spinReverse","beat","beatFade","bounce","shake","swapOpacity","FontAwesomeIcon","allProps","iconArgs","maskArgs","_classes","flash","renderedIcon","_console","extraProps","convertCurry","convert","_extraProps$style","existingStyle","faTrashCan","faTrashAlt","faCalendarDays","faCalendarAlt","faEnvelopesBulk","faPencil","faPencilAlt","faBoxArchive","faArchive","faCircleNotch","faCircleExclamation","faList","faLock","faPenToSquare","faEdit","faShareNodes","faShareAlt","faUsers","faChevronUp","faSchool","faUser","faGlobe","faStar","faCircleCheck","faCheckCircle","faCertificate","faArrowsRotate","faSync","faEnvelopeCircleCheck","faLanguage","faFilter","faChartLine","faArrowRight","faCircle","faEye","faPen","faFloppyDisk","faSave","faTrash","faQuoteRight","faArrowLeft","faUpRightFromSquare","faExternalLinkAlt","faEnvelope","faCircleNodes","faCircleInfo","faInfoCircle","faArrowDown19","faSortNumericDown","faArrowDownAZ","faSortAlphaDown","faGear","faCog","faClock","faCaretDown","faMapPin","faEllipsisVertical","faEllipsisV","faDeleteLeft","faFileArrowDown","faFileDownload","faArrowDownShortWide","faSortAmountDownAlt","faEllipsis","faEllipsisH","faInbox","faLink","faMagnifyingGlass","faChevronDown","faUserGraduate","faPlus","faXmark","faClose","faTimes","faRocket","faChevronLeft","faChevronRight","faGears","faCogs","faBuilding","faFileExport","faWandMagic","faMagic","faCirclePlus","faPlusCircle","faClone","faTriangleExclamation","faExclamationTriangle","faCircleXmark","faTimesCircle","faMagnifyingGlassPlus","itemPerPage","totalItems","paginate","onItemsPerPageChange","itemsPerPage","setItemsPerPage","predefinedOptions","nextHigherOption","availableOptions","pageNumbers","paginationItems","ResizeObserverBoxOptions","resizeObservers","msg","ResizeObserverSize","inlineSize","DOMRectReadOnly","toJSON","fromRect","rectangle","isSVG","SVGElement","scrollRegexp","verticalRegexp","IE","parseDimension","switchSizes","zeroBoxes","devicePixelContentBoxSize","contentBoxSize","calculateBoxSizes","forceRecalculation","ownerSVGElement","removePadding","writingMode","canScrollVertically","canScrollHorizontally","borderTop","borderRight","borderRightWidth","borderBottom","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","verticalScrollbarThickness","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","broadcastActiveObservations","shallowestDepth","activeTargets","targetDepth","lastReportedSize","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","ErrorEvent","createEvent","deliverResizeLoopError","queueMicroTask","toggle_1","el_1","watching","observerConfig","scheduled","Scheduler","stopped","schedule","run","until","queueResizeObserver","elementsHaveResized","scheduler","updateCount","ResizeObservation","CONTENT_BOX","isReplacedElement","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","firstObservation","lastObservation","getElementWindow","getElementDocument","cachedScrollbarWidth","cachedDevicePixelRatio","SimpleBar","elWindow","scrollXTicking","scrollX","scrollYTicking","isOverflowing","showScrollbar","positionScrollbar","onMouseMove","mouseX","mouseY","forceVisible","onMouseMoveForAxis","onMouseLeaveForAxis","hideNativeScrollbar","hideScrollbars","isWithinBounds","scrollbar","onPointerEvent","isWithinTrackXBounds","isWithinTrackYBounds","onTrackClick","drag","draggedAxis","trackSize","sizeAttr","contentSize","contentWrapperEl","scrollSizeAttr","hostSize","scrollPos","offsetAttr","dragOffset","isRtl","getRtlHelpers","isRtlScrollbarInverted","isRtlScrollingInverted","scrollOffsetAttr","onEndDrag","elDocument","dragging","removePreventClickId","preventClick","minScrollbarWidth","offsetSizeAttr","overflowAttr","throttle","dummyDiv","scrollbarDummyEl","dummyContainerChild","dummyContainerOffset","dummyContainerChildOffset","dummyContainerScrollOffsetAfterScroll","initDOM","setAccessibilityAttributes","initListeners","wrapperEl","scrollableNode","contentWrapper","contentEl","contentNode","maskEl","placeholderEl","findChild","heightAutoObserverWrapperEl","heightAutoObserverEl","autoHide","resizeObserverStarted","resizeAnimationFrameId","mutationObserver","isHeightAuto","isWidthAuto","contentElOffsetWidth","contentWrapperElOffsetWidth","elOverflowX","elOverflowY","contentElScrollHeight","contentElScrollWidth","contentWrapperElOffsetHeight","offsetForXScrollbar","offsetForYScrollbar","getScrollbarSize","toggleTrackVisibility","scrollbarSize","scrollbarRatio","scrollbarMinSize","scrollbarMaxSize","scrollOffset","scrollPourcent","handleOffset","eventOffset","clickOnTrack","scrollbarOffset","scrolled","scrollSize","scrollTo","_this4$contentWrapper","_this4$contentWrapper2","clickOnTrackSpeed","getContentElement","getScrollElement","removeListeners","unMount","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","_ref$scrollableNodePr","scrollableNodeProps","_ref$tag","RootTag","scrollableNodeRef","elRef","contentNodeRef","deprecatedOptions","SimpleBarJS","toggleState","assert","condition","getKeys","getEntries","normalizeFileName","fileNameFormatter","extensionPattern","downloadFile","byBlob","dataURI","blobType","generateDataURI","MouseEvent","__read","ar","_createTableMap","tMap","rowKVs","columnValues","_createTableEntries","tableMap","beforeTableEncode","fieldName","fieldValues","defaultCreateCSVDataOption","delimiter","createCSVData","tableEntries","enclosingCharacter","escaped","encloser","mergedColumn","defaultCreateXLSDataOptions","createXLSData","_renderTableHTMLText","createXMLData","_renderXML","arrayElementTag","spaces","normalizeXMLName","indentSpaces","$1","exportFromJSON","fields","exportType","replacer","processor","withBOM","_k","MESSAGE_IS_ARRAY_FAIL","MESSAGE_UNKNOWN_EXPORT_TYPE","MESSAGE_FIELD_INVALID","fieldsMapper","mapper","_createFieldsMapper","safeData","_prepareData","JSONData","_createJSONData","CSVData","types","json","csv","xls","xml","processors","Error404Modern","ErrorImage","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","createClass","objectWithoutProperties","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","objectAssign","rafPolyfill","clock","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","styleSheet","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","noscript","HelmetExport","HelmetWrapper","classCallCheck","possibleConstructorReturn","inherits","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","defer","titleTemplate","mappedState","Helmet","withSideEffect","renderStatic","AuthFooter","Form","Spinner","_props$type","_props$children","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","getEventValue","isNameInFieldArray","getNodeParentName","isWeb","cloneObject","isFileListInstance","FileList","tempObject","prototypeCopy","isPlainObject","isUndefined","isBoolean","isKey","stringToPath","tempPath","objValue","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","useSubscribe","subscription","subscribe","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watchAll","appendErrors","validateAllFieldCriteria","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","owner","isMessage","isRadioInput","isRegex","defaultResult","isValid","validResult","getCheckboxValue","defaultReturn","getRadioValue","getValidateError","getValueAndMessage","validationData","validateField","async","disabledFieldNames","shouldUseNativeValidation","isFieldArray","maxLength","minLength","validate","valueAsNumber","mount","inputValue","setCustomValidity","reportValidity","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","observers","isPrimitive","deepEqual","object1","object2","keys1","keys2","isMultipleSelect","live","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","getFieldValue","selectedOptions","getRuleValue","ASYNC_FUNCTION","schemaErrorLookup","_fields","foundError","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","_formState","submitCount","isDirty","isLoading","isValidating","isSubmitted","isSubmitting","isSubmitSuccessful","touchedFields","dirtyFields","validatingFields","_formValues","shouldUnregister","_state","timer","_subjects","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","_updateValid","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldUpdateField","isPreviousDirty","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","fieldState","previousFieldError","delayError","updateErrors","updatedFormState","getResolverOptions","shouldOnlyCheckValid","isFieldArrayRoot","isPromiseFunction","fieldReference","validateFunction","fieldError","_getWatch","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","setValues","fieldKey","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","shouldSkipValidation","skipValidation","isTouched","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","executeSchemaAndUpdateState","shouldFocus","getFieldState","invalid","setError","currentError","currentRef","restOfErrorTree","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","_updateDisabledField","disabledIsDefined","progressive","fieldRef","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","onValidError","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","fieldsToCheck","closest","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_removeUnmounted","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","_resetDefaultValues","resetOptions","_updateFormState","_disableForm","_setErrors","resetField","clearErrors","inputName","setFocus","shouldSelect","useForm","_formControl","_values","kindOf","thing","kindOfTest","typeOfTest","isArrayBuffer","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","token","asap","nextTick","isBuffer","isFormData","isArrayBufferView","isStream","pipe","caseless","assignValue","targetKey","stripBOM","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","forEachEntry","matchAll","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","captureStackTrace","utils","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","visitor","defaultVisitor","useBlob","toISOString","Buffer","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","toFormData","_encode","buildURL","serialize","serializeFn","serializedParams","hashmarkIndex","handlers","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokens","tokensRE","parseTokens","deleted","deleteHeader","formatHeader","targets","asStrings","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg3","buildAccessors","mapped","headerValue","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","bytes","firstSampleTS","chunkLength","startedAt","bytesCount","passed","timestamp","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","lengthComputable","progressBytes","estimated","progressEventDecorator","asyncDecorator","isMSIE","port","expires","domain","secure","cookie","toGMTString","buildFullPath","baseURL","requestedURL","isAbsoluteURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","isURLSameOrigin","xsrfValue","cookies","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","onloadend","responseHeaders","getAllResponseHeaders","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","aborted","parseProtocol","composeSignals","signals","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","readStream","stream","asyncIterator","getReader","trackStream","onFinish","iterable","readBytes","_onFinish","ReadableStream","loadedBytes","enqueue","highWaterMark","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","knownAdapters","http","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Cancel","spread","isAxiosError","formToJSON","getAdapter","Accept","localStorage","Authorization","checkError","NotificationContext","notifications","createNotification","removeNotification","handleAPIError","useNotification","ReCAPTCHA","handleExpired","handleErrored","handleChange","handleRecaptchaRef","getCaptchaFunction","fnName","grecaptcha","enterprise","getResponse","_widgetId","getWidgetId","execute","_executeRequested","executeAsync","executionResolve","executionReject","resetter","forceReset","onExpired","onErrored","explicitRender","sitekey","stoken","badge","isolated","captcha","SCRIPT_MAP","idCount","callbackName","getOptions","recaptchaOptions","getScriptURL","dynamicOptions","hostname","useRecaptchaNet","globalName","wrappedComponentName","AsyncScriptLoader","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","obsKey","scriptURL","scriptId","errored","callObserverFuncAndRemoveObserver","observersMap","removeOnUnmount","allScripts","forwardedRef","ForwardedComponent","hoistStatics","Login","setLoading","passwordState","setPasswordState","recaptcha","APIVerifyToken","Head","Logo","onSubmit","_recaptcha$current","captchaValue","post","APILogin","recaptchaToken","setItem","colWidths","stringOrNumberProp","columnProps","xs","xl","getColumnSizeClass","isXs","colWidth","colSize","_props$widths","_getColumnClasses","modifiedAttributes","colClasses","columnProp","colSizeInterfix","colClass","_colClass","getColumnClasses","bsSize","plaintext","addon","Input","_this$props$type","checkInput","selectInput","rangeInput","formControlClass","onPasswordChange","showRules","setPassword","confirmPassword","setConfirmPassword","showPassword","setShowPassword","passwordRules","pw","validatePasswordRules","passwordStatus","handlePasswordChange","newPassword","newConfirmPassword","handleGeneratePassword","allChars","generateStrongPassword","_Fragment","CustomInput","Register","RegisterIllustration","honeypot","validateForm","firstName","lastNames","lastName","APIRegister","PasswordFields","ForgotPassword","setIsLoading","setEmail","APIForgotPassword","dashboard","ThemeContext","ThemeUpdateContext","useTheme","useThemeUpdate","defaultTheme","sidebar","appbar","sidebarVisibility","sidebarMobile","skin","setTheme","themeUpdate","uistyle","sidebarHide","Appbar","appSidebarClass","menuOpen","setMenuOpen","Toggle","handleToggleClick","TooltipComponent","subMenu","APIGetPortalSession","userPublicId","InvalidTokenError","base64UrlDecode","atob","b64DecodeUnicode","jwtDecode","AuthContext","AuthProvider","user","setUser","publicId","iat","logout","useAuth","SubscriptionContext","SubscriptionProvider","EXCLUDED_PATHS","setSubscription","plans","setPlans","isCacheExpired","expiration","cachedData","fetchPlans","APIListPlans","cachedPlans","fetchSubscription","APIGetUserSubscription","cachedSubscription","refreshSubscription","useSubscription","SubscriptionStatus","_plans$find","fixed","loadingPortal","setLoadingPortal","headerClass","VitaeIcon","plan","planId","usedCredits","jobs","contacts","emails","credits","Free","portal","UserAvatar","MenuHeading","MenuItem","newTab","mobileView","sidebarToggle","marginBottom","makeParentActive","childHeight","_el$parentElement","_el$parentElement$par","_el$parentElement2","subMenuHeight","_dom$parentElement","_dom$parentElement$pa","_dom$parentElement2","menuItemClass","_parent$parentElement","subMenuItem","parentSiblings","parentMenu","parentMenus","parentSelector","parents","getParents","MenuSub","app","AppRoot","AppMain","Sidebar","AppWrap","Header","defaultNode","FadePropTypes","backdropClassName","backdropTransition","centered","fullscreen","keyboard","labelledBy","modalClassName","modalTransition","onOpened","returnFocusAfterClose","scrollable","trapFocus","unmountOnClose","wrapClassName","propsToOmit","Modal","_originalBodyPadding","getFocusableChildren","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleStaticBackdropAnimation","handleTab","manageFocusAfterClose","clearBackdropAnimationTimeout","showStaticBackdropAnimation","_mouseDownElement","_dialog","modalIndex","openCount","focusableChildren","totalFocusable","currentFocus","getFocusedChild","focusedIndex","_backdropAnimationTimeout","isAppearing","_triggeringElement","_mountContainer","getOriginalBodyPadding","originalBodyOverflow","modalOpenClassName","modalOpenClassNameRegex","dialogBaseClass","isModalHidden","modalAttributes","hasTransition","Backdrop","renderModalDialog","ModalBody","animated","bar","barAriaLabelledBy","barAriaValueText","barClassName","barStyle","Progress","_props$value","_props$min","_props$max","_props$style","_props$barStyle","progressClasses","progressBarProps","defaultMessages","messages","currentMessageIndex","setCurrentMessageIndex","marginInline","LoadingModal","isDone","setProgress","simulateProgress","currentProgress","LoadingMessages","Protected","randomUUID","rnds8","byteToHex","unsafeStringify","buf","rnds","rng","RangeError","closeClassName","closeAriaLabel","Alert","_props$closeAriaLabel","_props$isOpen","_props$transition","_props$fade","closeClasses","alertTransition","UncontrolledAlert","notification","getNotificationColor","alignSelf","APIError","setNotifications","uuidv4","defaultMessage","NotificationComponent","ECampaignStatus","APIGetJobSearchWithJobs","campaignId","userId","APIDeleteContactsFromJobSearch","contactIds","patch","APIGetJobSearchByPublicId","APISearchJobSearchForJob","publicJobSearchId","jobId","APIRefreshJobsFromJobSearch","jobSearchId","APIUpdateJobSearch","APIRemoveJobsFromCampaign","jobIds","CreateSearchModal","newCampaignName","setNewCampaignName","goToNextStep","onClose","isEditing","autoComplete","validateCampaignName","colorClasses","gray","red","yellow","green","blue","indigo","purple","pink","orange","sizeClasses","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formatLong","full","long","short","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","predicate","valueCallback","parsePattern","parseResult","enUS","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","weekStartsOn","firstWeekContainsDate","getDefaultOptions","millisecondsInWeek","millisecondsInMinute","millisecondsInHour","toDate","argument","argStr","startOfDay","setHours","getTimezoneOffsetInMilliseconds","utcDate","UTC","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","differenceInCalendarDays","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","constructFrom","startOfYear","cleanDate","setFullYear","getDayOfYear","startOfWeek","getDay","setDate","startOfISOWeek","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfISOWeekYear","fourthOfJanuary","getISOWeek","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","padStart","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","trunc","dayPeriodEnum","signedWeekYear","weekYear","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","firstCharacter","longFormatter","isToken","cleanEscapedString","preprocessor","formatterOptions","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","_message","warnOrThrowProtectedError","parseISO","additionalDigits","dateStrings","patterns","dateTimeDelimiter","timeString","timeZoneDelimiter","timezone","splitDateString","parseYearResult","regex","captures","restDateString","century","parseYear","dateRegex","isWeekDate","parseDateUnit","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","getUTCDay","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseDate","timeRegex","parseTimeUnit","seconds","validateTime","parseTime","dirtyDate","getUTCFullYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","formatDate","formatDateToMonthYear","industriesMapper","countriesMapper","titlesMapper","companiesMapper","onRemove","setFilters","isMultipleChoises","needAlphabeticalOrder","dropdownOpen","setDropdownOpen","filteredOptions","setFilteredOptions","itemsToShow","setItemsToShow","dropdownRef","isScrollable","dropdownRect","parentRect","scrollBy","behavior","handleAddValue","trimmedValue","loadMoreItems","InputBadge","handleFocus","localeCompare","handleInputChange","handleBlur","seniorityMapping","Director","Senior","Intern","Owner","Founder","Partner","Specialist","SeniorityDetailsModal","titles","replaceAll","seniorityLevelsMapper","functionsMapper","debounceDelay","validOptions","setValidOptions","fetchLocations","APIGetCitySuggestions","debouncedFetchLocations","_inputRef$current","objectUtil","assertEqual","assertIs","_arg","assertNever","arrayToEnum","getValidEnumValues","validKeys","objectKeys","filtered","objectValues","checker","joinValues","separator","jsonStringifyReplacer","mergeShapes","ZodParsedType","getParsedType","nan","null","unknown","ZodIssueCode","ZodError","issues","addIssue","addIssues","subs","actualProto","_mapper","issue","fieldErrors","_errors","processError","unionErrors","returnTypeError","argumentsError","curr","formErrors","errorMap","invalid_type","received","expected","invalid_literal","unrecognized_keys","invalid_union","invalid_union_discriminator","invalid_enum_value","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","inclusive","too_big","maximum","invalid_intersection_types","not_multiple_of","multipleOf","not_finite","defaultError","overrideErrorMap","getErrorMap","makeIssue","errorMaps","issueData","fullIssue","maps","addIssueToContext","overrideMap","contextualErrorMap","schemaErrorMap","ParseStatus","dirty","mergeArray","results","arrayValue","INVALID","mergeObjectAsync","pairs","syncPairs","mergeObjectSync","finalObject","alwaysSet","DIRTY","OK","isAborted","isAsync","__classPrivateFieldGet","__classPrivateFieldSet","errorUtil","_ZodEnum_cache","_ZodNativeEnum_cache","errToObj","ParseInputLazyPath","_cachedPath","_path","handleResult","_error","processCreateParams","invalid_type_error","required_error","customMap","iss","ZodType","_def","_getType","_getOrReturnCtx","parsedType","_processInputParams","_parseSync","_parse","_parseAsync","safeParse","parseAsync","safeParseAsync","maybeAsyncResult","refine","getIssueProperties","_refinement","refinement","refinementData","ZodEffects","typeName","ZodFirstPartyTypeKind","superRefine","spa","optional","nullable","nullish","and","readonly","isNullable","vendor","ZodOptional","ZodNullable","ZodArray","ZodPromise","ZodUnion","incoming","ZodIntersection","defaultValueFunc","ZodDefault","innerType","ZodBranded","catchValueFunc","ZodCatch","catchValue","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","timeRegexSource","datetimeRegex","isValidIP","isValidJWT","jwt","alg","base64","padEnd","isValidCidr","ZodString","tooBig","tooSmall","_regex","_addCheck","emoji","uuid","nanoid","cuid","cuid2","ulid","base64url","cidr","nonempty","isDatetime","isDuration","isEmail","isURL","isEmoji","isUUID","isNANOID","isCUID","isCUID2","isULID","isIP","isCIDR","isBase64","isBase64url","floatSafeRemainder","valDecCount","stepDecCount","decCount","ZodNumber","gte","lte","setLimit","int","negative","nonpositive","nonnegative","finite","safe","MIN_SAFE_INTEGER","minValue","maxValue","isInt","ZodBigInt","BigInt","_getInvalidInput","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","_any","ZodUnknown","_unknown","ZodNever","never","ZodVoid","void","exactLength","deepPartialify","ZodObject","fieldSchema","unwrap","ZodTuple","nonstrict","passthrough","augment","_getCached","shapeKeys","extraKeys","catchall","unknownKeys","keyValidator","strict","strip","augmentation","merging","setKey","deepPartial","newField","keyof","createZodEnum","strictCreate","lazycreate","childCtx","getDiscriminator","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","enum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","handleParsed","parsedLeft","parsedRight","itemIndex","schemas","ZodRecord","keySchema","keyType","valueSchema","valueType","third","ZodMap","finalMap","ZodSet","finalizeSet","parsedSet","ZodFunction","implement","makeArgsIssue","makeReturnsIssue","returns","parsedArgs","parsedReturns","parameters","returnType","strictImplement","expectedValues","enumValues","Values","Enum","extract","newDef","exclude","nativeEnumValues","promisified","sourceType","checkCtx","fatal","processed","executeRefinement","createWithPreprocess","preprocess","removeDefault","newCtx","removeCatch","ZodNaN","BRAND","inResult","handleAsync","cleanParams","_params","_fatal","late","stringType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","NEVER","defaultErrorMap","setErrorMap","EMPTY_PATH","ZodTransformer","Schema","ZodSchema","discriminatedUnion","literal","nativeEnum","oboolean","onumber","ostring","pipeline","record","strictObject","transformer","tuple","union","quotelessJson","onLimitChange","setErrorMessage","validatedSchema","rawInput","correctedValue","errMsg","LeadCriteriaModal","goToPreviousStep","resetSearch","setResetSearch","isSeniorityModalOpen","setIsSeniorityModalOpen","locationInputRef","seniorityLevel","country","handleUpdateFilters","verifyFields","useAiToGenerateFilters","InputNumber","leadLimit","InputWithBadges","newFilters","invalidValues","LocationInputWithBadges","scrollToLocationInput","isDecisionMaker","onDateRangeSelect","selectedOption","setSelectedOption","handleSelect","fromDate","setMonth","JobCriteriaFilter","updateFilters","hidePreviousButton","industry","companies","companySize","handleDateRangeSelect","strictTitle","jobLimit","DateRangeDropdown","dateFilter","includeIndustries","excludeIndustries","applicationActive","LoadingComponent","showText","UserJobSeachers","campaigns","setCampaigns","setCurrentPage","setTotalItems","currentEditingCampaignId","setCurrentEditingCampaignId","isModalCampaignOpen","setIsModalCampaignOpen","initialJobFilter","companyName","createdAtGte","createdAtLte","totalJobsFound","initialLeadFilter","userPrompt","leadFilters","setLeadFilters","jobFilters","setJobFilters","setIsEditing","updateJobFilters","prevFilters","isLoadingJobs","setIsLoadingJobs","setCurrentStep","fetchJobSearchs","createNewCampaign","campaign","APICreateJobSearch","PENDING","resetCampaignForm","handleDeleteCampaign","campaignPublicId","APIDeleteJobSearch","campanigns","APIGetJobSearchesByUser","handleRefreshJobs","COMPLETED","FAILED","waitForCampaignCompletion","goToCampaignDetails","validateCampaignFilters","jobValidFilters","closeModal","validateAndSaveCampaign","Content","campaignStatus","checkCampaignStatus","Badge","IN_PROGRESS","createdAt","selectedCampaign","handleEditCampaign","PaginationComponent","EmptyData","phrases","renderStepContent","LeadFilter","wrapTag","ModalHeader","closeButton","_props$wrapTag","WrapTag","faMicrosoft","faGoogle","faLinkedinIn","faLinkedin","_job$company","_job$company2","_job$company3","job","formattedDescription","timePosted","salary","employmentType","companyUrl","company","imageUrl","paragraph","phone","ModalFooter","APISearchContactEmail","contactId","APIExportContacts","contactsWithJobs","APIGetContactDetails","contactPublicId","_contact$education","_contact$experience","contact","setContact","getContactDetails","openDetails","fullName","pictureUrl","websitesLinkedin","jobTitle","locationRawAddress","locationRegions","region","managementLevel","department","connectionsCount","education","edu","_edu$major","institutionUrl","dateFrom","dateTo","languages","language","proficiency","recommendations","rec","refereeName","recommendation","skills","skill","experience","MAX_COLUMN_LENGTH","updateContactEmail","onRowSelect","selectedItems","loadingEmails","setLoadingEmails","loadingJobs","setLoadingJobs","fetchCampaignWithDetails","jobContacts","externalCompanyId","coresignalId","selectedContact","setSelectedContact","showSelectedContact","setShowSelectedContact","showJobDetails","setShowJobDetails","selectedCompany","setSelectedCompany","showCompanyDetails","setShowCompanyDetails","tooltipOpen","setTooltipOpen","toggleTooltip","tooltipId","searchContactEmail","userData","openJobDetails","isRowSelected","handleCheckboxChange","openContactDetails","generatedHeadline","formatEmailWithIcon","updatedSet","handleSearchContacts","JobModal","ContactDetailsModal","CompanyDetailsModal","APIGetLists","APIUpdateLeads","listId","favorites","operation","APICreateList","APIGetList","APIUpdateList","listSchema","ListModal","initialData","setFormData","nameError","setNameError","nameErr","SaveLeadsModal","lists","setLists","selectedListId","setSelectedListId","isCreatingList","setIsCreatingList","newListData","setNewListData","getUserLists","isDeleted","prevLists","CardBody","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","encodePacket","supportsBinary","encodeBlobAsBase64","fileReader","byteOffset","TEXT_ENCODER","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","decode","SEPARATOR","createPacketEncoderStream","TransformStream","packet","encoded","encodePacketToBinary","payloadLength","DataView","setUint8","setUint16","setBigUint64","TEXT_DECODER","chunks","concatChunks","Emitter","mixin","_callbacks","once","off","removeAllListeners","emit","emitReserved","hasListeners","setTimeoutFn","globalThisShim","NATIVE_SET_TIMEOUT","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","useNativeTimers","clearTimeoutFn","randomString","TransportError","Transport","socket","forceBase64","doOpen","doClose","packets","onOpen","onData","onPacket","details","onPause","createUri","_hostname","_port","_query","encodedQuery","Polling","_polling","_poll","doPoll","decodePayload","encodedPayload","encodedPackets","decodedPacket","encodePayload","doWrite","uri","timestampRequests","timestampParam","b64","hasCORS","BaseXHR","isSSL","xhrStatus","pollXhr","createRequest","_opts","_method","_uri","xdomain","_xhr","extraHeaders","setDisableHeaderCheck","cookieJar","addCookies","requestTimeout","parseCookies","_onLoad","_onError","_index","requestsCount","requests","_cleanup","fromError","unloadHandler","hasXHR2","newRequest","isReactNative","BaseWS","ws","createSocket","addEventListeners","onopen","autoUnref","_socket","unref","onclose","closeEvent","lastPacket","WebSocketCtor","WebSocket","MozWebSocket","transports","websocket","_packet","webtransport","_transport","WebTransport","transportOptions","ready","createBidirectionalStream","decoderStream","maxPayload","TextDecoder","expectedLength","headerArray","getUint16","getUint32","createPacketDecoderStream","readable","pipeThrough","encoderStream","pipeTo","_writer","getWriter","polling","authority","ipv6uri","pathNames","regx","queryKey","$0","$2","withEventListeners","OFFLINE_EVENT_LISTENERS","SocketWithoutUpgrade","writeBuffer","_prevBufferLen","_pingInterval","_pingTimeout","_maxPayload","_pingTimeoutTime","parsedUri","_transportsByName","transportName","agent","upgrade","rememberUpgrade","addTrailingSlash","rejectUnauthorized","perMessageDeflate","closeOnBeforeunload","qs","qry","_beforeunloadEventListener","_offlineEventListener","_onClose","_cookieJar","createCookieJar","_open","createTransport","EIO","priorWebsocketSuccess","setTransport","_onDrain","_onPacket","onHandshake","_sendPacket","_resetPingTimeout","pingInterval","pingTimeout","_pingTimeoutTimer","upgrading","_getWritablePackets","payloadSize","utf8Length","_hasPingExpired","hasExpired","compress","cleanupAndClose","waitForUpgrade","tryAllTransports","SocketWithUpgrade","_upgrades","_probe","failed","onTransportOpen","cleanup","freezeTransport","onTransportClose","onupgrade","_filterUpgrades","upgrades","filteredUpgrades","Socket","DEFAULT_TRANSPORTS","withNativeFile","File","hasBinary","deconstructPacket","packetData","pack","_deconstructPacket","attachments","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","Encoder","EVENT","ACK","encodeAsString","encodeAsBinary","BINARY_EVENT","BINARY_ACK","nsp","deconstruction","Decoder","reviver","reconstructor","decodeString","isBinaryEvent","BinaryReconstructor","takeBinaryData","tryParse","isPayloadValid","CONNECT","DISCONNECT","CONNECT_ERROR","finishedReconstruction","reconPack","binData","connect_error","disconnecting","newListener","io","connected","recovered","receiveBuffer","sendBuffer","_queue","_queueSeq","ids","acks","_autoConnect","disconnected","subEvents","onpacket","_readyState","retries","fromQueue","volatile","_addToQueue","ack","_registerAckCallback","isTransportWritable","notifyOutgoingListeners","ackTimeout","withError","emitWithAck","tryCount","responseArgs","_drainQueue","_sendConnectPacket","_pid","pid","_lastOffset","_clearAcks","onconnect","onevent","onack","ondisconnect","emitEvent","_anyListeners","sent","emitBuffered","subDestroy","onAny","prependAny","offAny","listenersAny","onAnyOutgoing","_anyOutgoingListeners","prependAnyOutgoing","offAnyOutgoing","listenersAnyOutgoing","Backoff","jitter","attempts","rand","deviation","setJitter","nsps","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","decoder","autoConnect","_reconnection","skipReconnect","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconnectionDelayMax","_timeout","maybeReconnectOnOpen","_reconnecting","reconnect","Engine","openSubDestroy","errorSub","onping","ondata","ondecoded","_close","onreconnect","attempt","loc","sameNamespace","forceNew","multiplex","API_URL","selectedItemsCount","onClearSelection","menuVisible","setMenuVisible","setShouldRender","isClosing","setIsClosing","showOverflowMenu","setShowOverflowMenu","mainActions","setMainActions","overflowActions","setOverflowActions","actionsContainerRef","moreButtonRef","recalcActions","_moreButtonRef$curren","_moreButtonRef$curren2","usedWidth","fitted","overflowed","handleResize","boxShadow","ConfirmationType","onConfirm","subMessage","INFO","cancelButtonText","confirmButtonText","hideCancel","iconColor","buttonColor","getTypeConfig","SUCCESS","WARNING","UserCampaignDetails","isLoadingUpdate","setIsLoadingUpdate","setCampaign","setJobs","setContacts","showSaveLeadsModal","setShowSaveLeadsModal","showFailedModal","setShowFailedModal","contactsPending","setContactsPending","initialPage","setSelectedItems","isModalOpen","setIsModalOpen","searchCompleted","setSearchCompleted","searchCompany","setSearchCompany","searchJobTitle","setSearchJobTitle","socketInstance","setSocketInstance","showSearchConfirmation","setShowSearchConfirmation","jobsProcessing","setJobsProcessing","exists","_jobsProcessing$lengt","hasPendingJobs","finished","prevContacts","prevJobs","prevCampaign","updatedJobs","updatedContacts","pageFromUrl","totalJobs","isCancelled","fetchData","handleRowSelection","confidence","handleSetFilters","filteredJobs","companyMatches","jobTitleMatches","isAllSelected","selectedJobIds","batchSize","delayMs","processFunction","batch","batchProcess","Primary","validFavorites","_jobs$find","_jobs$find$company","leadId","companyId","Secondary","selectedContacts","handleEditFilters","initiateJobSearch","jobsToShow","SelectedItemsMenu","isChecked","allFilteredItems","flatMap","toggleSelectAll","JobRow","noDataFoundAnim","_jobs$find2","_jobs$find2$company","leadIds","ConfirmationModal","CampaignSelectedContext","CampaignSelectedProvider","setSelectedCampaign","EmailVerification","APIVerifyCode","confirmationCode","APIResendCode","Logout","FavoriteLeads","filteredContacts","setFilteredContacts","contactName","setContactName","contactPosition","setContactPosition","contactLocation","setContactLocation","noContactsFound","setNoContactsFound","showSelectedItems","setShowSelectedItems","selectedContactIds","setSelectedContactIds","showDetailedLoading","setShowDetailedLoading","fetchFavoriteLeads","APIGetFavoriteLeads","lead","_error$response","_lead$fullName$toLowe","_lead$fullName","_contactTitle$toLower","_lead$locationRawAddr","_lead$locationRawAddr2","contactTitle","matchesName","matchesPosition","matchesLocation","emailConfidence","prevFiltered","allSettled","allContactIds","_data$company","_data$company2","_data$company3","prevSelected","favorite","ListsDetails","selectedList","setSelectedList","showSelectedLeads","setShowSelectedLeads","showEditList","setShowEditList","getSelectedList","prevList","Danger","_favorite$job$publicI","_favorite$job","_favorite$lead$public","_favorite$lead","_favorite$company$pub","_favorite$company","FavoriteJobRow","FavoriteCompanies","setCompanies","companyIndustry","setCompanyIndustry","noCompaniesFound","setNoCompaniesFound","selectedCompanyIds","setSelectedCompanyIds","fetchFavoriteCompanies","APIGetFavoriteCompanies","_company$name","_company$industry","matchesIndustry","_company$links$","rowColWidths","rowColsPropType","noGutters","avatarBg","dob","balance","emailStatus","kycStatus","lastLogin","address","designation","projects","performed","tasks","User4","_subscription$credits","_subscription$credits2","_subscription$credits3","_subscription$credits4","_subscription$credits5","_subscription$credits6","_subscription$usedCre","_subscription$usedCre2","_subscription$usedCre3","_subscription$usedCre4","_subscription$usedCre5","_subscription$usedCre6","_plans$find$extraCred","updateSm","userProfile","profile","setProfile","userPlan","extraCreditPrice","APIGetUserProfile","Profile","setMobileView","setUserProfile","modalTab","setModalTab","userInfo","setUserInfo","address2","setModal","onInputChange","viewChange","UserProfileAside","submitForm","submitData","UserProfileSettingPage","passwordModal","setPasswordModal","passwordData","setPasswordData","oldPassword","sendVerificationCode","APISendVerificationCode","makeMaskedEmail","APIUpdatePassword","pill","_props$pill","pricingTable","logo","userNumber","features","PlanTable","subscribeToPlan","checkout","APIPlanCheckout","flexDirection","feature","UserProfileSubscription","_plans$find2","_plans$find3","_plans$find4","_plans$find$credits$j","_plans$find5","_plans$find$credits$c","_plans$find6","_plans$find$credits$e","_plans$find7","_plans$find8","price","Active","Cancelling","word","renewalDate","Cancelled","FavoriteJobs","setFilteredJobs","noJobsFound","setNoJobsFound","selectedJob","setSelectedJob","setSelectedJobIds","setJobTitle","setCompanyName","jobLocation","setJobLocation","fetchFavoriteJobs","APIGetFavoriteJobs","notFoundAnimationData","CardHeader","Lists","setFilter","selectedLeads","setSelectedLeads","isLoadingDetails","setIsLoadingDetails","showCreateList","setShowCreateList","getLists","fetchedLists","filteredLists","handleEditClick","handleDeleteList","ListsPage","activeTab","setActiveTab","selectedValue","setSelected","onSelect","DEFAULT_FILTER","DEFAULT_SORT","getFilterOptions","setFilterStatus","getSortOptions","setSortCriteria","CardTitle","CardText","CampaignsContext","CampaignsProvider","setEmails","settings","setSettings","selectedCampaignId","setSelectedCampaignId","selectedCampaignStatus","setSelectedCampaignStatus","_selectedCampaign$pub","_selectedCampaign$sta","filteredEmails","useCampaigns","onDelete","onRename","emailsSent","emailsScheduled","emailsError","totalEmails","progressColor","handleRenameClick","handleDeleteClick","Completed","Closed","Failed","Draft","numbered","ListGroup","_props$horizontal","_props$numbered","getHorizontalClass","handleDisabledOnClick","ListGroupItem","connectionMethods","setStep","connectGoogleAccount","_process$env$REACT_AP","authUrl","APIGetCampaignById","APIGetEmailAccounts","floating","noMargin","FormGroup","switchProp","formCheck","Label","colFormLabel","formLabel","campaignSchema","onCreate","onUpdate","initialName","campaignName","setCampaignName","modalTitle","buttonText","itemName","warningMessage","breakpoints","setMatches","mediaQuery","CampaignsPage","searchValue","setSearchValue","filterStatus","sortCriteria","campaignsData","setCampaignsData","openDropdownCard","setOpenDropdownCard","deleteModalOpen","setDeleteModalOpen","campaignToDelete","setCampaignToDelete","campaignToRename","setCampaignToRename","activeModal","setActiveModal","hasConnectedEmails","setHasConnectedEmails","checkEmailAccounts","emailAccounts","hasEmails","fetchCampaigns","APIGetAllCampaignsByUser","toggleModal","handleEmailModalClose","createCampaign","newCampaignId","APICreateCampaign","APIDeleteCampaign","handleRenameCampaign","APIUpdateCampaign","newName","isClearButtonVisible","useMediaQuery","FilterDropdown","SortDropdown","handleClearFilters","CampaignCard","handleToggleMenuCard","prevId","openDeleteModal","openRenameModal","renderModalContent","EmailConnectionModal","CampaignModal","DeleteConfirmationModal","confirmDelete","borderless","responsiveTag","Table","_props$responsiveTag","ResponsiveTag","responsiveClassName","getStatusColor","getStatusTimeMessage","updatedAt","formattedDate","handlePageChange","SCHEDULED","SENT","CANCELED","handleSearch","onDataLoaded","triggerRefresh","searchQuery","setSearchQuery","isSearching","setIsSearching","fetchEmailsData","queryParams","APIGetScheduledEmails","scheduledEmails","SearchInput","searchTerm","ScheduledEmailsTable","emailsData","setEmailsData","isRotating","setIsRotating","refreshTrigger","setRefreshTrigger","fetchCampaignById","campaignData","cardData","sentPercentage","scheduledPercentage","errorPercentage","Fail","EmailHistorySection","listData","setListData","fetchListData","getFavorites","getFavoritesCount","renderTooltip","renderTextWithTooltip","shouldTruncate","renderCompanyCell","companyTooltipId","industryTooltipId","renderJobCell","titleTooltipId","locationTooltipId","renderContactCell","nameTooltipId","positionTooltipId","getModalContent","renderTable","itemsToDisplay","renderShowingMessage","shownItems","handleViewDetails","listsData","handleListSelection","selectedLists","previewModalOpen","setPreviewModalOpen","selectedListForPreview","setSelectedListForPreview","selectedListPublicIds","handleOpenPreview","ListPreviewModal","togglePreviewModal","goToNextTab","setListsData","setFilteredLists","localSelectedLists","setLocalSelectedLists","fetchLists","filterLists","activeListIds","ListsSelection","updatedLists","updatedListIds","listIds","APIUpdateCampaignLists","updatedCampaign","setContent","onlyRead","editorRef","SunEditor","sunEditor","emailSchema","previewVariables","first_name","last_name","lead_position","company_name","website","linkedin_profile","company_size","job_title","job_location","job_link","variables","isSection","emailId","isPreviewMode","previewMode","setPreviewMode","setErrors","emailTemp","setEmailTemp","previewContent","setPreviewContent","isFirstRender","emailToEdit","previewSubject","previewBody","handleCreateEmail","APICreateCampaignEmail","emailData","handleUpdateEmail","APIUpdateCampaignEmail","variableSpan","insertVariable","EmailEditor","saveEmailWithValidation","_result$error$flatten","_result$error$flatten2","emailActions","handleEmailActionClick","openEmailPreview","emailToDelete","setEmailToDelete","isDraftMode","handleToggleEmailStatus","APIToggleEmailStatus","handleDeleteEmail","APIDeleteCampaignEmail","InputSwitchCustom","currentStatus","handleToggleStatus","handleEdit","handleNext","goToPreviousTab","modalOpen","setModalOpen","actionsModalOpen","setActionsModalOpen","selectedEmailId","setSelectedEmailId","setIsPreviewMode","setOnlyRead","toggleActionsModal","_emailActions$find","EmailActionsPanel","EmailList","EmailEditorModal","EmailActionsModal","FormFeedback","_props$valid","validMode","maxEmails","minDelay","selectedEmail","onSelectAccount","setSearchTerm","availableAccounts","setAvailableAccounts","accountsData","fetchEmailAccounts","filteredAccounts","account","toggleDropdown","launchMessages","isSuccess","isError","customErrorMessage","animationComplete","setAnimationComplete","animationError","animationSuccess","handleLaunch","showLaunchModal","setShowLaunchModal","launchStatus","setLaunchStatus","showConfirmationModal","setShowConfirmationModal","initialFormData","setInitialFormData","hasFormChanges","updatedInitialData","handleUpdateCampaignSettings","campaignSettings","APIUpdateCampaignSettings","newErrors","startCampaignLaunch","handleConfirmationModalClose","minAnimationTime","APILaunchCampaign","remainingTime","LaunchCampaignModal","handleModalClose","AccountSelection","LimitsAndTimeGap","CampaignDetailsPage","defaultTab","getDefaultTab","tabFromUrl","handleTabClick","menuTabs","AnalyticsTab","LeadsTab","EmailsTab","ConfigurationsTab","renderContent","_menuTabs$find","getQueryParam","Chatbot","candidateParam","campaignParam","logoUrl","setLogoUrl","colorPrimary","setColorPrimary","setTextColor","colorSecondary","setColorSecondary","candidateId","setMessages","setInput","isChatCompleted","lastMessageIndex","lastMessage","hasOptions","sendMessage","updatedMessages","answer","acceptedLastAnswer","card","justified","navbar","pills","tabs","Nav","_props$vertical","getVerticalClass","NavItem","sideBar","onTabChange","tabId","newParams","_contact$recommendati","toLocaleString","followerCount","totalExperienceDurationMonths","_id","lastUpdated","_contact$company","headline","headerContent","bodyContent","internalIsOpen","setInternalIsOpen","isControlled","isOpenState","contentRef","setContentHeight","handleToggle","formatExperienceDuration","totalMonths","years","months","_contact$totalExperie","openExperienceId","setOpenExperienceId","toLocaleDateString","sortedExperiences","orderInProfile","totalExperienceDuration","_exp$durationMonths","Accordion","toggleExperience","durationMonths","companyCategoriesAndKeywords","keyword","kidx","companySizeRange","companyWebsite","openEducationId","setOpenEducationId","openCertificationId","setOpenCertificationId","toggleEducation","activitiesAndSocieties","certifications","cert","dateFromYear","dateToYear","issuer","credentialId","certificateUrl","issuerUrl","courses","course","organizer","openRecommendationId","setOpenRecommendationId","recommendationsCount","toggleRecommendation","refereeUrl","activity","activityUrl","loadingText","loadingIcon","handleButtonClick","getIcon","defaultText","defaultIcon","useButtonState","noteSchema","noteText","noteTitle","setNoteText","setNoteTitle","formattedErrors","LoadingButton","NotesTab","notes","setNotes","noteFormModal","setNoteFormModal","editingNoteId","setEditingNoteId","noteToDelete","setNoteToDelete","openNoteFormModal","noteId","initialTitle","initialText","note","handleDeleteNote","NoteFormModal","closeNoteFormModal","handleSubmitNote","newNote","toLocaleTimeString","hour12","prevNotes","handleGoBack","_location$state","previousRoute","LeadDetailsPage","setSidebar","leadData","setLeadData","internalCompanyId","APIGetCompany","fetchLeadData","PageHeader","UserTabs","renderTabContent","BasicInfoTab","ExperienceTab","EducationTab","SkillsTab","CompanyTab","UserSidebar","CombinedProviders","NotificationProvider","Pages","Layout","UserJobSerachDetails","App","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","reportWebVitals"],"sourceRoot":""}